@slotted/styles 0.1.0-beta.8 → 0.1.0-beta.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/package.json +1 -1
  2. package/src/accordion/accordion.css +10 -10
  3. package/src/action-bar/action-bar.css +31 -32
  4. package/src/action-sheet/action-sheet.css +36 -36
  5. package/src/alert/alert.css +35 -35
  6. package/src/app-shell/app-shell.css +280 -299
  7. package/src/aspect-ratio/aspect-ratio.css +9 -9
  8. package/src/attachment/attachment.css +91 -99
  9. package/src/avatar/avatar.css +41 -41
  10. package/src/avatar-group/avatar-group.css +21 -22
  11. package/src/badge/badge.css +37 -37
  12. package/src/breadcrumb/breadcrumb.css +37 -37
  13. package/src/button/button.css +88 -69
  14. package/src/button-group/button-group.css +69 -73
  15. package/src/calendar/calendar.css +93 -103
  16. package/src/card/card.css +54 -61
  17. package/src/carousel/carousel.css +150 -161
  18. package/src/cascader/cascader.css +147 -151
  19. package/src/chart/chart.css +225 -240
  20. package/src/checkbox/checkbox.css +119 -124
  21. package/src/checkbox-group/checkbox-group.css +7 -7
  22. package/src/code-block/code-block.css +81 -85
  23. package/src/collapsible/collapsible.css +69 -76
  24. package/src/color-picker/color-picker.css +83 -91
  25. package/src/column-manager/column-manager.css +106 -114
  26. package/src/combobox/combobox.css +99 -101
  27. package/src/command-palette/command-palette.css +84 -90
  28. package/src/container/container.css +24 -24
  29. package/src/context-menu/context-menu.css +8 -8
  30. package/src/currency-field/currency-field.css +99 -104
  31. package/src/dashboard-grid/dashboard-grid.css +104 -107
  32. package/src/data-grid/data-grid.css +458 -456
  33. package/src/data-grid/data-grid.tokens.json +2 -0
  34. package/src/data-list/data-list.css +67 -69
  35. package/src/date-field/date-field.css +50 -50
  36. package/src/date-picker/date-picker.css +40 -42
  37. package/src/date-range-picker/date-range-picker.css +114 -118
  38. package/src/datetime-field/datetime-field.css +73 -78
  39. package/src/datetime-picker/datetime-picker.css +61 -63
  40. package/src/datetime-range-picker/datetime-range-picker.css +149 -156
  41. package/src/description-list/description-list.css +61 -64
  42. package/src/detail-panel/detail-panel.css +70 -70
  43. package/src/dialog/dialog.css +300 -148
  44. package/src/divider/divider.css +18 -18
  45. package/src/drawer/drawer.css +186 -209
  46. package/src/entity-picker/entity-picker.css +220 -239
  47. package/src/event-calendar/event-calendar.css +343 -385
  48. package/src/field/field.css +74 -78
  49. package/src/field-group/field-group.css +22 -25
  50. package/src/filter-bar/filter-bar.css +193 -209
  51. package/src/form/form.css +21 -24
  52. package/src/fullscreen/fullscreen.css +24 -25
  53. package/src/grid/grid.css +28 -28
  54. package/src/highlight/highlight.css +6 -6
  55. package/src/hover-card/hover-card.css +6 -6
  56. package/src/icon/icon.css +15 -15
  57. package/src/image/image.css +39 -39
  58. package/src/import-export-center/import-export-center.css +135 -156
  59. package/src/inline/inline.css +27 -27
  60. package/src/inline-message/inline-message.css +28 -28
  61. package/src/kbd/kbd.css +26 -26
  62. package/src/link/link.css +15 -15
  63. package/src/list/list.css +20 -20
  64. package/src/list-item/list-item.css +66 -66
  65. package/src/listbox/listbox.css +56 -59
  66. package/src/loading-overlay/loading-overlay.css +75 -92
  67. package/src/markdown/markdown.css +17 -17
  68. package/src/menu/menu.css +63 -65
  69. package/src/menubar/menubar.css +13 -13
  70. package/src/message/message.css +174 -202
  71. package/src/message-scroller/message-scroller.css +41 -42
  72. package/src/multi-select/multi-select.css +131 -137
  73. package/src/navigation-menu/navigation-menu.css +167 -188
  74. package/src/notification-center/notification-center.css +134 -148
  75. package/src/number-field/number-field.css +76 -81
  76. package/src/otp-input/otp-input.css +48 -48
  77. package/src/page/page.css +23 -23
  78. package/src/page-header/page-header.css +219 -280
  79. package/src/pagination/pagination.css +68 -72
  80. package/src/popover/popover.css +40 -49
  81. package/src/progress-indicator/progress-indicator.css +85 -90
  82. package/src/prompt-composer/prompt-composer.css +94 -99
  83. package/src/prose/prose.css +71 -75
  84. package/src/radio-group/radio-group.css +98 -103
  85. package/src/rating/rating.css +132 -132
  86. package/src/result-state/result-state.css +74 -77
  87. package/src/saved-views/saved-views.css +41 -47
  88. package/src/scroll-area/scroll-area.css +32 -35
  89. package/src/section/section.css +16 -16
  90. package/src/segmented-control/segmented-control.css +77 -79
  91. package/src/select/select.css +113 -115
  92. package/src/side-navigation/side-navigation.css +170 -180
  93. package/src/skeleton/skeleton.css +47 -48
  94. package/src/slider/slider.css +86 -88
  95. package/src/sparkline/sparkline.css +32 -32
  96. package/src/spinner/spinner.css +4 -4
  97. package/src/split-button/split-button.css +26 -31
  98. package/src/splitter/splitter.css +35 -35
  99. package/src/stack/stack.css +24 -24
  100. package/src/stat-card/stat-card.css +102 -103
  101. package/src/status-indicator/status-indicator.css +28 -28
  102. package/src/stepper/stepper.css +58 -62
  103. package/src/switch/switch.css +86 -92
  104. package/src/table/table.css +189 -198
  105. package/src/table-of-contents/table-of-contents.css +51 -54
  106. package/src/tabs/tabs.css +143 -162
  107. package/src/tag/tag.css +67 -71
  108. package/src/tags-input/tags-input.css +124 -74
  109. package/src/tags-input/tags-input.tokens.json +6 -1
  110. package/src/text-field/text-field.css +108 -126
  111. package/src/textarea/textarea.css +26 -26
  112. package/src/time-field/time-field.css +67 -67
  113. package/src/time-picker/time-picker.css +56 -58
  114. package/src/time-range-picker/time-range-picker.css +126 -133
  115. package/src/timeline/timeline.css +244 -266
  116. package/src/toast/toast.css +81 -90
  117. package/src/toggle/toggle.css +29 -33
  118. package/src/toggle-group/toggle-group.css +67 -71
  119. package/src/toolbar/toolbar.css +30 -35
  120. package/src/tooltip/tooltip.css +26 -26
  121. package/src/top-navigation/top-navigation.css +243 -259
  122. package/src/tour/tour.css +51 -60
  123. package/src/transfer/transfer.css +160 -164
  124. package/src/tree/tree.css +103 -111
  125. package/src/typography/typography.css +36 -36
  126. package/src/upload/upload.css +224 -224
  127. package/src/visually-hidden/visually-hidden.css +1 -1
  128. package/src/wizard/wizard.css +185 -197
@@ -13,7 +13,7 @@
13
13
  * implied by `tr`, `th` and `td`, and writing them again would be the
14
14
  * duplication `patterns.md` refuses.
15
15
  */
16
- [data-ui='calendar'][data-part='root'] {
16
+ [data-ui-calendar][data-part-root] {
17
17
  /**
18
18
  * The reflow container. It is on the root and the grids are one element
19
19
  * in, because `container-type: inline-size` makes an element a query
@@ -92,15 +92,15 @@
92
92
  max-inline-size: 100%;
93
93
  }
94
94
 
95
- [data-ui='calendar'][data-part='root'][data-week-numbers] {
95
+ [data-ui-calendar][data-part-root][data-week-numbers] {
96
96
  --_week-number-columns: 0.75;
97
97
  }
98
98
 
99
- [data-ui='calendar'][data-part='root'][data-months='2'] {
99
+ [data-ui-calendar][data-part-root][data-months='2'] {
100
100
  --_months: 2;
101
101
  }
102
102
 
103
- [data-ui='calendar'][data-part='root'][data-months='3'] {
103
+ [data-ui-calendar][data-part-root][data-months='3'] {
104
104
  --_months: 3;
105
105
  }
106
106
 
@@ -124,10 +124,10 @@
124
124
  * condition, which is what makes `clamp()` the answer here rather than a
125
125
  * query.
126
126
  */
127
- [data-ui='calendar'] [data-part='header'],
128
- [data-ui='calendar'] [data-part='grids'],
129
- [data-ui='calendar'] [data-part='months'],
130
- [data-ui='calendar'] [data-part='years'] {
127
+ [data-ui-calendar] [data-part-header],
128
+ [data-ui-calendar] [data-part-grids],
129
+ [data-ui-calendar] [data-part-months],
130
+ [data-ui-calendar] [data-part-years] {
131
131
  --_cell-size: clamp(
132
132
  var(--slotted-target-min, 24px),
133
133
  calc(100cqi / (var(--_columns) + var(--_week-number-columns)) / var(--_months)),
@@ -141,7 +141,7 @@
141
141
  * them rather than beside them, because it is the thing being changed and a
142
142
  * label at one end would make the pair read as two unrelated buttons.
143
143
  */
144
- [data-ui='calendar'] [data-part='header'] {
144
+ [data-ui-calendar] [data-part-header] {
145
145
  align-items: center;
146
146
  display: flex;
147
147
  gap: var(--slotted-space-2, 0.25rem);
@@ -157,7 +157,7 @@
157
157
  * that is what it says. The live region is on it: paging with a key changes
158
158
  * nothing that focus lands on, so without this nothing announces the month.
159
159
  */
160
- [data-ui='calendar'] [data-part='heading'] {
160
+ [data-ui-calendar] [data-part-heading] {
161
161
  --slotted-icon-size: var(--_icon-size);
162
162
 
163
163
  appearance: none;
@@ -226,8 +226,8 @@
226
226
  * under `dir="rtl"` by the icon's own rule, which is how one glyph serves
227
227
  * both document directions.
228
228
  */
229
- [data-ui='calendar'] [data-part='previous'],
230
- [data-ui='calendar'] [data-part='next'] {
229
+ [data-ui-calendar] [data-part-previous],
230
+ [data-ui-calendar] [data-part-next] {
231
231
  --slotted-icon-size: var(--_icon-size);
232
232
 
233
233
  align-items: center;
@@ -257,7 +257,7 @@
257
257
  * RTL mirror composes with the turn, so both follow `dir` without a second
258
258
  * glyph — the rule `pagination` set.
259
259
  */
260
- [data-ui='calendar'] [data-part='previous'] > [data-ui='icon'] {
260
+ [data-ui-calendar] [data-part-previous] > [data-ui-icon] {
261
261
  rotate: 180deg;
262
262
  }
263
263
 
@@ -267,7 +267,7 @@
267
267
  * narrower than its months is a calendar with fewer months, and a sideways
268
268
  * scrollbar under a grid is a control nobody finds.
269
269
  */
270
- [data-ui='calendar'] [data-part='grids'] {
270
+ [data-ui-calendar] [data-part-grids] {
271
271
  display: flex;
272
272
  /**
273
273
  * A second month that does not fit goes under the first rather than being
@@ -283,7 +283,7 @@
283
283
  justify-content: center;
284
284
  }
285
285
 
286
- [data-ui='calendar'] [data-part='grid'] {
286
+ [data-ui-calendar] [data-part-grid] {
287
287
  border-collapse: collapse;
288
288
  /* A table sizes itself from its content and would give a 31-day column one
289
289
  pixel more than a 30-day one. Fixed layout hands every column the same
@@ -296,7 +296,7 @@
296
296
  * of the document — the heading above already shows it, and a screen reader
297
297
  * reaching the grid still needs it.
298
298
  */
299
- [data-ui='calendar'] [data-part='grid-caption'] {
299
+ [data-ui-calendar] [data-part-grid-caption] {
300
300
  block-size: 1px;
301
301
  clip-path: inset(50%);
302
302
  inline-size: 1px;
@@ -311,8 +311,8 @@
311
311
  * A reader looking at two grids and one title has to count columns to find
312
312
  * out where October starts.
313
313
  */
314
- [data-ui='calendar'][data-part='root']:is([data-months='2'], [data-months='3'])
315
- [data-part='grid-caption'] {
314
+ [data-ui-calendar][data-part-root]:is([data-months='2'], [data-months='3'])
315
+ [data-part-grid-caption] {
316
316
  block-size: auto;
317
317
  clip-path: none;
318
318
  color: var(--slotted-calendar-weekday-color, var(--slotted-text-muted, GrayText));
@@ -329,7 +329,7 @@
329
329
  * reaches assistive technology through `abbr`, which is the APG's own
330
330
  * answer and the difference between hearing "Mo" and hearing "Monday".
331
331
  */
332
- [data-ui='calendar'] [data-part='week-header'] {
332
+ [data-ui-calendar] [data-part-week-header] {
333
333
  block-size: var(--_cell-size);
334
334
  color: var(--slotted-calendar-weekday-color, var(--slotted-text-muted, GrayText));
335
335
  font-size: var(--slotted-font-size-xs, 0.75rem);
@@ -341,7 +341,7 @@
341
341
  text-overflow: clip;
342
342
  }
343
343
 
344
- [data-ui='calendar'] [data-part='week-number'] {
344
+ [data-ui-calendar] [data-part-week-number] {
345
345
  color: var(--slotted-calendar-week-number-color, var(--slotted-text-muted, GrayText));
346
346
  font-size: var(--slotted-font-size-xs, 0.75rem);
347
347
  font-variant-numeric: tabular-nums;
@@ -355,7 +355,7 @@
355
355
  var(--slotted-calendar-week-number-border-color, var(--slotted-border-subtle, ButtonBorder));
356
356
  }
357
357
 
358
- [data-ui='calendar'] [data-part='cell'] {
358
+ [data-ui-calendar] [data-part-cell] {
359
359
  padding: 0;
360
360
  /* The containing block of the range band below. */
361
361
  position: relative;
@@ -368,7 +368,7 @@
368
368
  * has to run edge to edge across a cell while the day itself stays a circle
369
369
  * inside it — two shapes, and one element cannot be both.
370
370
  */
371
- [data-ui='calendar'] [data-part='day'] {
371
+ [data-ui-calendar] [data-part-day] {
372
372
  /**
373
373
  * A rule short of the cell on every side, in every cell.
374
374
  *
@@ -420,7 +420,7 @@
420
420
  * whose control scale is smaller gets the target back without the family
421
421
  * having to know which theme it is under.
422
422
  */
423
- [data-ui='calendar'] [data-part='day']::after {
423
+ [data-ui-calendar] [data-part-day]::after {
424
424
  content: '';
425
425
  inset: min(0px, calc((100% - var(--slotted-target-min, 24px)) / 2));
426
426
  position: absolute;
@@ -432,8 +432,8 @@
432
432
  * name. A reader entering a birth date must not press "previous month" four
433
433
  * hundred times, which is what these two exist to prevent.
434
434
  */
435
- [data-ui='calendar'] [data-part='months'],
436
- [data-ui='calendar'] [data-part='years'] {
435
+ [data-ui-calendar] [data-part-months],
436
+ [data-ui-calendar] [data-part-years] {
437
437
  display: grid;
438
438
  gap: var(--slotted-space-2, 0.25rem);
439
439
  grid-template-columns: repeat(4, 1fr);
@@ -442,7 +442,7 @@
442
442
  inline-size: calc(var(--_cell-size) * var(--_columns));
443
443
  }
444
444
 
445
- [data-ui='calendar'] [data-part='period'] {
445
+ [data-ui-calendar] [data-part-period] {
446
446
  align-items: center;
447
447
  appearance: none;
448
448
  background-color: transparent;
@@ -482,12 +482,12 @@
482
482
  * operable — and it survives `forced-colors`, where `currentcolor` is
483
483
  * already the system's ink.
484
484
  */
485
- [data-ui='calendar'] [data-part='day'][data-today] {
485
+ [data-ui-calendar] [data-part-day][data-today] {
486
486
  color: var(--slotted-calendar-today-color, var(--slotted-tone-accent-text));
487
487
  font-weight: var(--slotted-font-weight-semibold, 600);
488
488
  }
489
489
 
490
- [data-ui='calendar'] [data-part='day']::before {
490
+ [data-ui-calendar] [data-part-day]::before {
491
491
  /* Reserved in every cell and painted in one, so the row keeps its line. */
492
492
  background-color: transparent;
493
493
  block-size: var(--slotted-space-2, 0.25rem);
@@ -500,7 +500,7 @@
500
500
  order: 1;
501
501
  }
502
502
 
503
- [data-ui='calendar'] [data-part='day'][data-today]::before {
503
+ [data-ui-calendar] [data-part-day][data-today]::before {
504
504
  background-color: currentcolor;
505
505
  }
506
506
 
@@ -509,7 +509,7 @@
509
509
  * enough to press, because a reader who wants 1 October while looking at
510
510
  * September should be able to.
511
511
  */
512
- [data-ui='calendar'] [data-part='cell'][data-outside-month] [data-part='day'] {
512
+ [data-ui-calendar] [data-part-cell][data-outside-month] [data-part-day] {
513
513
  color: var(--slotted-calendar-outside-color, var(--slotted-text-muted, GrayText));
514
514
  }
515
515
 
@@ -518,7 +518,7 @@
518
518
  * `disabled` — so a reader can arrow onto it and be told why, and the strike
519
519
  * is what says so without colour.
520
520
  */
521
- [data-ui='calendar'] [data-part='cell'][data-unavailable] [data-part='day'] {
521
+ [data-ui-calendar] [data-part-cell][data-unavailable] [data-part-day] {
522
522
  color: var(--slotted-calendar-unavailable-color, var(--slotted-disabled-foreground));
523
523
  cursor: not-allowed;
524
524
  text-decoration: line-through;
@@ -548,9 +548,9 @@
548
548
  * `--slotted-highlight-tint-opacity` holds. One share, one gesture, all
549
549
  * three schemes, and nothing to align across a row break.
550
550
  */
551
- [data-ui='calendar'] [data-part='cell'][data-in-range]::before,
552
- [data-ui='calendar'] [data-part='cell'][data-range-start]::before,
553
- [data-ui='calendar'] [data-part='cell'][data-range-end]::before {
551
+ [data-ui-calendar] [data-part-cell][data-in-range]::before,
552
+ [data-ui-calendar] [data-part-cell][data-range-start]::before,
553
+ [data-ui-calendar] [data-part-cell][data-range-end]::before {
554
554
  background-color: var(
555
555
  --slotted-calendar-range-background,
556
556
  color-mix(
@@ -569,12 +569,12 @@
569
569
  * begins and ends, and a square cut at either end reads as a run that was
570
570
  * clipped rather than one that stops.
571
571
  */
572
- [data-ui='calendar'] [data-part='cell'][data-range-start]::before {
572
+ [data-ui-calendar] [data-part-cell][data-range-start]::before {
573
573
  border-end-start-radius: var(--slotted-calendar-day-radius, var(--slotted-radius-sm, 4px));
574
574
  border-start-start-radius: var(--slotted-calendar-day-radius, var(--slotted-radius-sm, 4px));
575
575
  }
576
576
 
577
- [data-ui='calendar'] [data-part='cell'][data-range-end]::before {
577
+ [data-ui-calendar] [data-part-cell][data-range-end]::before {
578
578
  border-end-end-radius: var(--slotted-calendar-day-radius, var(--slotted-radius-sm, 4px));
579
579
  border-start-end-radius: var(--slotted-calendar-day-radius, var(--slotted-radius-sm, 4px));
580
580
  }
@@ -586,16 +586,12 @@
586
586
  * once and stays round on both sides, which is why each rule excludes the
587
587
  * other.
588
588
  */
589
- [data-ui='calendar']
590
- [data-part='cell'][data-range-start]:not([data-range-end])
591
- [data-part='day'] {
589
+ [data-ui-calendar] [data-part-cell][data-range-start]:not([data-range-end]) [data-part-day] {
592
590
  border-end-end-radius: 0;
593
591
  border-start-end-radius: 0;
594
592
  }
595
593
 
596
- [data-ui='calendar']
597
- [data-part='cell'][data-range-end]:not([data-range-start])
598
- [data-part='day'] {
594
+ [data-ui-calendar] [data-part-cell][data-range-end]:not([data-range-start]) [data-part-day] {
599
595
  border-end-start-radius: 0;
600
596
  border-start-start-radius: 0;
601
597
  }
@@ -605,9 +601,9 @@
605
601
  * continuous from one cell to the next and the run reads as one band rather
606
602
  * than as a row of tinted squares with gaps between them.
607
603
  */
608
- [data-ui='calendar']
609
- [data-part='cell']:is([data-in-range], [data-range-start], [data-range-end])
610
- [data-part='day'] {
604
+ [data-ui-calendar]
605
+ [data-part-cell]:is([data-in-range], [data-range-start], [data-range-end])
606
+ [data-part-day] {
611
607
  --_inset: 0px;
612
608
  }
613
609
 
@@ -617,7 +613,7 @@
617
613
  * scheme where the band is faint, and it is the second half of the pair the
618
614
  * foundation asks for where there is no edge to make one with.
619
615
  */
620
- [data-ui='calendar'] [data-part='cell'][data-in-range] [data-part='day'] {
616
+ [data-ui-calendar] [data-part-cell][data-in-range] [data-part-day] {
621
617
  border-radius: 0;
622
618
  color: var(--slotted-calendar-in-range-color, var(--slotted-tone-accent-text));
623
619
  }
@@ -632,7 +628,7 @@
632
628
  * end takes an edge in the accent's border role rather than the solid the
633
629
  * chosen end takes: a proposal is drawn as an outline, a choice as a fill.
634
630
  */
635
- [data-ui='calendar'] [data-part='cell'][data-preview]::before {
631
+ [data-ui-calendar] [data-part-cell][data-preview]::before {
636
632
  background-color: var(
637
633
  --slotted-calendar-preview-background,
638
634
  color-mix(
@@ -643,9 +639,9 @@
643
639
  );
644
640
  }
645
641
 
646
- [data-ui='calendar']
647
- [data-part='cell'][data-preview]:is([data-range-start], [data-range-end]):not([data-selected])
648
- [data-part='day'] {
642
+ [data-ui-calendar]
643
+ [data-part-cell][data-preview]:is([data-range-start], [data-range-end]):not([data-selected])
644
+ [data-part-day] {
649
645
  box-shadow: inset 0 0 0 var(--slotted-border-width-thin, 1px)
650
646
  var(--slotted-calendar-preview-border-color, var(--slotted-tone-accent-border));
651
647
  color: var(--slotted-calendar-in-range-color, var(--slotted-tone-accent-text));
@@ -657,21 +653,21 @@
657
653
  * one it can meet, which is the order `STATE_PRECEDENCE` sets.
658
654
  */
659
655
 
660
- [data-ui='calendar'] [data-part='day']:hover:not([data-disabled]),
661
- [data-ui='calendar'] [data-part='period']:hover:not(:disabled):not([data-disabled]),
662
- [data-ui='calendar'] [data-part='heading']:hover:not(:disabled):not([data-disabled]),
663
- [data-ui='calendar'] [data-part='previous']:hover:not(:disabled):not([data-disabled]),
664
- [data-ui='calendar'] [data-part='next']:hover:not(:disabled):not([data-disabled]) {
656
+ [data-ui-calendar] [data-part-day]:hover:not([data-disabled]),
657
+ [data-ui-calendar] [data-part-period]:hover:not(:disabled):not([data-disabled]),
658
+ [data-ui-calendar] [data-part-heading]:hover:not(:disabled):not([data-disabled]),
659
+ [data-ui-calendar] [data-part-previous]:hover:not(:disabled):not([data-disabled]),
660
+ [data-ui-calendar] [data-part-next]:hover:not(:disabled):not([data-disabled]) {
665
661
  background-color: var(
666
662
  --slotted-calendar-hover-background,
667
663
  var(--slotted-tone-secondary-subtle-hover)
668
664
  );
669
665
  }
670
666
 
671
- [data-ui='calendar'] [data-part='day']:active:not([data-disabled]),
672
- [data-ui='calendar'] [data-part='period']:active:not(:disabled):not([data-disabled]),
673
- [data-ui='calendar'] [data-part='previous']:active:not(:disabled):not([data-disabled]),
674
- [data-ui='calendar'] [data-part='next']:active:not(:disabled):not([data-disabled]) {
667
+ [data-ui-calendar] [data-part-day]:active:not([data-disabled]),
668
+ [data-ui-calendar] [data-part-period]:active:not(:disabled):not([data-disabled]),
669
+ [data-ui-calendar] [data-part-previous]:active:not(:disabled):not([data-disabled]),
670
+ [data-ui-calendar] [data-part-next]:active:not(:disabled):not([data-disabled]) {
675
671
  background-color: var(
676
672
  --slotted-calendar-active-background,
677
673
  var(--slotted-tone-secondary-subtle-active)
@@ -684,18 +680,14 @@
684
680
  * a hole in the run, and the reader's own selection is what the band is
685
681
  * about — the pointer should deepen it, not neutralise it.
686
682
  */
687
- [data-ui='calendar']
688
- [data-part='cell'][data-in-range]
689
- [data-part='day']:hover:not([data-disabled]) {
683
+ [data-ui-calendar] [data-part-cell][data-in-range] [data-part-day]:hover:not([data-disabled]) {
690
684
  background-color: var(
691
685
  --slotted-calendar-range-hover-background,
692
686
  var(--slotted-tone-accent-subtle-hover)
693
687
  );
694
688
  }
695
689
 
696
- [data-ui='calendar']
697
- [data-part='cell'][data-in-range]
698
- [data-part='day']:active:not([data-disabled]) {
690
+ [data-ui-calendar] [data-part-cell][data-in-range] [data-part-day]:active:not([data-disabled]) {
699
691
  background-color: var(
700
692
  --slotted-calendar-range-active-background,
701
693
  var(--slotted-tone-accent-subtle-active)
@@ -707,12 +699,10 @@
707
699
  * and it is written after the two rules above for that reason: the guards
708
700
  * they carry are for `data-disabled`, and this state is the family's own.
709
701
  */
710
- [data-ui='calendar']
711
- [data-part='cell'][data-unavailable]
712
- [data-part='day']:hover:not([data-disabled]),
713
- [data-ui='calendar']
714
- [data-part='cell'][data-unavailable]
715
- [data-part='day']:active:not([data-disabled]) {
702
+ [data-ui-calendar] [data-part-cell][data-unavailable] [data-part-day]:hover:not([data-disabled]),
703
+ [data-ui-calendar]
704
+ [data-part-cell][data-unavailable]
705
+ [data-part-day]:active:not([data-disabled]) {
716
706
  background-color: transparent;
717
707
  }
718
708
 
@@ -720,25 +710,25 @@
720
710
  * The chosen date. A fill rather than a ring, so it and today can be true at
721
711
  * once and still read as two facts.
722
712
  */
723
- [data-ui='calendar'] [data-part='cell'][data-selected] [data-part='day'],
724
- [data-ui='calendar'] [data-part='period'][data-selected] {
713
+ [data-ui-calendar] [data-part-cell][data-selected] [data-part-day],
714
+ [data-ui-calendar] [data-part-period][data-selected] {
725
715
  background-color: var(--slotted-calendar-selected-background, var(--slotted-tone-accent-solid));
726
716
  color: var(--slotted-calendar-selected-color, var(--slotted-tone-accent-on-solid));
727
717
  font-weight: var(--slotted-font-weight-semibold, 600);
728
718
  }
729
719
 
730
- [data-ui='calendar'] [data-part='day']:focus-visible,
731
- [data-ui='calendar'] [data-part='period']:focus-visible,
732
- [data-ui='calendar'] [data-part='heading']:focus-visible,
733
- [data-ui='calendar'] [data-part='previous']:focus-visible,
734
- [data-ui='calendar'] [data-part='next']:focus-visible {
720
+ [data-ui-calendar] [data-part-day]:focus-visible,
721
+ [data-ui-calendar] [data-part-period]:focus-visible,
722
+ [data-ui-calendar] [data-part-heading]:focus-visible,
723
+ [data-ui-calendar] [data-part-previous]:focus-visible,
724
+ [data-ui-calendar] [data-part-next]:focus-visible {
735
725
  outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
736
726
  /* Inside the cell rather than outside it: an offset ring on a grid of
737
727
  touching cells would overlap the four neighbours and read as a smear. */
738
728
  outline-offset: calc(var(--slotted-focus-ring-offset, 2px) * -1);
739
729
  }
740
730
 
741
- [data-ui='calendar'][data-part='root'][data-invalid] {
731
+ [data-ui-calendar][data-part-root][data-invalid] {
742
732
  --slotted-focus-ring-color: var(
743
733
  --slotted-calendar-invalid-focus-ring-color,
744
734
  var(--slotted-focus-ring-color-invalid, Highlight)
@@ -752,11 +742,11 @@
752
742
  * adds — inward, like the ring it replaces, so no neighbouring cell is
753
743
  * covered.
754
744
  */
755
- [data-ui='calendar'][data-part='root'][data-invalid] [data-part='day']:focus-visible,
756
- [data-ui='calendar'][data-part='root'][data-invalid] [data-part='period']:focus-visible,
757
- [data-ui='calendar'][data-part='root'][data-invalid] [data-part='heading']:focus-visible,
758
- [data-ui='calendar'][data-part='root'][data-invalid] [data-part='previous']:focus-visible,
759
- [data-ui='calendar'][data-part='root'][data-invalid] [data-part='next']:focus-visible {
745
+ [data-ui-calendar][data-part-root][data-invalid] [data-part-day]:focus-visible,
746
+ [data-ui-calendar][data-part-root][data-invalid] [data-part-period]:focus-visible,
747
+ [data-ui-calendar][data-part-root][data-invalid] [data-part-heading]:focus-visible,
748
+ [data-ui-calendar][data-part-root][data-invalid] [data-part-previous]:focus-visible,
749
+ [data-ui-calendar][data-part-root][data-invalid] [data-part-next]:focus-visible {
760
750
  --_invalid-ring: calc(
761
751
  var(--slotted-focus-ring-width, 2px) +
762
752
  var(--slotted-calendar-invalid-edge-width, var(--slotted-control-invalid-edge-width, 1px))
@@ -768,38 +758,38 @@
768
758
 
769
759
  /* A calendar the reader may read and not change: the days stop offering
770
760
  themselves, and nothing is faded, because the value is still real. */
771
- [data-ui='calendar'][data-part='root'][data-readonly] [data-part='day'],
772
- [data-ui='calendar'][data-part='root'][data-readonly] [data-part='period'] {
761
+ [data-ui-calendar][data-part-root][data-readonly] [data-part-day],
762
+ [data-ui-calendar][data-part-root][data-readonly] [data-part-period] {
773
763
  cursor: default;
774
764
  }
775
765
 
776
- [data-ui='calendar'][data-part='root'][data-disabled] {
766
+ [data-ui-calendar][data-part-root][data-disabled] {
777
767
  color: var(--slotted-calendar-disabled-color, var(--slotted-disabled-foreground));
778
768
  }
779
769
 
780
770
  /* Nothing a person cannot reach is painted in the tone that says "act on
781
771
  me": today keeps its dot, in the ink a disabled control is allowed. */
782
- [data-ui='calendar'][data-part='root'][data-disabled] [data-part='day'][data-today] {
772
+ [data-ui-calendar][data-part-root][data-disabled] [data-part-day][data-today] {
783
773
  color: var(--slotted-disabled-foreground);
784
774
  }
785
775
 
786
- [data-ui='calendar'][data-part='root'][data-disabled]
787
- [data-part='cell'][data-selected]
788
- [data-part='day'] {
776
+ [data-ui-calendar][data-part-root][data-disabled]
777
+ [data-part-cell][data-selected]
778
+ [data-part-day] {
789
779
  background-color: var(--slotted-disabled-background);
790
780
  color: var(--slotted-disabled-foreground);
791
781
  }
792
782
 
793
- [data-ui='calendar'][data-part='root'][data-disabled] [data-part='day'],
794
- [data-ui='calendar'][data-part='root'][data-disabled] [data-part='period'],
795
- [data-ui='calendar'][data-part='root'][data-disabled] [data-part='previous'],
796
- [data-ui='calendar'][data-part='root'][data-disabled] [data-part='next'],
797
- [data-ui='calendar'][data-part='root'][data-disabled] [data-part='heading'] {
783
+ [data-ui-calendar][data-part-root][data-disabled] [data-part-day],
784
+ [data-ui-calendar][data-part-root][data-disabled] [data-part-period],
785
+ [data-ui-calendar][data-part-root][data-disabled] [data-part-previous],
786
+ [data-ui-calendar][data-part-root][data-disabled] [data-part-next],
787
+ [data-ui-calendar][data-part-root][data-disabled] [data-part-heading] {
798
788
  cursor: not-allowed;
799
789
  }
800
790
 
801
- [data-ui='calendar'] [data-part='previous']:disabled,
802
- [data-ui='calendar'] [data-part='next']:disabled {
791
+ [data-ui-calendar] [data-part-previous]:disabled,
792
+ [data-ui-calendar] [data-part-next]:disabled {
803
793
  color: var(--slotted-disabled-foreground);
804
794
  cursor: not-allowed;
805
795
  }
@@ -819,7 +809,7 @@
819
809
  * than on the root because a container cannot query itself.
820
810
  */
821
811
  @container slotted-calendar (max-width: 320px) {
822
- [data-ui='calendar'] [data-part='grids'] {
812
+ [data-ui-calendar] [data-part-grids] {
823
813
  --_month-gap: var(--slotted-space-4, 0.5rem);
824
814
  }
825
815
  }
@@ -830,16 +820,16 @@
830
820
  * run takes an edge here and only here — two rules the operating system
831
821
  * keeps, on a band that would otherwise be the page's own ground.
832
822
  */
833
- [data-ui='calendar'] [data-part='cell'][data-in-range]::before,
834
- [data-ui='calendar'] [data-part='cell'][data-range-start]::before,
835
- [data-ui='calendar'] [data-part='cell'][data-range-end]::before {
823
+ [data-ui-calendar] [data-part-cell][data-in-range]::before,
824
+ [data-ui-calendar] [data-part-cell][data-range-start]::before,
825
+ [data-ui-calendar] [data-part-cell][data-range-end]::before {
836
826
  border-block: var(--slotted-border-width-thin, 1px) solid
837
827
  var(--slotted-calendar-range-border-color, var(--slotted-tone-accent-border));
838
828
  }
839
829
 
840
830
  /* A proposal keeps its own distance from a choice here too: the pending
841
831
  band's edges are dashed where the chosen run's are solid. */
842
- [data-ui='calendar'] [data-part='cell'][data-preview]::before {
832
+ [data-ui-calendar] [data-part-cell][data-preview]::before {
843
833
  border-block-style: dashed;
844
834
  }
845
835
  }