@slotted/styles 0.1.0-beta.1 → 0.1.0-beta.11
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 +35 -42
- 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 +149 -68
- package/src/button/button.tokens.json +10 -0
- package/src/button-group/button-group.css +79 -74
- 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 +103 -90
- package/src/command-palette/command-palette.tokens.json +1 -0
- 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 +535 -470
- package/src/data-grid/data-grid.tokens.json +4 -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 +86 -71
- package/src/detail-panel/detail-panel.tokens.json +2 -0
- package/src/dialog/dialog.css +372 -153
- package/src/dialog/dialog.tokens.json +6 -0
- package/src/divider/divider.css +18 -18
- package/src/drawer/drawer.css +205 -210
- package/src/drawer/drawer.tokens.json +1 -0
- 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 +39 -23
- package/src/page/page.tokens.json +1 -0
- package/src/page-header/page-header.css +323 -283
- package/src/page-header/page-header.tokens.json +5 -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 +83 -180
- package/src/spinner/spinner.tokens.json +0 -1
- 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 +337 -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 +108 -90
- package/src/toast/toast.tokens.json +6 -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
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* gap — so a theme that retunes a text field retunes this bar with it, and
|
|
16
16
|
* the three densities move every control together.
|
|
17
17
|
*/
|
|
18
|
-
[data-ui
|
|
18
|
+
[data-ui-filter-bar] {
|
|
19
19
|
--_gap: var(--slotted-filter-bar-gap, var(--slotted-control-gap-md, 8px));
|
|
20
20
|
--_gap-sm: var(--slotted-control-gap-sm, 6px);
|
|
21
21
|
--_height: var(--slotted-control-height-md, 34px);
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
* start-justified grid or flex parent measured the root at zero pixels and
|
|
69
69
|
* drew every pill and chip outside it.
|
|
70
70
|
*/
|
|
71
|
-
[data-ui
|
|
71
|
+
[data-ui-filter-bar][data-part-root] {
|
|
72
72
|
container-name: slotted-filter-bar;
|
|
73
73
|
container-type: inline-size;
|
|
74
74
|
display: block;
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
* and a select shrink-wrapped to its value is a control that changes width
|
|
84
84
|
* when the value does.
|
|
85
85
|
*/
|
|
86
|
-
[data-ui
|
|
86
|
+
[data-ui-filter-bar][data-part-rule] {
|
|
87
87
|
display: grid;
|
|
88
88
|
gap: var(--_gap);
|
|
89
89
|
inline-size: var(--slotted-filter-bar-editor-size, 18rem);
|
|
@@ -96,17 +96,17 @@
|
|
|
96
96
|
* own at `display: contents`, which leaves the two parts as grid items of
|
|
97
97
|
* the rule and out of reach of a child combinator.
|
|
98
98
|
*/
|
|
99
|
-
[data-ui
|
|
99
|
+
[data-ui-filter-bar][data-part-rule] [data-part-operand] {
|
|
100
100
|
display: grid;
|
|
101
101
|
gap: var(--_gap-sm);
|
|
102
102
|
min-inline-size: 0;
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
-
[data-ui
|
|
105
|
+
[data-ui-filter-bar][data-part-rule][data-kind='boolean'] [data-part-operand]:empty {
|
|
106
106
|
display: none;
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
-
[data-ui
|
|
109
|
+
[data-ui-filter-bar][data-part-rule] > [data-part-actions] {
|
|
110
110
|
align-items: center;
|
|
111
111
|
display: flex;
|
|
112
112
|
gap: var(--_gap-sm);
|
|
@@ -131,7 +131,7 @@
|
|
|
131
131
|
* Every member of the first line starts at its top and is a control tall,
|
|
132
132
|
* so the count centres its text against the search whatever wraps.
|
|
133
133
|
*/
|
|
134
|
-
[data-ui
|
|
134
|
+
[data-ui-filter-bar] > [data-part-frame] {
|
|
135
135
|
align-items: start;
|
|
136
136
|
column-gap: var(--_gap);
|
|
137
137
|
display: grid;
|
|
@@ -142,31 +142,31 @@
|
|
|
142
142
|
row-gap: var(--_gap);
|
|
143
143
|
}
|
|
144
144
|
|
|
145
|
-
[data-ui
|
|
145
|
+
[data-ui-filter-bar] > [data-part-frame] > [data-part-search] {
|
|
146
146
|
grid-area: search;
|
|
147
147
|
max-inline-size: var(--slotted-filter-bar-search-max, 28rem);
|
|
148
148
|
min-inline-size: 0;
|
|
149
149
|
}
|
|
150
150
|
|
|
151
|
-
[data-ui
|
|
151
|
+
[data-ui-filter-bar] > [data-part-frame] > [data-part-bar] {
|
|
152
152
|
grid-area: bar;
|
|
153
153
|
}
|
|
154
154
|
|
|
155
|
-
[data-ui
|
|
155
|
+
[data-ui-filter-bar] > [data-part-frame] > [data-part-end] {
|
|
156
156
|
grid-area: end;
|
|
157
157
|
}
|
|
158
158
|
|
|
159
|
-
[data-ui
|
|
159
|
+
[data-ui-filter-bar] > [data-part-frame] > [data-part-count] {
|
|
160
160
|
grid-area: count;
|
|
161
161
|
justify-self: end;
|
|
162
162
|
}
|
|
163
163
|
|
|
164
164
|
/** A member that is absent collapses: the grid's gap is what would remain, and it is taken away. */
|
|
165
|
-
[data-ui
|
|
165
|
+
[data-ui-filter-bar] > [data-part-frame] > [data-part-end]:empty {
|
|
166
166
|
display: none;
|
|
167
167
|
}
|
|
168
168
|
|
|
169
|
-
[data-ui
|
|
169
|
+
[data-ui-filter-bar][data-size='sm'] {
|
|
170
170
|
--_height: var(--slotted-control-height-sm, 30px);
|
|
171
171
|
--_font-size: var(--slotted-control-font-size-sm, 12px);
|
|
172
172
|
--_pad: var(--slotted-control-padding-inline-sm, 10px);
|
|
@@ -176,7 +176,7 @@
|
|
|
176
176
|
--_gap-sm: var(--slotted-control-gap-sm, 4px);
|
|
177
177
|
}
|
|
178
178
|
|
|
179
|
-
[data-ui
|
|
179
|
+
[data-ui-filter-bar][data-size='lg'] {
|
|
180
180
|
--_height: var(--slotted-control-height-lg, 38px);
|
|
181
181
|
--_font-size: var(--slotted-control-font-size-lg, 14px);
|
|
182
182
|
--_pad: var(--slotted-control-padding-inline-lg, 16px);
|
|
@@ -192,9 +192,9 @@
|
|
|
192
192
|
* the query is an `icon` in the field's start adornment, which the field
|
|
193
193
|
* sizes as it sizes every adornment.
|
|
194
194
|
*/
|
|
195
|
-
[data-ui
|
|
196
|
-
[data-ui
|
|
197
|
-
[data-ui
|
|
195
|
+
[data-ui-filter-bar] [data-part-search] > [data-ui-text-field],
|
|
196
|
+
[data-ui-filter-bar] [data-part-preset] > [data-ui-select],
|
|
197
|
+
[data-ui-filter-bar] :is([data-part-field], [data-part-operator]) > [data-ui-select] {
|
|
198
198
|
inline-size: 100%;
|
|
199
199
|
}
|
|
200
200
|
|
|
@@ -203,7 +203,7 @@
|
|
|
203
203
|
* to line, which the toolbar pattern allows for a toolbar of several rows.
|
|
204
204
|
* The row gap is the column gap, so two lines of chips read as one set.
|
|
205
205
|
*/
|
|
206
|
-
[data-ui
|
|
206
|
+
[data-ui-filter-bar] [data-part-bar] {
|
|
207
207
|
align-items: center;
|
|
208
208
|
display: flex;
|
|
209
209
|
flex-wrap: wrap;
|
|
@@ -211,14 +211,14 @@
|
|
|
211
211
|
min-inline-size: 0;
|
|
212
212
|
}
|
|
213
213
|
|
|
214
|
-
[data-ui
|
|
214
|
+
[data-ui-filter-bar] [data-part-end] {
|
|
215
215
|
align-items: center;
|
|
216
216
|
display: flex;
|
|
217
217
|
gap: var(--_gap);
|
|
218
218
|
}
|
|
219
219
|
|
|
220
220
|
/** The count is the answer to the filters, and it takes the far end of its line — PatternFly's rule for an item count. */
|
|
221
|
-
[data-ui
|
|
221
|
+
[data-ui-filter-bar] > [data-part-frame] > [data-part-count] {
|
|
222
222
|
color: var(--_muted);
|
|
223
223
|
font-variant-numeric: tabular-nums;
|
|
224
224
|
margin: 0;
|
|
@@ -240,7 +240,7 @@
|
|
|
240
240
|
* that holds something. The plus before the name says what pressing it
|
|
241
241
|
* does. Given a condition, the same place in the bar becomes a chip.
|
|
242
242
|
*/
|
|
243
|
-
[data-ui
|
|
243
|
+
[data-ui-filter-bar] [data-part-pill] {
|
|
244
244
|
align-items: center;
|
|
245
245
|
appearance: none;
|
|
246
246
|
background-color: transparent;
|
|
@@ -268,36 +268,36 @@
|
|
|
268
268
|
white-space: nowrap;
|
|
269
269
|
}
|
|
270
270
|
|
|
271
|
-
[data-ui
|
|
271
|
+
[data-ui-filter-bar] [data-part-pill] > span:not([data-ui-icon]) {
|
|
272
272
|
min-inline-size: 0;
|
|
273
273
|
overflow: hidden;
|
|
274
274
|
text-overflow: ellipsis;
|
|
275
275
|
unicode-bidi: isolate;
|
|
276
276
|
}
|
|
277
277
|
|
|
278
|
-
[data-ui
|
|
278
|
+
[data-ui-filter-bar] [data-part-pill] > [data-ui-icon] {
|
|
279
279
|
--slotted-icon-size: var(--_icon);
|
|
280
280
|
}
|
|
281
281
|
|
|
282
|
-
[data-ui
|
|
282
|
+
[data-ui-filter-bar] [data-part-pill][data-invalid] {
|
|
283
283
|
border-color: var(--_invalid);
|
|
284
284
|
box-shadow: var(--_invalid-edge);
|
|
285
285
|
}
|
|
286
286
|
|
|
287
|
-
[data-ui
|
|
287
|
+
[data-ui-filter-bar] [data-part-pill]:enabled:hover {
|
|
288
288
|
background-color: var(--_hover);
|
|
289
289
|
border-color: var(--slotted-border-strong, ButtonBorder);
|
|
290
290
|
color: var(--_ink);
|
|
291
291
|
}
|
|
292
292
|
|
|
293
|
-
[data-ui
|
|
294
|
-
[data-ui
|
|
293
|
+
[data-ui-filter-bar] [data-part-pill]:enabled:active,
|
|
294
|
+
[data-ui-filter-bar] [data-part-pill]:enabled[aria-expanded='true'] {
|
|
295
295
|
background-color: var(--_active);
|
|
296
296
|
border-color: var(--slotted-border-strong, ButtonBorder);
|
|
297
297
|
color: var(--_ink);
|
|
298
298
|
}
|
|
299
299
|
|
|
300
|
-
[data-ui
|
|
300
|
+
[data-ui-filter-bar] [data-part-pill]:focus-visible {
|
|
301
301
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
302
302
|
outline-offset: var(--slotted-focus-ring-offset, 2px);
|
|
303
303
|
}
|
|
@@ -319,7 +319,7 @@
|
|
|
319
319
|
* so a hover ground and a focus ring follow its curve rather than being
|
|
320
320
|
* clipped by it.
|
|
321
321
|
*/
|
|
322
|
-
[data-ui
|
|
322
|
+
[data-ui-filter-bar] [data-part-chip] {
|
|
323
323
|
align-items: stretch;
|
|
324
324
|
background-color: var(--_surface);
|
|
325
325
|
block-size: var(--_height);
|
|
@@ -347,13 +347,13 @@
|
|
|
347
347
|
* held for an exit would be a stop of the arrows that no longer exists.
|
|
348
348
|
*/
|
|
349
349
|
@starting-style {
|
|
350
|
-
[data-ui
|
|
350
|
+
[data-ui-filter-bar] :is([data-part-chip], [data-part-pill]) {
|
|
351
351
|
opacity: 0;
|
|
352
352
|
translate: 0 calc(-1 * var(--slotted-space-2, 0.25rem));
|
|
353
353
|
}
|
|
354
354
|
}
|
|
355
355
|
|
|
356
|
-
[data-ui
|
|
356
|
+
[data-ui-filter-bar] [data-part-chip] > * {
|
|
357
357
|
align-items: center;
|
|
358
358
|
background-color: transparent;
|
|
359
359
|
border: 0;
|
|
@@ -371,52 +371,52 @@
|
|
|
371
371
|
white-space: nowrap;
|
|
372
372
|
}
|
|
373
373
|
|
|
374
|
-
[data-ui
|
|
374
|
+
[data-ui-filter-bar] [data-part-chip] > * + * {
|
|
375
375
|
border-inline-start: var(--_border-width) solid var(--_seam);
|
|
376
376
|
}
|
|
377
377
|
|
|
378
|
-
[data-ui
|
|
378
|
+
[data-ui-filter-bar] [data-part-chip] > :first-child {
|
|
379
379
|
border-end-start-radius: var(--_radius);
|
|
380
380
|
border-start-start-radius: var(--_radius);
|
|
381
381
|
/* The capsule's curve takes air from the first letter, so the start inset is the control's, not the segment's. */
|
|
382
382
|
padding-inline-start: var(--_pad);
|
|
383
383
|
}
|
|
384
384
|
|
|
385
|
-
[data-ui
|
|
385
|
+
[data-ui-filter-bar] [data-part-chip] > :last-child {
|
|
386
386
|
border-end-end-radius: var(--_radius);
|
|
387
387
|
border-start-end-radius: var(--_radius);
|
|
388
388
|
}
|
|
389
389
|
|
|
390
|
-
[data-ui
|
|
390
|
+
[data-ui-filter-bar] [data-part-chip] [data-ui-icon] {
|
|
391
391
|
--slotted-icon-size: var(--_icon);
|
|
392
392
|
}
|
|
393
393
|
|
|
394
|
-
[data-ui
|
|
394
|
+
[data-ui-filter-bar] [data-part-chip-field] {
|
|
395
395
|
font-weight: var(--slotted-font-weight-medium, 500);
|
|
396
396
|
}
|
|
397
397
|
|
|
398
|
-
[data-ui
|
|
398
|
+
[data-ui-filter-bar] [data-part-chip-field] > [data-ui-icon] {
|
|
399
399
|
color: var(--_muted);
|
|
400
400
|
}
|
|
401
401
|
|
|
402
402
|
/** The field's name, the operator and the value are isolated runs, so a right-to-left name beside an ISO date reorders nothing. */
|
|
403
|
-
[data-ui
|
|
404
|
-
[data-ui
|
|
403
|
+
[data-ui-filter-bar] [data-part-chip] > * > span:not([data-ui]),
|
|
404
|
+
[data-ui-filter-bar] [data-part-chip-operator] {
|
|
405
405
|
unicode-bidi: isolate;
|
|
406
406
|
}
|
|
407
407
|
|
|
408
|
-
[data-ui
|
|
408
|
+
[data-ui-filter-bar] [data-part-chip-operator] {
|
|
409
409
|
color: var(--_muted);
|
|
410
410
|
font-weight: var(--slotted-font-weight-regular, 400);
|
|
411
411
|
}
|
|
412
412
|
|
|
413
|
-
[data-ui
|
|
413
|
+
[data-ui-filter-bar] [data-part-chip-value] {
|
|
414
414
|
font-weight: var(--slotted-font-weight-medium, 500);
|
|
415
415
|
min-inline-size: 0;
|
|
416
416
|
}
|
|
417
417
|
|
|
418
418
|
/* The value truncates and the whole list stays in the segment's name and title. */
|
|
419
|
-
[data-ui
|
|
419
|
+
[data-ui-filter-bar] [data-part-chip-value] > [data-value] {
|
|
420
420
|
max-inline-size: var(--slotted-filter-bar-value-max, 12rem);
|
|
421
421
|
min-inline-size: 0;
|
|
422
422
|
overflow: hidden;
|
|
@@ -427,21 +427,21 @@
|
|
|
427
427
|
* The operator's words inside the value segment are drawn only where the
|
|
428
428
|
* operator segment is not — under the narrow breakpoint, below.
|
|
429
429
|
*/
|
|
430
|
-
[data-ui
|
|
430
|
+
[data-ui-filter-bar] [data-part-chip-value] > [data-operator] {
|
|
431
431
|
color: var(--_muted);
|
|
432
432
|
display: none;
|
|
433
433
|
font-weight: var(--slotted-font-weight-regular, 400);
|
|
434
434
|
}
|
|
435
435
|
|
|
436
436
|
/** The remove control is square in the capsule's height, and its glyph reads quiet until it is aimed at. */
|
|
437
|
-
[data-ui
|
|
437
|
+
[data-ui-filter-bar] [data-part-chip-remove] {
|
|
438
438
|
aspect-ratio: 1;
|
|
439
439
|
color: var(--_muted);
|
|
440
440
|
justify-content: center;
|
|
441
441
|
padding-inline: 0;
|
|
442
442
|
}
|
|
443
443
|
|
|
444
|
-
[data-ui
|
|
444
|
+
[data-ui-filter-bar] [data-part-chip] > :is(button, [role='button']) {
|
|
445
445
|
cursor: pointer;
|
|
446
446
|
transition:
|
|
447
447
|
background-color var(--_duration) var(--_easing),
|
|
@@ -453,17 +453,17 @@
|
|
|
453
453
|
* open segment holds the press ground while its surface is up, so the
|
|
454
454
|
* reader sees which segment the menu or the popover belongs to.
|
|
455
455
|
*/
|
|
456
|
-
[data-ui
|
|
457
|
-
[data-part
|
|
456
|
+
[data-ui-filter-bar]
|
|
457
|
+
[data-part-chip]
|
|
458
458
|
> :is(button, [role='button']):enabled:not([aria-disabled='true']):hover {
|
|
459
459
|
background-color: var(--_hover);
|
|
460
460
|
color: var(--_ink);
|
|
461
461
|
}
|
|
462
462
|
|
|
463
|
-
[data-ui
|
|
464
|
-
[data-part
|
|
463
|
+
[data-ui-filter-bar]
|
|
464
|
+
[data-part-chip]
|
|
465
465
|
> :is(button, [role='button']):enabled:not([aria-disabled='true']):active,
|
|
466
|
-
[data-ui
|
|
466
|
+
[data-ui-filter-bar] [data-part-chip] > :is(button, [role='button'])[aria-expanded='true'] {
|
|
467
467
|
background-color: var(--_active);
|
|
468
468
|
color: var(--_ink);
|
|
469
469
|
}
|
|
@@ -473,7 +473,7 @@
|
|
|
473
473
|
* neighbouring segments, and inward it stays inside the capsule and follows
|
|
474
474
|
* its curve on the end segments — the rule every inner control follows.
|
|
475
475
|
*/
|
|
476
|
-
[data-ui
|
|
476
|
+
[data-ui-filter-bar] [data-part-chip] > :focus-visible {
|
|
477
477
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
478
478
|
outline-offset: calc(var(--slotted-focus-ring-width, 2px) * -1);
|
|
479
479
|
}
|
|
@@ -483,43 +483,40 @@
|
|
|
483
483
|
* says the same thing, and the value segment writes the prompt in the
|
|
484
484
|
* muted ink. The condition is not applied until the value is there.
|
|
485
485
|
*/
|
|
486
|
-
[data-ui
|
|
486
|
+
[data-ui-filter-bar] [data-part-chip][data-incomplete] {
|
|
487
487
|
border-style: dashed;
|
|
488
488
|
box-shadow: none;
|
|
489
489
|
}
|
|
490
490
|
|
|
491
|
-
[data-ui
|
|
491
|
+
[data-ui-filter-bar] [data-part-chip][data-incomplete] > [data-part-chip-value] {
|
|
492
492
|
color: var(--_muted);
|
|
493
493
|
font-weight: var(--slotted-font-weight-regular, 400);
|
|
494
494
|
}
|
|
495
495
|
|
|
496
|
-
[data-ui
|
|
496
|
+
[data-ui-filter-bar] [data-part-chip][data-invalid] {
|
|
497
497
|
border-color: var(--_invalid);
|
|
498
498
|
box-shadow: var(--_invalid-edge);
|
|
499
499
|
}
|
|
500
500
|
|
|
501
501
|
/** The field's glyph and name turn to the danger ink with the edge, so the fault is read on the segment it is about. */
|
|
502
|
-
[data-ui
|
|
503
|
-
[data-ui
|
|
504
|
-
[data-part='chip'][data-invalid]
|
|
505
|
-
> [data-part='chip-field']
|
|
506
|
-
> [data-ui='icon'] {
|
|
502
|
+
[data-ui-filter-bar] [data-part-chip][data-invalid] > [data-part-chip-field],
|
|
503
|
+
[data-ui-filter-bar] [data-part-chip][data-invalid] > [data-part-chip-field] > [data-ui-icon] {
|
|
507
504
|
color: var(--slotted-tone-danger-text, CanvasText);
|
|
508
505
|
}
|
|
509
506
|
|
|
510
|
-
[data-ui
|
|
507
|
+
[data-ui-filter-bar] [data-part-chip][data-folded] {
|
|
511
508
|
display: none;
|
|
512
509
|
visibility: hidden;
|
|
513
510
|
}
|
|
514
511
|
|
|
515
|
-
[data-ui
|
|
512
|
+
[data-ui-filter-bar] [data-part-bar][data-revealed] [data-part-chip][data-folded] {
|
|
516
513
|
display: inline-flex;
|
|
517
514
|
visibility: visible;
|
|
518
515
|
}
|
|
519
516
|
|
|
520
517
|
/* ── More ───────────────────────────────────────────────────────────── */
|
|
521
518
|
|
|
522
|
-
[data-ui
|
|
519
|
+
[data-ui-filter-bar] [data-part-more] {
|
|
523
520
|
align-items: center;
|
|
524
521
|
appearance: none;
|
|
525
522
|
background: none;
|
|
@@ -540,17 +537,17 @@
|
|
|
540
537
|
white-space: nowrap;
|
|
541
538
|
}
|
|
542
539
|
|
|
543
|
-
[data-ui
|
|
540
|
+
[data-ui-filter-bar] [data-part-more]:enabled:hover {
|
|
544
541
|
background-color: var(--_hover);
|
|
545
542
|
color: var(--_ink);
|
|
546
543
|
}
|
|
547
544
|
|
|
548
|
-
[data-ui
|
|
545
|
+
[data-ui-filter-bar] [data-part-more]:enabled:active {
|
|
549
546
|
background-color: var(--_active);
|
|
550
547
|
color: var(--_ink);
|
|
551
548
|
}
|
|
552
549
|
|
|
553
|
-
[data-ui
|
|
550
|
+
[data-ui-filter-bar] [data-part-more]:focus-visible {
|
|
554
551
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
555
552
|
outline-offset: var(--slotted-focus-ring-offset, 2px);
|
|
556
553
|
}
|
|
@@ -564,18 +561,18 @@
|
|
|
564
561
|
* conditions are what the bar is about, and a control that empties them is
|
|
565
562
|
* not the loudest word on the line. Apply keeps the weight of a commit.
|
|
566
563
|
*/
|
|
567
|
-
[data-ui
|
|
564
|
+
[data-ui-filter-bar] [data-part-bar] :is([data-part-clear], [data-part-reset]) {
|
|
568
565
|
--slotted-control-font-weight: var(--slotted-font-weight-medium, 500);
|
|
569
566
|
}
|
|
570
567
|
|
|
571
568
|
/* ── The summary, drawn only when the bar is narrow ─────────────────── */
|
|
572
569
|
|
|
573
|
-
[data-ui
|
|
570
|
+
[data-ui-filter-bar] [data-part-summary] {
|
|
574
571
|
display: none;
|
|
575
572
|
visibility: hidden;
|
|
576
573
|
}
|
|
577
574
|
|
|
578
|
-
[data-ui
|
|
575
|
+
[data-ui-filter-bar] [data-part-summary] > [data-part-label] > span {
|
|
579
576
|
/* The count in the summary is a figure, and figures line up. */
|
|
580
577
|
font-variant-numeric: tabular-nums;
|
|
581
578
|
}
|
|
@@ -588,7 +585,7 @@
|
|
|
588
585
|
* and Clear there would make the control that empties the filter the
|
|
589
586
|
* neighbour of the one that commits it.
|
|
590
587
|
*/
|
|
591
|
-
[data-ui
|
|
588
|
+
[data-ui-filter-bar] > [data-part-frame] > [data-part-bar] > [data-part-actions] {
|
|
592
589
|
align-items: center;
|
|
593
590
|
display: flex;
|
|
594
591
|
gap: var(--_gap-sm);
|
|
@@ -597,7 +594,7 @@
|
|
|
597
594
|
|
|
598
595
|
/* ── States of the whole bar ────────────────────────────────────────── */
|
|
599
596
|
|
|
600
|
-
[data-ui
|
|
597
|
+
[data-ui-filter-bar][data-disabled] {
|
|
601
598
|
--_ink: var(--slotted-disabled-foreground, GrayText);
|
|
602
599
|
--_muted: var(--slotted-disabled-foreground, GrayText);
|
|
603
600
|
--_edge: var(--slotted-disabled-border, GrayText);
|
|
@@ -605,11 +602,11 @@
|
|
|
605
602
|
--_surface: var(--slotted-disabled-background, Canvas);
|
|
606
603
|
}
|
|
607
604
|
|
|
608
|
-
[data-ui
|
|
605
|
+
[data-ui-filter-bar][data-disabled] :is([data-part-pill], [data-part-chip]) {
|
|
609
606
|
box-shadow: none;
|
|
610
607
|
}
|
|
611
608
|
|
|
612
|
-
[data-ui
|
|
609
|
+
[data-ui-filter-bar][data-disabled] :is([data-part-pill], [data-part-chip] > *) {
|
|
613
610
|
cursor: not-allowed;
|
|
614
611
|
}
|
|
615
612
|
|
|
@@ -618,12 +615,12 @@
|
|
|
618
615
|
* invites a press — the segments keep their stop and lose the pointer, and
|
|
619
616
|
* the binding draws no remove, add or clear control.
|
|
620
617
|
*/
|
|
621
|
-
[data-ui
|
|
618
|
+
[data-ui-filter-bar][data-readonly] [data-part-chip] > * {
|
|
622
619
|
cursor: default;
|
|
623
620
|
}
|
|
624
621
|
|
|
625
622
|
/** A loading bar keeps its width and its controls, and says so in the count's place. */
|
|
626
|
-
[data-ui
|
|
623
|
+
[data-ui-filter-bar][data-loading] > [data-part-frame] > [data-part-count] {
|
|
627
624
|
align-items: center;
|
|
628
625
|
display: inline-flex;
|
|
629
626
|
gap: var(--_gap-sm);
|
|
@@ -639,7 +636,7 @@
|
|
|
639
636
|
* and writes the value it read back on the root itself, so the bar keeps
|
|
640
637
|
* sticking where it did while everything after it stops under the bar.
|
|
641
638
|
*/
|
|
642
|
-
[data-ui
|
|
639
|
+
[data-ui-filter-bar][data-sticky] {
|
|
643
640
|
background-color: var(--_surface);
|
|
644
641
|
inset-block-start: var(--slotted-page-sticky-top, 0px);
|
|
645
642
|
padding-block: var(--slotted-space-3, 0.375rem);
|
|
@@ -657,7 +654,7 @@
|
|
|
657
654
|
* header and its own remove. A rule is one row: field, operator, operand,
|
|
658
655
|
* remove; it stacks when the drawer is narrow, and the leading word stays.
|
|
659
656
|
*/
|
|
660
|
-
[data-ui
|
|
657
|
+
[data-ui-filter-bar][data-part-builder] {
|
|
661
658
|
--_join-col: var(--slotted-filter-bar-join-size, 3.5rem);
|
|
662
659
|
--_group-surface: var(
|
|
663
660
|
--slotted-filter-bar-group-surface,
|
|
@@ -679,7 +676,7 @@
|
|
|
679
676
|
* builder's, because the card form below is the builder's decision and
|
|
680
677
|
* every group in one builder takes the same form.
|
|
681
678
|
*/
|
|
682
|
-
[data-ui
|
|
679
|
+
[data-ui-filter-bar][data-part-builder] [data-part-group] {
|
|
683
680
|
border: 0;
|
|
684
681
|
container-name: slotted-filter-bar-group;
|
|
685
682
|
container-type: inline-size;
|
|
@@ -690,7 +687,7 @@
|
|
|
690
687
|
padding: 0;
|
|
691
688
|
}
|
|
692
689
|
|
|
693
|
-
[data-ui
|
|
690
|
+
[data-ui-filter-bar][data-part-builder] [data-part-group]:not([data-depth='0']) {
|
|
694
691
|
background-color: var(--_group-surface);
|
|
695
692
|
border: var(--slotted-border-width-thin, 1px) solid var(--_group-edge);
|
|
696
693
|
border-radius: var(--slotted-radius-md, 6px);
|
|
@@ -698,12 +695,12 @@
|
|
|
698
695
|
}
|
|
699
696
|
|
|
700
697
|
/* A box inside a box alternates its ground, so the third level reads as a level and not as a border. */
|
|
701
|
-
[data-ui
|
|
702
|
-
[data-part
|
|
698
|
+
[data-ui-filter-bar][data-part-builder]
|
|
699
|
+
[data-part-group]:is([data-depth='2'], [data-depth='4'], [data-depth='6']) {
|
|
703
700
|
background-color: var(--_surface);
|
|
704
701
|
}
|
|
705
702
|
|
|
706
|
-
[data-ui
|
|
703
|
+
[data-ui-filter-bar][data-part-builder] [data-part-group] > legend {
|
|
707
704
|
/* The legend names the group to a reader and draws nothing. */
|
|
708
705
|
block-size: 1px;
|
|
709
706
|
clip-path: inset(50%);
|
|
@@ -714,7 +711,7 @@
|
|
|
714
711
|
}
|
|
715
712
|
|
|
716
713
|
/** The header: the words, the All | Any control between them, and, in a nested group, its remove at the end. */
|
|
717
|
-
[data-ui
|
|
714
|
+
[data-ui-filter-bar][data-part-builder] [data-part-join] {
|
|
718
715
|
align-items: center;
|
|
719
716
|
color: var(--_ink);
|
|
720
717
|
display: flex;
|
|
@@ -723,7 +720,7 @@
|
|
|
723
720
|
gap: var(--_gap-sm);
|
|
724
721
|
}
|
|
725
722
|
|
|
726
|
-
[data-ui
|
|
723
|
+
[data-ui-filter-bar][data-part-builder] [data-part-join] > [data-part-remove-group] {
|
|
727
724
|
margin-inline-start: auto;
|
|
728
725
|
}
|
|
729
726
|
|
|
@@ -731,7 +728,7 @@
|
|
|
731
728
|
* The rows: a two-column grid, the joining word then the rule or the group,
|
|
732
729
|
* so every field lines up under the first whatever word stands before it.
|
|
733
730
|
*/
|
|
734
|
-
[data-ui
|
|
731
|
+
[data-ui-filter-bar][data-part-builder] [data-part-rules] {
|
|
735
732
|
align-items: start;
|
|
736
733
|
column-gap: var(--_gap-sm);
|
|
737
734
|
display: grid;
|
|
@@ -740,7 +737,7 @@
|
|
|
740
737
|
row-gap: var(--_gap);
|
|
741
738
|
}
|
|
742
739
|
|
|
743
|
-
[data-ui
|
|
740
|
+
[data-ui-filter-bar][data-part-builder] [data-part-conjunction] {
|
|
744
741
|
color: var(--_muted);
|
|
745
742
|
/* Centred on the first control of its row, whatever the row stacks to. */
|
|
746
743
|
line-height: var(--_height);
|
|
@@ -750,7 +747,7 @@
|
|
|
750
747
|
white-space: nowrap;
|
|
751
748
|
}
|
|
752
749
|
|
|
753
|
-
[data-ui
|
|
750
|
+
[data-ui-filter-bar][data-part-builder] [data-part-rule] {
|
|
754
751
|
align-items: center;
|
|
755
752
|
display: grid;
|
|
756
753
|
gap: var(--_gap-sm);
|
|
@@ -764,38 +761,34 @@
|
|
|
764
761
|
min-inline-size: 0;
|
|
765
762
|
}
|
|
766
763
|
|
|
767
|
-
[data-ui
|
|
768
|
-
[data-ui
|
|
769
|
-
[data-part
|
|
770
|
-
:is([data-part
|
|
764
|
+
[data-ui-filter-bar][data-part-builder] [data-part-rule] > *,
|
|
765
|
+
[data-ui-filter-bar][data-part-builder]
|
|
766
|
+
[data-part-rule]
|
|
767
|
+
:is([data-part-operator], [data-part-operand]) {
|
|
771
768
|
min-inline-size: 0;
|
|
772
769
|
}
|
|
773
770
|
|
|
774
|
-
[data-ui
|
|
775
|
-
[data-part='rule'][data-operands='0']
|
|
776
|
-
[data-part='operand'] {
|
|
771
|
+
[data-ui-filter-bar][data-part-builder] [data-part-rule][data-operands='0'] [data-part-operand] {
|
|
777
772
|
display: none;
|
|
778
773
|
}
|
|
779
774
|
|
|
780
|
-
[data-ui
|
|
775
|
+
[data-ui-filter-bar][data-part-builder] [data-part-rule][data-operands='0'] {
|
|
781
776
|
/* The operator takes the operand's tracks too, so the field keeps the width it has on every other row. */
|
|
782
777
|
grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) var(--slotted-target-min, 24px);
|
|
783
778
|
}
|
|
784
779
|
|
|
785
|
-
[data-ui
|
|
780
|
+
[data-ui-filter-bar][data-part-builder] [data-part-operand] {
|
|
786
781
|
display: grid;
|
|
787
782
|
gap: var(--_gap-sm);
|
|
788
783
|
min-inline-size: 0;
|
|
789
784
|
}
|
|
790
785
|
|
|
791
|
-
[data-ui
|
|
792
|
-
[data-part='rule'][data-operands='2']
|
|
793
|
-
[data-part='operand'] {
|
|
786
|
+
[data-ui-filter-bar][data-part-builder] [data-part-rule][data-operands='2'] [data-part-operand] {
|
|
794
787
|
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
|
|
795
788
|
}
|
|
796
789
|
|
|
797
790
|
/** The group's own controls, under its rows and aligned with them. */
|
|
798
|
-
[data-ui
|
|
791
|
+
[data-ui-filter-bar][data-part-builder] [data-part-group] > [data-part-actions] {
|
|
799
792
|
align-items: center;
|
|
800
793
|
display: flex;
|
|
801
794
|
flex-wrap: wrap;
|
|
@@ -811,22 +804,17 @@
|
|
|
811
804
|
* as view is a different act — it leaves the builder for the application's
|
|
812
805
|
* dialog — so it stands apart at the far end, at the weight of the words.
|
|
813
806
|
*/
|
|
814
|
-
[data-ui
|
|
815
|
-
[data-part
|
|
816
|
-
> [data-part
|
|
817
|
-
> :is(
|
|
818
|
-
[data-part='add-rule'],
|
|
819
|
-
[data-part='add-group'],
|
|
820
|
-
[data-part='clear'],
|
|
821
|
-
[data-part='save-preset']
|
|
822
|
-
) {
|
|
807
|
+
[data-ui-filter-bar][data-part-builder]
|
|
808
|
+
[data-part-group]
|
|
809
|
+
> [data-part-actions]
|
|
810
|
+
> :is([data-part-add-rule], [data-part-add-group], [data-part-clear], [data-part-save-preset]) {
|
|
823
811
|
--slotted-control-font-weight: var(--slotted-font-weight-medium, 500);
|
|
824
812
|
}
|
|
825
813
|
|
|
826
|
-
[data-ui
|
|
827
|
-
[data-part
|
|
828
|
-
> [data-part
|
|
829
|
-
> [data-part
|
|
814
|
+
[data-ui-filter-bar][data-part-builder]
|
|
815
|
+
[data-part-group]
|
|
816
|
+
> [data-part-actions]
|
|
817
|
+
> [data-part-save-preset] {
|
|
830
818
|
margin-inline-start: auto;
|
|
831
819
|
}
|
|
832
820
|
|
|
@@ -835,23 +823,23 @@
|
|
|
835
823
|
operator and the operand span both tracks, and a spanning item hands
|
|
836
824
|
its size to the non-flexible track first — `auto` took the operand's
|
|
837
825
|
whole width and left the field 34 pixels wide, a chevron with no name. */
|
|
838
|
-
[data-ui
|
|
839
|
-
[data-ui
|
|
826
|
+
[data-ui-filter-bar][data-part-builder] [data-part-rule],
|
|
827
|
+
[data-ui-filter-bar][data-part-builder] [data-part-rule][data-operands='0'] {
|
|
840
828
|
grid-template-columns: minmax(0, 1fr) var(--slotted-target-min, 24px);
|
|
841
829
|
}
|
|
842
830
|
|
|
843
|
-
[data-ui
|
|
831
|
+
[data-ui-filter-bar][data-part-builder] [data-part-rule] > [data-part-field] {
|
|
844
832
|
grid-column: 1;
|
|
845
833
|
}
|
|
846
834
|
|
|
847
|
-
[data-ui
|
|
835
|
+
[data-ui-filter-bar][data-part-builder] [data-part-rule] > [data-part-remove] {
|
|
848
836
|
grid-column: 2;
|
|
849
837
|
grid-row: 1;
|
|
850
838
|
}
|
|
851
839
|
|
|
852
|
-
[data-ui
|
|
853
|
-
[data-part
|
|
854
|
-
:is([data-part
|
|
840
|
+
[data-ui-filter-bar][data-part-builder]
|
|
841
|
+
[data-part-rule]
|
|
842
|
+
:is([data-part-operator], [data-part-operand]) {
|
|
855
843
|
grid-column: 1 / -1;
|
|
856
844
|
}
|
|
857
845
|
}
|
|
@@ -860,7 +848,7 @@
|
|
|
860
848
|
* The sentence of a rule is the card form's header, and a row that already
|
|
861
849
|
* shows its three controls does not draw it.
|
|
862
850
|
*/
|
|
863
|
-
[data-ui
|
|
851
|
+
[data-ui-filter-bar][data-part-builder] [data-part-rule-summary] {
|
|
864
852
|
display: none;
|
|
865
853
|
visibility: hidden;
|
|
866
854
|
}
|
|
@@ -877,32 +865,32 @@
|
|
|
877
865
|
* the joining word stands on its own line between two cards.
|
|
878
866
|
*/
|
|
879
867
|
@container slotted-filter-bar-builder (max-width: 30rem) {
|
|
880
|
-
[data-ui
|
|
868
|
+
[data-ui-filter-bar][data-part-builder] {
|
|
881
869
|
gap: var(--_gap);
|
|
882
870
|
}
|
|
883
871
|
|
|
884
|
-
[data-ui
|
|
872
|
+
[data-ui-filter-bar][data-part-builder] [data-part-rules] {
|
|
885
873
|
grid-template-columns: minmax(0, 1fr);
|
|
886
874
|
row-gap: var(--_gap-sm);
|
|
887
875
|
}
|
|
888
876
|
|
|
889
877
|
/* The joining word, small and on a line of its own; "Where" says nothing a list of cards does not. */
|
|
890
|
-
[data-ui
|
|
878
|
+
[data-ui-filter-bar][data-part-builder] [data-part-conjunction] {
|
|
891
879
|
font-size: var(--slotted-font-size-xs, 12px);
|
|
892
880
|
line-height: var(--slotted-line-height-xs, 1.5);
|
|
893
881
|
padding-inline-start: var(--_seg-pad);
|
|
894
882
|
text-align: start;
|
|
895
883
|
}
|
|
896
884
|
|
|
897
|
-
[data-ui
|
|
898
|
-
[data-part
|
|
899
|
-
> [data-part
|
|
885
|
+
[data-ui-filter-bar][data-part-builder]
|
|
886
|
+
[data-part-rules]
|
|
887
|
+
> [data-part-conjunction]:first-child {
|
|
900
888
|
display: none;
|
|
901
889
|
}
|
|
902
890
|
|
|
903
|
-
[data-ui
|
|
904
|
-
[data-ui
|
|
905
|
-
[data-part
|
|
891
|
+
[data-ui-filter-bar][data-part-builder] [data-part-group]:not([data-depth='0']),
|
|
892
|
+
[data-ui-filter-bar][data-part-builder]
|
|
893
|
+
[data-part-group]:is([data-depth='2'], [data-depth='4'], [data-depth='6']) {
|
|
906
894
|
background-color: transparent;
|
|
907
895
|
border: 0;
|
|
908
896
|
/* The rail carries the nesting alone here, so it takes the edge the cards have rather than the box's subtler one. */
|
|
@@ -912,8 +900,8 @@
|
|
|
912
900
|
padding-inline: var(--slotted-space-4, 0.5rem) 0;
|
|
913
901
|
}
|
|
914
902
|
|
|
915
|
-
[data-ui
|
|
916
|
-
[data-ui
|
|
903
|
+
[data-ui-filter-bar][data-part-builder] [data-part-rule],
|
|
904
|
+
[data-ui-filter-bar][data-part-builder] [data-part-rule][data-operands='0'] {
|
|
917
905
|
background-color: var(--_surface);
|
|
918
906
|
border: var(--_border-width) solid var(--_edge);
|
|
919
907
|
border-radius: var(--slotted-radius-md, 6px);
|
|
@@ -925,26 +913,26 @@
|
|
|
925
913
|
transition: border-color var(--_duration) var(--_easing);
|
|
926
914
|
}
|
|
927
915
|
|
|
928
|
-
[data-ui
|
|
916
|
+
[data-ui-filter-bar][data-part-builder] [data-part-rule][data-expanded] {
|
|
929
917
|
border-color: var(--slotted-border-strong, ButtonBorder);
|
|
930
918
|
padding-block-end: var(--_seg-pad);
|
|
931
919
|
}
|
|
932
920
|
|
|
933
|
-
[data-ui
|
|
921
|
+
[data-ui-filter-bar][data-part-builder] [data-part-rule][data-invalid] {
|
|
934
922
|
border-color: var(--_invalid);
|
|
935
923
|
box-shadow: var(--_invalid-edge);
|
|
936
924
|
}
|
|
937
925
|
|
|
938
926
|
/* Forced colours remove the shadow; the edge comes back as an outline. */
|
|
939
927
|
@media (forced-colors: active) {
|
|
940
|
-
[data-ui
|
|
928
|
+
[data-ui-filter-bar][data-part-builder] [data-part-rule][data-invalid] {
|
|
941
929
|
outline: var(--_invalid-edge-width) solid CanvasText;
|
|
942
930
|
outline-offset: calc(-1 * (var(--_border-width) + var(--_invalid-edge-width)));
|
|
943
931
|
}
|
|
944
932
|
}
|
|
945
933
|
|
|
946
934
|
/* The sentence: the field at the weight of a name, the operator quiet, the value back at weight. It wraps rather than truncates — on a phone the sentence is what is read. */
|
|
947
|
-
[data-ui
|
|
935
|
+
[data-ui-filter-bar][data-part-builder] [data-part-rule-summary] {
|
|
948
936
|
/* The chevron stands in the middle of the card's header, whether the sentence takes one line or two. */
|
|
949
937
|
align-items: center;
|
|
950
938
|
appearance: none;
|
|
@@ -968,26 +956,26 @@
|
|
|
968
956
|
}
|
|
969
957
|
|
|
970
958
|
/* The words wrap inside their own run, so the chevron keeps the end of the first line however long the value is. */
|
|
971
|
-
[data-ui
|
|
959
|
+
[data-ui-filter-bar][data-part-builder] [data-part-rule-summary] > [data-sentence] {
|
|
972
960
|
flex: 1 1 auto;
|
|
973
961
|
min-inline-size: 0;
|
|
974
962
|
}
|
|
975
963
|
|
|
976
|
-
[data-ui
|
|
964
|
+
[data-ui-filter-bar][data-part-builder] [data-part-rule-summary] [data-field] {
|
|
977
965
|
font-weight: var(--slotted-font-weight-medium, 500);
|
|
978
966
|
}
|
|
979
967
|
|
|
980
|
-
[data-ui
|
|
968
|
+
[data-ui-filter-bar][data-part-builder] [data-part-rule-summary] [data-operator] {
|
|
981
969
|
color: var(--_muted);
|
|
982
970
|
}
|
|
983
971
|
|
|
984
|
-
[data-ui
|
|
972
|
+
[data-ui-filter-bar][data-part-builder] [data-part-rule-summary] [data-value] {
|
|
985
973
|
font-weight: var(--slotted-font-weight-medium, 500);
|
|
986
974
|
min-inline-size: 0;
|
|
987
975
|
overflow-wrap: anywhere;
|
|
988
976
|
}
|
|
989
977
|
|
|
990
|
-
[data-ui
|
|
978
|
+
[data-ui-filter-bar][data-part-builder] [data-part-rule-summary] > [data-ui-icon] {
|
|
991
979
|
--slotted-icon-size: var(--_icon);
|
|
992
980
|
|
|
993
981
|
color: var(--_muted);
|
|
@@ -996,21 +984,21 @@
|
|
|
996
984
|
transition: rotate var(--_duration) var(--_easing);
|
|
997
985
|
}
|
|
998
986
|
|
|
999
|
-
[data-ui
|
|
1000
|
-
[data-part
|
|
1001
|
-
> [data-ui
|
|
987
|
+
[data-ui-filter-bar][data-part-builder]
|
|
988
|
+
[data-part-rule-summary][aria-expanded='true']
|
|
989
|
+
> [data-ui-icon] {
|
|
1002
990
|
rotate: 180deg;
|
|
1003
991
|
}
|
|
1004
992
|
|
|
1005
|
-
[data-ui
|
|
993
|
+
[data-ui-filter-bar][data-part-builder] [data-part-rule-summary]:enabled:hover {
|
|
1006
994
|
background-color: var(--_hover);
|
|
1007
995
|
}
|
|
1008
996
|
|
|
1009
|
-
[data-ui
|
|
997
|
+
[data-ui-filter-bar][data-part-builder] [data-part-rule-summary]:enabled:active {
|
|
1010
998
|
background-color: var(--_active);
|
|
1011
999
|
}
|
|
1012
1000
|
|
|
1013
|
-
[data-ui
|
|
1001
|
+
[data-ui-filter-bar][data-part-builder] [data-part-rule-summary]:focus-visible {
|
|
1014
1002
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
1015
1003
|
outline-offset: calc(var(--slotted-focus-ring-width, 2px) * -1);
|
|
1016
1004
|
}
|
|
@@ -1021,7 +1009,7 @@
|
|
|
1021
1009
|
* with the summary is centred on it, and an expanded card's controls
|
|
1022
1010
|
* below do not pull it down.
|
|
1023
1011
|
*/
|
|
1024
|
-
[data-ui
|
|
1012
|
+
[data-ui-filter-bar][data-part-builder] [data-part-rule] > [data-part-remove] {
|
|
1025
1013
|
align-self: center;
|
|
1026
1014
|
grid-area: remove;
|
|
1027
1015
|
grid-row: 1;
|
|
@@ -1034,16 +1022,16 @@
|
|
|
1034
1022
|
* arrive from a step above, so the eye follows the card opening; closing
|
|
1035
1023
|
* snaps, because the reader has already looked away to the next card.
|
|
1036
1024
|
*/
|
|
1037
|
-
[data-ui
|
|
1038
|
-
[data-part
|
|
1039
|
-
:is([data-part
|
|
1025
|
+
[data-ui-filter-bar][data-part-builder]
|
|
1026
|
+
[data-part-rule]:not([data-expanded])
|
|
1027
|
+
:is([data-part-field], [data-part-operator], [data-part-operand]) {
|
|
1040
1028
|
display: none;
|
|
1041
1029
|
visibility: hidden;
|
|
1042
1030
|
}
|
|
1043
1031
|
|
|
1044
|
-
[data-ui
|
|
1045
|
-
[data-part
|
|
1046
|
-
:is([data-part
|
|
1032
|
+
[data-ui-filter-bar][data-part-builder]
|
|
1033
|
+
[data-part-rule][data-expanded]
|
|
1034
|
+
:is([data-part-field], [data-part-operator], [data-part-operand]) {
|
|
1047
1035
|
grid-column: 1 / -1;
|
|
1048
1036
|
margin-inline: var(--_seg-pad);
|
|
1049
1037
|
transition:
|
|
@@ -1052,15 +1040,15 @@
|
|
|
1052
1040
|
}
|
|
1053
1041
|
|
|
1054
1042
|
@starting-style {
|
|
1055
|
-
[data-ui
|
|
1056
|
-
[data-part
|
|
1057
|
-
:is([data-part
|
|
1043
|
+
[data-ui-filter-bar][data-part-builder]
|
|
1044
|
+
[data-part-rule][data-expanded]
|
|
1045
|
+
:is([data-part-field], [data-part-operator], [data-part-operand]) {
|
|
1058
1046
|
opacity: 0;
|
|
1059
1047
|
translate: 0 calc(-1 * var(--slotted-space-2, 0.25rem));
|
|
1060
1048
|
}
|
|
1061
1049
|
}
|
|
1062
1050
|
|
|
1063
|
-
[data-ui
|
|
1051
|
+
[data-ui-filter-bar][data-part-builder] [data-part-group] > [data-part-actions] {
|
|
1064
1052
|
padding-inline-start: 0;
|
|
1065
1053
|
}
|
|
1066
1054
|
|
|
@@ -1070,31 +1058,31 @@
|
|
|
1070
1058
|
* nested group's pair stays a quiet line at the start of its rail: three
|
|
1071
1059
|
* lines of full-width buttons read as three copies of one control.
|
|
1072
1060
|
*/
|
|
1073
|
-
[data-ui
|
|
1074
|
-
[data-part
|
|
1075
|
-
> [data-part
|
|
1061
|
+
[data-ui-filter-bar][data-part-builder]
|
|
1062
|
+
[data-part-group][data-depth='0']
|
|
1063
|
+
> [data-part-actions] {
|
|
1076
1064
|
display: grid;
|
|
1077
1065
|
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
|
|
1078
1066
|
}
|
|
1079
1067
|
|
|
1080
|
-
[data-ui
|
|
1081
|
-
[data-part
|
|
1082
|
-
> [data-part
|
|
1083
|
-
> :is([data-part
|
|
1068
|
+
[data-ui-filter-bar][data-part-builder]
|
|
1069
|
+
[data-part-group][data-depth='0']
|
|
1070
|
+
> [data-part-actions]
|
|
1071
|
+
> :is([data-part-add-rule], [data-part-add-group]) {
|
|
1084
1072
|
inline-size: 100%;
|
|
1085
1073
|
}
|
|
1086
1074
|
|
|
1087
|
-
[data-ui
|
|
1088
|
-
[data-part
|
|
1089
|
-
> [data-part
|
|
1090
|
-
> :is([data-part
|
|
1075
|
+
[data-ui-filter-bar][data-part-builder]
|
|
1076
|
+
[data-part-group]
|
|
1077
|
+
> [data-part-actions]
|
|
1078
|
+
> :is([data-part-clear], [data-part-save-preset]) {
|
|
1091
1079
|
margin-inline-start: 0;
|
|
1092
1080
|
}
|
|
1093
1081
|
}
|
|
1094
1082
|
|
|
1095
1083
|
/* ── A builder row's remove control ─────────────────────────────────── */
|
|
1096
1084
|
|
|
1097
|
-
[data-ui
|
|
1085
|
+
[data-ui-filter-bar] [data-part-rule] > [data-part-remove] {
|
|
1098
1086
|
align-items: center;
|
|
1099
1087
|
appearance: none;
|
|
1100
1088
|
background: none;
|
|
@@ -1113,21 +1101,21 @@
|
|
|
1113
1101
|
color var(--_duration) var(--_easing);
|
|
1114
1102
|
}
|
|
1115
1103
|
|
|
1116
|
-
[data-ui
|
|
1104
|
+
[data-ui-filter-bar] [data-part-rule] > [data-part-remove] > [data-ui-icon] {
|
|
1117
1105
|
--slotted-icon-size: var(--_icon);
|
|
1118
1106
|
}
|
|
1119
1107
|
|
|
1120
|
-
[data-ui
|
|
1108
|
+
[data-ui-filter-bar] [data-part-rule] > [data-part-remove]:enabled:hover {
|
|
1121
1109
|
background-color: var(--_hover);
|
|
1122
1110
|
color: var(--_ink);
|
|
1123
1111
|
}
|
|
1124
1112
|
|
|
1125
|
-
[data-ui
|
|
1113
|
+
[data-ui-filter-bar] [data-part-rule] > [data-part-remove]:enabled:active {
|
|
1126
1114
|
background-color: var(--_active);
|
|
1127
1115
|
color: var(--_ink);
|
|
1128
1116
|
}
|
|
1129
1117
|
|
|
1130
|
-
[data-ui
|
|
1118
|
+
[data-ui-filter-bar] [data-part-rule] > [data-part-remove]:focus-visible {
|
|
1131
1119
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
1132
1120
|
outline-offset: var(--slotted-focus-ring-offset, 2px);
|
|
1133
1121
|
}
|
|
@@ -1149,7 +1137,7 @@
|
|
|
1149
1137
|
* answer.
|
|
1150
1138
|
*/
|
|
1151
1139
|
@container slotted-filter-bar (max-width: 36rem) {
|
|
1152
|
-
[data-ui
|
|
1140
|
+
[data-ui-filter-bar] > [data-part-frame] {
|
|
1153
1141
|
grid-template-areas:
|
|
1154
1142
|
'search'
|
|
1155
1143
|
'bar'
|
|
@@ -1157,7 +1145,7 @@
|
|
|
1157
1145
|
grid-template-columns: minmax(0, 1fr);
|
|
1158
1146
|
}
|
|
1159
1147
|
|
|
1160
|
-
[data-ui
|
|
1148
|
+
[data-ui-filter-bar] > [data-part-frame]:has(> [data-part-end]:not(:empty)) {
|
|
1161
1149
|
grid-template-areas:
|
|
1162
1150
|
'search'
|
|
1163
1151
|
'bar'
|
|
@@ -1165,7 +1153,7 @@
|
|
|
1165
1153
|
'count';
|
|
1166
1154
|
}
|
|
1167
1155
|
|
|
1168
|
-
[data-ui
|
|
1156
|
+
[data-ui-filter-bar] > [data-part-frame] > [data-part-search] {
|
|
1169
1157
|
max-inline-size: none;
|
|
1170
1158
|
}
|
|
1171
1159
|
|
|
@@ -1177,63 +1165,60 @@
|
|
|
1177
1165
|
* control gives (`focus-ring.test.mjs`) — so the row takes no room it
|
|
1178
1166
|
* would have to give back as a negative margin.
|
|
1179
1167
|
*/
|
|
1180
|
-
[data-ui
|
|
1168
|
+
[data-ui-filter-bar] > [data-part-frame] > [data-part-bar] {
|
|
1181
1169
|
flex-wrap: nowrap;
|
|
1182
1170
|
overflow-x: auto;
|
|
1183
1171
|
overscroll-behavior-inline: contain;
|
|
1184
1172
|
scrollbar-width: none;
|
|
1185
1173
|
}
|
|
1186
1174
|
|
|
1187
|
-
[data-ui
|
|
1188
|
-
> [data-part
|
|
1189
|
-
> [data-part
|
|
1190
|
-
> :is([data-part
|
|
1175
|
+
[data-ui-filter-bar]
|
|
1176
|
+
> [data-part-frame]
|
|
1177
|
+
> [data-part-bar]
|
|
1178
|
+
> :is([data-part-summary], [data-part-pill]):focus-visible {
|
|
1191
1179
|
outline-offset: calc(var(--slotted-focus-ring-width, 2px) * -1);
|
|
1192
1180
|
}
|
|
1193
1181
|
|
|
1194
|
-
[data-ui
|
|
1182
|
+
[data-ui-filter-bar] > [data-part-frame] > [data-part-bar]::-webkit-scrollbar {
|
|
1195
1183
|
display: none;
|
|
1196
1184
|
}
|
|
1197
1185
|
|
|
1198
|
-
[data-ui
|
|
1199
|
-
> [data-part
|
|
1200
|
-
> [data-part
|
|
1201
|
-
> :is([data-part
|
|
1186
|
+
[data-ui-filter-bar]
|
|
1187
|
+
> [data-part-frame]
|
|
1188
|
+
> [data-part-bar]
|
|
1189
|
+
> :is([data-part-summary], [data-part-chip], [data-part-pill]) {
|
|
1202
1190
|
flex: none;
|
|
1203
1191
|
}
|
|
1204
1192
|
|
|
1205
|
-
[data-ui
|
|
1206
|
-
> [data-part
|
|
1207
|
-
> [data-part
|
|
1208
|
-
> :is([data-part
|
|
1209
|
-
[data-ui
|
|
1193
|
+
[data-ui-filter-bar]
|
|
1194
|
+
> [data-part-frame]
|
|
1195
|
+
> [data-part-bar]
|
|
1196
|
+
> :is([data-part-more], [data-part-add], [data-part-clear], [data-part-actions]),
|
|
1197
|
+
[data-ui-filter-bar] [data-part-chip] > [data-part-chip-operator] {
|
|
1210
1198
|
display: none;
|
|
1211
1199
|
visibility: hidden;
|
|
1212
1200
|
}
|
|
1213
1201
|
|
|
1214
|
-
[data-ui
|
|
1215
|
-
> [data-part='frame']
|
|
1216
|
-
> [data-part='bar']
|
|
1217
|
-
> [data-part='chip'][data-folded] {
|
|
1202
|
+
[data-ui-filter-bar] > [data-part-frame] > [data-part-bar] > [data-part-chip][data-folded] {
|
|
1218
1203
|
display: inline-flex;
|
|
1219
1204
|
visibility: visible;
|
|
1220
1205
|
}
|
|
1221
1206
|
|
|
1222
|
-
[data-ui
|
|
1207
|
+
[data-ui-filter-bar] [data-part-chip-value] > [data-operator] {
|
|
1223
1208
|
display: inline;
|
|
1224
1209
|
}
|
|
1225
1210
|
|
|
1226
|
-
[data-ui
|
|
1211
|
+
[data-ui-filter-bar] [data-part-chip-value] > [data-value] {
|
|
1227
1212
|
max-inline-size: var(--slotted-filter-bar-value-max-narrow, 9rem);
|
|
1228
1213
|
}
|
|
1229
1214
|
|
|
1230
|
-
[data-ui
|
|
1215
|
+
[data-ui-filter-bar] [data-part-summary] {
|
|
1231
1216
|
display: inline-flex;
|
|
1232
1217
|
visibility: visible;
|
|
1233
1218
|
}
|
|
1234
1219
|
|
|
1235
1220
|
/* A line of its own here, with nothing to line up with. */
|
|
1236
|
-
[data-ui
|
|
1221
|
+
[data-ui-filter-bar] > [data-part-frame] > [data-part-count] {
|
|
1237
1222
|
justify-self: start;
|
|
1238
1223
|
padding-block: 0;
|
|
1239
1224
|
}
|
|
@@ -1246,7 +1231,7 @@
|
|
|
1246
1231
|
* keyboard is attached.
|
|
1247
1232
|
*/
|
|
1248
1233
|
@media (hover: none) and (pointer: coarse) {
|
|
1249
|
-
[data-ui
|
|
1234
|
+
[data-ui-filter-bar] [data-part-search] [data-ui-kbd] {
|
|
1250
1235
|
display: none;
|
|
1251
1236
|
}
|
|
1252
1237
|
}
|
|
@@ -1259,12 +1244,11 @@
|
|
|
1259
1244
|
* control height, which the theme already raises to the comfortable target.
|
|
1260
1245
|
*/
|
|
1261
1246
|
@media (pointer: coarse) {
|
|
1262
|
-
[data-ui
|
|
1247
|
+
[data-ui-filter-bar] :is([data-part-more], [data-part-rule] > [data-part-remove]) {
|
|
1263
1248
|
position: relative;
|
|
1264
1249
|
}
|
|
1265
1250
|
|
|
1266
|
-
[data-ui
|
|
1267
|
-
:is([data-part='more'], [data-part='rule'] > [data-part='remove'])::before {
|
|
1251
|
+
[data-ui-filter-bar] :is([data-part-more], [data-part-rule] > [data-part-remove])::before {
|
|
1268
1252
|
content: '';
|
|
1269
1253
|
inset: min(0px, calc((100% - var(--slotted-target-comfortable, 44px)) / 2));
|
|
1270
1254
|
position: absolute;
|
|
@@ -1275,31 +1259,31 @@
|
|
|
1275
1259
|
/* Forced colours remove the invalid edge's shadow; it comes back as an
|
|
1276
1260
|
outline inside the border, and a focused invalid pill draws its ring
|
|
1277
1261
|
double. A chip's ring belongs to a segment and leaves it alone. */
|
|
1278
|
-
[data-ui
|
|
1279
|
-
[data-ui
|
|
1262
|
+
[data-ui-filter-bar] [data-part-pill][data-invalid],
|
|
1263
|
+
[data-ui-filter-bar] [data-part-chip][data-invalid] {
|
|
1280
1264
|
outline: var(--_invalid-edge-width) solid CanvasText;
|
|
1281
1265
|
outline-offset: calc(-1 * (var(--_border-width) + var(--_invalid-edge-width)));
|
|
1282
1266
|
}
|
|
1283
1267
|
|
|
1284
|
-
[data-ui
|
|
1268
|
+
[data-ui-filter-bar] [data-part-pill][data-invalid]:focus-visible {
|
|
1285
1269
|
outline: calc(var(--slotted-focus-ring-width, 2px) + var(--_invalid-edge-width)) double
|
|
1286
1270
|
var(--slotted-focus-ring-color, Highlight);
|
|
1287
1271
|
outline-offset: var(--slotted-focus-ring-offset, 2px);
|
|
1288
1272
|
}
|
|
1289
1273
|
|
|
1290
1274
|
/* The seams would read as a second edge in the system palette; the segments keep one line each. */
|
|
1291
|
-
[data-ui
|
|
1275
|
+
[data-ui-filter-bar] [data-part-chip] > * + * {
|
|
1292
1276
|
border-inline-start-color: GrayText;
|
|
1293
1277
|
}
|
|
1294
1278
|
|
|
1295
|
-
[data-ui
|
|
1279
|
+
[data-ui-filter-bar] [data-part-chip] > [aria-expanded='true'] {
|
|
1296
1280
|
background-color: Highlight;
|
|
1297
1281
|
color: HighlightText;
|
|
1298
1282
|
}
|
|
1299
1283
|
}
|
|
1300
1284
|
|
|
1301
1285
|
@media print {
|
|
1302
|
-
[data-ui
|
|
1286
|
+
[data-ui-filter-bar][data-sticky] {
|
|
1303
1287
|
position: static;
|
|
1304
1288
|
}
|
|
1305
1289
|
}
|