@slotted/styles 0.1.0-beta.1 → 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
@@ -25,7 +25,7 @@
25
25
  * it to the consumer's own content, and a family that covers a box has no
26
26
  * business changing how that box lays itself out.
27
27
  */
28
- [data-ui='loading-overlay'][data-part='root'] {
28
+ [data-ui-loading-overlay][data-part-root] {
29
29
  /**
30
30
  * The distance the panel keeps from the region's edges. It is the panel's
31
31
  * own margin rather than the layer's padding, and the difference is not
@@ -45,7 +45,7 @@
45
45
  * position is the overlay step, below `popover` and `toast`, because a
46
46
  * message about a wait has to stay readable over anything the wait raises.
47
47
  */
48
- [data-ui='loading-overlay'][data-part='root'][data-scope='page'] {
48
+ [data-ui-loading-overlay][data-part-root][data-scope='page'] {
49
49
  inset: 0;
50
50
  position: fixed;
51
51
  z-index: var(--slotted-z-index-overlay, 1000);
@@ -73,7 +73,7 @@
73
73
  * a `table` or a `tbody` cannot legally hold this `div`, so a family covering
74
74
  * table internals covers the table instead.
75
75
  */
76
- [data-ui='loading-overlay'] > [data-part='content'] {
76
+ [data-ui-loading-overlay] > [data-part-content] {
77
77
  display: contents;
78
78
  }
79
79
 
@@ -92,7 +92,7 @@
92
92
  * padding box, the scrim measures the inline size the root does and contains
93
93
  * nothing but the panel.
94
94
  */
95
- [data-ui='loading-overlay'] > [data-part='scrim'] {
95
+ [data-ui-loading-overlay] > [data-part-scrim] {
96
96
  align-items: center;
97
97
  container-name: slotted-loading-overlay;
98
98
  container-type: size;
@@ -108,8 +108,8 @@
108
108
  * `dialog` and `drawer` already read: three families dimming a surface in
109
109
  * three tints would be three answers to one question.
110
110
  */
111
- [data-ui='loading-overlay'][data-veil='wash'] > [data-part='scrim'],
112
- [data-ui='loading-overlay'][data-veil='blur'] > [data-part='scrim'] {
111
+ [data-ui-loading-overlay][data-veil='wash'] > [data-part-scrim],
112
+ [data-ui-loading-overlay][data-veil='blur'] > [data-part-scrim] {
113
113
  background: var(--slotted-loading-overlay-scrim, var(--slotted-scrim, Canvas));
114
114
  }
115
115
 
@@ -123,7 +123,7 @@
123
123
  * parallel scale `docs/token-foundation.md` refuses. A theme retunes the
124
124
  * hook instead.
125
125
  */
126
- [data-ui='loading-overlay'][data-veil='blur'] > [data-part='scrim'] {
126
+ [data-ui-loading-overlay][data-veil='blur'] > [data-part-scrim] {
127
127
  backdrop-filter: blur(var(--slotted-loading-overlay-blur, 3px));
128
128
  }
129
129
 
@@ -157,13 +157,13 @@
157
157
  * so a click during those hundred and twenty milliseconds has somewhere to
158
158
  * land.
159
159
  */
160
- [data-ui='loading-overlay'] > [data-part='scrim'] {
160
+ [data-ui-loading-overlay] > [data-part-scrim] {
161
161
  opacity: 0;
162
162
  pointer-events: none;
163
163
  transition: opacity var(--slotted-duration-short) var(--slotted-easing-exit, ease);
164
164
  }
165
165
 
166
- [data-ui='loading-overlay'] > [data-part='scrim'][data-loading] {
166
+ [data-ui-loading-overlay] > [data-part-scrim][data-loading] {
167
167
  opacity: 1;
168
168
  pointer-events: auto;
169
169
  transition-duration: var(--slotted-duration-medium);
@@ -189,7 +189,7 @@
189
189
  * the shadow is dropped and the scrim goes opaque, so the edge is the only
190
190
  * thing left separating the panel from what is behind it.
191
191
  */
192
- [data-ui='loading-overlay'] > [data-part='scrim'] > [data-part='panel'] {
192
+ [data-ui-loading-overlay] > [data-part-scrim] > [data-part-panel] {
193
193
  align-items: center;
194
194
  background: var(--slotted-loading-overlay-surface, var(--slotted-surface-raised, Canvas));
195
195
  border: var(--slotted-border-width-thin, 1px) solid var(--slotted-border-subtle, CanvasText);
@@ -240,7 +240,7 @@
240
240
  * holds at every step; a second, smaller step would have run out of scale
241
241
  * under `sm`.
242
242
  */
243
- [data-ui='loading-overlay'][data-size='sm'] > [data-part='scrim'] > [data-part='panel'] {
243
+ [data-ui-loading-overlay][data-size='sm'] > [data-part-scrim] > [data-part-panel] {
244
244
  --_floor: min(100%, calc(3 * var(--slotted-control-height-sm, 30px)));
245
245
  --_line-height: var(--slotted-line-height-sm, 1.35);
246
246
  --_text-size: var(--slotted-control-font-size-sm, 12px);
@@ -249,7 +249,7 @@
249
249
  --_padding-inline: var(--slotted-space-5, 0.75rem);
250
250
  }
251
251
 
252
- [data-ui='loading-overlay'][data-size='md'] > [data-part='scrim'] > [data-part='panel'] {
252
+ [data-ui-loading-overlay][data-size='md'] > [data-part-scrim] > [data-part-panel] {
253
253
  --_floor: min(100%, calc(3 * var(--slotted-control-height-md, 34px)));
254
254
  --_line-height: var(--slotted-line-height-md, 1.4);
255
255
  --_text-size: var(--slotted-control-font-size-md, 13px);
@@ -258,7 +258,7 @@
258
258
  --_padding-inline: var(--slotted-space-6, 1rem);
259
259
  }
260
260
 
261
- [data-ui='loading-overlay'][data-size='lg'] > [data-part='scrim'] > [data-part='panel'] {
261
+ [data-ui-loading-overlay][data-size='lg'] > [data-part-scrim] > [data-part-panel] {
262
262
  --_floor: min(100%, calc(3 * var(--slotted-control-height-lg, 38px)));
263
263
  --_line-height: var(--slotted-line-height-lg, 1.45);
264
264
  --_text-size: var(--slotted-control-font-size-lg, 14px);
@@ -307,10 +307,7 @@
307
307
  * gave up, at the 3:1 `progress-indicator` holds between a contained shape
308
308
  * and its container, in every scheme rather than in one.
309
309
  */
310
- [data-ui='loading-overlay']
311
- > [data-part='scrim']
312
- > [data-part='panel']
313
- > [data-part='indicator'] {
310
+ [data-ui-loading-overlay] > [data-part-scrim] > [data-part-panel] > [data-part-indicator] {
314
311
  display: grid;
315
312
  justify-items: stretch;
316
313
  justify-self: stretch;
@@ -326,10 +323,10 @@
326
323
  * `ProgressBar` in a centred, content-sized slot drew a two-pixel dash at
327
324
  * the left of the panel: a bar has no intrinsic width to be centred at.
328
325
  */
329
- [data-ui='loading-overlay']
330
- > [data-part='scrim']
331
- > [data-part='panel']
332
- > [data-part='indicator'][data-default] {
326
+ [data-ui-loading-overlay]
327
+ > [data-part-scrim]
328
+ > [data-part-panel]
329
+ > [data-part-indicator][data-default] {
333
330
  justify-items: center;
334
331
  justify-self: center;
335
332
  }
@@ -350,17 +347,14 @@
350
347
  * a scrollbar that flickered in and out for as long as the wait lasted. A
351
348
  * scrollbar nobody can reach for is not worth a defect that visible.
352
349
  */
353
- [data-ui='loading-overlay'] > [data-part='scrim'] > [data-part='panel'] > [data-part='label'] {
350
+ [data-ui-loading-overlay] > [data-part-scrim] > [data-part-panel] > [data-part-label] {
354
351
  font-size: var(--_text-size);
355
352
  font-weight: var(--slotted-font-weight-medium, 500);
356
353
  line-height: var(--_line-height);
357
354
  overflow-wrap: anywhere;
358
355
  }
359
356
 
360
- [data-ui='loading-overlay']
361
- > [data-part='scrim']
362
- > [data-part='panel']
363
- > [data-part='description'] {
357
+ [data-ui-loading-overlay] > [data-part-scrim] > [data-part-panel] > [data-part-description] {
364
358
  color: var(--slotted-text-muted, GrayText);
365
359
  font-size: var(--_text-size);
366
360
  line-height: var(--_line-height);
@@ -398,10 +392,10 @@
398
392
  * move and the tight-region rules all still find it — and only the paint
399
393
  * steps back.
400
394
  */
401
- [data-ui='loading-overlay']
402
- > [data-part='scrim']
403
- > [data-part='panel']
404
- > [data-part='cancel']:not([data-ui]) {
395
+ [data-ui-loading-overlay]
396
+ > [data-part-scrim]
397
+ > [data-part-panel]
398
+ > [data-part-cancel]:not([data-ui]) {
405
399
  align-items: center;
406
400
  background: transparent;
407
401
  border: var(--slotted-control-border-width, 1px) solid
@@ -430,33 +424,33 @@
430
424
  * `packages/styles/src/states.test.mjs` enforces. A control the browser has
431
425
  * already switched off must not look operable.
432
426
  */
433
- [data-ui='loading-overlay']
434
- > [data-part='scrim']
435
- > [data-part='panel']
436
- > [data-part='cancel']:not([data-ui]):hover:not(:disabled) {
427
+ [data-ui-loading-overlay]
428
+ > [data-part-scrim]
429
+ > [data-part-panel]
430
+ > [data-part-cancel]:not([data-ui]):hover:not(:disabled) {
437
431
  background: var(--slotted-tone-secondary-subtle-hover);
438
432
  }
439
433
 
440
- [data-ui='loading-overlay']
441
- > [data-part='scrim']
442
- > [data-part='panel']
443
- > [data-part='cancel']:not([data-ui]):active:not(:disabled) {
434
+ [data-ui-loading-overlay]
435
+ > [data-part-scrim]
436
+ > [data-part-panel]
437
+ > [data-part-cancel]:not([data-ui]):active:not(:disabled) {
444
438
  background: var(--slotted-tone-secondary-subtle-active);
445
439
  }
446
440
 
447
- [data-ui='loading-overlay']
448
- > [data-part='scrim']
449
- > [data-part='panel']
450
- > [data-part='cancel']:not([data-ui]):disabled {
441
+ [data-ui-loading-overlay]
442
+ > [data-part-scrim]
443
+ > [data-part-panel]
444
+ > [data-part-cancel]:not([data-ui]):disabled {
451
445
  border-color: var(--slotted-disabled-border);
452
446
  color: var(--slotted-disabled-foreground);
453
447
  cursor: default;
454
448
  }
455
449
 
456
- [data-ui='loading-overlay']
457
- > [data-part='scrim']
458
- > [data-part='panel']
459
- > [data-part='cancel']:not([data-ui]):focus-visible {
450
+ [data-ui-loading-overlay]
451
+ > [data-part-scrim]
452
+ > [data-part-panel]
453
+ > [data-part-cancel]:not([data-ui]):focus-visible {
460
454
  outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
461
455
  outline-offset: var(--slotted-focus-ring-offset, 2px);
462
456
  }
@@ -467,7 +461,7 @@
467
461
  * before it is operated. Script puts focus there and Tab never does, so the
468
462
  * ring is the only thing the part needs.
469
463
  */
470
- [data-ui='loading-overlay'] > [data-part='scrim'] > [data-part='panel']:focus-visible {
464
+ [data-ui-loading-overlay] > [data-part-scrim] > [data-part-panel]:focus-visible {
471
465
  outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
472
466
  outline-offset: var(--slotted-focus-ring-offset, 2px);
473
467
  }
@@ -503,7 +497,7 @@
503
497
  * holding it to eighteen rem is what squeezed a sentence into one word per
504
498
  * line beside a control that then had nowhere to sit.
505
499
  */
506
- [data-ui='loading-overlay'] > [data-part='scrim'] > [data-part='panel'] {
500
+ [data-ui-loading-overlay] > [data-part-scrim] > [data-part-panel] {
507
501
  grid-template-columns: auto minmax(0, 1fr) auto;
508
502
  justify-items: stretch;
509
503
  max-inline-size: calc(100% - 2 * var(--_inset));
@@ -535,22 +529,19 @@
535
529
  * dash at the left of the panel, which is what the first reference page
536
530
  * showed.
537
531
  */
538
- [data-ui='loading-overlay']
539
- > [data-part='scrim']
540
- > [data-part='panel']:not(:has(> [data-part='indicator'][data-default])) {
532
+ [data-ui-loading-overlay]
533
+ > [data-part-scrim]
534
+ > [data-part-panel]:not(:has(> [data-part-indicator][data-default])) {
541
535
  grid-template-columns: minmax(6rem, 2fr) minmax(0, 3fr) auto;
542
536
  }
543
537
 
544
- [data-ui='loading-overlay']
545
- > [data-part='scrim']
546
- > [data-part='panel']
547
- > [data-part='indicator'] {
538
+ [data-ui-loading-overlay] > [data-part-scrim] > [data-part-panel] > [data-part-indicator] {
548
539
  align-self: center;
549
540
  grid-column: 1;
550
541
  grid-row: 1 / span 2;
551
542
  }
552
543
 
553
- [data-ui='loading-overlay'] > [data-part='scrim'] > [data-part='panel'] > [data-part='label'] {
544
+ [data-ui-loading-overlay] > [data-part-scrim] > [data-part-panel] > [data-part-label] {
554
545
  align-self: end;
555
546
  grid-column: 2;
556
547
  grid-row: 1;
@@ -565,27 +556,24 @@
565
556
  * with six pixels of nothing under them. The reviewer read it as text
566
557
  * pinned to the ceiling of the bar, which is exactly what it was.
567
558
  */
568
- [data-ui='loading-overlay']
569
- > [data-part='scrim']
570
- > [data-part='panel']:not(:has(> [data-part='description']))
571
- > [data-part='label'] {
559
+ [data-ui-loading-overlay]
560
+ > [data-part-scrim]
561
+ > [data-part-panel]:not(:has(> [data-part-description]))
562
+ > [data-part-label] {
572
563
  align-self: center;
573
564
  grid-row: 1 / span 2;
574
565
  }
575
566
 
576
- [data-ui='loading-overlay']
577
- > [data-part='scrim']
578
- > [data-part='panel']
579
- > [data-part='description'] {
567
+ [data-ui-loading-overlay] > [data-part-scrim] > [data-part-panel] > [data-part-description] {
580
568
  align-self: start;
581
569
  grid-column: 2;
582
570
  grid-row: 2;
583
571
  }
584
572
 
585
- [data-ui='loading-overlay']
586
- > [data-part='scrim']
587
- > [data-part='panel']
588
- > [data-part='cancel']:not([data-ui]) {
573
+ [data-ui-loading-overlay]
574
+ > [data-part-scrim]
575
+ > [data-part-panel]
576
+ > [data-part-cancel]:not([data-ui]) {
589
577
  align-self: center;
590
578
  grid-column: 3;
591
579
  grid-row: 1 / span 2;
@@ -625,7 +613,7 @@
625
613
  * hold a mark and a Cancel, so a 58-pixel pill overhangs it by eleven
626
614
  * pixels at each end — visible, pressable, and the lesser of the two.
627
615
  */
628
- [data-ui='loading-overlay'] > [data-part='scrim'] > [data-part='panel'] {
616
+ [data-ui-loading-overlay] > [data-part-scrim] > [data-part-panel] {
629
617
  --_floor: auto;
630
618
  --_inset: 0px;
631
619
 
@@ -651,24 +639,24 @@
651
639
  * a mark shrunk to the region's height beside a control that was not is
652
640
  * two objects at two scales in one pill.
653
641
  */
654
- [data-ui='loading-overlay'][data-size='sm']
655
- > [data-part='scrim']
656
- > [data-part='panel']:not(:has(> [data-part='cancel']))
657
- > [data-part='indicator'] {
642
+ [data-ui-loading-overlay][data-size='sm']
643
+ > [data-part-scrim]
644
+ > [data-part-panel]:not(:has(> [data-part-cancel]))
645
+ > [data-part-indicator] {
658
646
  --slotted-progress-indicator-size: min(var(--slotted-control-height-sm, 30px), 100cqb);
659
647
  }
660
648
 
661
- [data-ui='loading-overlay'][data-size='md']
662
- > [data-part='scrim']
663
- > [data-part='panel']:not(:has(> [data-part='cancel']))
664
- > [data-part='indicator'] {
649
+ [data-ui-loading-overlay][data-size='md']
650
+ > [data-part-scrim]
651
+ > [data-part-panel]:not(:has(> [data-part-cancel]))
652
+ > [data-part-indicator] {
665
653
  --slotted-progress-indicator-size: min(var(--slotted-control-height-md, 34px), 100cqb);
666
654
  }
667
655
 
668
- [data-ui='loading-overlay'][data-size='lg']
669
- > [data-part='scrim']
670
- > [data-part='panel']:not(:has(> [data-part='cancel']))
671
- > [data-part='indicator'] {
656
+ [data-ui-loading-overlay][data-size='lg']
657
+ > [data-part-scrim]
658
+ > [data-part-panel]:not(:has(> [data-part-cancel]))
659
+ > [data-part-indicator] {
672
660
  --slotted-progress-indicator-size: min(var(--slotted-control-height-lg, 38px), 100cqb);
673
661
  }
674
662
 
@@ -688,9 +676,7 @@
688
676
  * few pixels is better than a control clipped out of reach — which is the
689
677
  * one thing this family exists to avoid doing to a reader.
690
678
  */
691
- [data-ui='loading-overlay']
692
- > [data-part='scrim']
693
- > [data-part='panel']:has(> [data-part='cancel']) {
679
+ [data-ui-loading-overlay] > [data-part-scrim] > [data-part-panel]:has(> [data-part-cancel]) {
694
680
  align-items: center;
695
681
  grid-auto-flow: column;
696
682
  grid-template-columns: none;
@@ -709,9 +695,9 @@
709
695
  );
710
696
  }
711
697
 
712
- [data-ui='loading-overlay']
713
- > [data-part='scrim']
714
- > [data-part='panel']:not(:has(> [data-part='cancel'])) {
698
+ [data-ui-loading-overlay]
699
+ > [data-part-scrim]
700
+ > [data-part-panel]:not(:has(> [data-part-cancel])) {
715
701
  background: none;
716
702
  border: 0;
717
703
  box-shadow: none;
@@ -719,11 +705,8 @@
719
705
  padding-inline: 0;
720
706
  }
721
707
 
722
- [data-ui='loading-overlay'] > [data-part='scrim'] > [data-part='panel'] > [data-part='label'],
723
- [data-ui='loading-overlay']
724
- > [data-part='scrim']
725
- > [data-part='panel']
726
- > [data-part='description'] {
708
+ [data-ui-loading-overlay] > [data-part-scrim] > [data-part-panel] > [data-part-label],
709
+ [data-ui-loading-overlay] > [data-part-scrim] > [data-part-panel] > [data-part-description] {
727
710
  display: none;
728
711
  }
729
712
  }
@@ -13,7 +13,7 @@
13
13
  */
14
14
 
15
15
  @layer slotted.components {
16
- [data-ui='markdown'][data-part='root'] {
16
+ [data-ui-markdown][data-part-root] {
17
17
  display: block;
18
18
  min-inline-size: 0;
19
19
  }
@@ -31,7 +31,7 @@
31
31
  * which is the height its lift already centres the square in.
32
32
  */
33
33
 
34
- [data-ui='markdown'] [data-part='task'] {
34
+ [data-ui-markdown] [data-part-task] {
35
35
  display: grid;
36
36
  grid-template-columns:
37
37
  calc(var(--slotted-prose-list-inset, 1.5em) + var(--slotted-prose-marker-gap, 0.25em))
@@ -42,7 +42,7 @@
42
42
  }
43
43
 
44
44
  /* The box ends where an ordinary item's marker ends, one step before the text. */
45
- [data-ui='markdown'] [data-part='task'] > :first-child {
45
+ [data-ui-markdown] [data-part-task] > :first-child {
46
46
  justify-self: end;
47
47
  margin-block-start: calc(
48
48
  (1lh - var(--slotted-control-font-size-md, 13px) * var(--slotted-line-height-md, 1.5)) / 2
@@ -50,7 +50,7 @@
50
50
  margin-inline-end: var(--slotted-markdown-task-gap, var(--slotted-space-3));
51
51
  }
52
52
 
53
- [data-ui='markdown'] [data-part='task-body'] {
53
+ [data-ui-markdown] [data-part-task-body] {
54
54
  min-inline-size: 0;
55
55
  }
56
56
 
@@ -62,20 +62,20 @@
62
62
  * gap on the block that arrives, the one direction `prose` spaces in.
63
63
  */
64
64
 
65
- [data-ui='markdown'] [data-part='embed'] {
65
+ [data-ui-markdown] [data-part-embed] {
66
66
  margin-block: var(--slotted-prose-flow-normal, 1.15em) 0;
67
67
  }
68
68
 
69
- [data-ui='markdown'][data-flow='tight'] [data-part='embed'] {
69
+ [data-ui-markdown][data-flow='tight'] [data-part-embed] {
70
70
  margin-block-start: var(--slotted-prose-flow-tight, 0.75em);
71
71
  }
72
72
 
73
- [data-ui='markdown'][data-flow='loose'] [data-part='embed'] {
73
+ [data-ui-markdown][data-flow='loose'] [data-part-embed] {
74
74
  margin-block-start: var(--slotted-prose-flow-loose, 1.6em);
75
75
  }
76
76
 
77
- [data-ui='markdown'] [data-part='embed']:first-child,
78
- [data-ui='markdown'] [data-part='alert-body'] > :first-child {
77
+ [data-ui-markdown] [data-part-embed]:first-child,
78
+ [data-ui-markdown] [data-part-alert-body] > :first-child {
79
79
  margin-block-start: 0;
80
80
  }
81
81
 
@@ -87,15 +87,15 @@
87
87
  * reader's eye ends on.
88
88
  */
89
89
 
90
- [data-ui='markdown'] :where(th, td)[data-align='start'] {
90
+ [data-ui-markdown] :where(th, td)[data-align='start'] {
91
91
  text-align: start;
92
92
  }
93
93
 
94
- [data-ui='markdown'] :where(th, td)[data-align='center'] {
94
+ [data-ui-markdown] :where(th, td)[data-align='center'] {
95
95
  text-align: center;
96
96
  }
97
97
 
98
- [data-ui='markdown'] :where(th, td)[data-align='end'] {
98
+ [data-ui-markdown] :where(th, td)[data-align='end'] {
99
99
  text-align: end;
100
100
  }
101
101
 
@@ -106,7 +106,7 @@
106
106
  * quarter, which reads the same in either direction and so is not mirrored.
107
107
  */
108
108
 
109
- [data-ui='markdown'] [data-part='backref'] {
109
+ [data-ui-markdown] [data-part-backref] {
110
110
  --_glyph: var(--slotted-markdown-backref-size, 0.9em);
111
111
  --_box: var(--slotted-target-min, 24px);
112
112
  --slotted-icon-size: var(--_glyph);
@@ -123,7 +123,7 @@
123
123
  }
124
124
 
125
125
  /* Out of flow, so the box keeps the baseline of a box with nothing in it. */
126
- [data-ui='markdown'] [data-part='backref'] > [data-ui='icon'] {
126
+ [data-ui-markdown] [data-part-backref] > [data-ui-icon] {
127
127
  inset: 0;
128
128
  margin: auto;
129
129
  position: absolute;
@@ -137,7 +137,7 @@
137
137
  * paragraph's worth of space rather than as a banner.
138
138
  */
139
139
 
140
- [data-ui='markdown'] [data-part='empty'] {
140
+ [data-ui-markdown] [data-part-empty] {
141
141
  color: var(--slotted-text-muted);
142
142
  font-family: var(--slotted-font-family-sans);
143
143
  font-size: var(--slotted-font-size-md);
@@ -145,7 +145,7 @@
145
145
  margin: 0;
146
146
  }
147
147
 
148
- [data-ui='markdown'] [data-part='error'] {
148
+ [data-ui-markdown] [data-part-error] {
149
149
  align-items: center;
150
150
  display: flex;
151
151
  flex-wrap: wrap;
@@ -159,7 +159,7 @@
159
159
  */
160
160
 
161
161
  @media print {
162
- [data-ui='markdown'] a[href^='http']::after {
162
+ [data-ui-markdown] a[href^='http']::after {
163
163
  content: ' (' attr(href) ')';
164
164
  font-size: 0.875em;
165
165
  overflow-wrap: anywhere;