@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
@@ -34,7 +34,7 @@
34
34
  * another. The threshold is the family's own, for the reason `list-item`
35
35
  * and `card` keep theirs: it answers the job's content, not the page.
36
36
  */
37
- [data-ui='import-export-center'] {
37
+ [data-ui-import-export-center] {
38
38
  --_text: var(--slotted-text, CanvasText);
39
39
  --_muted: var(--slotted-text-muted, GrayText);
40
40
  --_rule: var(--slotted-import-export-center-border, var(--slotted-border-subtle, ButtonBorder));
@@ -109,7 +109,7 @@
109
109
  * would collapse to nothing; `sm` states a floor capped by the viewport, as
110
110
  * `notification-center` does for the same host.
111
111
  */
112
- [data-ui='import-export-center'][data-size='sm'] {
112
+ [data-ui-import-export-center][data-size='sm'] {
113
113
  min-inline-size: var(
114
114
  --slotted-import-export-center-min-inline-size-sm,
115
115
  min(24rem, calc(100vw - var(--slotted-space-8, 2rem)))
@@ -142,7 +142,7 @@
142
142
  * The title pushes the rest to the end; a control that wraps lands at the
143
143
  * end of its own line, under the one before it.
144
144
  */
145
- [data-ui='import-export-center'] > [data-part='header'] {
145
+ [data-ui-import-export-center] > [data-part-header] {
146
146
  align-items: center;
147
147
  border-block-end: var(--_rule-size) solid var(--_rule);
148
148
  display: flex;
@@ -154,7 +154,7 @@
154
154
  padding-inline: var(--_inset-inline);
155
155
  }
156
156
 
157
- [data-ui='import-export-center'] > [data-part='header'] > [data-part='title'] {
157
+ [data-ui-import-export-center] > [data-part-header] > [data-part-title] {
158
158
  align-items: center;
159
159
  color: var(--_text);
160
160
  display: inline-flex;
@@ -178,10 +178,7 @@
178
178
  * tabular figures, in the accent pair, because what it counts is what is
179
179
  * running. Absent at nought.
180
180
  */
181
- [data-ui='import-export-center']
182
- > [data-part='header']
183
- > [data-part='title']
184
- > [data-part='count'] {
181
+ [data-ui-import-export-center] > [data-part-header] > [data-part-title] > [data-part-count] {
185
182
  align-items: center;
186
183
  background-color: var(--slotted-tone-accent-surface, Canvas);
187
184
  block-size: var(--_count-box);
@@ -208,7 +205,7 @@
208
205
  * narrow header keeps the title on its line and the controls together on
209
206
  * the next, at the end.
210
207
  */
211
- [data-ui='import-export-center'] > [data-part='header'] > [data-part='tools'] {
208
+ [data-ui-import-export-center] > [data-part-header] > [data-part-tools] {
212
209
  align-items: center;
213
210
  display: flex;
214
211
  flex-wrap: wrap;
@@ -217,8 +214,8 @@
217
214
  min-inline-size: 0;
218
215
  }
219
216
 
220
- [data-ui='import-export-center'] [data-part='tools'] > [data-part='clear'],
221
- [data-ui='import-export-center'] [data-part='tools'] > [data-part='actions'] {
217
+ [data-ui-import-export-center] [data-part-tools] > [data-part-clear],
218
+ [data-ui-import-export-center] [data-part-tools] > [data-part-actions] {
222
219
  align-items: center;
223
220
  display: inline-flex;
224
221
  flex-wrap: wrap;
@@ -228,7 +225,7 @@
228
225
  /* ── The views ───────────────────────────────────────────────────────── */
229
226
 
230
227
  /** The strip sits on the header's rule, so the tabs family's own track is off. */
231
- [data-ui='import-export-center'] > [data-part='views'] {
228
+ [data-ui-import-export-center] > [data-part-views] {
232
229
  border-block-end: var(--_rule-size) solid var(--_rule);
233
230
  min-inline-size: 0;
234
231
  padding-inline: var(--_inset-inline);
@@ -241,7 +238,7 @@
241
238
  * — bounds the list alone and the header keeps its row; a page gets the
242
239
  * whole list and no bar.
243
240
  */
244
- [data-ui='import-export-center'] > [data-part='list'] {
241
+ [data-ui-import-export-center] > [data-part-list] {
245
242
  display: flex;
246
243
  flex: 1 1 auto;
247
244
  flex-direction: column;
@@ -257,7 +254,7 @@
257
254
  }
258
255
 
259
256
  /** The list is where focus lands when the last job it held leaves; it draws the ring inward. */
260
- [data-ui='import-export-center'] > [data-part='list']:focus-visible {
257
+ [data-ui-import-export-center] > [data-part-list]:focus-visible {
261
258
  outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
262
259
  outline-offset: calc(var(--slotted-focus-ring-offset, 2px) * -1);
263
260
  }
@@ -270,7 +267,7 @@
270
267
  * title's first line; the details, when shown, run under the words and the
271
268
  * controls, never under the tile.
272
269
  */
273
- [data-ui='import-export-center'] > [data-part='list'] > [data-part='job'] {
270
+ [data-ui-import-export-center] > [data-part-list] > [data-part-job] {
274
271
  /**
275
272
  * The status, in the tone of the outcome. The rows below retune the roles;
276
273
  * the status glyph itself is the binding's, chosen from the same state.
@@ -293,37 +290,31 @@
293
290
  row-gap: var(--slotted-space-4, 0.5rem);
294
291
  }
295
292
 
296
- [data-ui='import-export-center'] > [data-part='list'] > [data-part='job']:last-child {
293
+ [data-ui-import-export-center] > [data-part-list] > [data-part-job]:last-child {
297
294
  border-block-end: 0;
298
295
  }
299
296
 
300
- [data-ui='import-export-center'] > [data-part='list'] > [data-part='job'][data-status='running'] {
297
+ [data-ui-import-export-center] > [data-part-list] > [data-part-job][data-status='running'] {
301
298
  --_tone-text: var(--slotted-tone-accent-text, Highlight);
302
299
  --_tone-solid: var(--slotted-tone-accent-solid, Highlight);
303
300
  }
304
301
 
305
- [data-ui='import-export-center']
306
- > [data-part='list']
307
- > [data-part='job'][data-outcome='success'] {
302
+ [data-ui-import-export-center] > [data-part-list] > [data-part-job][data-outcome='success'] {
308
303
  --_tone-text: var(--slotted-tone-success-text, CanvasText);
309
304
  --_tone-solid: var(--slotted-tone-success-solid, CanvasText);
310
305
  }
311
306
 
312
- [data-ui='import-export-center']
313
- > [data-part='list']
314
- > [data-part='job'][data-outcome='partial'] {
307
+ [data-ui-import-export-center] > [data-part-list] > [data-part-job][data-outcome='partial'] {
315
308
  --_tone-text: var(--slotted-tone-warning-text, CanvasText);
316
309
  --_tone-solid: var(--slotted-tone-warning-solid, CanvasText);
317
310
  }
318
311
 
319
- [data-ui='import-export-center'] > [data-part='list'] > [data-part='job'][data-outcome='failed'] {
312
+ [data-ui-import-export-center] > [data-part-list] > [data-part-job][data-outcome='failed'] {
320
313
  --_tone-text: var(--slotted-tone-danger-text, CanvasText);
321
314
  --_tone-solid: var(--slotted-tone-danger-solid, CanvasText);
322
315
  }
323
316
 
324
- [data-ui='import-export-center']
325
- > [data-part='list']
326
- > [data-part='job'][data-outcome='canceled'] {
317
+ [data-ui-import-export-center] > [data-part-list] > [data-part-job][data-outcome='canceled'] {
327
318
  --_tone-text: var(--_muted);
328
319
  --_tone-solid: var(--_muted);
329
320
  }
@@ -334,7 +325,7 @@
334
325
  * it in the scale's foreground. Aligned to the job title's first line box,
335
326
  * so the tile and the name start on one line.
336
327
  */
337
- [data-ui='import-export-center'] [data-part='job'] > [data-part='visual'] {
328
+ [data-ui-import-export-center] [data-part-job] > [data-part-visual] {
338
329
  --_kind-tile: var(--slotted-upload-kind-other);
339
330
  --slotted-icon-size: var(--_glyph);
340
331
 
@@ -365,39 +356,35 @@
365
356
  );
366
357
  }
367
358
 
368
- [data-ui='import-export-center'] [data-part='job'] > [data-part='visual'][data-kind='pdf'] {
359
+ [data-ui-import-export-center] [data-part-job] > [data-part-visual][data-kind='pdf'] {
369
360
  --_kind-tile: var(--slotted-upload-kind-pdf);
370
361
  }
371
362
 
372
- [data-ui='import-export-center'] [data-part='job'] > [data-part='visual'][data-kind='document'] {
363
+ [data-ui-import-export-center] [data-part-job] > [data-part-visual][data-kind='document'] {
373
364
  --_kind-tile: var(--slotted-upload-kind-document);
374
365
  }
375
366
 
376
- [data-ui='import-export-center']
377
- [data-part='job']
378
- > [data-part='visual'][data-kind='spreadsheet'] {
367
+ [data-ui-import-export-center] [data-part-job] > [data-part-visual][data-kind='spreadsheet'] {
379
368
  --_kind-tile: var(--slotted-upload-kind-spreadsheet);
380
369
  }
381
370
 
382
- [data-ui='import-export-center']
383
- [data-part='job']
384
- > [data-part='visual'][data-kind='presentation'] {
371
+ [data-ui-import-export-center] [data-part-job] > [data-part-visual][data-kind='presentation'] {
385
372
  --_kind-tile: var(--slotted-upload-kind-presentation);
386
373
  }
387
374
 
388
- [data-ui='import-export-center'] [data-part='job'] > [data-part='visual'][data-kind='image'] {
375
+ [data-ui-import-export-center] [data-part-job] > [data-part-visual][data-kind='image'] {
389
376
  --_kind-tile: var(--slotted-upload-kind-image);
390
377
  }
391
378
 
392
- [data-ui='import-export-center'] [data-part='job'] > [data-part='visual'][data-kind='video'] {
379
+ [data-ui-import-export-center] [data-part-job] > [data-part-visual][data-kind='video'] {
393
380
  --_kind-tile: var(--slotted-upload-kind-video);
394
381
  }
395
382
 
396
- [data-ui='import-export-center'] [data-part='job'] > [data-part='visual'][data-kind='audio'] {
383
+ [data-ui-import-export-center] [data-part-job] > [data-part-visual][data-kind='audio'] {
397
384
  --_kind-tile: var(--slotted-upload-kind-audio);
398
385
  }
399
386
 
400
- [data-ui='import-export-center'] [data-part='job'] > [data-part='visual'][data-kind='archive'] {
387
+ [data-ui-import-export-center] [data-part-job] > [data-part-visual][data-kind='archive'] {
401
388
  --_kind-tile: var(--slotted-upload-kind-archive);
402
389
  }
403
390
 
@@ -408,7 +395,7 @@
408
395
  * the summary and the message, each present only when it has something to
409
396
  * say; the gap between them is the one the meta line keeps from the title.
410
397
  */
411
- [data-ui='import-export-center'] [data-part='job'] > [data-part='body'] {
398
+ [data-ui-import-export-center] [data-part-job] > [data-part-body] {
412
399
  display: grid;
413
400
  gap: var(--slotted-space-3, 0.375rem);
414
401
  grid-area: body;
@@ -416,7 +403,7 @@
416
403
  min-inline-size: 0;
417
404
  }
418
405
 
419
- [data-ui='import-export-center'] [data-part='job'] > [data-part='body'] > [data-part='heading'] {
406
+ [data-ui-import-export-center] [data-part-job] > [data-part-body] > [data-part-heading] {
420
407
  display: flex;
421
408
  flex-direction: column;
422
409
  gap: var(--slotted-space-1, 0.125rem);
@@ -429,7 +416,7 @@
429
416
  * is set on a line of the tile's own height, and the meta line under it
430
417
  * starts where the tile ends.
431
418
  */
432
- [data-ui='import-export-center'] [data-part='heading'] > [data-part='job-title'] {
419
+ [data-ui-import-export-center] [data-part-heading] > [data-part-job-title] {
433
420
  align-self: flex-start;
434
421
  color: var(--_text);
435
422
  font-size: var(--_job-title-size);
@@ -439,7 +426,7 @@
439
426
  overflow-wrap: anywhere;
440
427
  }
441
428
 
442
- [data-ui='import-export-center'] [data-part='heading'] > a[data-part='job-title'] {
429
+ [data-ui-import-export-center] [data-part-heading] > a[data-part-job-title] {
443
430
  border-radius: var(--slotted-radius-xs, 2px);
444
431
  text-decoration-color: transparent;
445
432
  text-decoration-line: underline;
@@ -448,21 +435,19 @@
448
435
  transition: text-decoration-color var(--_duration) var(--_easing);
449
436
  }
450
437
 
451
- [data-ui='import-export-center']
452
- [data-part='heading']
453
- > a[data-part='job-title']:not([data-disabled]):hover {
438
+ [data-ui-import-export-center]
439
+ [data-part-heading]
440
+ > a[data-part-job-title]:not([data-disabled]):hover {
454
441
  text-decoration-color: currentcolor;
455
442
  }
456
443
 
457
- [data-ui='import-export-center'] [data-part='heading'] > a[data-part='job-title']:focus-visible {
444
+ [data-ui-import-export-center] [data-part-heading] > a[data-part-job-title]:focus-visible {
458
445
  outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
459
446
  outline-offset: var(--slotted-focus-ring-offset, 2px);
460
447
  }
461
448
 
462
449
  /** A title the family focuses — reveal(), a withdrawn control — without making it a tab stop. */
463
- [data-ui='import-export-center']
464
- [data-part='heading']
465
- > span[data-part='job-title']:focus-visible {
450
+ [data-ui-import-export-center] [data-part-heading] > span[data-part-job-title]:focus-visible {
466
451
  outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
467
452
  outline-offset: var(--slotted-focus-ring-offset, 2px);
468
453
  }
@@ -476,7 +461,7 @@
476
461
  * an item that wrapped to the start of a line hangs outside the box and is
477
462
  * not drawn: a line never begins with a separator.
478
463
  */
479
- [data-ui='import-export-center'] [data-part='heading'] > [data-part='meta'] {
464
+ [data-ui-import-export-center] [data-part-heading] > [data-part-meta] {
480
465
  align-items: baseline;
481
466
  color: var(--_muted);
482
467
  display: flex;
@@ -499,9 +484,9 @@
499
484
  * The margin is a bare `var()`: a `calc()` there computes to nought
500
485
  * (`docs/token-foundation.md`, rule 7).
501
486
  */
502
- [data-ui='import-export-center'] [data-part='meta'] > *,
503
- [data-ui='import-export-center'] [data-part='summary'] > *,
504
- [data-ui='import-export-center'] [data-part='progress-text'] > * {
487
+ [data-ui-import-export-center] [data-part-meta] > *,
488
+ [data-ui-import-export-center] [data-part-summary] > *,
489
+ [data-ui-import-export-center] [data-part-progress-text] > * {
505
490
  max-inline-size: 100%;
506
491
  min-inline-size: 0;
507
492
  overflow: clip;
@@ -510,10 +495,10 @@
510
495
  white-space: nowrap;
511
496
  }
512
497
 
513
- [data-ui='import-export-center'] [data-part='meta'] > * + *::before,
514
- [data-ui='import-export-center'] [data-part='summary'] > * + *::before,
515
- [data-ui='import-export-center'] [data-part='progress-text'] > * + *::before,
516
- [data-ui='import-export-center'] [data-part='status-label'] > [data-part='stage']::before {
498
+ [data-ui-import-export-center] [data-part-meta] > * + *::before,
499
+ [data-ui-import-export-center] [data-part-summary] > * + *::before,
500
+ [data-ui-import-export-center] [data-part-progress-text] > * + *::before,
501
+ [data-ui-import-export-center] [data-part-status-label] > [data-part-stage]::before {
517
502
  background-color: currentcolor;
518
503
  block-size: var(--_separator);
519
504
  border-radius: var(--slotted-radius-full, 9999px);
@@ -543,31 +528,31 @@
543
528
  * an item carrying `dir="auto"` would hang it on the wrong side of an
544
529
  * Arabic name in a left-to-right page.
545
530
  */
546
- [data-ui='import-export-center'] [data-part='meta'] > :has(> [data-part='file-name']) {
531
+ [data-ui-import-export-center] [data-part-meta] > :has(> [data-part-file-name]) {
547
532
  max-inline-size: 100%;
548
533
  white-space: nowrap;
549
534
  }
550
535
 
551
- [data-ui='import-export-center'] [data-part='meta'] [data-part='file-name'] {
536
+ [data-ui-import-export-center] [data-part-meta] [data-part-file-name] {
552
537
  display: inline-flex;
553
538
  max-inline-size: 100%;
554
539
  min-inline-size: 0;
555
540
  unicode-bidi: isolate;
556
541
  }
557
542
 
558
- [data-ui='import-export-center'] [data-part='file-name'] > [data-part='name'] {
543
+ [data-ui-import-export-center] [data-part-file-name] > [data-part-name] {
559
544
  min-inline-size: 1ch;
560
545
  overflow: hidden;
561
546
  text-overflow: ellipsis;
562
547
  white-space: nowrap;
563
548
  }
564
549
 
565
- [data-ui='import-export-center'] [data-part='file-name'] > [data-part='extension'] {
550
+ [data-ui-import-export-center] [data-part-file-name] > [data-part-extension] {
566
551
  flex: none;
567
552
  white-space: nowrap;
568
553
  }
569
554
 
570
- [data-ui='import-export-center'] [data-part='meta'] > [data-part='time'] {
555
+ [data-ui-import-export-center] [data-part-meta] > [data-part-time] {
571
556
  font-variant-numeric: tabular-nums;
572
557
  white-space: nowrap;
573
558
  }
@@ -586,7 +571,7 @@
586
571
  * version put the centre on the band's top instead of its middle, and the
587
572
  * mark stood four pixels above the words at every size.
588
573
  */
589
- [data-ui='import-export-center'] [data-part='body'] > [data-part='status'] {
574
+ [data-ui-import-export-center] [data-part-body] > [data-part-status] {
590
575
  align-items: baseline;
591
576
  color: var(--_tone-text);
592
577
  column-gap: var(--_mark-gap);
@@ -603,7 +588,7 @@
603
588
  * the two never part: a narrow job wraps the words inside their column,
604
589
  * under the first word and never under the mark.
605
590
  */
606
- [data-ui='import-export-center'] [data-part='status'] > [data-part='mark'] {
591
+ [data-ui-import-export-center] [data-part-status] > [data-part-mark] {
607
592
  --slotted-icon-size: 1em;
608
593
  --slotted-spinner-size: 1em;
609
594
 
@@ -619,7 +604,7 @@
619
604
  * while there is room and starts the next line flush with the word when
620
605
  * there is not, its separator clipped as the meta line clips its own.
621
606
  */
622
- [data-ui='import-export-center'] [data-part='status'] > [data-part='status-label'] {
607
+ [data-ui-import-export-center] [data-part-status] > [data-part-status-label] {
623
608
  align-items: baseline;
624
609
  display: flex;
625
610
  flex-wrap: wrap;
@@ -629,7 +614,7 @@
629
614
  overflow-x: clip;
630
615
  }
631
616
 
632
- [data-ui='import-export-center'] [data-part='status-label'] > * {
617
+ [data-ui-import-export-center] [data-part-status-label] > * {
633
618
  min-inline-size: 0;
634
619
  }
635
620
 
@@ -640,7 +625,7 @@
640
625
  * ellipsis on its own line when it does not fit beside the word; the whole
641
626
  * phrase stays in the DOM, and the binding repeats it in `title`.
642
627
  */
643
- [data-ui='import-export-center'] [data-part='status-label'] > [data-part='stage'] {
628
+ [data-ui-import-export-center] [data-part-status-label] > [data-part-stage] {
644
629
  max-inline-size: 100%;
645
630
  overflow: clip;
646
631
  overflow-clip-margin: var(--_separator-gap);
@@ -654,13 +639,13 @@
654
639
  * the offset above measures from; an icon in flow gave the mark the icon's
655
640
  * baseline and raised it off the line.
656
641
  */
657
- [data-ui='import-export-center'] [data-part='status'] > [data-part='mark'] > [data-ui='icon'],
658
- [data-ui='import-export-center'] [data-part='status'] > [data-part='mark'] > [data-ui='spinner'] {
642
+ [data-ui-import-export-center] [data-part-status] > [data-part-mark] > [data-ui-icon],
643
+ [data-ui-import-export-center] [data-part-status] > [data-part-mark] > [data-ui-spinner] {
659
644
  inset: 0;
660
645
  position: absolute;
661
646
  }
662
647
 
663
- [data-ui='import-export-center'] [data-part='status-label'] > [data-part='stage'] {
648
+ [data-ui-import-export-center] [data-part-status-label] > [data-part-stage] {
664
649
  color: var(--_muted);
665
650
  font-weight: var(--slotted-font-weight-regular, 400);
666
651
  }
@@ -681,13 +666,13 @@
681
666
  * small step; the words beside it are the family's, in tabular figures so
682
667
  * a number that moves does not move the rest of the line.
683
668
  */
684
- [data-ui='import-export-center'] [data-part='body'] > [data-part='progress'] {
669
+ [data-ui-import-export-center] [data-part-body] > [data-part-progress] {
685
670
  display: grid;
686
671
  gap: var(--slotted-space-2, 0.25rem);
687
672
  min-inline-size: 0;
688
673
  }
689
674
 
690
- [data-ui='import-export-center'] [data-part='progress'] > [data-part='progress-text'] {
675
+ [data-ui-import-export-center] [data-part-progress] > [data-part-progress-text] {
691
676
  color: var(--_muted);
692
677
  display: flex;
693
678
  flex-wrap: wrap;
@@ -699,7 +684,7 @@
699
684
  min-inline-size: 0;
700
685
  }
701
686
 
702
- [data-ui='import-export-center'] [data-part='body'] > [data-part='summary'] {
687
+ [data-ui-import-export-center] [data-part-body] > [data-part-summary] {
703
688
  color: var(--_muted);
704
689
  display: flex;
705
690
  flex-wrap: wrap;
@@ -717,7 +702,7 @@
717
702
  * the outcome's tone, because it is what went wrong; an expiry or a
718
703
  * permission says it in the muted voice, because it is what to know.
719
704
  */
720
- [data-ui='import-export-center'] [data-part='body'] > [data-part='message'] {
705
+ [data-ui-import-export-center] [data-part-body] > [data-part-message] {
721
706
  color: var(--_muted);
722
707
  font-size: var(--_meta-size);
723
708
  line-height: var(--_meta-line-height);
@@ -726,14 +711,14 @@
726
711
  overflow-wrap: anywhere;
727
712
  }
728
713
 
729
- [data-ui='import-export-center']
730
- [data-part='job'][data-outcome='failed']
731
- [data-part='body']
732
- > [data-part='message'],
733
- [data-ui='import-export-center']
734
- [data-part='job'][data-outcome='partial']
735
- [data-part='body']
736
- > [data-part='message'] {
714
+ [data-ui-import-export-center]
715
+ [data-part-job][data-outcome='failed']
716
+ [data-part-body]
717
+ > [data-part-message],
718
+ [data-ui-import-export-center]
719
+ [data-part-job][data-outcome='partial']
720
+ [data-part-body]
721
+ > [data-part-message] {
737
722
  color: var(--_tone-text);
738
723
  }
739
724
 
@@ -745,7 +730,7 @@
745
730
  * remove control is the family's own icon button and sits at the far end,
746
731
  * away from the controls that start something.
747
732
  */
748
- [data-ui='import-export-center'] [data-part='job'] > [data-part='controls'] {
733
+ [data-ui-import-export-center] [data-part-job] > [data-part-controls] {
749
734
  align-items: center;
750
735
  display: flex;
751
736
  flex-wrap: wrap;
@@ -754,17 +739,17 @@
754
739
  min-inline-size: 0;
755
740
  }
756
741
 
757
- [data-ui='import-export-center'] [data-part='controls'] > [data-part='download'],
758
- [data-ui='import-export-center'] [data-part='controls'] > [data-part='cancel'],
759
- [data-ui='import-export-center'] [data-part='controls'] > [data-part='retry'],
760
- [data-ui='import-export-center'] [data-part='controls'] > [data-part='toggle'],
761
- [data-ui='import-export-center'] [data-part='controls'] > [data-part='job-actions'] {
742
+ [data-ui-import-export-center] [data-part-controls] > [data-part-download],
743
+ [data-ui-import-export-center] [data-part-controls] > [data-part-cancel],
744
+ [data-ui-import-export-center] [data-part-controls] > [data-part-retry],
745
+ [data-ui-import-export-center] [data-part-controls] > [data-part-toggle],
746
+ [data-ui-import-export-center] [data-part-controls] > [data-part-job-actions] {
762
747
  align-items: center;
763
748
  display: inline-flex;
764
749
  gap: var(--slotted-control-gap-sm, 6px);
765
750
  }
766
751
 
767
- [data-ui='import-export-center'] [data-part='controls'] > [data-part='remove'] {
752
+ [data-ui-import-export-center] [data-part-controls] > [data-part-remove] {
768
753
  margin-inline-start: auto;
769
754
  }
770
755
 
@@ -773,7 +758,7 @@
773
758
  * turns to point at the details it opened. The turn is a state the eye
774
759
  * follows, so it carries the control's own transition.
775
760
  */
776
- [data-ui='import-export-center'] [data-part='toggle'] [data-part='chevron'] {
761
+ [data-ui-import-export-center] [data-part-toggle] [data-part-chevron] {
777
762
  --slotted-icon-size: var(--_control-glyph);
778
763
 
779
764
  block-size: var(--_control-glyph);
@@ -782,12 +767,12 @@
782
767
  transition: transform var(--_duration) var(--_easing);
783
768
  }
784
769
 
785
- [data-ui='import-export-center'] [data-part='toggle'][data-expanded] [data-part='chevron'] {
770
+ [data-ui-import-export-center] [data-part-toggle][data-expanded] [data-part-chevron] {
786
771
  transform: rotate(180deg);
787
772
  }
788
773
 
789
774
  /** The family's own icon control: muted at rest, the text ink under the pointer. */
790
- [data-ui='import-export-center'] button[data-part='remove'] {
775
+ [data-ui-import-export-center] button[data-part-remove] {
791
776
  align-items: center;
792
777
  appearance: none;
793
778
  background-color: transparent;
@@ -808,27 +793,27 @@
808
793
  }
809
794
 
810
795
  /** The target reaches the WCAG minimum through a transparent halo, as every inner control does. */
811
- [data-ui='import-export-center'] button[data-part='remove']::after {
796
+ [data-ui-import-export-center] button[data-part-remove]::after {
812
797
  content: '';
813
798
  inset: min(0px, calc((var(--_control) - var(--slotted-target-min, 24px)) / 2));
814
799
  position: absolute;
815
800
  }
816
801
 
817
802
  /* The cross is an `Icon` the binding draws inside the control. */
818
- [data-ui='import-export-center'] button[data-part='remove'] > [data-ui='icon'] {
803
+ [data-ui-import-export-center] button[data-part-remove] > [data-ui-icon] {
819
804
  --slotted-icon-size: var(--_control-glyph);
820
805
  }
821
806
 
822
- [data-ui='import-export-center'] button[data-part='remove']:not([data-disabled]):hover {
807
+ [data-ui-import-export-center] button[data-part-remove]:not([data-disabled]):hover {
823
808
  background-color: var(--_hover);
824
809
  color: var(--_text);
825
810
  }
826
811
 
827
- [data-ui='import-export-center'] button[data-part='remove']:not([data-disabled]):active {
812
+ [data-ui-import-export-center] button[data-part-remove]:not([data-disabled]):active {
828
813
  background-color: var(--_active);
829
814
  }
830
815
 
831
- [data-ui='import-export-center'] button[data-part='remove']:focus-visible {
816
+ [data-ui-import-export-center] button[data-part-remove]:focus-visible {
832
817
  color: var(--_text);
833
818
  outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
834
819
  outline-offset: var(--slotted-focus-ring-offset, 2px);
@@ -841,7 +826,7 @@
841
826
  * files and the rows that failed, on the sunken ground so the region reads
842
827
  * as the job's own and not as the next job.
843
828
  */
844
- [data-ui='import-export-center'] [data-part='job'] > [data-part='details'] {
829
+ [data-ui-import-export-center] [data-part-job] > [data-part-details] {
845
830
  background-color: var(--slotted-surface-sunken, Canvas);
846
831
  /* The family's rule as the region's edge: faint on the sunken ground in light and dark, and the one separation left where high-contrast paints the sunken ground as the page. */
847
832
  border: var(--_rule-size) solid var(--_rule);
@@ -855,7 +840,7 @@
855
840
  padding-inline: var(--slotted-space-5, 0.75rem);
856
841
  }
857
842
 
858
- [data-ui='import-export-center'] [data-part='job'] > [data-part='details'][hidden] {
843
+ [data-ui-import-export-center] [data-part-job] > [data-part-details][hidden] {
859
844
  display: none;
860
845
  }
861
846
 
@@ -863,7 +848,7 @@
863
848
  * The counts: figures a reader compares, so each is a label over a
864
849
  * number, in tabular figures, laid out in as many columns as fit.
865
850
  */
866
- [data-ui='import-export-center'] [data-part='details'] > [data-part='counts'] {
851
+ [data-ui-import-export-center] [data-part-details] > [data-part-counts] {
867
852
  display: grid;
868
853
  gap: var(--slotted-space-4, 0.5rem) var(--slotted-space-7, 1.25rem);
869
854
  grid-template-columns: repeat(auto-fill, minmax(6.5rem, 1fr));
@@ -871,20 +856,20 @@
871
856
  min-inline-size: 0;
872
857
  }
873
858
 
874
- [data-ui='import-export-center'] [data-part='counts'] > div {
859
+ [data-ui-import-export-center] [data-part-counts] > div {
875
860
  display: flex;
876
861
  flex-direction: column;
877
862
  gap: var(--slotted-space-1, 0.125rem);
878
863
  min-inline-size: 0;
879
864
  }
880
865
 
881
- [data-ui='import-export-center'] [data-part='counts'] dt {
866
+ [data-ui-import-export-center] [data-part-counts] dt {
882
867
  color: var(--_muted);
883
868
  font-size: var(--_small-size);
884
869
  line-height: var(--_small-line-height);
885
870
  }
886
871
 
887
- [data-ui='import-export-center'] [data-part='counts'] dd {
872
+ [data-ui-import-export-center] [data-part-counts] dd {
888
873
  color: var(--_text);
889
874
  font-size: var(--_job-title-size);
890
875
  font-variant-numeric: tabular-nums;
@@ -893,12 +878,12 @@
893
878
  margin: 0;
894
879
  }
895
880
 
896
- [data-ui='import-export-center'] [data-part='counts'] > div[data-count='failed'] dd {
881
+ [data-ui-import-export-center] [data-part-counts] > div[data-count='failed'] dd {
897
882
  color: var(--slotted-tone-danger-text, CanvasText);
898
883
  }
899
884
 
900
885
  /** The files: one row each — what the file is, its name, its availability, its control. */
901
- [data-ui='import-export-center'] [data-part='details'] > [data-part='files'] {
886
+ [data-ui-import-export-center] [data-part-details] > [data-part-files] {
902
887
  display: grid;
903
888
  gap: var(--slotted-space-3, 0.375rem);
904
889
  list-style: none;
@@ -907,7 +892,7 @@
907
892
  padding: 0;
908
893
  }
909
894
 
910
- [data-ui='import-export-center'] [data-part='files'] > [data-part='file'] {
895
+ [data-ui-import-export-center] [data-part-files] > [data-part-file] {
911
896
  align-items: center;
912
897
  display: flex;
913
898
  flex-wrap: wrap;
@@ -919,7 +904,7 @@
919
904
  }
920
905
 
921
906
  /** The words take the row and the control follows them; a row too narrow for both puts the control under them. */
922
- [data-ui='import-export-center'] [data-part='file'] > [data-part='meta'] {
907
+ [data-ui-import-export-center] [data-part-file] > [data-part-meta] {
923
908
  flex: 1 1 14rem;
924
909
  align-items: baseline;
925
910
  color: var(--_muted);
@@ -930,12 +915,12 @@
930
915
  overflow-x: clip;
931
916
  }
932
917
 
933
- [data-ui='import-export-center'] [data-part='file'] > [data-part='meta'] > strong {
918
+ [data-ui-import-export-center] [data-part-file] > [data-part-meta] > strong {
934
919
  color: var(--_text);
935
920
  font-weight: var(--slotted-font-weight-medium, 500);
936
921
  }
937
922
 
938
- [data-ui='import-export-center'] [data-part='file'] > [data-part='download'] {
923
+ [data-ui-import-export-center] [data-part-file] > [data-part-download] {
939
924
  display: inline-flex;
940
925
  }
941
926
 
@@ -944,19 +929,19 @@
944
929
  * size that scrolls, so twelve thousand rows do not become the page. The
945
930
  * caption is the table's; the note under it is the family's.
946
931
  */
947
- [data-ui='import-export-center'] [data-part='details'] > [data-part='errors'] {
932
+ [data-ui-import-export-center] [data-part-details] > [data-part-errors] {
948
933
  display: grid;
949
934
  gap: var(--slotted-space-3, 0.375rem);
950
935
  min-inline-size: 0;
951
936
  }
952
937
 
953
- [data-ui='import-export-center'] [data-part='errors'] > [data-ui='table'] {
938
+ [data-ui-import-export-center] [data-part-errors] > [data-ui-table] {
954
939
  max-block-size: var(--slotted-import-export-center-errors-max-block-size, 16rem);
955
940
  min-inline-size: 0;
956
941
  overflow: auto;
957
942
  }
958
943
 
959
- [data-ui='import-export-center'] [data-part='errors'] > [data-part='errors-note'] {
944
+ [data-ui-import-export-center] [data-part-errors] > [data-part-errors-note] {
960
945
  align-items: center;
961
946
  color: var(--_muted);
962
947
  display: flex;
@@ -971,7 +956,7 @@
971
956
  /* ── More, empty, error, footer ──────────────────────────────────────── */
972
957
 
973
958
  /** The end of what has been loaded: a pill on the control scale, the idiom `notification-center` set. */
974
- [data-ui='import-export-center'] > button[data-part='more'] {
959
+ [data-ui-import-export-center] > button[data-part-more] {
975
960
  align-items: center;
976
961
  appearance: none;
977
962
  background-color: var(--_ground);
@@ -996,32 +981,32 @@
996
981
  border-color var(--_duration) var(--_easing);
997
982
  }
998
983
 
999
- [data-ui='import-export-center'] > button[data-part='more']:not([data-loading]):enabled:hover {
984
+ [data-ui-import-export-center] > button[data-part-more]:not([data-loading]):enabled:hover {
1000
985
  background-color: var(--_hover);
1001
986
  }
1002
987
 
1003
- [data-ui='import-export-center'] > button[data-part='more']:not([data-loading]):enabled:active {
988
+ [data-ui-import-export-center] > button[data-part-more]:not([data-loading]):enabled:active {
1004
989
  background-color: var(--_active);
1005
990
  }
1006
991
 
1007
- [data-ui='import-export-center'] > button[data-part='more'][data-loading] {
992
+ [data-ui-import-export-center] > button[data-part-more][data-loading] {
1008
993
  color: var(--_muted);
1009
994
  cursor: progress;
1010
995
  }
1011
996
 
1012
- [data-ui='import-export-center'] > button[data-part='more']:focus-visible {
997
+ [data-ui-import-export-center] > button[data-part-more]:focus-visible {
1013
998
  outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
1014
999
  outline-offset: var(--slotted-focus-ring-offset, 2px);
1015
1000
  }
1016
1001
 
1017
- [data-ui='import-export-center'] > [data-part='empty'],
1018
- [data-ui='import-export-center'] > [data-part='error'] {
1002
+ [data-ui-import-export-center] > [data-part-empty],
1003
+ [data-ui-import-export-center] > [data-part-error] {
1019
1004
  min-inline-size: 0;
1020
1005
  padding-block: var(--slotted-space-9, 2rem);
1021
1006
  padding-inline: var(--_inset-inline);
1022
1007
  }
1023
1008
 
1024
- [data-ui='import-export-center'] > [data-part='footer'] {
1009
+ [data-ui-import-export-center] > [data-part-footer] {
1025
1010
  align-items: center;
1026
1011
  border-block-start: var(--_rule-size) solid var(--_rule);
1027
1012
  display: flex;
@@ -1040,17 +1025,17 @@
1040
1025
  * The first wait: skeleton jobs with the anatomy of a job — the tile, the
1041
1026
  * name, the meta line and the bar — in the boxes the loaded jobs occupy.
1042
1027
  */
1043
- [data-ui='import-export-center']
1044
- > [data-part='list']
1045
- > [data-part='job'][aria-hidden='true']
1046
- > [data-part='visual'] {
1028
+ [data-ui-import-export-center]
1029
+ > [data-part-list]
1030
+ > [data-part-job][aria-hidden='true']
1031
+ > [data-part-visual] {
1047
1032
  background-color: transparent;
1048
1033
  }
1049
1034
 
1050
- [data-ui='import-export-center']
1051
- [data-part='job'][aria-hidden='true']
1052
- > [data-part='visual']
1053
- > [data-ui='skeleton'] {
1035
+ [data-ui-import-export-center]
1036
+ [data-part-job][aria-hidden='true']
1037
+ > [data-part-visual]
1038
+ > [data-ui-skeleton] {
1054
1039
  block-size: 100%;
1055
1040
  inline-size: 100%;
1056
1041
  }
@@ -1060,7 +1045,7 @@
1060
1045
  * needs the width more than the edge needs to line up with the words.
1061
1046
  */
1062
1047
  @container import-export-center (inline-size < 22rem) {
1063
- [data-ui='import-export-center'] > [data-part='list'] > [data-part='job'] {
1048
+ [data-ui-import-export-center] > [data-part-list] > [data-part-job] {
1064
1049
  grid-template-areas:
1065
1050
  'visual body'
1066
1051
  'visual controls'
@@ -1087,13 +1072,13 @@
1087
1072
  * the status column spaces its own parts instead.
1088
1073
  */
1089
1074
  @container import-export-center (inline-size >= 42rem) {
1090
- [data-ui='import-export-center'] > [data-part='list'] {
1075
+ [data-ui-import-export-center] > [data-part-list] {
1091
1076
  column-gap: var(--_gap);
1092
1077
  display: grid;
1093
1078
  grid-template-columns: auto minmax(0, 6fr) minmax(var(--_status-column), 5fr);
1094
1079
  }
1095
1080
 
1096
- [data-ui='import-export-center'] > [data-part='list'] > [data-part='job'] {
1081
+ [data-ui-import-export-center] > [data-part-list] > [data-part-job] {
1097
1082
  grid-column: 1 / -1;
1098
1083
  grid-template-areas: none;
1099
1084
  grid-template-columns: subgrid;
@@ -1101,45 +1086,39 @@
1101
1086
  row-gap: 0;
1102
1087
  }
1103
1088
 
1104
- [data-ui='import-export-center'] [data-part='job'] > [data-part='visual'] {
1089
+ [data-ui-import-export-center] [data-part-job] > [data-part-visual] {
1105
1090
  grid-column: 1;
1106
1091
  grid-row: 1 / span 5;
1107
1092
  }
1108
1093
 
1109
- [data-ui='import-export-center'] [data-part='job'] > [data-part='body'] {
1094
+ [data-ui-import-export-center] [data-part-job] > [data-part-body] {
1110
1095
  display: contents;
1111
1096
  }
1112
1097
 
1113
- [data-ui='import-export-center']
1114
- [data-part='job']
1115
- > [data-part='body']
1116
- > [data-part='heading'] {
1098
+ [data-ui-import-export-center] [data-part-job] > [data-part-body] > [data-part-heading] {
1117
1099
  grid-column: 2;
1118
1100
  grid-row: 1 / span 5;
1119
1101
  }
1120
1102
 
1121
- [data-ui='import-export-center']
1122
- [data-part='job']
1123
- > [data-part='body']
1124
- > :not([data-part='heading']) {
1103
+ [data-ui-import-export-center] [data-part-job] > [data-part-body] > :not([data-part-heading]) {
1125
1104
  grid-column: 3;
1126
1105
  }
1127
1106
 
1128
- [data-ui='import-export-center']
1129
- [data-part='job']
1130
- > [data-part='body']
1131
- > :not([data-part='heading'])
1132
- + :not([data-part='heading']) {
1107
+ [data-ui-import-export-center]
1108
+ [data-part-job]
1109
+ > [data-part-body]
1110
+ > :not([data-part-heading])
1111
+ + :not([data-part-heading]) {
1133
1112
  margin-block-start: var(--slotted-space-3, 0.375rem);
1134
1113
  }
1135
1114
 
1136
- [data-ui='import-export-center'] [data-part='job'] > [data-part='controls'] {
1115
+ [data-ui-import-export-center] [data-part-job] > [data-part-controls] {
1137
1116
  grid-column: 3;
1138
1117
  grid-row: 5;
1139
1118
  margin-block-start: var(--slotted-space-4, 0.5rem);
1140
1119
  }
1141
1120
 
1142
- [data-ui='import-export-center'] [data-part='job'] > [data-part='details'] {
1121
+ [data-ui-import-export-center] [data-part-job] > [data-part-details] {
1143
1122
  grid-column: 2 / -1;
1144
1123
  grid-row: 6;
1145
1124
  margin-block-start: var(--_gap);
@@ -1155,20 +1134,20 @@
1155
1134
  * keeps the author's `currentcolor`, which has already been forced, so the
1156
1135
  * dot is drawn in the system's palette.
1157
1136
  */
1158
- [data-ui='import-export-center'] [data-part='meta'] > * + *::before,
1159
- [data-ui='import-export-center'] [data-part='summary'] > * + *::before,
1160
- [data-ui='import-export-center'] [data-part='progress-text'] > * + *::before,
1161
- [data-ui='import-export-center'] [data-part='status-label'] > [data-part='stage']::before {
1137
+ [data-ui-import-export-center] [data-part-meta] > * + *::before,
1138
+ [data-ui-import-export-center] [data-part-summary] > * + *::before,
1139
+ [data-ui-import-export-center] [data-part-progress-text] > * + *::before,
1140
+ [data-ui-import-export-center] [data-part-status-label] > [data-part-stage]::before {
1162
1141
  forced-color-adjust: none;
1163
1142
  }
1164
1143
 
1165
1144
  /** The tile loses its kind's colour, as every tone does here; its edge keeps the square. */
1166
- [data-ui='import-export-center'] [data-part='job'] > [data-part='visual'] {
1145
+ [data-ui-import-export-center] [data-part-job] > [data-part-visual] {
1167
1146
  border: var(--slotted-border-width-thin, 1px) solid CanvasText;
1168
1147
  color: CanvasText;
1169
1148
  }
1170
1149
 
1171
- [data-ui='import-export-center'] [data-part='job'] > [data-part='details'] {
1150
+ [data-ui-import-export-center] [data-part-job] > [data-part-details] {
1172
1151
  border-color: CanvasText;
1173
1152
  }
1174
1153
  }