|
| 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