@slotted/styles 0.1.0-beta.0 → 0.1.0-beta.10
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.
- package/package.json +1 -1
- package/src/accordion/accordion.css +10 -10
- package/src/action-bar/action-bar.css +31 -32
- package/src/action-sheet/action-sheet.css +36 -36
- package/src/alert/alert.css +43 -35
- package/src/alert/alert.tokens.json +5 -0
- package/src/app-shell/app-shell.css +356 -301
- package/src/aspect-ratio/aspect-ratio.css +9 -9
- package/src/attachment/attachment.css +91 -99
- package/src/avatar/avatar.css +71 -41
- package/src/avatar/avatar.tokens.json +7 -0
- package/src/avatar-group/avatar-group.css +21 -22
- package/src/badge/badge.css +45 -37
- package/src/badge/badge.tokens.json +5 -0
- package/src/breadcrumb/breadcrumb.css +37 -37
- package/src/button/button.css +139 -64
- package/src/button/button.tokens.json +10 -0
- package/src/button-group/button-group.css +76 -72
- package/src/button-group/button-group.tokens.json +2 -0
- package/src/calendar/calendar.css +93 -103
- package/src/card/card.css +54 -61
- package/src/carousel/carousel.css +150 -161
- package/src/cascader/cascader.css +152 -153
- package/src/cascader/cascader.tokens.json +1 -0
- package/src/chart/chart.css +242 -239
- package/src/chart/chart.tokens.json +1 -0
- package/src/checkbox/checkbox.css +119 -124
- package/src/checkbox-group/checkbox-group.css +7 -7
- package/src/code-block/code-block.css +81 -85
- package/src/collapsible/collapsible.css +69 -76
- package/src/color-picker/color-picker.css +83 -91
- package/src/column-manager/column-manager.css +106 -114
- package/src/combobox/combobox.css +132 -107
- package/src/combobox/combobox.tokens.json +1 -0
- package/src/command-palette/command-palette.css +84 -90
- package/src/container/container.css +24 -24
- package/src/context-menu/context-menu.css +8 -8
- package/src/currency-field/currency-field.css +210 -88
- package/src/currency-field/currency-field.tokens.json +13 -0
- package/src/dashboard-grid/dashboard-grid.css +148 -116
- package/src/data-grid/data-grid.css +504 -469
- package/src/data-grid/data-grid.tokens.json +2 -0
- package/src/data-list/data-list.css +81 -70
- package/src/data-list/data-list.tokens.json +2 -1
- package/src/date-field/date-field.css +55 -52
- package/src/date-field/date-field.tokens.json +1 -0
- package/src/date-picker/date-picker.css +40 -42
- package/src/date-range-picker/date-range-picker.css +114 -118
- package/src/datetime-field/datetime-field.css +78 -80
- package/src/datetime-field/datetime-field.tokens.json +1 -0
- package/src/datetime-picker/datetime-picker.css +61 -63
- package/src/datetime-range-picker/datetime-range-picker.css +149 -156
- package/src/description-list/description-list.css +61 -64
- package/src/detail-panel/detail-panel.css +70 -70
- package/src/dialog/dialog.css +334 -153
- package/src/dialog/dialog.tokens.json +5 -0
- package/src/divider/divider.css +18 -18
- package/src/drawer/drawer.css +186 -209
- package/src/entity-picker/entity-picker.css +238 -241
- package/src/entity-picker/entity-picker.tokens.json +1 -0
- package/src/event-calendar/event-calendar.css +343 -385
- package/src/field/field.css +74 -78
- package/src/field-group/field-group.css +22 -25
- package/src/filter-bar/filter-bar.css +193 -209
- package/src/form/form.css +34 -24
- package/src/form/form.tokens.json +1 -0
- package/src/fullscreen/fullscreen.css +24 -25
- package/src/grid/grid.css +28 -28
- package/src/highlight/highlight.css +6 -6
- package/src/hover-card/hover-card.css +6 -6
- package/src/icon/icon.css +19 -15
- package/src/icon/icon.tokens.json +1 -0
- package/src/image/image.css +39 -39
- package/src/import-export-center/import-export-center.css +135 -156
- package/src/inline/inline.css +27 -27
- package/src/inline-message/inline-message.css +52 -28
- package/src/inline-message/inline-message.tokens.json +4 -0
- package/src/kbd/kbd.css +30 -26
- package/src/link/link.css +15 -15
- package/src/list/list.css +44 -17
- package/src/list/list.tokens.json +4 -0
- package/src/list-item/list-item.css +80 -66
- package/src/list-item/list-item.tokens.json +7 -0
- package/src/listbox/listbox.css +56 -59
- package/src/loading-overlay/loading-overlay.css +75 -92
- package/src/markdown/markdown.css +17 -17
- package/src/menu/menu.css +83 -63
- package/src/menubar/menubar.css +13 -13
- package/src/message/message.css +182 -202
- package/src/message/message.tokens.json +5 -0
- package/src/message-scroller/message-scroller.css +41 -42
- package/src/multi-select/multi-select.css +152 -145
- package/src/multi-select/multi-select.tokens.json +1 -0
- package/src/navigation-menu/navigation-menu.css +167 -188
- package/src/notification-center/notification-center.css +140 -148
- package/src/notification-center/notification-center.tokens.json +3 -0
- package/src/number-field/number-field.css +84 -83
- package/src/number-field/number-field.tokens.json +1 -0
- package/src/otp-input/otp-input.css +67 -57
- package/src/otp-input/otp-input.tokens.json +1 -0
- package/src/page/page.css +23 -23
- package/src/page-header/page-header.css +268 -281
- package/src/page-header/page-header.tokens.json +1 -0
- package/src/pagination/pagination.css +68 -72
- package/src/popover/popover.css +40 -49
- package/src/progress-indicator/progress-indicator.css +177 -120
- package/src/progress-indicator/progress-indicator.tokens.json +1 -1
- package/src/prompt-composer/prompt-composer.css +221 -102
- package/src/prompt-composer/prompt-composer.tokens.json +15 -0
- package/src/prose/prose.css +71 -75
- package/src/radio-group/radio-group.css +98 -103
- package/src/rating/rating.css +136 -132
- package/src/rating/rating.tokens.json +1 -0
- package/src/result-state/result-state.css +74 -77
- package/src/runtime-properties.mjs +2 -0
- package/src/saved-views/saved-views.css +41 -47
- package/src/scroll-area/scroll-area.css +39 -32
- package/src/section/section.css +161 -41
- package/src/section/section.tokens.json +7 -2
- package/src/segmented-control/segmented-control.css +254 -97
- package/src/segmented-control/segmented-control.tokens.json +15 -11
- package/src/select/select.css +118 -117
- package/src/select/select.tokens.json +1 -0
- package/src/side-navigation/side-navigation.css +179 -182
- package/src/side-navigation/side-navigation.tokens.json +1 -0
- package/src/skeleton/skeleton.css +47 -48
- package/src/slider/slider.css +86 -88
- package/src/sparkline/sparkline.css +62 -40
- package/src/sparkline/sparkline.tokens.json +2 -0
- package/src/spinner/spinner.css +39 -182
- package/src/spinner/spinner.tokens.json +0 -2
- package/src/split-button/split-button.css +30 -31
- package/src/split-button/split-button.tokens.json +1 -0
- package/src/splitter/splitter.css +35 -35
- package/src/stack/stack.css +24 -24
- package/src/stat-card/stat-card.css +341 -224
- package/src/stat-card/stat-card.tokens.json +3 -0
- package/src/status-indicator/status-indicator.css +28 -28
- package/src/stepper/stepper.css +58 -62
- package/src/switch/switch.css +86 -92
- package/src/table/table.css +310 -165
- package/src/table/table.tokens.json +6 -0
- package/src/table-of-contents/table-of-contents.css +51 -54
- package/src/tabs/tabs.css +330 -302
- package/src/tabs/tabs.tokens.json +8 -5
- package/src/tag/tag.css +79 -71
- package/src/tag/tag.tokens.json +9 -0
- package/src/tags-input/tags-input.css +145 -82
- package/src/tags-input/tags-input.tokens.json +7 -1
- package/src/text-field/text-field.css +132 -136
- package/src/text-field/text-field.tokens.json +1 -0
- package/src/textarea/textarea.css +31 -28
- package/src/textarea/textarea.tokens.json +1 -0
- package/src/time-field/time-field.css +72 -69
- package/src/time-field/time-field.tokens.json +1 -0
- package/src/time-picker/time-picker.css +56 -58
- package/src/time-range-picker/time-range-picker.css +126 -133
- package/src/timeline/timeline.css +254 -266
- package/src/timeline/timeline.tokens.json +5 -0
- package/src/toast/toast.css +89 -90
- package/src/toast/toast.tokens.json +5 -0
- package/src/toggle/toggle.css +62 -25
- package/src/toggle/toggle.tokens.json +8 -0
- package/src/toggle-group/toggle-group.css +106 -60
- package/src/toggle-group/toggle-group.tokens.json +10 -0
- package/src/toolbar/toolbar.css +30 -35
- package/src/tooltip/tooltip.css +26 -26
- package/src/top-navigation/top-navigation.css +243 -259
- package/src/tour/tour.css +51 -60
- package/src/transfer/transfer.css +160 -164
- package/src/tree/tree.css +103 -111
- package/src/typography/typography.css +40 -36
- package/src/typography/typography.tokens.json +1 -0
- package/src/upload/upload.css +224 -224
- package/src/visually-hidden/visually-hidden.css +1 -1
- package/src/wizard/wizard.css +185 -197
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
* The layer, the scrim, the motion of arriving and leaving, the focus
|
|
24
24
|
* containment and the Escape that closes are `dialog`'s: the panel stands
|
|
25
25
|
* inside a dialog whose surface is `plain`, and `identity.test.mjs` keeps
|
|
26
|
-
* this sheet off `[data-ui
|
|
26
|
+
* this sheet off `[data-ui-dialog]`. The keys in an item's shortcut and in
|
|
27
27
|
* the footer's hints are `kbd`'s, worn as `data-ui='kbd'` under this family's
|
|
28
28
|
* own `shortcut` and `hint` parts, so every selector on those two parts is a
|
|
29
29
|
* child selector and never reaches the caps inside them. The mark on the
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
* down. Only the panel's own radius and the list's inset come off the space
|
|
58
58
|
* and radius scales.
|
|
59
59
|
*/
|
|
60
|
-
[data-ui
|
|
60
|
+
[data-ui-command-palette] {
|
|
61
61
|
--_surface: var(--slotted-command-palette-surface, var(--slotted-surface-raised, #ffffff));
|
|
62
62
|
--_text: var(--slotted-command-palette-text, var(--slotted-text, #0f172a));
|
|
63
63
|
--_muted: var(--slotted-command-palette-text-muted, var(--slotted-text-muted, #5b6b7f));
|
|
@@ -137,7 +137,7 @@
|
|
|
137
137
|
|
|
138
138
|
/* ── Size ─────────────────────────────────────────────────────────────── */
|
|
139
139
|
|
|
140
|
-
[data-ui
|
|
140
|
+
[data-ui-command-palette][data-size='sm'] {
|
|
141
141
|
--_item-height: var(--slotted-control-height-sm, 30px);
|
|
142
142
|
--_item-inset: var(--slotted-control-padding-inline-sm, 10px);
|
|
143
143
|
--_font-size: var(--slotted-control-font-size-sm, 12px);
|
|
@@ -150,7 +150,7 @@
|
|
|
150
150
|
--_chip-size: var(--slotted-control-inner-size-sm, 22px);
|
|
151
151
|
}
|
|
152
152
|
|
|
153
|
-
[data-ui
|
|
153
|
+
[data-ui-command-palette][data-size='lg'] {
|
|
154
154
|
--_item-height: var(--slotted-control-height-lg, 38px);
|
|
155
155
|
--_item-inset: var(--slotted-control-padding-inline-lg, 16px);
|
|
156
156
|
--_font-size: var(--slotted-control-font-size-lg, 14px);
|
|
@@ -172,7 +172,7 @@
|
|
|
172
172
|
* something else — so it draws no edge and no ground of its own, and the
|
|
173
173
|
* rule under the header is the one line between the field and the list.
|
|
174
174
|
*/
|
|
175
|
-
[data-ui
|
|
175
|
+
[data-ui-command-palette] > [data-part-header] {
|
|
176
176
|
align-items: center;
|
|
177
177
|
border-block-end: var(--_border-width) solid var(--_border-color);
|
|
178
178
|
box-sizing: border-box;
|
|
@@ -194,8 +194,7 @@
|
|
|
194
194
|
* a bottom edge: `state-rail.test.mjs` (R1) refuses a state rail on the
|
|
195
195
|
* start or the top edge, and this is neither.
|
|
196
196
|
*/
|
|
197
|
-
[data-ui
|
|
198
|
-
> [data-part='header']:has(> [data-part='input']:focus-visible)::after {
|
|
197
|
+
[data-ui-command-palette] > [data-part-header]:has(> [data-part-input]:focus-visible)::after {
|
|
199
198
|
background-color: var(--slotted-focus-ring-color, currentColor);
|
|
200
199
|
block-size: var(--slotted-focus-ring-width, 2px);
|
|
201
200
|
content: '';
|
|
@@ -205,7 +204,7 @@
|
|
|
205
204
|
position: absolute;
|
|
206
205
|
}
|
|
207
206
|
|
|
208
|
-
[data-ui
|
|
207
|
+
[data-ui-command-palette] :is([data-part-search], [data-part-busy]) {
|
|
209
208
|
color: var(--_muted);
|
|
210
209
|
flex: none;
|
|
211
210
|
}
|
|
@@ -215,7 +214,7 @@
|
|
|
215
214
|
* icon box at the header's icon size so it sits on the field's line; a
|
|
216
215
|
* character is never an icon.
|
|
217
216
|
*/
|
|
218
|
-
[data-ui
|
|
217
|
+
[data-ui-command-palette] [data-part-search] {
|
|
219
218
|
--slotted-icon-size: var(--_header-icon-size);
|
|
220
219
|
|
|
221
220
|
display: flex;
|
|
@@ -226,7 +225,7 @@
|
|
|
226
225
|
* `spinner/spinner.css`'s, worn as `data-ui='spinner'` beside this family's
|
|
227
226
|
* part, and this family only says where it stands and how big it is.
|
|
228
227
|
*/
|
|
229
|
-
[data-ui
|
|
228
|
+
[data-ui-command-palette] [data-part-busy] {
|
|
230
229
|
--slotted-spinner-size: var(--_header-icon-size);
|
|
231
230
|
}
|
|
232
231
|
|
|
@@ -237,7 +236,7 @@
|
|
|
237
236
|
* Each is a control that returns to its page; the last one is where the
|
|
238
237
|
* reader is and reads as the field's own prefix.
|
|
239
238
|
*/
|
|
240
|
-
[data-ui
|
|
239
|
+
[data-ui-command-palette] [data-part-pages] {
|
|
241
240
|
align-items: center;
|
|
242
241
|
display: flex;
|
|
243
242
|
flex: none;
|
|
@@ -249,11 +248,11 @@
|
|
|
249
248
|
padding: 0;
|
|
250
249
|
}
|
|
251
250
|
|
|
252
|
-
[data-ui
|
|
251
|
+
[data-ui-command-palette] [data-part-pages] > li {
|
|
253
252
|
display: contents;
|
|
254
253
|
}
|
|
255
254
|
|
|
256
|
-
[data-ui
|
|
255
|
+
[data-ui-command-palette] [data-part-page] {
|
|
257
256
|
align-items: center;
|
|
258
257
|
appearance: none;
|
|
259
258
|
background-color: var(--slotted-command-palette-page-surface, var(--_hover));
|
|
@@ -284,32 +283,32 @@
|
|
|
284
283
|
white-space: nowrap;
|
|
285
284
|
}
|
|
286
285
|
|
|
287
|
-
[data-ui
|
|
286
|
+
[data-ui-command-palette] [data-part-page] > span {
|
|
288
287
|
overflow: hidden;
|
|
289
288
|
text-overflow: ellipsis;
|
|
290
289
|
}
|
|
291
290
|
|
|
292
291
|
/* A chip inside the header is shorter than the target minimum at every
|
|
293
292
|
density; the hit area is recovered outside its paint. */
|
|
294
|
-
[data-ui
|
|
293
|
+
[data-ui-command-palette] [data-part-page]::after {
|
|
295
294
|
content: '';
|
|
296
295
|
inset: min(0px, calc((100% - var(--slotted-target-min, 24px)) / 2));
|
|
297
296
|
position: absolute;
|
|
298
297
|
}
|
|
299
298
|
|
|
300
|
-
[data-ui
|
|
299
|
+
[data-ui-command-palette] [data-part-page]:not(:disabled):hover {
|
|
301
300
|
background-color: var(--_active);
|
|
302
301
|
color: var(--_text);
|
|
303
302
|
}
|
|
304
303
|
|
|
305
|
-
[data-ui
|
|
304
|
+
[data-ui-command-palette] [data-part-page]:not(:disabled):active {
|
|
306
305
|
background-color: var(--_active);
|
|
307
306
|
}
|
|
308
307
|
|
|
309
308
|
/* Drawn one width inside the chip, as a chip in a scrolling row draws it:
|
|
310
309
|
the header clips at its padding edge and a ring at the theme's offset
|
|
311
310
|
would lose its outer half. */
|
|
312
|
-
[data-ui
|
|
311
|
+
[data-ui-command-palette] [data-part-page]:focus-visible {
|
|
313
312
|
outline: var(--slotted-focus-ring-width, 2px) solid
|
|
314
313
|
var(--slotted-focus-ring-color, currentColor);
|
|
315
314
|
outline-offset: calc(-1 * var(--slotted-focus-ring-width, 2px));
|
|
@@ -321,7 +320,7 @@
|
|
|
321
320
|
* right-to-left document so the trail reads in the direction the reader
|
|
322
321
|
* reads.
|
|
323
322
|
*/
|
|
324
|
-
[data-ui
|
|
323
|
+
[data-ui-command-palette] [data-part-pages] > li > [data-ui-icon] {
|
|
325
324
|
--slotted-icon-size: var(--_icon-size);
|
|
326
325
|
|
|
327
326
|
color: var(--_muted);
|
|
@@ -330,7 +329,7 @@
|
|
|
330
329
|
|
|
331
330
|
/* ── The field ────────────────────────────────────────────────────────── */
|
|
332
331
|
|
|
333
|
-
[data-ui
|
|
332
|
+
[data-ui-command-palette] [data-part-input] {
|
|
334
333
|
appearance: none;
|
|
335
334
|
background: transparent;
|
|
336
335
|
block-size: 100%;
|
|
@@ -349,7 +348,7 @@
|
|
|
349
348
|
padding: 0;
|
|
350
349
|
}
|
|
351
350
|
|
|
352
|
-
[data-ui
|
|
351
|
+
[data-ui-command-palette] [data-part-input]::placeholder {
|
|
353
352
|
color: var(--_muted);
|
|
354
353
|
opacity: 1;
|
|
355
354
|
}
|
|
@@ -362,7 +361,7 @@
|
|
|
362
361
|
* or not — measured on the Nexora palette at 390 pixels. Only while the
|
|
363
362
|
* placeholder shows: what the reader types is never faded under the caret.
|
|
364
363
|
*/
|
|
365
|
-
[data-ui
|
|
364
|
+
[data-ui-command-palette] [data-part-input]:placeholder-shown {
|
|
366
365
|
mask-image: linear-gradient(
|
|
367
366
|
to right,
|
|
368
367
|
#000 calc(100% - var(--slotted-command-palette-placeholder-fade, 2em)),
|
|
@@ -372,8 +371,8 @@
|
|
|
372
371
|
|
|
373
372
|
/* The browser's own clear and its search decoration, which the family
|
|
374
373
|
draws itself so the two schemes and the three densities agree. */
|
|
375
|
-
[data-ui
|
|
376
|
-
[data-ui
|
|
374
|
+
[data-ui-command-palette] [data-part-input]::-webkit-search-cancel-button,
|
|
375
|
+
[data-ui-command-palette] [data-part-input]::-webkit-search-decoration {
|
|
377
376
|
appearance: none;
|
|
378
377
|
}
|
|
379
378
|
|
|
@@ -384,7 +383,7 @@
|
|
|
384
383
|
* because Escape already clears and a second stop before the list is a
|
|
385
384
|
* stop nobody asked for.
|
|
386
385
|
*/
|
|
387
|
-
[data-ui
|
|
386
|
+
[data-ui-command-palette] > [data-part-header] > [data-part-clear] {
|
|
388
387
|
--_clear-size: min(
|
|
389
388
|
calc(var(--_icon-size) + 2 * var(--slotted-space-2, 0.25rem)),
|
|
390
389
|
var(--slotted-control-inner-size-md, 24px)
|
|
@@ -412,7 +411,7 @@
|
|
|
412
411
|
var(--slotted-control-transition-easing, var(--slotted-easing-standard));
|
|
413
412
|
}
|
|
414
413
|
|
|
415
|
-
[data-ui
|
|
414
|
+
[data-ui-command-palette] > [data-part-header] > [data-part-clear]::after {
|
|
416
415
|
content: '';
|
|
417
416
|
inset: min(0px, calc((100% - var(--slotted-target-min, 24px)) / 2));
|
|
418
417
|
position: absolute;
|
|
@@ -423,27 +422,27 @@
|
|
|
423
422
|
the hit area above grows to 44 pixels around them. It does not reach
|
|
424
423
|
across the close control after it. */
|
|
425
424
|
@media (pointer: coarse) {
|
|
426
|
-
[data-ui
|
|
425
|
+
[data-ui-command-palette] > [data-part-header] > [data-part-clear]::after {
|
|
427
426
|
inset: min(0px, calc((100% - var(--slotted-target-comfortable, 44px)) / 2));
|
|
428
427
|
}
|
|
429
428
|
|
|
430
|
-
[data-ui
|
|
431
|
-
> [data-part
|
|
432
|
-
> [data-part
|
|
429
|
+
[data-ui-command-palette]
|
|
430
|
+
> [data-part-header]
|
|
431
|
+
> [data-part-clear]:has(+ [data-part-close])::after {
|
|
433
432
|
inset-inline-end: 0;
|
|
434
433
|
}
|
|
435
434
|
}
|
|
436
435
|
|
|
437
|
-
[data-ui
|
|
436
|
+
[data-ui-command-palette] > [data-part-header] > [data-part-clear]:not(:disabled):hover {
|
|
438
437
|
background-color: var(--_hover);
|
|
439
438
|
color: var(--_text);
|
|
440
439
|
}
|
|
441
440
|
|
|
442
|
-
[data-ui
|
|
441
|
+
[data-ui-command-palette] > [data-part-header] > [data-part-clear]:not(:disabled):active {
|
|
443
442
|
background-color: var(--_active);
|
|
444
443
|
}
|
|
445
444
|
|
|
446
|
-
[data-ui
|
|
445
|
+
[data-ui-command-palette] > [data-part-header] > [data-part-clear]:focus-visible {
|
|
447
446
|
outline: var(--slotted-focus-ring-width, 2px) solid
|
|
448
447
|
var(--slotted-focus-ring-color, currentColor);
|
|
449
448
|
outline-offset: calc(-1 * var(--slotted-focus-ring-width, 2px));
|
|
@@ -451,7 +450,7 @@
|
|
|
451
450
|
|
|
452
451
|
/* Present in the DOM whenever the family renders it, drawn only with a
|
|
453
452
|
query: a clear beside an empty field is a control with nothing to do. */
|
|
454
|
-
[data-ui
|
|
453
|
+
[data-ui-command-palette]:not([data-query]) > [data-part-header] > [data-part-clear] {
|
|
455
454
|
display: none;
|
|
456
455
|
}
|
|
457
456
|
|
|
@@ -463,7 +462,7 @@
|
|
|
463
462
|
* beside a search field reads as clear, which is what `clear` already is.
|
|
464
463
|
* Drawn only under the dialog's own full-screen query, below.
|
|
465
464
|
*/
|
|
466
|
-
[data-ui
|
|
465
|
+
[data-ui-command-palette] > [data-part-header] > [data-part-close] {
|
|
467
466
|
align-items: center;
|
|
468
467
|
appearance: none;
|
|
469
468
|
background-color: transparent;
|
|
@@ -483,15 +482,15 @@
|
|
|
483
482
|
white-space: nowrap;
|
|
484
483
|
}
|
|
485
484
|
|
|
486
|
-
[data-ui
|
|
485
|
+
[data-ui-command-palette] > [data-part-header] > [data-part-close]:not(:disabled):hover {
|
|
487
486
|
background-color: var(--_hover);
|
|
488
487
|
}
|
|
489
488
|
|
|
490
|
-
[data-ui
|
|
489
|
+
[data-ui-command-palette] > [data-part-header] > [data-part-close]:not(:disabled):active {
|
|
491
490
|
background-color: var(--_active);
|
|
492
491
|
}
|
|
493
492
|
|
|
494
|
-
[data-ui
|
|
493
|
+
[data-ui-command-palette] > [data-part-header] > [data-part-close]:focus-visible {
|
|
495
494
|
outline: var(--slotted-focus-ring-width, 2px) solid
|
|
496
495
|
var(--slotted-focus-ring-color, currentColor);
|
|
497
496
|
outline-offset: calc(-1 * var(--slotted-focus-ring-width, 2px));
|
|
@@ -503,7 +502,7 @@
|
|
|
503
502
|
* Five columns, bounded, scrolling. `overscroll-behavior` keeps the page —
|
|
504
503
|
* or the popover — still once the list has scrolled to its end.
|
|
505
504
|
*/
|
|
506
|
-
[data-ui
|
|
505
|
+
[data-ui-command-palette] > [data-part-list] {
|
|
507
506
|
box-sizing: border-box;
|
|
508
507
|
display: grid;
|
|
509
508
|
grid-template-columns: auto minmax(0, 1fr) auto auto auto;
|
|
@@ -517,19 +516,19 @@
|
|
|
517
516
|
scroll-padding-block: var(--_list-inset);
|
|
518
517
|
}
|
|
519
518
|
|
|
520
|
-
[data-ui
|
|
519
|
+
[data-ui-command-palette] > [data-part-list][data-loading] {
|
|
521
520
|
cursor: progress;
|
|
522
521
|
}
|
|
523
522
|
|
|
524
523
|
/* ── Groups ───────────────────────────────────────────────────────────── */
|
|
525
524
|
|
|
526
|
-
[data-ui
|
|
525
|
+
[data-ui-command-palette] [data-part-group] {
|
|
527
526
|
display: grid;
|
|
528
527
|
grid-column: 1 / -1;
|
|
529
528
|
grid-template-columns: subgrid;
|
|
530
529
|
}
|
|
531
530
|
|
|
532
|
-
[data-ui
|
|
531
|
+
[data-ui-command-palette] [data-part-group-label] {
|
|
533
532
|
color: var(--_muted);
|
|
534
533
|
font-size: var(--_secondary-font-size);
|
|
535
534
|
font-weight: var(--slotted-font-weight-semibold, 600);
|
|
@@ -548,7 +547,7 @@
|
|
|
548
547
|
* `min-block-size` rather than a height, because an item with a description
|
|
549
548
|
* is two lines tall and still has to clear the target minimum.
|
|
550
549
|
*/
|
|
551
|
-
[data-ui
|
|
550
|
+
[data-ui-command-palette] [data-part-item] {
|
|
552
551
|
align-content: center;
|
|
553
552
|
border-radius: var(--_item-radius);
|
|
554
553
|
box-sizing: border-box;
|
|
@@ -582,11 +581,11 @@
|
|
|
582
581
|
* moves; the two are told apart so a reader who arrowed to one row while the
|
|
583
582
|
* pointer rests on another reads exactly one cursor.
|
|
584
583
|
*/
|
|
585
|
-
[data-ui
|
|
584
|
+
[data-ui-command-palette] [data-part-item]:not([data-disabled]):not([data-current]):hover {
|
|
586
585
|
background-color: var(--_hover);
|
|
587
586
|
}
|
|
588
587
|
|
|
589
|
-
[data-ui
|
|
588
|
+
[data-ui-command-palette] [data-part-item]:not([data-disabled]):not([data-current]):active {
|
|
590
589
|
background-color: var(--_active);
|
|
591
590
|
}
|
|
592
591
|
|
|
@@ -597,13 +596,13 @@
|
|
|
597
596
|
* of row is a reading, not a movement, and a transition lags behind a reader
|
|
598
597
|
* holding ArrowDown.
|
|
599
598
|
*/
|
|
600
|
-
[data-ui
|
|
599
|
+
[data-ui-command-palette] [data-part-item][data-current] {
|
|
601
600
|
background-color: var(--_highlight);
|
|
602
601
|
box-shadow: inset 0 0 0 var(--slotted-border-width-thin, 1px) var(--_highlight-ring);
|
|
603
602
|
transition: none;
|
|
604
603
|
}
|
|
605
604
|
|
|
606
|
-
[data-ui
|
|
605
|
+
[data-ui-command-palette] [data-part-item][data-current]:not([data-disabled]):active {
|
|
607
606
|
background-color: var(--_active);
|
|
608
607
|
}
|
|
609
608
|
|
|
@@ -612,7 +611,7 @@
|
|
|
612
611
|
* current — `moveIndex` skips it and the pointer does not highlight it. The
|
|
613
612
|
* hand goes, because there is nothing to press.
|
|
614
613
|
*/
|
|
615
|
-
[data-ui
|
|
614
|
+
[data-ui-command-palette] [data-part-item][data-disabled] {
|
|
616
615
|
color: var(--slotted-disabled-foreground, #64748b);
|
|
617
616
|
cursor: not-allowed;
|
|
618
617
|
}
|
|
@@ -620,11 +619,11 @@
|
|
|
620
619
|
/* A handler that has not answered yet: the cursor says so, and the ring
|
|
621
620
|
`spinner` draws stands in the last column, where the arrow of a page
|
|
622
621
|
item stands, sized to the row's own glyph. */
|
|
623
|
-
[data-ui
|
|
622
|
+
[data-ui-command-palette] [data-part-item][data-loading] {
|
|
624
623
|
cursor: progress;
|
|
625
624
|
}
|
|
626
625
|
|
|
627
|
-
[data-ui
|
|
626
|
+
[data-ui-command-palette] [data-part-item] > [data-part-busy] {
|
|
628
627
|
--slotted-spinner-size: var(--_icon-size);
|
|
629
628
|
|
|
630
629
|
color: var(--_muted);
|
|
@@ -648,7 +647,7 @@
|
|
|
648
647
|
* the child and not on the box, because the box's `1lh` reads the item's
|
|
649
648
|
* line box.
|
|
650
649
|
*/
|
|
651
|
-
[data-ui
|
|
650
|
+
[data-ui-command-palette] [data-part-icon] {
|
|
652
651
|
--slotted-icon-size: var(--_icon-size);
|
|
653
652
|
|
|
654
653
|
align-items: center;
|
|
@@ -665,7 +664,7 @@
|
|
|
665
664
|
margin-inline-end: calc(var(--_column-gap) + var(--slotted-space-2, 0.25rem));
|
|
666
665
|
}
|
|
667
666
|
|
|
668
|
-
[data-ui
|
|
667
|
+
[data-ui-command-palette] [data-part-icon]:not(:empty) > * {
|
|
669
668
|
block-size: var(--_icon-size);
|
|
670
669
|
font-size: var(--_icon-size);
|
|
671
670
|
inline-size: var(--_icon-size);
|
|
@@ -677,7 +676,7 @@
|
|
|
677
676
|
* is three rows pretending to be one. The whole text is on the item's
|
|
678
677
|
* `title` and reachable by the reader, so nothing leaves the DOM.
|
|
679
678
|
*/
|
|
680
|
-
[data-ui
|
|
679
|
+
[data-ui-command-palette] [data-part-label] {
|
|
681
680
|
grid-column: 2;
|
|
682
681
|
grid-row: 1;
|
|
683
682
|
min-inline-size: 0;
|
|
@@ -686,7 +685,7 @@
|
|
|
686
685
|
white-space: nowrap;
|
|
687
686
|
}
|
|
688
687
|
|
|
689
|
-
[data-ui
|
|
688
|
+
[data-ui-command-palette] [data-part-description] {
|
|
690
689
|
color: var(--_muted);
|
|
691
690
|
font-size: var(--_secondary-font-size);
|
|
692
691
|
grid-column: 2;
|
|
@@ -698,7 +697,7 @@
|
|
|
698
697
|
white-space: nowrap;
|
|
699
698
|
}
|
|
700
699
|
|
|
701
|
-
[data-ui
|
|
700
|
+
[data-ui-command-palette] [data-part-item][data-disabled] > [data-part-description] {
|
|
702
701
|
color: inherit;
|
|
703
702
|
}
|
|
704
703
|
|
|
@@ -709,14 +708,14 @@
|
|
|
709
708
|
* label's line box stretched that row, and the description under it dropped
|
|
710
709
|
* by the difference — a gap that opened only on rows with a binding.
|
|
711
710
|
*/
|
|
712
|
-
[data-ui
|
|
713
|
-
[data-part
|
|
714
|
-
> :is([data-part
|
|
711
|
+
[data-ui-command-palette]
|
|
712
|
+
[data-part-item]
|
|
713
|
+
> :is([data-part-meta], [data-part-shortcut], [data-part-arrow], [data-part-busy]) {
|
|
715
714
|
align-self: center;
|
|
716
715
|
grid-row: 1 / -1;
|
|
717
716
|
}
|
|
718
717
|
|
|
719
|
-
[data-ui
|
|
718
|
+
[data-ui-command-palette] [data-part-meta] {
|
|
720
719
|
color: var(--_muted);
|
|
721
720
|
font-size: var(--_secondary-font-size);
|
|
722
721
|
grid-column: 3;
|
|
@@ -728,9 +727,7 @@
|
|
|
728
727
|
/* A word on a row with no binding takes the binding's column too, so it
|
|
729
728
|
ends where the bindings on the rows around it end rather than a column
|
|
730
729
|
short of them. */
|
|
731
|
-
[data-ui
|
|
732
|
-
[data-part='item']:not(:has(> [data-part='shortcut']))
|
|
733
|
-
> [data-part='meta'] {
|
|
730
|
+
[data-ui-command-palette] [data-part-item]:not(:has(> [data-part-shortcut])) > [data-part-meta] {
|
|
734
731
|
grid-column: 3 / 5;
|
|
735
732
|
}
|
|
736
733
|
|
|
@@ -739,7 +736,7 @@
|
|
|
739
736
|
* rule places the column and states its ink; every selector stops at the
|
|
740
737
|
* part and never reaches the caps.
|
|
741
738
|
*/
|
|
742
|
-
[data-ui
|
|
739
|
+
[data-ui-command-palette] [data-part-item] > [data-part-shortcut] {
|
|
743
740
|
align-items: center;
|
|
744
741
|
color: var(--_muted);
|
|
745
742
|
display: inline-flex;
|
|
@@ -757,9 +754,9 @@
|
|
|
757
754
|
white-space: nowrap;
|
|
758
755
|
}
|
|
759
756
|
|
|
760
|
-
[data-ui
|
|
761
|
-
[data-part
|
|
762
|
-
> :is([data-part
|
|
757
|
+
[data-ui-command-palette]
|
|
758
|
+
[data-part-item][data-disabled]
|
|
759
|
+
> :is([data-part-meta], [data-part-shortcut]) {
|
|
763
760
|
color: inherit;
|
|
764
761
|
}
|
|
765
762
|
|
|
@@ -769,7 +766,7 @@
|
|
|
769
766
|
* glyph in a `directional` icon box, which mirrors in a right-to-left
|
|
770
767
|
* document; the column is one line box tall and centres it.
|
|
771
768
|
*/
|
|
772
|
-
[data-ui
|
|
769
|
+
[data-ui-command-palette] [data-part-arrow] {
|
|
773
770
|
--slotted-icon-size: var(--_icon-size);
|
|
774
771
|
|
|
775
772
|
align-items: center;
|
|
@@ -790,7 +787,7 @@
|
|
|
790
787
|
* painted them as one-pixel rules — the bar over the word, and the word
|
|
791
788
|
* itself pushed out of a box one pixel tall.
|
|
792
789
|
*/
|
|
793
|
-
[data-ui
|
|
790
|
+
[data-ui-command-palette] > [data-part-list] [data-part-separator]:not([data-separator]) {
|
|
794
791
|
background-color: var(--slotted-command-palette-separator-color, var(--_border-color));
|
|
795
792
|
block-size: var(--_border-width);
|
|
796
793
|
border: 0;
|
|
@@ -799,7 +796,7 @@
|
|
|
799
796
|
margin-inline: 0;
|
|
800
797
|
}
|
|
801
798
|
|
|
802
|
-
[data-ui
|
|
799
|
+
[data-ui-command-palette] [data-part-empty] {
|
|
803
800
|
color: var(--_muted);
|
|
804
801
|
grid-column: 1 / -1;
|
|
805
802
|
padding-block: var(--slotted-space-8, 1.5rem);
|
|
@@ -814,7 +811,7 @@
|
|
|
814
811
|
* what the reader is looking at. The clip is the visually-hidden idiom, kept
|
|
815
812
|
* in the DOM so `role="status"` has something to announce from.
|
|
816
813
|
*/
|
|
817
|
-
[data-ui
|
|
814
|
+
[data-ui-command-palette] > [data-part-status] {
|
|
818
815
|
block-size: 1px;
|
|
819
816
|
clip-path: inset(50%);
|
|
820
817
|
inline-size: 1px;
|
|
@@ -829,24 +826,24 @@
|
|
|
829
826
|
* of an item, `combobox`'s decision for `combobox`'s reasons. The bars are
|
|
830
827
|
* `skeleton/skeleton.css`'s; this family places them.
|
|
831
828
|
*/
|
|
832
|
-
[data-ui
|
|
829
|
+
[data-ui-command-palette] [data-part-placeholder] {
|
|
833
830
|
display: grid;
|
|
834
831
|
grid-column: 1 / -1;
|
|
835
832
|
padding-block: var(--slotted-space-2, 0.25rem);
|
|
836
833
|
padding-inline: var(--_item-inset);
|
|
837
834
|
}
|
|
838
835
|
|
|
839
|
-
[data-ui
|
|
836
|
+
[data-ui-command-palette] [data-part-placeholder] > * {
|
|
840
837
|
align-items: center;
|
|
841
838
|
display: flex;
|
|
842
839
|
min-block-size: var(--_item-height);
|
|
843
840
|
}
|
|
844
841
|
|
|
845
|
-
[data-ui
|
|
842
|
+
[data-ui-command-palette] [data-part-placeholder] > :nth-child(2) [data-ui-skeleton] {
|
|
846
843
|
inline-size: 78%;
|
|
847
844
|
}
|
|
848
845
|
|
|
849
|
-
[data-ui
|
|
846
|
+
[data-ui-command-palette] [data-part-placeholder] > :nth-child(3) [data-ui-skeleton] {
|
|
850
847
|
inline-size: 56%;
|
|
851
848
|
}
|
|
852
849
|
|
|
@@ -857,7 +854,7 @@
|
|
|
857
854
|
* `kbd`'s in its `plain` variant at the small step; the words beside them
|
|
858
855
|
* are this family's, one step quieter than the list.
|
|
859
856
|
*/
|
|
860
|
-
[data-ui
|
|
857
|
+
[data-ui-command-palette] > [data-part-footer] {
|
|
861
858
|
align-items: center;
|
|
862
859
|
background: var(
|
|
863
860
|
--slotted-command-palette-footer-surface,
|
|
@@ -876,7 +873,7 @@
|
|
|
876
873
|
padding-inline: var(--_header-inset);
|
|
877
874
|
}
|
|
878
875
|
|
|
879
|
-
[data-ui
|
|
876
|
+
[data-ui-command-palette] > [data-part-footer] > [data-part-hint] {
|
|
880
877
|
align-items: center;
|
|
881
878
|
display: inline-flex;
|
|
882
879
|
/* The caps read the footer's own size through `kbd` at `inherit`, a tenth
|
|
@@ -892,7 +889,7 @@
|
|
|
892
889
|
* because a line box of 1.4 is centred on its leading and not on its
|
|
893
890
|
* letters. `line-height: 1` centres the em box, which is where the word is.
|
|
894
891
|
*/
|
|
895
|
-
[data-ui
|
|
892
|
+
[data-ui-command-palette] > [data-part-footer] > [data-part-hint] > span:not([data-ui]) {
|
|
896
893
|
font-size: var(--slotted-font-size-xs, 0.75rem);
|
|
897
894
|
line-height: 1;
|
|
898
895
|
}
|
|
@@ -905,15 +902,15 @@
|
|
|
905
902
|
* third of the header so the field is never squeezed to nothing.
|
|
906
903
|
*/
|
|
907
904
|
@container command-palette (max-width: 360px) {
|
|
908
|
-
[data-ui
|
|
905
|
+
[data-ui-command-palette] :is([data-part-description], [data-part-meta]) {
|
|
909
906
|
display: none;
|
|
910
907
|
}
|
|
911
908
|
|
|
912
|
-
[data-ui
|
|
909
|
+
[data-ui-command-palette] [data-part-pages] {
|
|
913
910
|
max-inline-size: 33%;
|
|
914
911
|
}
|
|
915
912
|
|
|
916
|
-
[data-ui
|
|
913
|
+
[data-ui-command-palette] > [data-part-footer] {
|
|
917
914
|
gap: var(--slotted-space-4, 0.5rem);
|
|
918
915
|
}
|
|
919
916
|
}
|
|
@@ -925,13 +922,13 @@
|
|
|
925
922
|
* edge is this panel's. The panel is asked the same question the dialog
|
|
926
923
|
* asked, of the dialog's own named container, so the two answer together:
|
|
927
924
|
* the corner, the side edges and the lift go, and the list takes the rest
|
|
928
|
-
* of the screen. Written here rather than on `[data-ui
|
|
925
|
+
* of the screen. Written here rather than on `[data-ui-dialog]` because
|
|
929
926
|
* `identity.test.mjs` keeps this sheet off another family's identifier;
|
|
930
927
|
* the container name and the breakpoint are the dialog's, recorded in
|
|
931
928
|
* `dialog.css` beside its own query.
|
|
932
929
|
*/
|
|
933
930
|
@container slotted-dialog (max-inline-size: 30rem) {
|
|
934
|
-
[data-ui
|
|
931
|
+
[data-ui-command-palette][data-presentation='dialog'] {
|
|
935
932
|
--_list-max: none;
|
|
936
933
|
|
|
937
934
|
border-inline: 0;
|
|
@@ -948,9 +945,7 @@
|
|
|
948
945
|
}
|
|
949
946
|
|
|
950
947
|
/* No scrim to press: the word that closes stands at the end of the field. */
|
|
951
|
-
[data-ui
|
|
952
|
-
> [data-part='header']
|
|
953
|
-
> [data-part='close'] {
|
|
948
|
+
[data-ui-command-palette][data-presentation='dialog'] > [data-part-header] > [data-part-close] {
|
|
954
949
|
display: inline-flex;
|
|
955
950
|
}
|
|
956
951
|
}
|
|
@@ -961,7 +956,7 @@
|
|
|
961
956
|
* the reader can press; the list is scrolled and the rows are tapped.
|
|
962
957
|
*/
|
|
963
958
|
@media (hover: none) and (pointer: coarse) {
|
|
964
|
-
[data-ui
|
|
959
|
+
[data-ui-command-palette] > [data-part-footer] {
|
|
965
960
|
display: none;
|
|
966
961
|
}
|
|
967
962
|
}
|
|
@@ -974,13 +969,13 @@
|
|
|
974
969
|
* not decoration — would disappear.
|
|
975
970
|
*/
|
|
976
971
|
@media (forced-colors: active) {
|
|
977
|
-
[data-ui
|
|
972
|
+
[data-ui-command-palette] [data-part-item][data-current] {
|
|
978
973
|
background-color: Highlight;
|
|
979
974
|
color: HighlightText;
|
|
980
975
|
forced-color-adjust: none;
|
|
981
976
|
}
|
|
982
977
|
|
|
983
|
-
[data-ui
|
|
978
|
+
[data-ui-command-palette] [data-part-item][data-disabled][data-current] {
|
|
984
979
|
background-color: Highlight;
|
|
985
980
|
color: GrayText;
|
|
986
981
|
}
|
|
@@ -992,8 +987,7 @@
|
|
|
992
987
|
* the host's ink the system has already forced. The glyphs are `Glyph`
|
|
993
988
|
* elements drawn in `currentColor` and need nothing here.
|
|
994
989
|
*/
|
|
995
|
-
[data-ui
|
|
996
|
-
> [data-part='header']:has(> [data-part='input']:focus-visible)::after {
|
|
990
|
+
[data-ui-command-palette] > [data-part-header]:has(> [data-part-input]:focus-visible)::after {
|
|
997
991
|
forced-color-adjust: none;
|
|
998
992
|
}
|
|
999
993
|
}
|