2025-04-02 13:24:56 +05:30

427 lines
7.7 KiB
SCSS

@use '../../scss/_bootstrap-extended/include' as light;
@use '../../scss/_bootstrap-extended/include-dark' as dark;
@import '../../scss/_custom-variables/libs';
$datepicker-content-margin: 0.5rem !default;
$datepicker-arrow-size: 0.45rem !default;
$datepicker-item-width: 2.25rem !default;
$datepicker-item-height: 2.25rem !default;
$white: #fff;
.datepicker {
direction: ltr;
&.dropdown-menu {
padding: 0;
margin: 0;
}
.datepicker-days {
margin: $datepicker-content-margin;
}
.next,
.prev {
color: transparent !important;
position: relative;
border-radius: light.$border-radius;
}
table thead tr th {
&.next,
&.prev {
width: 1.875rem;
height: 1.875rem;
display: table-caption;
top: 0.25rem;
}
&.datepicker-switch {
padding-top: 0.4rem;
}
&.next {
@include app-ltr {
float: right;
right: 0.5rem;
}
@include app-rtl {
float: left;
left: 0.5rem;
}
}
&.prev {
@include app-ltr {
left: 0.5rem;
}
@include app-rtl {
right: 0.5rem;
}
}
}
.next::after,
.prev::after {
content: '';
display: block;
position: absolute;
top: 48%;
height: $datepicker-arrow-size;
width: $datepicker-arrow-size;
border-radius: 0;
border-style: solid;
transform: rotate(-45deg);
transform-origin: left;
}
.next::after {
margin-left: -$datepicker-arrow-size * 0.5;
border-width: 0 2px 2px 0;
@include app-ltr {
left: 50%;
}
@include app-rtl {
right: 23%;
transform: rotate(-45deg);
border-width: 2px 0 0 2px;
margin-left: 0;
}
}
.prev::after {
border-width: 2px 0 0 2px;
@include app-ltr {
right: 23%;
}
@include app-rtl {
left: 50%;
transform: rotate(-45deg);
border-width: 0 2px 2px 0;
margin-left: -$datepicker-arrow-size * 0.5;
}
}
&.datepicker-rtl {
direction: rtl;
table tr td span {
float: right;
}
}
@include app-rtl {
direction: rtl;
}
}
.datepicker table {
user-select: none;
margin: 0;
overflow: hidden;
border-radius: light.$border-radius-lg;
tbody {
//! FIX: padding or margin top will not work in table
&:before {
content: '@';
display: block;
line-height: 15px;
text-indent: -99999px;
}
}
}
.datepicker table tr td,
.datepicker table tr th {
width: $datepicker-item-width;
height: $datepicker-item-height;
text-align: center;
border: none;
&.dow {
font-size: 0.8125rem;
font-weight: normal;
vertical-align: bottom;
}
}
.datepicker table tr td {
border-radius: light.$border-radius;
&.day:hover,
&.focused {
cursor: pointer;
}
&.disabled,
&.disabled:hover {
cursor: default;
background: none;
}
&.range {
border-radius: 0 !important;
&.today {
box-shadow: none !important;
}
}
&.range-start:not(.range-end) {
@include app-ltr {
border-bottom-right-radius: 0 !important;
border-top-right-radius: 0 !important;
}
@include app-rtl {
border-bottom-left-radius: 0 !important;
border-top-left-radius: 0 !important;
}
}
&.range-end:not(.range-start) {
@include app-ltr {
border-bottom-left-radius: 0 !important;
border-top-left-radius: 0 !important;
}
@include app-rtl {
border-bottom-right-radius: 0 !important;
border-top-right-radius: 0 !important;
}
}
&.selected,
&.selected:hover,
&.selected.highlighted {
color: $white;
}
}
.datepicker table tr td span {
display: block;
float: left;
width: 3.375rem;
height: 2.375rem;
line-height: 2.375rem;
cursor: pointer;
&.disabled,
&.disabled:hover {
background: none;
cursor: default;
}
@include app-rtl {
float: right;
}
}
.datepicker .datepicker-switch,
.datepicker .prev,
.datepicker .next,
.datepicker tfoot tr th {
cursor: pointer;
}
// styling for calendar-week cells
.datepicker .cw {
border-radius: 0;
}
.datepicker-months table,
.datepicker-years table,
.datepicker-decades table,
.datepicker-centuries table {
width: (3.375rem * 3) + 2.625rem;
td {
padding: 0 0 0.25rem 0.8rem;
span {
margin: 0.2rem;
}
@include app-rtl {
padding: 0 0.8rem 0.25rem 0;
}
}
}
.datepicker-dropdown {
left: 0;
top: 0;
padding: 0;
}
.input-daterange input {
text-align: center;
}
// Light style
@if $enable-light-style {
.light-style {
.datepicker-dropdown {
z-index: light.$zindex-popover !important;
}
.datepicker {
&.datepicker-inline {
table {
box-shadow: light.$floating-component-shadow;
}
}
th {
&.prev,
&.next {
background-color: light.$gray-80;
&::after {
color: light.$body-color;
border-color: light.$body-color;
}
}
}
table {
tr td,
tr th {
&.new,
&.new:hover,
&.new:focus {
color: light.$text-muted;
}
&.dow,
&.datepicker-switch {
color: light.$headings-color;
}
}
tr td {
color: light.$headings-color;
&.old,
&.old:hover,
&.old:focus,
&.disabled {
color: light.$text-muted;
}
&.cw {
background: light.rgba-to-hex(light.$gray-60, light.$dropdown-bg);
}
&.day:hover,
&.focused {
background: light.rgba-to-hex(light.$gray-60, light.$rgba-to-hex-bg);
color: light.$headings-color;
}
}
}
}
.datepicker table tr td span {
border-radius: light.$border-radius;
&:hover,
&.focused {
background: light.rgba-to-hex(light.$gray-60, light.$rgba-to-hex-bg);
}
&.disabled,
&.disabled:hover {
color: light.$text-muted;
}
&.old,
&.new,
&.old:hover,
&.new:hover,
&.old:focus,
&.new:focus {
color: light.$text-muted;
}
}
}
}
// Dark style
@if $enable-dark-style {
.dark-style {
.datepicker-dropdown {
z-index: dark.$zindex-popover !important;
}
th {
&.prev,
&.next {
background-color: dark.$gray-80;
&::after {
color: dark.$body-color;
border-color: dark.$body-color;
}
}
}
.datepicker {
&.datepicker-inline {
table {
box-shadow: dark.$floating-component-shadow;
}
}
table {
tr td,
tr th {
&.new,
&.new:hover,
&.new:focus {
color: dark.$text-muted;
}
&.dow,
&.datepicker-switch {
color: dark.$headings-color;
}
}
tr td {
color: dark.$headings-color;
&.old,
&.old:hover,
&.old:focus,
&.disabled {
color: dark.$text-muted;
}
&.cw {
background: dark.rgba-to-hex(dark.$gray-60, dark.$dropdown-bg);
}
&.day:hover,
&.focused {
background: dark.$gray-60;
color: dark.$headings-color;
}
}
}
}
.datepicker table tr td span {
border-radius: dark.$border-radius;
&:hover,
&.focused {
background: dark.$gray-60;
}
&.disabled,
&.disabled:hover {
color: dark.$text-muted;
}
&.old,
&.new,
&.old:hover,
&.new:hover,
&.old:focus,
&.new:focus {
color: dark.$text-muted;
}
}
}
}