@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
@@ -41,7 +41,7 @@
41
41
  * the name that says so, which is the convention `docs/build-briefing.md`
42
42
  * sets. They are not design tokens and no theme writes them.
43
43
  */
44
- [data-ui='segmented-control'][data-part='root'] {
44
+ [data-ui-segmented-control][data-part-root] {
45
45
  --_count: var(--slotted-segmented-control-count, 1);
46
46
  --_index: var(--slotted-segmented-control-index, 0);
47
47
  --_height: var(--slotted-control-height-md, 34px);
@@ -112,13 +112,13 @@
112
112
  position: relative;
113
113
  }
114
114
 
115
- [data-ui='segmented-control'][data-part='root']:empty {
115
+ [data-ui-segmented-control][data-part-root]:empty {
116
116
  display: none;
117
117
  }
118
118
 
119
119
  /* ── Size ─────────────────────────────────────────────────────────────── */
120
120
 
121
- [data-ui='segmented-control'][data-part='root'][data-size='sm'] {
121
+ [data-ui-segmented-control][data-part-root][data-size='sm'] {
122
122
  --_height: var(--slotted-control-height-sm, 30px);
123
123
  --_padding-inline: var(--slotted-control-padding-inline-sm, 10px);
124
124
  --_font-size: var(--slotted-control-font-size-sm, 12px);
@@ -126,7 +126,7 @@
126
126
  --_gap: var(--slotted-control-gap-sm, 6px);
127
127
  }
128
128
 
129
- [data-ui='segmented-control'][data-part='root'][data-size='lg'] {
129
+ [data-ui-segmented-control][data-part-root][data-size='lg'] {
130
130
  --_height: var(--slotted-control-height-lg, 38px);
131
131
  --_padding-inline: var(--slotted-control-padding-inline-lg, 16px);
132
132
  --_font-size: var(--slotted-control-font-size-lg, 14px);
@@ -136,13 +136,13 @@
136
136
 
137
137
  /* ── Orientation and width ────────────────────────────────────────────── */
138
138
 
139
- [data-ui='segmented-control'][data-part='root'][data-orientation='vertical'] {
139
+ [data-ui-segmented-control][data-part-root][data-orientation='vertical'] {
140
140
  grid-auto-columns: auto;
141
141
  grid-auto-flow: row;
142
142
  grid-auto-rows: minmax(0, 1fr);
143
143
  }
144
144
 
145
- [data-ui='segmented-control'][data-part='root'][data-full-width] {
145
+ [data-ui-segmented-control][data-part-root][data-full-width] {
146
146
  display: grid;
147
147
  inline-size: 100%;
148
148
  }
@@ -164,7 +164,7 @@
164
164
  * words at a width it chose for itself is a question with no answer — it
165
165
  * chose a width that fits them.
166
166
  */
167
- [data-ui='segmented-control'][data-part='root'][data-condense='icons'] {
167
+ [data-ui-segmented-control][data-part-root][data-condense='icons'] {
168
168
  container-name: slotted-segmented-control;
169
169
  container-type: inline-size;
170
170
  display: grid;
@@ -173,7 +173,7 @@
173
173
 
174
174
  /* ── The segment ──────────────────────────────────────────────────────── */
175
175
 
176
- [data-ui='segmented-control'] [data-part='item'] {
176
+ [data-ui-segmented-control] [data-part-item] {
177
177
  align-items: center;
178
178
  block-size: var(--_inner);
179
179
  border-radius: var(--_thumb-radius);
@@ -218,7 +218,7 @@
218
218
  }
219
219
 
220
220
  /** The hover and press ground, under the thumb; see the segment above. */
221
- [data-ui='segmented-control'] [data-part='item']::after {
221
+ [data-ui-segmented-control] [data-part-item]::after {
222
222
  background: transparent;
223
223
  border-radius: inherit;
224
224
  content: '';
@@ -231,11 +231,11 @@
231
231
 
232
232
  /* An empty label is no label: a binding that always renders the span must
233
233
  not leave a flex gap after the icon of a segment without words. */
234
- [data-ui='segmented-control'] [data-part='item']:not(:has([data-part='label']:not(:empty))) {
234
+ [data-ui-segmented-control] [data-part-item]:not(:has([data-part-label]:not(:empty))) {
235
235
  padding-inline: 0;
236
236
  }
237
237
 
238
- [data-ui='segmented-control'] [data-part='label']:empty {
238
+ [data-ui-segmented-control] [data-part-label]:empty {
239
239
  display: none;
240
240
  }
241
241
 
@@ -254,7 +254,7 @@
254
254
  * ground would otherwise meet it. It lies under the thumb, so a thumb that
255
255
  * crosses it while sliding passes over it.
256
256
  */
257
- [data-ui='segmented-control'] [data-part='item'] + [data-part='item']::before {
257
+ [data-ui-segmented-control] [data-part-item] + [data-part-item]::before {
258
258
  /* No system colour behind it: an unthemed decoration disappears rather
259
259
  than shouting, which is what `fallbacks.test.mjs` holds a pseudo-element
260
260
  to. In forced colours the thumb's own edge is what divides. */
@@ -272,22 +272,22 @@
272
272
  z-index: -1;
273
273
  }
274
274
 
275
- [data-ui='segmented-control'][data-part='root'][data-orientation='vertical']
276
- [data-part='item']
277
- + [data-part='item']::before {
275
+ [data-ui-segmented-control][data-part-root][data-orientation='vertical']
276
+ [data-part-item]
277
+ + [data-part-item]::before {
278
278
  block-size: var(--_border-width);
279
279
  inline-size: auto;
280
280
  inset-block: calc((var(--_spacing) + var(--_border-width)) / -2) auto;
281
281
  inset-inline: 25%;
282
282
  }
283
283
 
284
- [data-ui='segmented-control'] [data-part='item'][data-checked]::before,
285
- [data-ui='segmented-control'] [data-part='item'][data-checked] + [data-part='item']::before,
286
- [data-ui='segmented-control'][data-part='root']:not([data-readonly])
287
- [data-part='item']:hover:has([data-part='control']:enabled)::before,
288
- [data-ui='segmented-control'][data-part='root']:not([data-readonly])
289
- [data-part='item']:hover:has([data-part='control']:enabled)
290
- + [data-part='item']::before {
284
+ [data-ui-segmented-control] [data-part-item][data-checked]::before,
285
+ [data-ui-segmented-control] [data-part-item][data-checked] + [data-part-item]::before,
286
+ [data-ui-segmented-control][data-part-root]:not([data-readonly])
287
+ [data-part-item]:hover:has([data-part-control]:enabled)::before,
288
+ [data-ui-segmented-control][data-part-root]:not([data-readonly])
289
+ [data-part-item]:hover:has([data-part-control]:enabled)
290
+ + [data-part-item]::before {
291
291
  opacity: 0;
292
292
  }
293
293
 
@@ -298,7 +298,7 @@
298
298
  * thumb's — which is what keeps the smallest step at the tightest density
299
299
  * above the WCAG minimum.
300
300
  */
301
- [data-ui='segmented-control'] [data-part='control'] {
301
+ [data-ui-segmented-control] [data-part-control] {
302
302
  appearance: none;
303
303
  background: none;
304
304
  border: 0;
@@ -314,7 +314,7 @@
314
314
  position: absolute;
315
315
  }
316
316
 
317
- [data-ui='segmented-control'] [data-part='icon'] {
317
+ [data-ui-segmented-control] [data-part-icon] {
318
318
  block-size: var(--_icon-size);
319
319
  display: inline-flex;
320
320
  flex: none;
@@ -326,7 +326,7 @@
326
326
  * narrow clips rather than wrapping the segment onto a second line. The
327
327
  * string stays whole in the DOM: truncation never removes content.
328
328
  */
329
- [data-ui='segmented-control'] [data-part='label'] {
329
+ [data-ui-segmented-control] [data-part-label] {
330
330
  /* Clipped along the line only: `hidden` on a one-line box cut the
331
331
  descenders and the accents above the cap height. A clipped box is not a
332
332
  scroll container, so the flex minimum is given back by hand, or the words
@@ -361,7 +361,7 @@
361
361
  * it in where it belongs rather than sliding it from an edge the reader has
362
362
  * never seen — which is what Mantine does.
363
363
  */
364
- [data-ui='segmented-control'] [data-part='indicator'] {
364
+ [data-ui-segmented-control] [data-part-indicator] {
365
365
  /* A raised surface with a hairline and the lightest elevation: the chosen
366
366
  segment sits on the track rather than being painted into it. In a dark
367
367
  scheme the raised surface is darker than the tinted track, and a thumb
@@ -404,12 +404,11 @@
404
404
  }
405
405
  }
406
406
 
407
- [data-ui='segmented-control'] [data-part='indicator']:dir(rtl) {
407
+ [data-ui-segmented-control] [data-part-indicator]:dir(rtl) {
408
408
  translate: calc(var(--_index) * (-100% - var(--_spacing)));
409
409
  }
410
410
 
411
- [data-ui='segmented-control'][data-part='root'][data-orientation='vertical']
412
- [data-part='indicator'] {
411
+ [data-ui-segmented-control][data-part-root][data-orientation='vertical'] [data-part-indicator] {
413
412
  block-size: calc(
414
413
  (100% - var(--_inset) * 2 - var(--_spacing) * (var(--_count) - 1)) / var(--_count)
415
414
  );
@@ -425,7 +424,7 @@
425
424
  * was, because a label that thickens when it is chosen moves every label
426
425
  * beside it.
427
426
  */
428
- [data-ui='segmented-control'] [data-part='item'][data-checked] {
427
+ [data-ui-segmented-control] [data-part-item][data-checked] {
429
428
  color: var(--slotted-segmented-control-checked-color, var(--slotted-text, CanvasText));
430
429
  }
431
430
 
@@ -440,9 +439,9 @@
440
439
  * records — a tinted hover on a row of choices reads as a row of status
441
440
  * chips before it reads as one of them being pointed at.
442
441
  */
443
- [data-ui='segmented-control'][data-part='root']:not([data-readonly])
444
- [data-part='item']:hover:not([data-disabled]):not([data-checked]):has(
445
- [data-part='control']:enabled
442
+ [data-ui-segmented-control][data-part-root]:not([data-readonly])
443
+ [data-part-item]:hover:not([data-disabled]):not([data-checked]):has(
444
+ [data-part-control]:enabled
446
445
  )::after {
447
446
  background: var(
448
447
  --slotted-segmented-control-hover-background,
@@ -455,9 +454,9 @@
455
454
  * own pace, which is the rule every activating family here writes: the
456
455
  * duration belongs to the state being entered.
457
456
  */
458
- [data-ui='segmented-control'][data-part='root']:not([data-readonly])
459
- [data-part='item']:active:not([data-disabled]):not([data-checked]):has(
460
- [data-part='control']:enabled
457
+ [data-ui-segmented-control][data-part-root]:not([data-readonly])
458
+ [data-part-item]:active:not([data-disabled]):not([data-checked]):has(
459
+ [data-part-control]:enabled
461
460
  )::after {
462
461
  background: var(
463
462
  --slotted-segmented-control-active-background,
@@ -488,13 +487,13 @@
488
487
  * it, so a segment that is both checked and focused shows one ring rather
489
488
  * than a ring and a border a pixel apart.
490
489
  */
491
- [data-ui='segmented-control'] [data-part='item']:has([data-part='control']:focus-visible) {
490
+ [data-ui-segmented-control] [data-part-item]:has([data-part-control]:focus-visible) {
492
491
  outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
493
492
  outline-offset: calc(-1 * var(--slotted-focus-ring-width, 2px));
494
493
  z-index: 2;
495
494
  }
496
495
 
497
- [data-ui='segmented-control'] [data-part='control']:focus-visible {
496
+ [data-ui-segmented-control] [data-part-control]:focus-visible {
498
497
  outline: none;
499
498
  }
500
499
 
@@ -505,7 +504,7 @@
505
504
  * that draws one, which is what `--slotted-focus-ring-color-invalid` exists
506
505
  * for and what keeps the outline and its shadow the same colour.
507
506
  */
508
- [data-ui='segmented-control'][data-part='root'][data-invalid] {
507
+ [data-ui-segmented-control][data-part-root][data-invalid] {
509
508
  --slotted-focus-ring-color: var(
510
509
  --slotted-segmented-control-invalid-focus-ring-color,
511
510
  var(--slotted-focus-ring-color-invalid, Highlight)
@@ -541,14 +540,14 @@
541
540
  * legible, still focusable and still copyable, and it must not be mistaken
542
541
  * for a disabled one — which is what `docs/component-features.md` §2.5 asks.
543
542
  */
544
- [data-ui='segmented-control'][data-part='root'][data-readonly] [data-part='item'],
545
- [data-ui='segmented-control'][data-part='root'][data-readonly] [data-part='control'] {
543
+ [data-ui-segmented-control][data-part-root][data-readonly] [data-part-item],
544
+ [data-ui-segmented-control][data-part-root][data-readonly] [data-part-control] {
546
545
  cursor: default;
547
546
  }
548
547
 
549
548
  /* ── Disabled ─────────────────────────────────────────────────────────── */
550
549
 
551
- [data-ui='segmented-control'] [data-part='item'][data-disabled] {
550
+ [data-ui-segmented-control] [data-part-item][data-disabled] {
552
551
  color: var(
553
552
  --slotted-segmented-control-disabled-color,
554
553
  var(--slotted-disabled-foreground, GrayText)
@@ -556,7 +555,7 @@
556
555
  cursor: default;
557
556
  }
558
557
 
559
- [data-ui='segmented-control'] [data-part='control']:disabled {
558
+ [data-ui-segmented-control] [data-part-control]:disabled {
560
559
  cursor: default;
561
560
  }
562
561
 
@@ -568,14 +567,14 @@
568
567
  * is the ground the thumb is read against, so it is the one thing that has
569
568
  * to stay.
570
569
  */
571
- [data-ui='segmented-control'][data-part='root'][data-disabled] {
570
+ [data-ui-segmented-control][data-part-root][data-disabled] {
572
571
  border-color: var(
573
572
  --slotted-segmented-control-disabled-border-color,
574
573
  var(--slotted-disabled-border, GrayText)
575
574
  );
576
575
  }
577
576
 
578
- [data-ui='segmented-control'][data-part='root'][data-disabled] [data-part='indicator'] {
577
+ [data-ui-segmented-control][data-part-root][data-disabled] [data-part-indicator] {
579
578
  background: var(
580
579
  --slotted-segmented-control-disabled-indicator-background,
581
580
  var(--slotted-disabled-background, ButtonFace)
@@ -596,7 +595,7 @@
596
595
  * dividers, no ground — the underline is the mark, and it sits under the
597
596
  * word rather than on an edge of a box (R1).
598
597
  */
599
- [data-ui='segmented-control'][data-part='root'][data-variant='underline'] {
598
+ [data-ui-segmented-control][data-part-root][data-variant='underline'] {
600
599
  --_inner: var(--_height);
601
600
 
602
601
  background: none;
@@ -608,64 +607,63 @@
608
607
  padding: 0;
609
608
  }
610
609
 
611
- [data-ui='segmented-control'][data-part='root'][data-variant='underline'] [data-part='indicator'],
612
- [data-ui='segmented-control'][data-part='root'][data-variant='underline']
613
- [data-part='item']
614
- + [data-part='item']::before,
615
- [data-ui='segmented-control'][data-part='root'][data-variant='underline']
616
- [data-part='item']::after {
610
+ [data-ui-segmented-control][data-part-root][data-variant='underline'] [data-part-indicator],
611
+ [data-ui-segmented-control][data-part-root][data-variant='underline']
612
+ [data-part-item]
613
+ + [data-part-item]::before,
614
+ [data-ui-segmented-control][data-part-root][data-variant='underline'] [data-part-item]::after {
617
615
  display: none;
618
616
  }
619
617
 
620
- [data-ui='segmented-control'][data-part='root'][data-variant='underline'] [data-part='item'] {
618
+ [data-ui-segmented-control][data-part-root][data-variant='underline'] [data-part-item] {
621
619
  color: var(--slotted-segmented-control-underline-color, var(--slotted-text-muted, GrayText));
622
620
  font-weight: var(--slotted-font-weight-medium, 500);
623
621
  min-inline-size: var(--slotted-target-min, 24px);
624
622
  padding-inline: 0;
625
623
  }
626
624
 
627
- [data-ui='segmented-control'][data-part='root'][data-variant='underline']
628
- [data-part='item'][data-checked] {
625
+ [data-ui-segmented-control][data-part-root][data-variant='underline']
626
+ [data-part-item][data-checked] {
629
627
  color: var(
630
628
  --slotted-segmented-control-underline-checked-color,
631
629
  var(--slotted-text, CanvasText)
632
630
  );
633
631
  }
634
632
 
635
- [data-ui='segmented-control'][data-part='root'][data-variant='underline']
636
- [data-part='item'][data-checked]
637
- [data-part='label'] {
633
+ [data-ui-segmented-control][data-part-root][data-variant='underline']
634
+ [data-part-item][data-checked]
635
+ [data-part-label] {
638
636
  text-decoration-color: currentColor;
639
637
  text-decoration-line: underline;
640
638
  text-decoration-thickness: var(--slotted-border-width-thick, 2px);
641
639
  text-underline-offset: 0.35em;
642
640
  }
643
641
 
644
- [data-ui='segmented-control'][data-part='root'][data-variant='underline'][data-invalid]
645
- [data-part='item'][data-checked]
646
- [data-part='label'] {
642
+ [data-ui-segmented-control][data-part-root][data-variant='underline'][data-invalid]
643
+ [data-part-item][data-checked]
644
+ [data-part-label] {
647
645
  text-decoration-color: var(--slotted-tone-danger-border, CanvasText);
648
646
  }
649
647
 
650
- [data-ui='segmented-control'][data-part='root'][data-variant='underline']:not([data-readonly])
651
- [data-part='item']:hover:not([data-disabled]):not([data-checked]):has(
652
- [data-part='control']:enabled
648
+ [data-ui-segmented-control][data-part-root][data-variant='underline']:not([data-readonly])
649
+ [data-part-item]:hover:not([data-disabled]):not([data-checked]):has(
650
+ [data-part-control]:enabled
653
651
  ),
654
- [data-ui='segmented-control'][data-part='root'][data-variant='underline']:not([data-readonly])
655
- [data-part='item']:active:not([data-disabled]):not([data-checked]):has(
656
- [data-part='control']:enabled
652
+ [data-ui-segmented-control][data-part-root][data-variant='underline']:not([data-readonly])
653
+ [data-part-item]:active:not([data-disabled]):not([data-checked]):has(
654
+ [data-part-control]:enabled
657
655
  ) {
658
656
  background: none;
659
657
  color: var(--slotted-text, CanvasText);
660
658
  }
661
659
 
662
- [data-ui='segmented-control'][data-part='root'][data-variant='underline']
663
- [data-part='item']:has([data-part='control']:focus-visible) {
660
+ [data-ui-segmented-control][data-part-root][data-variant='underline']
661
+ [data-part-item]:has([data-part-control]:focus-visible) {
664
662
  outline-offset: var(--slotted-focus-ring-offset, 2px);
665
663
  }
666
664
 
667
- [data-ui='segmented-control'][data-part='root'][data-variant='underline']
668
- [data-part='item'][data-disabled] {
665
+ [data-ui-segmented-control][data-part-root][data-variant='underline']
666
+ [data-part-item][data-disabled] {
669
667
  color: var(--slotted-disabled-foreground, GrayText);
670
668
  }
671
669
 
@@ -682,9 +680,9 @@
682
680
  * because `@container (max-inline-size: var(--x))` is invalid CSS.
683
681
  */
684
682
  @container slotted-segmented-control (max-inline-size: 20rem) {
685
- [data-ui='segmented-control'][data-part='root'][data-condense='icons']
686
- [data-part='item']:has([data-part='icon'])
687
- [data-part='label'] {
683
+ [data-ui-segmented-control][data-part-root][data-condense='icons']
684
+ [data-part-item]:has([data-part-icon])
685
+ [data-part-label] {
688
686
  block-size: 1px;
689
687
  clip-path: inset(50%);
690
688
  inline-size: 1px;
@@ -693,8 +691,8 @@
693
691
  white-space: nowrap;
694
692
  }
695
693
 
696
- [data-ui='segmented-control'][data-part='root'][data-condense='icons']
697
- [data-part='item']:has([data-part='icon']) {
694
+ [data-ui-segmented-control][data-part-root][data-condense='icons']
695
+ [data-part-item]:has([data-part-icon]) {
698
696
  padding-inline: 0;
699
697
  }
700
698
  }
@@ -707,15 +705,15 @@
707
705
  @media (forced-colors: active) {
708
706
  /* The neutral track is a tint, and a tint flattens to Canvas: the edge
709
707
  says where the control is, and the thumb's edge says which is chosen. */
710
- [data-ui='segmented-control'][data-part='root']:not([data-variant='underline']) {
708
+ [data-ui-segmented-control][data-part-root]:not([data-variant='underline']) {
711
709
  border-color: ButtonBorder;
712
710
  }
713
711
 
714
- [data-ui='segmented-control'] [data-part='indicator'] {
712
+ [data-ui-segmented-control] [data-part-indicator] {
715
713
  border-color: Highlight;
716
714
  }
717
715
 
718
- [data-ui='segmented-control'][data-part='root'][data-invalid] {
716
+ [data-ui-segmented-control][data-part-root][data-invalid] {
719
717
  outline: var(--_invalid-edge-width) solid CanvasText;
720
718
  outline-offset: calc(-1 * (var(--_border-width) + var(--_invalid-edge-width)));
721
719
  }