@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
@@ -17,7 +17,7 @@
17
17
  * input derives it here, from which radio is checked and which one is under
18
18
  * the pointer, so the picture is the platform's state.
19
19
  */
20
- [data-ui='rating'][data-part='root'] {
20
+ [data-ui-rating][data-part-root] {
21
21
  /**
22
22
  * The symbol does not follow density. The selection scale settled the same
23
23
  * question for a checkbox: the thing the value is read from keeps its size,
@@ -72,13 +72,13 @@
72
72
 
73
73
  /* ── Size ─────────────────────────────────────────────────────────────── */
74
74
 
75
- [data-ui='rating'][data-part='root'][data-size='sm'] {
75
+ [data-ui-rating][data-part-root][data-size='sm'] {
76
76
  --_symbol: var(--slotted-rating-symbol-size, var(--slotted-space-6, 1rem));
77
77
  --_font-size: var(--slotted-control-font-size-sm, 12px);
78
78
  --_gap: var(--slotted-control-gap-sm, 6px);
79
79
  }
80
80
 
81
- [data-ui='rating'][data-part='root'][data-size='lg'] {
81
+ [data-ui-rating][data-part-root][data-size='lg'] {
82
82
  --_symbol: var(--slotted-rating-symbol-size, var(--slotted-space-8, 1.5rem));
83
83
  --_font-size: var(--slotted-control-font-size-lg, 14px);
84
84
  --_gap: var(--slotted-control-gap-lg, 8px);
@@ -86,15 +86,15 @@
86
86
 
87
87
  /* ── Tone ─────────────────────────────────────────────────────────────── */
88
88
 
89
- [data-ui='rating'][data-part='root'][data-tone='accent'] {
89
+ [data-ui-rating][data-part-root][data-tone='accent'] {
90
90
  --_on: var(--slotted-rating-lit-color, var(--slotted-tone-accent-solid));
91
91
  }
92
92
 
93
- [data-ui='rating'][data-part='root'][data-tone='success'] {
93
+ [data-ui-rating][data-part-root][data-tone='success'] {
94
94
  --_on: var(--slotted-rating-lit-color, var(--slotted-tone-success-solid));
95
95
  }
96
96
 
97
- [data-ui='rating'][data-part='root'][data-tone='danger'] {
97
+ [data-ui-rating][data-part-root][data-tone='danger'] {
98
98
  --_on: var(--slotted-rating-lit-color, var(--slotted-tone-danger-solid));
99
99
  }
100
100
 
@@ -111,7 +111,7 @@
111
111
  * inside a twenty-four unit box with a unit and a half of air a side, so two
112
112
  * pixels between boxes reads as the five ReUI's rows read at.
113
113
  */
114
- [data-ui='rating'] [data-part='symbols'] {
114
+ [data-ui-rating] [data-part-symbols] {
115
115
  column-gap: var(--slotted-rating-gap, var(--slotted-space-1, 0.125rem));
116
116
  display: flex;
117
117
  flex: 0 1 auto;
@@ -123,12 +123,12 @@
123
123
  * A finger dragged along the row is the binding's to read, so the row keeps
124
124
  * vertical panning for the page and takes the horizontal gesture.
125
125
  */
126
- [data-ui='rating'] [data-part='symbols']:has([data-part='input']) {
126
+ [data-ui-rating] [data-part-symbols]:has([data-part-input]) {
127
127
  column-gap: 0;
128
128
  touch-action: pan-y;
129
129
  }
130
130
 
131
- [data-ui='rating'] [data-part='item'] {
131
+ [data-ui-rating] [data-part-item] {
132
132
  --_fill: var(--slotted-rating-fill, 0);
133
133
  /*
134
134
  * The curve of the next change of the lit share, read at the moment it
@@ -164,14 +164,14 @@
164
164
  * shrinking included: at `sm` and `md` the box is twenty-four pixels, at
165
165
  * `lg` the symbol plus two pixels of air a side, twenty-eight.
166
166
  */
167
- [data-ui='rating'] [data-part='item']:has(> [data-part='input']) {
167
+ [data-ui-rating] [data-part-item]:has(> [data-part-input]) {
168
168
  --_air: var(--slotted-space-1, 0.125rem);
169
169
  --_box: max(var(--slotted-target-min, 24px), calc(var(--_symbol) + 2 * var(--_air)));
170
170
 
171
171
  min-inline-size: var(--slotted-target-min, 24px);
172
172
  }
173
173
 
174
- [data-ui='rating'] :is([data-part='symbol'], [data-part='fill']) {
174
+ [data-ui-rating] :is([data-part-symbol], [data-part-fill]) {
175
175
  --_drawn: min(var(--_symbol), 100cqi - 2 * var(--_air));
176
176
  --slotted-icon-size: var(--_drawn);
177
177
 
@@ -184,14 +184,14 @@
184
184
  z-index: 2;
185
185
  }
186
186
 
187
- [data-ui='rating'] :is([data-part='symbol'], [data-part='fill']) svg {
187
+ [data-ui-rating] :is([data-part-symbol], [data-part-fill]) svg {
188
188
  stroke-width: var(--_stroke);
189
189
  transition:
190
190
  fill var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),
191
191
  stroke var(--slotted-control-transition-duration) var(--slotted-control-transition-easing);
192
192
  }
193
193
 
194
- [data-ui='rating'] [data-part='symbol'] svg {
194
+ [data-ui-rating] [data-part-symbol] svg {
195
195
  fill: var(--_off);
196
196
  stroke: var(--_off-edge);
197
197
  }
@@ -201,18 +201,18 @@
201
201
  * the share `--_fill` names; the clip moves on the medium step, so a value
202
202
  * that changes by three stars is seen travelling rather than swapped.
203
203
  */
204
- [data-ui='rating'] [data-part='fill'] {
204
+ [data-ui-rating] [data-part-fill] {
205
205
  clip-path: inset(0 calc((1 - var(--_fill)) * 100%) 0 0);
206
206
  transition:
207
207
  scale var(--slotted-duration-short) var(--slotted-easing-standard),
208
208
  clip-path var(--slotted-duration-medium) var(--_fill-easing);
209
209
  }
210
210
 
211
- [data-ui='rating'][data-part='root']:dir(rtl) [data-part='fill'] {
211
+ [data-ui-rating][data-part-root]:dir(rtl) [data-part-fill] {
212
212
  clip-path: inset(0 0 0 calc((1 - var(--_fill)) * 100%));
213
213
  }
214
214
 
215
- [data-ui='rating'] [data-part='fill'] svg {
215
+ [data-ui-rating] [data-part-fill] svg {
216
216
  fill: var(--_on);
217
217
  stroke: var(--_edge);
218
218
  }
@@ -229,7 +229,7 @@
229
229
  * The box is a circle: its ground is the halo the pointer lights, and its
230
230
  * edge is where the focus ring is drawn.
231
231
  */
232
- [data-ui='rating'] [data-part='input'] {
232
+ [data-ui-rating] [data-part-input] {
233
233
  appearance: none;
234
234
  background-color: transparent;
235
235
  block-size: 100%;
@@ -247,7 +247,7 @@
247
247
  z-index: 0;
248
248
  }
249
249
 
250
- [data-ui='rating'] [data-part='input'][data-half] {
250
+ [data-ui-rating] [data-part-input][data-half] {
251
251
  border-end-end-radius: 0;
252
252
  border-start-end-radius: 0;
253
253
  inline-size: 50%;
@@ -259,13 +259,13 @@
259
259
  * What the reader has picked: every symbol before the checked radio's item
260
260
  * is lit, and that item is lit whole or by half.
261
261
  */
262
- [data-ui='rating'] [data-part='item']:has(~ [data-part='item'] > [data-part='input']:checked),
263
- [data-ui='rating'] [data-part='item']:has(> [data-part='input']:not([data-half]):checked) {
262
+ [data-ui-rating] [data-part-item]:has(~ [data-part-item] > [data-part-input]:checked),
263
+ [data-ui-rating] [data-part-item]:has(> [data-part-input]:not([data-half]):checked) {
264
264
  --_fill: 1;
265
265
  --_fill-easing: var(--slotted-easing-enter);
266
266
  }
267
267
 
268
- [data-ui='rating'] [data-part='item']:has(> [data-part='input'][data-half]:checked) {
268
+ [data-ui-rating] [data-part-item]:has(> [data-part-input][data-half]:checked) {
269
269
  --_fill: 0.5;
270
270
  --_fill-easing: var(--slotted-easing-enter);
271
271
  }
@@ -275,27 +275,27 @@
275
275
  * row shows the value under it instead of the one held, the way every
276
276
  * surveyed input previews; nothing is requested until the press.
277
277
  */
278
- [data-ui='rating'][data-part='root']:not([data-readonly], [data-disabled]):has(
279
- [data-part='input']:hover:not(:disabled)
278
+ [data-ui-rating][data-part-root]:not([data-readonly], [data-disabled]):has(
279
+ [data-part-input]:hover:not(:disabled)
280
280
  )
281
- [data-part='item'] {
281
+ [data-part-item] {
282
282
  --_fill: 0;
283
283
  --_fill-easing: var(--slotted-easing-exit);
284
284
  }
285
285
 
286
- [data-ui='rating'][data-part='root']:not([data-readonly], [data-disabled]):has(
287
- [data-part='input']:hover:not(:disabled)
286
+ [data-ui-rating][data-part-root]:not([data-readonly], [data-disabled]):has(
287
+ [data-part-input]:hover:not(:disabled)
288
288
  )
289
- [data-part='item']:is(
290
- :has(~ [data-part='item'] > [data-part='input']:hover:not(:disabled)),
291
- :has(> [data-part='input']:not([data-half]):hover:not(:disabled))
289
+ [data-part-item]:is(
290
+ :has(~ [data-part-item] > [data-part-input]:hover:not(:disabled)),
291
+ :has(> [data-part-input]:not([data-half]):hover:not(:disabled))
292
292
  ) {
293
293
  --_fill: 1;
294
294
  --_fill-easing: var(--slotted-easing-enter);
295
295
  }
296
296
 
297
- [data-ui='rating'][data-part='root']:not([data-readonly], [data-disabled])
298
- [data-part='item']:has(> [data-part='input'][data-half]:hover:not(:disabled)) {
297
+ [data-ui-rating][data-part-root]:not([data-readonly], [data-disabled])
298
+ [data-part-item]:has(> [data-part-input][data-half]:hover:not(:disabled)) {
299
299
  --_fill: 0.5;
300
300
  --_fill-easing: var(--slotted-easing-enter);
301
301
  }
@@ -305,7 +305,7 @@
305
305
  * and marks the root `data-dragging`; the transitions of the lit share step
306
306
  * aside, so the row follows the finger rather than trailing it.
307
307
  */
308
- [data-ui='rating'][data-part='root'][data-dragging] [data-part='fill'] {
308
+ [data-ui-rating][data-part-root][data-dragging] [data-part-fill] {
309
309
  transition-duration: var(--slotted-duration-instant);
310
310
  }
311
311
 
@@ -319,19 +319,19 @@
319
319
  * symbol six per cent below its size and darkens the wash, and the release
320
320
  * brings both back on the standard curve.
321
321
  */
322
- [data-ui='rating'][data-part='root']:not([data-readonly], [data-disabled])
323
- [data-part='input']:hover:not(:disabled) {
322
+ [data-ui-rating][data-part-root]:not([data-readonly], [data-disabled])
323
+ [data-part-input]:hover:not(:disabled) {
324
324
  background-color: var(--_halo);
325
325
  }
326
326
 
327
- [data-ui='rating'][data-part='root']:not([data-readonly], [data-disabled])
328
- [data-part='input']:active:not(:disabled) {
327
+ [data-ui-rating][data-part-root]:not([data-readonly], [data-disabled])
328
+ [data-part-input]:active:not(:disabled) {
329
329
  background-color: var(--_halo-active);
330
330
  }
331
331
 
332
- [data-ui='rating'][data-part='root']:not([data-readonly], [data-disabled])
333
- [data-part='item']:has(> [data-part='input']:active:not(:disabled))
334
- > :is([data-part='symbol'], [data-part='fill']) {
332
+ [data-ui-rating][data-part-root]:not([data-readonly], [data-disabled])
333
+ [data-part-item]:has(> [data-part-input]:active:not(:disabled))
334
+ > :is([data-part-symbol], [data-part-fill]) {
335
335
  scale: 0.94;
336
336
  }
337
337
 
@@ -341,7 +341,7 @@
341
341
  * half radio is half of a star and the ring still encloses the whole star,
342
342
  * because the star is what the reader is on.
343
343
  */
344
- [data-ui='rating'] [data-part='item']:has(> [data-part='input']:focus-visible) {
344
+ [data-ui-rating] [data-part-item]:has(> [data-part-input]:focus-visible) {
345
345
  border-radius: var(--slotted-radius-full, 9999px);
346
346
  outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color);
347
347
  outline-offset: calc(-1 * var(--slotted-focus-ring-width, 2px));
@@ -352,7 +352,7 @@
352
352
  * that holds the ratio against it — so a required rating left empty is
353
353
  * marked on the stars themselves, beside the message `field` writes.
354
354
  */
355
- [data-ui='rating'][data-part='root'][data-invalid] {
355
+ [data-ui-rating][data-part-root][data-invalid] {
356
356
  --_off: var(--slotted-rating-invalid-color, var(--slotted-tone-danger-surface));
357
357
  --_off-edge: var(--slotted-tone-danger-border);
358
358
  --slotted-focus-ring-color: var(--slotted-focus-ring-color-invalid);
@@ -365,14 +365,14 @@
365
365
  * stroke grows about its path inside the drawing's own box, so no star and
366
366
  * no label moves.
367
367
  */
368
- [data-ui='rating'][data-part='root'][data-invalid] [data-part='symbol'] svg {
368
+ [data-ui-rating][data-part-root][data-invalid] [data-part-symbol] svg {
369
369
  stroke-width: calc(
370
370
  var(--_stroke) * 1px +
371
371
  var(--slotted-rating-invalid-edge-width, var(--slotted-control-invalid-edge-width, 1px))
372
372
  );
373
373
  }
374
374
 
375
- [data-ui='rating'][data-part='root'][data-readonly] [data-part='input'] {
375
+ [data-ui-rating][data-part-root][data-readonly] [data-part-input] {
376
376
  cursor: default;
377
377
  }
378
378
 
@@ -381,14 +381,14 @@
381
381
  * disabled ink and the unlit ones stay on the disabled ground, so three of
382
382
  * five reads as three of five and not as an absent control.
383
383
  */
384
- [data-ui='rating'][data-part='root'][data-disabled] {
384
+ [data-ui-rating][data-part-root][data-disabled] {
385
385
  --_on: var(--slotted-disabled-foreground);
386
386
  --_off: var(--slotted-disabled-background);
387
387
 
388
388
  color: var(--slotted-disabled-foreground);
389
389
  }
390
390
 
391
- [data-ui='rating'][data-part='root'][data-disabled] [data-part='input'] {
391
+ [data-ui-rating][data-part-root][data-disabled] [data-part-input] {
392
392
  cursor: not-allowed;
393
393
  }
394
394
 
@@ -399,13 +399,13 @@
399
399
  * how many readings the number is made of. Figures are tabular, so a row of
400
400
  * products lines its numbers up.
401
401
  */
402
- [data-ui='rating'] [data-part='value'] {
402
+ [data-ui-rating] [data-part-value] {
403
403
  font-variant-numeric: tabular-nums;
404
404
  font-weight: var(--slotted-font-weight-semibold, 600);
405
405
  white-space: nowrap;
406
406
  }
407
407
 
408
- [data-ui='rating'] [data-part='count'] {
408
+ [data-ui-rating] [data-part-count] {
409
409
  color: var(--slotted-text-muted, GrayText);
410
410
  font-variant-numeric: tabular-nums;
411
411
  white-space: nowrap;
@@ -416,7 +416,7 @@
416
416
  * rather than a figure — so it is set muted, as a description is, and a
417
417
  * long one wraps inside the row rather than running past it.
418
418
  */
419
- [data-ui='rating'][data-part='root']:has([data-part='input']) > [data-part='value'] {
419
+ [data-ui-rating][data-part-root]:has([data-part-input]) > [data-part-value] {
420
420
  color: var(--slotted-text-muted, GrayText);
421
421
  font-weight: var(--slotted-font-weight-regular, 400);
422
422
  min-inline-size: 0;
@@ -428,14 +428,14 @@
428
428
 
429
429
  /* While the pointer previews a value the word names it, and reads as the
430
430
  answer to the pointer rather than as a hint. */
431
- [data-ui='rating'][data-part='root']:not([data-readonly], [data-disabled]):has(
432
- [data-part='input']:hover:not(:disabled)
431
+ [data-ui-rating][data-part-root]:not([data-readonly], [data-disabled]):has(
432
+ [data-part-input]:hover:not(:disabled)
433
433
  )
434
- > [data-part='value'] {
434
+ > [data-part-value] {
435
435
  color: var(--slotted-text, CanvasText);
436
436
  }
437
437
 
438
- [data-ui='rating'][data-part='root'][data-disabled] > [data-part='value'] {
438
+ [data-ui-rating][data-part-root][data-disabled] > [data-part-value] {
439
439
  color: var(--slotted-disabled-foreground);
440
440
  }
441
441
 
@@ -457,9 +457,9 @@
457
457
  * trimmed figure pulled the stars up against its baseline.
458
458
  */
459
459
  @supports (text-box: trim-both cap alphabetic) {
460
- [data-ui='rating'][data-part='root'] > :is([data-part='value'], [data-part='count']),
461
- [data-ui='rating'] [data-part='level-count'],
462
- [data-ui='rating'] [data-part='level-label'] > span:not([data-ui]) {
460
+ [data-ui-rating][data-part-root] > :is([data-part-value], [data-part-count]),
461
+ [data-ui-rating] [data-part-level-count],
462
+ [data-ui-rating] [data-part-level-label] > span:not([data-ui]) {
463
463
  text-box: trim-both cap alphabetic;
464
464
  }
465
465
  }
@@ -471,11 +471,11 @@
471
471
  * cell has room for, and the one Fluent calls `compact`. The star is the
472
472
  * mark of the figure, not a share of it, so it is always lit whole.
473
473
  */
474
- [data-ui='rating'][data-part='root'][data-variant='compact'] {
474
+ [data-ui-rating][data-part-root][data-variant='compact'] {
475
475
  column-gap: var(--slotted-space-2, 0.25rem);
476
476
  }
477
477
 
478
- [data-ui='rating'][data-part='root'][data-variant='compact'] [data-part='item'] {
478
+ [data-ui-rating][data-part-root][data-variant='compact'] [data-part-item] {
479
479
  --_fill: 1;
480
480
  }
481
481
 
@@ -489,7 +489,7 @@
489
489
  * query, because the break is where the content stops fitting and nowhere
490
490
  * else.
491
491
  */
492
- [data-ui='rating'][data-part='root'][data-variant='summary'] {
492
+ [data-ui-rating][data-part-root][data-variant='summary'] {
493
493
  --_bar: var(--slotted-rating-bar-size, var(--slotted-space-4, 0.5rem));
494
494
 
495
495
  align-items: start;
@@ -500,7 +500,7 @@
500
500
  inline-size: 100%;
501
501
  }
502
502
 
503
- [data-ui='rating'] [data-part='aggregate'] {
503
+ [data-ui-rating] [data-part-aggregate] {
504
504
  align-content: start;
505
505
  column-gap: var(--slotted-space-3, 0.375rem);
506
506
  display: grid;
@@ -513,23 +513,23 @@
513
513
  * The figure is set at the key-figure step `stat-card` reads, on its own
514
514
  * line height, and the scale beside it sits on its baseline.
515
515
  */
516
- [data-ui='rating'] [data-part='aggregate'] > [data-part='value'] {
516
+ [data-ui-rating] [data-part-aggregate] > [data-part-value] {
517
517
  align-self: baseline;
518
518
  font-size: var(--slotted-font-size-4xl, 2rem);
519
519
  font-weight: var(--slotted-font-weight-semibold, 600);
520
520
  line-height: var(--slotted-line-height-4xl, 1.2);
521
521
  }
522
522
 
523
- [data-ui='rating'] [data-part='scale'] {
523
+ [data-ui-rating] [data-part-scale] {
524
524
  align-self: baseline;
525
525
  color: var(--slotted-text-muted, GrayText);
526
526
  }
527
527
 
528
- [data-ui='rating'] [data-part='aggregate'] > :not([data-part='value'], [data-part='scale']) {
528
+ [data-ui-rating] [data-part-aggregate] > :not([data-part-value], [data-part-scale]) {
529
529
  grid-column: 1 / -1;
530
530
  }
531
531
 
532
- [data-ui='rating'] [data-part='aggregate'] > [data-part='count'] {
532
+ [data-ui-rating] [data-part-aggregate] > [data-part-count] {
533
533
  white-space: normal;
534
534
  }
535
535
 
@@ -537,7 +537,7 @@
537
537
  * The distribution is one grid whose rows are subgrids, so every label,
538
538
  * bar and count lines up with the one above it whatever the numbers.
539
539
  */
540
- [data-ui='rating'] [data-part='distribution'] {
540
+ [data-ui-rating] [data-part-distribution] {
541
541
  display: grid;
542
542
  flex: 1 1 15rem;
543
543
  grid-template-columns: auto minmax(4rem, 1fr) auto;
@@ -548,13 +548,13 @@
548
548
  row-gap: var(--slotted-space-1, 0.125rem);
549
549
  }
550
550
 
551
- [data-ui='rating'] [data-part='distribution'] > li {
551
+ [data-ui-rating] [data-part-distribution] > li {
552
552
  display: grid;
553
553
  grid-column: 1 / -1;
554
554
  grid-template-columns: subgrid;
555
555
  }
556
556
 
557
- [data-ui='rating'] [data-part='level'] {
557
+ [data-ui-rating] [data-part-level] {
558
558
  align-items: center;
559
559
  background-color: transparent;
560
560
  border: 0;
@@ -578,19 +578,19 @@
578
578
  box-shadow var(--slotted-control-transition-duration) var(--slotted-control-transition-easing);
579
579
  }
580
580
 
581
- [data-ui='rating'] button[data-part='level'] {
581
+ [data-ui-rating] button[data-part-level] {
582
582
  cursor: pointer;
583
583
  }
584
584
 
585
- [data-ui='rating'] button[data-part='level']:hover:not(:disabled) {
585
+ [data-ui-rating] button[data-part-level]:hover:not(:disabled) {
586
586
  background-color: var(--_halo);
587
587
  }
588
588
 
589
- [data-ui='rating'] button[data-part='level']:active:not(:disabled) {
589
+ [data-ui-rating] button[data-part-level]:active:not(:disabled) {
590
590
  background-color: var(--_halo-active);
591
591
  }
592
592
 
593
- [data-ui='rating'] button[data-part='level']:focus-visible {
593
+ [data-ui-rating] button[data-part-level]:focus-visible {
594
594
  outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color);
595
595
  outline-offset: calc(-1 * var(--slotted-focus-ring-width, 2px));
596
596
  }
@@ -601,22 +601,22 @@
601
601
  * as they are, so the filter reads as one row lit among five rather than
602
602
  * four rows dimmed.
603
603
  */
604
- [data-ui='rating'] [data-part='level'][data-pressed] {
604
+ [data-ui-rating] [data-part-level][data-pressed] {
605
605
  background-color: var(--slotted-tone-warning-surface);
606
606
  box-shadow: inset 0 0 0 var(--slotted-border-width-thin, 1px) var(--slotted-tone-warning-border);
607
607
  }
608
608
 
609
- [data-ui='rating'] [data-part='level'][data-pressed] [data-part='level-count'] {
609
+ [data-ui-rating] [data-part-level][data-pressed] [data-part-level-count] {
610
610
  color: var(--slotted-text, CanvasText);
611
611
  font-weight: var(--slotted-font-weight-semibold, 600);
612
612
  }
613
613
 
614
- [data-ui='rating'] button[data-part='level']:disabled {
614
+ [data-ui-rating] button[data-part-level]:disabled {
615
615
  color: var(--slotted-disabled-foreground);
616
616
  cursor: default;
617
617
  }
618
618
 
619
- [data-ui='rating'] [data-part='level-label'] {
619
+ [data-ui-rating] [data-part-level-label] {
620
620
  --slotted-icon-size: var(--slotted-control-icon-size-sm, 14px);
621
621
 
622
622
  align-items: center;
@@ -626,18 +626,18 @@
626
626
  white-space: nowrap;
627
627
  }
628
628
 
629
- [data-ui='rating'] [data-part='level-label'] svg {
629
+ [data-ui-rating] [data-part-level-label] svg {
630
630
  fill: currentColor;
631
631
  stroke-width: var(--_stroke);
632
632
  }
633
633
 
634
- [data-ui='rating'] [data-part='level-label'] > [data-ui='icon'] {
634
+ [data-ui-rating] [data-part-level-label] > [data-ui-icon] {
635
635
  color: var(--slotted-text-muted, GrayText);
636
636
  }
637
637
 
638
638
  /* The track takes the symbols' edge: nothing in `light` and `dark`, a black
639
639
  hairline in `high-contrast`, where its ground is the page's white. */
640
- [data-ui='rating'] [data-part='track'] {
640
+ [data-ui-rating] [data-part-track] {
641
641
  background-color: var(--_off);
642
642
  block-size: var(--_bar);
643
643
  box-shadow: inset 0 0 0 var(--slotted-border-width-thin, 1px) var(--_edge);
@@ -650,7 +650,7 @@
650
650
  * the enter curve, the first time it is drawn and every time the share
651
651
  * changes, so a summary that loads reads as filling rather than popping.
652
652
  */
653
- [data-ui='rating'] [data-part='indicator'] {
653
+ [data-ui-rating] [data-part-indicator] {
654
654
  background-color: var(--slotted-rating-bar-color, var(--_on));
655
655
  block-size: 100%;
656
656
  border-radius: inherit;
@@ -660,20 +660,20 @@
660
660
  }
661
661
 
662
662
  @starting-style {
663
- [data-ui='rating'] [data-part='indicator'] {
663
+ [data-ui-rating] [data-part-indicator] {
664
664
  inline-size: 0;
665
665
  }
666
666
  }
667
667
 
668
- [data-ui='rating'] [data-part='level-count'] {
668
+ [data-ui-rating] [data-part-level-count] {
669
669
  color: var(--slotted-text-muted, GrayText);
670
670
  font-variant-numeric: tabular-nums;
671
671
  justify-self: end;
672
672
  white-space: nowrap;
673
673
  }
674
674
 
675
- [data-ui='rating'][data-disabled] [data-part='indicator'],
676
- [data-ui='rating'] button[data-part='level']:disabled [data-part='indicator'] {
675
+ [data-ui-rating][data-disabled] [data-part-indicator],
676
+ [data-ui-rating] button[data-part-level]:disabled [data-part-indicator] {
677
677
  background-color: var(--slotted-disabled-foreground);
678
678
  }
679
679
 
@@ -689,7 +689,7 @@
689
689
  * (`@slotted/core/rating`, `summariseRatings`). Every figure, the interval
690
690
  * included, is also written as text.
691
691
  */
692
- [data-ui='rating'][data-part='root'][data-variant='spectrum'] {
692
+ [data-ui-rating][data-part-root][data-variant='spectrum'] {
693
693
  --_g: var(--slotted-space-3, 0.375rem);
694
694
  --_plot: var(--slotted-space-12, 4rem);
695
695
  --_col: calc((100% - 4 * var(--_g)) / 5);
@@ -702,7 +702,7 @@
702
702
  inline-size: 100%;
703
703
  }
704
704
 
705
- [data-ui='rating'][data-variant='spectrum'] > [data-part='aggregate'] {
705
+ [data-ui-rating][data-variant='spectrum'] > [data-part-aggregate] {
706
706
  align-items: baseline;
707
707
  column-gap: var(--slotted-space-3, 0.375rem);
708
708
  display: flex;
@@ -710,7 +710,7 @@
710
710
  row-gap: var(--slotted-space-2, 0.25rem);
711
711
  }
712
712
 
713
- [data-ui='rating'][data-variant='spectrum'] > [data-part='aggregate'] > [data-part='count'] {
713
+ [data-ui-rating][data-variant='spectrum'] > [data-part-aggregate] > [data-part-count] {
714
714
  color: var(--slotted-text-muted, GrayText);
715
715
  flex-basis: 100%;
716
716
  }
@@ -719,7 +719,7 @@
719
719
  * The conclusion is a pill in its tone's surface, edge and text roles, the
720
720
  * pair a badge reads, pushed to the inline end of the figure's line.
721
721
  */
722
- [data-ui='rating'] [data-part='insight'] {
722
+ [data-ui-rating] [data-part-insight] {
723
723
  align-self: center;
724
724
  background-color: var(--_tint-surface);
725
725
  border-radius: var(--slotted-radius-full, 9999px);
@@ -733,61 +733,61 @@
733
733
  white-space: nowrap;
734
734
  }
735
735
 
736
- [data-ui='rating'] :is([data-part='insight'], [data-part='bucket'])[data-tone='success'] {
736
+ [data-ui-rating] :is([data-part-insight], [data-part-bucket])[data-tone='success'] {
737
737
  --_tint-surface: var(--slotted-tone-success-surface);
738
738
  --_tint-border: var(--slotted-tone-success-border);
739
739
  --_tint-text: var(--slotted-tone-success-text);
740
740
  --_mark: var(--slotted-tone-success-solid);
741
741
  }
742
742
 
743
- [data-ui='rating'] :is([data-part='insight'], [data-part='bucket'])[data-tone='warning'] {
743
+ [data-ui-rating] :is([data-part-insight], [data-part-bucket])[data-tone='warning'] {
744
744
  --_tint-surface: var(--slotted-tone-warning-surface);
745
745
  --_tint-border: var(--slotted-tone-warning-border);
746
746
  --_tint-text: var(--slotted-tone-warning-text);
747
747
  --_mark: var(--slotted-tone-warning-solid);
748
748
  }
749
749
 
750
- [data-ui='rating'] :is([data-part='insight'], [data-part='bucket'])[data-tone='secondary'] {
750
+ [data-ui-rating] :is([data-part-insight], [data-part-bucket])[data-tone='secondary'] {
751
751
  --_tint-surface: var(--slotted-tone-secondary-surface);
752
752
  --_tint-border: var(--slotted-tone-secondary-border);
753
753
  --_tint-text: var(--slotted-text-muted, GrayText);
754
754
  --_mark: var(--slotted-tone-secondary-border);
755
755
  }
756
756
 
757
- [data-ui='rating'] :is([data-part='insight'], [data-part='bucket'])[data-tone='danger'] {
757
+ [data-ui-rating] :is([data-part-insight], [data-part-bucket])[data-tone='danger'] {
758
758
  --_tint-surface: var(--slotted-tone-danger-surface);
759
759
  --_tint-border: var(--slotted-tone-danger-border);
760
760
  --_tint-text: var(--slotted-tone-danger-text);
761
761
  --_mark: var(--slotted-tone-danger-solid);
762
762
  }
763
763
 
764
- [data-ui='rating'] [data-part='plot'] {
764
+ [data-ui-rating] [data-part-plot] {
765
765
  display: grid;
766
766
  row-gap: var(--slotted-space-3, 0.375rem);
767
767
  }
768
768
 
769
769
  /* The drawing area: its top margin is the room the mean's label stands in. */
770
- [data-ui='rating'] [data-part='field'] {
770
+ [data-ui-rating] [data-part-field] {
771
771
  block-size: var(--_plot);
772
772
  border-block-end: var(--slotted-border-width-thin, 1px) solid var(--slotted-border-subtle);
773
773
  margin-block-start: var(--slotted-space-7, 1.25rem);
774
774
  position: relative;
775
775
  }
776
776
 
777
- [data-ui='rating'] :is([data-part='columns'], [data-part='axis']) {
777
+ [data-ui-rating] :is([data-part-columns], [data-part-axis]) {
778
778
  column-gap: var(--_g);
779
779
  display: grid;
780
780
  grid-template-columns: repeat(5, 1fr);
781
781
  }
782
782
 
783
- [data-ui='rating'] [data-part='columns'] {
783
+ [data-ui-rating] [data-part-columns] {
784
784
  block-size: 100%;
785
785
  isolation: isolate;
786
786
  position: relative;
787
787
  z-index: 1;
788
788
  }
789
789
 
790
- [data-ui='rating'] [data-part='column'] {
790
+ [data-ui-rating] [data-part-column] {
791
791
  align-items: end;
792
792
  background-color: transparent;
793
793
  border: 0;
@@ -801,19 +801,19 @@
801
801
  var(--slotted-control-transition-easing);
802
802
  }
803
803
 
804
- [data-ui='rating'] button[data-part='column'] {
804
+ [data-ui-rating] button[data-part-column] {
805
805
  cursor: pointer;
806
806
  }
807
807
 
808
- [data-ui='rating'] button[data-part='column']:hover:not(:disabled) {
808
+ [data-ui-rating] button[data-part-column]:hover:not(:disabled) {
809
809
  background-color: var(--_halo);
810
810
  }
811
811
 
812
- [data-ui='rating'] button[data-part='column']:active:not(:disabled) {
812
+ [data-ui-rating] button[data-part-column]:active:not(:disabled) {
813
813
  background-color: var(--_halo-active);
814
814
  }
815
815
 
816
- [data-ui='rating'] button[data-part='column']:focus-visible {
816
+ [data-ui-rating] button[data-part-column]:focus-visible {
817
817
  outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color);
818
818
  outline-offset: var(--slotted-focus-ring-offset, 2px);
819
819
  }
@@ -824,7 +824,7 @@
824
824
  * any other is at least two pixels, so one reading is never invisible. It
825
825
  * grows from the baseline on the long step and the enter curve.
826
826
  */
827
- [data-ui='rating'] [data-part='column'] > [data-part='bar'] {
827
+ [data-ui-rating] [data-part-column] > [data-part-bar] {
828
828
  background-color: var(--_on);
829
829
  block-size: max(
830
830
  min(var(--slotted-space-1, 0.125rem), var(--slotted-rating-share, 0) * 100rem),
@@ -841,15 +841,15 @@
841
841
  }
842
842
 
843
843
  @starting-style {
844
- [data-ui='rating'] [data-part='column'] > [data-part='bar'] {
844
+ [data-ui-rating] [data-part-column] > [data-part-bar] {
845
845
  block-size: 0;
846
846
  }
847
847
  }
848
848
 
849
- [data-ui='rating']
850
- [data-part='columns']:has([data-pressed])
851
- [data-part='column']:not([data-pressed])
852
- > [data-part='bar'] {
849
+ [data-ui-rating]
850
+ [data-part-columns]:has([data-pressed])
851
+ [data-part-column]:not([data-pressed])
852
+ > [data-part-bar] {
853
853
  background-color: var(--_off);
854
854
  }
855
855
 
@@ -858,12 +858,12 @@
858
858
  * first column, plus one column and one gap per unit. The interval sits
859
859
  * behind the columns and the mean in front of them.
860
860
  */
861
- [data-ui='rating'] :is([data-part='interval'], [data-part='mean']) {
861
+ [data-ui-rating] :is([data-part-interval], [data-part-mean]) {
862
862
  pointer-events: none;
863
863
  position: absolute;
864
864
  }
865
865
 
866
- [data-ui='rating'] [data-part='interval'] {
866
+ [data-ui-rating] [data-part-interval] {
867
867
  background-color: color-mix(
868
868
  in oklab,
869
869
  var(--slotted-text) calc(var(--slotted-highlight-tint-opacity, 0.075) * 100%),
@@ -883,7 +883,7 @@
883
883
  z-index: 0;
884
884
  }
885
885
 
886
- [data-ui='rating'] [data-part='mean'] {
886
+ [data-ui-rating] [data-part-mean] {
887
887
  border-inline-start: var(--slotted-border-width-thick, 2px) solid var(--slotted-text);
888
888
  inset-block: calc(-1 * var(--slotted-space-5, 0.75rem)) 0;
889
889
  inset-inline-start: calc(
@@ -894,7 +894,7 @@
894
894
  z-index: 2;
895
895
  }
896
896
 
897
- [data-ui='rating'] [data-part='mean-label'] {
897
+ [data-ui-rating] [data-part-mean-label] {
898
898
  background-color: var(--slotted-surface-inverse);
899
899
  border-radius: var(--slotted-radius-full, 9999px);
900
900
  color: var(--slotted-text-inverse);
@@ -910,17 +910,17 @@
910
910
  white-space: nowrap;
911
911
  }
912
912
 
913
- [data-ui='rating'][data-part='root']:dir(rtl) [data-part='mean-label'] {
913
+ [data-ui-rating][data-part-root]:dir(rtl) [data-part-mean-label] {
914
914
  translate: 50% 0;
915
915
  }
916
916
 
917
- [data-ui='rating'] [data-part='tick'] {
917
+ [data-ui-rating] [data-part-tick] {
918
918
  display: grid;
919
919
  justify-items: center;
920
920
  row-gap: var(--slotted-space-1, 0.125rem);
921
921
  }
922
922
 
923
- [data-ui='rating'] [data-part='tick-label'] {
923
+ [data-ui-rating] [data-part-tick-label] {
924
924
  --slotted-icon-size: var(--slotted-control-icon-size-sm, 14px);
925
925
 
926
926
  align-items: center;
@@ -929,16 +929,16 @@
929
929
  font-variant-numeric: tabular-nums;
930
930
  }
931
931
 
932
- [data-ui='rating'] [data-part='tick-label'] svg {
932
+ [data-ui-rating] [data-part-tick-label] svg {
933
933
  fill: currentColor;
934
934
  stroke-width: var(--_stroke);
935
935
  }
936
936
 
937
- [data-ui='rating'] [data-part='tick-label'] > [data-ui='icon'] {
937
+ [data-ui-rating] [data-part-tick-label] > [data-ui-icon] {
938
938
  color: var(--slotted-text-muted, GrayText);
939
939
  }
940
940
 
941
- [data-ui='rating'] [data-part='tick-share'] {
941
+ [data-ui-rating] [data-part-tick-share] {
942
942
  color: var(--slotted-text-muted, GrayText);
943
943
  font-size: var(--slotted-font-size-xs, 0.75rem);
944
944
  font-variant-numeric: tabular-nums;
@@ -946,7 +946,7 @@
946
946
 
947
947
  /* The executive reading: positive, neutral and negative shares, each with
948
948
  its tone's mark, which never carries the meaning alone. */
949
- [data-ui='rating'] [data-part='sentiment'] {
949
+ [data-ui-rating] [data-part-sentiment] {
950
950
  color: var(--slotted-text-muted, GrayText);
951
951
  column-gap: var(--slotted-space-6, 1rem);
952
952
  display: flex;
@@ -955,19 +955,19 @@
955
955
  row-gap: var(--slotted-space-2, 0.25rem);
956
956
  }
957
957
 
958
- [data-ui='rating'] [data-part='bucket'] {
958
+ [data-ui-rating] [data-part-bucket] {
959
959
  align-items: center;
960
960
  column-gap: var(--slotted-space-2, 0.25rem);
961
961
  display: inline-flex;
962
962
  }
963
963
 
964
- [data-ui='rating'] [data-part='bucket'] > strong {
964
+ [data-ui-rating] [data-part-bucket] > strong {
965
965
  color: var(--slotted-text, CanvasText);
966
966
  font-variant-numeric: tabular-nums;
967
967
  font-weight: var(--slotted-font-weight-semibold, 600);
968
968
  }
969
969
 
970
- [data-ui='rating'] [data-part='swatch'] {
970
+ [data-ui-rating] [data-part-swatch] {
971
971
  background-color: var(--_mark);
972
972
  block-size: var(--slotted-space-4, 0.5rem);
973
973
  border-radius: var(--slotted-radius-full, 9999px);
@@ -984,15 +984,15 @@
984
984
  * the count. Two rows at 3.3 stop looking alike when one is split between
985
985
  * the ends.
986
986
  */
987
- [data-ui='rating'][data-part='root'][data-variant='histogram'] {
987
+ [data-ui-rating][data-part-root][data-variant='histogram'] {
988
988
  column-gap: var(--slotted-space-2, 0.25rem);
989
989
  }
990
990
 
991
- [data-ui='rating'][data-part='root'][data-variant='histogram'] [data-part='item'] {
991
+ [data-ui-rating][data-part-root][data-variant='histogram'] [data-part-item] {
992
992
  --_fill: 1;
993
993
  }
994
994
 
995
- [data-ui='rating'] [data-part='histogram'] {
995
+ [data-ui-rating] [data-part-histogram] {
996
996
  align-items: end;
997
997
  block-size: calc(1cap + 0.5em);
998
998
  border-block-end: var(--slotted-border-width-thin, 1px) solid var(--slotted-border-strong);
@@ -1002,7 +1002,7 @@
1002
1002
  margin-inline: var(--slotted-space-2, 0.25rem);
1003
1003
  }
1004
1004
 
1005
- [data-ui='rating'] [data-part='histogram'] > [data-part='bar'] {
1005
+ [data-ui-rating] [data-part-histogram] > [data-part-bar] {
1006
1006
  background-color: var(--_on);
1007
1007
  block-size: max(
1008
1008
  min(var(--slotted-border-width-thin, 1px), var(--slotted-rating-share, 0) * 100rem),
@@ -1019,11 +1019,11 @@
1019
1019
  * scales.
1020
1020
  */
1021
1021
  @media (pointer: coarse) {
1022
- [data-ui='rating'] [data-part='item']:has(> [data-part='input']) {
1022
+ [data-ui-rating] [data-part-item]:has(> [data-part-input]) {
1023
1023
  --_box: max(var(--slotted-target-comfortable, 44px), var(--_symbol));
1024
1024
  }
1025
1025
 
1026
- [data-ui='rating'] [data-part='level'] {
1026
+ [data-ui-rating] [data-part-level] {
1027
1027
  min-block-size: var(--slotted-target-comfortable, 44px);
1028
1028
  }
1029
1029
  }
@@ -1035,36 +1035,36 @@
1035
1035
  * it — the shape carries the value, as it does in every scheme.
1036
1036
  */
1037
1037
  @media (forced-colors: active) {
1038
- [data-ui='rating'][data-part='root'] {
1038
+ [data-ui-rating][data-part-root] {
1039
1039
  --_on: CanvasText;
1040
1040
  --_off: Canvas;
1041
1041
  --_edge: CanvasText;
1042
1042
  --_off-edge: CanvasText;
1043
1043
  }
1044
1044
 
1045
- [data-ui='rating'][data-part='root'][data-disabled] {
1045
+ [data-ui-rating][data-part-root][data-disabled] {
1046
1046
  --_on: GrayText;
1047
1047
  --_edge: GrayText;
1048
1048
  --_off-edge: GrayText;
1049
1049
  }
1050
1050
 
1051
- [data-ui='rating'] [data-part='track'] {
1051
+ [data-ui-rating] [data-part-track] {
1052
1052
  border: var(--slotted-border-width-thin, 1px) solid CanvasText;
1053
1053
  }
1054
1054
 
1055
- [data-ui='rating'] :is([data-part='insight'], [data-part='swatch']) {
1055
+ [data-ui-rating] :is([data-part-insight], [data-part-swatch]) {
1056
1056
  border: var(--slotted-border-width-thin, 1px) solid CanvasText;
1057
1057
  }
1058
1058
 
1059
- [data-ui='rating'] [data-part='column'][data-pressed] {
1059
+ [data-ui-rating] [data-part-column][data-pressed] {
1060
1060
  outline: var(--slotted-border-width-thick, 2px) solid Highlight;
1061
1061
  }
1062
1062
 
1063
- [data-ui='rating'] [data-part='level'][data-pressed] {
1063
+ [data-ui-rating] [data-part-level][data-pressed] {
1064
1064
  outline: var(--slotted-border-width-thick, 2px) solid Highlight;
1065
1065
  }
1066
1066
 
1067
- [data-ui='rating'] [data-part='item']:has(> [data-part='input']:focus-visible) {
1067
+ [data-ui-rating] [data-part-item]:has(> [data-part-input]:focus-visible) {
1068
1068
  outline-color: Highlight;
1069
1069
  }
1070
1070
  }