@slotted/styles 0.1.0-beta.7 → 0.1.0-beta.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/package.json +1 -1
  2. package/src/accordion/accordion.css +10 -10
  3. package/src/action-bar/action-bar.css +31 -32
  4. package/src/action-sheet/action-sheet.css +36 -36
  5. package/src/alert/alert.css +35 -35
  6. package/src/app-shell/app-shell.css +280 -299
  7. package/src/aspect-ratio/aspect-ratio.css +9 -9
  8. package/src/attachment/attachment.css +91 -99
  9. package/src/avatar/avatar.css +41 -41
  10. package/src/avatar-group/avatar-group.css +21 -22
  11. package/src/badge/badge.css +37 -37
  12. package/src/breadcrumb/breadcrumb.css +37 -37
  13. package/src/button/button.css +88 -69
  14. package/src/button-group/button-group.css +69 -73
  15. package/src/calendar/calendar.css +93 -103
  16. package/src/card/card.css +54 -61
  17. package/src/carousel/carousel.css +150 -161
  18. package/src/cascader/cascader.css +147 -151
  19. package/src/chart/chart.css +225 -240
  20. package/src/checkbox/checkbox.css +119 -124
  21. package/src/checkbox-group/checkbox-group.css +7 -7
  22. package/src/code-block/code-block.css +81 -85
  23. package/src/collapsible/collapsible.css +69 -76
  24. package/src/color-picker/color-picker.css +83 -91
  25. package/src/column-manager/column-manager.css +106 -114
  26. package/src/combobox/combobox.css +99 -101
  27. package/src/command-palette/command-palette.css +84 -90
  28. package/src/container/container.css +24 -24
  29. package/src/context-menu/context-menu.css +8 -8
  30. package/src/currency-field/currency-field.css +99 -104
  31. package/src/dashboard-grid/dashboard-grid.css +104 -107
  32. package/src/data-grid/data-grid.css +458 -456
  33. package/src/data-grid/data-grid.tokens.json +2 -0
  34. package/src/data-list/data-list.css +67 -69
  35. package/src/date-field/date-field.css +50 -50
  36. package/src/date-picker/date-picker.css +40 -42
  37. package/src/date-range-picker/date-range-picker.css +114 -118
  38. package/src/datetime-field/datetime-field.css +73 -78
  39. package/src/datetime-picker/datetime-picker.css +61 -63
  40. package/src/datetime-range-picker/datetime-range-picker.css +149 -156
  41. package/src/description-list/description-list.css +61 -64
  42. package/src/detail-panel/detail-panel.css +70 -70
  43. package/src/dialog/dialog.css +312 -148
  44. package/src/divider/divider.css +18 -18
  45. package/src/drawer/drawer.css +186 -209
  46. package/src/entity-picker/entity-picker.css +220 -239
  47. package/src/event-calendar/event-calendar.css +343 -385
  48. package/src/field/field.css +74 -78
  49. package/src/field-group/field-group.css +22 -25
  50. package/src/filter-bar/filter-bar.css +193 -209
  51. package/src/form/form.css +21 -24
  52. package/src/fullscreen/fullscreen.css +24 -25
  53. package/src/grid/grid.css +28 -28
  54. package/src/highlight/highlight.css +6 -6
  55. package/src/hover-card/hover-card.css +6 -6
  56. package/src/icon/icon.css +15 -15
  57. package/src/image/image.css +39 -39
  58. package/src/import-export-center/import-export-center.css +135 -156
  59. package/src/inline/inline.css +27 -27
  60. package/src/inline-message/inline-message.css +28 -28
  61. package/src/kbd/kbd.css +26 -26
  62. package/src/link/link.css +15 -15
  63. package/src/list/list.css +20 -20
  64. package/src/list-item/list-item.css +66 -66
  65. package/src/listbox/listbox.css +56 -59
  66. package/src/loading-overlay/loading-overlay.css +75 -92
  67. package/src/markdown/markdown.css +17 -17
  68. package/src/menu/menu.css +63 -65
  69. package/src/menubar/menubar.css +13 -13
  70. package/src/message/message.css +174 -202
  71. package/src/message-scroller/message-scroller.css +41 -42
  72. package/src/multi-select/multi-select.css +131 -137
  73. package/src/navigation-menu/navigation-menu.css +167 -188
  74. package/src/notification-center/notification-center.css +134 -148
  75. package/src/number-field/number-field.css +76 -81
  76. package/src/otp-input/otp-input.css +48 -48
  77. package/src/page/page.css +23 -23
  78. package/src/page-header/page-header.css +219 -280
  79. package/src/pagination/pagination.css +68 -72
  80. package/src/popover/popover.css +40 -49
  81. package/src/progress-indicator/progress-indicator.css +85 -90
  82. package/src/prompt-composer/prompt-composer.css +94 -99
  83. package/src/prose/prose.css +71 -75
  84. package/src/radio-group/radio-group.css +98 -103
  85. package/src/rating/rating.css +132 -132
  86. package/src/result-state/result-state.css +74 -77
  87. package/src/saved-views/saved-views.css +41 -47
  88. package/src/scroll-area/scroll-area.css +32 -35
  89. package/src/section/section.css +16 -16
  90. package/src/segmented-control/segmented-control.css +77 -79
  91. package/src/select/select.css +113 -115
  92. package/src/side-navigation/side-navigation.css +170 -180
  93. package/src/skeleton/skeleton.css +47 -48
  94. package/src/slider/slider.css +86 -88
  95. package/src/sparkline/sparkline.css +32 -32
  96. package/src/spinner/spinner.css +4 -4
  97. package/src/split-button/split-button.css +26 -31
  98. package/src/splitter/splitter.css +35 -35
  99. package/src/stack/stack.css +24 -24
  100. package/src/stat-card/stat-card.css +102 -103
  101. package/src/status-indicator/status-indicator.css +28 -28
  102. package/src/stepper/stepper.css +58 -62
  103. package/src/switch/switch.css +86 -92
  104. package/src/table/table.css +189 -198
  105. package/src/table-of-contents/table-of-contents.css +51 -54
  106. package/src/tabs/tabs.css +157 -172
  107. package/src/tag/tag.css +67 -71
  108. package/src/tags-input/tags-input.css +124 -74
  109. package/src/tags-input/tags-input.tokens.json +6 -1
  110. package/src/text-field/text-field.css +108 -126
  111. package/src/textarea/textarea.css +26 -26
  112. package/src/time-field/time-field.css +67 -67
  113. package/src/time-picker/time-picker.css +56 -58
  114. package/src/time-range-picker/time-range-picker.css +126 -133
  115. package/src/timeline/timeline.css +244 -266
  116. package/src/toast/toast.css +81 -90
  117. package/src/toggle/toggle.css +29 -33
  118. package/src/toggle-group/toggle-group.css +67 -71
  119. package/src/toolbar/toolbar.css +30 -35
  120. package/src/tooltip/tooltip.css +26 -26
  121. package/src/top-navigation/top-navigation.css +243 -259
  122. package/src/tour/tour.css +51 -60
  123. package/src/transfer/transfer.css +160 -164
  124. package/src/tree/tree.css +103 -111
  125. package/src/typography/typography.css +36 -36
  126. package/src/upload/upload.css +224 -224
  127. package/src/visually-hidden/visually-hidden.css +1 -1
  128. package/src/wizard/wizard.css +185 -197
@@ -75,7 +75,7 @@
75
75
  * start, and the panel's border, its inset and the link's own inset add up
76
76
  * to the control's inline padding.
77
77
  */
78
- [data-ui='navigation-menu'] {
78
+ [data-ui-navigation-menu] {
79
79
  --_control-height: var(--slotted-control-height-md, 34px);
80
80
  --_control-padding: var(--slotted-control-padding-inline-md, 13px);
81
81
  --_control-font-size: var(--slotted-control-font-size-md, 13px);
@@ -172,7 +172,7 @@
172
172
  position: relative;
173
173
  }
174
174
 
175
- [data-ui='navigation-menu']:dir(rtl) {
175
+ [data-ui-navigation-menu]:dir(rtl) {
176
176
  --_inline-sign: -1;
177
177
  }
178
178
 
@@ -180,8 +180,8 @@
180
180
  * An open root rises to the popover layer and no further: a constant
181
181
  * z-index on a nav would put the row above a dialog's scrim.
182
182
  */
183
- [data-ui='navigation-menu']:has(
184
- > [data-part='list'] > [data-part='item'] > [data-part='content'][data-open]
183
+ [data-ui-navigation-menu]:has(
184
+ > [data-part-list] > [data-part-item] > [data-part-content][data-open]
185
185
  ) {
186
186
  z-index: var(--slotted-z-index-popover, 1100);
187
187
  }
@@ -192,7 +192,7 @@
192
192
  * it. While it is closed nothing transitions: the script writes the next
193
193
  * section's numbers before it opens, and they are simply there.
194
194
  */
195
- [data-ui='navigation-menu']:has(> [data-part='viewport'][data-open]) {
195
+ [data-ui-navigation-menu]:has(> [data-part-viewport][data-open]) {
196
196
  transition:
197
197
  --slotted-navigation-menu-viewport-inline-size var(--slotted-duration-medium)
198
198
  var(--slotted-easing-standard),
@@ -206,7 +206,7 @@
206
206
  var(--slotted-easing-standard);
207
207
  }
208
208
 
209
- [data-ui='navigation-menu'][data-size='sm'] {
209
+ [data-ui-navigation-menu][data-size='sm'] {
210
210
  --_control-height: var(--slotted-control-height-sm, 30px);
211
211
  --_control-padding: var(--slotted-control-padding-inline-sm, 10px);
212
212
  --_control-font-size: var(--slotted-control-font-size-sm, 12px);
@@ -214,7 +214,7 @@
214
214
  --_gap: var(--slotted-control-gap-sm, 6px);
215
215
  }
216
216
 
217
- [data-ui='navigation-menu'][data-size='lg'] {
217
+ [data-ui-navigation-menu][data-size='lg'] {
218
218
  --_control-height: var(--slotted-control-height-lg, 38px);
219
219
  --_control-padding: var(--slotted-control-padding-inline-lg, 16px);
220
220
  --_control-font-size: var(--slotted-control-font-size-lg, 14px);
@@ -222,7 +222,7 @@
222
222
  --_gap: var(--slotted-control-gap-md, 8px);
223
223
  }
224
224
 
225
- [data-ui='navigation-menu'] > [data-part='list'] {
225
+ [data-ui-navigation-menu] > [data-part-list] {
226
226
  align-items: center;
227
227
  display: flex;
228
228
  gap: var(--_list-gap);
@@ -231,7 +231,7 @@
231
231
  padding: 0;
232
232
  }
233
233
 
234
- [data-ui='navigation-menu'] > [data-part='list'] > [data-part='item'] {
234
+ [data-ui-navigation-menu] > [data-part-list] > [data-part-item] {
235
235
  display: flex;
236
236
  }
237
237
 
@@ -244,8 +244,8 @@
244
244
  */
245
245
  /* Held at the specificity of one attribute, so the current, open and
246
246
  disabled rules below win over it without restating the path. */
247
- :where([data-ui='navigation-menu'] > [data-part='list'] > [data-part='item'])
248
- > :is([data-part='trigger'], [data-part='link']) {
247
+ :where([data-ui-navigation-menu] > [data-part-list] > [data-part-item])
248
+ > :is([data-part-trigger], [data-part-link]) {
249
249
  align-items: center;
250
250
  appearance: none;
251
251
  background-color: transparent;
@@ -270,34 +270,34 @@
270
270
  white-space: nowrap;
271
271
  }
272
272
 
273
- [data-ui='navigation-menu']
274
- > [data-part='list']
275
- > [data-part='item']:not([data-disabled])
276
- > [data-part='trigger']:enabled:hover,
277
- [data-ui='navigation-menu']
278
- > [data-part='list']
279
- > [data-part='item']:not([data-disabled])
280
- > [data-part='link']:not([data-disabled], [data-current], [aria-current='page']):hover {
273
+ [data-ui-navigation-menu]
274
+ > [data-part-list]
275
+ > [data-part-item]:not([data-disabled])
276
+ > [data-part-trigger]:enabled:hover,
277
+ [data-ui-navigation-menu]
278
+ > [data-part-list]
279
+ > [data-part-item]:not([data-disabled])
280
+ > [data-part-link]:not([data-disabled], [data-current], [aria-current='page']):hover {
281
281
  background-color: var(--_hover-background);
282
282
  }
283
283
 
284
- [data-ui='navigation-menu']
285
- > [data-part='list']
286
- > [data-part='item']:not([data-disabled])
287
- > [data-part='trigger']:enabled:active,
288
- [data-ui='navigation-menu']
289
- > [data-part='list']
290
- > [data-part='item']:not([data-disabled])
291
- > [data-part='link']:not([data-disabled], [data-current], [aria-current='page']):active {
284
+ [data-ui-navigation-menu]
285
+ > [data-part-list]
286
+ > [data-part-item]:not([data-disabled])
287
+ > [data-part-trigger]:enabled:active,
288
+ [data-ui-navigation-menu]
289
+ > [data-part-list]
290
+ > [data-part-item]:not([data-disabled])
291
+ > [data-part-link]:not([data-disabled], [data-current], [aria-current='page']):active {
292
292
  background-color: var(--_active-background);
293
293
  transition-duration: var(--slotted-duration-instant);
294
294
  }
295
295
 
296
296
  /** An open section holds the ground the pointer gave it. */
297
- [data-ui='navigation-menu']
298
- > [data-part='list']
299
- > [data-part='item']
300
- > [data-part='trigger'][data-open]:enabled {
297
+ [data-ui-navigation-menu]
298
+ > [data-part-list]
299
+ > [data-part-item]
300
+ > [data-part-trigger][data-open]:enabled {
301
301
  background-color: var(--_hover-background);
302
302
  }
303
303
 
@@ -306,34 +306,34 @@
306
306
  * closed: the accent ink on the resting ground. The ground stays the
307
307
  * pointer's, so an open current section reads open first.
308
308
  */
309
- [data-ui='navigation-menu']
310
- > [data-part='list']
311
- > [data-part='item']
312
- > [data-part='trigger'][data-current]:enabled {
309
+ [data-ui-navigation-menu]
310
+ > [data-part-list]
311
+ > [data-part-item]
312
+ > [data-part-trigger][data-current]:enabled {
313
313
  color: var(--_current-color);
314
314
  }
315
315
 
316
- [data-ui='navigation-menu'] [data-part='link']:is([data-current], [aria-current='page']) {
316
+ [data-ui-navigation-menu] [data-part-link]:is([data-current], [aria-current='page']) {
317
317
  background-color: var(--_current-background);
318
318
  box-shadow: inset 0 0 0 var(--_border-width) var(--_current-edge);
319
319
  color: var(--_current-color);
320
320
  }
321
321
 
322
- [data-ui='navigation-menu']
323
- > [data-part='list']
324
- > [data-part='item']
325
- > [data-part='link']:is([data-current], [aria-current='page']) {
322
+ [data-ui-navigation-menu]
323
+ > [data-part-list]
324
+ > [data-part-item]
325
+ > [data-part-link]:is([data-current], [aria-current='page']) {
326
326
  font-weight: var(--slotted-font-weight-semibold, 600);
327
327
  }
328
328
 
329
- [data-ui='navigation-menu'] [data-part='trigger']:disabled,
330
- [data-ui='navigation-menu'] [data-part='link'][data-disabled],
331
- [data-ui='navigation-menu'] [data-part='content'] [data-part='link'][data-disabled] {
329
+ [data-ui-navigation-menu] [data-part-trigger]:disabled,
330
+ [data-ui-navigation-menu] [data-part-link][data-disabled],
331
+ [data-ui-navigation-menu] [data-part-content] [data-part-link][data-disabled] {
332
332
  color: var(--_disabled-color);
333
333
  cursor: not-allowed;
334
334
  }
335
335
 
336
- [data-ui='navigation-menu'] :is([data-part='trigger'], [data-part='link']):focus-visible {
336
+ [data-ui-navigation-menu] :is([data-part-trigger], [data-part-link]):focus-visible {
337
337
  outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
338
338
  outline-offset: var(--slotted-focus-ring-offset, 2px);
339
339
  }
@@ -344,7 +344,7 @@
344
344
  * `directional`; a vertical root draws `chevron-right` in a directional box
345
345
  * and does not turn it, because the section opens where it already points.
346
346
  */
347
- [data-ui='navigation-menu'] [data-part='indicator'] {
347
+ [data-ui-navigation-menu] [data-part-indicator] {
348
348
  --slotted-icon-size: var(--_icon-size);
349
349
 
350
350
  display: flex;
@@ -352,16 +352,16 @@
352
352
  margin-inline-end: calc(-1 * var(--slotted-space-2, 0.25rem));
353
353
  }
354
354
 
355
- [data-ui='navigation-menu'] [data-part='indicator'] > [data-ui='icon'] {
355
+ [data-ui-navigation-menu] [data-part-indicator] > [data-ui-icon] {
356
356
  transition: rotate var(--slotted-duration-medium) var(--slotted-easing-standard);
357
357
  }
358
358
 
359
- [data-ui='navigation-menu']:not([data-orientation='vertical'])
360
- > [data-part='list']
361
- > [data-part='item']
362
- > [data-part='trigger'][data-open]
363
- > [data-part='indicator']
364
- > [data-ui='icon'] {
359
+ [data-ui-navigation-menu]:not([data-orientation='vertical'])
360
+ > [data-part-list]
361
+ > [data-part-item]
362
+ > [data-part-trigger][data-open]
363
+ > [data-part-indicator]
364
+ > [data-ui-icon] {
365
365
  rotate: 0.5turn;
366
366
  }
367
367
 
@@ -378,7 +378,7 @@
378
378
  * exit curve, never longer than it arrived. The arrival is a keyframe, the
379
379
  * reason `menu` gives: only a surface the script has placed arrives.
380
380
  */
381
- [data-ui='navigation-menu'] > [data-part='viewport'] {
381
+ [data-ui-navigation-menu] > [data-part-viewport] {
382
382
  background-color: var(--_surface);
383
383
  border: var(--_border-width) solid var(--_border-color);
384
384
  border-radius: var(--_viewport-radius);
@@ -398,18 +398,18 @@
398
398
  translate var(--slotted-duration-short) var(--slotted-easing-exit);
399
399
  }
400
400
 
401
- [data-ui='navigation-menu'] > [data-part='viewport'][data-positioned] {
401
+ [data-ui-navigation-menu] > [data-part-viewport][data-positioned] {
402
402
  display: block;
403
403
  }
404
404
 
405
- [data-ui='navigation-menu'] > [data-part='viewport'][data-open] {
405
+ [data-ui-navigation-menu] > [data-part-viewport][data-open] {
406
406
  opacity: 1;
407
407
  pointer-events: auto;
408
408
  translate: 0 0;
409
409
  transition: none;
410
410
  }
411
411
 
412
- [data-ui='navigation-menu'] > [data-part='viewport'][data-open][data-positioned] {
412
+ [data-ui-navigation-menu] > [data-part-viewport][data-open][data-positioned] {
413
413
  animation: slotted-navigation-menu-enter-down var(--slotted-duration-medium)
414
414
  var(--slotted-easing-enter);
415
415
  }
@@ -420,7 +420,7 @@
420
420
  * trigger never leaves the region that keeps the panel open. It paints
421
421
  * nothing.
422
422
  */
423
- [data-ui='navigation-menu'] > [data-part='viewport']::before {
423
+ [data-ui-navigation-menu] > [data-part-viewport]::before {
424
424
  content: '';
425
425
  inset-block-end: 100%;
426
426
  inset-inline: 0;
@@ -454,7 +454,7 @@
454
454
  * face the row, so it reads as the surface reaching for its trigger. It
455
455
  * slides from trigger to trigger with the surface.
456
456
  */
457
- [data-ui='navigation-menu'] > [data-part='viewport'] > [data-part='arrow'] {
457
+ [data-ui-navigation-menu] > [data-part-viewport] > [data-part-arrow] {
458
458
  background-color: var(--_surface);
459
459
  border-block-start: var(--_border-width) solid var(--_border-color);
460
460
  border-inline-start: var(--_border-width) solid var(--_border-color);
@@ -479,7 +479,7 @@
479
479
  * width under inline-size containment measures nothing. The space the
480
480
  * script measured caps it.
481
481
  */
482
- [data-ui='navigation-menu'] > [data-part='list'] > [data-part='item'] > [data-part='content'] {
482
+ [data-ui-navigation-menu] > [data-part-list] > [data-part-item] > [data-part-content] {
483
483
  --_columns: 1;
484
484
  --_content-size: calc(
485
485
  var(--_columns) * var(--_column-size) + (var(--_columns) - 1) * var(--_column-gap) + 2 *
@@ -536,10 +536,7 @@
536
536
  z-index: 1;
537
537
  }
538
538
 
539
- [data-ui='navigation-menu']:dir(rtl)
540
- > [data-part='list']
541
- > [data-part='item']
542
- > [data-part='content'] {
539
+ [data-ui-navigation-menu]:dir(rtl) > [data-part-list] > [data-part-item] > [data-part-content] {
543
540
  clip-path: inset(
544
541
  0 0 max(0px, calc(100% - var(--slotted-navigation-menu-viewport-block-size)))
545
542
  max(0px, calc(100% - var(--slotted-navigation-menu-viewport-inline-size))) round
@@ -547,31 +544,25 @@
547
544
  );
548
545
  }
549
546
 
550
- [data-ui='navigation-menu']
551
- > [data-part='list']
552
- > [data-part='item']
553
- > [data-part='content'][data-columns='2'] {
547
+ [data-ui-navigation-menu]
548
+ > [data-part-list]
549
+ > [data-part-item]
550
+ > [data-part-content][data-columns='2'] {
554
551
  --_columns: 2;
555
552
  }
556
553
 
557
- [data-ui='navigation-menu']
558
- > [data-part='list']
559
- > [data-part='item']
560
- > [data-part='content'][data-columns='3'] {
554
+ [data-ui-navigation-menu]
555
+ > [data-part-list]
556
+ > [data-part-item]
557
+ > [data-part-content][data-columns='3'] {
561
558
  --_columns: 3;
562
559
  }
563
560
 
564
- [data-ui='navigation-menu']
565
- > [data-part='list']
566
- > [data-part='item']
567
- > [data-part='content'][hidden] {
561
+ [data-ui-navigation-menu] > [data-part-list] > [data-part-item] > [data-part-content][hidden] {
568
562
  display: none;
569
563
  }
570
564
 
571
- [data-ui='navigation-menu']
572
- > [data-part='list']
573
- > [data-part='item']
574
- > [data-part='content'][data-open] {
565
+ [data-ui-navigation-menu] > [data-part-list] > [data-part-item] > [data-part-content][data-open] {
575
566
  opacity: 1;
576
567
  transition: none;
577
568
  }
@@ -581,12 +572,10 @@
581
572
  * panel paints one itself: a static render, a snippet and a server render
582
573
  * show the whole panel where it stands.
583
574
  */
584
- [data-ui='navigation-menu']:not([data-nested]):not(
585
- :has(> [data-part='viewport'][data-positioned])
586
- )
587
- > [data-part='list']
588
- > [data-part='item']
589
- > [data-part='content'] {
575
+ [data-ui-navigation-menu]:not([data-nested]):not(:has(> [data-part-viewport][data-positioned]))
576
+ > [data-part-list]
577
+ > [data-part-item]
578
+ > [data-part-content] {
590
579
  background-color: var(--_surface);
591
580
  border-color: var(--_border-color);
592
581
  box-shadow: var(--_shadow);
@@ -600,22 +589,22 @@
600
589
  * duration step longer. The directions are logical: `from-end` is the
601
590
  * section after this one in reading order.
602
591
  */
603
- [data-ui='navigation-menu'] [data-part='content'][data-motion='from-end'] {
592
+ [data-ui-navigation-menu] [data-part-content][data-motion='from-end'] {
604
593
  animation: slotted-navigation-menu-from-end var(--slotted-duration-medium)
605
594
  var(--slotted-easing-enter) both;
606
595
  }
607
596
 
608
- [data-ui='navigation-menu'] [data-part='content'][data-motion='from-start'] {
597
+ [data-ui-navigation-menu] [data-part-content][data-motion='from-start'] {
609
598
  animation: slotted-navigation-menu-from-start var(--slotted-duration-medium)
610
599
  var(--slotted-easing-enter) both;
611
600
  }
612
601
 
613
- [data-ui='navigation-menu'] [data-part='content'][data-motion='to-end'] {
602
+ [data-ui-navigation-menu] [data-part-content][data-motion='to-end'] {
614
603
  animation: slotted-navigation-menu-to-end var(--slotted-duration-short)
615
604
  var(--slotted-easing-exit) both;
616
605
  }
617
606
 
618
- [data-ui='navigation-menu'] [data-part='content'][data-motion='to-start'] {
607
+ [data-ui-navigation-menu] [data-part-content][data-motion='to-start'] {
619
608
  animation: slotted-navigation-menu-to-start var(--slotted-duration-short)
620
609
  var(--slotted-easing-exit) both;
621
610
  }
@@ -649,13 +638,11 @@
649
638
  }
650
639
 
651
640
  /** A list or a footer straight in the panel spans every column. */
652
- [data-ui='navigation-menu']
653
- [data-part='content']
654
- > :is([data-part='links'], [data-part='footer']) {
641
+ [data-ui-navigation-menu] [data-part-content] > :is([data-part-links], [data-part-footer]) {
655
642
  grid-column: 1 / -1;
656
643
  }
657
644
 
658
- [data-ui='navigation-menu'] [data-part='links'] {
645
+ [data-ui-navigation-menu] [data-part-links] {
659
646
  display: grid;
660
647
  gap: var(--_column-gap);
661
648
  grid-template-columns: repeat(var(--_columns, 1), minmax(0, 1fr));
@@ -665,7 +652,7 @@
665
652
  }
666
653
 
667
654
  /** A group is one column; its list is one column inside it. */
668
- [data-ui='navigation-menu'] [data-part='group'] > [data-part='links'] {
655
+ [data-ui-navigation-menu] [data-part-group] > [data-part-links] {
669
656
  grid-template-columns: minmax(0, 1fr);
670
657
  }
671
658
 
@@ -675,19 +662,19 @@
675
662
  * the panel falls to one.
676
663
  */
677
664
  @container slotted-navigation-menu-content (inline-size < 480px) {
678
- [data-ui='navigation-menu'] [data-part='links'] {
665
+ [data-ui-navigation-menu] [data-part-links] {
679
666
  grid-template-columns: minmax(0, 1fr);
680
667
  }
681
668
  }
682
669
 
683
- [data-ui='navigation-menu'] [data-part='group'] {
670
+ [data-ui-navigation-menu] [data-part-group] {
684
671
  display: flex;
685
672
  flex-direction: column;
686
673
  gap: var(--slotted-space-1, 0.125rem);
687
674
  min-inline-size: 0;
688
675
  }
689
676
 
690
- [data-ui='navigation-menu'] [data-part='group-label'] {
677
+ [data-ui-navigation-menu] [data-part-group-label] {
691
678
  color: var(--_muted-color);
692
679
  font-size: var(--_secondary-font-size);
693
680
  font-weight: var(--slotted-font-weight-semibold, 600);
@@ -704,7 +691,7 @@
704
691
  * own — a column gap is drawn even when the mark is absent — so the mark
705
692
  * holds its margin and a link with no mark starts its title at the inset.
706
693
  */
707
- [data-ui='navigation-menu'] [data-part='content'] [data-part='link'] {
694
+ [data-ui-navigation-menu] [data-part-content] [data-part-link] {
708
695
  border-radius: var(--_radius);
709
696
  box-sizing: border-box;
710
697
  color: var(--_color);
@@ -728,9 +715,7 @@
728
715
  }
729
716
 
730
717
  /** A link of plain words is a row at the control's height, its text centred in it. */
731
- [data-ui='navigation-menu']
732
- [data-part='content']
733
- [data-part='link']:not(:has([data-part='label'])) {
718
+ [data-ui-navigation-menu] [data-part-content] [data-part-link]:not(:has([data-part-label])) {
734
719
  align-content: center;
735
720
  display: grid;
736
721
  grid-template-areas: none;
@@ -738,34 +723,34 @@
738
723
  padding-block: 0;
739
724
  }
740
725
 
741
- [data-ui='navigation-menu']
742
- [data-part='content']
743
- [data-part='link']:not([data-disabled], [data-current], [aria-current='page']):hover {
726
+ [data-ui-navigation-menu]
727
+ [data-part-content]
728
+ [data-part-link]:not([data-disabled], [data-current], [aria-current='page']):hover {
744
729
  background-color: var(--_hover-background);
745
730
  }
746
731
 
747
- [data-ui='navigation-menu']
748
- [data-part='content']
749
- [data-part='link']:not([data-disabled], [data-current], [aria-current='page']):active {
732
+ [data-ui-navigation-menu]
733
+ [data-part-content]
734
+ [data-part-link]:not([data-disabled], [data-current], [aria-current='page']):active {
750
735
  background-color: var(--_active-background);
751
736
  transition-duration: var(--slotted-duration-instant);
752
737
  }
753
738
 
754
739
  /* The panel's row rule above is as specific as the shared current rule and later; restated here. */
755
- [data-ui='navigation-menu']
756
- [data-part='content']
757
- [data-part='link']:is([data-current], [aria-current='page']) {
740
+ [data-ui-navigation-menu]
741
+ [data-part-content]
742
+ [data-part-link]:is([data-current], [aria-current='page']) {
758
743
  color: var(--_current-color);
759
744
  }
760
745
 
761
- [data-ui='navigation-menu']
762
- [data-part='content']
763
- [data-part='link']:is([data-current], [aria-current='page'])
764
- > [data-part='description'] {
746
+ [data-ui-navigation-menu]
747
+ [data-part-content]
748
+ [data-part-link]:is([data-current], [aria-current='page'])
749
+ > [data-part-description] {
765
750
  color: inherit;
766
751
  }
767
752
 
768
- [data-ui='navigation-menu'] [data-part='content'] [data-part='link']:focus-visible {
753
+ [data-ui-navigation-menu] [data-part-content] [data-part-link]:focus-visible {
769
754
  outline-offset: 0;
770
755
  }
771
756
 
@@ -774,7 +759,7 @@
774
759
  * title's baseline at the midpoint of the capitals' and the lowercase
775
760
  * letters' centres — the briefing's rule for a mark beside a line of text.
776
761
  */
777
- [data-ui='navigation-menu'] [data-part='link'] > [data-part='icon'] {
762
+ [data-ui-navigation-menu] [data-part-link] > [data-part-icon] {
778
763
  --slotted-icon-size: var(--_icon-size);
779
764
 
780
765
  color: var(--_muted-color);
@@ -784,30 +769,30 @@
784
769
  transition: color var(--_duration) var(--_easing);
785
770
  }
786
771
 
787
- [data-ui='navigation-menu'] [data-part='link'] > [data-part='icon'] > [data-ui='icon'] {
772
+ [data-ui-navigation-menu] [data-part-link] > [data-part-icon] > [data-ui-icon] {
788
773
  display: inline-block;
789
774
  vertical-align: calc((1cap + 1ex) / 4 - var(--_icon-size) / 2);
790
775
  }
791
776
 
792
- [data-ui='navigation-menu']
793
- [data-part='link']:not([data-disabled], [data-current], [aria-current='page']):hover
794
- > [data-part='icon'] {
777
+ [data-ui-navigation-menu]
778
+ [data-part-link]:not([data-disabled], [data-current], [aria-current='page']):hover
779
+ > [data-part-icon] {
795
780
  color: var(--_color);
796
781
  }
797
782
 
798
- [data-ui='navigation-menu']
799
- [data-part='link']:is([data-current], [aria-current='page'], [data-disabled])
800
- > [data-part='icon'] {
783
+ [data-ui-navigation-menu]
784
+ [data-part-link]:is([data-current], [aria-current='page'], [data-disabled])
785
+ > [data-part-icon] {
801
786
  color: inherit;
802
787
  }
803
788
 
804
- [data-ui='navigation-menu'] [data-part='link'] > [data-part='label'] {
789
+ [data-ui-navigation-menu] [data-part-link] > [data-part-label] {
805
790
  font-weight: var(--slotted-font-weight-medium, 500);
806
791
  grid-area: label;
807
792
  min-inline-size: 0;
808
793
  }
809
794
 
810
- [data-ui='navigation-menu'] [data-part='link'] > [data-part='description'] {
795
+ [data-ui-navigation-menu] [data-part-link] > [data-part-description] {
811
796
  -webkit-box-orient: vertical;
812
797
  -webkit-line-clamp: 2;
813
798
  color: var(--_muted-color);
@@ -820,12 +805,12 @@
820
805
  overflow: hidden;
821
806
  }
822
807
 
823
- [data-ui='navigation-menu'] [data-part='link'][data-disabled] > [data-part='description'] {
808
+ [data-ui-navigation-menu] [data-part-link][data-disabled] > [data-part-description] {
824
809
  color: inherit;
825
810
  }
826
811
 
827
812
  /** The panel's last row, under a rule that runs the panel's inner width. */
828
- [data-ui='navigation-menu'] [data-part='footer'] {
813
+ [data-ui-navigation-menu] [data-part-footer] {
829
814
  align-items: center;
830
815
  border-block-start: var(--_border-width) solid var(--_border-color);
831
816
  display: flex;
@@ -844,25 +829,25 @@
844
829
  * the open trigger's top. The surface arrives along the inline axis it
845
830
  * opens on, the lateral case R7 names for a submenu.
846
831
  */
847
- [data-ui='navigation-menu'][data-orientation='vertical'] > [data-part='list'] {
832
+ [data-ui-navigation-menu][data-orientation='vertical'] > [data-part-list] {
848
833
  align-items: stretch;
849
834
  flex-direction: column;
850
835
  inline-size: 100%;
851
836
  }
852
837
 
853
- [data-ui='navigation-menu'][data-orientation='vertical']
854
- > [data-part='list']
855
- > [data-part='item']
856
- > :is([data-part='trigger'], [data-part='link']) {
838
+ [data-ui-navigation-menu][data-orientation='vertical']
839
+ > [data-part-list]
840
+ > [data-part-item]
841
+ > :is([data-part-trigger], [data-part-link]) {
857
842
  flex: 1 1 auto;
858
843
  justify-content: space-between;
859
844
  }
860
845
 
861
- [data-ui='navigation-menu'][data-orientation='vertical'] > [data-part='viewport'],
862
- [data-ui='navigation-menu'][data-orientation='vertical']
863
- > [data-part='list']
864
- > [data-part='item']
865
- > [data-part='content'] {
846
+ [data-ui-navigation-menu][data-orientation='vertical'] > [data-part-viewport],
847
+ [data-ui-navigation-menu][data-orientation='vertical']
848
+ > [data-part-list]
849
+ > [data-part-item]
850
+ > [data-part-content] {
866
851
  inset-block-start: var(--slotted-navigation-menu-viewport-block-start, 0px);
867
852
  inset-inline-start: calc(
868
853
  var(--slotted-navigation-menu-viewport-inline-start, 100%) + var(--_offset)
@@ -870,12 +855,12 @@
870
855
  }
871
856
 
872
857
  /* Without script a vertical panel stands beside the column. */
873
- [data-ui='navigation-menu'][data-orientation='vertical']:not([data-nested]):not(
874
- :has(> [data-part='viewport'][data-positioned])
858
+ [data-ui-navigation-menu][data-orientation='vertical']:not([data-nested]):not(
859
+ :has(> [data-part-viewport][data-positioned])
875
860
  )
876
- > [data-part='list']
877
- > [data-part='item']
878
- > [data-part='content'] {
861
+ > [data-part-list]
862
+ > [data-part-item]
863
+ > [data-part-content] {
879
864
  inset-inline-start: calc(100% + var(--_offset));
880
865
  }
881
866
 
@@ -885,48 +870,44 @@
885
870
  * edge; the script decides it and writes `data-placement`. Under the
886
871
  * trigger the surface arrives, points and bridges as it does under a row.
887
872
  */
888
- [data-ui='navigation-menu'][data-orientation='vertical'][data-placement='below']:not(
889
- [data-nested]
890
- )
891
- > [data-part='viewport'],
892
- [data-ui='navigation-menu'][data-orientation='vertical'][data-placement='below']:not(
893
- [data-nested]
894
- )
895
- > [data-part='list']
896
- > [data-part='item']
897
- > [data-part='content'] {
873
+ [data-ui-navigation-menu][data-orientation='vertical'][data-placement='below']:not([data-nested])
874
+ > [data-part-viewport],
875
+ [data-ui-navigation-menu][data-orientation='vertical'][data-placement='below']:not([data-nested])
876
+ > [data-part-list]
877
+ > [data-part-item]
878
+ > [data-part-content] {
898
879
  inset-block-start: calc(
899
880
  var(--slotted-navigation-menu-viewport-block-start, 100%) + var(--_offset)
900
881
  );
901
882
  inset-inline-start: var(--slotted-navigation-menu-viewport-inline-start, 0px);
902
883
  }
903
884
 
904
- [data-ui='navigation-menu'][data-orientation='vertical']:not([data-placement='below'])
905
- > [data-part='viewport'] {
885
+ [data-ui-navigation-menu][data-orientation='vertical']:not([data-placement='below'])
886
+ > [data-part-viewport] {
906
887
  translate: calc(-1 * var(--_inline-sign) * var(--_enter-distance)) 0;
907
888
  }
908
889
 
909
- [data-ui='navigation-menu'][data-orientation='vertical']:not([data-placement='below'])
910
- > [data-part='viewport'][data-open] {
890
+ [data-ui-navigation-menu][data-orientation='vertical']:not([data-placement='below'])
891
+ > [data-part-viewport][data-open] {
911
892
  translate: 0 0;
912
893
  }
913
894
 
914
- [data-ui='navigation-menu'][data-orientation='vertical']:not([data-placement='below'])
915
- > [data-part='viewport'][data-open][data-positioned] {
895
+ [data-ui-navigation-menu][data-orientation='vertical']:not([data-placement='below'])
896
+ > [data-part-viewport][data-open][data-positioned] {
916
897
  animation-name: slotted-navigation-menu-enter-from-start;
917
898
  }
918
899
 
919
- [data-ui='navigation-menu'][data-orientation='vertical']:not([data-placement='below'])
920
- > [data-part='viewport']::before {
900
+ [data-ui-navigation-menu][data-orientation='vertical']:not([data-placement='below'])
901
+ > [data-part-viewport]::before {
921
902
  block-size: auto;
922
903
  inline-size: calc(var(--_offset) + var(--_border-width));
923
904
  inset-block: 0;
924
905
  inset-inline: auto 100%;
925
906
  }
926
907
 
927
- [data-ui='navigation-menu'][data-orientation='vertical']:not([data-placement='below'])
928
- > [data-part='viewport']
929
- > [data-part='arrow'] {
908
+ [data-ui-navigation-menu][data-orientation='vertical']:not([data-placement='below'])
909
+ > [data-part-viewport]
910
+ > [data-part-arrow] {
930
911
  inset-block-start: calc(
931
912
  var(--slotted-navigation-menu-arrow-offset, 50%) - var(--_arrow-size) / 2
932
913
  );
@@ -935,14 +916,12 @@
935
916
  }
936
917
 
937
918
  /* Under the trigger, the chevron turns to point where the panel went. */
938
- [data-ui='navigation-menu'][data-orientation='vertical'][data-placement='below']:not(
939
- [data-nested]
940
- )
941
- > [data-part='list']
942
- > [data-part='item']
943
- > [data-part='trigger'][data-open]
944
- > [data-part='indicator']
945
- > [data-ui='icon'] {
919
+ [data-ui-navigation-menu][data-orientation='vertical'][data-placement='below']:not([data-nested])
920
+ > [data-part-list]
921
+ > [data-part-item]
922
+ > [data-part-trigger][data-open]
923
+ > [data-part-indicator]
924
+ > [data-ui-icon] {
946
925
  rotate: calc(var(--_inline-sign) * 0.25turn);
947
926
  }
948
927
 
@@ -955,7 +934,7 @@
955
934
  * one. It draws no viewport; its height is the taller of its list and its
956
935
  * open section, which the script measures into the same property.
957
936
  */
958
- [data-ui='navigation-menu'][data-nested] {
937
+ [data-ui-navigation-menu][data-nested] {
959
938
  --_nested-list-size: var(--slotted-navigation-menu-nested-list-size, 11rem);
960
939
 
961
940
  grid-column: 1 / -1;
@@ -967,7 +946,7 @@
967
946
  * root's whole height — the taller of the two — rather than the section's,
968
947
  * which left a gap under a section shorter than the list.
969
948
  */
970
- [data-ui='navigation-menu'][data-nested]::before {
949
+ [data-ui-navigation-menu][data-nested]::before {
971
950
  background-color: var(--_border-color);
972
951
  content: '';
973
952
  inline-size: var(--_border-width);
@@ -976,19 +955,19 @@
976
955
  position: absolute;
977
956
  }
978
957
 
979
- [data-ui='navigation-menu'][data-nested] > [data-part='list'] {
958
+ [data-ui-navigation-menu][data-nested] > [data-part-list] {
980
959
  align-self: flex-start;
981
960
  inline-size: var(--_nested-list-size);
982
961
  }
983
962
 
984
- [data-ui='navigation-menu'][data-nested] > [data-part='viewport'] {
963
+ [data-ui-navigation-menu][data-nested] > [data-part-viewport] {
985
964
  display: none;
986
965
  }
987
966
 
988
- [data-ui='navigation-menu'][data-nested]
989
- > [data-part='list']
990
- > [data-part='item']
991
- > [data-part='content'] {
967
+ [data-ui-navigation-menu][data-nested]
968
+ > [data-part-list]
969
+ > [data-part-item]
970
+ > [data-part-content] {
992
971
  border: 0;
993
972
  border-radius: 0;
994
973
  clip-path: none;
@@ -1003,25 +982,25 @@
1003
982
 
1004
983
  /* Stillness keeps the fades and drops every movement (R7). */
1005
984
  @media (prefers-reduced-motion: reduce) {
1006
- [data-ui='navigation-menu'] > [data-part='viewport'],
1007
- [data-ui='navigation-menu'][data-orientation='vertical'] > [data-part='viewport'] {
985
+ [data-ui-navigation-menu] > [data-part-viewport],
986
+ [data-ui-navigation-menu][data-orientation='vertical'] > [data-part-viewport] {
1008
987
  translate: 0 0;
1009
988
  transition: opacity var(--slotted-duration-short) var(--slotted-easing-exit);
1010
989
  }
1011
990
 
1012
- [data-ui='navigation-menu'] > [data-part='viewport'][data-open][data-positioned],
1013
- [data-ui='navigation-menu'][data-orientation='vertical']
1014
- > [data-part='viewport'][data-open][data-positioned] {
991
+ [data-ui-navigation-menu] > [data-part-viewport][data-open][data-positioned],
992
+ [data-ui-navigation-menu][data-orientation='vertical']
993
+ > [data-part-viewport][data-open][data-positioned] {
1015
994
  animation-name: slotted-navigation-menu-fade;
1016
995
  }
1017
996
 
1018
- [data-ui='navigation-menu']
1019
- [data-part='content']:is([data-motion='from-end'], [data-motion='from-start']) {
997
+ [data-ui-navigation-menu]
998
+ [data-part-content]:is([data-motion='from-end'], [data-motion='from-start']) {
1020
999
  animation-name: slotted-navigation-menu-fade;
1021
1000
  }
1022
1001
 
1023
- [data-ui='navigation-menu']
1024
- [data-part='content']:is([data-motion='to-end'], [data-motion='to-start']) {
1002
+ [data-ui-navigation-menu]
1003
+ [data-part-content]:is([data-motion='to-end'], [data-motion='to-start']) {
1025
1004
  animation: none;
1026
1005
  opacity: 0;
1027
1006
  }