@slotted/styles 0.1.0-beta.7 → 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 +312 -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 +157 -172
  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
@@ -39,7 +39,7 @@
39
39
  * The stylesheet's part in it is that no rule assumes a role: the same
40
40
  * picture is drawn whether a reader hears the words or reads them.
41
41
  */
42
- [data-ui='toast'][data-part='root'] {
42
+ [data-ui-toast][data-part-root] {
43
43
  /**
44
44
  * The distance from the edge of the screen, and the greatest width a
45
45
  * message is allowed. The width is the smaller of the two, so at 320
@@ -93,7 +93,7 @@
93
93
  * demonstrable on a documentation page: everything else about it is the
94
94
  * same, including the placement, which now names the edges of the panel.
95
95
  */
96
- [data-ui='toast'][data-part='root'][data-attach='inline'] {
96
+ [data-ui-toast][data-part-root][data-attach='inline'] {
97
97
  position: absolute;
98
98
  }
99
99
 
@@ -104,19 +104,19 @@
104
104
  * an Arabic one. Sonner's `bottom-right` is `bottom-right` in both.
105
105
  */
106
106
 
107
- [data-ui='toast'][data-part='root'][data-placement^='top'] {
107
+ [data-ui-toast][data-part-root][data-placement^='top'] {
108
108
  inset-block-start: var(--_offset);
109
109
  }
110
110
 
111
- [data-ui='toast'][data-part='root'][data-placement^='bottom'] {
111
+ [data-ui-toast][data-part-root][data-placement^='bottom'] {
112
112
  inset-block-end: var(--_offset);
113
113
  }
114
114
 
115
- [data-ui='toast'][data-part='root'][data-placement$='-start'] {
115
+ [data-ui-toast][data-part-root][data-placement$='-start'] {
116
116
  inset-inline-start: var(--_offset);
117
117
  }
118
118
 
119
- [data-ui='toast'][data-part='root'][data-placement$='-end'] {
119
+ [data-ui-toast][data-part-root][data-placement$='-end'] {
120
120
  inset-inline-end: var(--_offset);
121
121
  }
122
122
 
@@ -125,8 +125,8 @@
125
125
  * divide what is left. It is the one centring that needs no transform, so
126
126
  * the transform stays free for the enter, the exit and the swipe.
127
127
  */
128
- [data-ui='toast'][data-part='root'][data-placement='top'],
129
- [data-ui='toast'][data-part='root'][data-placement='bottom'] {
128
+ [data-ui-toast][data-part-root][data-placement='top'],
129
+ [data-ui-toast][data-part-root][data-placement='bottom'] {
130
130
  inset-inline: var(--_offset);
131
131
  margin-inline: auto;
132
132
  }
@@ -139,7 +139,7 @@
139
139
  * order, which puts the newest nearest the edge of the screen — where the
140
140
  * reader's eye already is — without moving it in the accessibility tree.
141
141
  */
142
- [data-ui='toast'] > [data-part='list'] {
142
+ [data-ui-toast] > [data-part-list] {
143
143
  display: flex;
144
144
  flex-direction: column;
145
145
  gap: var(--_gap);
@@ -149,7 +149,7 @@
149
149
  pointer-events: none;
150
150
  }
151
151
 
152
- [data-ui='toast'][data-placement^='bottom'] > [data-part='list'] {
152
+ [data-ui-toast][data-placement^='bottom'] > [data-part-list] {
153
153
  flex-direction: column-reverse;
154
154
  }
155
155
 
@@ -162,7 +162,7 @@
162
162
  * focus already inside a message can cause, so no press meant for the page
163
163
  * lands on an empty region.
164
164
  */
165
- [data-ui='toast'][data-expanded] > [data-part='list'] {
165
+ [data-ui-toast][data-expanded] > [data-part-list] {
166
166
  pointer-events: auto;
167
167
  }
168
168
 
@@ -172,7 +172,7 @@
172
172
  * the message away, with the actions under the words rather than beside
173
173
  * them so a second row exists only when there are actions to put in it.
174
174
  */
175
- [data-ui='toast'] > [data-part='list'] > [data-part='item'] {
175
+ [data-ui-toast] > [data-part-list] > [data-part-item] {
176
176
  /* The tone's five roles, defaulted to `accent`, restated by each tone
177
177
  below. Every one of them is a role the theme's contrast test measures. */
178
178
  --_solid: var(--slotted-tone-accent-solid);
@@ -302,11 +302,11 @@
302
302
  * shift is the same distance in the other direction rather than a second
303
303
  * number, so the two placements are one motion seen twice.
304
304
  */
305
- [data-ui='toast'][data-placement^='top'] > [data-part='list'] > [data-part='item'] {
305
+ [data-ui-toast][data-placement^='top'] > [data-part-list] > [data-part-item] {
306
306
  translate: 0 calc(-1 * var(--_enter-shift));
307
307
  }
308
308
 
309
- [data-ui='toast'] > [data-part='list'] > [data-part='item'][data-open] {
309
+ [data-ui-toast] > [data-part-list] > [data-part-item][data-open] {
310
310
  opacity: 1;
311
311
  translate: 0;
312
312
  transition:
@@ -325,7 +325,7 @@
325
325
  * is left, which is WCAG 2.2 SC 1.4.1 as well as a preference.
326
326
  */
327
327
 
328
- [data-ui='toast'] > [data-part='list'] > [data-part='item'][data-tone='accent'] {
328
+ [data-ui-toast] > [data-part-list] > [data-part-item][data-tone='accent'] {
329
329
  --_solid: var(--slotted-tone-accent-solid);
330
330
  --_on-solid: var(--slotted-tone-accent-on-solid);
331
331
  --_tone-surface: var(--slotted-tone-accent-surface);
@@ -333,7 +333,7 @@
333
333
  --_tone-text: var(--slotted-tone-accent-text);
334
334
  }
335
335
 
336
- [data-ui='toast'] > [data-part='list'] > [data-part='item'][data-tone='secondary'] {
336
+ [data-ui-toast] > [data-part-list] > [data-part-item][data-tone='secondary'] {
337
337
  --_solid: var(--slotted-tone-secondary-solid);
338
338
  --_on-solid: var(--slotted-tone-secondary-on-solid);
339
339
  --_tone-surface: var(--slotted-tone-secondary-surface);
@@ -341,7 +341,7 @@
341
341
  --_tone-text: var(--slotted-tone-secondary-text);
342
342
  }
343
343
 
344
- [data-ui='toast'] > [data-part='list'] > [data-part='item'][data-tone='success'] {
344
+ [data-ui-toast] > [data-part-list] > [data-part-item][data-tone='success'] {
345
345
  --_solid: var(--slotted-tone-success-solid);
346
346
  --_on-solid: var(--slotted-tone-success-on-solid);
347
347
  --_tone-surface: var(--slotted-tone-success-surface);
@@ -349,7 +349,7 @@
349
349
  --_tone-text: var(--slotted-tone-success-text);
350
350
  }
351
351
 
352
- [data-ui='toast'] > [data-part='list'] > [data-part='item'][data-tone='warning'] {
352
+ [data-ui-toast] > [data-part-list] > [data-part-item][data-tone='warning'] {
353
353
  --_solid: var(--slotted-tone-warning-solid);
354
354
  --_on-solid: var(--slotted-tone-warning-on-solid);
355
355
  --_tone-surface: var(--slotted-tone-warning-surface);
@@ -357,7 +357,7 @@
357
357
  --_tone-text: var(--slotted-tone-warning-text);
358
358
  }
359
359
 
360
- [data-ui='toast'] > [data-part='list'] > [data-part='item'][data-tone='danger'] {
360
+ [data-ui-toast] > [data-part-list] > [data-part-item][data-tone='danger'] {
361
361
  --_solid: var(--slotted-tone-danger-solid);
362
362
  --_on-solid: var(--slotted-tone-danger-on-solid);
363
363
  --_tone-surface: var(--slotted-tone-danger-surface);
@@ -373,7 +373,7 @@
373
373
  * tone is in the mark and in nothing else, which is enough — it is the
374
374
  * silhouette that survives forced colours anyway.
375
375
  */
376
- [data-ui='toast'] > [data-part='list'] > [data-part='item'][data-variant='soft'] {
376
+ [data-ui-toast] > [data-part-list] > [data-part-item][data-variant='soft'] {
377
377
  --_ground: var(--_tone-surface);
378
378
  --_edge: var(--_tone-border);
379
379
  /* The tone's own text on the tone's own surface is the pair the theme
@@ -383,7 +383,7 @@
383
383
  --_ink-muted: var(--_tone-text);
384
384
  }
385
385
 
386
- [data-ui='toast'] > [data-part='list'] > [data-part='item'][data-variant='solid'] {
386
+ [data-ui-toast] > [data-part-list] > [data-part-item][data-variant='solid'] {
387
387
  --_ground: var(--_solid);
388
388
  --_edge: var(--_solid);
389
389
  --_ink: var(--_on-solid);
@@ -426,7 +426,7 @@
426
426
  * message waiting on a promise with no mark of its own draws none, and the
427
427
  * box stays, so the layout does not jump when the spinner becomes a tick.
428
428
  */
429
- [data-ui='toast'] > [data-part='list'] > [data-part='item'] > [data-part='icon'] {
429
+ [data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-icon] {
430
430
  --slotted-icon-size: calc(var(--_mark-size) * 12 / 11);
431
431
  /**
432
432
  * The loading mark is `progress-indicator`'s contained loader, and these
@@ -466,7 +466,7 @@
466
466
  * to be clamped too, or an unbreakable word in the title sizes the track to
467
467
  * itself and the words run past the box that holds them.
468
468
  */
469
- [data-ui='toast'] > [data-part='list'] > [data-part='item'] > [data-part='content'] {
469
+ [data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-content] {
470
470
  /* The other half of the mark's baseline group: see the mark above. */
471
471
  align-self: baseline;
472
472
  display: grid;
@@ -489,11 +489,7 @@
489
489
  * `Zwischenspeicherung` set the track to 183 pixels inside a box of 155, and
490
490
  * the words stood outside the message in every scheme.
491
491
  */
492
- [data-ui='toast']
493
- > [data-part='list']
494
- > [data-part='item']
495
- > [data-part='content']
496
- > [data-part='title'] {
492
+ [data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-content] > [data-part-title] {
497
493
  font-family: var(
498
494
  --slotted-toast-title-font-family,
499
495
  var(
@@ -507,11 +503,11 @@
507
503
  overflow-wrap: anywhere;
508
504
  }
509
505
 
510
- [data-ui='toast']
511
- > [data-part='list']
512
- > [data-part='item']
513
- > [data-part='content']
514
- > [data-part='description'] {
506
+ [data-ui-toast]
507
+ > [data-part-list]
508
+ > [data-part-item]
509
+ > [data-part-content]
510
+ > [data-part-description] {
515
511
  color: var(--_ink-muted);
516
512
  margin: 0;
517
513
  min-inline-size: 0;
@@ -525,7 +521,7 @@
525
521
  * the consumer's own buttons: `button` already owns what a button is, and
526
522
  * naming one of two controls `cancel` would privilege one arrangement.
527
523
  */
528
- [data-ui='toast'] > [data-part='list'] > [data-part='item'] > [data-part='actions'] {
524
+ [data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-actions] {
529
525
  align-items: center;
530
526
  display: flex;
531
527
  flex-wrap: wrap;
@@ -543,7 +539,7 @@
543
539
  * margin box is exactly one line and the inset above the message equals the
544
540
  * inset below.
545
541
  */
546
- [data-ui='toast'] > [data-part='list'] > [data-part='item'] > [data-part='close'] {
542
+ [data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-close] {
547
543
  /* The cross is the binding's `Glyph` in an `icon` box at the glyph size
548
544
  the formula for this box reads. */
549
545
  --slotted-icon-size: var(--_glyph-size);
@@ -579,11 +575,11 @@
579
575
 
580
576
  /* `:enabled` is the guard the shared state test requires, and the reason it
581
577
  exists: a control the browser has already refused answers no pointer. */
582
- [data-ui='toast'] > [data-part='list'] > [data-part='item'] > [data-part='close']:enabled:hover {
578
+ [data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-close]:enabled:hover {
583
579
  background-color: var(--_state-hover);
584
580
  }
585
581
 
586
- [data-ui='toast'] > [data-part='list'] > [data-part='item'] > [data-part='close']:enabled:active {
582
+ [data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-close]:enabled:active {
587
583
  background-color: var(--_state-active);
588
584
  }
589
585
 
@@ -592,11 +588,11 @@
592
588
  44 pixels, and the ground and the ring stay square. The message clips its
593
589
  overflow, so the target ends at the message's padding edge. */
594
590
  @media (pointer: coarse) {
595
- [data-ui='toast'] > [data-part='list'] > [data-part='item'] > [data-part='close'] {
591
+ [data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-close] {
596
592
  position: relative;
597
593
  }
598
594
 
599
- [data-ui='toast'] > [data-part='list'] > [data-part='item'] > [data-part='close']::after {
595
+ [data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-close]::after {
600
596
  content: '';
601
597
  inset: min(0px, calc((100% - var(--slotted-target-comfortable, 44px)) / 2));
602
598
  position: absolute;
@@ -611,8 +607,8 @@
611
607
  * it exists because `F6` sends the keyboard here — a message the reader
612
608
  * cannot see they have arrived at is a message they cannot act on.
613
609
  */
614
- [data-ui='toast'] > [data-part='list'] > [data-part='item'] > [data-part='close']:focus-visible,
615
- [data-ui='toast'] > [data-part='list'] > [data-part='item']:focus-visible {
610
+ [data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-close]:focus-visible,
611
+ [data-ui-toast] > [data-part-list] > [data-part-item]:focus-visible {
616
612
  outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
617
613
  }
618
614
 
@@ -621,7 +617,7 @@
621
617
  * the remaining-time bar has to stop at the rounded corner — and a ring
622
618
  * outside a control at that corner would be cut in half by it.
623
619
  */
624
- [data-ui='toast'] > [data-part='list'] > [data-part='item'] > [data-part='close']:focus-visible {
620
+ [data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-close]:focus-visible {
625
621
  outline-offset: calc(-1 * var(--slotted-focus-ring-width, 2px));
626
622
  }
627
623
 
@@ -630,7 +626,7 @@
630
626
  * of the screen, and read on the box itself the ring was a thick blue border
631
627
  * rather than a ring around a card.
632
628
  */
633
- [data-ui='toast'] > [data-part='list'] > [data-part='item']:focus-visible {
629
+ [data-ui-toast] > [data-part-list] > [data-part-item]:focus-visible {
634
630
  outline-offset: var(--slotted-focus-ring-offset, 2px);
635
631
  }
636
632
 
@@ -643,10 +639,10 @@
643
639
  * fill, so a solid message adds a halo one ring-width wide just inside it,
644
640
  * in the ink its own words are in, for the ring to be read against.
645
641
  */
646
- [data-ui='toast']
647
- > [data-part='list']
648
- > [data-part='item'][data-variant='solid']
649
- > [data-part='close']:focus-visible {
642
+ [data-ui-toast]
643
+ > [data-part-list]
644
+ > [data-part-item][data-variant='solid']
645
+ > [data-part-close]:focus-visible {
650
646
  box-shadow: inset 0 0 0 calc(2 * var(--slotted-focus-ring-width, 2px)) var(--_on-solid);
651
647
  }
652
648
 
@@ -664,7 +660,7 @@
664
660
  * from the inline start in every writing direction with no origin to mirror.
665
661
  * The box is positioned, so nothing it does moves a word.
666
662
  */
667
- [data-ui='toast'] > [data-part='list'] > [data-part='item'] > [data-part='progress'] {
663
+ [data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-progress] {
668
664
  animation-duration: var(--slotted-toast-duration, var(--slotted-duration-long));
669
665
  animation-fill-mode: forwards;
670
666
  animation-name: slotted-toast-countdown;
@@ -688,10 +684,10 @@
688
684
  * the one ink the contrast test holds against it, held back so it reads as a
689
685
  * measure rather than as a second border.
690
686
  */
691
- [data-ui='toast']
692
- > [data-part='list']
693
- > [data-part='item'][data-variant='solid']
694
- > [data-part='progress'] {
687
+ [data-ui-toast]
688
+ > [data-part-list]
689
+ > [data-part-item][data-variant='solid']
690
+ > [data-part-progress] {
695
691
  background-color: var(--_on-solid);
696
692
  opacity: 0.7;
697
693
  }
@@ -730,12 +726,12 @@
730
726
  * back in opacity, and the front one, which is the one being read, is at
731
727
  * full strength.
732
728
  */
733
- [data-ui='toast'][data-stacking='stack'] > [data-part='list'] {
729
+ [data-ui-toast][data-stacking='stack'] > [data-part-list] {
734
730
  display: block;
735
731
  position: relative;
736
732
  }
737
733
 
738
- [data-ui='toast'][data-stacking='stack'] > [data-part='list'] > [data-part='item'] {
734
+ [data-ui-toast][data-stacking='stack'] > [data-part-list] > [data-part-item] {
739
735
  block-size: var(--slotted-toast-front-height, auto);
740
736
  inset-inline: 0;
741
737
  position: absolute;
@@ -756,20 +752,20 @@
756
752
  * everything behind it share one strength: below that the pile is a stack of
757
753
  * ghosts, and only the front two edges are showing anyway.
758
754
  */
759
- [data-ui='toast'][data-stacking='stack'] > [data-part='list'] > [data-part='item'][data-open] {
755
+ [data-ui-toast][data-stacking='stack'] > [data-part-list] > [data-part-item][data-open] {
760
756
  opacity: calc(1 - min(var(--slotted-toast-index, 0), 2) * var(--_stack-fade));
761
757
  }
762
758
 
763
- [data-ui='toast'][data-stacking='stack'][data-placement^='bottom']
764
- > [data-part='list']
765
- > [data-part='item'] {
759
+ [data-ui-toast][data-stacking='stack'][data-placement^='bottom']
760
+ > [data-part-list]
761
+ > [data-part-item] {
766
762
  inset-block-end: 0;
767
763
  translate: 0 calc(-1 * var(--slotted-toast-index, 0) * var(--_stack-step));
768
764
  }
769
765
 
770
- [data-ui='toast'][data-stacking='stack'][data-placement^='top']
771
- > [data-part='list']
772
- > [data-part='item'] {
766
+ [data-ui-toast][data-stacking='stack'][data-placement^='top']
767
+ > [data-part-list]
768
+ > [data-part-item] {
773
769
  inset-block-start: 0;
774
770
  translate: 0 calc(var(--slotted-toast-index, 0) * var(--_stack-step));
775
771
  }
@@ -779,9 +775,7 @@
779
775
  * column, and the gap between two of them is the region's own gap — the
780
776
  * offset script writes already carries it.
781
777
  */
782
- [data-ui='toast'][data-stacking='stack'][data-expanded]
783
- > [data-part='list']
784
- > [data-part='item'] {
778
+ [data-ui-toast][data-stacking='stack'][data-expanded] > [data-part-list] > [data-part-item] {
785
779
  block-size: var(--slotted-toast-height, auto);
786
780
  }
787
781
 
@@ -793,25 +787,25 @@
793
787
  * messages hang from the list's edge at `placement`, so the list grows away
794
788
  * from that edge and nothing it holds moves.
795
789
  */
796
- [data-ui='toast'][data-stacking='stack'][data-expanded] > [data-part='list'] {
790
+ [data-ui-toast][data-stacking='stack'][data-expanded] > [data-part-list] {
797
791
  block-size: var(--slotted-toast-stack-height, auto);
798
792
  }
799
793
 
800
- [data-ui='toast'][data-stacking='stack'][data-expanded]
801
- > [data-part='list']
802
- > [data-part='item'][data-open] {
794
+ [data-ui-toast][data-stacking='stack'][data-expanded]
795
+ > [data-part-list]
796
+ > [data-part-item][data-open] {
803
797
  opacity: 1;
804
798
  }
805
799
 
806
- [data-ui='toast'][data-stacking='stack'][data-expanded][data-placement^='bottom']
807
- > [data-part='list']
808
- > [data-part='item'] {
800
+ [data-ui-toast][data-stacking='stack'][data-expanded][data-placement^='bottom']
801
+ > [data-part-list]
802
+ > [data-part-item] {
809
803
  translate: 0 calc(-1 * var(--slotted-toast-stack-offset, 0px));
810
804
  }
811
805
 
812
- [data-ui='toast'][data-stacking='stack'][data-expanded][data-placement^='top']
813
- > [data-part='list']
814
- > [data-part='item'] {
806
+ [data-ui-toast][data-stacking='stack'][data-expanded][data-placement^='top']
807
+ > [data-part-list]
808
+ > [data-part-item] {
815
809
  translate: 0 var(--slotted-toast-stack-offset, 0px);
816
810
  }
817
811
 
@@ -821,11 +815,11 @@
821
815
  * `min()` is what turns an index into that rule without a rule per depth —
822
816
  * the front message resolves to one and every other to zero.
823
817
  */
824
- [data-ui='toast'][data-stacking='stack'] > [data-part='list'] > [data-part='item'] > * {
818
+ [data-ui-toast][data-stacking='stack'] > [data-part-list] > [data-part-item] > * {
825
819
  transition: opacity var(--slotted-duration-medium) var(--slotted-easing-standard);
826
820
  }
827
821
 
828
- [data-ui='toast'][data-stacking='stack']:not([data-expanded]) [data-part='item'] > * {
822
+ [data-ui-toast][data-stacking='stack']:not([data-expanded]) [data-part-item] > * {
829
823
  opacity: calc(1 - min(1, var(--slotted-toast-index, 0)));
830
824
  }
831
825
 
@@ -837,7 +831,7 @@
837
831
  * message follows it exactly, with no transition in the way: a drag that
838
832
  * lags the finger reads as a stuck interface.
839
833
  */
840
- [data-ui='toast'] > [data-part='list'] > [data-part='item'][data-dragging] {
834
+ [data-ui-toast] > [data-part-list] > [data-part-item][data-dragging] {
841
835
  cursor: grabbing;
842
836
  transition: none;
843
837
  translate: var(--slotted-toast-swipe-x, 0px) var(--slotted-toast-swipe-y, 0px);
@@ -846,7 +840,7 @@
846
840
  user-select: none;
847
841
  }
848
842
 
849
- [data-ui='toast'][data-swipe='true'] > [data-part='list'] > [data-part='item'] {
843
+ [data-ui-toast][data-swipe='true'] > [data-part-list] > [data-part-item] {
850
844
  touch-action: none;
851
845
  }
852
846
 
@@ -859,7 +853,7 @@
859
853
  * container condition.
860
854
  */
861
855
  @container slotted-toast (max-width: 20rem) {
862
- [data-ui='toast'] > [data-part='list'] > [data-part='item'] {
856
+ [data-ui-toast] > [data-part-list] > [data-part-item] {
863
857
  --_inset-block: var(--slotted-toast-padding-block, var(--slotted-space-4, 0.5rem));
864
858
  --_inset-inline: var(--slotted-toast-padding-inline, var(--slotted-space-5, 0.75rem));
865
859
  }
@@ -870,7 +864,7 @@
870
864
  * the control, and `button` already ships `fullWidth` for a consumer who
871
865
  * wants otherwise.
872
866
  */
873
- [data-ui='toast'] > [data-part='list'] > [data-part='item'] > [data-part='actions'] {
867
+ [data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-actions] {
874
868
  align-items: flex-start;
875
869
  flex-direction: column;
876
870
  }
@@ -885,11 +879,11 @@
885
879
  * own fill and a transparent border is not a colour the system remaps.
886
880
  */
887
881
  @media (forced-colors: active) {
888
- [data-ui='toast'] > [data-part='list'] > [data-part='item'] {
882
+ [data-ui-toast] > [data-part-list] > [data-part-item] {
889
883
  border-color: CanvasText;
890
884
  }
891
885
 
892
- [data-ui='toast'] > [data-part='list'] > [data-part='item'] > [data-part='icon'] {
886
+ [data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-icon] {
893
887
  color: CanvasText;
894
888
  }
895
889
 
@@ -897,15 +891,12 @@
897
891
  * The control's glyph is stroked in `currentcolor`, so giving the control
898
892
  * a system colour repaints it, and the mark's slot the same.
899
893
  */
900
- [data-ui='toast'] > [data-part='list'] > [data-part='item'] > [data-part='close'] {
894
+ [data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-close] {
901
895
  color: CanvasText;
902
896
  }
903
897
 
904
- [data-ui='toast'] > [data-part='list'] > [data-part='item'] > [data-part='close']:enabled:hover,
905
- [data-ui='toast']
906
- > [data-part='list']
907
- > [data-part='item']
908
- > [data-part='close']:enabled:active {
898
+ [data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-close]:enabled:hover,
899
+ [data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-close]:enabled:active {
909
900
  background-color: Highlight;
910
901
  color: HighlightText;
911
902
  }
@@ -914,7 +905,7 @@
914
905
  * A bar of system ink under every message, shortening, is a moving line
915
906
  * with no colour to say what it belongs to. The message still expires.
916
907
  */
917
- [data-ui='toast'] > [data-part='list'] > [data-part='item'] > [data-part='progress'] {
908
+ [data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-progress] {
918
909
  background-color: CanvasText;
919
910
  opacity: 1;
920
911
  }
@@ -935,7 +926,7 @@
935
926
  * reached over the declared one, and the `timing` scene froze at 80 per cent.
936
927
  */
937
928
  @media (prefers-reduced-motion: reduce) {
938
- [data-ui='toast'] > [data-part='list'] > [data-part='item'] > [data-part='progress'] {
929
+ [data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-progress] {
939
930
  animation-name: none;
940
931
  inline-size: 100%;
941
932
  }