pocketbase/ui/src/scss/_flatpickr.scss

739 lines
17 KiB
SCSS

// slightly modified version of https://npmcdn.com/flatpickr@4.6.9/dist/flatpickr.css
.flatpickr-calendar {
opacity: 0;
display: none;
text-align: center;
visibility: hidden;
padding: 0;
animation: none;
direction: ltr;
border: 0;
font-size: 1rem;
line-height: 24px;
position: absolute;
width: 298px;
box-sizing: border-box;
user-select: none;
color: var(--txtPrimaryColor);
background: var(--baseColor);
border-radius: var(--baseRadius);
@include shadowize(0px 0px 0px 1px var(--baseAlt2Color));
input, select {
box-shadow: none;
min-height: 0;
height: var(--smBtnHeight);
padding-top: 3px;
padding-bottom: 3px;
background: none;
border-radius: var(--baseRadius);
border: 1px solid var(--baseAlt1Color);
}
}
.flatpickr-calendar.open,
.flatpickr-calendar.inline {
opacity: 1;
visibility: visible;
}
.flatpickr-calendar.open {
display: inline-block;
z-index: 99999;
}
.flatpickr-calendar.animate.open {
-webkit-animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
}
.flatpickr-calendar.inline {
display: block;
position: relative;
top: 0;
width: 100%;
}
.flatpickr-calendar.static {
position: absolute;
top: 100%;
margin-top: 2px;
margin-bottom: 10px;
width: 100%;
.flatpickr-days {
width: 100%;
}
}
.flatpickr-calendar.static.open {
z-index: 999;
display: block;
}
.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7) {
-webkit-box-shadow: none !important;
box-shadow: none !important;
}
.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1) {
-webkit-box-shadow: -2px 0 0 var(--baseAlt2Color), 5px 0 0 var(--baseAlt2Color);
box-shadow: -2px 0 0 var(--baseAlt2Color), 5px 0 0 var(--baseAlt2Color);
}
.flatpickr-calendar .hasWeeks .dayContainer,
.flatpickr-calendar .hasTime .dayContainer {
border-bottom: 0;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
.flatpickr-calendar .hasWeeks .dayContainer {
border-left: 0;
}
.flatpickr-calendar.hasTime .flatpickr-time {
height: 40px;
border-top: 1px solid var(--baseAlt2Color);
}
.flatpickr-calendar.noCalendar.hasTime .flatpickr-time {
height: auto;
}
.flatpickr-calendar:before,
.flatpickr-calendar:after {
position: absolute;
display: block;
pointer-events: none;
border: solid transparent;
content: '';
height: 0;
width: 0;
left: 22px;
}
.flatpickr-calendar.rightMost:before,
.flatpickr-calendar.arrowRight:before,
.flatpickr-calendar.rightMost:after,
.flatpickr-calendar.arrowRight:after {
left: auto;
right: 22px;
}
.flatpickr-calendar.arrowCenter:before,
.flatpickr-calendar.arrowCenter:after {
left: 50%;
right: 50%;
}
.flatpickr-calendar:before {
border-width: 5px;
margin: 0 -5px;
}
.flatpickr-calendar:after {
border-width: 4px;
margin: 0 -4px;
}
.flatpickr-calendar.arrowTop:before,
.flatpickr-calendar.arrowTop:after {
bottom: 100%;
}
.flatpickr-calendar.arrowTop:before {
border-bottom-color: var(--baseColor);
}
.flatpickr-calendar.arrowTop:after {
border-bottom-color: var(--baseColor);
}
.flatpickr-calendar.arrowBottom:before,
.flatpickr-calendar.arrowBottom:after {
top: 100%;
}
.flatpickr-calendar.arrowBottom:before {
border-top-color: var(--baseColor);
}
.flatpickr-calendar.arrowBottom:after {
border-top-color: var(--baseColor);
}
.flatpickr-calendar:focus {
outline: 0;
}
.flatpickr-wrapper {
position: relative;
}
.flatpickr-months {
display: flex;
align-items: center;
padding: 5px 0;
}
.flatpickr-months .flatpickr-month {
display: flex;
align-items: center;
justify-content: center;
background: transparent;
color: var(--txtPrimaryColor);
fill: var(--txtPrimaryColor);
line-height: 1;
text-align: center;
position: relative;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-box-flex: 1;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
}
.flatpickr-months .flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month {
display: flex;
align-items: center;
text-decoration: none;
cursor: pointer;
height: 34px;
padding: 5px 12px;
z-index: 3;
color: var(--txtPrimaryColor);
fill: var(--txtPrimaryColor);
}
.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,
.flatpickr-months .flatpickr-next-month.flatpickr-disabled {
display: none;
}
.flatpickr-months .flatpickr-prev-month i,
.flatpickr-months .flatpickr-next-month i {
position: relative;
}
.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month.flatpickr-prev-month {
left: 0;
}
.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,
.flatpickr-months .flatpickr-next-month.flatpickr-next-month {
right: 0;
}
.flatpickr-months .flatpickr-prev-month:hover,
.flatpickr-months .flatpickr-next-month:hover,
.flatpickr-months .flatpickr-prev-month:hover svg,
.flatpickr-months .flatpickr-next-month:hover svg {
fill: var(--txtHintColor);
}
.flatpickr-months .flatpickr-prev-month svg,
.flatpickr-months .flatpickr-next-month svg {
width: 14px;
height: 14px;
}
.flatpickr-months .flatpickr-prev-month svg path,
.flatpickr-months .flatpickr-next-month svg path {
-webkit-transition: fill 0.1s;
transition: fill 0.1s;
fill: inherit;
}
.numInputWrapper {
position: relative;
height: auto;
border-radius: var(--baseRadius);
}
.numInputWrapper input,
.numInputWrapper span {
display: inline-block;
}
.numInputWrapper input {
width: 100%;
}
.numInputWrapper input::-ms-clear {
display: none;
}
.numInputWrapper input::-webkit-outer-spin-button,
.numInputWrapper input::-webkit-inner-spin-button {
margin: 0;
-webkit-appearance: none;
}
.numInputWrapper span {
position: absolute;
right: 0;
width: 14px;
padding: 0 4px 0 2px;
height: 50%;
line-height: 50%;
opacity: 0;
cursor: pointer;
border: 1px solid rgba(57,57,57,0.15);
box-sizing: border-box;
}
.numInputWrapper span:hover {
background: rgba(0,0,0,0.1);
}
.numInputWrapper span:active {
background: rgba(0,0,0,0.2);
}
.numInputWrapper span:after {
display: block;
content: "";
position: absolute;
}
.numInputWrapper span.arrowUp {
top: 0;
border-bottom: 0;
}
.numInputWrapper span.arrowUp:after {
border-left: 4px solid transparent;
border-right: 4px solid transparent;
border-bottom: 4px solid rgba(57,57,57,0.6);
top: 26%;
}
.numInputWrapper span.arrowDown {
top: 50%;
}
.numInputWrapper span.arrowDown:after {
border-left: 4px solid transparent;
border-right: 4px solid transparent;
border-top: 4px solid rgba(57,57,57,0.6);
top: 40%;
}
.numInputWrapper span svg {
width: inherit;
height: auto;
}
.numInputWrapper span svg path {
fill: rgba(0,0,0,0.5);
}
.numInputWrapper:hover {
background: var(--baseAlt1Color);
}
.numInputWrapper:hover span {
opacity: 1;
}
.flatpickr-current-month {
line-height: inherit;
color: inherit;
width: 85%;
padding: 1px 0;
line-height: 1;
display: flex;
gap: 10px;
align-items: center;
justify-content: center;
text-align: center;
}
.flatpickr-current-month span.cur-month {
font-family: inherit;
font-weight: 700;
color: inherit;
display: inline-block;
margin-left: 0.5ch;
padding: 0;
}
.flatpickr-current-month span.cur-month:hover {
background: var(--baseAlt1Color);
}
.flatpickr-current-month .numInputWrapper {
display: inline-flex;
align-items: center;
justify-content: center;
width: 62px;
}
.flatpickr-current-month .numInputWrapper span.arrowUp:after {
border-bottom-color: var(--txtPrimaryColor);
}
.flatpickr-current-month .numInputWrapper span.arrowDown:after {
border-top-color: var(--txtPrimaryColor);
}
.flatpickr-current-month input.cur-year {
background: transparent;
box-sizing: border-box;
color: inherit;
cursor: text;
margin: 0;
display: inline-block;
font-size: inherit;
font-family: inherit;
line-height: inherit;
vertical-align: initial;
-webkit-appearance: textfield;
-moz-appearance: textfield;
appearance: textfield;
}
.flatpickr-current-month input.cur-year:focus {
outline: 0;
}
.flatpickr-current-month input.cur-year[disabled],
.flatpickr-current-month input.cur-year[disabled]:hover {
color: var(--txtDisabledColor);
background: transparent;
pointer-events: none;
}
.flatpickr-current-month .flatpickr-monthDropdown-months {
appearance: menulist;
box-sizing: border-box;
color: inherit;
cursor: pointer;
font-size: inherit;
line-height: inherit;
outline: none;
position: relative;
vertical-align: initial;
-webkit-box-sizing: border-box;
-webkit-appearance: menulist;
-moz-appearance: menulist;
width: auto;
}
.flatpickr-current-month .flatpickr-monthDropdown-months:focus,
.flatpickr-current-month .flatpickr-monthDropdown-months:active {
outline: none;
}
.flatpickr-current-month .flatpickr-monthDropdown-months:hover {
background: var(--baseAlt1Color);
}
.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month {
background-color: transparent;
outline: none;
padding: 0;
}
.flatpickr-weekdays {
background: transparent;
text-align: center;
overflow: hidden;
width: 100%;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
height: 28px;
}
.flatpickr-weekdays .flatpickr-weekdaycontainer {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-flex: 1;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
}
span.flatpickr-weekday {
display: block;
flex: 1;
margin: 0;
cursor: default;
line-height: 1;
background: transparent;
color: var(--txtHintColor);
text-align: center;
font-weight: bolder;
font-size: var(--smFontSize);
}
.dayContainer,
.flatpickr-weeks {
padding: 1px 0 0 0;
}
.flatpickr-days {
position: relative;
overflow: hidden;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-align: start;
-webkit-align-items: flex-start;
-ms-flex-align: start;
align-items: flex-start;
}
.flatpickr-days:focus {
outline: 0;
}
.dayContainer {
padding: 0;
outline: 0;
text-align: left;
width: 100%;
box-sizing: border-box;
display: inline-block;
display: flex;
flex-wrap: wrap;
transform: translate3d(0px, 0px, 0px);
opacity: 1;
}
.dayContainer + .dayContainer {
-webkit-box-shadow: -1px 0 0 var(--baseAlt2Color);
box-shadow: -1px 0 0 var(--baseAlt2Color);
}
.flatpickr-day {
background: none;
border: 1px solid transparent;
border-radius: var(--baseRadius);
box-sizing: border-box;
color: var(--txtPrimaryColor);
cursor: pointer;
font-weight: 400;
width: calc(14.2857143% - 2px);
flex-basis: calc(14.2857143% - 2px);
height: 39px;
margin: 1px;
display: inline-flex;
align-items: center;
justify-content: center;
position: relative;
text-align: center;
flex-direction: column;
&.weekend,
&:nth-child(7n+6),
&:nth-child(7n+7) {
color: var(--dangerColor);
}
}
.flatpickr-day.inRange,
.flatpickr-day.prevMonthDay.inRange,
.flatpickr-day.nextMonthDay.inRange,
.flatpickr-day.today.inRange,
.flatpickr-day.prevMonthDay.today.inRange,
.flatpickr-day.nextMonthDay.today.inRange,
.flatpickr-day:hover,
.flatpickr-day.prevMonthDay:hover,
.flatpickr-day.nextMonthDay:hover,
.flatpickr-day:focus,
.flatpickr-day.prevMonthDay:focus,
.flatpickr-day.nextMonthDay:focus {
cursor: pointer;
outline: 0;
background: var(--baseAlt2Color);
border-color: var(--baseAlt2Color);
}
.flatpickr-day.today {
border-color: var(--baseColor);
}
.flatpickr-day.today:hover,
.flatpickr-day.today:focus {
border-color: var(--primaryColor);
background: var(--primaryColor);
color: var(--baseColor);
}
.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.selected.inRange,
.flatpickr-day.startRange.inRange,
.flatpickr-day.endRange.inRange,
.flatpickr-day.selected:focus,
.flatpickr-day.startRange:focus,
.flatpickr-day.endRange:focus,
.flatpickr-day.selected:hover,
.flatpickr-day.startRange:hover,
.flatpickr-day.endRange:hover,
.flatpickr-day.selected.prevMonthDay,
.flatpickr-day.startRange.prevMonthDay,
.flatpickr-day.endRange.prevMonthDay,
.flatpickr-day.selected.nextMonthDay,
.flatpickr-day.startRange.nextMonthDay,
.flatpickr-day.endRange.nextMonthDay {
background: var(--primaryColor);
-webkit-box-shadow: none;
box-shadow: none;
color: #fff;
border-color: var(--primaryColor);
}
.flatpickr-day.selected.startRange,
.flatpickr-day.startRange.startRange,
.flatpickr-day.endRange.startRange {
border-radius: 50px 0 0 50px;
}
.flatpickr-day.selected.endRange,
.flatpickr-day.startRange.endRange,
.flatpickr-day.endRange.endRange {
border-radius: 0 50px 50px 0;
}
.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),
.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),
.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) {
-webkit-box-shadow: -10px 0 0 var(--primaryColor);
box-shadow: -10px 0 0 var(--primaryColor);
}
.flatpickr-day.selected.startRange.endRange,
.flatpickr-day.startRange.startRange.endRange,
.flatpickr-day.endRange.startRange.endRange {
border-radius: 50px;
}
.flatpickr-day.inRange {
border-radius: 0;
box-shadow: -5px 0 0 var(--baseAlt2Color), 5px 0 0 var(--baseAlt2Color);
}
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover,
.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay,
.flatpickr-day.notAllowed,
.flatpickr-day.notAllowed.prevMonthDay,
.flatpickr-day.notAllowed.nextMonthDay {
color: var(--txtDisabledColor);
background: transparent;
border-color: transparent;
cursor: default;
}
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover {
cursor: not-allowed;
color: var(--txtDisabledColor);
background: var(--baseAlt2Color);
}
.flatpickr-day.week.selected {
border-radius: 0;
box-shadow: -5px 0 0 var(--primaryColor), 5px 0 0 var(--primaryColor);
}
.flatpickr-day.hidden {
visibility: hidden;
}
.rangeMode .flatpickr-day {
margin-top: 1px;
}
.flatpickr-weekwrapper {
float: left;
}
.flatpickr-weekwrapper .flatpickr-weeks {
padding: 0 12px;
-webkit-box-shadow: 1px 0 0 var(--baseAlt2Color);
box-shadow: 1px 0 0 var(--baseAlt2Color);
}
.flatpickr-weekwrapper .flatpickr-weekday {
float: none;
width: 100%;
line-height: 28px;
}
.flatpickr-weekwrapper span.flatpickr-day,
.flatpickr-weekwrapper span.flatpickr-day:hover {
display: block;
width: 100%;
max-width: none;
color: var(--txtHintColor);
background: transparent;
cursor: default;
border: none;
}
.flatpickr-innerContainer {
display: flex;
box-sizing: border-box;
overflow: hidden;
padding: 5px;
}
.flatpickr-rContainer {
display: inline-block;
padding: 0;
width: 100%;
box-sizing: border-box;
}
.flatpickr-time {
text-align: center;
outline: 0;
display: block;
height: 0;
line-height: 40px;
max-height: 40px;
box-sizing: border-box;
overflow: hidden;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
}
.flatpickr-time:after {
content: "";
display: table;
clear: both;
}
.flatpickr-time .numInputWrapper {
-webkit-box-flex: 1;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
width: 40%;
height: 40px;
float: left;
}
.flatpickr-time .numInputWrapper span.arrowUp:after {
border-bottom-color: var(--txtPrimaryColor);
}
.flatpickr-time .numInputWrapper span.arrowDown:after {
border-top-color: var(--txtPrimaryColor);
}
.flatpickr-time.hasSeconds .numInputWrapper {
width: 26%;
}
.flatpickr-time.time24hr .numInputWrapper {
width: 49%;
}
.flatpickr-time input {
background: transparent;
box-shadow: none;
border: 0;
text-align: center;
margin: 0;
padding: 0;
height: inherit;
line-height: inherit;
color: var(--txtPrimaryColor);
font-size: 14px;
position: relative;
box-sizing: border-box;
background: var(--baseColor);
-webkit-appearance: textfield;
-moz-appearance: textfield;
appearance: textfield;
}
.flatpickr-time input.flatpickr-hour {
font-weight: bold;
}
.flatpickr-time input.flatpickr-minute,
.flatpickr-time input.flatpickr-second {
font-weight: normal;
}
.flatpickr-time input:focus {
outline: 0;
border: 0;
}
.flatpickr-time .flatpickr-time-separator,
.flatpickr-time .flatpickr-am-pm {
height: inherit;
float: left;
line-height: inherit;
color: var(--txtPrimaryColor);
font-weight: bold;
width: 2%;
user-select: none;
align-self: center;
}
.flatpickr-time .flatpickr-am-pm {
outline: 0;
width: 18%;
cursor: pointer;
text-align: center;
font-weight: 400;
}
.flatpickr-time input:hover,
.flatpickr-time .flatpickr-am-pm:hover,
.flatpickr-time input:focus,
.flatpickr-time .flatpickr-am-pm:focus {
background: var(--baseAlt1Color);
}
.flatpickr-input[readonly] {
cursor: pointer;
}
@keyframes fpFadeInDown {
from {
opacity: 0;
transform: translate3d(0, 10px, 0);
}
to {
opacity: 1;
transform: translate3d(0, 0, 0);
}
}
// Hide prev and next month dates
.flatpickr-hide-prev-next-month-days {
.flatpickr-calendar .prevMonthDay {
visibility: hidden;
}
.flatpickr-calendar .nextMonthDay {
display: none;
}
}
.flatpickr-inline-container {
@extend %block;
.flatpickr-input {
display: none;
}
.flatpickr-calendar {
margin: 0;
box-shadow: none;
border: 1px solid var(--baseAlt2Color);
}
}