@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
@@ -15,7 +15,7 @@
15
15
  * └────────────────────────────────────────┘
16
16
  * ⏸ ◀ ● ━━ ● ● ▶ 2 / 4 controls placement="below"
17
17
  */
18
- [data-ui='carousel'] {
18
+ [data-ui-carousel] {
19
19
  --_control-size: var(--slotted-control-height-md, 34px);
20
20
  --_icon-size: var(--slotted-control-icon-size-md, 16px);
21
21
  --_gap: var(--slotted-carousel-gap, var(--slotted-space-6, 1rem));
@@ -55,12 +55,12 @@
55
55
  row-gap: var(--slotted-carousel-controls-gap, var(--slotted-space-5, 0.75rem));
56
56
  }
57
57
 
58
- [data-ui='carousel'][data-size='sm'] {
58
+ [data-ui-carousel][data-size='sm'] {
59
59
  --_control-size: var(--slotted-control-height-sm, 30px);
60
60
  --_icon-size: var(--slotted-control-icon-size-sm, 14px);
61
61
  }
62
62
 
63
- [data-ui='carousel'][data-size='lg'] {
63
+ [data-ui-carousel][data-size='lg'] {
64
64
  --_control-size: var(--slotted-control-height-lg, 38px);
65
65
  --_icon-size: var(--slotted-control-icon-size-lg, 18px);
66
66
  }
@@ -72,7 +72,7 @@
72
72
  * viewport, without the absolute positioning that puts it outside the
73
73
  * component's box.
74
74
  */
75
- [data-ui='carousel'][data-arrows='outside'] {
75
+ [data-ui-carousel][data-arrows='outside'] {
76
76
  column-gap: var(--slotted-space-4, 0.5rem);
77
77
  grid-template-columns: auto minmax(0, 1fr) auto;
78
78
  }
@@ -87,7 +87,7 @@
87
87
  * container query that writes `--slotted-carousel-slides-per-view` changes
88
88
  * the layout and the engine reads the new pages from it.
89
89
  */
90
- [data-ui='carousel'] > [data-part='viewport'] {
90
+ [data-ui-carousel] > [data-part-viewport] {
91
91
  /**
92
92
  * The share of the row a slide takes, never below the slide's own floor:
93
93
  * three cards per view at 240 pixels are 64-pixel cards, and the floor
@@ -122,15 +122,15 @@
122
122
  scrollbar-width: none;
123
123
  }
124
124
 
125
- [data-ui='carousel'][data-arrows='outside'] > [data-part='viewport'] {
125
+ [data-ui-carousel][data-arrows='outside'] > [data-part-viewport] {
126
126
  grid-area: 1 / 2;
127
127
  }
128
128
 
129
- [data-ui='carousel'] > [data-part='viewport']::-webkit-scrollbar {
129
+ [data-ui-carousel] > [data-part-viewport]::-webkit-scrollbar {
130
130
  display: none;
131
131
  }
132
132
 
133
- [data-ui='carousel'] > [data-part='viewport']:focus-visible {
133
+ [data-ui-carousel] > [data-part-viewport]:focus-visible {
134
134
  outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
135
135
  outline-offset: var(--slotted-focus-ring-offset, 2px);
136
136
  }
@@ -144,7 +144,7 @@
144
144
  * pointer. Both movements end exactly on a page, so snap returns without
145
145
  * moving anything.
146
146
  */
147
- [data-ui='carousel'] > [data-part='viewport'][data-moving] {
147
+ [data-ui-carousel] > [data-part-viewport][data-moving] {
148
148
  scroll-snap-type: none;
149
149
  }
150
150
 
@@ -154,22 +154,22 @@
154
154
  * has no cursor to change.
155
155
  */
156
156
  @media (hover: hover) and (pointer: fine) {
157
- [data-ui='carousel'][data-draggable]:not([data-transition='fade']) > [data-part='viewport'] {
157
+ [data-ui-carousel][data-draggable]:not([data-transition='fade']) > [data-part-viewport] {
158
158
  cursor: grab;
159
159
  }
160
160
  }
161
161
 
162
- [data-ui='carousel'][data-dragging] > [data-part='viewport'] {
162
+ [data-ui-carousel][data-dragging] > [data-part-viewport] {
163
163
  cursor: grabbing;
164
164
  user-select: none;
165
165
  }
166
166
 
167
167
  /** A picture inside a draggable row would otherwise start the browser's own image drag. */
168
- [data-ui='carousel'][data-draggable] > [data-part='viewport'] img {
168
+ [data-ui-carousel][data-draggable] > [data-part-viewport] img {
169
169
  -webkit-user-drag: none;
170
170
  }
171
171
 
172
- [data-ui='carousel'][data-orientation='vertical'] > [data-part='viewport'] {
172
+ [data-ui-carousel][data-orientation='vertical'] > [data-part-viewport] {
173
173
  /**
174
174
  * A column of slides needs a height to divide, and the content cannot
175
175
  * give one: the tallest slide would make the viewport as tall as the
@@ -197,7 +197,7 @@
197
197
  * `--slotted-carousel-overscroll` — less and less the further the hand
198
198
  * goes — and springs it back to nothing on release.
199
199
  */
200
- [data-ui='carousel'] > [data-part='viewport'] > [data-part='slide'] {
200
+ [data-ui-carousel] > [data-part-viewport] > [data-part-slide] {
201
201
  min-block-size: 0;
202
202
  min-inline-size: 0;
203
203
  position: relative;
@@ -205,7 +205,7 @@
205
205
  translate: var(--slotted-carousel-overscroll, none);
206
206
  }
207
207
 
208
- [data-ui='carousel'][data-align='center'] > [data-part='viewport'] > [data-part='slide'] {
208
+ [data-ui-carousel][data-align='center'] > [data-part-viewport] > [data-part-slide] {
209
209
  scroll-snap-align: center;
210
210
  }
211
211
 
@@ -214,9 +214,7 @@
214
214
  * snap point. Before that every slide is one, which is the right paging for
215
215
  * a server response and for one slide per view.
216
216
  */
217
- [data-ui='carousel'][data-measured]
218
- > [data-part='viewport']
219
- > [data-part='slide']:not([data-snap]) {
217
+ [data-ui-carousel][data-measured] > [data-part-viewport] > [data-part-slide]:not([data-snap]) {
220
218
  scroll-snap-align: none;
221
219
  }
222
220
 
@@ -235,7 +233,7 @@
235
233
  * so it hides the leaving slide when its fade ends and nothing in it can be
236
234
  * reached once it is gone.
237
235
  */
238
- [data-ui='carousel'][data-transition='fade'] > [data-part='viewport'] {
236
+ [data-ui-carousel][data-transition='fade'] > [data-part-viewport] {
239
237
  grid-auto-columns: 100%;
240
238
  grid-template-areas: 'stack';
241
239
  overflow: hidden;
@@ -243,7 +241,7 @@
243
241
  touch-action: pan-y;
244
242
  }
245
243
 
246
- [data-ui='carousel'][data-transition='fade'] > [data-part='viewport'] > [data-part='slide'] {
244
+ [data-ui-carousel][data-transition='fade'] > [data-part-viewport] > [data-part-slide] {
247
245
  grid-area: stack;
248
246
  opacity: 0;
249
247
  transition:
@@ -252,9 +250,9 @@
252
250
  visibility: hidden;
253
251
  }
254
252
 
255
- [data-ui='carousel'][data-transition='fade']
256
- > [data-part='viewport']
257
- > [data-part='slide'][data-current] {
253
+ [data-ui-carousel][data-transition='fade']
254
+ > [data-part-viewport]
255
+ > [data-part-slide][data-current] {
258
256
  opacity: 1;
259
257
  transition:
260
258
  opacity var(--slotted-duration-long) var(--slotted-easing-enter, ease-out),
@@ -271,9 +269,9 @@
271
269
  * 16-pixel mark; the family takes the control scale, 34 at `md`, so the
272
270
  * pair is a step larger than the dots and matches a toolbar's buttons.
273
271
  */
274
- [data-ui='carousel'] [data-part='previous'],
275
- [data-ui='carousel'] [data-part='next'],
276
- [data-ui='carousel'] [data-part='autoplay'] {
272
+ [data-ui-carousel] [data-part-previous],
273
+ [data-ui-carousel] [data-part-next],
274
+ [data-ui-carousel] [data-part-autoplay] {
277
275
  --slotted-icon-size: var(--_icon-size);
278
276
 
279
277
  align-items: center;
@@ -306,44 +304,44 @@
306
304
  }
307
305
 
308
306
  /** Over the viewport, at the two ends of its axis. */
309
- [data-ui='carousel'] > [data-part='previous'],
310
- [data-ui='carousel'] > [data-part='next'] {
307
+ [data-ui-carousel] > [data-part-previous],
308
+ [data-ui-carousel] > [data-part-next] {
311
309
  align-self: center;
312
310
  grid-area: 1 / 1;
313
311
  margin-inline: var(--_inset);
314
312
  z-index: 1;
315
313
  }
316
314
 
317
- [data-ui='carousel'] > [data-part='previous'] {
315
+ [data-ui-carousel] > [data-part-previous] {
318
316
  justify-self: start;
319
317
  }
320
318
 
321
- [data-ui='carousel'] > [data-part='next'] {
319
+ [data-ui-carousel] > [data-part-next] {
322
320
  justify-self: end;
323
321
  }
324
322
 
325
- [data-ui='carousel'][data-arrows='outside'] > [data-part='previous'] {
323
+ [data-ui-carousel][data-arrows='outside'] > [data-part-previous] {
326
324
  grid-area: 1 / 1;
327
325
  margin-inline: 0;
328
326
  }
329
327
 
330
- [data-ui='carousel'][data-arrows='outside'] > [data-part='next'] {
328
+ [data-ui-carousel][data-arrows='outside'] > [data-part-next] {
331
329
  grid-area: 1 / 3;
332
330
  margin-inline: 0;
333
331
  }
334
332
 
335
- [data-ui='carousel'][data-orientation='vertical'] > [data-part='previous'],
336
- [data-ui='carousel'][data-orientation='vertical'] > [data-part='next'] {
333
+ [data-ui-carousel][data-orientation='vertical'] > [data-part-previous],
334
+ [data-ui-carousel][data-orientation='vertical'] > [data-part-next] {
337
335
  justify-self: center;
338
336
  margin-block: var(--_inset);
339
337
  margin-inline: 0;
340
338
  }
341
339
 
342
- [data-ui='carousel'][data-orientation='vertical'] > [data-part='previous'] {
340
+ [data-ui-carousel][data-orientation='vertical'] > [data-part-previous] {
343
341
  align-self: start;
344
342
  }
345
343
 
346
- [data-ui='carousel'][data-orientation='vertical'] > [data-part='next'] {
344
+ [data-ui-carousel][data-orientation='vertical'] > [data-part-next] {
347
345
  align-self: end;
348
346
  }
349
347
 
@@ -352,15 +350,15 @@
352
350
  * icon box mirrors it in a right-to-left document. Previous turns it round;
353
351
  * a vertical carousel turns both a quarter so they point along the column.
354
352
  */
355
- [data-ui='carousel'] [data-part='previous'] > [data-ui='icon'] {
353
+ [data-ui-carousel] [data-part-previous] > [data-ui-icon] {
356
354
  rotate: 180deg;
357
355
  }
358
356
 
359
- [data-ui='carousel'][data-orientation='vertical'] [data-part='previous'] > [data-ui='icon'] {
357
+ [data-ui-carousel][data-orientation='vertical'] [data-part-previous] > [data-ui-icon] {
360
358
  rotate: -90deg;
361
359
  }
362
360
 
363
- [data-ui='carousel'][data-orientation='vertical'] [data-part='next'] > [data-ui='icon'] {
361
+ [data-ui-carousel][data-orientation='vertical'] [data-part-next] > [data-ui-icon] {
364
362
  rotate: 90deg;
365
363
  }
366
364
 
@@ -370,15 +368,15 @@
370
368
  * and a mirrored chevron turned a quarter points the other way along the
371
369
  * column.
372
370
  */
373
- [data-ui='carousel'][data-orientation='vertical']
374
- :is([data-part='previous'], [data-part='next'])
375
- > [data-ui='icon']:dir(rtl) {
371
+ [data-ui-carousel][data-orientation='vertical']
372
+ :is([data-part-previous], [data-part-next])
373
+ > [data-ui-icon]:dir(rtl) {
376
374
  scale: none;
377
375
  }
378
376
 
379
- [data-ui='carousel'] [data-part='previous']:hover:not([data-disabled]):not(:disabled),
380
- [data-ui='carousel'] [data-part='next']:hover:not([data-disabled]):not(:disabled),
381
- [data-ui='carousel'] [data-part='autoplay']:hover:not([data-disabled]):not(:disabled) {
377
+ [data-ui-carousel] [data-part-previous]:hover:not([data-disabled]):not(:disabled),
378
+ [data-ui-carousel] [data-part-next]:hover:not([data-disabled]):not(:disabled),
379
+ [data-ui-carousel] [data-part-autoplay]:hover:not([data-disabled]):not(:disabled) {
382
380
  background: var(--slotted-tone-secondary-subtle-hover, ButtonFace);
383
381
  }
384
382
 
@@ -388,18 +386,18 @@
388
386
  * standing over a picture has no floor to be put down on, and a scale is
389
387
  * the press that reads on a shape with no bottom edge.
390
388
  */
391
- [data-ui='carousel'] [data-part='previous']:active:not([data-disabled]):not(:disabled),
392
- [data-ui='carousel'] [data-part='next']:active:not([data-disabled]):not(:disabled),
393
- [data-ui='carousel'] [data-part='autoplay']:active:not([data-disabled]):not(:disabled) {
389
+ [data-ui-carousel] [data-part-previous]:active:not([data-disabled]):not(:disabled),
390
+ [data-ui-carousel] [data-part-next]:active:not([data-disabled]):not(:disabled),
391
+ [data-ui-carousel] [data-part-autoplay]:active:not([data-disabled]):not(:disabled) {
394
392
  background: var(--slotted-tone-secondary-subtle-active, ButtonFace);
395
393
  box-shadow: none;
396
394
  scale: 0.94;
397
395
  transition-duration: var(--slotted-duration-instant);
398
396
  }
399
397
 
400
- [data-ui='carousel'] [data-part='previous']:focus-visible,
401
- [data-ui='carousel'] [data-part='next']:focus-visible,
402
- [data-ui='carousel'] [data-part='autoplay']:focus-visible {
398
+ [data-ui-carousel] [data-part-previous]:focus-visible,
399
+ [data-ui-carousel] [data-part-next]:focus-visible,
400
+ [data-ui-carousel] [data-part-autoplay]:focus-visible {
403
401
  outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
404
402
  outline-offset: var(--slotted-focus-ring-offset, 2px);
405
403
  }
@@ -411,7 +409,7 @@
411
409
  * foundation's disabled ink, with its ground kept so it still reads as a
412
410
  * control over a picture.
413
411
  */
414
- [data-ui='carousel'] :is([data-part='previous'], [data-part='next'])[data-disabled] {
412
+ [data-ui-carousel] :is([data-part-previous], [data-part-next])[data-disabled] {
415
413
  border-color: var(--slotted-disabled-border, GrayText);
416
414
  box-shadow: none;
417
415
  color: var(--slotted-disabled-foreground, GrayText);
@@ -425,7 +423,7 @@
425
423
  * pixels, and a carousel in a third of a dashboard is narrower than that.
426
424
  * The counter drops under the dots, centred, before anything is clipped.
427
425
  */
428
- [data-ui='carousel'] > [data-part='controls'] {
426
+ [data-ui-carousel] > [data-part-controls] {
429
427
  align-items: center;
430
428
  display: flex;
431
429
  flex-wrap: wrap;
@@ -435,7 +433,7 @@
435
433
  min-inline-size: 0;
436
434
  }
437
435
 
438
- [data-ui='carousel'][data-arrows='outside'] > [data-part='controls'] {
436
+ [data-ui-carousel][data-arrows='outside'] > [data-part-controls] {
439
437
  grid-column: 2;
440
438
  }
441
439
 
@@ -445,7 +443,7 @@
445
443
  * has to read in every scheme, and a ground that lets the picture through
446
444
  * gives the dots a different ground on every slide.
447
445
  */
448
- [data-ui='carousel'] > [data-part='controls'][data-placement='overlay'] {
446
+ [data-ui-carousel] > [data-part-controls][data-placement='overlay'] {
449
447
  align-self: end;
450
448
  background: var(--slotted-surface-raised, Canvas);
451
449
  border-radius: var(--slotted-radius-full, 9999px);
@@ -465,9 +463,9 @@
465
463
  * They take the height the foundation gives the inside of a control, so
466
464
  * the pill is that height and a step of air either side of it.
467
465
  */
468
- [data-ui='carousel']
469
- > [data-part='controls'][data-placement='overlay']
470
- > :is([data-part='previous'], [data-part='next'], [data-part='autoplay']) {
466
+ [data-ui-carousel]
467
+ > [data-part-controls][data-placement='overlay']
468
+ > :is([data-part-previous], [data-part-next], [data-part-autoplay]) {
471
469
  --_control-size: var(--slotted-control-inner-size-md, 24px);
472
470
 
473
471
  background: transparent;
@@ -475,29 +473,29 @@
475
473
  box-shadow: none;
476
474
  }
477
475
 
478
- [data-ui='carousel'][data-size='sm']
479
- > [data-part='controls'][data-placement='overlay']
480
- > :is([data-part='previous'], [data-part='next'], [data-part='autoplay']) {
476
+ [data-ui-carousel][data-size='sm']
477
+ > [data-part-controls][data-placement='overlay']
478
+ > :is([data-part-previous], [data-part-next], [data-part-autoplay]) {
481
479
  --_control-size: var(--slotted-control-inner-size-sm, 22px);
482
480
  }
483
481
 
484
- [data-ui='carousel'][data-size='lg']
485
- > [data-part='controls'][data-placement='overlay']
486
- > :is([data-part='previous'], [data-part='next'], [data-part='autoplay']) {
482
+ [data-ui-carousel][data-size='lg']
483
+ > [data-part-controls][data-placement='overlay']
484
+ > :is([data-part-previous], [data-part-next], [data-part-autoplay]) {
487
485
  --_control-size: var(--slotted-control-inner-size-lg, 28px);
488
486
  }
489
487
 
490
- [data-ui='carousel'][data-arrows='outside'] > [data-part='controls'][data-placement='overlay'] {
488
+ [data-ui-carousel][data-arrows='outside'] > [data-part-controls][data-placement='overlay'] {
491
489
  grid-area: 1 / 2;
492
490
  }
493
491
 
494
- [data-ui='carousel'] > [data-part='controls'] > [data-part='indicators'][data-variant='line'] {
492
+ [data-ui-carousel] > [data-part-controls] > [data-part-indicators][data-variant='line'] {
495
493
  flex: 1 1 auto;
496
494
  }
497
495
 
498
496
  /* ── The indicators ───────────────────────────────────────────────────── */
499
497
 
500
- [data-ui='carousel'] [data-part='indicators'] {
498
+ [data-ui-carousel] [data-part-indicators] {
501
499
  align-items: center;
502
500
  display: flex;
503
501
  /* A dot's box is twenty pixels; four between two boxes puts their centres twenty-four apart. */
@@ -513,7 +511,7 @@
513
511
  * centre, which is the spacing WCAG 2.2 SC 2.5.8 accepts for a target
514
512
  * smaller than twenty-four.
515
513
  */
516
- [data-ui='carousel'] [data-part='indicator'] {
514
+ [data-ui-carousel] [data-part-indicator] {
517
515
  appearance: none;
518
516
  background: transparent;
519
517
  block-size: var(--slotted-target-min, 24px);
@@ -529,16 +527,16 @@
529
527
  transition: inline-size var(--slotted-duration-medium) var(--slotted-easing-standard, ease);
530
528
  }
531
529
 
532
- [data-ui='carousel'] [data-part='indicator'][data-current] {
530
+ [data-ui-carousel] [data-part-indicator][data-current] {
533
531
  inline-size: calc(var(--_dot-current) + 2 * var(--_dot-air));
534
532
  }
535
533
 
536
- [data-ui='carousel']
537
- [data-part='indicators']:not([data-variant='thumbnails'])
538
- > [data-part='indicator']::before,
539
- [data-ui='carousel']
540
- [data-part='indicators']:not([data-variant='thumbnails'])
541
- > [data-part='indicator']::after {
534
+ [data-ui-carousel]
535
+ [data-part-indicators]:not([data-variant='thumbnails'])
536
+ > [data-part-indicator]::before,
537
+ [data-ui-carousel]
538
+ [data-part-indicators]:not([data-variant='thumbnails'])
539
+ > [data-part-indicator]::after {
542
540
  block-size: var(--_dot);
543
541
  border-radius: var(--slotted-radius-full, 9999px);
544
542
  content: '';
@@ -552,30 +550,30 @@
552
550
  * every surface a carousel stands on; the current one is the ink, and its
553
551
  * shape already differs.
554
552
  */
555
- [data-ui='carousel']
556
- [data-part='indicators']:not([data-variant='thumbnails'])
557
- > [data-part='indicator']::before {
553
+ [data-ui-carousel]
554
+ [data-part-indicators]:not([data-variant='thumbnails'])
555
+ > [data-part-indicator]::before {
558
556
  background: var(--slotted-border-strong, transparent);
559
557
  transition: background-color var(--slotted-control-transition-duration)
560
558
  var(--slotted-control-transition-easing, ease);
561
559
  }
562
560
 
563
- [data-ui='carousel']
564
- [data-part='indicators']:not([data-variant='thumbnails'])
565
- > [data-part='indicator']:hover:not([data-current]):not([data-disabled])::before {
561
+ [data-ui-carousel]
562
+ [data-part-indicators]:not([data-variant='thumbnails'])
563
+ > [data-part-indicator]:hover:not([data-current]):not([data-disabled])::before {
566
564
  background: var(--slotted-text-muted, transparent);
567
565
  }
568
566
 
569
- [data-ui='carousel']
570
- [data-part='indicators']:not([data-variant='thumbnails'])
571
- > [data-part='indicator']:active:not([data-current]):not([data-disabled])::before {
567
+ [data-ui-carousel]
568
+ [data-part-indicators]:not([data-variant='thumbnails'])
569
+ > [data-part-indicator]:active:not([data-current]):not([data-disabled])::before {
572
570
  background: var(--slotted-text, transparent);
573
571
  transition-duration: var(--slotted-duration-instant);
574
572
  }
575
573
 
576
- [data-ui='carousel']
577
- [data-part='indicators']:not([data-variant='thumbnails'])
578
- > [data-part='indicator'][data-current]::before {
574
+ [data-ui-carousel]
575
+ [data-part-indicators]:not([data-variant='thumbnails'])
576
+ > [data-part-indicator][data-current]::before {
579
577
  background: var(--slotted-text, transparent);
580
578
  }
581
579
 
@@ -590,24 +588,24 @@
590
588
  * disagree. The fill grows its own inline size from the inline start, like
591
589
  * `toast`'s countdown, so there is no origin to mirror.
592
590
  */
593
- [data-ui='carousel'][data-playing]
594
- [data-part='indicators']:not([data-variant='thumbnails'])
595
- > [data-part='indicator'][data-current]::before {
591
+ [data-ui-carousel][data-playing]
592
+ [data-part-indicators]:not([data-variant='thumbnails'])
593
+ > [data-part-indicator][data-current]::before {
596
594
  background: var(--slotted-border-strong, transparent);
597
595
  }
598
596
 
599
- [data-ui='carousel'][data-playing]
600
- [data-part='indicators']:not([data-variant='thumbnails'])
601
- > [data-part='indicator'][data-current]::after {
597
+ [data-ui-carousel][data-playing]
598
+ [data-part-indicators]:not([data-variant='thumbnails'])
599
+ > [data-part-indicator][data-current]::after {
602
600
  animation: slotted-carousel-countdown
603
601
  var(--slotted-carousel-autoplay-delay, var(--slotted-duration-loop-slow)) linear forwards;
604
602
  background: var(--slotted-text, transparent);
605
603
  inset-inline-end: auto;
606
604
  }
607
605
 
608
- [data-ui='carousel'][data-playing][data-paused]
609
- [data-part='indicators']
610
- > [data-part='indicator'][data-current]::after {
606
+ [data-ui-carousel][data-playing][data-paused]
607
+ [data-part-indicators]
608
+ > [data-part-indicator][data-current]::after {
611
609
  animation-play-state: paused;
612
610
  }
613
611
 
@@ -629,15 +627,15 @@
629
627
  * stays a tab in the arrow ring, and moving onto it makes it current, which
630
628
  * brings the window to it.
631
629
  */
632
- [data-ui='carousel']
633
- [data-part='indicators'][data-adaptive]
634
- > [data-part='indicator'][data-distance='2']::before {
630
+ [data-ui-carousel]
631
+ [data-part-indicators][data-adaptive]
632
+ > [data-part-indicator][data-distance='2']::before {
635
633
  scale: 0.66;
636
634
  }
637
635
 
638
- [data-ui='carousel']
639
- [data-part='indicators'][data-adaptive]
640
- > [data-part='indicator'][data-distance='far'] {
636
+ [data-ui-carousel]
637
+ [data-part-indicators][data-adaptive]
638
+ > [data-part-indicator][data-distance='far'] {
641
639
  inline-size: 0;
642
640
  overflow: hidden;
643
641
  }
@@ -649,34 +647,30 @@
649
647
  * dot, and the current one is the ink — the progress line ReUI's `blog-3`
650
648
  * draws as a single pixel, at the thickness the foundation gives a marker.
651
649
  */
652
- [data-ui='carousel'] [data-part='indicators'][data-variant='line'] {
650
+ [data-ui-carousel] [data-part-indicators][data-variant='line'] {
653
651
  gap: var(--slotted-space-2, 0.25rem);
654
652
  }
655
653
 
656
- [data-ui='carousel'] [data-part='indicators'][data-variant='line'] > [data-part='indicator'],
657
- [data-ui='carousel']
658
- [data-part='indicators'][data-variant='line']
659
- > [data-part='indicator'][data-current] {
654
+ [data-ui-carousel] [data-part-indicators][data-variant='line'] > [data-part-indicator],
655
+ [data-ui-carousel]
656
+ [data-part-indicators][data-variant='line']
657
+ > [data-part-indicator][data-current] {
660
658
  flex: 1 1 0;
661
659
  inline-size: auto;
662
660
  min-inline-size: var(--slotted-target-min, 24px);
663
661
  }
664
662
 
665
- [data-ui='carousel']
666
- [data-part='indicators'][data-variant='line']
667
- > [data-part='indicator']::before,
668
- [data-ui='carousel']
669
- [data-part='indicators'][data-variant='line']
670
- > [data-part='indicator']::after {
663
+ [data-ui-carousel] [data-part-indicators][data-variant='line'] > [data-part-indicator]::before,
664
+ [data-ui-carousel] [data-part-indicators][data-variant='line'] > [data-part-indicator]::after {
671
665
  block-size: var(--_line);
672
666
  border-radius: var(--slotted-radius-full, 9999px);
673
667
  inset-block-start: calc(50% - var(--_line) / 2);
674
668
  inset-inline: 0;
675
669
  }
676
670
 
677
- [data-ui='carousel'][data-playing]
678
- [data-part='indicators'][data-variant='line']
679
- > [data-part='indicator'][data-current]::after {
671
+ [data-ui-carousel][data-playing]
672
+ [data-part-indicators][data-variant='line']
673
+ > [data-part-indicator][data-current]::after {
680
674
  animation-name: slotted-carousel-countdown-line;
681
675
  }
682
676
 
@@ -700,7 +694,7 @@
700
694
  * the ink, inside its own box, so the focus ring drawn outside it is never
701
695
  * confused with it.
702
696
  */
703
- [data-ui='carousel'] [data-part='indicators'][data-variant='thumbnails'] {
697
+ [data-ui-carousel] [data-part-indicators][data-variant='thumbnails'] {
704
698
  gap: var(--slotted-space-4, 0.5rem);
705
699
  justify-content: flex-start;
706
700
  overflow-x: auto;
@@ -710,12 +704,10 @@
710
704
  scrollbar-width: none;
711
705
  }
712
706
 
713
- [data-ui='carousel']
714
- [data-part='indicators'][data-variant='thumbnails']
715
- > [data-part='indicator'],
716
- [data-ui='carousel']
717
- [data-part='indicators'][data-variant='thumbnails']
718
- > [data-part='indicator'][data-current] {
707
+ [data-ui-carousel] [data-part-indicators][data-variant='thumbnails'] > [data-part-indicator],
708
+ [data-ui-carousel]
709
+ [data-part-indicators][data-variant='thumbnails']
710
+ > [data-part-indicator][data-current] {
719
711
  block-size: var(--_thumbnail);
720
712
  border-radius: var(--slotted-radius-md, 6px);
721
713
  inline-size: var(--_thumbnail);
@@ -723,10 +715,7 @@
723
715
  transition: none;
724
716
  }
725
717
 
726
- [data-ui='carousel']
727
- [data-part='indicators'][data-variant='thumbnails']
728
- > [data-part='indicator']
729
- > * {
718
+ [data-ui-carousel] [data-part-indicators][data-variant='thumbnails'] > [data-part-indicator] > * {
730
719
  block-size: 100%;
731
720
  display: block;
732
721
  inline-size: 100%;
@@ -736,23 +725,23 @@
736
725
  var(--slotted-control-transition-easing, ease);
737
726
  }
738
727
 
739
- [data-ui='carousel']
740
- [data-part='indicators'][data-variant='thumbnails']
741
- > [data-part='indicator']:hover:not([data-current]):not([data-disabled])
728
+ [data-ui-carousel]
729
+ [data-part-indicators][data-variant='thumbnails']
730
+ > [data-part-indicator]:hover:not([data-current]):not([data-disabled])
742
731
  > * {
743
732
  opacity: 0.85;
744
733
  }
745
734
 
746
- [data-ui='carousel']
747
- [data-part='indicators'][data-variant='thumbnails']
748
- > [data-part='indicator'][data-current]
735
+ [data-ui-carousel]
736
+ [data-part-indicators][data-variant='thumbnails']
737
+ > [data-part-indicator][data-current]
749
738
  > * {
750
739
  opacity: 1;
751
740
  }
752
741
 
753
- [data-ui='carousel']
754
- [data-part='indicators'][data-variant='thumbnails']
755
- > [data-part='indicator']::after {
742
+ [data-ui-carousel]
743
+ [data-part-indicators][data-variant='thumbnails']
744
+ > [data-part-indicator]::after {
756
745
  border-radius: inherit;
757
746
  box-shadow: inset 0 0 0 var(--slotted-border-width-thin, 1px)
758
747
  var(--slotted-border-subtle, transparent);
@@ -769,28 +758,28 @@
769
758
  * under hover, and the ink under the press, so the part itself carries the
770
759
  * state and not only the picture inside it.
771
760
  */
772
- [data-ui='carousel']
773
- [data-part='indicators'][data-variant='thumbnails']
774
- > [data-part='indicator']:hover:not([data-current]):not([data-disabled])::after {
761
+ [data-ui-carousel]
762
+ [data-part-indicators][data-variant='thumbnails']
763
+ > [data-part-indicator]:hover:not([data-current]):not([data-disabled])::after {
775
764
  box-shadow: inset 0 0 0 var(--slotted-border-width-thin, 1px)
776
765
  var(--slotted-border-strong, transparent);
777
766
  }
778
767
 
779
- [data-ui='carousel']
780
- [data-part='indicators'][data-variant='thumbnails']
781
- > [data-part='indicator']:active:not([data-current]):not([data-disabled])::after {
768
+ [data-ui-carousel]
769
+ [data-part-indicators][data-variant='thumbnails']
770
+ > [data-part-indicator]:active:not([data-current]):not([data-disabled])::after {
782
771
  box-shadow: inset 0 0 0 var(--slotted-border-width-thick, 2px)
783
772
  var(--slotted-border-strong, transparent);
784
773
  transition-duration: var(--slotted-duration-instant);
785
774
  }
786
775
 
787
- [data-ui='carousel']
788
- [data-part='indicators'][data-variant='thumbnails']
789
- > [data-part='indicator'][data-current]::after {
776
+ [data-ui-carousel]
777
+ [data-part-indicators][data-variant='thumbnails']
778
+ > [data-part-indicator][data-current]::after {
790
779
  box-shadow: inset 0 0 0 var(--slotted-border-width-thick, 2px) var(--slotted-text, transparent);
791
780
  }
792
781
 
793
- [data-ui='carousel'] [data-part='indicator']:focus-visible {
782
+ [data-ui-carousel] [data-part-indicator]:focus-visible {
794
783
  outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
795
784
  outline-offset: var(--slotted-focus-ring-offset, 2px);
796
785
  }
@@ -800,9 +789,9 @@
800
789
  * pixels round a box much taller than the mark. The ring of a dot or a
801
790
  * segment hugs the row instead, which is the box the pointer hits.
802
791
  */
803
- [data-ui='carousel']
804
- [data-part='indicators']:not([data-variant='thumbnails'])
805
- > [data-part='indicator']:focus-visible {
792
+ [data-ui-carousel]
793
+ [data-part-indicators]:not([data-variant='thumbnails'])
794
+ > [data-part-indicator]:focus-visible {
806
795
  outline-offset: calc(var(--slotted-focus-ring-width, 2px) * -1);
807
796
  }
808
797
 
@@ -812,7 +801,7 @@
812
801
  * Tabular figures, so "9 / 12" and "10 / 12" are the same width and the
813
802
  * controls beside the counter do not move when the page changes.
814
803
  */
815
- [data-ui='carousel'] [data-part='counter'] {
804
+ [data-ui-carousel] [data-part-counter] {
816
805
  color: var(--slotted-text-muted, GrayText);
817
806
  font-family: var(--slotted-font-family-sans, sans-serif);
818
807
  font-size: var(--slotted-font-size-sm, 0.8125rem);
@@ -836,23 +825,23 @@
836
825
  * which forced colours map to the highlight.
837
826
  */
838
827
  @media (forced-colors: active) {
839
- [data-ui='carousel'] [data-part='indicator']::before,
840
- [data-ui='carousel'] [data-part='indicator']::after {
828
+ [data-ui-carousel] [data-part-indicator]::before,
829
+ [data-ui-carousel] [data-part-indicator]::after {
841
830
  forced-color-adjust: none;
842
831
  }
843
832
 
844
- [data-ui='carousel']
845
- [data-part='indicators']:not([data-variant='thumbnails'])
846
- > [data-part='indicator'][data-current]::before,
847
- [data-ui='carousel']
848
- [data-part='indicators']:not([data-variant='thumbnails'])
849
- > [data-part='indicator'][data-current]::after {
833
+ [data-ui-carousel]
834
+ [data-part-indicators]:not([data-variant='thumbnails'])
835
+ > [data-part-indicator][data-current]::before,
836
+ [data-ui-carousel]
837
+ [data-part-indicators]:not([data-variant='thumbnails'])
838
+ > [data-part-indicator][data-current]::after {
850
839
  background: var(--slotted-tone-accent-solid, transparent);
851
840
  }
852
841
 
853
- [data-ui='carousel']
854
- [data-part='indicators'][data-variant='thumbnails']
855
- > [data-part='indicator'][data-current]::after {
842
+ [data-ui-carousel]
843
+ [data-part-indicators][data-variant='thumbnails']
844
+ > [data-part-indicator][data-current]::after {
856
845
  box-shadow: inset 0 0 0 var(--slotted-border-width-thick, 2px)
857
846
  var(--slotted-tone-accent-solid, transparent);
858
847
  }