@slotted/styles 0.1.0-beta.8 → 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 +300 -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 +143 -162
  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
@@ -97,7 +97,7 @@
97
97
  * authored stylesheet has to know which of three things it is painting, and
98
98
  * a prop would be a fourth way to pick a component already picked.
99
99
  */
100
- [data-ui='progress-indicator'][data-part='root'] {
100
+ [data-ui-progress-indicator][data-part-root] {
101
101
  /**
102
102
  * The ink, and it is the tone's `text` role rather than its `solid` one.
103
103
  * Two reasons, and the second is the one that decides it. The indicator is
@@ -231,7 +231,7 @@
231
231
  * user agent's `[hidden]`, and a family that painted through its own
232
232
  * withdrawal would flash exactly what the delay exists to prevent.
233
233
  */
234
- [data-ui='progress-indicator'][hidden] {
234
+ [data-ui-progress-indicator][hidden] {
235
235
  display: none;
236
236
  }
237
237
 
@@ -253,23 +253,23 @@
253
253
  * It is the same substitution `badge` and `status-indicator` make for their
254
254
  * own neutral marks, for the same reason.
255
255
  */
256
- [data-ui='progress-indicator'][data-part='root'][data-tone='secondary'] {
256
+ [data-ui-progress-indicator][data-part-root][data-tone='secondary'] {
257
257
  --_ink: var(--slotted-progress-indicator-indicator-color, var(--slotted-border-strong));
258
258
  }
259
259
 
260
- [data-ui='progress-indicator'][data-part='root'][data-tone='success'] {
260
+ [data-ui-progress-indicator][data-part-root][data-tone='success'] {
261
261
  --_ink: var(--slotted-progress-indicator-indicator-color, var(--slotted-tone-success-text));
262
262
  }
263
263
 
264
- [data-ui='progress-indicator'][data-part='root'][data-tone='warning'] {
264
+ [data-ui-progress-indicator][data-part-root][data-tone='warning'] {
265
265
  --_ink: var(--slotted-progress-indicator-indicator-color, var(--slotted-tone-warning-text));
266
266
  }
267
267
 
268
- [data-ui='progress-indicator'][data-part='root'][data-tone='danger'] {
268
+ [data-ui-progress-indicator][data-part-root][data-tone='danger'] {
269
269
  --_ink: var(--slotted-progress-indicator-indicator-color, var(--slotted-tone-danger-text));
270
270
  }
271
271
 
272
- [data-ui='progress-indicator'][data-part='root'][data-buffered] {
272
+ [data-ui-progress-indicator][data-part-root][data-buffered] {
273
273
  --_buffer-color: var(
274
274
  --slotted-progress-indicator-buffer-color,
275
275
  color-mix(in oklab, var(--_ink) 52%, var(--slotted-surface))
@@ -286,14 +286,14 @@
286
286
  * component layer of the token contract stays as `avatar` left it.
287
287
  */
288
288
 
289
- [data-ui='progress-indicator'][data-part='root'][data-size='sm'] {
289
+ [data-ui-progress-indicator][data-part-root][data-size='sm'] {
290
290
  --_font-size: var(--slotted-control-font-size-sm, 12px);
291
291
  --_text-gap: var(--slotted-space-3, 0.375rem);
292
292
  --_thickness: var(--slotted-progress-indicator-thickness, var(--slotted-space-2, 0.25rem));
293
293
  --_size: var(--slotted-progress-indicator-size, var(--slotted-control-height-sm, 30px));
294
294
  }
295
295
 
296
- [data-ui='progress-indicator'][data-part='root'][data-size='lg'] {
296
+ [data-ui-progress-indicator][data-part-root][data-size='lg'] {
297
297
  --_font-size: var(--slotted-control-font-size-lg, 14px);
298
298
  --_row-gap: var(--slotted-space-4, 0.5rem);
299
299
  --_thickness: var(--slotted-progress-indicator-thickness, var(--slotted-space-4, 0.5rem));
@@ -313,7 +313,7 @@
313
313
  * character, so a grid column sized to its content collapses to that
314
314
  * character.
315
315
  */
316
- [data-ui='progress-indicator'] [data-part='label'] {
316
+ [data-ui-progress-indicator] [data-part-label] {
317
317
  color: var(--slotted-text, CanvasText);
318
318
  min-inline-size: 0;
319
319
  overflow-wrap: break-word;
@@ -326,7 +326,7 @@
326
326
  * is the muted step, because the number annotates the bar rather than
327
327
  * naming it.
328
328
  */
329
- [data-ui='progress-indicator'] [data-part='value'] {
329
+ [data-ui-progress-indicator] [data-part-value] {
330
330
  color: var(--slotted-text-muted, GrayText);
331
331
  font-variant-numeric: tabular-nums;
332
332
  white-space: nowrap;
@@ -344,7 +344,7 @@
344
344
  * inline end, which is the right edge of an English page and the left edge
345
345
  * of an Arabic one, with no mirrored rule to write.
346
346
  */
347
- [data-ui='progress-indicator'][data-part='root'][data-shape='linear'] {
347
+ [data-ui-progress-indicator][data-part-root][data-shape='linear'] {
348
348
  align-items: baseline;
349
349
  column-gap: var(--_text-gap);
350
350
  display: grid;
@@ -352,16 +352,16 @@
352
352
  row-gap: var(--_row-gap);
353
353
  }
354
354
 
355
- [data-ui='progress-indicator'][data-shape='linear'] > [data-part='label'] {
355
+ [data-ui-progress-indicator][data-shape='linear'] > [data-part-label] {
356
356
  grid-column: 1;
357
357
  }
358
358
 
359
- [data-ui='progress-indicator'][data-shape='linear'] > [data-part='value'] {
359
+ [data-ui-progress-indicator][data-shape='linear'] > [data-part-value] {
360
360
  grid-column: 2;
361
361
  justify-self: end;
362
362
  }
363
363
 
364
- [data-ui='progress-indicator'][data-shape='linear'] > [data-part='track'] {
364
+ [data-ui-progress-indicator][data-shape='linear'] > [data-part-track] {
365
365
  grid-column: 1 / -1;
366
366
  }
367
367
 
@@ -379,7 +379,7 @@
379
379
  * block axis has to let a crest out. A single `clip` is what sliced the
380
380
  * crests flat in the first capture of this family.
381
381
  */
382
- [data-ui='progress-indicator'][data-shape='linear'] [data-part='track'] {
382
+ [data-ui-progress-indicator][data-shape='linear'] [data-part-track] {
383
383
  background-color: var(--_buffer-color);
384
384
  block-size: var(--_thickness);
385
385
  border-radius: var(--_radius);
@@ -397,7 +397,7 @@
397
397
  * notch — the shape M3 took in 2024 and the one no other surveyed
398
398
  * implementation draws.
399
399
  */
400
- [data-ui='progress-indicator'][data-shape='linear'] [data-part='track']::before {
400
+ [data-ui-progress-indicator][data-shape='linear'] [data-part-track]::before {
401
401
  background-color: var(--_track-color);
402
402
  border-radius: inherit;
403
403
  content: '';
@@ -413,7 +413,7 @@
413
413
  * and it is the detail that makes a bar at four per cent read as four per
414
414
  * cent of something rather than as a stray mark.
415
415
  */
416
- [data-ui='progress-indicator'][data-shape='linear'] [data-part='track']::after {
416
+ [data-ui-progress-indicator][data-shape='linear'] [data-part-track]::after {
417
417
  background-color: var(--_ink);
418
418
  border-radius: var(--slotted-radius-full, 9999px);
419
419
  content: '';
@@ -423,7 +423,7 @@
423
423
  position: absolute;
424
424
  }
425
425
 
426
- [data-ui='progress-indicator'][data-shape='linear'] [data-part='indicator'] {
426
+ [data-ui-progress-indicator][data-shape='linear'] [data-part-indicator] {
427
427
  background-color: var(--_ink);
428
428
  block-size: 100%;
429
429
  border-radius: inherit;
@@ -446,8 +446,8 @@
446
446
  * way along it. Keyed on the number, it goes when the fill arrives.
447
447
  */
448
448
  @container style(--slotted-progress-indicator-percent: 100) {
449
- [data-ui='progress-indicator'][data-shape='linear'] [data-part='track']::before,
450
- [data-ui='progress-indicator'][data-shape='linear'] [data-part='track']::after {
449
+ [data-ui-progress-indicator][data-shape='linear'] [data-part-track]::before,
450
+ [data-ui-progress-indicator][data-shape='linear'] [data-part-track]::after {
451
451
  content: none;
452
452
  }
453
453
  }
@@ -459,17 +459,15 @@
459
459
  * one replaces recorded, and `inset-inline-start` is why a translation runs
460
460
  * the way the document reads instead of the way the screen does.
461
461
  */
462
- [data-ui='progress-indicator'][data-shape='linear'][data-indeterminate]
463
- [data-part='track']::before {
462
+ [data-ui-progress-indicator][data-shape='linear'][data-indeterminate] [data-part-track]::before {
464
463
  inset-inline-start: 0;
465
464
  }
466
465
 
467
- [data-ui='progress-indicator'][data-shape='linear'][data-indeterminate]
468
- [data-part='track']::after {
466
+ [data-ui-progress-indicator][data-shape='linear'][data-indeterminate] [data-part-track]::after {
469
467
  content: none;
470
468
  }
471
469
 
472
- [data-ui='progress-indicator'][data-shape='linear'][data-indeterminate] [data-part='indicator'] {
470
+ [data-ui-progress-indicator][data-shape='linear'][data-indeterminate] [data-part-indicator] {
473
471
  animation: slotted-progress-indicator-travel var(--slotted-duration-loop-slow)
474
472
  var(--slotted-easing-standard) infinite;
475
473
  inline-size: calc(1% * var(--slotted-progress-indicator-travel-size));
@@ -515,7 +513,7 @@
515
513
  * The stacking layer is a token, so an application's own stacking contract
516
514
  * still decides. Every router progress bar in the field types a number here.
517
515
  */
518
- [data-ui='progress-indicator'][data-part='root'][data-placement='page'] {
516
+ [data-ui-progress-indicator][data-part-root][data-placement='page'] {
519
517
  --_radius: var(--slotted-progress-indicator-radius, var(--slotted-radius-none, 0px));
520
518
  --_track-color: var(--slotted-progress-indicator-track-color, transparent);
521
519
  --_gap: var(--slotted-progress-indicator-gap, 0);
@@ -526,7 +524,7 @@
526
524
  z-index: var(--slotted-z-index-sticky, 100);
527
525
  }
528
526
 
529
- [data-ui='progress-indicator'][data-placement='page'] [data-part='track']::after {
527
+ [data-ui-progress-indicator][data-placement='page'] [data-part-track]::after {
530
528
  content: none;
531
529
  }
532
530
 
@@ -548,7 +546,7 @@
548
546
  * the edge. `app-shell` writes it for a content region that scrolls with
549
547
  * the document. It is a composition value, not a design token.
550
548
  */
551
- [data-ui='progress-indicator'][data-part='root']:is(
549
+ [data-ui-progress-indicator][data-part-root]:is(
552
550
  [data-placement='edge-start'],
553
551
  [data-placement='edge-end']
554
552
  ) {
@@ -560,16 +558,16 @@
560
558
  position: var(--slotted-progress-indicator-position, absolute);
561
559
  }
562
560
 
563
- [data-ui='progress-indicator'][data-part='root'][data-placement='edge-start'] {
561
+ [data-ui-progress-indicator][data-part-root][data-placement='edge-start'] {
564
562
  inset-block-start: 0;
565
563
  }
566
564
 
567
- [data-ui='progress-indicator'][data-part='root'][data-placement='edge-end'] {
565
+ [data-ui-progress-indicator][data-part-root][data-placement='edge-end'] {
568
566
  inset-block-end: 0;
569
567
  }
570
568
 
571
- [data-ui='progress-indicator']:is([data-placement='edge-start'], [data-placement='edge-end'])
572
- [data-part='track']::after {
569
+ [data-ui-progress-indicator]:is([data-placement='edge-start'], [data-placement='edge-end'])
570
+ [data-part-track]::after {
573
571
  content: none;
574
572
  }
575
573
 
@@ -596,7 +594,7 @@
596
594
  * back into its edge rather than on the frame it is asked to. The theme
597
595
  * collapses both steps under `prefers-reduced-motion`.
598
596
  */
599
- [data-ui='progress-indicator'][data-part='root']:is(
597
+ [data-ui-progress-indicator][data-part-root]:is(
600
598
  [data-placement='page'],
601
599
  [data-placement='edge-start'],
602
600
  [data-placement='edge-end']
@@ -616,11 +614,11 @@
616
614
  }
617
615
  }
618
616
 
619
- [data-ui='progress-indicator'][data-part='root'][data-placement='edge-end'] {
617
+ [data-ui-progress-indicator][data-part-root][data-placement='edge-end'] {
620
618
  --_withdrawn: inset(100% 0 0 0);
621
619
  }
622
620
 
623
- [data-ui='progress-indicator'][data-part='root']:is(
621
+ [data-ui-progress-indicator][data-part-root]:is(
624
622
  [data-placement='page'],
625
623
  [data-placement='edge-start'],
626
624
  [data-placement='edge-end']
@@ -642,8 +640,8 @@
642
640
  * centred in it would be four-pixel type. Ant Design and MUI both put it
643
641
  * inside because both draw rings twice this size.
644
642
  */
645
- [data-ui='progress-indicator'][data-part='root'][data-shape='circular'],
646
- [data-ui='progress-indicator'][data-part='root'][data-shape='morph'] {
643
+ [data-ui-progress-indicator][data-part-root][data-shape='circular'],
644
+ [data-ui-progress-indicator][data-part-root][data-shape='morph'] {
647
645
  align-items: center;
648
646
  column-gap: var(--_text-gap);
649
647
  display: inline-flex;
@@ -657,7 +655,7 @@
657
655
  * and this family's circle are the same object, and Button can stop drawing
658
656
  * its own.
659
657
  */
660
- [data-ui='progress-indicator'][data-shape='circular'] svg {
658
+ [data-ui-progress-indicator][data-shape='circular'] svg {
661
659
  --_stroke: var(--slotted-progress-indicator-stroke, 6);
662
660
 
663
661
  block-size: var(--_size);
@@ -669,8 +667,8 @@
669
667
  rotate: -90deg;
670
668
  }
671
669
 
672
- [data-ui='progress-indicator'][data-shape='circular'] [data-part='track'],
673
- [data-ui='progress-indicator'][data-shape='circular'] [data-part='indicator'] {
670
+ [data-ui-progress-indicator][data-shape='circular'] [data-part-track],
671
+ [data-ui-progress-indicator][data-shape='circular'] [data-part-indicator] {
674
672
  fill: none;
675
673
  stroke-linecap: round;
676
674
  stroke-width: var(--_stroke);
@@ -680,7 +678,7 @@
680
678
  it by a second smoothing. */
681
679
  }
682
680
 
683
- [data-ui='progress-indicator'][data-shape='circular'] [data-part='indicator'] {
681
+ [data-ui-progress-indicator][data-shape='circular'] [data-part-indicator] {
684
682
  stroke: var(--_ink);
685
683
  stroke-dasharray: var(--_percent) 100;
686
684
  /**
@@ -698,7 +696,7 @@
698
696
  * path is four device pixels of a 44-pixel ring, which is the gap M3
699
697
  * specifies for the bar.
700
698
  */
701
- [data-ui='progress-indicator'][data-shape='circular'] [data-part='track'] {
699
+ [data-ui-progress-indicator][data-shape='circular'] [data-part-track] {
702
700
  /**
703
701
  * Three and two tenths of the path is four device pixels of a 44-pixel
704
702
  * ring, and it collapses to nothing at nought per cent by the same clamp
@@ -720,7 +718,7 @@
720
718
  * travel, not the stated value.
721
719
  */
722
720
  @container style(--slotted-progress-indicator-percent: 100) {
723
- [data-ui='progress-indicator'][data-shape='circular'] [data-part='track'] {
721
+ [data-ui-progress-indicator][data-shape='circular'] [data-part-track] {
724
722
  stroke: transparent;
725
723
  }
726
724
  }
@@ -735,16 +733,15 @@
735
733
  * do not divide into each other, so the sweep never repeats the same shape
736
734
  * in the same orientation.
737
735
  */
738
- [data-ui='progress-indicator'][data-shape='circular'][data-indeterminate] [data-part='track'] {
736
+ [data-ui-progress-indicator][data-shape='circular'][data-indeterminate] [data-part-track] {
739
737
  stroke: transparent;
740
738
  }
741
739
 
742
- [data-ui='progress-indicator'][data-shape='circular'][data-indeterminate] svg {
740
+ [data-ui-progress-indicator][data-shape='circular'][data-indeterminate] svg {
743
741
  animation: slotted-progress-indicator-turn var(--slotted-duration-loop) linear infinite;
744
742
  }
745
743
 
746
- [data-ui='progress-indicator'][data-shape='circular'][data-indeterminate]
747
- [data-part='indicator'] {
744
+ [data-ui-progress-indicator][data-shape='circular'][data-indeterminate] [data-part-indicator] {
748
745
  animation: slotted-progress-indicator-sweep var(--slotted-duration-loop-slow)
749
746
  var(--slotted-easing-standard) infinite;
750
747
  stroke-opacity: 1;
@@ -818,7 +815,7 @@
818
815
  * at fast and slow loads, and the geometry below carries the sign once per
819
816
  * shape.
820
817
  */
821
- [data-ui='progress-indicator'][data-part='root'][data-wave] {
818
+ [data-ui-progress-indicator][data-part-root][data-wave] {
822
819
  --slotted-progress-indicator-wave-amplitude: min(
823
820
  clamp(0, calc((var(--_percent) - 6) / 10), 1),
824
821
  clamp(0, calc((96 - var(--_percent)) / 12), 1)
@@ -832,7 +829,7 @@
832
829
  * throughout, which is what M3 draws: `hasWavyEffect(isDeterminate)` is the
833
830
  * flag that separates the two.
834
831
  */
835
- [data-ui='progress-indicator'][data-part='root'][data-wave][data-indeterminate] {
832
+ [data-ui-progress-indicator][data-part-root][data-wave][data-indeterminate] {
836
833
  --slotted-progress-indicator-wave-amplitude: 1;
837
834
  }
838
835
 
@@ -862,12 +859,12 @@
862
859
  * container the path measures itself against: `cqi` is how a dash stated in
863
860
  * thicknesses learns how many thicknesses the track is.
864
861
  */
865
- [data-ui='progress-indicator'][data-shape='linear'][data-wave] [data-part='track'] {
862
+ [data-ui-progress-indicator][data-shape='linear'][data-wave] [data-part-track] {
866
863
  container-type: inline-size;
867
864
  margin-block: calc(0.75 * var(--_thickness));
868
865
  }
869
866
 
870
- [data-ui='progress-indicator'][data-shape='linear'][data-wave] [data-part='indicator'] {
867
+ [data-ui-progress-indicator][data-shape='linear'][data-wave] [data-part-indicator] {
871
868
  /** One wavelength, in thicknesses. */
872
869
  --_wave-length: 10;
873
870
 
@@ -888,7 +885,7 @@
888
885
  * anchored to the inline start, and its centre is the one point that stays
889
886
  * inside the track.
890
887
  */
891
- [data-ui='progress-indicator'][data-shape='linear'][data-wave] [data-part='indicator']:dir(rtl) {
888
+ [data-ui-progress-indicator][data-shape='linear'][data-wave] [data-part-indicator]:dir(rtl) {
892
889
  transform: scaleX(-1);
893
890
  }
894
891
 
@@ -915,7 +912,7 @@
915
912
  * one thickness, and at nought it is not painted at all, by the same clamp
916
913
  * the ring uses on its own cap.
917
914
  */
918
- [data-ui='progress-indicator'][data-shape='linear'][data-wave] [data-part='indicator'] path {
915
+ [data-ui-progress-indicator][data-shape='linear'][data-wave] [data-part-indicator] path {
919
916
  /** The track's length, in thicknesses: a ratio of two lengths, read as a number. */
920
917
  --_track-units: tan(atan2(100cqi, var(--_thickness)));
921
918
  --_window-start: 0;
@@ -941,8 +938,8 @@
941
938
  * says at every moment of the fill's own transition. An indeterminate bar
942
939
  * carries a different path and is left to the markup.
943
940
  */
944
- [data-ui='progress-indicator'][data-shape='linear'][data-wave]:not([data-indeterminate])
945
- [data-part='indicator']
941
+ [data-ui-progress-indicator][data-shape='linear'][data-wave]:not([data-indeterminate])
942
+ [data-part-indicator]
946
943
  path {
947
944
  animation: slotted-progress-indicator-flatten-bar var(--_scrub) var(--_taper) both paused;
948
945
  animation-delay: calc(
@@ -955,16 +952,16 @@
955
952
  * is unknown — `IndeterminateActiveWaveWavelength` — so the markup carries
956
953
  * the tighter path, and the window is the travelling bar's own two numbers.
957
954
  */
958
- [data-ui='progress-indicator'][data-shape='linear'][data-wave][data-indeterminate]
959
- [data-part='indicator'] {
955
+ [data-ui-progress-indicator][data-shape='linear'][data-wave][data-indeterminate]
956
+ [data-part-indicator] {
960
957
  --_wave-length: 5;
961
958
 
962
959
  animation: slotted-progress-indicator-travel var(--slotted-duration-loop-slow)
963
960
  var(--slotted-easing-standard) infinite;
964
961
  }
965
962
 
966
- [data-ui='progress-indicator'][data-shape='linear'][data-wave][data-indeterminate]
967
- [data-part='indicator']
963
+ [data-ui-progress-indicator][data-shape='linear'][data-wave][data-indeterminate]
964
+ [data-part-indicator]
968
965
  path {
969
966
  --_window-start: var(--slotted-progress-indicator-travel-start);
970
967
  --_window-size: var(--slotted-progress-indicator-travel-size);
@@ -984,7 +981,7 @@
984
981
  * wavy keeps its weight, and the crest may pass the viewBox by the tenth of
985
982
  * a unit the stroke needs.
986
983
  */
987
- [data-ui='progress-indicator'][data-shape='circular'][data-wave] svg {
984
+ [data-ui-progress-indicator][data-shape='circular'][data-wave] svg {
988
985
  --_stroke: var(--slotted-progress-indicator-stroke, 5);
989
986
 
990
987
  block-size: calc(1.2 * var(--_size));
@@ -1010,7 +1007,7 @@
1010
1007
  * far end fell into the gap as the pattern shifted, and a full ring opened
1011
1008
  * a hole at twelve o'clock.
1012
1009
  */
1013
- [data-ui='progress-indicator'][data-shape='circular'][data-wave] [data-part='indicator'] {
1010
+ [data-ui-progress-indicator][data-shape='circular'][data-wave] [data-part-indicator] {
1014
1011
  rotate: calc(-45deg * var(--slotted-progress-indicator-wave-phase));
1015
1012
  stroke-dasharray: var(--_percent) calc(100 - var(--_percent));
1016
1013
  stroke-dashoffset: calc(-12.5 * var(--slotted-progress-indicator-wave-phase));
@@ -1020,8 +1017,8 @@
1020
1017
  transform-origin: 50% 50%;
1021
1018
  }
1022
1019
 
1023
- [data-ui='progress-indicator'][data-shape='circular'][data-wave]:not([data-indeterminate])
1024
- [data-part='indicator'] {
1020
+ [data-ui-progress-indicator][data-shape='circular'][data-wave]:not([data-indeterminate])
1021
+ [data-part-indicator] {
1025
1022
  animation: slotted-progress-indicator-flatten-ring var(--_scrub) var(--_taper) both paused;
1026
1023
  animation-delay: calc(
1027
1024
  -1 * var(--_scrub) * (1 - var(--slotted-progress-indicator-wave-amplitude))
@@ -1046,7 +1043,7 @@
1046
1043
  * each pair must share a command list, and `progress.test.ts` holds both
1047
1044
  * copies to `@slotted/core/progress`.
1048
1045
  */
1049
- [data-ui='progress-indicator'][data-part='root'][data-wave] {
1046
+ [data-ui-progress-indicator][data-part-root][data-wave] {
1050
1047
  --_scrub: var(--slotted-duration-long);
1051
1048
  --_taper: cubic-bezier(0.45, 0, 0.55, 1);
1052
1049
  }
@@ -1090,7 +1087,7 @@
1090
1087
  * never shows the same shape in the same orientation twice — which is what
1091
1088
  * makes a five-second wait bearable to watch and a spinning ring not.
1092
1089
  */
1093
- [data-ui='progress-indicator'][data-shape='morph'] [data-part='track'] {
1090
+ [data-ui-progress-indicator][data-shape='morph'] [data-part-track] {
1094
1091
  block-size: var(--_size);
1095
1092
  border-radius: var(--slotted-radius-full, 9999px);
1096
1093
  display: grid;
@@ -1106,7 +1103,7 @@
1106
1103
  * pair the bar's own track holds and clears the 3:1 the loading indicator
1107
1104
  * documentation asks for between a contained shape and its container.
1108
1105
  */
1109
- [data-ui='progress-indicator'][data-shape='morph'][data-contained] [data-part='track'] {
1106
+ [data-ui-progress-indicator][data-shape='morph'][data-contained] [data-part-track] {
1110
1107
  background-color: var(--_track-color);
1111
1108
  }
1112
1109
 
@@ -1137,7 +1134,7 @@
1137
1134
  * each target and settle. Both animations take it, at the same period and on
1138
1135
  * the same keyframe boundaries, because in M3 they are one spring.
1139
1136
  */
1140
- [data-ui='progress-indicator'][data-shape='morph'] [data-part='track'] {
1137
+ [data-ui-progress-indicator][data-shape='morph'] [data-part-track] {
1141
1138
  animation: slotted-progress-indicator-drift calc(2 * var(--slotted-duration-loop-slow)) linear
1142
1139
  infinite;
1143
1140
  }
@@ -1151,7 +1148,7 @@
1151
1148
  * hurry, and a multiple of one inherits that where a fourth token would be a
1152
1149
  * scale step added for a single family.
1153
1150
  */
1154
- [data-ui='progress-indicator'][data-shape='morph'] [data-part='indicator'] {
1151
+ [data-ui-progress-indicator][data-shape='morph'] [data-part-indicator] {
1155
1152
  animation:
1156
1153
  slotted-progress-indicator-morph calc(2 * var(--slotted-duration-loop-slow))
1157
1154
  var(--slotted-easing-emphasized) infinite,
@@ -1177,7 +1174,7 @@
1177
1174
  * pixels. `round()` is what states that, and it states it once for the three
1178
1175
  * steps rather than as three numbers.
1179
1176
  */
1180
- [data-ui='progress-indicator'][data-shape='morph'][data-contained] [data-part='indicator'] {
1177
+ [data-ui-progress-indicator][data-shape='morph'][data-contained] [data-part-indicator] {
1181
1178
  --_shape: round(nearest, calc(0.79 * var(--_size)), 2px);
1182
1179
 
1183
1180
  block-size: var(--_shape);
@@ -1469,10 +1466,10 @@
1469
1466
  * `path` is left out: the wave's paths carry the paused ramp below, which
1470
1467
  * is a value and survives.
1471
1468
  */
1472
- [data-ui='progress-indicator'][data-part='root'],
1473
- [data-ui='progress-indicator'] [data-part='indicator']:not(path),
1474
- [data-ui='progress-indicator'] [data-part='track'],
1475
- [data-ui='progress-indicator'] svg {
1469
+ [data-ui-progress-indicator][data-part-root],
1470
+ [data-ui-progress-indicator] [data-part-indicator]:not(path),
1471
+ [data-ui-progress-indicator] [data-part-track],
1472
+ [data-ui-progress-indicator] svg {
1476
1473
  animation: none !important;
1477
1474
  }
1478
1475
 
@@ -1482,8 +1479,7 @@
1482
1479
  * than as a value: pinned to either end it would read as nought per cent
1483
1480
  * or as a hundred, which is a number this indicator does not have.
1484
1481
  */
1485
- [data-ui='progress-indicator'][data-shape='linear'][data-indeterminate]
1486
- [data-part='indicator'] {
1482
+ [data-ui-progress-indicator][data-shape='linear'][data-indeterminate] [data-part-indicator] {
1487
1483
  --slotted-progress-indicator-travel-size: 46;
1488
1484
  --slotted-progress-indicator-travel-start: 27;
1489
1485
  }
@@ -1493,8 +1489,7 @@
1493
1489
  * is unmistakably a fraction of something rather than a full circle or an
1494
1490
  * empty one.
1495
1491
  */
1496
- [data-ui='progress-indicator'][data-shape='circular'][data-indeterminate]
1497
- [data-part='indicator'] {
1492
+ [data-ui-progress-indicator][data-shape='circular'][data-indeterminate] [data-part-indicator] {
1498
1493
  stroke-dasharray: 34 100;
1499
1494
  }
1500
1495
 
@@ -1503,7 +1498,7 @@
1503
1498
  * range survives, because it is a value rather than motion: a ring at four
1504
1499
  * per cent is a circle whether or not anything moves.
1505
1500
  */
1506
- [data-ui='progress-indicator'][data-part='root'][data-wave] {
1501
+ [data-ui-progress-indicator][data-part-root][data-wave] {
1507
1502
  animation: none;
1508
1503
  }
1509
1504
  }
@@ -1525,14 +1520,14 @@
1525
1520
  * with it, and a gap is a refinement rather than a meaning.
1526
1521
  */
1527
1522
  @media (forced-colors: active) {
1528
- [data-ui='progress-indicator'][data-shape='linear'] [data-part='track'] {
1523
+ [data-ui-progress-indicator][data-shape='linear'] [data-part-track] {
1529
1524
  background-color: Canvas;
1530
1525
  outline: var(--slotted-border-width-thin, 1px) solid ButtonBorder;
1531
1526
  outline-offset: calc(-1 * var(--slotted-border-width-thin, 1px));
1532
1527
  }
1533
1528
 
1534
- [data-ui='progress-indicator'][data-shape='linear'] [data-part='track']::before,
1535
- [data-ui='progress-indicator'][data-shape='linear'] [data-part='track']::after {
1529
+ [data-ui-progress-indicator][data-shape='linear'] [data-part-track]::before,
1530
+ [data-ui-progress-indicator][data-shape='linear'] [data-part-track]::after {
1536
1531
  content: none;
1537
1532
  }
1538
1533
 
@@ -1541,13 +1536,13 @@
1541
1536
  * draws its edge in a system colour, and an outline here would be a
1542
1537
  * second line beside the first.
1543
1538
  */
1544
- [data-ui='progress-indicator']:is([data-placement='edge-start'], [data-placement='edge-end'])
1545
- [data-part='track'] {
1539
+ [data-ui-progress-indicator]:is([data-placement='edge-start'], [data-placement='edge-end'])
1540
+ [data-part-track] {
1546
1541
  background-color: transparent;
1547
1542
  outline: none;
1548
1543
  }
1549
1544
 
1550
- [data-ui='progress-indicator'] [data-part='indicator'] {
1545
+ [data-ui-progress-indicator] [data-part-indicator] {
1551
1546
  background-color: Highlight;
1552
1547
  }
1553
1548
 
@@ -1556,20 +1551,20 @@
1556
1551
  * way the ring does: the box behind it stays clear and the path takes
1557
1552
  * the highlight.
1558
1553
  */
1559
- [data-ui='progress-indicator'][data-shape='linear'][data-wave] [data-part='indicator'] {
1554
+ [data-ui-progress-indicator][data-shape='linear'][data-wave] [data-part-indicator] {
1560
1555
  background-color: transparent;
1561
1556
  }
1562
1557
 
1563
- [data-ui='progress-indicator'][data-shape='linear'][data-wave] [data-part='indicator'] path {
1558
+ [data-ui-progress-indicator][data-shape='linear'][data-wave] [data-part-indicator] path {
1564
1559
  stroke: Highlight;
1565
1560
  }
1566
1561
 
1567
- [data-ui='progress-indicator'][data-shape='circular'] [data-part='indicator'] {
1562
+ [data-ui-progress-indicator][data-shape='circular'] [data-part-indicator] {
1568
1563
  background-color: transparent;
1569
1564
  stroke: Highlight;
1570
1565
  }
1571
1566
 
1572
- [data-ui='progress-indicator'][data-shape='circular'] [data-part='track'] {
1567
+ [data-ui-progress-indicator][data-shape='circular'] [data-part-track] {
1573
1568
  stroke: ButtonBorder;
1574
1569
  }
1575
1570
 
@@ -1578,7 +1573,7 @@
1578
1573
  * loader exists — and loses the container behind it, which in a forced
1579
1574
  * palette would be a `Canvas` disc on a `Canvas` page.
1580
1575
  */
1581
- [data-ui='progress-indicator'][data-shape='morph'][data-contained] [data-part='track'] {
1576
+ [data-ui-progress-indicator][data-shape='morph'][data-contained] [data-part-track] {
1582
1577
  background-color: Canvas;
1583
1578
  }
1584
1579
  }