@slotted/styles 0.1.0-beta.0 → 0.1.0-beta.10

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 (176) 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 +43 -35
  6. package/src/alert/alert.tokens.json +5 -0
  7. package/src/app-shell/app-shell.css +356 -301
  8. package/src/aspect-ratio/aspect-ratio.css +9 -9
  9. package/src/attachment/attachment.css +91 -99
  10. package/src/avatar/avatar.css +71 -41
  11. package/src/avatar/avatar.tokens.json +7 -0
  12. package/src/avatar-group/avatar-group.css +21 -22
  13. package/src/badge/badge.css +45 -37
  14. package/src/badge/badge.tokens.json +5 -0
  15. package/src/breadcrumb/breadcrumb.css +37 -37
  16. package/src/button/button.css +139 -64
  17. package/src/button/button.tokens.json +10 -0
  18. package/src/button-group/button-group.css +76 -72
  19. package/src/button-group/button-group.tokens.json +2 -0
  20. package/src/calendar/calendar.css +93 -103
  21. package/src/card/card.css +54 -61
  22. package/src/carousel/carousel.css +150 -161
  23. package/src/cascader/cascader.css +152 -153
  24. package/src/cascader/cascader.tokens.json +1 -0
  25. package/src/chart/chart.css +242 -239
  26. package/src/chart/chart.tokens.json +1 -0
  27. package/src/checkbox/checkbox.css +119 -124
  28. package/src/checkbox-group/checkbox-group.css +7 -7
  29. package/src/code-block/code-block.css +81 -85
  30. package/src/collapsible/collapsible.css +69 -76
  31. package/src/color-picker/color-picker.css +83 -91
  32. package/src/column-manager/column-manager.css +106 -114
  33. package/src/combobox/combobox.css +132 -107
  34. package/src/combobox/combobox.tokens.json +1 -0
  35. package/src/command-palette/command-palette.css +84 -90
  36. package/src/container/container.css +24 -24
  37. package/src/context-menu/context-menu.css +8 -8
  38. package/src/currency-field/currency-field.css +210 -88
  39. package/src/currency-field/currency-field.tokens.json +13 -0
  40. package/src/dashboard-grid/dashboard-grid.css +148 -116
  41. package/src/data-grid/data-grid.css +504 -469
  42. package/src/data-grid/data-grid.tokens.json +2 -0
  43. package/src/data-list/data-list.css +81 -70
  44. package/src/data-list/data-list.tokens.json +2 -1
  45. package/src/date-field/date-field.css +55 -52
  46. package/src/date-field/date-field.tokens.json +1 -0
  47. package/src/date-picker/date-picker.css +40 -42
  48. package/src/date-range-picker/date-range-picker.css +114 -118
  49. package/src/datetime-field/datetime-field.css +78 -80
  50. package/src/datetime-field/datetime-field.tokens.json +1 -0
  51. package/src/datetime-picker/datetime-picker.css +61 -63
  52. package/src/datetime-range-picker/datetime-range-picker.css +149 -156
  53. package/src/description-list/description-list.css +61 -64
  54. package/src/detail-panel/detail-panel.css +70 -70
  55. package/src/dialog/dialog.css +334 -153
  56. package/src/dialog/dialog.tokens.json +5 -0
  57. package/src/divider/divider.css +18 -18
  58. package/src/drawer/drawer.css +186 -209
  59. package/src/entity-picker/entity-picker.css +238 -241
  60. package/src/entity-picker/entity-picker.tokens.json +1 -0
  61. package/src/event-calendar/event-calendar.css +343 -385
  62. package/src/field/field.css +74 -78
  63. package/src/field-group/field-group.css +22 -25
  64. package/src/filter-bar/filter-bar.css +193 -209
  65. package/src/form/form.css +34 -24
  66. package/src/form/form.tokens.json +1 -0
  67. package/src/fullscreen/fullscreen.css +24 -25
  68. package/src/grid/grid.css +28 -28
  69. package/src/highlight/highlight.css +6 -6
  70. package/src/hover-card/hover-card.css +6 -6
  71. package/src/icon/icon.css +19 -15
  72. package/src/icon/icon.tokens.json +1 -0
  73. package/src/image/image.css +39 -39
  74. package/src/import-export-center/import-export-center.css +135 -156
  75. package/src/inline/inline.css +27 -27
  76. package/src/inline-message/inline-message.css +52 -28
  77. package/src/inline-message/inline-message.tokens.json +4 -0
  78. package/src/kbd/kbd.css +30 -26
  79. package/src/link/link.css +15 -15
  80. package/src/list/list.css +44 -17
  81. package/src/list/list.tokens.json +4 -0
  82. package/src/list-item/list-item.css +80 -66
  83. package/src/list-item/list-item.tokens.json +7 -0
  84. package/src/listbox/listbox.css +56 -59
  85. package/src/loading-overlay/loading-overlay.css +75 -92
  86. package/src/markdown/markdown.css +17 -17
  87. package/src/menu/menu.css +83 -63
  88. package/src/menubar/menubar.css +13 -13
  89. package/src/message/message.css +182 -202
  90. package/src/message/message.tokens.json +5 -0
  91. package/src/message-scroller/message-scroller.css +41 -42
  92. package/src/multi-select/multi-select.css +152 -145
  93. package/src/multi-select/multi-select.tokens.json +1 -0
  94. package/src/navigation-menu/navigation-menu.css +167 -188
  95. package/src/notification-center/notification-center.css +140 -148
  96. package/src/notification-center/notification-center.tokens.json +3 -0
  97. package/src/number-field/number-field.css +84 -83
  98. package/src/number-field/number-field.tokens.json +1 -0
  99. package/src/otp-input/otp-input.css +67 -57
  100. package/src/otp-input/otp-input.tokens.json +1 -0
  101. package/src/page/page.css +23 -23
  102. package/src/page-header/page-header.css +268 -281
  103. package/src/page-header/page-header.tokens.json +1 -0
  104. package/src/pagination/pagination.css +68 -72
  105. package/src/popover/popover.css +40 -49
  106. package/src/progress-indicator/progress-indicator.css +177 -120
  107. package/src/progress-indicator/progress-indicator.tokens.json +1 -1
  108. package/src/prompt-composer/prompt-composer.css +221 -102
  109. package/src/prompt-composer/prompt-composer.tokens.json +15 -0
  110. package/src/prose/prose.css +71 -75
  111. package/src/radio-group/radio-group.css +98 -103
  112. package/src/rating/rating.css +136 -132
  113. package/src/rating/rating.tokens.json +1 -0
  114. package/src/result-state/result-state.css +74 -77
  115. package/src/runtime-properties.mjs +2 -0
  116. package/src/saved-views/saved-views.css +41 -47
  117. package/src/scroll-area/scroll-area.css +39 -32
  118. package/src/section/section.css +161 -41
  119. package/src/section/section.tokens.json +7 -2
  120. package/src/segmented-control/segmented-control.css +254 -97
  121. package/src/segmented-control/segmented-control.tokens.json +15 -11
  122. package/src/select/select.css +118 -117
  123. package/src/select/select.tokens.json +1 -0
  124. package/src/side-navigation/side-navigation.css +179 -182
  125. package/src/side-navigation/side-navigation.tokens.json +1 -0
  126. package/src/skeleton/skeleton.css +47 -48
  127. package/src/slider/slider.css +86 -88
  128. package/src/sparkline/sparkline.css +62 -40
  129. package/src/sparkline/sparkline.tokens.json +2 -0
  130. package/src/spinner/spinner.css +39 -182
  131. package/src/spinner/spinner.tokens.json +0 -2
  132. package/src/split-button/split-button.css +30 -31
  133. package/src/split-button/split-button.tokens.json +1 -0
  134. package/src/splitter/splitter.css +35 -35
  135. package/src/stack/stack.css +24 -24
  136. package/src/stat-card/stat-card.css +341 -224
  137. package/src/stat-card/stat-card.tokens.json +3 -0
  138. package/src/status-indicator/status-indicator.css +28 -28
  139. package/src/stepper/stepper.css +58 -62
  140. package/src/switch/switch.css +86 -92
  141. package/src/table/table.css +310 -165
  142. package/src/table/table.tokens.json +6 -0
  143. package/src/table-of-contents/table-of-contents.css +51 -54
  144. package/src/tabs/tabs.css +330 -302
  145. package/src/tabs/tabs.tokens.json +8 -5
  146. package/src/tag/tag.css +79 -71
  147. package/src/tag/tag.tokens.json +9 -0
  148. package/src/tags-input/tags-input.css +145 -82
  149. package/src/tags-input/tags-input.tokens.json +7 -1
  150. package/src/text-field/text-field.css +132 -136
  151. package/src/text-field/text-field.tokens.json +1 -0
  152. package/src/textarea/textarea.css +31 -28
  153. package/src/textarea/textarea.tokens.json +1 -0
  154. package/src/time-field/time-field.css +72 -69
  155. package/src/time-field/time-field.tokens.json +1 -0
  156. package/src/time-picker/time-picker.css +56 -58
  157. package/src/time-range-picker/time-range-picker.css +126 -133
  158. package/src/timeline/timeline.css +254 -266
  159. package/src/timeline/timeline.tokens.json +5 -0
  160. package/src/toast/toast.css +89 -90
  161. package/src/toast/toast.tokens.json +5 -0
  162. package/src/toggle/toggle.css +62 -25
  163. package/src/toggle/toggle.tokens.json +8 -0
  164. package/src/toggle-group/toggle-group.css +106 -60
  165. package/src/toggle-group/toggle-group.tokens.json +10 -0
  166. package/src/toolbar/toolbar.css +30 -35
  167. package/src/tooltip/tooltip.css +26 -26
  168. package/src/top-navigation/top-navigation.css +243 -259
  169. package/src/tour/tour.css +51 -60
  170. package/src/transfer/transfer.css +160 -164
  171. package/src/tree/tree.css +103 -111
  172. package/src/typography/typography.css +40 -36
  173. package/src/typography/typography.tokens.json +1 -0
  174. package/src/upload/upload.css +224 -224
  175. package/src/visually-hidden/visually-hidden.css +1 -1
  176. package/src/wizard/wizard.css +185 -197
@@ -23,7 +23,7 @@
23
23
  * combinators: the content is other families, and a descendant rule would
24
24
  * restyle a `form`'s actions or an `alert`'s title.
25
25
  */
26
- [data-ui='wizard'] {
26
+ [data-ui-wizard] {
27
27
  --_text: var(--slotted-text, CanvasText);
28
28
  --_muted: var(--slotted-text-muted, GrayText);
29
29
  --_rule: var(--slotted-wizard-border, var(--slotted-border-subtle, ButtonBorder));
@@ -72,7 +72,7 @@
72
72
 
73
73
  /* ── The two columns ──────────────────────────────────────────────────── */
74
74
 
75
- [data-ui='wizard'] > [data-part='layout'] {
75
+ [data-ui-wizard] > [data-part-layout] {
76
76
  display: grid;
77
77
  gap: var(--_gap);
78
78
  grid-template-columns: minmax(0, 1fr);
@@ -84,16 +84,16 @@
84
84
  * step takes the rest. `align-items: start` keeps a short progress from
85
85
  * stretching to the step's height, which the sticky rule below needs.
86
86
  */
87
- [data-ui='wizard'][data-progress='start'] > [data-part='layout'] {
87
+ [data-ui-wizard][data-progress='start'] > [data-part-layout] {
88
88
  align-items: start;
89
89
  grid-template-columns: var(--_progress-size) minmax(0, 1fr);
90
90
  }
91
91
 
92
- [data-ui='wizard'][data-progress='none'] > [data-part='layout'] > [data-part='progress'] {
92
+ [data-ui-wizard][data-progress='none'] > [data-part-layout] > [data-part-progress] {
93
93
  display: none;
94
94
  }
95
95
 
96
- [data-ui='wizard'] > [data-part='layout'] > [data-part='progress'] {
96
+ [data-ui-wizard] > [data-part-layout] > [data-part-progress] {
97
97
  display: flex;
98
98
  flex-direction: column;
99
99
  gap: var(--slotted-space-4, 0.5rem);
@@ -106,9 +106,9 @@
106
106
  * `--slotted-page-sticky-top` decision). Under `scroll=self` the column is
107
107
  * inside the root's own scroller and needs no stickiness.
108
108
  */
109
- [data-ui='wizard'][data-progress='start']:not([data-scroll='self'])
110
- > [data-part='layout']
111
- > [data-part='progress'] {
109
+ [data-ui-wizard][data-progress='start']:not([data-scroll='self'])
110
+ > [data-part-layout]
111
+ > [data-part-progress] {
112
112
  inset-block-start: var(--slotted-page-sticky-top, 0px);
113
113
  position: sticky;
114
114
  }
@@ -117,7 +117,7 @@
117
117
  * Above the step, the progress is a row closed by a rule: without it the
118
118
  * row of markers and the step's heading read as one block of text.
119
119
  */
120
- [data-ui='wizard'][data-progress='top'] > [data-part='layout'] > [data-part='progress'] {
120
+ [data-ui-wizard][data-progress='top'] > [data-part-layout] > [data-part-progress] {
121
121
  border-block-end: var(--_rule-size) solid var(--_rule);
122
122
  padding-block-end: var(--_rhythm);
123
123
  }
@@ -141,10 +141,7 @@
141
141
  * It is painted as a control at rest — the control surface, its resting
142
142
  * edge and lift, its radius — because it is one: it opens and closes.
143
143
  */
144
- [data-ui='wizard']
145
- > [data-part='layout']
146
- > [data-part='progress']
147
- > [data-part='progress-toggle'] {
144
+ [data-ui-wizard] > [data-part-layout] > [data-part-progress] > [data-part-progress-toggle] {
148
145
  align-items: center;
149
146
  appearance: none;
150
147
  background-color: var(--slotted-control-surface, Field);
@@ -175,41 +172,41 @@
175
172
  var(--slotted-control-transition-easing, var(--slotted-easing-standard, ease));
176
173
  }
177
174
 
178
- [data-ui='wizard']
179
- > [data-part='layout']
180
- > [data-part='progress']
181
- > [data-part='progress-toggle']:hover:not(:disabled):not([data-disabled]) {
175
+ [data-ui-wizard]
176
+ > [data-part-layout]
177
+ > [data-part-progress]
178
+ > [data-part-progress-toggle]:hover:not(:disabled):not([data-disabled]) {
182
179
  border-color: var(
183
180
  --slotted-wizard-toggle-hover-border-color,
184
181
  var(--slotted-tone-accent-border)
185
182
  );
186
183
  }
187
184
 
188
- [data-ui='wizard']
189
- > [data-part='layout']
190
- > [data-part='progress']
191
- > [data-part='progress-toggle']:active:not(:disabled):not([data-disabled]) {
185
+ [data-ui-wizard]
186
+ > [data-part-layout]
187
+ > [data-part-progress]
188
+ > [data-part-progress-toggle]:active:not(:disabled):not([data-disabled]) {
192
189
  background-color: var(
193
190
  --slotted-wizard-toggle-active-background,
194
191
  var(--slotted-tone-secondary-subtle-hover)
195
192
  );
196
193
  }
197
194
 
198
- [data-ui='wizard']
199
- > [data-part='layout']
200
- > [data-part='progress']
201
- > [data-part='progress-toggle']:focus-visible {
195
+ [data-ui-wizard]
196
+ > [data-part-layout]
197
+ > [data-part-progress]
198
+ > [data-part-progress-toggle]:focus-visible {
202
199
  box-shadow: var(--slotted-control-shadow-focus-geometry, 0 1px 4px -1px)
203
200
  var(--slotted-focus-ring-color, Highlight);
204
201
  outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
205
202
  outline-offset: var(--slotted-focus-ring-offset, 2px);
206
203
  }
207
204
 
208
- [data-ui='wizard']
209
- > [data-part='layout']
210
- > [data-part='progress']
211
- > [data-part='progress-toggle']
212
- > [data-part='progress-position'] {
205
+ [data-ui-wizard]
206
+ > [data-part-layout]
207
+ > [data-part-progress]
208
+ > [data-part-progress-toggle]
209
+ > [data-part-progress-position] {
213
210
  font-size: var(--slotted-font-size-sm, 0.8125rem);
214
211
  font-weight: var(--slotted-font-weight-medium, 500);
215
212
  grid-area: position;
@@ -224,11 +221,11 @@
224
221
  * Every segment fills the track's height; colour alone separates a step
225
222
  * ahead from a step reached.
226
223
  */
227
- [data-ui='wizard']
228
- > [data-part='layout']
229
- > [data-part='progress']
230
- > [data-part='progress-toggle']
231
- > [data-part='progress-track'] {
224
+ [data-ui-wizard]
225
+ > [data-part-layout]
226
+ > [data-part-progress]
227
+ > [data-part-progress-toggle]
228
+ > [data-part-progress-track] {
232
229
  align-items: center;
233
230
  block-size: var(--slotted-space-2, 0.25rem);
234
231
  display: flex;
@@ -237,12 +234,12 @@
237
234
  min-inline-size: 0;
238
235
  }
239
236
 
240
- [data-ui='wizard']
241
- > [data-part='layout']
242
- > [data-part='progress']
243
- > [data-part='progress-toggle']
244
- > [data-part='progress-track']
245
- > [data-part='progress-segment'] {
237
+ [data-ui-wizard]
238
+ > [data-part-layout]
239
+ > [data-part-progress]
240
+ > [data-part-progress-toggle]
241
+ > [data-part-progress-track]
242
+ > [data-part-progress-segment] {
246
243
  background-color: var(
247
244
  --slotted-wizard-segment-color,
248
245
  var(--slotted-control-border-color, ButtonBorder)
@@ -253,24 +250,24 @@
253
250
  transition: background-color var(--slotted-duration-medium) var(--slotted-easing-standard, ease);
254
251
  }
255
252
 
256
- [data-ui='wizard']
257
- > [data-part='layout']
258
- > [data-part='progress']
259
- > [data-part='progress-toggle']
260
- > [data-part='progress-track']
261
- > [data-part='progress-segment']:is([data-complete], [data-current]) {
253
+ [data-ui-wizard]
254
+ > [data-part-layout]
255
+ > [data-part-progress]
256
+ > [data-part-progress-toggle]
257
+ > [data-part-progress-track]
258
+ > [data-part-progress-segment]:is([data-complete], [data-current]) {
262
259
  background-color: var(
263
260
  --slotted-wizard-segment-color-complete,
264
261
  var(--slotted-tone-accent-solid, Highlight)
265
262
  );
266
263
  }
267
264
 
268
- [data-ui='wizard']
269
- > [data-part='layout']
270
- > [data-part='progress']
271
- > [data-part='progress-toggle']
272
- > [data-part='progress-track']
273
- > [data-part='progress-segment'][data-invalid] {
265
+ [data-ui-wizard]
266
+ > [data-part-layout]
267
+ > [data-part-progress]
268
+ > [data-part-progress-toggle]
269
+ > [data-part-progress-track]
270
+ > [data-part-progress-segment][data-invalid] {
274
271
  background-color: var(
275
272
  --slotted-wizard-segment-color-invalid,
276
273
  var(--slotted-tone-danger-solid, Mark)
@@ -281,49 +278,49 @@
281
278
  * The chevron turns a half turn when the list opens. The eye follows it
282
279
  * because it is the control the reader just pressed.
283
280
  */
284
- [data-ui='wizard']
285
- > [data-part='layout']
286
- > [data-part='progress']
287
- > [data-part='progress-toggle']
288
- > [data-ui='icon'] {
281
+ [data-ui-wizard]
282
+ > [data-part-layout]
283
+ > [data-part-progress]
284
+ > [data-part-progress-toggle]
285
+ > [data-ui-icon] {
289
286
  color: var(--_muted);
290
287
  grid-area: icon;
291
288
  transition: rotate var(--slotted-duration-short) var(--slotted-easing-standard, ease);
292
289
  }
293
290
 
294
- [data-ui='wizard']
295
- > [data-part='layout']
296
- > [data-part='progress'][data-open]
297
- > [data-part='progress-toggle']
298
- > [data-ui='icon'] {
291
+ [data-ui-wizard]
292
+ > [data-part-layout]
293
+ > [data-part-progress][data-open]
294
+ > [data-part-progress-toggle]
295
+ > [data-ui-icon] {
299
296
  rotate: 180deg;
300
297
  }
301
298
 
302
299
  /* ── The step ─────────────────────────────────────────────────────────── */
303
300
 
304
- [data-ui='wizard'] > [data-part='layout'] > [data-part='main'] {
301
+ [data-ui-wizard] > [data-part-layout] > [data-part-main] {
305
302
  display: flex;
306
303
  flex-direction: column;
307
304
  gap: var(--_rhythm);
308
305
  min-inline-size: 0;
309
306
  }
310
307
 
311
- [data-ui='wizard'] > [data-part='layout'] > [data-part='main'] > [data-part='error'] {
308
+ [data-ui-wizard] > [data-part-layout] > [data-part-main] > [data-part-error] {
312
309
  min-inline-size: 0;
313
310
  }
314
311
 
315
- [data-ui='wizard'] > [data-part='layout'] > [data-part='main'] > [data-part='step'] {
312
+ [data-ui-wizard] > [data-part-layout] > [data-part-main] > [data-part-step] {
316
313
  display: flex;
317
314
  flex-direction: column;
318
315
  gap: var(--_header-gap);
319
316
  min-inline-size: 0;
320
317
  }
321
318
 
322
- [data-ui='wizard']
323
- > [data-part='layout']
324
- > [data-part='main']
325
- > [data-part='step']
326
- > [data-part='step-header'] {
319
+ [data-ui-wizard]
320
+ > [data-part-layout]
321
+ > [data-part-main]
322
+ > [data-part-step]
323
+ > [data-part-step-header] {
327
324
  display: flex;
328
325
  flex-direction: column;
329
326
  gap: var(--slotted-space-2, 0.25rem);
@@ -341,12 +338,12 @@
341
338
  * as a selection nobody made. `form`'s summary, which is a region a reader
342
339
  * is sent to with work to do, keeps its own.
343
340
  */
344
- [data-ui='wizard']
345
- > [data-part='layout']
346
- > [data-part='main']
347
- > [data-part='step']
348
- > [data-part='step-header']
349
- > [data-part='step-title'] {
341
+ [data-ui-wizard]
342
+ > [data-part-layout]
343
+ > [data-part-main]
344
+ > [data-part-step]
345
+ > [data-part-step-header]
346
+ > [data-part-step-title] {
350
347
  font-family: var(
351
348
  --slotted-font-family-heading,
352
349
  var(--slotted-font-family-sans, ui-sans-serif, system-ui, sans-serif)
@@ -359,13 +356,13 @@
359
356
  overflow-wrap: anywhere;
360
357
  }
361
358
 
362
- [data-ui='wizard']
363
- > [data-part='layout']
364
- > [data-part='main']
365
- > [data-part='step']
366
- > [data-part='step-header']
367
- > [data-part='step-title']
368
- > [data-part='position'] {
359
+ [data-ui-wizard]
360
+ > [data-part-layout]
361
+ > [data-part-main]
362
+ > [data-part-step]
363
+ > [data-part-step-header]
364
+ > [data-part-step-title]
365
+ > [data-part-position] {
369
366
  color: var(--_muted);
370
367
  display: block;
371
368
  font-size: var(--slotted-font-size-sm, 0.8125rem);
@@ -380,23 +377,23 @@
380
377
  * the name and the mark two words in the heading's accessible name; the
381
378
  * margin adds to that space what a tag's frame needs to stand clear.
382
379
  */
383
- [data-ui='wizard']
384
- > [data-part='layout']
385
- > [data-part='main']
386
- > [data-part='step']
387
- > [data-part='step-header']
388
- > [data-part='step-title']
389
- > [data-part='optional'] {
380
+ [data-ui-wizard]
381
+ > [data-part-layout]
382
+ > [data-part-main]
383
+ > [data-part-step]
384
+ > [data-part-step-header]
385
+ > [data-part-step-title]
386
+ > [data-part-optional] {
390
387
  margin-inline-start: var(--slotted-space-1, 0.125rem);
391
388
  vertical-align: middle;
392
389
  }
393
390
 
394
- [data-ui='wizard']
395
- > [data-part='layout']
396
- > [data-part='main']
397
- > [data-part='step']
398
- > [data-part='step-header']
399
- > [data-part='step-description'] {
391
+ [data-ui-wizard]
392
+ > [data-part-layout]
393
+ > [data-part-main]
394
+ > [data-part-step]
395
+ > [data-part-step-header]
396
+ > [data-part-step-description] {
400
397
  color: var(--_muted);
401
398
  font-size: var(--slotted-font-size-md, 0.875rem);
402
399
  line-height: var(--slotted-line-height-md, 1.5);
@@ -411,11 +408,11 @@
411
408
  * skeletons, at the field's own gap. Nothing moves when the step arrives.
412
409
  * Actions are absent while it stands.
413
410
  */
414
- [data-ui='wizard']
415
- > [data-part='layout']
416
- > [data-part='main']
417
- > [data-part='step']
418
- > [data-part='skeleton'] {
411
+ [data-ui-wizard]
412
+ > [data-part-layout]
413
+ > [data-part-main]
414
+ > [data-part-step]
415
+ > [data-part-skeleton] {
419
416
  display: flex;
420
417
  flex-direction: column;
421
418
  min-inline-size: 0;
@@ -428,7 +425,7 @@
428
425
  * The order on screen is the order in the DOM (WCAG 2.4.3): what leaves
429
426
  * the flow at the start, what moves it at the end, the primary action last.
430
427
  */
431
- [data-ui='wizard'] > [data-part='layout'] > [data-part='main'] > [data-part='actions'] {
428
+ [data-ui-wizard] > [data-part-layout] > [data-part-main] > [data-part-actions] {
432
429
  align-items: center;
433
430
  border-block-start: var(--_rule-size) solid var(--_rule);
434
431
  display: flex;
@@ -438,11 +435,11 @@
438
435
  padding-block-start: var(--_rhythm);
439
436
  }
440
437
 
441
- [data-ui='wizard']
442
- > [data-part='layout']
443
- > [data-part='main']
444
- > [data-part='actions']
445
- > :is([data-part='actions-start'], [data-part='actions-end']) {
438
+ [data-ui-wizard]
439
+ > [data-part-layout]
440
+ > [data-part-main]
441
+ > [data-part-actions]
442
+ > :is([data-part-actions-start], [data-part-actions-end]) {
446
443
  align-items: center;
447
444
  display: flex;
448
445
  flex-wrap: wrap;
@@ -460,19 +457,19 @@
460
457
  * apart. The start group aligns by baseline, so the status reads on the
461
458
  * labels' line.
462
459
  */
463
- [data-ui='wizard']
464
- > [data-part='layout']
465
- > [data-part='main']
466
- > [data-part='actions']
467
- > [data-part='actions-start'] {
460
+ [data-ui-wizard]
461
+ > [data-part-layout]
462
+ > [data-part-main]
463
+ > [data-part-actions]
464
+ > [data-part-actions-start] {
468
465
  align-items: baseline;
469
466
  }
470
467
 
471
- [data-ui='wizard']
472
- > [data-part='layout']
473
- > [data-part='main']
474
- > [data-part='actions']
475
- > [data-part='actions-end'] {
468
+ [data-ui-wizard]
469
+ > [data-part-layout]
470
+ > [data-part-main]
471
+ > [data-part-actions]
472
+ > [data-part-actions-end] {
476
473
  justify-content: flex-end;
477
474
  margin-inline-start: auto;
478
475
  }
@@ -490,34 +487,34 @@
490
487
  * its label in two. The margin is not on the group either, which moved a
491
488
  * wrapped draft status past the column.
492
489
  */
493
- [data-ui='wizard']
494
- > [data-part='layout']
495
- > [data-part='main']
496
- > [data-part='actions']
497
- > [data-part='actions-start']
498
- > [data-ui='button'][data-variant='ghost']:first-child {
490
+ [data-ui-wizard]
491
+ > [data-part-layout]
492
+ > [data-part-main]
493
+ > [data-part-actions]
494
+ > [data-part-actions-start]
495
+ > [data-ui-button][data-variant='ghost']:first-child {
499
496
  flex: none;
500
497
  max-inline-size: none;
501
498
  margin-inline-start: calc(var(--slotted-control-padding-inline-md, 0.75rem) * -1);
502
499
  }
503
500
 
504
- [data-ui='wizard']
505
- > [data-part='layout']
506
- > [data-part='main']
507
- > [data-part='actions']
508
- > [data-part='actions-start']
509
- > [data-part='draft-status'] {
501
+ [data-ui-wizard]
502
+ > [data-part-layout]
503
+ > [data-part-main]
504
+ > [data-part-actions]
505
+ > [data-part-actions-start]
506
+ > [data-part-draft-status] {
510
507
  color: var(--_muted);
511
508
  font-size: var(--slotted-font-size-sm, 0.8125rem);
512
509
  line-height: var(--slotted-line-height-sm, 1.45);
513
510
  }
514
511
 
515
- [data-ui='wizard']
516
- > [data-part='layout']
517
- > [data-part='main']
518
- > [data-part='actions']
519
- > [data-part='actions-start']
520
- > [data-part='draft-status']:empty {
512
+ [data-ui-wizard]
513
+ > [data-part-layout]
514
+ > [data-part-main]
515
+ > [data-part-actions]
516
+ > [data-part-actions-start]
517
+ > [data-part-draft-status]:empty {
521
518
  display: none;
522
519
  }
523
520
 
@@ -534,7 +531,7 @@
534
531
  * It is the one part reached with a descendant combinator: it stands
535
532
  * wherever the consumer's review content puts it.
536
533
  */
537
- [data-ui='wizard'] [data-part='edit'] {
534
+ [data-ui-wizard] [data-part-edit] {
538
535
  appearance: none;
539
536
  background: none;
540
537
  border: 0;
@@ -550,16 +547,16 @@
550
547
  text-underline-offset: 0.2em;
551
548
  }
552
549
 
553
- [data-ui='wizard'] [data-part='edit']:hover:not(:disabled):not([aria-disabled='true']) {
550
+ [data-ui-wizard] [data-part-edit]:hover:not(:disabled):not([aria-disabled='true']) {
554
551
  text-decoration-line: underline;
555
552
  }
556
553
 
557
- [data-ui='wizard'] [data-part='edit']:focus-visible {
554
+ [data-ui-wizard] [data-part-edit]:focus-visible {
558
555
  outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
559
556
  outline-offset: var(--slotted-focus-ring-offset, 2px);
560
557
  }
561
558
 
562
- [data-ui='wizard'] [data-part='edit']:is(:disabled, [aria-disabled='true']) {
559
+ [data-ui-wizard] [data-part-edit]:is(:disabled, [aria-disabled='true']) {
563
560
  color: var(--slotted-disabled-foreground, GrayText);
564
561
  cursor: not-allowed;
565
562
  }
@@ -570,7 +567,7 @@
570
567
  * The consumer's content in place of the step and the actions. It takes
571
568
  * focus once, and draws no ring for the step title's reason.
572
569
  */
573
- [data-ui='wizard'] > [data-part='layout'] > [data-part='main'] > [data-part='complete'] {
570
+ [data-ui-wizard] > [data-part-layout] > [data-part-main] > [data-part-complete] {
574
571
  min-inline-size: 0;
575
572
  outline: none;
576
573
  }
@@ -584,32 +581,32 @@
584
581
  * flex child shrink below its content; `overscroll-behavior` keeps a wheel
585
582
  * at the end of the step from scrolling the page behind the layer.
586
583
  */
587
- [data-ui='wizard'][data-scroll='self'] {
584
+ [data-ui-wizard][data-scroll='self'] {
588
585
  block-size: 100%;
589
586
  min-block-size: 0;
590
587
  }
591
588
 
592
- [data-ui='wizard'][data-scroll='self'] > [data-part='layout'] {
589
+ [data-ui-wizard][data-scroll='self'] > [data-part-layout] {
593
590
  block-size: 100%;
594
591
  min-block-size: 0;
595
592
  }
596
593
 
597
- [data-ui='wizard'][data-scroll='self'] > [data-part='layout'] > [data-part='progress'] {
594
+ [data-ui-wizard][data-scroll='self'] > [data-part-layout] > [data-part-progress] {
598
595
  max-block-size: 100%;
599
596
  overflow: auto;
600
597
  padding: var(--_ring-room);
601
598
  }
602
599
 
603
- [data-ui='wizard'][data-scroll='self'] > [data-part='layout'] > [data-part='main'] {
600
+ [data-ui-wizard][data-scroll='self'] > [data-part-layout] > [data-part-main] {
604
601
  block-size: 100%;
605
602
  gap: 0;
606
603
  min-block-size: 0;
607
604
  }
608
605
 
609
- [data-ui='wizard'][data-scroll='self']
610
- > [data-part='layout']
611
- > [data-part='main']
612
- > :is([data-part='step'], [data-part='complete']) {
606
+ [data-ui-wizard][data-scroll='self']
607
+ > [data-part-layout]
608
+ > [data-part-main]
609
+ > :is([data-part-step], [data-part-complete]) {
613
610
  flex: 1 1 auto;
614
611
  min-block-size: 0;
615
612
  overflow: auto;
@@ -618,18 +615,15 @@
618
615
  padding-inline: var(--_ring-room);
619
616
  }
620
617
 
621
- [data-ui='wizard'][data-scroll='self']
622
- > [data-part='layout']
623
- > [data-part='main']
624
- > [data-part='error'] {
618
+ [data-ui-wizard][data-scroll='self'] > [data-part-layout] > [data-part-main] > [data-part-error] {
625
619
  padding-block-end: var(--_rhythm);
626
620
  padding-inline: var(--_ring-room);
627
621
  }
628
622
 
629
- [data-ui='wizard'][data-scroll='self']
630
- > [data-part='layout']
631
- > [data-part='main']
632
- > [data-part='actions'] {
623
+ [data-ui-wizard][data-scroll='self']
624
+ > [data-part-layout]
625
+ > [data-part-main]
626
+ > [data-part-actions] {
633
627
  background-color: var(--_ground);
634
628
  flex: none;
635
629
  padding-block-end: 0;
@@ -647,31 +641,28 @@
647
641
  * condition cannot read a custom property (token foundation, rule 4).
648
642
  */
649
643
  @container slotted-wizard (width < 600px) {
650
- [data-ui='wizard'] > [data-part='layout'] {
644
+ [data-ui-wizard] > [data-part-layout] {
651
645
  gap: var(--_rhythm);
652
646
  }
653
647
 
654
- [data-ui='wizard'][data-progress='start'] > [data-part='layout'] {
648
+ [data-ui-wizard][data-progress='start'] > [data-part-layout] {
655
649
  grid-template-columns: minmax(0, 1fr);
656
650
  }
657
651
 
658
- [data-ui='wizard'][data-progress] > [data-part='layout'] > [data-part='progress'] {
652
+ [data-ui-wizard][data-progress] > [data-part-layout] > [data-part-progress] {
659
653
  border-block-end: 0;
660
654
  padding-block-end: 0;
661
655
  position: static;
662
656
  }
663
657
 
664
- [data-ui='wizard']
665
- > [data-part='layout']
666
- > [data-part='progress']
667
- > [data-part='progress-toggle'] {
658
+ [data-ui-wizard] > [data-part-layout] > [data-part-progress] > [data-part-progress-toggle] {
668
659
  display: grid;
669
660
  }
670
661
 
671
- [data-ui='wizard']
672
- > [data-part='layout']
673
- > [data-part='progress']:not([data-open])
674
- > [data-ui='stepper'] {
662
+ [data-ui-wizard]
663
+ > [data-part-layout]
664
+ > [data-part-progress]:not([data-open])
665
+ > [data-ui-stepper] {
675
666
  display: none;
676
667
  }
677
668
 
@@ -679,20 +670,17 @@
679
670
  * The open list stands under the bar, in the flow, on a sunken ground
680
671
  * so it reads as the bar's content rather than as the step.
681
672
  */
682
- [data-ui='wizard']
683
- > [data-part='layout']
684
- > [data-part='progress'][data-open]
685
- > [data-ui='stepper'] {
673
+ [data-ui-wizard] > [data-part-layout] > [data-part-progress][data-open] > [data-ui-stepper] {
686
674
  background-color: var(--slotted-surface-sunken, Canvas);
687
675
  border-radius: var(--slotted-control-radius, 6px);
688
676
  padding: var(--slotted-space-5, 0.75rem);
689
677
  }
690
678
 
691
- [data-ui='wizard']
692
- > [data-part='layout']
693
- > [data-part='main']
694
- > [data-part='actions']
695
- > :is([data-part='actions-start'], [data-part='actions-end']) {
679
+ [data-ui-wizard]
680
+ > [data-part-layout]
681
+ > [data-part-main]
682
+ > [data-part-actions]
683
+ > :is([data-part-actions-start], [data-part-actions-end]) {
696
684
  inline-size: 100%;
697
685
  }
698
686
 
@@ -700,12 +688,12 @@
700
688
  * The two moving buttons share the line; a ghost Skip keeps its own
701
689
  * width, because a borderless third of a row reads as empty space.
702
690
  */
703
- [data-ui='wizard']
704
- > [data-part='layout']
705
- > [data-part='main']
706
- > [data-part='actions']
707
- > [data-part='actions-end']
708
- > [data-ui='button']:not([data-variant='ghost']) {
691
+ [data-ui-wizard]
692
+ > [data-part-layout]
693
+ > [data-part-main]
694
+ > [data-part-actions]
695
+ > [data-part-actions-end]
696
+ > [data-ui-button]:not([data-variant='ghost']) {
709
697
  flex: 1 1 0;
710
698
  }
711
699
 
@@ -714,20 +702,20 @@
714
702
  * picture here — and only the picture: it stays in the heading's text,
715
703
  * which is what a screen reader hears when focus lands there.
716
704
  */
717
- [data-ui='wizard'][data-progress='start']
718
- > [data-part='layout']
719
- > [data-part='main']
720
- > [data-part='step']
721
- > [data-part='step-header']
722
- > [data-part='step-title']
723
- > [data-part='position'],
724
- [data-ui='wizard'][data-progress='top']
725
- > [data-part='layout']
726
- > [data-part='main']
727
- > [data-part='step']
728
- > [data-part='step-header']
729
- > [data-part='step-title']
730
- > [data-part='position'] {
705
+ [data-ui-wizard][data-progress='start']
706
+ > [data-part-layout]
707
+ > [data-part-main]
708
+ > [data-part-step]
709
+ > [data-part-step-header]
710
+ > [data-part-step-title]
711
+ > [data-part-position],
712
+ [data-ui-wizard][data-progress='top']
713
+ > [data-part-layout]
714
+ > [data-part-main]
715
+ > [data-part-step]
716
+ > [data-part-step-header]
717
+ > [data-part-step-title]
718
+ > [data-part-position] {
731
719
  block-size: 1px;
732
720
  clip-path: inset(50%);
733
721
  inline-size: 1px;