|
| 1 | +// stylelint-disable selector-max-class |
| 2 | + |
1 | 3 | .calendar {
|
2 | 4 | // scss-docs-start calendar-css-vars
|
3 | 5 | --#{$prefix}calendar-table-margin: #{$calendar-table-margin};
|
|
10 | 12 | --#{$prefix}calendar-nav-icon-width: #{$calendar-nav-icon-width};
|
11 | 13 | --#{$prefix}calendar-nav-icon-height: #{$calendar-nav-icon-height};
|
12 | 14 | --#{$prefix}calendar-nav-icon-double-next: #{escape-svg($calendar-nav-icon-double-next)};
|
13 |
| - --#{$prefix}calendar-nav-icon-double-next-hover: #{escape-svg($calendar-nav-icon-double-next-hover)}; |
14 | 15 | --#{$prefix}calendar-nav-icon-double-prev: #{escape-svg($calendar-nav-icon-double-prev)};
|
15 |
| - --#{$prefix}calendar-nav-icon-double-prev-hover: #{escape-svg($calendar-nav-icon-double-prev-hover)}; |
16 | 16 | --#{$prefix}calendar-nav-icon-next: #{escape-svg($calendar-nav-icon-next)};
|
17 |
| - --#{$prefix}calendar-nav-icon-next-hover: #{escape-svg($calendar-nav-icon-next-hover)}; |
18 | 17 | --#{$prefix}calendar-nav-icon-prev: #{escape-svg($calendar-nav-icon-prev)};
|
19 |
| - --#{$prefix}calendar-nav-icon-prev-hover: #{escape-svg($calendar-nav-icon-prev-hover)}; |
| 18 | + --#{$prefix}calendar-nav-icon-color: #{$calendar-nav-icon-color}; |
| 19 | + --#{$prefix}calendar-nav-icon-hover-color: #{$calendar-nav-icon-hover-color}; |
20 | 20 | --#{$prefix}calendar-cell-header-inner-color: #{$calendar-cell-header-inner-color};
|
21 | 21 | --#{$prefix}calendar-cell-week-number-color: #{$calendar-cell-week-number-color};
|
22 | 22 | --#{$prefix}calendar-cell-hover-color: #{$calendar-cell-hover-color};
|
|
50 | 50 | }
|
51 | 51 | }
|
52 | 52 |
|
| 53 | +.show-week-numbers table { |
| 54 | + width: calc(var(--#{$prefix}calendar-table-cell-size) * 8); // stylelint-disable-line function-disallowed-list |
| 55 | +} |
| 56 | + |
53 | 57 | .calendars {
|
54 | 58 | display: flex;
|
55 | 59 | }
|
|
79 | 83 | display: block;
|
80 | 84 | width: var(--#{$prefix}calendar-nav-icon-width);
|
81 | 85 | height: var(--#{$prefix}calendar-nav-icon-height);
|
| 86 | + background-color: var(--#{$prefix}calendar-nav-icon-color); |
82 | 87 | @include transition(background-image .15s ease-in-out);
|
83 |
| -} |
84 | 88 |
|
85 |
| -.calendar-nav-icon-double-next { |
86 |
| - @include ltr-rtl-value-only("background-image", var(--#{$prefix}calendar-nav-icon-double-next), var(--#{$prefix}calendar-nav-icon-double-prev)); |
87 | 89 | &:hover {
|
88 |
| - @include ltr-rtl-value-only("background-image", var(--#{$prefix}calendar-nav-icon-double-next-hover), var(--#{$prefix}calendar-nav-icon-double-prev-hover)); |
| 90 | + background-color: var(--#{$prefix}calendar-nav-icon-hover-color); |
89 | 91 | }
|
90 | 92 | }
|
91 | 93 |
|
| 94 | +.calendar-nav-icon-double-next { |
| 95 | + @include ltr-rtl-value-only("mask", var(--#{$prefix}calendar-nav-icon-double-next) no-repeat center, var(--#{$prefix}calendar-nav-icon-double-prev) no-repeat center); |
| 96 | +} |
| 97 | + |
92 | 98 | .calendar-nav-icon-double-prev {
|
93 |
| - @include ltr-rtl-value-only("background-image", var(--#{$prefix}calendar-nav-icon-double-prev), var(--#{$prefix}calendar-nav-icon-double-next)); |
94 |
| - &:hover { |
95 |
| - @include ltr-rtl-value-only("background-image", var(--#{$prefix}calendar-nav-icon-double-prev-hover), var(--#{$prefix}calendar-nav-icon-double-next-hover)); |
96 |
| - } |
| 99 | + @include ltr-rtl-value-only("mask", var(--#{$prefix}calendar-nav-icon-double-prev) no-repeat center, var(--#{$prefix}calendar-nav-icon-double-next) no-repeat center); |
97 | 100 | }
|
98 | 101 |
|
99 | 102 | .calendar-nav-icon-next {
|
100 |
| - @include ltr-rtl-value-only("background-image", var(--#{$prefix}calendar-nav-icon-next), var(--#{$prefix}calendar-nav-icon-prev)); |
101 |
| - &:hover { |
102 |
| - @include ltr-rtl-value-only("background-image", var(--#{$prefix}calendar-nav-icon-next-hover), var(--#{$prefix}calendar-nav-icon-prev-hover)); |
103 |
| - } |
| 103 | + @include ltr-rtl-value-only("mask", var(--#{$prefix}calendar-nav-icon-next) no-repeat center, var(--#{$prefix}calendar-nav-icon-prev) no-repeat center); |
104 | 104 | }
|
105 | 105 |
|
106 | 106 | .calendar-nav-icon-prev {
|
107 |
| - @include ltr-rtl-value-only("background-image", var(--#{$prefix}calendar-nav-icon-prev), var(--#{$prefix}calendar-nav-icon-next)); |
108 |
| - &:hover { |
109 |
| - @include ltr-rtl-value-only("background-image", var(--#{$prefix}calendar-nav-icon-prev-hover), var(--#{$prefix}calendar-nav-icon-next-hover)); |
110 |
| - } |
| 107 | + @include ltr-rtl-value-only("mask", var(--#{$prefix}calendar-nav-icon-prev) no-repeat center, var(--#{$prefix}calendar-nav-icon-next) no-repeat center); |
111 | 108 | }
|
112 | 109 |
|
113 | 110 | .calendar-header-cell-inner {
|
|
156 | 153 |
|
157 | 154 | &.range-hover .calendar-cell-inner {
|
158 | 155 | position: relative;
|
| 156 | + |
159 | 157 | &::before {
|
160 | 158 | position: absolute;
|
161 | 159 | width: 100%;
|
|
167 | 165 | }
|
168 | 166 | }
|
169 | 167 |
|
170 |
| - &.selected:not(th):not(.next):not(.previous) .calendar-cell-inner { |
| 168 | + &.selected:not(th, .next, .previous) .calendar-cell-inner { |
171 | 169 | color: var(--#{$prefix}calendar-cell-selected-color);
|
172 | 170 | background-color: var(--#{$prefix}calendar-cell-selected-bg);
|
173 | 171 | }
|
|
180 | 178 | .calendar-cell {
|
181 | 179 | padding: 1px 0;
|
182 | 180 |
|
183 |
| - .calendars:not(.select-week) &:not(.disabled):not(.next):not(.previous):hover .calendar-cell-inner, |
184 |
| - .calendars:not(.select-week) &.clickable:hover .calendar-cell-inner { |
185 |
| - color: var(--#{$prefix}calendar-cell-hover-color); |
186 |
| - cursor: pointer; |
187 |
| - background-color: var(--#{$prefix}calendar-cell-hover-bg); |
188 |
| - @include border-radius($border-radius); |
| 181 | + .calendars:not(.select-week) &:not(.disabled, .next, .previous):hover, |
| 182 | + .calendars:not(.select-week) &.clickable:hover { |
| 183 | + .calendar-cell-inner { |
| 184 | + color: var(--#{$prefix}calendar-cell-hover-color); |
| 185 | + cursor: pointer; |
| 186 | + background-color: var(--#{$prefix}calendar-cell-hover-bg); |
| 187 | + @include border-radius($border-radius); |
| 188 | + } |
189 | 189 | }
|
190 | 190 |
|
191 |
| - // stylelint-disable-next-line selector-max-class |
192 |
| - .calendars:not(.select-week) &.previous + .current .calendar-cell-inner, |
193 |
| - &.current:not(.range) + .selected .calendar-cell-inner, |
194 |
| - &:not(.range) + .selected .calendar-cell-inner, |
195 |
| - &:first-of-type .calendar-cell-inner { |
| 191 | + .calendars:not(.select-week) &.range:not(.range ~ *) .calendar-cell-inner::after { |
196 | 192 | @include border-start-radius($border-radius);
|
197 |
| - |
198 |
| - // stylelint-disable-next-line selector-max-class |
199 |
| - &::after { |
200 |
| - @include border-start-radius($border-radius); |
201 |
| - } |
202 | 193 | }
|
203 | 194 |
|
204 |
| - .calendars:not(.select-week) &:has(+ .next) .calendar-cell-inner, |
205 |
| - &.range + .selected .calendar-cell-inner, |
206 |
| - &:last-of-type .calendar-cell-inner { |
| 195 | + .calendars:not(.select-week) &.range:not(:has(~ .range)) .calendar-cell-inner::after { |
207 | 196 | @include border-end-radius($border-radius);
|
208 |
| - |
209 |
| - &::after { |
210 |
| - @include border-end-radius($border-radius); |
211 |
| - } |
212 | 197 | }
|
213 | 198 |
|
214 |
| - &:not(.range-hover) + .range-hover .calendar-cell-inner, |
215 |
| - &.range-hover:first-of-type .calendar-cell-inner { |
216 |
| - &::before { |
| 199 | + &.range-hover:first-of-type, |
| 200 | + &:not(.range-hover) + &.range-hover { |
| 201 | + .calendar-cell-inner::before { |
217 | 202 | border-left: 1px dashed var(--#{$prefix}calendar-cell-selected-bg);
|
218 | 203 | @include border-start-radius($border-radius);
|
219 | 204 | }
|
220 | 205 | }
|
221 | 206 |
|
222 |
| - &.range-hover:has(+ .next) .calendar-cell-inner, |
223 |
| - &.range-hover:last-of-type .calendar-cell-inner, |
224 |
| - &.range-hover:not(:has(~ .range-hover)) .calendar-cell-inner { |
225 |
| - &::before { |
| 207 | + &.range-hover:not(:has(~ .range-hover)) .calendar-cell-inner::before { |
| 208 | + border-right: 1px dashed var(--#{$prefix}calendar-cell-selected-bg); |
| 209 | + @include border-end-radius($border-radius); |
| 210 | + } |
| 211 | + |
| 212 | + @-moz-document url-prefix() { |
| 213 | + .calendars:not(.select-week) &:nth-last-child(1 of .range), |
| 214 | + .calendars:not(.select-week) &:nth-last-child(1 of .available) { |
| 215 | + .calendar-cell-inner::after { |
| 216 | + @include border-end-radius($border-radius); |
| 217 | + } |
| 218 | + } |
| 219 | + |
| 220 | + &:nth-last-child(1 of .range-hover) .calendar-cell-inner::before { |
226 | 221 | border-right: 1px dashed var(--#{$prefix}calendar-cell-selected-bg);
|
227 | 222 | @include border-end-radius($border-radius);
|
228 | 223 | }
|
|
243 | 238 | }
|
244 | 239 |
|
245 | 240 | .calendar-row {
|
246 |
| - // stylelint-disable-next-line selector-max-class |
247 |
| - .calendars.select-week &:not(.disabled):hover .calendar-cell-inner, |
248 |
| - .calendars.select-week &.clickable:hover .calendar-cell-inner { |
249 |
| - color: var(--#{$prefix}calendar-cell-hover-color); |
250 |
| - cursor: pointer; |
251 |
| - background-color: var(--#{$prefix}calendar-cell-hover-bg); |
| 241 | + .calendars.select-week &:not(.disabled):hover, |
| 242 | + .calendars.select-week &.clickable:hover { |
| 243 | + .calendar-cell-inner { |
| 244 | + color: var(--#{$prefix}calendar-cell-hover-color); |
| 245 | + cursor: pointer; |
| 246 | + background-color: var(--#{$prefix}calendar-cell-hover-bg); |
| 247 | + } |
252 | 248 | }
|
253 | 249 |
|
254 | 250 | .selected:not(th) .calendar-cell-inner {
|
255 | 251 | @include border-radius($border-radius);
|
256 | 252 | }
|
257 | 253 |
|
258 |
| - &.range-hover .calendar-cell:first-of-type .calendar-cell-inner { |
259 |
| - &::before { |
260 |
| - border-left: 1px dashed var(--#{$prefix}calendar-cell-selected-bg); |
| 254 | + .calendar-cell:first-of-type .calendar-cell-inner { |
| 255 | + @include border-start-radius($border-radius); |
| 256 | + &::before, |
| 257 | + &::after { |
261 | 258 | @include border-start-radius($border-radius);
|
262 | 259 | }
|
263 | 260 | }
|
264 | 261 |
|
265 |
| - &.range-hover .calendar-cell:last-of-type .calendar-cell-inner { |
266 |
| - &::before { |
267 |
| - border-right: 1px dashed var(--#{$prefix}calendar-cell-selected-bg); |
| 262 | + .calendar-cell:last-of-type .calendar-cell-inner { |
| 263 | + @include border-end-radius($border-radius); |
| 264 | + &::before, |
| 265 | + &::after { |
268 | 266 | @include border-end-radius($border-radius);
|
269 | 267 | }
|
270 | 268 | }
|
271 | 269 |
|
| 270 | + &.range-hover .calendar-cell:first-of-type .calendar-cell-inner::before { |
| 271 | + border-left: 1px dashed var(--#{$prefix}calendar-cell-selected-bg); |
| 272 | + } |
| 273 | + |
| 274 | + &.range-hover .calendar-cell:last-of-type .calendar-cell-inner::before { |
| 275 | + border-right: 1px dashed var(--#{$prefix}calendar-cell-selected-bg); |
| 276 | + } |
| 277 | + |
272 | 278 | &:focus-visible {
|
273 | 279 | outline: 0;
|
274 | 280 | box-shadow: var(--#{$prefix}calendar-cell-focus-box-shadow);
|
275 | 281 | @include border-radius($border-radius);
|
276 | 282 | }
|
277 | 283 | }
|
278 |
| - |
279 |
| -@if $enable-dark-mode { |
280 |
| - @include color-mode(dark) { |
281 |
| - .calendar { |
282 |
| - --#{$prefix}calendar-nav-icon-double-next: #{escape-svg($calendar-nav-icon-double-next-dark)}; |
283 |
| - --#{$prefix}calendar-nav-icon-double-next-hover: #{escape-svg($calendar-nav-icon-double-next-hover-dark)}; |
284 |
| - --#{$prefix}calendar-nav-icon-double-prev: #{escape-svg($calendar-nav-icon-double-prev-dark)}; |
285 |
| - --#{$prefix}calendar-nav-icon-double-prev-hover: #{escape-svg($calendar-nav-icon-double-prev-hover-dark)}; |
286 |
| - --#{$prefix}calendar-nav-icon-next: #{escape-svg($calendar-nav-icon-next-dark)}; |
287 |
| - --#{$prefix}calendar-nav-icon-next-hover: #{escape-svg($calendar-nav-icon-next-hover-dark)}; |
288 |
| - --#{$prefix}calendar-nav-icon-prev: #{escape-svg($calendar-nav-icon-prev-dark)}; |
289 |
| - --#{$prefix}calendar-nav-icon-prev-hover: #{escape-svg($calendar-nav-icon-prev-hover-dark)}; |
290 |
| - } |
291 |
| - } |
292 |
| -} |
0 commit comments