@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
@@ -11,7 +11,7 @@
11
11
  * chooses its own width: it is a thing read beside a value, and the value's
12
12
  * container is what has the room. The height is the family's, by size step.
13
13
  */
14
- [data-ui='sparkline'] {
14
+ [data-ui-sparkline] {
15
15
  /* The height of the box, by size. Three steps of the space scale rather
16
16
  than of control geometry: a sparkline is content, not a control, and a
17
17
  dense table asks for `size="sm"` rather than for a shorter `md`. */
@@ -69,49 +69,49 @@
69
69
  vertical-align: middle;
70
70
  }
71
71
 
72
- [data-ui='sparkline'][data-size='sm'] {
72
+ [data-ui-sparkline][data-size='sm'] {
73
73
  --_size: var(--slotted-sparkline-block-size-sm, var(--slotted-space-7, 1.25rem));
74
74
  --_stroke: var(--slotted-sparkline-line-width-sm, var(--slotted-border-width-medium, 1.5px));
75
75
  --_marker: var(--slotted-sparkline-marker-size-sm, var(--slotted-space-2, 0.25rem));
76
76
  --_ring: var(--slotted-sparkline-ring-width-sm, var(--slotted-border-width-medium, 1.5px));
77
77
  }
78
78
 
79
- [data-ui='sparkline'][data-size='lg'] {
79
+ [data-ui-sparkline][data-size='lg'] {
80
80
  --_size: var(--slotted-sparkline-block-size-lg, var(--slotted-space-11, 3rem));
81
81
  --_marker: var(--slotted-sparkline-marker-size-lg, var(--slotted-space-4, 0.5rem));
82
82
  }
83
83
 
84
84
  /* ── Series: which one of eight this is ──────────────────────────────── */
85
85
 
86
- [data-ui='sparkline'][data-series='1'] {
86
+ [data-ui-sparkline][data-series='1'] {
87
87
  --_color: var(--slotted-data-1);
88
88
  }
89
89
 
90
- [data-ui='sparkline'][data-series='2'] {
90
+ [data-ui-sparkline][data-series='2'] {
91
91
  --_color: var(--slotted-data-2);
92
92
  }
93
93
 
94
- [data-ui='sparkline'][data-series='3'] {
94
+ [data-ui-sparkline][data-series='3'] {
95
95
  --_color: var(--slotted-data-3);
96
96
  }
97
97
 
98
- [data-ui='sparkline'][data-series='4'] {
98
+ [data-ui-sparkline][data-series='4'] {
99
99
  --_color: var(--slotted-data-4);
100
100
  }
101
101
 
102
- [data-ui='sparkline'][data-series='5'] {
102
+ [data-ui-sparkline][data-series='5'] {
103
103
  --_color: var(--slotted-data-5);
104
104
  }
105
105
 
106
- [data-ui='sparkline'][data-series='6'] {
106
+ [data-ui-sparkline][data-series='6'] {
107
107
  --_color: var(--slotted-data-6);
108
108
  }
109
109
 
110
- [data-ui='sparkline'][data-series='7'] {
110
+ [data-ui-sparkline][data-series='7'] {
111
111
  --_color: var(--slotted-data-7);
112
112
  }
113
113
 
114
- [data-ui='sparkline'][data-series='8'] {
114
+ [data-ui-sparkline][data-series='8'] {
115
115
  --_color: var(--slotted-data-8);
116
116
  }
117
117
 
@@ -123,33 +123,33 @@
123
123
  * shape rather than found. `neutral` is the comparison series and the aside,
124
124
  * in the step the page uses for one.
125
125
  */
126
- [data-ui='sparkline'][data-tone='neutral'] {
126
+ [data-ui-sparkline][data-tone='neutral'] {
127
127
  --_color: var(--slotted-text-muted, GrayText);
128
128
  }
129
129
 
130
- [data-ui='sparkline'][data-tone='accent'] {
130
+ [data-ui-sparkline][data-tone='accent'] {
131
131
  --_color: var(--slotted-tone-accent-text);
132
132
  }
133
133
 
134
- [data-ui='sparkline'][data-tone='secondary'] {
134
+ [data-ui-sparkline][data-tone='secondary'] {
135
135
  --_color: var(--slotted-tone-secondary-text);
136
136
  }
137
137
 
138
- [data-ui='sparkline'][data-tone='success'] {
138
+ [data-ui-sparkline][data-tone='success'] {
139
139
  --_color: var(--slotted-tone-success-text);
140
140
  }
141
141
 
142
- [data-ui='sparkline'][data-tone='warning'] {
142
+ [data-ui-sparkline][data-tone='warning'] {
143
143
  --_color: var(--slotted-tone-warning-text);
144
144
  }
145
145
 
146
- [data-ui='sparkline'][data-tone='danger'] {
146
+ [data-ui-sparkline][data-tone='danger'] {
147
147
  --_color: var(--slotted-tone-danger-text);
148
148
  }
149
149
 
150
150
  /* ── The drawing ───────────────────────────────────────────────────────── */
151
151
 
152
- [data-ui='sparkline'] [data-part='plot'] {
152
+ [data-ui-sparkline] [data-part-plot] {
153
153
  block-size: 100%;
154
154
  display: block;
155
155
  inline-size: 100%;
@@ -165,7 +165,7 @@
165
165
  * of forty sparklines does not mint forty gradients. `mask-image` applies to
166
166
  * an SVG child from CSS in every engine that ships `@layer`.
167
167
  */
168
- [data-ui='sparkline'] [data-part='area'] {
168
+ [data-ui-sparkline] [data-part-area] {
169
169
  fill: var(--_color);
170
170
  fill-opacity: var(--_area-opacity);
171
171
  mask-image: linear-gradient(to bottom, black, transparent);
@@ -179,7 +179,7 @@
179
179
  * stretched to the box; once measured, the grid is the box and the effect
180
180
  * changes nothing.
181
181
  */
182
- [data-ui='sparkline'] [data-part='line'] {
182
+ [data-ui-sparkline] [data-part-line] {
183
183
  fill: none;
184
184
  stroke: var(--_color);
185
185
  stroke-linecap: round;
@@ -189,7 +189,7 @@
189
189
  vector-effect: non-scaling-stroke;
190
190
  }
191
191
 
192
- [data-ui='sparkline'] [data-part='bar'] {
192
+ [data-ui-sparkline] [data-part-bar] {
193
193
  fill: var(--_bar-dim);
194
194
  stroke: none;
195
195
  transition:
@@ -198,7 +198,7 @@
198
198
  }
199
199
 
200
200
  /* The current period is the one the value beside the chart is about. */
201
- [data-ui='sparkline'] [data-part='bar'][data-current] {
201
+ [data-ui-sparkline] [data-part-bar][data-current] {
202
202
  fill: var(--_color);
203
203
  }
204
204
 
@@ -207,7 +207,7 @@
207
207
  * that is not data, and the dash is what says so before the colour does.
208
208
  * The dash lengths are geometry of the stroke, not a scale step.
209
209
  */
210
- [data-ui='sparkline'] [data-part='reference'] {
210
+ [data-ui-sparkline] [data-part-reference] {
211
211
  fill: none;
212
212
  stroke: var(--_reference-color);
213
213
  stroke-dasharray: 2 3;
@@ -226,20 +226,20 @@
226
226
  * in the colour of the ground so the disc stays legible where it lands on
227
227
  * the line.
228
228
  */
229
- [data-ui='sparkline'] [data-part='ring'],
230
- [data-ui='sparkline'] [data-part='marker'] {
229
+ [data-ui-sparkline] [data-part-ring],
230
+ [data-ui-sparkline] [data-part-marker] {
231
231
  fill: none;
232
232
  stroke-linecap: round;
233
233
  transition: d var(--slotted-duration-medium) var(--slotted-easing-standard);
234
234
  vector-effect: non-scaling-stroke;
235
235
  }
236
236
 
237
- [data-ui='sparkline'] [data-part='ring'] {
237
+ [data-ui-sparkline] [data-part-ring] {
238
238
  stroke: var(--_ring-color);
239
239
  stroke-width: calc(var(--_marker) + 2 * var(--_ring));
240
240
  }
241
241
 
242
- [data-ui='sparkline'] [data-part='marker'] {
242
+ [data-ui-sparkline] [data-part-marker] {
243
243
  stroke: var(--_color);
244
244
  stroke-width: var(--_marker);
245
245
  }
@@ -250,7 +250,7 @@
250
250
  * inline end. The grid is mirrored rather than recomputed, so both
251
251
  * bindings hand the engine the same box and the same order.
252
252
  */
253
- [data-ui='sparkline']:dir(rtl) [data-part='plot'] {
253
+ [data-ui-sparkline]:dir(rtl) [data-part-plot] {
254
254
  transform: scaleX(-1);
255
255
  }
256
256
 
@@ -263,19 +263,19 @@
263
263
  * one `CanvasText`, and the wash goes.
264
264
  */
265
265
  @media (forced-colors: active) {
266
- [data-ui='sparkline'] [data-part='area'] {
266
+ [data-ui-sparkline] [data-part-area] {
267
267
  display: none;
268
268
  }
269
269
 
270
- [data-ui='sparkline'] [data-part='bar'] {
270
+ [data-ui-sparkline] [data-part-bar] {
271
271
  fill: GrayText;
272
272
  }
273
273
 
274
- [data-ui='sparkline'] [data-part='bar'][data-current] {
274
+ [data-ui-sparkline] [data-part-bar][data-current] {
275
275
  fill: CanvasText;
276
276
  }
277
277
 
278
- [data-ui='sparkline'] [data-part='ring'] {
278
+ [data-ui-sparkline] [data-part-ring] {
279
279
  stroke: Canvas;
280
280
  }
281
281
  }
@@ -45,7 +45,7 @@
45
45
  * twenty-four clear inside that box, and the ring keeps the same inset, so
46
46
  * the swap is between two shapes of one measure.
47
47
  */
48
- [data-ui='spinner'] {
48
+ [data-ui-spinner] {
49
49
  --_size: var(--slotted-spinner-size, var(--slotted-control-icon-size-md, 16px));
50
50
  --_ring: calc(var(--_size) * 5 / 6);
51
51
  /**
@@ -122,7 +122,7 @@
122
122
  }
123
123
 
124
124
  @starting-style {
125
- [data-ui='spinner'] {
125
+ [data-ui-spinner] {
126
126
  opacity: 0;
127
127
  scale: 0.6;
128
128
  }
@@ -134,7 +134,7 @@
134
134
  * replacing one continuous motion with a slower one.
135
135
  */
136
136
  @media (prefers-reduced-motion: reduce) {
137
- [data-ui='spinner'] {
137
+ [data-ui-spinner] {
138
138
  --_head: 270deg;
139
139
 
140
140
  animation: none;
@@ -149,7 +149,7 @@
149
149
  * `currentcolor`, which is the host's ink, already forced to the right
150
150
  * value.
151
151
  */
152
- [data-ui='spinner'] {
152
+ [data-ui-spinner] {
153
153
  forced-color-adjust: none;
154
154
  }
155
155
  }
@@ -39,7 +39,7 @@
39
39
  * itself;
40
40
  * - only focus is raised.
41
41
  */
42
- [data-ui='split-button'][data-part='root'] {
42
+ [data-ui-split-button][data-part-root] {
43
43
  --_radius: var(--slotted-split-button-radius, var(--slotted-control-radius, 4px));
44
44
  --_overlap: calc(-1 * var(--slotted-control-border-width, 1px));
45
45
 
@@ -68,19 +68,19 @@
68
68
  * square from the control height and stays so, because a wide chevron is a
69
69
  * second button nobody asked for.
70
70
  */
71
- [data-ui='split-button'][data-part='root'][data-full-width] {
71
+ [data-ui-split-button][data-part-root][data-full-width] {
72
72
  display: flex;
73
73
  inline-size: 100%;
74
74
  }
75
75
 
76
- [data-ui='split-button'][data-part='root'][data-full-width] > [data-part='primary'] {
76
+ [data-ui-split-button][data-part-root][data-full-width] > [data-part-primary] {
77
77
  flex: 1 1 0;
78
78
  min-inline-size: 0;
79
79
  }
80
80
 
81
81
  /* ── The shape ────────────────────────────────────────────────────────── */
82
82
 
83
- [data-ui='split-button'][data-part='root'] > [data-part='primary'] {
83
+ [data-ui-split-button][data-part-root] > [data-part-primary] {
84
84
  border-end-end-radius: 0;
85
85
  border-end-start-radius: var(--_radius);
86
86
  border-start-end-radius: 0;
@@ -90,7 +90,7 @@
90
90
  min-inline-size: 0;
91
91
  }
92
92
 
93
- [data-ui='split-button'][data-part='root'] > [data-part='menu-trigger'] {
93
+ [data-ui-split-button][data-part-root] > [data-part-menu-trigger] {
94
94
  border-end-end-radius: var(--_radius);
95
95
  border-end-start-radius: 0;
96
96
  border-start-end-radius: var(--_radius);
@@ -113,19 +113,15 @@
113
113
  * `button-group` records: the rule has to outrank every border rule `button`
114
114
  * writes for the same control whatever order the two sheets load in.
115
115
  */
116
- [data-ui='split-button'][data-part='root']
117
- > [data-ui='button'][data-variant='outline'][data-pressed],
118
- [data-ui='split-button'][data-part='root']
119
- > [data-ui='button'][data-variant='outline'][data-disabled],
120
- [data-ui='split-button'][data-part='root'] > [data-ui='button'][data-variant='outline']:disabled {
116
+ [data-ui-split-button][data-part-root] > [data-ui-button][data-variant='outline'][data-pressed],
117
+ [data-ui-split-button][data-part-root] > [data-ui-button][data-variant='outline'][data-disabled],
118
+ [data-ui-split-button][data-part-root] > [data-ui-button][data-variant='outline']:disabled {
121
119
  border-color: var(--slotted-control-border-color, ButtonBorder);
122
120
  }
123
121
 
124
- [data-ui='split-button'][data-part='root']
125
- > [data-ui='button'][data-variant='ghost'][data-pressed],
126
- [data-ui='split-button'][data-part='root']
127
- > [data-ui='button'][data-variant='ghost'][data-disabled],
128
- [data-ui='split-button'][data-part='root'] > [data-ui='button'][data-variant='ghost']:disabled {
122
+ [data-ui-split-button][data-part-root] > [data-ui-button][data-variant='ghost'][data-pressed],
123
+ [data-ui-split-button][data-part-root] > [data-ui-button][data-variant='ghost'][data-disabled],
124
+ [data-ui-split-button][data-part-root] > [data-ui-button][data-variant='ghost']:disabled {
129
125
  border-color: transparent;
130
126
  }
131
127
 
@@ -136,8 +132,7 @@
136
132
  * narrowed, because a narrower border box would move its label by half a
137
133
  * pixel — and the trigger's leading edge is the one seen.
138
134
  */
139
- [data-ui='split-button'][data-part='root']
140
- > [data-ui='button'][data-part='primary'][data-variant] {
135
+ [data-ui-split-button][data-part-root] > [data-ui-button][data-part-primary][data-variant] {
141
136
  border-inline-end-color: transparent;
142
137
  }
143
138
 
@@ -153,28 +148,28 @@
153
148
  * one. It is painted on the trigger's leading edge, the one edge the rule
154
149
  * above leaves in the column.
155
150
  */
156
- [data-ui='split-button'][data-part='root'] > [data-tone='accent'] {
151
+ [data-ui-split-button][data-part-root] > [data-tone='accent'] {
157
152
  --_seam: var(--slotted-tone-accent-solid-active);
158
153
  }
159
154
 
160
- [data-ui='split-button'][data-part='root'] > [data-tone='secondary'] {
155
+ [data-ui-split-button][data-part-root] > [data-tone='secondary'] {
161
156
  --_seam: var(--slotted-tone-secondary-solid-active);
162
157
  }
163
158
 
164
- [data-ui='split-button'][data-part='root'] > [data-tone='success'] {
159
+ [data-ui-split-button][data-part-root] > [data-tone='success'] {
165
160
  --_seam: var(--slotted-tone-success-solid-active);
166
161
  }
167
162
 
168
- [data-ui='split-button'][data-part='root'] > [data-tone='warning'] {
163
+ [data-ui-split-button][data-part-root] > [data-tone='warning'] {
169
164
  --_seam: var(--slotted-tone-warning-solid-active);
170
165
  }
171
166
 
172
- [data-ui='split-button'][data-part='root'] > [data-tone='danger'] {
167
+ [data-ui-split-button][data-part-root] > [data-tone='danger'] {
173
168
  --_seam: var(--slotted-tone-danger-solid-active);
174
169
  }
175
170
 
176
- [data-ui='split-button'][data-part='root']
177
- > [data-ui='button'][data-variant='solid'][data-part='menu-trigger'] {
171
+ [data-ui-split-button][data-part-root]
172
+ > [data-ui-button][data-variant='solid'][data-part-menu-trigger] {
178
173
  border-inline-start-color: var(--_seam, ButtonBorder);
179
174
  }
180
175
 
@@ -184,10 +179,10 @@
184
179
  * and the seam takes that border so the bar reads as one unavailable
185
180
  * control rather than as a grey one with a coloured line through it.
186
181
  */
187
- [data-ui='split-button'][data-part='root']
188
- > [data-ui='button'][data-variant='solid'][data-part='menu-trigger']:disabled,
189
- [data-ui='split-button'][data-part='root']
190
- > [data-ui='button'][data-variant='solid'][data-part='menu-trigger'][data-disabled] {
182
+ [data-ui-split-button][data-part-root]
183
+ > [data-ui-button][data-variant='solid'][data-part-menu-trigger]:disabled,
184
+ [data-ui-split-button][data-part-root]
185
+ > [data-ui-button][data-variant='solid'][data-part-menu-trigger][data-disabled] {
191
186
  border-inline-start-color: var(--slotted-disabled-border, ButtonBorder);
192
187
  }
193
188
 
@@ -197,7 +192,7 @@
197
192
  * follows it in the DOM. Hover and press repaint a fill and never an edge,
198
193
  * so there is nothing to lift for them — `button-group`'s reading.
199
194
  */
200
- [data-ui='split-button'][data-part='root'] > *:focus-visible {
195
+ [data-ui-split-button][data-part-root] > *:focus-visible {
201
196
  z-index: 1;
202
197
  }
203
198
 
@@ -235,7 +230,7 @@
235
230
  * send. `pointer-events: none` is also what takes hover away without a
236
231
  * state the stylesheet would have to hold back.
237
232
  */
238
- [data-ui='split-button'][data-part='root'][data-loading] > [data-part='menu-trigger'] {
233
+ [data-ui-split-button][data-part-root][data-loading] > [data-part-menu-trigger] {
239
234
  pointer-events: none;
240
235
  }
241
236
 
@@ -246,7 +241,7 @@
246
241
  * puts it back — `button-group`'s rule for the same case.
247
242
  */
248
243
  @media (forced-colors: active) {
249
- [data-ui='split-button'][data-part='root'] > [data-ui='button'][data-pressed] {
244
+ [data-ui-split-button][data-part-root] > [data-ui-button][data-pressed] {
250
245
  border-color: Highlight;
251
246
  }
252
247
  }
@@ -15,7 +15,7 @@
15
15
  *
16
16
  * `touch-action: none` so a drag is not read as a scroll on the way past.
17
17
  */
18
- [data-ui='splitter'] {
18
+ [data-ui-splitter] {
19
19
  /**
20
20
  * The track is what the pointer sees and `--slotted-target-min` is what it
21
21
  * gets: `::before` below is a transparent box centred on the track, which
@@ -111,9 +111,9 @@
111
111
  * `data-dragging` and rest as the same picture. Closing the gap hands those
112
112
  * pixels to the lines, and the pair roughly doubles instead.
113
113
  */
114
- [data-ui='splitter']:not([data-disabled]):hover,
115
- [data-ui='splitter']:not([data-disabled]):focus-visible,
116
- [data-ui='splitter'][data-dragging] {
114
+ [data-ui-splitter]:not([data-disabled]):hover,
115
+ [data-ui-splitter]:not([data-disabled]):focus-visible,
116
+ [data-ui-splitter][data-dragging] {
117
117
  --_gap: var(--slotted-space-4, 0.5rem);
118
118
  }
119
119
 
@@ -124,14 +124,14 @@
124
124
  * other. A container that packs its children instead of stretching them
125
125
  * would otherwise size the bar from its content.
126
126
  */
127
- [data-ui='splitter'][data-orientation='vertical'] {
127
+ [data-ui-splitter][data-orientation='vertical'] {
128
128
  flex-direction: column;
129
129
  inline-size: var(--_track);
130
130
  align-self: stretch;
131
131
  cursor: col-resize;
132
132
  }
133
133
 
134
- [data-ui='splitter'][data-orientation='horizontal'] {
134
+ [data-ui-splitter][data-orientation='horizontal'] {
135
135
  flex-direction: row;
136
136
  block-size: var(--_track);
137
137
  justify-self: stretch;
@@ -142,18 +142,18 @@
142
142
  * The reach. Transparent, centred on the track, and the reason a sixteen-pixel
143
143
  * picture is a twenty-four-pixel target.
144
144
  */
145
- [data-ui='splitter']::before {
145
+ [data-ui-splitter]::before {
146
146
  content: '';
147
147
  position: absolute;
148
148
  --_overhang: calc((var(--_reach) - var(--_track)) / -2);
149
149
  }
150
150
 
151
- [data-ui='splitter'][data-orientation='vertical']::before {
151
+ [data-ui-splitter][data-orientation='vertical']::before {
152
152
  inset-block: 0;
153
153
  inset-inline: var(--_overhang);
154
154
  }
155
155
 
156
- [data-ui='splitter'][data-orientation='horizontal']::before {
156
+ [data-ui-splitter][data-orientation='horizontal']::before {
157
157
  inset-inline: 0;
158
158
  inset-block: var(--_overhang);
159
159
  }
@@ -181,7 +181,7 @@
181
181
  * A proportion leaves slack at every track length. That slack is what the
182
182
  * hand claims.
183
183
  */
184
- [data-ui='splitter'] > [data-part='line'] {
184
+ [data-ui-splitter] > [data-part-line] {
185
185
  flex: 0 1 min(var(--_line-length), 20%);
186
186
  min-block-size: 0;
187
187
  min-inline-size: 0;
@@ -193,28 +193,28 @@
193
193
  var(--slotted-control-transition-easing, var(--slotted-easing-standard));
194
194
  }
195
195
 
196
- [data-ui='splitter'][data-orientation='vertical'] > [data-part='line'] {
196
+ [data-ui-splitter][data-orientation='vertical'] > [data-part-line] {
197
197
  inline-size: var(--_line);
198
198
  }
199
199
 
200
- [data-ui='splitter'][data-orientation='horizontal'] > [data-part='line'] {
200
+ [data-ui-splitter][data-orientation='horizontal'] > [data-part-line] {
201
201
  block-size: var(--_line);
202
202
  }
203
203
 
204
204
  /* Solid at the grip, gone at the far end. Four rules, one per direction. */
205
- [data-ui='splitter'][data-orientation='vertical'] > [data-part='line']:first-child {
205
+ [data-ui-splitter][data-orientation='vertical'] > [data-part-line]:first-child {
206
206
  background: linear-gradient(to bottom, transparent, var(--_rest));
207
207
  }
208
208
 
209
- [data-ui='splitter'][data-orientation='vertical'] > [data-part='line']:last-child {
209
+ [data-ui-splitter][data-orientation='vertical'] > [data-part-line]:last-child {
210
210
  background: linear-gradient(to top, transparent, var(--_rest));
211
211
  }
212
212
 
213
- [data-ui='splitter'][data-orientation='horizontal'] > [data-part='line']:first-child {
213
+ [data-ui-splitter][data-orientation='horizontal'] > [data-part-line]:first-child {
214
214
  background: linear-gradient(to right, transparent, var(--_rest));
215
215
  }
216
216
 
217
- [data-ui='splitter'][data-orientation='horizontal'] > [data-part='line']:last-child {
217
+ [data-ui-splitter][data-orientation='horizontal'] > [data-part-line]:last-child {
218
218
  background: linear-gradient(to left, transparent, var(--_rest));
219
219
  }
220
220
 
@@ -227,9 +227,9 @@
227
227
  * Hover is held back for `data-disabled`, which is the shared rule from
228
228
  * `packages/styles/src/states.test.mjs`.
229
229
  */
230
- [data-ui='splitter']:not([data-disabled]):hover > [data-part='line'],
231
- [data-ui='splitter']:not([data-disabled]):focus-visible > [data-part='line'],
232
- [data-ui='splitter'][data-dragging] > [data-part='line'] {
230
+ [data-ui-splitter]:not([data-disabled]):hover > [data-part-line],
231
+ [data-ui-splitter]:not([data-disabled]):focus-visible > [data-part-line],
232
+ [data-ui-splitter][data-dragging] > [data-part-line] {
233
233
  flex-basis: 100%;
234
234
  background: var(--_active);
235
235
  }
@@ -245,7 +245,7 @@
245
245
  * pixels, and the second saying cost the first its shape.
246
246
  */
247
247
 
248
- [data-ui='splitter']:focus-visible {
248
+ [data-ui-splitter]:focus-visible {
249
249
  outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
250
250
  outline-offset: calc(-1 * var(--slotted-focus-ring-offset, 2px));
251
251
  }
@@ -259,7 +259,7 @@
259
259
  * are one mark and have to move together, and `currentColor` is the one place
260
260
  * that says so.
261
261
  */
262
- [data-ui='splitter'] > [data-part='grip'] {
262
+ [data-ui-splitter] > [data-part-grip] {
263
263
  flex: none;
264
264
  color: var(--_rest);
265
265
  background-image: radial-gradient(circle at center, currentColor 40%, transparent 42%);
@@ -269,19 +269,19 @@
269
269
  var(--slotted-control-transition-easing, var(--slotted-easing-standard));
270
270
  }
271
271
 
272
- [data-ui='splitter'][data-orientation='vertical'] > [data-part='grip'] {
272
+ [data-ui-splitter][data-orientation='vertical'] > [data-part-grip] {
273
273
  inline-size: calc(2 * var(--_dot));
274
274
  block-size: calc(3 * var(--_dot));
275
275
  }
276
276
 
277
- [data-ui='splitter'][data-orientation='horizontal'] > [data-part='grip'] {
277
+ [data-ui-splitter][data-orientation='horizontal'] > [data-part-grip] {
278
278
  inline-size: calc(3 * var(--_dot));
279
279
  block-size: calc(2 * var(--_dot));
280
280
  }
281
281
 
282
- [data-ui='splitter']:not([data-disabled]):hover > [data-part='grip'],
283
- [data-ui='splitter']:not([data-disabled]):focus-visible > [data-part='grip'],
284
- [data-ui='splitter'][data-dragging] > [data-part='grip'] {
282
+ [data-ui-splitter]:not([data-disabled]):hover > [data-part-grip],
283
+ [data-ui-splitter]:not([data-disabled]):focus-visible > [data-part-grip],
284
+ [data-ui-splitter][data-dragging] > [data-part-grip] {
285
285
  color: var(--_active);
286
286
  }
287
287
 
@@ -290,7 +290,7 @@
290
290
  * separator can still read its value — so this changes the picture and the
291
291
  * cursor and nothing about the focus.
292
292
  */
293
- [data-ui='splitter'][data-disabled] {
293
+ [data-ui-splitter][data-disabled] {
294
294
  cursor: default;
295
295
  --_rest: var(--slotted-splitter-disabled-line-color, var(--slotted-disabled-border, GrayText));
296
296
  }
@@ -301,23 +301,23 @@
301
301
  * grip's gradient is replaced for the same reason.
302
302
  */
303
303
  @media (forced-colors: active) {
304
- [data-ui='splitter'] > [data-part='line'] {
304
+ [data-ui-splitter] > [data-part-line] {
305
305
  background: ButtonBorder;
306
306
  forced-color-adjust: none;
307
307
  }
308
308
 
309
- [data-ui='splitter']:not([data-disabled]):hover > [data-part='line'],
310
- [data-ui='splitter'][data-dragging] > [data-part='line'] {
309
+ [data-ui-splitter]:not([data-disabled]):hover > [data-part-line],
310
+ [data-ui-splitter][data-dragging] > [data-part-line] {
311
311
  background: ButtonText;
312
312
  }
313
313
 
314
- [data-ui='splitter'] > [data-part='grip'] {
314
+ [data-ui-splitter] > [data-part-grip] {
315
315
  background-image: none;
316
316
  background-color: ButtonBorder;
317
317
  }
318
318
 
319
- [data-ui='splitter'][data-disabled] > [data-part='line'],
320
- [data-ui='splitter'][data-disabled] > [data-part='grip'] {
319
+ [data-ui-splitter][data-disabled] > [data-part-line],
320
+ [data-ui-splitter][data-disabled] > [data-part-grip] {
321
321
  background: GrayText;
322
322
  }
323
323
  }
@@ -328,8 +328,8 @@
328
328
  * without travelling.
329
329
  */
330
330
  @media (prefers-reduced-motion: reduce) {
331
- [data-ui='splitter'] > [data-part='line'],
332
- [data-ui='splitter'] > [data-part='grip'] {
331
+ [data-ui-splitter] > [data-part-line],
332
+ [data-ui-splitter] > [data-part-grip] {
333
333
  transition-duration: var(--slotted-duration-instant);
334
334
  }
335
335
  }