@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
@@ -29,7 +29,7 @@
29
29
  * by restating the custom property the field reads, so the frame is the one
30
30
  * box a reader sees and the field's stylesheet is not reached into.
31
31
  */
32
- [data-ui='date-range-picker'][data-part='root'] {
32
+ [data-ui-date-range-picker][data-part-root] {
33
33
  display: block;
34
34
  /* The anchor the positioner measures is the control, and a block root
35
35
  lets the frame take the width the form gave it. */
@@ -43,7 +43,7 @@
43
43
  * tokens for the ground, so a form holding a date and a range shows one
44
44
  * frame twice rather than two frames.
45
45
  */
46
- [data-ui='date-range-picker'] [data-part='control'] {
46
+ [data-ui-date-range-picker] [data-part-control] {
47
47
  --_font-size: var(--slotted-control-font-size-md, 13px);
48
48
  --_height: var(--slotted-control-height-md, 34px);
49
49
  --_padding-inline: var(--slotted-control-padding-inline-md, 13px);
@@ -109,7 +109,7 @@
109
109
  * an in-flow trigger was the first thing to be pushed, and the guaranteed
110
110
  * way in was the first thing lost.
111
111
  */
112
- [data-ui='date-range-picker'] [data-part='control'] {
112
+ [data-ui-date-range-picker] [data-part-control] {
113
113
  --_action-inset: max(
114
114
  0px,
115
115
  calc(var(--_padding-inline) - (var(--_action-size) - var(--_icon-size)) / 2)
@@ -122,11 +122,11 @@
122
122
  );
123
123
  }
124
124
 
125
- [data-ui='date-range-picker'] [data-part='control']:has(> [data-part='clear']) {
125
+ [data-ui-date-range-picker] [data-part-control]:has(> [data-part-clear]) {
126
126
  --_actions: 2;
127
127
  }
128
128
 
129
- [data-ui='date-range-picker'][data-part='root'][data-size='sm'] [data-part='control'] {
129
+ [data-ui-date-range-picker][data-part-root][data-size='sm'] [data-part-control] {
130
130
  --_font-size: var(--slotted-control-font-size-sm, 12px);
131
131
  --_height: var(--slotted-control-height-sm, 30px);
132
132
  --_padding-inline: var(--slotted-control-padding-inline-sm, 11px);
@@ -134,7 +134,7 @@
134
134
  --_icon-size: var(--slotted-control-icon-size-sm, 14px);
135
135
  }
136
136
 
137
- [data-ui='date-range-picker'][data-part='root'][data-size='lg'] [data-part='control'] {
137
+ [data-ui-date-range-picker][data-part-root][data-size='lg'] [data-part-control] {
138
138
  --_font-size: var(--slotted-control-font-size-lg, 14px);
139
139
  --_height: var(--slotted-control-height-lg, 38px);
140
140
  --_padding-inline: var(--slotted-control-padding-inline-lg, 15px);
@@ -147,7 +147,7 @@
147
147
  * The three steps `text-field` set, through the field's own variant tokens,
148
148
  * so a theme that retunes `subtle` for one date retunes it for two.
149
149
  */
150
- [data-ui='date-range-picker'][data-part='root'][data-variant='subtle'] [data-part='control'] {
150
+ [data-ui-date-range-picker][data-part-root][data-variant='subtle'] [data-part-control] {
151
151
  background-color: var(
152
152
  --slotted-date-range-picker-subtle-background,
153
153
  var(--slotted-surface-sunken, Canvas)
@@ -158,7 +158,7 @@
158
158
  );
159
159
  }
160
160
 
161
- [data-ui='date-range-picker'][data-part='root'][data-variant='plain'] [data-part='control'] {
161
+ [data-ui-date-range-picker][data-part-root][data-variant='plain'] [data-part-control] {
162
162
  background-color: transparent;
163
163
  border-color: transparent;
164
164
  border-radius: var(--slotted-radius-none, 0px);
@@ -172,8 +172,8 @@
172
172
  * field's border, inline padding, hover wash, invalid edge and focus ring
173
173
  * are all zeroed here, and the frame answers each of them once for both.
174
174
  */
175
- [data-ui='date-range-picker'] [data-part='start'],
176
- [data-ui='date-range-picker'] [data-part='end'] {
175
+ [data-ui-date-range-picker] [data-part-start],
176
+ [data-ui-date-range-picker] [data-part-end] {
177
177
  --slotted-control-border-width: 0px;
178
178
  --slotted-control-padding-inline-sm: 0px;
179
179
  --slotted-control-padding-inline-md: 0px;
@@ -200,8 +200,8 @@
200
200
  * the reader is in the control — the panel open, or focus inside the frame —
201
201
  * because at rest there is no "next press" for it to name.
202
202
  */
203
- [data-ui='date-range-picker'] [data-part='start']::after,
204
- [data-ui='date-range-picker'] [data-part='end']::after {
203
+ [data-ui-date-range-picker] [data-part-start]::after,
204
+ [data-ui-date-range-picker] [data-part-end]::after {
205
205
  background-color: var(
206
206
  --slotted-date-range-picker-current-color,
207
207
  var(--slotted-tone-accent-solid)
@@ -218,17 +218,17 @@
218
218
  var(--slotted-control-transition-easing);
219
219
  }
220
220
 
221
- [data-ui='date-range-picker'][data-part='root']:is(
221
+ [data-ui-date-range-picker][data-part-root]:is(
222
222
  [data-open],
223
- :has([data-part='control']:focus-within)
223
+ :has([data-part-control]:focus-within)
224
224
  )
225
- :is([data-part='start'], [data-part='end'])[data-current]::after {
225
+ :is([data-part-start], [data-part-end])[data-current]::after {
226
226
  opacity: 1;
227
227
  }
228
228
 
229
229
  /* A dash between the two ends, in the adornment's ink: it annotates, and a
230
230
  reader looking for either date should not have to step over it. */
231
- [data-ui='date-range-picker'] [data-part='separator'] {
231
+ [data-ui-date-range-picker] [data-part-separator] {
232
232
  color: var(--slotted-date-range-picker-separator-color, var(--slotted-text-muted, GrayText));
233
233
  flex: 0 0 auto;
234
234
  padding-inline: var(--slotted-space-2, 0.25rem);
@@ -241,8 +241,8 @@
241
241
  * trigger is always drawn: ChromeOS turns `Alt`+`ArrowDown` into `PageDown`
242
242
  * before the browser sees it, so the chord cannot be the only way in.
243
243
  */
244
- [data-ui='date-range-picker'] [data-part='clear'],
245
- [data-ui='date-range-picker'] [data-part='trigger'] {
244
+ [data-ui-date-range-picker] [data-part-clear],
245
+ [data-ui-date-range-picker] [data-part-trigger] {
246
246
  --slotted-icon-size: var(--_icon-size);
247
247
 
248
248
  align-items: center;
@@ -270,7 +270,7 @@
270
270
  -webkit-tap-highlight-color: transparent;
271
271
  }
272
272
 
273
- [data-ui='date-range-picker'] [data-part='clear'] {
273
+ [data-ui-date-range-picker] [data-part-clear] {
274
274
  inset-inline-end: calc(
275
275
  var(--_action-inset) + var(--_action-size) + var(--slotted-space-1, 0.125rem)
276
276
  );
@@ -278,8 +278,8 @@
278
278
 
279
279
  /* The hit area, recovered outside the paint, exactly as every other inner
280
280
  control in the library recovers it. */
281
- [data-ui='date-range-picker'] [data-part='clear']::after,
282
- [data-ui='date-range-picker'] [data-part='trigger']::after {
281
+ [data-ui-date-range-picker] [data-part-clear]::after,
282
+ [data-ui-date-range-picker] [data-part-trigger]::after {
283
283
  content: '';
284
284
  inset: min(0px, calc((100% - var(--slotted-target-min, 24px)) / 2));
285
285
  position: absolute;
@@ -290,16 +290,15 @@
290
290
  the hit area above grows to 44 pixels around them. Side by side, neither
291
291
  button reaches across the edge the two share. */
292
292
  @media (pointer: coarse) {
293
- [data-ui='date-range-picker'] :is([data-part='clear'], [data-part='trigger'])::after {
293
+ [data-ui-date-range-picker] :is([data-part-clear], [data-part-trigger])::after {
294
294
  inset: min(0px, calc((100% - var(--slotted-target-comfortable, 44px)) / 2));
295
295
  }
296
296
 
297
- [data-ui='date-range-picker']
298
- [data-part='clear']:has(+ [data-part='trigger']:not([hidden]))::after {
297
+ [data-ui-date-range-picker] [data-part-clear]:has(+ [data-part-trigger]:not([hidden]))::after {
299
298
  inset-inline-end: 0;
300
299
  }
301
300
 
302
- [data-ui='date-range-picker'] [data-part='clear']:not([hidden]) + [data-part='trigger']::after {
301
+ [data-ui-date-range-picker] [data-part-clear]:not([hidden]) + [data-part-trigger]::after {
303
302
  inset-inline-start: 0;
304
303
  }
305
304
  }
@@ -309,16 +308,16 @@
309
308
  chevron while the surface is open: what opens is a month, not a list, and
310
309
  the trigger goes on saying what kind of value it holds. */
311
310
 
312
- [data-ui='date-range-picker'] [data-part='clear']:hover:not(:disabled):not([data-disabled]),
313
- [data-ui='date-range-picker'] [data-part='trigger']:hover:not(:disabled):not([data-disabled]) {
311
+ [data-ui-date-range-picker] [data-part-clear]:hover:not(:disabled):not([data-disabled]),
312
+ [data-ui-date-range-picker] [data-part-trigger]:hover:not(:disabled):not([data-disabled]) {
314
313
  background-color: var(
315
314
  --slotted-date-range-picker-action-hover-background,
316
315
  var(--slotted-tone-secondary-subtle-hover)
317
316
  );
318
317
  }
319
318
 
320
- [data-ui='date-range-picker'] [data-part='clear']:active:not(:disabled):not([data-disabled]),
321
- [data-ui='date-range-picker'] [data-part='trigger']:active:not(:disabled):not([data-disabled]) {
319
+ [data-ui-date-range-picker] [data-part-clear]:active:not(:disabled):not([data-disabled]),
320
+ [data-ui-date-range-picker] [data-part-trigger]:active:not(:disabled):not([data-disabled]) {
322
321
  background-color: var(
323
322
  --slotted-date-range-picker-action-active-background,
324
323
  var(--slotted-tone-secondary-subtle-active)
@@ -327,14 +326,14 @@
327
326
 
328
327
  /* Their own rings: tabbing from the last segment to a button has to move
329
328
  something visible, and the frame's ring would sit still. */
330
- [data-ui='date-range-picker'] [data-part='clear']:focus-visible,
331
- [data-ui='date-range-picker'] [data-part='trigger']:focus-visible {
329
+ [data-ui-date-range-picker] [data-part-clear]:focus-visible,
330
+ [data-ui-date-range-picker] [data-part-trigger]:focus-visible {
332
331
  outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
333
332
  outline-offset: calc(var(--slotted-focus-ring-offset, 2px) * -1);
334
333
  }
335
334
 
336
- [data-ui='date-range-picker'] [data-part='clear']:disabled,
337
- [data-ui='date-range-picker'] [data-part='trigger']:disabled {
335
+ [data-ui-date-range-picker] [data-part-clear]:disabled,
336
+ [data-ui-date-range-picker] [data-part-trigger]:disabled {
338
337
  color: var(--slotted-disabled-foreground);
339
338
  cursor: not-allowed;
340
339
  }
@@ -345,30 +344,30 @@
345
344
  * one it can meet, which is the order `STATE_PRECEDENCE` sets.
346
345
  */
347
346
 
348
- [data-ui='date-range-picker'][data-part='root']:not([data-disabled]):not([data-readonly]):not(
347
+ [data-ui-date-range-picker][data-part-root]:not([data-disabled]):not([data-readonly]):not(
349
348
  [data-invalid]
350
349
  )
351
- [data-part='control']:hover {
350
+ [data-part-control]:hover {
352
351
  border-color: var(
353
352
  --slotted-date-range-picker-hover-border-color,
354
353
  var(--slotted-tone-accent-border)
355
354
  );
356
355
  }
357
356
 
358
- [data-ui='date-range-picker'][data-part='root'][data-variant='subtle']:not([data-disabled]):not(
357
+ [data-ui-date-range-picker][data-part-root][data-variant='subtle']:not([data-disabled]):not(
359
358
  [data-readonly]
360
359
  ):not([data-invalid])
361
- [data-part='control']:hover {
360
+ [data-part-control]:hover {
362
361
  background-color: var(
363
362
  --slotted-date-range-picker-subtle-hover-background,
364
363
  var(--slotted-tone-secondary-subtle-hover)
365
364
  );
366
365
  }
367
366
 
368
- [data-ui='date-range-picker'][data-part='root'][data-variant='plain']:not([data-disabled]):not(
367
+ [data-ui-date-range-picker][data-part-root][data-variant='plain']:not([data-disabled]):not(
369
368
  [data-readonly]
370
369
  ):not([data-invalid])
371
- [data-part='control']:hover {
370
+ [data-part-control]:hover {
372
371
  background-color: var(
373
372
  --slotted-date-range-picker-plain-hover-background,
374
373
  var(--slotted-tone-secondary-subtle-hover)
@@ -386,9 +385,9 @@
386
385
  * records: every part of a segmented field is a `div`, and a browser refuses
387
386
  * `:focus-visible` on a `div` a pointer focused.
388
387
  */
389
- [data-ui='date-range-picker']
390
- [data-part='control']:focus-within:not(
391
- :has(> [data-part='clear']:focus, > [data-part='trigger']:focus)
388
+ [data-ui-date-range-picker]
389
+ [data-part-control]:focus-within:not(
390
+ :has(> [data-part-clear]:focus, > [data-part-trigger]:focus)
392
391
  ) {
393
392
  box-shadow: var(--slotted-control-shadow-focus-geometry, 0 1px 4px -1px)
394
393
  var(--slotted-focus-ring-color, Highlight);
@@ -403,9 +402,9 @@
403
402
  * shadow that appears only under focus is a cell that changes size when it
404
403
  * is used.
405
404
  */
406
- [data-ui='date-range-picker'][data-part='root'][data-variant='plain']
407
- [data-part='control']:focus-within:not(
408
- :has(> [data-part='clear']:focus, > [data-part='trigger']:focus)
405
+ [data-ui-date-range-picker][data-part-root][data-variant='plain']
406
+ [data-part-control]:focus-within:not(
407
+ :has(> [data-part-clear]:focus, > [data-part-trigger]:focus)
409
408
  ) {
410
409
  box-shadow: none;
411
410
  outline-offset: calc(var(--slotted-focus-ring-offset, 2px) * -1);
@@ -414,14 +413,14 @@
414
413
  /* Invalid outranks hover and is written after it. The ring is retargeted
415
414
  rather than repainted, so the frame's outline and the ring on the two
416
415
  buttons all move at once. */
417
- [data-ui='date-range-picker'][data-part='root'][data-invalid] {
416
+ [data-ui-date-range-picker][data-part-root][data-invalid] {
418
417
  --slotted-focus-ring-color: var(
419
418
  --slotted-date-range-picker-invalid-focus-ring-color,
420
419
  var(--slotted-focus-ring-color-invalid, Highlight)
421
420
  );
422
421
  }
423
422
 
424
- [data-ui='date-range-picker'][data-part='root'][data-invalid] [data-part='control'] {
423
+ [data-ui-date-range-picker][data-part-root][data-invalid] [data-part-control] {
425
424
  --_invalid-edge-width: var(
426
425
  --slotted-date-range-picker-invalid-edge-width,
427
426
  var(--slotted-control-invalid-edge-width, 1px)
@@ -445,9 +444,9 @@
445
444
  box-shadow: var(--_invalid-edge);
446
445
  }
447
446
 
448
- [data-ui='date-range-picker'][data-invalid]
449
- [data-part='control']:focus-within:not(
450
- :has(> [data-part='clear']:focus, > [data-part='trigger']:focus)
447
+ [data-ui-date-range-picker][data-invalid]
448
+ [data-part-control]:focus-within:not(
449
+ :has(> [data-part-clear]:focus, > [data-part-trigger]:focus)
451
450
  ) {
452
451
  box-shadow:
453
452
  var(--_invalid-edge),
@@ -455,9 +454,9 @@
455
454
  var(--slotted-focus-ring-color, Highlight);
456
455
  }
457
456
 
458
- [data-ui='date-range-picker'][data-part='root'][data-variant='plain'][data-invalid]
459
- [data-part='control']:focus-within:not(
460
- :has(> [data-part='clear']:focus, > [data-part='trigger']:focus)
457
+ [data-ui-date-range-picker][data-part-root][data-variant='plain'][data-invalid]
458
+ [data-part-control]:focus-within:not(
459
+ :has(> [data-part-clear]:focus, > [data-part-trigger]:focus)
461
460
  ) {
462
461
  /* The ring lies inside the box here, over the border and an edge as wide as
463
462
  it; the edge reaches past the ring. */
@@ -474,23 +473,23 @@
474
473
  * control draws its ring double, which a valid ring is not.
475
474
  */
476
475
  @media (forced-colors: active) {
477
- [data-ui='date-range-picker'][data-part='root'][data-invalid] [data-part='control'] {
476
+ [data-ui-date-range-picker][data-part-root][data-invalid] [data-part-control] {
478
477
  outline: var(--_invalid-edge-width) solid CanvasText;
479
478
  outline-offset: calc(-1 * (var(--_border-width) + var(--_invalid-edge-width)));
480
479
  }
481
480
 
482
- [data-ui='date-range-picker'][data-invalid]
483
- [data-part='control']:focus-within:not(
484
- :has(> [data-part='clear']:focus, > [data-part='trigger']:focus)
481
+ [data-ui-date-range-picker][data-invalid]
482
+ [data-part-control]:focus-within:not(
483
+ :has(> [data-part-clear]:focus, > [data-part-trigger]:focus)
485
484
  ) {
486
485
  outline: calc(var(--slotted-focus-ring-width, 2px) + var(--_invalid-edge-width)) double
487
486
  var(--slotted-focus-ring-color, Highlight);
488
487
  outline-offset: var(--slotted-focus-ring-offset, 2px);
489
488
  }
490
489
 
491
- [data-ui='date-range-picker'][data-part='root'][data-variant='plain'][data-invalid]
492
- [data-part='control']:focus-within:not(
493
- :has(> [data-part='clear']:focus, > [data-part='trigger']:focus)
490
+ [data-ui-date-range-picker][data-part-root][data-variant='plain'][data-invalid]
491
+ [data-part-control]:focus-within:not(
492
+ :has(> [data-part-clear]:focus, > [data-part-trigger]:focus)
494
493
  ) {
495
494
  outline: calc(var(--slotted-focus-ring-width, 2px) + var(--_invalid-edge-width)) double
496
495
  var(--slotted-focus-ring-color, Highlight);
@@ -502,7 +501,7 @@
502
501
 
503
502
  /* Read-only stays focusable, readable and copyable, and must not be
504
503
  mistakable for disabled: the ground says "not yours to change". */
505
- [data-ui='date-range-picker'][data-part='root'][data-readonly] [data-part='control'] {
504
+ [data-ui-date-range-picker][data-part-root][data-readonly] [data-part-control] {
506
505
  background-color: var(
507
506
  --slotted-date-range-picker-readonly-background,
508
507
  var(--slotted-tone-secondary-subtle-hover)
@@ -512,7 +511,7 @@
512
511
 
513
512
  /* Muted to the colour the theme measures rather than faded by opacity: a
514
513
  disabled form still has to say what it holds. */
515
- [data-ui='date-range-picker'][data-part='root'][data-disabled] [data-part='control'] {
514
+ [data-ui-date-range-picker][data-part-root][data-disabled] [data-part-control] {
516
515
  background-color: var(
517
516
  --slotted-date-range-picker-disabled-background,
518
517
  var(--slotted-disabled-background)
@@ -526,7 +525,7 @@
526
525
  cursor: not-allowed;
527
526
  }
528
527
 
529
- [data-ui='date-range-picker'][data-part='root'][data-disabled] [data-part='separator'] {
528
+ [data-ui-date-range-picker][data-part-root][data-disabled] [data-part-separator] {
530
529
  color: var(--slotted-disabled-foreground);
531
530
  }
532
531
 
@@ -535,7 +534,7 @@
535
534
  * What `packages/core/src/positioner` writes `position`, `left` and `top`
536
535
  * onto. The painted surface is one element in, as every overlay is built.
537
536
  */
538
- [data-ui='date-range-picker'][data-part='positioner'] {
537
+ [data-ui-date-range-picker][data-part-positioner] {
539
538
  /* Only the block inset: the positioner writes `left` and never `right`,
540
539
  and `inset-inline-start` would resolve to `right` in a right-to-left
541
540
  document and win over the measured value. */
@@ -559,19 +558,16 @@
559
558
  translate var(--slotted-duration-short) var(--slotted-easing-exit);
560
559
  }
561
560
 
562
- [data-ui='date-range-picker'][data-part='positioner'][data-side='top'] {
561
+ [data-ui-date-range-picker][data-part-positioner][data-side='top'] {
563
562
  translate: 0 var(--_enter-distance);
564
563
  }
565
564
 
566
565
  /* A lateral side has no block direction to arrive from, so it only fades. */
567
- [data-ui='date-range-picker'][data-part='positioner']:is(
568
- [data-side='left'],
569
- [data-side='right']
570
- ) {
566
+ [data-ui-date-range-picker][data-part-positioner]:is([data-side='left'], [data-side='right']) {
571
567
  translate: 0 0;
572
568
  }
573
569
 
574
- [data-ui='date-range-picker'][data-part='positioner'][data-open] {
570
+ [data-ui-date-range-picker][data-part-positioner][data-open] {
575
571
  opacity: 1;
576
572
  translate: 0 0;
577
573
  transition: none;
@@ -581,16 +577,16 @@
581
577
  `select` records: a transition starts from the style the browser computed
582
578
  last, and the positioner writes `data-side` in the same style update as
583
579
  the family opens the layer. Only a layer the positioner placed arrives. */
584
- [data-ui='date-range-picker'][data-part='positioner'][data-open][data-positioned] {
580
+ [data-ui-date-range-picker][data-part-positioner][data-open][data-positioned] {
585
581
  animation: slotted-date-range-picker-enter-down var(--slotted-duration-medium)
586
582
  var(--slotted-easing-enter);
587
583
  }
588
584
 
589
- [data-ui='date-range-picker'][data-part='positioner'][data-open][data-positioned][data-side='top'] {
585
+ [data-ui-date-range-picker][data-part-positioner][data-open][data-positioned][data-side='top'] {
590
586
  animation-name: slotted-date-range-picker-enter-up;
591
587
  }
592
588
 
593
- [data-ui='date-range-picker'][data-part='positioner'][data-open][data-positioned]:is(
589
+ [data-ui-date-range-picker][data-part-positioner][data-open][data-positioned]:is(
594
590
  [data-side='left'],
595
591
  [data-side='right']
596
592
  ) {
@@ -619,25 +615,25 @@
619
615
 
620
616
  /* Stillness keeps the fade and drops the movement. */
621
617
  @media (prefers-reduced-motion: reduce) {
622
- [data-ui='date-range-picker'][data-part='positioner'],
623
- [data-ui='date-range-picker'][data-part='positioner'][data-side='top'],
624
- [data-ui='date-range-picker'][data-part='positioner'][data-side='left'],
625
- [data-ui='date-range-picker'][data-part='positioner'][data-side='right'] {
618
+ [data-ui-date-range-picker][data-part-positioner],
619
+ [data-ui-date-range-picker][data-part-positioner][data-side='top'],
620
+ [data-ui-date-range-picker][data-part-positioner][data-side='left'],
621
+ [data-ui-date-range-picker][data-part-positioner][data-side='right'] {
626
622
  translate: 0 0;
627
623
  transition: opacity var(--slotted-duration-short) var(--slotted-easing-exit);
628
624
  }
629
625
 
630
- [data-ui='date-range-picker'][data-part='positioner'][data-open][data-positioned],
631
- [data-ui='date-range-picker'][data-part='positioner'][data-open][data-positioned][data-side='top'],
632
- [data-ui='date-range-picker'][data-part='positioner'][data-open][data-positioned][data-side='left'],
633
- [data-ui='date-range-picker'][data-part='positioner'][data-open][data-positioned][data-side='right'] {
626
+ [data-ui-date-range-picker][data-part-positioner][data-open][data-positioned],
627
+ [data-ui-date-range-picker][data-part-positioner][data-open][data-positioned][data-side='top'],
628
+ [data-ui-date-range-picker][data-part-positioner][data-open][data-positioned][data-side='left'],
629
+ [data-ui-date-range-picker][data-part-positioner][data-open][data-positioned][data-side='right'] {
634
630
  animation-name: slotted-date-range-picker-fade;
635
631
  }
636
632
  }
637
633
 
638
634
  /* The anchor scrolled out of its own clipper. The calendar is still open and
639
635
  still belongs to a control the reader can no longer see. */
640
- [data-ui='date-range-picker'][data-part='positioner'][data-detached] {
636
+ [data-ui-date-range-picker][data-part-positioner][data-detached] {
641
637
  visibility: hidden;
642
638
  }
643
639
 
@@ -647,7 +643,7 @@
647
643
  * `date-picker` records: a percentage flex basis against a shrink-wrapped
648
644
  * container makes the surface wider than anything in it.
649
645
  */
650
- [data-ui='date-range-picker'] [data-part='content'] {
646
+ [data-ui-date-range-picker] [data-part-content] {
651
647
  background-color: var(
652
648
  --slotted-date-range-picker-surface,
653
649
  var(--slotted-surface-raised, Canvas)
@@ -686,7 +682,7 @@
686
682
  * has no width of its own to ask about, which is the rule `datetime-picker`
687
683
  * records for its own two panels.
688
684
  */
689
- [data-ui='date-range-picker'] [data-part='panels'] {
685
+ [data-ui-date-range-picker] [data-part-panels] {
690
686
  align-items: flex-start;
691
687
  display: flex;
692
688
  flex-wrap: wrap;
@@ -695,7 +691,7 @@
695
691
  min-inline-size: 0;
696
692
  }
697
693
 
698
- [data-ui='date-range-picker'] [data-part='panels'] > [data-ui='calendar'] {
694
+ [data-ui-date-range-picker] [data-part-panels] > [data-ui-calendar] {
699
695
  flex: 0 1 auto;
700
696
  }
701
697
 
@@ -713,7 +709,7 @@
713
709
  * own width, so the calendar decides how wide the panel is and the band
714
710
  * wraps inside whatever it decides.
715
711
  */
716
- [data-ui='date-range-picker'] [data-part='head'] {
712
+ [data-ui-date-range-picker] [data-part-head] {
717
713
  box-sizing: border-box;
718
714
  inline-size: 0;
719
715
  min-inline-size: 100%;
@@ -738,8 +734,8 @@
738
734
  /* The two ends and the dash between them are one run, and the run does not
739
735
  break inside itself: "12 Sep –" on one line and "16 Sep" on the next is a
740
736
  range read twice. */
741
- [data-ui='date-range-picker'] [data-part='head'] > [data-part='head-start'],
742
- [data-ui='date-range-picker'] [data-part='head'] > [data-part='head-end'] {
737
+ [data-ui-date-range-picker] [data-part-head] > [data-part-head-start],
738
+ [data-ui-date-range-picker] [data-part-head] > [data-part-head-end] {
743
739
  color: var(--slotted-date-range-picker-content-color, var(--slotted-text, CanvasText));
744
740
  font-size: var(--slotted-font-size-sm, 13px);
745
741
  font-variant-numeric: tabular-nums;
@@ -760,16 +756,16 @@
760
756
  /* The end not yet written, drawn as its placeholder beside the one that is;
761
757
  and the pending one, which is a proposal and reads as the band's own
762
758
  proposal in the calendar does. */
763
- [data-ui='date-range-picker']
764
- [data-part='head']
765
- :is([data-part='head-start'], [data-part='head-end'])[data-placeholder] {
759
+ [data-ui-date-range-picker]
760
+ [data-part-head]
761
+ :is([data-part-head-start], [data-part-head-end])[data-placeholder] {
766
762
  color: var(--slotted-date-range-picker-placeholder-color, var(--slotted-text-muted, GrayText));
767
763
  font-weight: var(--slotted-font-weight-regular, 400);
768
764
  }
769
765
 
770
- [data-ui='date-range-picker']
771
- [data-part='head']
772
- :is([data-part='head-start'], [data-part='head-end'])[data-pending] {
766
+ [data-ui-date-range-picker]
767
+ [data-part-head]
768
+ :is([data-part-head-start], [data-part-head-end])[data-pending] {
773
769
  color: var(--slotted-date-range-picker-pending-color, var(--slotted-tone-accent-text));
774
770
  }
775
771
 
@@ -779,7 +775,7 @@
779
775
  * keeps the tone and drops a step of weight, the way the calendar's pending
780
776
  * band keeps the tint and drops a step of share.
781
777
  */
782
- [data-ui='date-range-picker'] [data-part='length'] {
778
+ [data-ui-date-range-picker] [data-part-length] {
783
779
  color: var(--slotted-date-range-picker-length-color, var(--slotted-tone-accent-text));
784
780
  font-size: var(--slotted-font-size-sm, 13px);
785
781
  font-variant-numeric: tabular-nums;
@@ -792,19 +788,19 @@
792
788
  white-space: nowrap;
793
789
  }
794
790
 
795
- [data-ui='date-range-picker'] [data-part='length'][data-pending] {
791
+ [data-ui-date-range-picker] [data-part-length][data-pending] {
796
792
  font-weight: var(--slotted-font-weight-medium, 500);
797
793
  }
798
794
 
799
795
  /* An empty length still holds its line, so the band does not grow a row
800
796
  when the first end is chosen. */
801
- [data-ui='date-range-picker'] [data-part='length']:empty::before {
797
+ [data-ui-date-range-picker] [data-part-length]:empty::before {
802
798
  content: '\200B';
803
799
  }
804
800
 
805
801
  /* The limit, on a row of its own under the ends: a rule the grid enforces
806
802
  is a rule the band names. */
807
- [data-ui='date-range-picker'] [data-part='limit'] {
803
+ [data-ui-date-range-picker] [data-part-limit] {
808
804
  color: var(--slotted-date-range-picker-limit-color, var(--slotted-text-muted, GrayText));
809
805
  flex-basis: 100%;
810
806
  font-size: var(--slotted-font-size-xs, 11px);
@@ -817,7 +813,7 @@
817
813
  * and a library that guessed at one would be guessing at a fiscal year. It
818
814
  * ships the column they stand in and the button each one is.
819
815
  */
820
- [data-ui='date-range-picker'] [data-part='presets'] {
816
+ [data-ui-date-range-picker] [data-part-presets] {
821
817
  align-items: stretch;
822
818
  display: flex;
823
819
  /* It grows: beside the grid it takes what the surface leaves, and alone
@@ -836,7 +832,7 @@
836
832
  * no left edge to run down. Selected, it takes the accent's subtle ground
837
833
  * and text, which is the pair `calendar` gives a day inside the run.
838
834
  */
839
- [data-ui='date-range-picker'] [data-part='preset'] {
835
+ [data-ui-date-range-picker] [data-part-preset] {
840
836
  appearance: none;
841
837
  background-color: transparent;
842
838
  border: 0;
@@ -859,21 +855,21 @@
859
855
  -webkit-tap-highlight-color: transparent;
860
856
  }
861
857
 
862
- [data-ui='date-range-picker'] [data-part='preset']:hover:not(:disabled):not([data-selected]) {
858
+ [data-ui-date-range-picker] [data-part-preset]:hover:not(:disabled):not([data-selected]) {
863
859
  background-color: var(
864
860
  --slotted-date-range-picker-preset-hover-background,
865
861
  var(--slotted-tone-secondary-subtle-hover)
866
862
  );
867
863
  }
868
864
 
869
- [data-ui='date-range-picker'] [data-part='preset']:active:not(:disabled):not([data-selected]) {
865
+ [data-ui-date-range-picker] [data-part-preset]:active:not(:disabled):not([data-selected]) {
870
866
  background-color: var(
871
867
  --slotted-date-range-picker-preset-active-background,
872
868
  var(--slotted-tone-secondary-subtle-active)
873
869
  );
874
870
  }
875
871
 
876
- [data-ui='date-range-picker'] [data-part='preset'][data-selected] {
872
+ [data-ui-date-range-picker] [data-part-preset][data-selected] {
877
873
  background-color: var(
878
874
  --slotted-date-range-picker-preset-selected-background,
879
875
  var(--slotted-tone-accent-subtle-hover)
@@ -882,17 +878,17 @@
882
878
  font-weight: var(--slotted-font-weight-medium, 500);
883
879
  }
884
880
 
885
- [data-ui='date-range-picker'] [data-part='preset']:focus-visible {
881
+ [data-ui-date-range-picker] [data-part-preset]:focus-visible {
886
882
  outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
887
883
  outline-offset: calc(var(--slotted-focus-ring-offset, 2px) * -1);
888
884
  }
889
885
 
890
- [data-ui='date-range-picker'] [data-part='preset']:disabled {
886
+ [data-ui-date-range-picker] [data-part-preset]:disabled {
891
887
  color: var(--slotted-disabled-foreground);
892
888
  cursor: not-allowed;
893
889
  }
894
890
 
895
- [data-ui='date-range-picker'] [data-part='footer'] {
891
+ [data-ui-date-range-picker] [data-part-footer] {
896
892
  box-sizing: border-box;
897
893
  inline-size: 0;
898
894
  min-inline-size: 100%;
@@ -917,7 +913,7 @@
917
913
  * decision is testable without a device.
918
914
  */
919
915
  @media (max-width: 480px) and (pointer: coarse) {
920
- [data-ui='date-range-picker'][data-part='positioner'][data-presentation='sheet'] {
916
+ [data-ui-date-range-picker][data-part-positioner][data-presentation='sheet'] {
921
917
  /* A sheet is not placed against an anchor, it is placed against the
922
918
  screen. */
923
919
  inset: auto 0 0;
@@ -925,12 +921,12 @@
925
921
  translate: 0 var(--slotted-space-9, 2rem);
926
922
  }
927
923
 
928
- [data-ui='date-range-picker'][data-part='positioner'][data-presentation='sheet'][data-open] {
924
+ [data-ui-date-range-picker][data-part-positioner][data-presentation='sheet'][data-open] {
929
925
  translate: 0 0;
930
926
  }
931
927
 
932
- [data-ui='date-range-picker'][data-part='positioner'][data-presentation='sheet']
933
- [data-part='content'] {
928
+ [data-ui-date-range-picker][data-part-positioner][data-presentation='sheet']
929
+ [data-part-content] {
934
930
  border-end-end-radius: 0;
935
931
  border-end-start-radius: 0;
936
932
  border-inline: 0;
@@ -942,8 +938,8 @@
942
938
  justify-content: center;
943
939
  }
944
940
 
945
- [data-ui='date-range-picker'][data-part='positioner'][data-presentation='sheet']
946
- [data-part='presets'] {
941
+ [data-ui-date-range-picker][data-part-positioner][data-presentation='sheet']
942
+ [data-part-presets] {
947
943
  /* Beside the grid there is no room for a column of shortcuts, so they
948
944
  become a row above it and keep their labels. */
949
945
  flex-direction: row;
@@ -954,27 +950,27 @@
954
950
  @media (forced-colors: active) {
955
951
  /* A transparent border has no system colour to be remapped to, so the
956
952
  `plain` frame would lose its only edge where an edge matters most. */
957
- [data-ui='date-range-picker'][data-part='root'][data-variant='plain'] [data-part='control'] {
953
+ [data-ui-date-range-picker][data-part-root][data-variant='plain'] [data-part-control] {
958
954
  border-color: ButtonBorder;
959
955
  }
960
956
 
961
957
  /* The underline is painted with a background, and forced colours replace
962
958
  a background that is not one of the system's own. */
963
- [data-ui='date-range-picker'] [data-part='start']::after,
964
- [data-ui='date-range-picker'] [data-part='end']::after {
959
+ [data-ui-date-range-picker] [data-part-start]::after,
960
+ [data-ui-date-range-picker] [data-part-end]::after {
965
961
  forced-color-adjust: none;
966
962
  }
967
963
 
968
964
  /* The underline keeps its ink as the text's own: a tone has nothing to
969
965
  map to here, and `currentcolor` is whatever the system gave the frame. */
970
- [data-ui='date-range-picker'] [data-part='start']::after,
971
- [data-ui='date-range-picker'] [data-part='end']::after {
966
+ [data-ui-date-range-picker] [data-part-start]::after,
967
+ [data-ui-date-range-picker] [data-part-end]::after {
972
968
  background-color: currentcolor;
973
969
  }
974
970
 
975
971
  /* A tinted ground has nothing to tint in a palette the system replaced;
976
972
  the selected shortcut takes the pair the system keeps legible. */
977
- [data-ui='date-range-picker'] [data-part='preset'][data-selected] {
973
+ [data-ui-date-range-picker] [data-part-preset][data-selected] {
978
974
  background-color: Highlight;
979
975
  color: HighlightText;
980
976
  forced-color-adjust: none;