@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.
- 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 +35 -35
- package/src/app-shell/app-shell.css +280 -299
- package/src/aspect-ratio/aspect-ratio.css +9 -9
- package/src/attachment/attachment.css +91 -99
- package/src/avatar/avatar.css +41 -41
- package/src/avatar-group/avatar-group.css +21 -22
- package/src/badge/badge.css +37 -37
- package/src/breadcrumb/breadcrumb.css +37 -37
- package/src/button/button.css +88 -69
- package/src/button-group/button-group.css +69 -73
- 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 +147 -151
- package/src/chart/chart.css +225 -240
- 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 +99 -101
- 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 +99 -104
- package/src/dashboard-grid/dashboard-grid.css +104 -107
- package/src/data-grid/data-grid.css +458 -456
- package/src/data-grid/data-grid.tokens.json +2 -0
- package/src/data-list/data-list.css +67 -69
- package/src/date-field/date-field.css +50 -50
- 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 +73 -78
- 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 +300 -148
- package/src/divider/divider.css +18 -18
- package/src/drawer/drawer.css +186 -209
- package/src/entity-picker/entity-picker.css +220 -239
- 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 +21 -24
- 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 +15 -15
- 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 +28 -28
- package/src/kbd/kbd.css +26 -26
- package/src/link/link.css +15 -15
- package/src/list/list.css +20 -20
- package/src/list-item/list-item.css +66 -66
- 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 +63 -65
- package/src/menubar/menubar.css +13 -13
- package/src/message/message.css +174 -202
- package/src/message-scroller/message-scroller.css +41 -42
- package/src/multi-select/multi-select.css +131 -137
- package/src/navigation-menu/navigation-menu.css +167 -188
- package/src/notification-center/notification-center.css +134 -148
- package/src/number-field/number-field.css +76 -81
- package/src/otp-input/otp-input.css +48 -48
- package/src/page/page.css +23 -23
- package/src/page-header/page-header.css +219 -280
- package/src/pagination/pagination.css +68 -72
- package/src/popover/popover.css +40 -49
- package/src/progress-indicator/progress-indicator.css +85 -90
- package/src/prompt-composer/prompt-composer.css +94 -99
- package/src/prose/prose.css +71 -75
- package/src/radio-group/radio-group.css +98 -103
- package/src/rating/rating.css +132 -132
- package/src/result-state/result-state.css +74 -77
- package/src/saved-views/saved-views.css +41 -47
- package/src/scroll-area/scroll-area.css +32 -35
- package/src/section/section.css +16 -16
- package/src/segmented-control/segmented-control.css +77 -79
- package/src/select/select.css +113 -115
- package/src/side-navigation/side-navigation.css +170 -180
- package/src/skeleton/skeleton.css +47 -48
- package/src/slider/slider.css +86 -88
- package/src/sparkline/sparkline.css +32 -32
- package/src/spinner/spinner.css +4 -4
- package/src/split-button/split-button.css +26 -31
- package/src/splitter/splitter.css +35 -35
- package/src/stack/stack.css +24 -24
- package/src/stat-card/stat-card.css +102 -103
- 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 +189 -198
- package/src/table-of-contents/table-of-contents.css +51 -54
- package/src/tabs/tabs.css +143 -162
- package/src/tag/tag.css +67 -71
- package/src/tags-input/tags-input.css +124 -74
- package/src/tags-input/tags-input.tokens.json +6 -1
- package/src/text-field/text-field.css +108 -126
- package/src/textarea/textarea.css +26 -26
- package/src/time-field/time-field.css +67 -67
- 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 +244 -266
- package/src/toast/toast.css +81 -90
- package/src/toggle/toggle.css +29 -33
- package/src/toggle-group/toggle-group.css +67 -71
- 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 +36 -36
- package/src/upload/upload.css +224 -224
- package/src/visually-hidden/visually-hidden.css +1 -1
- package/src/wizard/wizard.css +185 -197
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
* the two-line label clamp are `select`'s decisions, taken in an earlier
|
|
45
45
|
* session. They are repeated here rather than shared because the three
|
|
46
46
|
* families have three public identifiers, and a stylesheet that painted
|
|
47
|
-
* `[data-ui
|
|
47
|
+
* `[data-ui-select]` from a multi-select would make one family's selector
|
|
48
48
|
* match another's DOM. The duplication is the price of that boundary.
|
|
49
49
|
*
|
|
50
50
|
* ── What this sheet decides on its own ───────────────────────────────
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
|
|
72
72
|
/* ── The frame ────────────────────────────────────────────────────────── */
|
|
73
73
|
|
|
74
|
-
[data-ui
|
|
74
|
+
[data-ui-multi-select][data-part-root] {
|
|
75
75
|
--_font-size: var(--slotted-control-font-size-md, 13px);
|
|
76
76
|
--_height: var(--slotted-control-height-md, 34px);
|
|
77
77
|
--_padding-inline: var(--slotted-control-padding-inline-md, 13px);
|
|
@@ -145,7 +145,7 @@
|
|
|
145
145
|
box-shadow var(--slotted-control-transition-duration) var(--slotted-control-transition-easing);
|
|
146
146
|
}
|
|
147
147
|
|
|
148
|
-
[data-ui
|
|
148
|
+
[data-ui-multi-select][data-part-root]:not([data-full-width]) {
|
|
149
149
|
inline-size: auto;
|
|
150
150
|
}
|
|
151
151
|
|
|
@@ -154,7 +154,7 @@
|
|
|
154
154
|
* role is what the layout-grid pattern asks for, and the geometry belongs to
|
|
155
155
|
* the row that wraps.
|
|
156
156
|
*/
|
|
157
|
-
[data-ui
|
|
157
|
+
[data-ui-multi-select] > [data-part-control] {
|
|
158
158
|
display: flex;
|
|
159
159
|
flex: 1 1 auto;
|
|
160
160
|
min-inline-size: 0;
|
|
@@ -171,7 +171,7 @@
|
|
|
171
171
|
* acts on it was narrower than the rhythm inside it. Whichever part comes
|
|
172
172
|
* first after the row takes the row's own gap.
|
|
173
173
|
*/
|
|
174
|
-
[data-ui
|
|
174
|
+
[data-ui-multi-select] > [data-part-control] + * {
|
|
175
175
|
margin-inline-start: var(--_row-gap);
|
|
176
176
|
}
|
|
177
177
|
|
|
@@ -180,7 +180,7 @@
|
|
|
180
180
|
* which is what keeps `ArrowDown` and `ArrowUp` free for the popup: there is
|
|
181
181
|
* no cell above or below any cell, so the grid answers neither key.
|
|
182
182
|
*/
|
|
183
|
-
[data-ui
|
|
183
|
+
[data-ui-multi-select] [data-part-chips] {
|
|
184
184
|
/**
|
|
185
185
|
* `safe`, because this box scrolls. Centring a scroll container's content
|
|
186
186
|
* pushes the first line above the scrollport when there is more than fits,
|
|
@@ -240,7 +240,7 @@
|
|
|
240
240
|
scrollbar-width: none;
|
|
241
241
|
}
|
|
242
242
|
|
|
243
|
-
[data-ui
|
|
243
|
+
[data-ui-multi-select] [data-part-chips]::-webkit-scrollbar {
|
|
244
244
|
display: none;
|
|
245
245
|
}
|
|
246
246
|
|
|
@@ -250,7 +250,7 @@
|
|
|
250
250
|
* collapsed by `createCollapse` into the counting chip below, and the whole
|
|
251
251
|
* set is still reachable in the popup's `chosen` band.
|
|
252
252
|
*/
|
|
253
|
-
[data-ui
|
|
253
|
+
[data-ui-multi-select][data-overflow='collapse'] [data-part-chips] {
|
|
254
254
|
flex-wrap: nowrap;
|
|
255
255
|
max-block-size: none;
|
|
256
256
|
overflow: hidden;
|
|
@@ -267,7 +267,7 @@
|
|
|
267
267
|
* not to this family, so it has no `data-part` of its own to be selected by,
|
|
268
268
|
* and the query's own input is told apart by the part it does have.
|
|
269
269
|
*/
|
|
270
|
-
[data-ui
|
|
270
|
+
[data-ui-multi-select] [data-part-chips] input:not([data-part-input]) {
|
|
271
271
|
background-color: transparent;
|
|
272
272
|
border: 0;
|
|
273
273
|
color: inherit;
|
|
@@ -284,7 +284,7 @@
|
|
|
284
284
|
* or goes to the next one; the only chip that gives way is one wider than the
|
|
285
285
|
* whole row, which is capped here and truncated by `tag.css`.
|
|
286
286
|
*/
|
|
287
|
-
[data-ui
|
|
287
|
+
[data-ui-multi-select] [data-part-chips] > :not([data-part-field]) {
|
|
288
288
|
flex: 0 0 auto;
|
|
289
289
|
max-inline-size: 100%;
|
|
290
290
|
/* The row's own height, so three chips plus their gaps divide the cap the
|
|
@@ -296,10 +296,10 @@
|
|
|
296
296
|
/**
|
|
297
297
|
* The chip takes the height the inside of this control has, through the
|
|
298
298
|
* property `tag` reads for it. Set on the row, inherited by every chip, and
|
|
299
|
-
* no rule of this sheet names `[data-ui
|
|
299
|
+
* no rule of this sheet names `[data-ui-tag]`: the host stands beside the
|
|
300
300
|
* tag sheet and never reaches into it.
|
|
301
301
|
*/
|
|
302
|
-
[data-ui
|
|
302
|
+
[data-ui-multi-select] [data-part-chips] {
|
|
303
303
|
--slotted-control-inner-size: var(--_inner-size);
|
|
304
304
|
}
|
|
305
305
|
|
|
@@ -313,7 +313,7 @@
|
|
|
313
313
|
* of its own the moment two chips were in front of it, and a control 240
|
|
314
314
|
* pixels wide holding two values then stood two rows tall with one row empty.
|
|
315
315
|
*/
|
|
316
|
-
[data-ui
|
|
316
|
+
[data-ui-multi-select] [data-part-field] {
|
|
317
317
|
align-items: center;
|
|
318
318
|
display: flex;
|
|
319
319
|
flex: 1 1 var(--slotted-multi-select-field-basis, 4rem);
|
|
@@ -326,7 +326,7 @@
|
|
|
326
326
|
* everything that makes it a text control: the caret, the selection, IME
|
|
327
327
|
* composition, autofill and every native attribute the consumer wrote.
|
|
328
328
|
*/
|
|
329
|
-
[data-ui
|
|
329
|
+
[data-ui-multi-select] [data-part-input] {
|
|
330
330
|
background-color: transparent;
|
|
331
331
|
border: 0;
|
|
332
332
|
color: inherit;
|
|
@@ -341,7 +341,7 @@
|
|
|
341
341
|
text-overflow: ellipsis;
|
|
342
342
|
}
|
|
343
343
|
|
|
344
|
-
[data-ui
|
|
344
|
+
[data-ui-multi-select] [data-part-input]::placeholder {
|
|
345
345
|
color: var(--slotted-multi-select-placeholder-color, var(--slotted-text-muted, GrayText));
|
|
346
346
|
text-overflow: ellipsis;
|
|
347
347
|
}
|
|
@@ -352,7 +352,7 @@
|
|
|
352
352
|
* rather than erased, in the accent surface the theme owns — the repair
|
|
353
353
|
* `text-field` makes, for the same reason.
|
|
354
354
|
*/
|
|
355
|
-
[data-ui
|
|
355
|
+
[data-ui-multi-select] [data-part-input]:autofill {
|
|
356
356
|
box-shadow: inset 0 0 0 100px
|
|
357
357
|
var(--slotted-multi-select-autofill-background, var(--slotted-tone-accent-surface));
|
|
358
358
|
-webkit-text-fill-color: var(--slotted-multi-select-color, var(--slotted-text, CanvasText));
|
|
@@ -376,7 +376,7 @@
|
|
|
376
376
|
* its own inner ring two widths in to keep a sliver of ground outside it;
|
|
377
377
|
* here that sliver would cost the text its leading.
|
|
378
378
|
*/
|
|
379
|
-
[data-ui
|
|
379
|
+
[data-ui-multi-select] [data-part-chips] > :not([data-part-field]):focus-visible {
|
|
380
380
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
381
381
|
outline-offset: calc(-1 * var(--slotted-focus-ring-width, 2px));
|
|
382
382
|
}
|
|
@@ -387,7 +387,7 @@
|
|
|
387
387
|
* whose last one happens to be a count, and `createCollapse` measures it the
|
|
388
388
|
* way it measures every other unit.
|
|
389
389
|
*/
|
|
390
|
-
[data-ui
|
|
390
|
+
[data-ui-multi-select] [data-part-chips] > [data-count] {
|
|
391
391
|
flex: none;
|
|
392
392
|
}
|
|
393
393
|
|
|
@@ -397,7 +397,7 @@
|
|
|
397
397
|
* too narrow for a chip — because a counter with nothing to count against is
|
|
398
398
|
* furniture.
|
|
399
399
|
*/
|
|
400
|
-
[data-ui
|
|
400
|
+
[data-ui-multi-select] > [data-part-counter] {
|
|
401
401
|
text-box: auto; /* refine the alignment */
|
|
402
402
|
align-self: center;
|
|
403
403
|
color: var(--slotted-multi-select-counter-color, var(--slotted-text-muted, GrayText));
|
|
@@ -426,25 +426,25 @@
|
|
|
426
426
|
* uses for a chosen value. Not a warning tone: reaching the limit is the
|
|
427
427
|
* reader arriving somewhere, not going wrong.
|
|
428
428
|
*/
|
|
429
|
-
[data-ui
|
|
429
|
+
[data-ui-multi-select][data-complete] > [data-part-counter] {
|
|
430
430
|
color: var(--slotted-multi-select-counter-complete-color, var(--slotted-tone-accent-text));
|
|
431
431
|
font-weight: var(--slotted-font-weight-medium, 500);
|
|
432
432
|
}
|
|
433
433
|
|
|
434
434
|
/* Too narrow for a chip: the count is the whole answer. */
|
|
435
|
-
[data-ui
|
|
435
|
+
[data-ui-multi-select][data-narrow] [data-part-chips] > :not([data-part-field]) {
|
|
436
436
|
display: none;
|
|
437
437
|
}
|
|
438
438
|
|
|
439
439
|
/* The row takes only the room the count and the buttons leave, so the count
|
|
440
440
|
is what shortens when even that room runs out. */
|
|
441
|
-
[data-ui
|
|
441
|
+
[data-ui-multi-select][data-narrow] > [data-part-control] {
|
|
442
442
|
flex-basis: 0;
|
|
443
443
|
}
|
|
444
444
|
|
|
445
445
|
/* ── The two buttons inside the frame ─────────────────────────────────── */
|
|
446
446
|
|
|
447
|
-
[data-ui
|
|
447
|
+
[data-ui-multi-select] > :is([data-part-clear], [data-part-trigger]) {
|
|
448
448
|
align-items: center;
|
|
449
449
|
align-self: center;
|
|
450
450
|
appearance: none;
|
|
@@ -476,7 +476,7 @@
|
|
|
476
476
|
* control is 24 pixels tall — the WCAG 2.2 minimum — so nothing drawn inside
|
|
477
477
|
* it can also be 24.
|
|
478
478
|
*/
|
|
479
|
-
[data-ui
|
|
479
|
+
[data-ui-multi-select] > :is([data-part-clear], [data-part-trigger])::after {
|
|
480
480
|
content: '';
|
|
481
481
|
inset: min(0px, calc((100% - var(--slotted-target-min, 24px)) / 2));
|
|
482
482
|
position: absolute;
|
|
@@ -487,23 +487,22 @@
|
|
|
487
487
|
the hit area above grows to 44 pixels around them. Side by side, neither
|
|
488
488
|
button reaches across the edge the two share. */
|
|
489
489
|
@media (pointer: coarse) {
|
|
490
|
-
[data-ui
|
|
490
|
+
[data-ui-multi-select] > :is([data-part-clear], [data-part-trigger])::after {
|
|
491
491
|
inset: min(0px, calc((100% - var(--slotted-target-comfortable, 44px)) / 2));
|
|
492
492
|
}
|
|
493
493
|
|
|
494
|
-
[data-ui
|
|
495
|
-
> [data-part='clear']:has(+ [data-part='trigger']:not([hidden]))::after {
|
|
494
|
+
[data-ui-multi-select] > [data-part-clear]:has(+ [data-part-trigger]:not([hidden]))::after {
|
|
496
495
|
inset-inline-end: 0;
|
|
497
496
|
}
|
|
498
497
|
|
|
499
|
-
[data-ui
|
|
498
|
+
[data-ui-multi-select] > [data-part-clear]:not([hidden]) + [data-part-trigger]::after {
|
|
500
499
|
inset-inline-start: 0;
|
|
501
500
|
}
|
|
502
501
|
}
|
|
503
502
|
|
|
504
503
|
/* The cross and the chevron are `Glyph` elements the binding draws, sized
|
|
505
504
|
here to the control's icon step. */
|
|
506
|
-
[data-ui
|
|
505
|
+
[data-ui-multi-select] > :is([data-part-clear], [data-part-trigger]) {
|
|
507
506
|
--slotted-icon-size: var(--_icon-size);
|
|
508
507
|
}
|
|
509
508
|
|
|
@@ -512,7 +511,7 @@
|
|
|
512
511
|
* button is what a reader presses and the arrow is what turns over. The
|
|
513
512
|
* library's own `Glyph` in an `icon` box; a character is never an icon.
|
|
514
513
|
*/
|
|
515
|
-
[data-ui
|
|
514
|
+
[data-ui-multi-select] [data-part-arrow] {
|
|
516
515
|
align-items: center;
|
|
517
516
|
block-size: var(--_icon-size);
|
|
518
517
|
display: flex;
|
|
@@ -520,12 +519,12 @@
|
|
|
520
519
|
justify-content: center;
|
|
521
520
|
}
|
|
522
521
|
|
|
523
|
-
[data-ui
|
|
522
|
+
[data-ui-multi-select] [data-part-arrow] > [data-ui-icon] {
|
|
524
523
|
transition: rotate var(--slotted-control-transition-duration)
|
|
525
524
|
var(--slotted-control-transition-easing);
|
|
526
525
|
}
|
|
527
526
|
|
|
528
|
-
[data-ui
|
|
527
|
+
[data-ui-multi-select][data-open] [data-part-arrow] > [data-ui-icon] {
|
|
529
528
|
rotate: 180deg;
|
|
530
529
|
}
|
|
531
530
|
|
|
@@ -536,7 +535,7 @@
|
|
|
536
535
|
* onto anything yet — and the arc is the one `spinner/spinner.css` draws for
|
|
537
536
|
* every family that waits.
|
|
538
537
|
*/
|
|
539
|
-
[data-ui
|
|
538
|
+
[data-ui-multi-select] [data-part-busy] {
|
|
540
539
|
--slotted-spinner-size: var(--_icon-size);
|
|
541
540
|
|
|
542
541
|
align-self: center;
|
|
@@ -546,7 +545,7 @@
|
|
|
546
545
|
|
|
547
546
|
/* ── Size ─────────────────────────────────────────────────────────────── */
|
|
548
547
|
|
|
549
|
-
[data-ui
|
|
548
|
+
[data-ui-multi-select][data-part-root][data-size='sm'] {
|
|
550
549
|
--_font-size: var(--slotted-control-font-size-sm, 12px);
|
|
551
550
|
--_height: var(--slotted-control-height-sm, 30px);
|
|
552
551
|
--_inner-size: var(--slotted-control-inner-size-sm, 22px);
|
|
@@ -555,7 +554,7 @@
|
|
|
555
554
|
--_icon-size: max(var(--_icon-floor), var(--slotted-control-icon-size-sm, 14px));
|
|
556
555
|
}
|
|
557
556
|
|
|
558
|
-
[data-ui
|
|
557
|
+
[data-ui-multi-select][data-part-root][data-size='md'] {
|
|
559
558
|
--_font-size: var(--slotted-control-font-size-md, 13px);
|
|
560
559
|
--_height: var(--slotted-control-height-md, 34px);
|
|
561
560
|
--_padding-inline: var(--slotted-control-padding-inline-md, 13px);
|
|
@@ -564,7 +563,7 @@
|
|
|
564
563
|
--_inner-size: var(--slotted-control-inner-size-md, 24px);
|
|
565
564
|
}
|
|
566
565
|
|
|
567
|
-
[data-ui
|
|
566
|
+
[data-ui-multi-select][data-part-root][data-size='lg'] {
|
|
568
567
|
--_font-size: var(--slotted-control-font-size-lg, 14px);
|
|
569
568
|
--_height: var(--slotted-control-height-lg, 38px);
|
|
570
569
|
--_inner-size: var(--slotted-control-inner-size-lg, 28px);
|
|
@@ -575,7 +574,7 @@
|
|
|
575
574
|
|
|
576
575
|
/* ── Variant ──────────────────────────────────────────────────────────── */
|
|
577
576
|
|
|
578
|
-
[data-ui
|
|
577
|
+
[data-ui-multi-select][data-part-root][data-variant='subtle'] {
|
|
579
578
|
background-color: var(
|
|
580
579
|
--slotted-multi-select-subtle-background,
|
|
581
580
|
var(--slotted-surface-sunken, Canvas)
|
|
@@ -589,7 +588,7 @@
|
|
|
589
588
|
/* No edge, no lift, no ground and no corner of its own: the cell it sits in
|
|
590
589
|
is the box, the row is the ground, a cell has no corner, and the resting
|
|
591
590
|
shadow would draw the cell where there is none. */
|
|
592
|
-
[data-ui
|
|
591
|
+
[data-ui-multi-select][data-part-root][data-variant='plain'] {
|
|
593
592
|
background-color: transparent;
|
|
594
593
|
border-color: transparent;
|
|
595
594
|
border-radius: var(--slotted-radius-none, 0px);
|
|
@@ -597,20 +596,20 @@
|
|
|
597
596
|
}
|
|
598
597
|
|
|
599
598
|
@media (forced-colors: active) {
|
|
600
|
-
[data-ui
|
|
599
|
+
[data-ui-multi-select][data-part-root][data-variant='plain'] {
|
|
601
600
|
border-color: ButtonBorder;
|
|
602
601
|
}
|
|
603
602
|
}
|
|
604
603
|
|
|
605
604
|
/* ── States on the control ────────────────────────────────────────────── */
|
|
606
605
|
|
|
607
|
-
[data-ui
|
|
606
|
+
[data-ui-multi-select][data-part-root]:hover:not([data-disabled]):not([data-readonly]):not(
|
|
608
607
|
[data-invalid]
|
|
609
608
|
) {
|
|
610
609
|
border-color: var(--slotted-multi-select-hover-border-color, var(--slotted-tone-accent-border));
|
|
611
610
|
}
|
|
612
611
|
|
|
613
|
-
[data-ui
|
|
612
|
+
[data-ui-multi-select][data-part-root][data-variant='subtle']:hover:not([data-disabled]):not(
|
|
614
613
|
[data-readonly]
|
|
615
614
|
):not([data-invalid]) {
|
|
616
615
|
background-color: var(
|
|
@@ -619,7 +618,7 @@
|
|
|
619
618
|
);
|
|
620
619
|
}
|
|
621
620
|
|
|
622
|
-
[data-ui
|
|
621
|
+
[data-ui-multi-select][data-part-root][data-variant='plain']:hover:not([data-disabled]):not(
|
|
623
622
|
[data-readonly]
|
|
624
623
|
):not([data-invalid]) {
|
|
625
624
|
background-color: var(
|
|
@@ -637,9 +636,9 @@
|
|
|
637
636
|
* script, after a key, and a browser does not always match `:focus-visible`
|
|
638
637
|
* on an element script moved focus to.
|
|
639
638
|
*/
|
|
640
|
-
[data-ui
|
|
641
|
-
[data-ui
|
|
642
|
-
[data-part
|
|
639
|
+
[data-ui-multi-select][data-part-root]:has([data-part-input]:focus-visible),
|
|
640
|
+
[data-ui-multi-select][data-part-root]:has(
|
|
641
|
+
[data-part-chips] > :not([data-part-field]):focus-visible
|
|
643
642
|
) {
|
|
644
643
|
box-shadow: var(--slotted-control-shadow-focus-geometry, 0 1px 4px -1px)
|
|
645
644
|
var(--slotted-focus-ring-color, Highlight);
|
|
@@ -654,11 +653,9 @@
|
|
|
654
653
|
* shadow that appears only under focus is a cell that changes size when it
|
|
655
654
|
* is used.
|
|
656
655
|
*/
|
|
657
|
-
[data-ui
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
[data-ui='multi-select'][data-part='root'][data-variant='plain']:has(
|
|
661
|
-
[data-part='chips'] > :not([data-part='field']):focus-visible
|
|
656
|
+
[data-ui-multi-select][data-part-root][data-variant='plain']:has([data-part-input]:focus-visible),
|
|
657
|
+
[data-ui-multi-select][data-part-root][data-variant='plain']:has(
|
|
658
|
+
[data-part-chips] > :not([data-part-field]):focus-visible
|
|
662
659
|
) {
|
|
663
660
|
box-shadow: none;
|
|
664
661
|
outline-offset: calc(var(--slotted-focus-ring-offset, 2px) * -1);
|
|
@@ -669,17 +666,17 @@
|
|
|
669
666
|
* is two rings for one focus. The frame keeps its lift and gives up the
|
|
670
667
|
* outline while the ring is inside it.
|
|
671
668
|
*/
|
|
672
|
-
[data-ui
|
|
673
|
-
[data-part
|
|
669
|
+
[data-ui-multi-select][data-part-root]:has(
|
|
670
|
+
[data-part-chips] > :not([data-part-field]):focus-visible
|
|
674
671
|
) {
|
|
675
672
|
outline: none;
|
|
676
673
|
}
|
|
677
674
|
|
|
678
|
-
[data-ui
|
|
675
|
+
[data-ui-multi-select][data-part-root][data-open]:not([data-disabled]) {
|
|
679
676
|
border-color: var(--slotted-multi-select-open-border-color, var(--slotted-tone-accent-border));
|
|
680
677
|
}
|
|
681
678
|
|
|
682
|
-
[data-ui
|
|
679
|
+
[data-ui-multi-select][data-part-root][data-invalid] {
|
|
683
680
|
--slotted-focus-ring-color: var(
|
|
684
681
|
--slotted-multi-select-invalid-focus-ring-color,
|
|
685
682
|
var(--slotted-focus-ring-color-invalid, Highlight)
|
|
@@ -707,9 +704,9 @@
|
|
|
707
704
|
box-shadow: var(--_invalid-edge);
|
|
708
705
|
}
|
|
709
706
|
|
|
710
|
-
[data-ui
|
|
711
|
-
[data-ui
|
|
712
|
-
[data-part
|
|
707
|
+
[data-ui-multi-select][data-part-root][data-invalid]:has([data-part-input]:focus-visible),
|
|
708
|
+
[data-ui-multi-select][data-part-root][data-invalid]:has(
|
|
709
|
+
[data-part-chips] > :not([data-part-field]):focus-visible
|
|
713
710
|
) {
|
|
714
711
|
box-shadow:
|
|
715
712
|
var(--_invalid-edge),
|
|
@@ -717,11 +714,11 @@
|
|
|
717
714
|
var(--slotted-focus-ring-color, Highlight);
|
|
718
715
|
}
|
|
719
716
|
|
|
720
|
-
[data-ui
|
|
721
|
-
[data-part
|
|
717
|
+
[data-ui-multi-select][data-part-root][data-variant='plain'][data-invalid]:has(
|
|
718
|
+
[data-part-input]:focus-visible
|
|
722
719
|
),
|
|
723
|
-
[data-ui
|
|
724
|
-
[data-part
|
|
720
|
+
[data-ui-multi-select][data-part-root][data-variant='plain'][data-invalid]:has(
|
|
721
|
+
[data-part-chips] > :not([data-part-field]):focus-visible
|
|
725
722
|
) {
|
|
726
723
|
/* The ring lies inside the box here, over the border and an edge as wide as
|
|
727
724
|
it; the edge reaches past the ring. */
|
|
@@ -739,23 +736,21 @@
|
|
|
739
736
|
* control draws its ring double, which a valid ring is not.
|
|
740
737
|
*/
|
|
741
738
|
@media (forced-colors: active) {
|
|
742
|
-
[data-ui
|
|
739
|
+
[data-ui-multi-select][data-part-root][data-invalid] {
|
|
743
740
|
outline: var(--_invalid-edge-width) solid CanvasText;
|
|
744
741
|
outline-offset: calc(
|
|
745
742
|
-1 * (var(--slotted-control-border-width, 1px) + var(--_invalid-edge-width))
|
|
746
743
|
);
|
|
747
744
|
}
|
|
748
745
|
|
|
749
|
-
[data-ui
|
|
750
|
-
[data-part='input']:focus-visible
|
|
751
|
-
) {
|
|
746
|
+
[data-ui-multi-select][data-part-root][data-invalid]:has([data-part-input]:focus-visible) {
|
|
752
747
|
outline: calc(var(--slotted-focus-ring-width, 2px) + var(--_invalid-edge-width)) double
|
|
753
748
|
var(--slotted-focus-ring-color, Highlight);
|
|
754
749
|
outline-offset: var(--slotted-focus-ring-offset, 2px);
|
|
755
750
|
}
|
|
756
751
|
|
|
757
|
-
[data-ui
|
|
758
|
-
[data-part
|
|
752
|
+
[data-ui-multi-select][data-part-root][data-variant='plain'][data-invalid]:has(
|
|
753
|
+
[data-part-input]:focus-visible
|
|
759
754
|
) {
|
|
760
755
|
outline: calc(var(--slotted-focus-ring-width, 2px) + var(--_invalid-edge-width)) double
|
|
761
756
|
var(--slotted-focus-ring-color, Highlight);
|
|
@@ -764,11 +759,11 @@
|
|
|
764
759
|
);
|
|
765
760
|
}
|
|
766
761
|
|
|
767
|
-
[data-ui
|
|
768
|
-
[data-part
|
|
762
|
+
[data-ui-multi-select][data-part-root][data-invalid]:has(
|
|
763
|
+
[data-part-chips] > :not([data-part-field]):focus-visible
|
|
769
764
|
),
|
|
770
|
-
[data-ui
|
|
771
|
-
[data-part
|
|
765
|
+
[data-ui-multi-select][data-part-root][data-variant='plain'][data-invalid]:has(
|
|
766
|
+
[data-part-chips] > :not([data-part-field]):focus-visible
|
|
772
767
|
) {
|
|
773
768
|
outline: var(--_invalid-edge-width) solid CanvasText;
|
|
774
769
|
outline-offset: calc(
|
|
@@ -783,14 +778,14 @@
|
|
|
783
778
|
* the text half; the rest is the family's, because neither pattern has a
|
|
784
779
|
* readonly for a combobox.
|
|
785
780
|
*/
|
|
786
|
-
[data-ui
|
|
781
|
+
[data-ui-multi-select][data-part-root][data-readonly] {
|
|
787
782
|
background-color: var(
|
|
788
783
|
--slotted-multi-select-readonly-background,
|
|
789
784
|
var(--slotted-tone-secondary-subtle-hover)
|
|
790
785
|
);
|
|
791
786
|
}
|
|
792
787
|
|
|
793
|
-
[data-ui
|
|
788
|
+
[data-ui-multi-select][data-part-root][data-readonly] [data-part-arrow] {
|
|
794
789
|
opacity: 0.5;
|
|
795
790
|
}
|
|
796
791
|
|
|
@@ -799,8 +794,8 @@
|
|
|
799
794
|
* because a disabled `fieldset` disables every control inside it and the
|
|
800
795
|
* control has no way to say so.
|
|
801
796
|
*/
|
|
802
|
-
[data-ui
|
|
803
|
-
[data-ui
|
|
797
|
+
[data-ui-multi-select][data-part-root][data-disabled],
|
|
798
|
+
[data-ui-multi-select][data-part-root]:has([data-part-input]:disabled) {
|
|
804
799
|
background-color: var(
|
|
805
800
|
--slotted-multi-select-disabled-background,
|
|
806
801
|
var(--slotted-disabled-background)
|
|
@@ -811,16 +806,16 @@
|
|
|
811
806
|
cursor: not-allowed;
|
|
812
807
|
}
|
|
813
808
|
|
|
814
|
-
[data-ui
|
|
815
|
-
> :is([data-part
|
|
809
|
+
[data-ui-multi-select]
|
|
810
|
+
> :is([data-part-clear], [data-part-trigger]):hover:not(:disabled):not([data-disabled]) {
|
|
816
811
|
background-color: var(
|
|
817
812
|
--slotted-multi-select-action-hover-background,
|
|
818
813
|
var(--slotted-tone-secondary-subtle-hover)
|
|
819
814
|
);
|
|
820
815
|
}
|
|
821
816
|
|
|
822
|
-
[data-ui
|
|
823
|
-
> :is([data-part
|
|
817
|
+
[data-ui-multi-select]
|
|
818
|
+
> :is([data-part-clear], [data-part-trigger]):active:not(:disabled):not([data-disabled]) {
|
|
824
819
|
background-color: var(
|
|
825
820
|
--slotted-multi-select-action-active-background,
|
|
826
821
|
var(--slotted-tone-secondary-subtle-active)
|
|
@@ -833,14 +828,14 @@
|
|
|
833
828
|
* and a ring around the whole frame would sit still while focus moved inside
|
|
834
829
|
* it.
|
|
835
830
|
*/
|
|
836
|
-
[data-ui
|
|
831
|
+
[data-ui-multi-select] > :is([data-part-clear], [data-part-trigger]):focus-visible {
|
|
837
832
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
838
833
|
outline-offset: calc(var(--slotted-focus-ring-offset, 2px) * -1);
|
|
839
834
|
}
|
|
840
835
|
|
|
841
836
|
/* ── The layer ────────────────────────────────────────────────────────── */
|
|
842
837
|
|
|
843
|
-
[data-ui
|
|
838
|
+
[data-ui-multi-select][data-part-positioner] {
|
|
844
839
|
--_surface: var(--slotted-multi-select-surface, var(--slotted-surface-raised, #ffffff));
|
|
845
840
|
--_text: var(--slotted-multi-select-content-text, var(--slotted-text, #0f172a));
|
|
846
841
|
--_muted: var(--slotted-multi-select-content-text-muted, var(--slotted-text-muted, #5b6b7f));
|
|
@@ -914,12 +909,12 @@
|
|
|
914
909
|
translate var(--slotted-duration-short) var(--slotted-easing-exit);
|
|
915
910
|
}
|
|
916
911
|
|
|
917
|
-
[data-ui
|
|
912
|
+
[data-ui-multi-select][data-part-positioner][data-side='top'] {
|
|
918
913
|
translate: 0 var(--_enter-distance);
|
|
919
914
|
}
|
|
920
915
|
|
|
921
916
|
/* A lateral side has no block direction to arrive from, so it only fades. */
|
|
922
|
-
[data-ui
|
|
917
|
+
[data-ui-multi-select][data-part-positioner]:is([data-side='left'], [data-side='right']) {
|
|
923
918
|
translate: 0 0;
|
|
924
919
|
}
|
|
925
920
|
|
|
@@ -931,7 +926,7 @@
|
|
|
931
926
|
* it had one. A keyframe states where it starts. The exit stays a transition:
|
|
932
927
|
* it leaves from wherever the layer is, on the closed rule's durations.
|
|
933
928
|
*/
|
|
934
|
-
[data-ui
|
|
929
|
+
[data-ui-multi-select][data-part-positioner][data-open] {
|
|
935
930
|
opacity: 1;
|
|
936
931
|
translate: 0 0;
|
|
937
932
|
transition: none;
|
|
@@ -942,16 +937,16 @@
|
|
|
942
937
|
* with the side, and a layer written open in static markup — the harness, a
|
|
943
938
|
* docs snippet — is simply there, and is photographed where it stands.
|
|
944
939
|
*/
|
|
945
|
-
[data-ui
|
|
940
|
+
[data-ui-multi-select][data-part-positioner][data-open][data-positioned] {
|
|
946
941
|
animation: slotted-multi-select-enter-down var(--slotted-duration-medium)
|
|
947
942
|
var(--slotted-easing-enter);
|
|
948
943
|
}
|
|
949
944
|
|
|
950
|
-
[data-ui
|
|
945
|
+
[data-ui-multi-select][data-part-positioner][data-open][data-positioned][data-side='top'] {
|
|
951
946
|
animation-name: slotted-multi-select-enter-up;
|
|
952
947
|
}
|
|
953
948
|
|
|
954
|
-
[data-ui
|
|
949
|
+
[data-ui-multi-select][data-part-positioner][data-open][data-positioned]:is(
|
|
955
950
|
[data-side='left'],
|
|
956
951
|
[data-side='right']
|
|
957
952
|
) {
|
|
@@ -980,37 +975,37 @@
|
|
|
980
975
|
|
|
981
976
|
/* Stillness keeps the fade and drops the movement. */
|
|
982
977
|
@media (prefers-reduced-motion: reduce) {
|
|
983
|
-
[data-ui
|
|
984
|
-
[data-ui
|
|
985
|
-
[data-ui
|
|
986
|
-
[data-ui
|
|
978
|
+
[data-ui-multi-select][data-part-positioner],
|
|
979
|
+
[data-ui-multi-select][data-part-positioner][data-side='top'],
|
|
980
|
+
[data-ui-multi-select][data-part-positioner][data-side='left'],
|
|
981
|
+
[data-ui-multi-select][data-part-positioner][data-side='right'] {
|
|
987
982
|
translate: 0 0;
|
|
988
983
|
transition: opacity var(--slotted-duration-short) var(--slotted-easing-exit);
|
|
989
984
|
}
|
|
990
985
|
|
|
991
|
-
[data-ui
|
|
992
|
-
[data-ui
|
|
993
|
-
[data-ui
|
|
994
|
-
[data-ui
|
|
986
|
+
[data-ui-multi-select][data-part-positioner][data-open][data-positioned],
|
|
987
|
+
[data-ui-multi-select][data-part-positioner][data-open][data-positioned][data-side='top'],
|
|
988
|
+
[data-ui-multi-select][data-part-positioner][data-open][data-positioned][data-side='left'],
|
|
989
|
+
[data-ui-multi-select][data-part-positioner][data-open][data-positioned][data-side='right'] {
|
|
995
990
|
animation-name: slotted-multi-select-fade;
|
|
996
991
|
}
|
|
997
992
|
}
|
|
998
993
|
|
|
999
|
-
[data-ui
|
|
994
|
+
[data-ui-multi-select][data-part-positioner][data-detached] {
|
|
1000
995
|
visibility: hidden;
|
|
1001
996
|
}
|
|
1002
997
|
|
|
1003
|
-
[data-ui
|
|
998
|
+
[data-ui-multi-select][data-part-positioner][data-width='anchor'] {
|
|
1004
999
|
inline-size: var(--slotted-positioner-anchor-width, auto);
|
|
1005
1000
|
}
|
|
1006
1001
|
|
|
1007
|
-
[data-ui
|
|
1002
|
+
[data-ui-multi-select][data-part-positioner][data-width='content'] {
|
|
1008
1003
|
inline-size: max-content;
|
|
1009
1004
|
max-inline-size: min(var(--_measure), var(--slotted-positioner-available-width, 100vw));
|
|
1010
1005
|
min-inline-size: var(--slotted-positioner-anchor-width, auto);
|
|
1011
1006
|
}
|
|
1012
1007
|
|
|
1013
|
-
[data-ui
|
|
1008
|
+
[data-ui-multi-select][data-part-positioner][data-size='sm'] {
|
|
1014
1009
|
--_item-inset: var(--slotted-control-padding-inline-sm, 0.625rem);
|
|
1015
1010
|
--_item-height: var(--slotted-control-height-sm, 30px);
|
|
1016
1011
|
--_content-font-size: var(--slotted-control-font-size-sm, 12px);
|
|
@@ -1019,7 +1014,7 @@
|
|
|
1019
1014
|
--_column-gap: var(--slotted-control-gap-sm, 0.375rem);
|
|
1020
1015
|
}
|
|
1021
1016
|
|
|
1022
|
-
[data-ui
|
|
1017
|
+
[data-ui-multi-select][data-part-positioner][data-size='lg'] {
|
|
1023
1018
|
--_item-inset: var(--slotted-control-padding-inline-lg, 1rem);
|
|
1024
1019
|
--_item-height: var(--slotted-control-height-lg, 38px);
|
|
1025
1020
|
--_content-font-size: var(--slotted-control-font-size-lg, 14px);
|
|
@@ -1030,7 +1025,7 @@
|
|
|
1030
1025
|
|
|
1031
1026
|
/* ── The surface ──────────────────────────────────────────────────────── */
|
|
1032
1027
|
|
|
1033
|
-
[data-ui
|
|
1028
|
+
[data-ui-multi-select] > [data-part-content] {
|
|
1034
1029
|
background: var(--_surface);
|
|
1035
1030
|
border: var(--_border-width) solid var(--_border-color);
|
|
1036
1031
|
border-radius: var(--_radius);
|
|
@@ -1057,7 +1052,7 @@
|
|
|
1057
1052
|
* interaction — the highlight is `aria-activedescendant`, not focus — so a
|
|
1058
1053
|
* ring here would draw a box around something nobody is operating.
|
|
1059
1054
|
*/
|
|
1060
|
-
[data-ui
|
|
1055
|
+
[data-ui-multi-select] > [data-part-content]:focus-visible {
|
|
1061
1056
|
outline: none;
|
|
1062
1057
|
}
|
|
1063
1058
|
|
|
@@ -1073,7 +1068,7 @@
|
|
|
1073
1068
|
* option's own row, which the list has open beside it, and the chips in the
|
|
1074
1069
|
* control, which are focusable. `select` recorded the same decision.
|
|
1075
1070
|
*/
|
|
1076
|
-
[data-ui
|
|
1071
|
+
[data-ui-multi-select] [data-part-chosen] {
|
|
1077
1072
|
background: var(--_surface);
|
|
1078
1073
|
border-block-end: var(--_border-width) solid var(--_border-color);
|
|
1079
1074
|
box-sizing: border-box;
|
|
@@ -1102,7 +1097,7 @@
|
|
|
1102
1097
|
|
|
1103
1098
|
/* ── Groups ───────────────────────────────────────────────────────────── */
|
|
1104
1099
|
|
|
1105
|
-
[data-ui
|
|
1100
|
+
[data-ui-multi-select] [data-part-group] {
|
|
1106
1101
|
display: grid;
|
|
1107
1102
|
grid-column: 1 / -1;
|
|
1108
1103
|
grid-template-columns: subgrid;
|
|
@@ -1116,12 +1111,12 @@
|
|
|
1116
1111
|
* author rule wins over the user agent sheet. Without this the search
|
|
1117
1112
|
* filtered nothing the reader could see.
|
|
1118
1113
|
*/
|
|
1119
|
-
[data-ui
|
|
1120
|
-
[data-ui
|
|
1114
|
+
[data-ui-multi-select] [data-part-item][hidden],
|
|
1115
|
+
[data-ui-multi-select] [data-part-group][hidden] {
|
|
1121
1116
|
display: none;
|
|
1122
1117
|
}
|
|
1123
1118
|
|
|
1124
|
-
[data-ui
|
|
1119
|
+
[data-ui-multi-select] [data-part-group-label] {
|
|
1125
1120
|
color: var(--_muted);
|
|
1126
1121
|
font-size: var(--_secondary-font-size);
|
|
1127
1122
|
font-weight: var(--slotted-font-weight-semibold, 600);
|
|
@@ -1133,7 +1128,7 @@
|
|
|
1133
1128
|
|
|
1134
1129
|
/* ── Options ──────────────────────────────────────────────────────────── */
|
|
1135
1130
|
|
|
1136
|
-
[data-ui
|
|
1131
|
+
[data-ui-multi-select] [data-part-item] {
|
|
1137
1132
|
align-content: center;
|
|
1138
1133
|
border-radius: var(--_item-radius);
|
|
1139
1134
|
box-sizing: border-box;
|
|
@@ -1157,7 +1152,7 @@
|
|
|
1157
1152
|
var(--slotted-control-transition-easing, var(--slotted-easing-standard));
|
|
1158
1153
|
}
|
|
1159
1154
|
|
|
1160
|
-
[data-ui
|
|
1155
|
+
[data-ui-multi-select] [data-part-item][data-current] {
|
|
1161
1156
|
background-color: var(--_highlight);
|
|
1162
1157
|
/**
|
|
1163
1158
|
* A ring as well as a ground. Nothing on this surface holds focus — DOM
|
|
@@ -1171,11 +1166,11 @@
|
|
|
1171
1166
|
var(--slotted-multi-select-highlight-ring, var(--slotted-tone-accent-border));
|
|
1172
1167
|
}
|
|
1173
1168
|
|
|
1174
|
-
[data-ui
|
|
1169
|
+
[data-ui-multi-select] [data-part-item]:not([data-disabled]):active {
|
|
1175
1170
|
background-color: var(--_highlight-active);
|
|
1176
1171
|
}
|
|
1177
1172
|
|
|
1178
|
-
[data-ui
|
|
1173
|
+
[data-ui-multi-select] [data-part-item][data-selected] {
|
|
1179
1174
|
color: var(--_selected-color);
|
|
1180
1175
|
}
|
|
1181
1176
|
|
|
@@ -1188,22 +1183,21 @@
|
|
|
1188
1183
|
* and ends. `select` and `combobox` answer the same way, and
|
|
1189
1184
|
* `selection-block.test.mjs` holds all of them to it.
|
|
1190
1185
|
*/
|
|
1191
|
-
[data-ui
|
|
1186
|
+
[data-ui-multi-select] [data-part-item][data-selected] + [data-part-item][data-selected] {
|
|
1192
1187
|
border-start-end-radius: 0;
|
|
1193
1188
|
border-start-start-radius: 0;
|
|
1194
1189
|
}
|
|
1195
1190
|
|
|
1196
|
-
[data-ui
|
|
1197
|
-
[data-part='item'][data-selected]:has(+ [data-part='item'][data-selected]) {
|
|
1191
|
+
[data-ui-multi-select] [data-part-item][data-selected]:has(+ [data-part-item][data-selected]) {
|
|
1198
1192
|
border-end-end-radius: 0;
|
|
1199
1193
|
border-end-start-radius: 0;
|
|
1200
1194
|
}
|
|
1201
1195
|
|
|
1202
|
-
[data-ui
|
|
1196
|
+
[data-ui-multi-select] [data-part-item][data-selected] > [data-part-label] {
|
|
1203
1197
|
font-weight: var(--slotted-font-weight-medium, 500);
|
|
1204
1198
|
}
|
|
1205
1199
|
|
|
1206
|
-
[data-ui
|
|
1200
|
+
[data-ui-multi-select] [data-part-item][data-disabled] {
|
|
1207
1201
|
color: var(--slotted-disabled-foreground, #64748b);
|
|
1208
1202
|
cursor: not-allowed;
|
|
1209
1203
|
}
|
|
@@ -1221,7 +1215,7 @@
|
|
|
1221
1215
|
* the row cannot do is said by the ink and by the ring, which both step down
|
|
1222
1216
|
* to the disabled pair.
|
|
1223
1217
|
*/
|
|
1224
|
-
[data-ui
|
|
1218
|
+
[data-ui-multi-select] [data-part-item][data-disabled][data-current] {
|
|
1225
1219
|
box-shadow: inset 0 0 0 var(--slotted-border-width-thin, 1px)
|
|
1226
1220
|
var(--slotted-disabled-border, #cbd5e1);
|
|
1227
1221
|
color: var(--slotted-disabled-foreground, #64748b);
|
|
@@ -1229,13 +1223,13 @@
|
|
|
1229
1223
|
|
|
1230
1224
|
/* ── The cells ────────────────────────────────────────────────────────── */
|
|
1231
1225
|
|
|
1232
|
-
[data-ui
|
|
1226
|
+
[data-ui-multi-select] [data-part-item] > :is([data-part-indicator], [data-part-icon]) {
|
|
1233
1227
|
block-size: 1lh;
|
|
1234
1228
|
}
|
|
1235
1229
|
|
|
1236
1230
|
/* Column one holds content and paints none: a `Glyph` in an `Icon` box, or
|
|
1237
1231
|
artwork of the consumer's own, centred and sized from the column. */
|
|
1238
|
-
[data-ui
|
|
1232
|
+
[data-ui-multi-select] [data-part-item] > [data-part-icon] {
|
|
1239
1233
|
--slotted-icon-size: var(--_content-icon-size);
|
|
1240
1234
|
|
|
1241
1235
|
align-items: center;
|
|
@@ -1248,7 +1242,7 @@
|
|
|
1248
1242
|
margin-inline-end: var(--_column-gap);
|
|
1249
1243
|
}
|
|
1250
1244
|
|
|
1251
|
-
[data-ui
|
|
1245
|
+
[data-ui-multi-select] [data-part-item] > [data-part-label] {
|
|
1252
1246
|
grid-column: 2;
|
|
1253
1247
|
grid-row: 1;
|
|
1254
1248
|
min-inline-size: 0;
|
|
@@ -1259,7 +1253,7 @@
|
|
|
1259
1253
|
overflow-wrap: anywhere;
|
|
1260
1254
|
}
|
|
1261
1255
|
|
|
1262
|
-
[data-ui
|
|
1256
|
+
[data-ui-multi-select] [data-part-item] > [data-part-description] {
|
|
1263
1257
|
color: var(--_muted);
|
|
1264
1258
|
font-size: var(--_secondary-font-size);
|
|
1265
1259
|
grid-column: 2;
|
|
@@ -1269,12 +1263,12 @@
|
|
|
1269
1263
|
overflow-wrap: anywhere;
|
|
1270
1264
|
}
|
|
1271
1265
|
|
|
1272
|
-
[data-ui
|
|
1266
|
+
[data-ui-multi-select] [data-part-item][data-disabled] > [data-part-description] {
|
|
1273
1267
|
color: inherit;
|
|
1274
1268
|
}
|
|
1275
1269
|
|
|
1276
1270
|
/* The tick is a `Glyph` the binding draws, at the content's icon step. */
|
|
1277
|
-
[data-ui
|
|
1271
|
+
[data-ui-multi-select] [data-part-item] > [data-part-indicator] {
|
|
1278
1272
|
--slotted-icon-size: var(--_content-icon-size);
|
|
1279
1273
|
|
|
1280
1274
|
align-items: center;
|
|
@@ -1289,7 +1283,7 @@
|
|
|
1289
1283
|
transition: opacity var(--slotted-duration-short) var(--slotted-easing-standard);
|
|
1290
1284
|
}
|
|
1291
1285
|
|
|
1292
|
-
[data-ui
|
|
1286
|
+
[data-ui-multi-select] [data-part-item][data-selected] > [data-part-indicator] {
|
|
1293
1287
|
opacity: 1;
|
|
1294
1288
|
}
|
|
1295
1289
|
|
|
@@ -1299,7 +1293,7 @@
|
|
|
1299
1293
|
* plus rather than the check: the check says "this is in the set" and nothing
|
|
1300
1294
|
* is in the set yet. The binding draws the plus; the rule only shows it.
|
|
1301
1295
|
*/
|
|
1302
|
-
[data-ui
|
|
1296
|
+
[data-ui-multi-select] [data-part-item][data-create] > [data-part-indicator] {
|
|
1303
1297
|
opacity: 1;
|
|
1304
1298
|
}
|
|
1305
1299
|
|
|
@@ -1312,13 +1306,13 @@
|
|
|
1312
1306
|
* Latin word between them. The repair `status`, `empty` and the counter all
|
|
1313
1307
|
* make, for the same reason.
|
|
1314
1308
|
*/
|
|
1315
|
-
[data-ui
|
|
1309
|
+
[data-ui-multi-select] [data-part-item][data-create] > [data-part-label] {
|
|
1316
1310
|
unicode-bidi: plaintext;
|
|
1317
1311
|
}
|
|
1318
1312
|
|
|
1319
1313
|
/* ── Separator, empty, status ─────────────────────────────────────────── */
|
|
1320
1314
|
|
|
1321
|
-
[data-ui
|
|
1315
|
+
[data-ui-multi-select] [data-part-separator] {
|
|
1322
1316
|
background-color: var(--slotted-multi-select-separator-color, var(--_border-color));
|
|
1323
1317
|
block-size: var(--_border-width);
|
|
1324
1318
|
border: 0;
|
|
@@ -1332,7 +1326,7 @@
|
|
|
1332
1326
|
* keep the surface's measure rather than collapsing, so nothing jumps when
|
|
1333
1327
|
* the results land.
|
|
1334
1328
|
*/
|
|
1335
|
-
[data-ui
|
|
1329
|
+
[data-ui-multi-select] :is([data-part-empty], [data-part-status]) {
|
|
1336
1330
|
color: var(--_muted);
|
|
1337
1331
|
/* Its own bidi run, ordered by its own content: "3 results" is a European
|
|
1338
1332
|
number, a neutral space and a Latin word, and in a right-to-left document
|
|
@@ -1368,7 +1362,7 @@
|
|
|
1368
1362
|
* The status row is also the live region that announces the count, so it is
|
|
1369
1363
|
* often present with nothing to draw. A row with no text takes no space.
|
|
1370
1364
|
*/
|
|
1371
|
-
[data-ui
|
|
1365
|
+
[data-ui-multi-select] [data-part-status]:empty {
|
|
1372
1366
|
display: none;
|
|
1373
1367
|
}
|
|
1374
1368
|
|
|
@@ -1379,47 +1373,47 @@
|
|
|
1379
1373
|
* bars are `skeleton/skeleton.css`'s, and they are hidden from assistive
|
|
1380
1374
|
* technology because the `status` row beside them is the live region.
|
|
1381
1375
|
*/
|
|
1382
|
-
[data-ui
|
|
1376
|
+
[data-ui-multi-select] [data-part-placeholder] {
|
|
1383
1377
|
display: grid;
|
|
1384
1378
|
grid-column: 1 / -1;
|
|
1385
1379
|
padding-block: var(--slotted-space-2, 0.25rem);
|
|
1386
1380
|
padding-inline: var(--_item-inset);
|
|
1387
1381
|
}
|
|
1388
1382
|
|
|
1389
|
-
[data-ui
|
|
1383
|
+
[data-ui-multi-select] [data-part-placeholder] > * {
|
|
1390
1384
|
align-items: center;
|
|
1391
1385
|
display: flex;
|
|
1392
1386
|
min-block-size: var(--_item-height);
|
|
1393
1387
|
}
|
|
1394
1388
|
|
|
1395
|
-
[data-ui
|
|
1389
|
+
[data-ui-multi-select] [data-part-placeholder] > [data-ui-skeleton] {
|
|
1396
1390
|
align-self: center;
|
|
1397
1391
|
}
|
|
1398
1392
|
|
|
1399
1393
|
/* Three ragged widths: three identical bars read as a table, and a list of
|
|
1400
1394
|
labels is ragged. */
|
|
1401
|
-
[data-ui
|
|
1395
|
+
[data-ui-multi-select] [data-part-placeholder] > :nth-child(2) [data-ui-skeleton] {
|
|
1402
1396
|
inline-size: 78%;
|
|
1403
1397
|
}
|
|
1404
1398
|
|
|
1405
|
-
[data-ui
|
|
1399
|
+
[data-ui-multi-select] [data-part-placeholder] > :nth-child(3) [data-ui-skeleton] {
|
|
1406
1400
|
inline-size: 56%;
|
|
1407
1401
|
}
|
|
1408
1402
|
|
|
1409
|
-
[data-ui
|
|
1403
|
+
[data-ui-multi-select] > [data-part-content][data-loading] {
|
|
1410
1404
|
cursor: progress;
|
|
1411
1405
|
}
|
|
1412
1406
|
|
|
1413
1407
|
/* ── Forced colours ───────────────────────────────────────────────────── */
|
|
1414
1408
|
|
|
1415
1409
|
@media (forced-colors: active) {
|
|
1416
|
-
[data-ui
|
|
1410
|
+
[data-ui-multi-select] [data-part-item][data-current] {
|
|
1417
1411
|
background-color: Highlight;
|
|
1418
1412
|
color: HighlightText;
|
|
1419
1413
|
forced-color-adjust: none;
|
|
1420
1414
|
}
|
|
1421
1415
|
|
|
1422
|
-
[data-ui
|
|
1416
|
+
[data-ui-multi-select] [data-part-item][data-disabled][data-current] {
|
|
1423
1417
|
background-color: Highlight;
|
|
1424
1418
|
color: GrayText;
|
|
1425
1419
|
}
|