@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
@@ -18,7 +18,7 @@
18
18
  * order is the browser's locale rather than the application's. The value
19
19
  * reaches a form through a hidden input carrying `YYYY-MM-DDTHH:mm:ss`.
20
20
  */
21
- [data-ui='datetime-field'][data-part='root'] {
21
+ [data-ui-datetime-field][data-part-root] {
22
22
  /**
23
23
  * Type, height, inline padding, gap and glyph size come from the control
24
24
  * scales — the only ones the theme restates per density — so a datetime in
@@ -89,7 +89,7 @@
89
89
  * begin from it — the arithmetic `text-field` records, holding at every step
90
90
  * and every density.
91
91
  */
92
- [data-ui='datetime-field'][data-part='root']:has(> [data-part='clear']:last-child) {
92
+ [data-ui-datetime-field][data-part-root]:has(> [data-part-clear]:last-child) {
93
93
  padding-inline-end: max(
94
94
  0px,
95
95
  calc(var(--_padding-inline) - (var(--_action-size) - var(--_icon-size)) / 2)
@@ -111,7 +111,7 @@
111
111
  * the focus. Each half stays one flex item, so the value never breaks
112
112
  * inside a date or inside a time.
113
113
  */
114
- [data-ui='datetime-field'] [data-part='segments'] {
114
+ [data-ui-datetime-field] [data-part-segments] {
115
115
  align-items: center;
116
116
  column-gap: var(--_half-gap);
117
117
  /* It says what it is before it is pressed. A datetime is typed, so the
@@ -137,7 +137,7 @@
137
137
  * a field that had done nothing but inherit. The isolation keeps the decision
138
138
  * inside the half, so the frame around it still reads with the document.
139
139
  */
140
- [data-ui='datetime-field'] [data-part='half'] {
140
+ [data-ui-datetime-field] [data-part-half] {
141
141
  align-items: center;
142
142
  direction: ltr;
143
143
  display: flex;
@@ -158,7 +158,7 @@
158
158
  * the document — which is the reason every other family in this library
159
159
  * reaches for it too.
160
160
  */
161
- [data-ui='datetime-field'] [data-part='segments']:dir(rtl) {
161
+ [data-ui-datetime-field] [data-part-segments]:dir(rtl) {
162
162
  justify-content: flex-end;
163
163
  }
164
164
 
@@ -169,7 +169,7 @@
169
169
  * single digit becomes two: `1ch` is the advance of a digit in a tabular
170
170
  * face, and `--_digits` is how many the field can hold.
171
171
  */
172
- [data-ui='datetime-field'] [data-part='segment'] {
172
+ [data-ui-datetime-field] [data-part-segment] {
173
173
  --_digits: 2;
174
174
 
175
175
  background-color: transparent;
@@ -206,7 +206,7 @@
206
206
 
207
207
  /* The one field with four digits rather than two. Stated here rather than in
208
208
  the markup, so a year is the same width in both bindings and the harness. */
209
- [data-ui='datetime-field'] [data-part='segment'][data-field='year'] {
209
+ [data-ui-datetime-field] [data-part-segment][data-field='year'] {
210
210
  --_digits: 4;
211
211
  }
212
212
 
@@ -217,7 +217,7 @@
217
217
  * first of those, and a floor clips none of them. The digit face is dropped
218
218
  * here for the same reason: tabular figures inside a word letter-space it.
219
219
  */
220
- [data-ui='datetime-field'] [data-part='segment'][data-field='dayPeriod'] {
220
+ [data-ui-datetime-field] [data-part-segment][data-field='dayPeriod'] {
221
221
  font-variant-numeric: normal;
222
222
  min-inline-size: var(--slotted-datetime-field-period-min-inline-size, 2ch);
223
223
  /* An abbreviation, in whatever case the locale itself writes it. */
@@ -231,7 +231,7 @@
231
231
  * rather than in English — and a value being typed has to keep saying what
232
232
  * is missing.
233
233
  */
234
- [data-ui='datetime-field'] [data-part='segment'][data-placeholder] {
234
+ [data-ui-datetime-field] [data-part-segment][data-placeholder] {
235
235
  color: var(--slotted-datetime-field-placeholder-color, var(--slotted-text-muted, GrayText));
236
236
  }
237
237
 
@@ -240,7 +240,7 @@
240
240
  * name already carries the whole value in words, so a screen reader reading
241
241
  * "slash" between two numbers would be reading punctuation aloud.
242
242
  */
243
- [data-ui='datetime-field'] [data-part='literal'] {
243
+ [data-ui-datetime-field] [data-part-literal] {
244
244
  color: var(--slotted-datetime-field-literal-color, var(--slotted-text-muted, GrayText));
245
245
  flex: 0 0 auto;
246
246
  /* Its own bidi run: a colon between two numbers takes the paragraph's
@@ -258,7 +258,7 @@
258
258
  * whitespace is not drawn at all, and the row's column gap separates the
259
259
  * halves instead.
260
260
  */
261
- [data-ui='datetime-field'] [data-part='literal'][data-boundary] {
261
+ [data-ui-datetime-field] [data-part-literal][data-boundary] {
262
262
  margin-inline-end: 0;
263
263
  }
264
264
 
@@ -273,7 +273,7 @@
273
273
  * It is a real `input`, so a mobile keyboard opens and the platform supplies
274
274
  * every text-editing key the reader already knows.
275
275
  */
276
- [data-ui='datetime-field'] [data-part='duration'] {
276
+ [data-ui-datetime-field] [data-part-duration] {
277
277
  appearance: none;
278
278
  background-color: transparent;
279
279
  border: 0;
@@ -297,11 +297,11 @@
297
297
 
298
298
  /* Left-to-right content in a right-to-left field still sits at the reading
299
299
  edge, which is the treatment every form gives a phone number or an IBAN. */
300
- [data-ui='datetime-field'] [data-part='duration']:dir(rtl) {
300
+ [data-ui-datetime-field] [data-part-duration]:dir(rtl) {
301
301
  text-align: right;
302
302
  }
303
303
 
304
- [data-ui='datetime-field'] [data-part='duration']::placeholder {
304
+ [data-ui-datetime-field] [data-part-duration]::placeholder {
305
305
  color: var(--slotted-datetime-field-placeholder-color, var(--slotted-text-muted, GrayText));
306
306
  }
307
307
 
@@ -313,7 +313,7 @@
313
313
  * library already has for "and then"; it is direction-sensitive, so it turns
314
314
  * with the document rather than pointing out of it.
315
315
  */
316
- [data-ui='datetime-field'] [data-part='preview'] {
316
+ [data-ui-datetime-field] [data-part-preview] {
317
317
  /**
318
318
  * One line box, not a flex row. The chevron sits *in* the line rather than
319
319
  * beside it, which is the only way it can be aligned to the text at all —
@@ -351,7 +351,7 @@
351
351
  * marked `directional`: it points along the reading direction, so the `icon`
352
352
  * family turns it in a right-to-left context.
353
353
  */
354
- [data-ui='datetime-field'] [data-part='preview'] > [data-ui='icon'] {
354
+ [data-ui-datetime-field] [data-part-preview] > [data-ui-icon] {
355
355
  --slotted-icon-size: var(--_mark);
356
356
 
357
357
  /**
@@ -377,7 +377,7 @@
377
377
  * preview whenever it differs from today — and this rule only lifts the date
378
378
  * out of the surrounding time so the eye lands on the part that moved.
379
379
  */
380
- [data-ui='datetime-field'] [data-part='preview'][data-rolls-day] > [data-part='preview-date'] {
380
+ [data-ui-datetime-field] [data-part-preview][data-rolls-day] > [data-part-preview-date] {
381
381
  color: var(--slotted-datetime-field-preview-day-color, var(--slotted-tone-accent-text));
382
382
  font-weight: var(--slotted-font-weight-semibold, 600);
383
383
  }
@@ -388,7 +388,7 @@
388
388
  * border is the accent the preview is written in, so the two marks are one
389
389
  * statement rather than two.
390
390
  */
391
- [data-ui='datetime-field'][data-part='root'][data-relative] {
391
+ [data-ui-datetime-field][data-part-root][data-relative] {
392
392
  border-color: var(
393
393
  --slotted-datetime-field-relative-border-color,
394
394
  var(--slotted-tone-accent-border)
@@ -401,7 +401,7 @@
401
401
  * holding an `md` control is a field and a control disagreeing about one row.
402
402
  */
403
403
 
404
- [data-ui='datetime-field'][data-part='root'][data-size='sm'] {
404
+ [data-ui-datetime-field][data-part-root][data-size='sm'] {
405
405
  --_font-size: var(--slotted-control-font-size-sm, 12px);
406
406
  --_height: var(--slotted-control-height-sm, 30px);
407
407
  --_padding-inline: var(--slotted-control-padding-inline-sm, 10px);
@@ -409,7 +409,7 @@
409
409
  --_icon-size: max(var(--_icon-floor), var(--slotted-control-icon-size-sm, 14px));
410
410
  }
411
411
 
412
- [data-ui='datetime-field'][data-part='root'][data-size='md'] {
412
+ [data-ui-datetime-field][data-part-root][data-size='md'] {
413
413
  --_font-size: var(--slotted-control-font-size-md, 13px);
414
414
  --_height: var(--slotted-control-height-md, 34px);
415
415
  --_padding-inline: var(--slotted-control-padding-inline-md, 13px);
@@ -417,7 +417,7 @@
417
417
  --_icon-size: max(var(--_icon-floor), var(--slotted-control-icon-size-md, 16px));
418
418
  }
419
419
 
420
- [data-ui='datetime-field'][data-part='root'][data-size='lg'] {
420
+ [data-ui-datetime-field][data-part-root][data-size='lg'] {
421
421
  --_font-size: var(--slotted-control-font-size-lg, 14px);
422
422
  --_height: var(--slotted-control-height-lg, 38px);
423
423
  --_padding-inline: var(--slotted-control-padding-inline-lg, 16px);
@@ -431,7 +431,7 @@
431
431
  * shows one frame twice rather than two frames.
432
432
  */
433
433
 
434
- [data-ui='datetime-field'][data-part='root'][data-variant='subtle'] {
434
+ [data-ui-datetime-field][data-part-root][data-variant='subtle'] {
435
435
  background-color: var(
436
436
  --slotted-datetime-field-subtle-background,
437
437
  var(--slotted-surface-sunken, Canvas)
@@ -442,7 +442,7 @@
442
442
  );
443
443
  }
444
444
 
445
- [data-ui='datetime-field'][data-part='root'][data-variant='plain'] {
445
+ [data-ui-datetime-field][data-part-root][data-variant='plain'] {
446
446
  background-color: transparent;
447
447
  border-color: transparent;
448
448
  border-radius: var(--slotted-radius-none, 0px);
@@ -455,8 +455,8 @@
455
455
  * the value: an adornment annotates, and a reader looking for the datetime
456
456
  * should not have to step over it.
457
457
  */
458
- [data-ui='datetime-field'] > [data-part='start'],
459
- [data-ui='datetime-field'] > [data-part='end'] {
458
+ [data-ui-datetime-field] > [data-part-start],
459
+ [data-ui-datetime-field] > [data-part-end] {
460
460
  --slotted-icon-size: var(--_icon-size);
461
461
 
462
462
  align-items: center;
@@ -468,8 +468,8 @@
468
468
  unicode-bidi: plaintext;
469
469
  }
470
470
 
471
- [data-ui='datetime-field'] > [data-part='start'] > svg,
472
- [data-ui='datetime-field'] > [data-part='end'] > svg {
471
+ [data-ui-datetime-field] > [data-part-start] > svg,
472
+ [data-ui-datetime-field] > [data-part-end] > svg {
473
473
  block-size: var(--_icon-size);
474
474
  inline-size: var(--_icon-size);
475
475
  }
@@ -481,7 +481,7 @@
481
481
  * page. It empties both halves: half a value is not a value this family
482
482
  * holds.
483
483
  */
484
- [data-ui='datetime-field'] > [data-part='clear'] {
484
+ [data-ui-datetime-field] > [data-part-clear] {
485
485
  align-items: center;
486
486
  appearance: none;
487
487
  background-color: transparent;
@@ -511,7 +511,7 @@
511
511
  * larger one alone, which is the correction `docs/token-foundation.md`
512
512
  * leaves to the family rather than to the theme.
513
513
  */
514
- [data-ui='datetime-field'] > [data-part='clear']::after {
514
+ [data-ui-datetime-field] > [data-part-clear]::after {
515
515
  content: '';
516
516
  inset: min(0px, calc((100% - var(--slotted-target-min, 24px)) / 2));
517
517
  position: absolute;
@@ -522,28 +522,28 @@
522
522
  the hit area above grows to 44 pixels around them. After an end
523
523
  adornment — a picker's trigger — it does not reach back across it. */
524
524
  @media (pointer: coarse) {
525
- [data-ui='datetime-field'] > [data-part='clear']::after {
525
+ [data-ui-datetime-field] > [data-part-clear]::after {
526
526
  inset: min(0px, calc((100% - var(--slotted-target-comfortable, 44px)) / 2));
527
527
  }
528
528
 
529
- [data-ui='datetime-field'] > [data-part='end'] + [data-part='clear']::after {
529
+ [data-ui-datetime-field] > [data-part-end] + [data-part-clear]::after {
530
530
  inset-inline-start: 0;
531
531
  }
532
532
  }
533
533
 
534
534
  /* The cross is drawn at the control's own icon step. */
535
- [data-ui='datetime-field'] > [data-part='clear'] {
535
+ [data-ui-datetime-field] > [data-part-clear] {
536
536
  --slotted-icon-size: var(--_icon-size);
537
537
  }
538
538
 
539
- [data-ui='datetime-field'] > [data-part='clear']:hover:not(:disabled):not([data-disabled]) {
539
+ [data-ui-datetime-field] > [data-part-clear]:hover:not(:disabled):not([data-disabled]) {
540
540
  background-color: var(
541
541
  --slotted-datetime-field-action-hover-background,
542
542
  var(--slotted-tone-secondary-subtle-hover)
543
543
  );
544
544
  }
545
545
 
546
- [data-ui='datetime-field'] > [data-part='clear']:active:not(:disabled):not([data-disabled]) {
546
+ [data-ui-datetime-field] > [data-part-clear]:active:not(:disabled):not([data-disabled]) {
547
547
  background-color: var(
548
548
  --slotted-datetime-field-action-active-background,
549
549
  var(--slotted-tone-secondary-subtle-active)
@@ -556,7 +556,7 @@
556
556
  * and a ring around the whole frame would sit still while focus moved inside
557
557
  * it.
558
558
  */
559
- [data-ui='datetime-field'] > [data-part='clear']:focus-visible {
559
+ [data-ui-datetime-field] > [data-part-clear]:focus-visible {
560
560
  outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
561
561
  outline-offset: calc(var(--slotted-focus-ring-offset, 2px) * -1);
562
562
  }
@@ -567,7 +567,7 @@
567
567
  * one it can meet, which is the order `STATE_PRECEDENCE` sets.
568
568
  */
569
569
 
570
- [data-ui='datetime-field'][data-part='root']:hover:not([data-disabled]):not([data-readonly]):not(
570
+ [data-ui-datetime-field][data-part-root]:hover:not([data-disabled]):not([data-readonly]):not(
571
571
  [data-invalid]
572
572
  ):not([data-incomplete]) {
573
573
  border-color: var(
@@ -576,16 +576,16 @@
576
576
  );
577
577
  }
578
578
 
579
- [data-ui='datetime-field'][data-part='root'][data-variant='subtle']:hover:not(
580
- [data-disabled]
581
- ):not([data-readonly]):not([data-invalid]) {
579
+ [data-ui-datetime-field][data-part-root][data-variant='subtle']:hover:not([data-disabled]):not(
580
+ [data-readonly]
581
+ ):not([data-invalid]) {
582
582
  background-color: var(
583
583
  --slotted-datetime-field-subtle-hover-background,
584
584
  var(--slotted-tone-secondary-subtle-hover)
585
585
  );
586
586
  }
587
587
 
588
- [data-ui='datetime-field'][data-part='root'][data-variant='plain']:hover:not([data-disabled]):not(
588
+ [data-ui-datetime-field][data-part-root][data-variant='plain']:hover:not([data-disabled]):not(
589
589
  [data-readonly]
590
590
  ):not([data-invalid]) {
591
591
  background-color: var(
@@ -624,7 +624,7 @@
624
624
  * reminder — louder at rest than `invalid` is, for a state that is weaker
625
625
  * than it.
626
626
  */
627
- [data-ui='datetime-field'][data-part='root'][data-incomplete]:not([data-disabled]):not(
627
+ [data-ui-datetime-field][data-part-root][data-incomplete]:not([data-disabled]):not(
628
628
  [data-readonly]
629
629
  ):not([data-invalid]):not(:focus-within) {
630
630
  border-color: var(
@@ -649,8 +649,8 @@
649
649
  * had before the press. The expression is an `input` and takes the frame's
650
650
  * ring the same way from the other side.
651
651
  */
652
- [data-ui='datetime-field'][data-part='root']:has([data-part='segment']:focus),
653
- [data-ui='datetime-field'][data-part='root']:has([data-part='duration']:focus) {
652
+ [data-ui-datetime-field][data-part-root]:has([data-part-segment]:focus),
653
+ [data-ui-datetime-field][data-part-root]:has([data-part-duration]:focus) {
654
654
  box-shadow: var(--slotted-control-shadow-focus-geometry, 0 1px 4px -1px)
655
655
  var(--slotted-focus-ring-color, Highlight);
656
656
  outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
@@ -664,17 +664,13 @@
664
664
  * shadow that appears only under focus is a cell that changes size when it
665
665
  * is used.
666
666
  */
667
- [data-ui='datetime-field'][data-part='root'][data-variant='plain']:has(
668
- [data-part='segment']:focus
669
- ),
670
- [data-ui='datetime-field'][data-part='root'][data-variant='plain']:has(
671
- [data-part='duration']:focus
672
- ) {
667
+ [data-ui-datetime-field][data-part-root][data-variant='plain']:has([data-part-segment]:focus),
668
+ [data-ui-datetime-field][data-part-root][data-variant='plain']:has([data-part-duration]:focus) {
673
669
  box-shadow: none;
674
670
  outline-offset: calc(var(--slotted-focus-ring-offset, 2px) * -1);
675
671
  }
676
672
 
677
- [data-ui='datetime-field'] [data-part='segment']:focus {
673
+ [data-ui-datetime-field] [data-part-segment]:focus {
678
674
  background-color: var(
679
675
  --slotted-datetime-field-segment-focus-background,
680
676
  var(--slotted-tone-accent-solid)
@@ -691,7 +687,7 @@
691
687
  * The ring is retargeted rather than repainted, so the frame's outline, the
692
688
  * shadow under it and the ring on the clear button all move at once.
693
689
  */
694
- [data-ui='datetime-field'][data-part='root'][data-invalid] {
690
+ [data-ui-datetime-field][data-part-root][data-invalid] {
695
691
  --slotted-focus-ring-color: var(
696
692
  --slotted-datetime-field-invalid-focus-ring-color,
697
693
  var(--slotted-focus-ring-color-invalid, Highlight)
@@ -719,19 +715,19 @@
719
715
  box-shadow: var(--_invalid-edge);
720
716
  }
721
717
 
722
- [data-ui='datetime-field'][data-part='root'][data-invalid]:has([data-part='segment']:focus),
723
- [data-ui='datetime-field'][data-part='root'][data-invalid]:has([data-part='duration']:focus) {
718
+ [data-ui-datetime-field][data-part-root][data-invalid]:has([data-part-segment]:focus),
719
+ [data-ui-datetime-field][data-part-root][data-invalid]:has([data-part-duration]:focus) {
724
720
  box-shadow:
725
721
  var(--_invalid-edge),
726
722
  var(--slotted-control-shadow-focus-geometry, 0 1px 4px -1px)
727
723
  var(--slotted-focus-ring-color, Highlight);
728
724
  }
729
725
 
730
- [data-ui='datetime-field'][data-part='root'][data-variant='plain'][data-invalid]:has(
731
- [data-part='segment']:focus
726
+ [data-ui-datetime-field][data-part-root][data-variant='plain'][data-invalid]:has(
727
+ [data-part-segment]:focus
732
728
  ),
733
- [data-ui='datetime-field'][data-part='root'][data-variant='plain'][data-invalid]:has(
734
- [data-part='duration']:focus
729
+ [data-ui-datetime-field][data-part-root][data-variant='plain'][data-invalid]:has(
730
+ [data-part-duration]:focus
735
731
  ) {
736
732
  /* The ring lies inside the box here, over the border and an edge as wide as
737
733
  it; the edge reaches past the ring. */
@@ -749,25 +745,25 @@
749
745
  * control draws its ring double, which a valid ring is not.
750
746
  */
751
747
  @media (forced-colors: active) {
752
- [data-ui='datetime-field'][data-part='root'][data-invalid] {
748
+ [data-ui-datetime-field][data-part-root][data-invalid] {
753
749
  outline: var(--_invalid-edge-width) solid CanvasText;
754
750
  outline-offset: calc(
755
751
  -1 * (var(--slotted-control-border-width, 1px) + var(--_invalid-edge-width))
756
752
  );
757
753
  }
758
754
 
759
- [data-ui='datetime-field'][data-part='root'][data-invalid]:has([data-part='segment']:focus),
760
- [data-ui='datetime-field'][data-part='root'][data-invalid]:has([data-part='duration']:focus) {
755
+ [data-ui-datetime-field][data-part-root][data-invalid]:has([data-part-segment]:focus),
756
+ [data-ui-datetime-field][data-part-root][data-invalid]:has([data-part-duration]:focus) {
761
757
  outline: calc(var(--slotted-focus-ring-width, 2px) + var(--_invalid-edge-width)) double
762
758
  var(--slotted-focus-ring-color, Highlight);
763
759
  outline-offset: var(--slotted-focus-ring-offset, 2px);
764
760
  }
765
761
 
766
- [data-ui='datetime-field'][data-part='root'][data-variant='plain'][data-invalid]:has(
767
- [data-part='segment']:focus
762
+ [data-ui-datetime-field][data-part-root][data-variant='plain'][data-invalid]:has(
763
+ [data-part-segment]:focus
768
764
  ),
769
- [data-ui='datetime-field'][data-part='root'][data-variant='plain'][data-invalid]:has(
770
- [data-part='duration']:focus
765
+ [data-ui-datetime-field][data-part-root][data-variant='plain'][data-invalid]:has(
766
+ [data-part-duration]:focus
771
767
  ) {
772
768
  outline: calc(var(--slotted-focus-ring-width, 2px) + var(--_invalid-edge-width)) double
773
769
  var(--slotted-focus-ring-color, Highlight);
@@ -782,13 +778,13 @@
782
778
  * mistakable for disabled: the value is still real and still submitted. The
783
779
  * ground says "not yours to change" and the ink says nothing at all.
784
780
  */
785
- [data-ui='datetime-field'][data-part='root'][data-readonly],
786
- [data-ui='datetime-field'][data-part='root'][data-readonly] [data-part='segments'],
787
- [data-ui='datetime-field'][data-part='root'][data-readonly] [data-part='segment'] {
781
+ [data-ui-datetime-field][data-part-root][data-readonly],
782
+ [data-ui-datetime-field][data-part-root][data-readonly] [data-part-segments],
783
+ [data-ui-datetime-field][data-part-root][data-readonly] [data-part-segment] {
788
784
  cursor: default;
789
785
  }
790
786
 
791
- [data-ui='datetime-field'][data-part='root'][data-readonly] {
787
+ [data-ui-datetime-field][data-part-root][data-readonly] {
792
788
  background-color: var(
793
789
  --slotted-datetime-field-readonly-background,
794
790
  var(--slotted-tone-secondary-subtle-hover)
@@ -800,7 +796,7 @@
800
796
  * datetime nobody can read is a field nobody can check, and a disabled form
801
797
  * still has to say what it holds.
802
798
  */
803
- [data-ui='datetime-field'][data-part='root'][data-disabled] {
799
+ [data-ui-datetime-field][data-part-root][data-disabled] {
804
800
  background-color: var(
805
801
  --slotted-datetime-field-disabled-background,
806
802
  var(--slotted-disabled-background)
@@ -815,23 +811,22 @@
815
811
  cursor: not-allowed;
816
812
  }
817
813
 
818
- [data-ui='datetime-field'][data-part='root'][data-disabled] [data-part='segments'],
819
- [data-ui='datetime-field'][data-part='root'][data-disabled] [data-part='segment'] {
814
+ [data-ui-datetime-field][data-part-root][data-disabled] [data-part-segments],
815
+ [data-ui-datetime-field][data-part-root][data-disabled] [data-part-segment] {
820
816
  cursor: not-allowed;
821
817
  }
822
818
 
823
- [data-ui='datetime-field'][data-part='root'][data-disabled] > [data-part='start'],
824
- [data-ui='datetime-field'][data-part='root'][data-disabled] > [data-part='end'],
825
- [data-ui='datetime-field'][data-part='root'][data-disabled] [data-part='literal'],
826
- [data-ui='datetime-field'][data-part='root'][data-disabled]
827
- [data-part='segment'][data-placeholder] {
819
+ [data-ui-datetime-field][data-part-root][data-disabled] > [data-part-start],
820
+ [data-ui-datetime-field][data-part-root][data-disabled] > [data-part-end],
821
+ [data-ui-datetime-field][data-part-root][data-disabled] [data-part-literal],
822
+ [data-ui-datetime-field][data-part-root][data-disabled] [data-part-segment][data-placeholder] {
828
823
  color: var(--slotted-disabled-foreground);
829
824
  }
830
825
 
831
826
  @media (forced-colors: active) {
832
827
  /* A transparent border has no system colour to be remapped to, so the
833
828
  `plain` control would lose its only edge where an edge matters most. */
834
- [data-ui='datetime-field'][data-part='root'][data-variant='plain'] {
829
+ [data-ui-datetime-field][data-part-root][data-variant='plain'] {
835
830
  border-color: ButtonBorder;
836
831
  }
837
832
 
@@ -839,7 +834,7 @@
839
834
  modes that are told apart by tone need a second signal. The expression
840
835
  borrows the highlight; the incomplete frame borrows the thicker border
841
836
  the system reserves for something asking to be finished. */
842
- [data-ui='datetime-field'][data-part='root'][data-relative] {
837
+ [data-ui-datetime-field][data-part-root][data-relative] {
843
838
  border-color: Highlight;
844
839
  }
845
840