@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
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* mirrors its state onto the frame rather than styling through, so a control
|
|
17
17
|
* used outside a field looks the same as one inside it.
|
|
18
18
|
*/
|
|
19
|
-
[data-ui
|
|
19
|
+
[data-ui-currency-field][data-part-root] {
|
|
20
20
|
/**
|
|
21
21
|
* Type, height, inline padding, gap and glyph size all come from the
|
|
22
22
|
* control scales — the only ones the theme restates per density — so an
|
|
@@ -126,7 +126,7 @@
|
|
|
126
126
|
* the reader's eye, and under cents-first entry every keystroke rewrites the
|
|
127
127
|
* whole string — so the setting matters more here than anywhere else.
|
|
128
128
|
*/
|
|
129
|
-
[data-ui
|
|
129
|
+
[data-ui-currency-field] > [data-part-input] {
|
|
130
130
|
background-color: transparent;
|
|
131
131
|
/* The frame's border box, not its content box: on a coarse pointer the frame
|
|
132
132
|
is the touch target's height and the control it holds is too. Stretched
|
|
@@ -160,7 +160,7 @@
|
|
|
160
160
|
unicode-bidi: plaintext;
|
|
161
161
|
}
|
|
162
162
|
|
|
163
|
-
[data-ui
|
|
163
|
+
[data-ui-currency-field] > [data-part-input]::placeholder {
|
|
164
164
|
color: var(--slotted-currency-field-placeholder-color, var(--slotted-text-muted, GrayText));
|
|
165
165
|
text-overflow: ellipsis;
|
|
166
166
|
}
|
|
@@ -176,19 +176,19 @@
|
|
|
176
176
|
* means "the document's end edge, whatever the run inside is doing".
|
|
177
177
|
*/
|
|
178
178
|
|
|
179
|
-
[data-ui
|
|
179
|
+
[data-ui-currency-field][data-align='end'] > [data-part-input] {
|
|
180
180
|
text-align: right;
|
|
181
181
|
}
|
|
182
182
|
|
|
183
|
-
[data-ui
|
|
183
|
+
[data-ui-currency-field][data-align='end']:dir(rtl) > [data-part-input] {
|
|
184
184
|
text-align: left;
|
|
185
185
|
}
|
|
186
186
|
|
|
187
|
-
[data-ui
|
|
187
|
+
[data-ui-currency-field][data-align='start'] > [data-part-input] {
|
|
188
188
|
text-align: left;
|
|
189
189
|
}
|
|
190
190
|
|
|
191
|
-
[data-ui
|
|
191
|
+
[data-ui-currency-field][data-align='start']:dir(rtl) > [data-part-input] {
|
|
192
192
|
text-align: right;
|
|
193
193
|
}
|
|
194
194
|
|
|
@@ -198,7 +198,7 @@
|
|
|
198
198
|
* control beside it. One library, one scale.
|
|
199
199
|
*/
|
|
200
200
|
|
|
201
|
-
[data-ui
|
|
201
|
+
[data-ui-currency-field][data-part-root][data-size='sm'] {
|
|
202
202
|
--_font-size: var(--slotted-control-font-size-sm, 12px);
|
|
203
203
|
--_height: var(--slotted-control-height-sm, 30px);
|
|
204
204
|
--_padding-inline: var(--slotted-control-padding-inline-sm, 10px);
|
|
@@ -207,7 +207,7 @@
|
|
|
207
207
|
--_inner-size: var(--slotted-control-inner-size-sm, 22px);
|
|
208
208
|
}
|
|
209
209
|
|
|
210
|
-
[data-ui
|
|
210
|
+
[data-ui-currency-field][data-part-root][data-size='md'] {
|
|
211
211
|
--_font-size: var(--slotted-control-font-size-md, 13px);
|
|
212
212
|
--_height: var(--slotted-control-height-md, 34px);
|
|
213
213
|
--_padding-inline: var(--slotted-control-padding-inline-md, 13px);
|
|
@@ -216,7 +216,7 @@
|
|
|
216
216
|
--_inner-size: var(--slotted-control-inner-size-md, 24px);
|
|
217
217
|
}
|
|
218
218
|
|
|
219
|
-
[data-ui
|
|
219
|
+
[data-ui-currency-field][data-part-root][data-size='lg'] {
|
|
220
220
|
--_font-size: var(--slotted-control-font-size-lg, 14px);
|
|
221
221
|
--_height: var(--slotted-control-height-lg, 38px);
|
|
222
222
|
--_padding-inline: var(--slotted-control-padding-inline-lg, 16px);
|
|
@@ -232,7 +232,7 @@
|
|
|
232
232
|
* nothing at rest, which is what a dense table of amounts needs.
|
|
233
233
|
*/
|
|
234
234
|
|
|
235
|
-
[data-ui
|
|
235
|
+
[data-ui-currency-field][data-part-root][data-variant='subtle'] {
|
|
236
236
|
background-color: var(
|
|
237
237
|
--slotted-currency-field-subtle-background,
|
|
238
238
|
var(--slotted-surface-sunken, Canvas)
|
|
@@ -246,7 +246,7 @@
|
|
|
246
246
|
/* No edge, no lift, no ground and no corner of its own: the cell it sits in
|
|
247
247
|
is the box, the row is the ground, a cell has no corner, and the resting
|
|
248
248
|
shadow would draw the cell where there is none. */
|
|
249
|
-
[data-ui
|
|
249
|
+
[data-ui-currency-field][data-part-root][data-variant='plain'] {
|
|
250
250
|
background-color: transparent;
|
|
251
251
|
border-color: transparent;
|
|
252
252
|
border-radius: var(--slotted-radius-none, 0px);
|
|
@@ -259,7 +259,7 @@
|
|
|
259
259
|
* its only edge exactly where an edge matters most.
|
|
260
260
|
*/
|
|
261
261
|
@media (forced-colors: active) {
|
|
262
|
-
[data-ui
|
|
262
|
+
[data-ui-currency-field][data-part-root][data-variant='plain'] {
|
|
263
263
|
border-color: ButtonBorder;
|
|
264
264
|
}
|
|
265
265
|
}
|
|
@@ -271,8 +271,8 @@
|
|
|
271
271
|
* holds, is selected with it, is copied with it and is parsed back out of
|
|
272
272
|
* it. This one is none of those things, which is the whole distinction.
|
|
273
273
|
*/
|
|
274
|
-
[data-ui
|
|
275
|
-
[data-ui
|
|
274
|
+
[data-ui-currency-field] > [data-part-start],
|
|
275
|
+
[data-ui-currency-field] > [data-part-end] {
|
|
276
276
|
align-items: center;
|
|
277
277
|
color: var(--slotted-currency-field-adornment-color, var(--slotted-text-muted, GrayText));
|
|
278
278
|
display: inline-flex;
|
|
@@ -290,8 +290,8 @@
|
|
|
290
290
|
--slotted-icon-size: var(--_icon-size);
|
|
291
291
|
}
|
|
292
292
|
|
|
293
|
-
[data-ui
|
|
294
|
-
[data-ui
|
|
293
|
+
[data-ui-currency-field] > [data-part-start] > svg,
|
|
294
|
+
[data-ui-currency-field] > [data-part-end] > svg {
|
|
295
295
|
block-size: var(--_icon-size);
|
|
296
296
|
inline-size: var(--_icon-size);
|
|
297
297
|
}
|
|
@@ -302,8 +302,8 @@
|
|
|
302
302
|
* advance width. An adornment that draws no glyph takes the margin the glyph
|
|
303
303
|
* box already has, on both sides — the measurement `text-field` derived.
|
|
304
304
|
*/
|
|
305
|
-
[data-ui
|
|
306
|
-
[data-ui
|
|
305
|
+
[data-ui-currency-field] > [data-part-start]:not(:has(svg, img, [data-ui-icon])),
|
|
306
|
+
[data-ui-currency-field] > [data-part-end]:not(:has(svg, img, [data-ui-icon])) {
|
|
307
307
|
padding-inline: calc(var(--_icon-size) / 8);
|
|
308
308
|
}
|
|
309
309
|
|
|
@@ -317,12 +317,11 @@
|
|
|
317
317
|
* mark is not a button, it has no ground to change, and the cursor alone
|
|
318
318
|
* said nothing a reader would look at.
|
|
319
319
|
*/
|
|
320
|
-
[data-ui
|
|
321
|
-
> :is([data-part='start'], [data-part='end']):has(> [data-part='scrub']) {
|
|
320
|
+
[data-ui-currency-field] > :is([data-part-start], [data-part-end]):has(> [data-part-scrub]) {
|
|
322
321
|
align-self: stretch;
|
|
323
322
|
}
|
|
324
323
|
|
|
325
|
-
[data-ui
|
|
324
|
+
[data-ui-currency-field] [data-part-scrub] {
|
|
326
325
|
align-items: center;
|
|
327
326
|
align-self: stretch;
|
|
328
327
|
cursor: ew-resize;
|
|
@@ -339,12 +338,12 @@
|
|
|
339
338
|
-webkit-user-select: none;
|
|
340
339
|
}
|
|
341
340
|
|
|
342
|
-
[data-ui
|
|
343
|
-
[data-part
|
|
341
|
+
[data-ui-currency-field]:not([data-disabled]):not([data-readonly])
|
|
342
|
+
[data-part-scrub]:is(:hover, [data-scrubbing]) {
|
|
344
343
|
color: var(--slotted-currency-field-scrub-active-color, var(--slotted-text, CanvasText));
|
|
345
344
|
}
|
|
346
345
|
|
|
347
|
-
[data-ui
|
|
346
|
+
[data-ui-currency-field]:is([data-disabled], [data-readonly]) [data-part-scrub] {
|
|
348
347
|
cursor: default;
|
|
349
348
|
touch-action: auto;
|
|
350
349
|
}
|
|
@@ -357,9 +356,9 @@
|
|
|
357
356
|
* `aria-controls`. Their glyphs are the `Glyph` element the binding
|
|
358
357
|
* renders: a character is never an icon.
|
|
359
358
|
*/
|
|
360
|
-
[data-ui
|
|
361
|
-
[data-ui
|
|
362
|
-
[data-ui
|
|
359
|
+
[data-ui-currency-field] > [data-part-stepper] > button,
|
|
360
|
+
[data-ui-currency-field] > [data-part-decrement],
|
|
361
|
+
[data-ui-currency-field] > [data-part-increment] {
|
|
363
362
|
align-items: center;
|
|
364
363
|
appearance: none;
|
|
365
364
|
background-color: transparent;
|
|
@@ -383,8 +382,8 @@
|
|
|
383
382
|
|
|
384
383
|
/* The `icon` box inside each button is drawn at the control's own icon
|
|
385
384
|
step rather than at the icon family's default. */
|
|
386
|
-
[data-ui
|
|
387
|
-
[data-ui
|
|
385
|
+
[data-ui-currency-field] [data-part-decrement],
|
|
386
|
+
[data-ui-currency-field] [data-part-increment] {
|
|
388
387
|
--slotted-icon-size: var(--_icon-size);
|
|
389
388
|
}
|
|
390
389
|
|
|
@@ -397,7 +396,7 @@
|
|
|
397
396
|
* more do not change with the reading direction, where a chevron along the
|
|
398
397
|
* inline axis would read as "previous" and "next" and would have to mirror.
|
|
399
398
|
*/
|
|
400
|
-
[data-ui
|
|
399
|
+
[data-ui-currency-field][data-stepper='stacked'] [data-part-increment] > [data-ui-icon] {
|
|
401
400
|
rotate: 0.5turn;
|
|
402
401
|
}
|
|
403
402
|
|
|
@@ -410,11 +409,11 @@
|
|
|
410
409
|
* column and its halves are one surface. The paint gives the inset back to
|
|
411
410
|
* the pointer: each half's hit area reaches the frame.
|
|
412
411
|
*/
|
|
413
|
-
[data-ui
|
|
412
|
+
[data-ui-currency-field][data-part-root][data-stepper='stacked'] {
|
|
414
413
|
padding-inline-end: 0;
|
|
415
414
|
}
|
|
416
415
|
|
|
417
|
-
[data-ui
|
|
416
|
+
[data-ui-currency-field] > [data-part-stepper] {
|
|
418
417
|
align-self: stretch;
|
|
419
418
|
box-sizing: content-box;
|
|
420
419
|
display: flex;
|
|
@@ -425,26 +424,26 @@
|
|
|
425
424
|
padding-inline-end: var(--_column-inset);
|
|
426
425
|
}
|
|
427
426
|
|
|
428
|
-
[data-ui
|
|
427
|
+
[data-ui-currency-field] > [data-part-stepper] > button {
|
|
429
428
|
/* Two halves of the column, whatever the frame's height turns out to be. */
|
|
430
429
|
block-size: 50%;
|
|
431
430
|
border-radius: var(--_column-radius);
|
|
432
431
|
inline-size: 100%;
|
|
433
432
|
}
|
|
434
433
|
|
|
435
|
-
[data-ui
|
|
436
|
-
> [data-part
|
|
437
|
-
> :is([data-part
|
|
434
|
+
[data-ui-currency-field]
|
|
435
|
+
> [data-part-stepper]
|
|
436
|
+
> :is([data-part-increment], [data-part-decrement])::after {
|
|
438
437
|
content: '';
|
|
439
438
|
inset-inline: 0 calc(var(--_column-inset) * -1);
|
|
440
439
|
position: absolute;
|
|
441
440
|
}
|
|
442
441
|
|
|
443
|
-
[data-ui
|
|
442
|
+
[data-ui-currency-field] > [data-part-stepper] > [data-part-increment]::after {
|
|
444
443
|
inset-block: calc(var(--_column-inset) * -1) 0;
|
|
445
444
|
}
|
|
446
445
|
|
|
447
|
-
[data-ui
|
|
446
|
+
[data-ui-currency-field] > [data-part-stepper] > [data-part-decrement]::after {
|
|
448
447
|
inset-block: 0 calc(var(--_column-inset) * -1);
|
|
449
448
|
}
|
|
450
449
|
|
|
@@ -459,7 +458,7 @@
|
|
|
459
458
|
* percentage falls back to the `<svg>`'s own square, and two of them plus the
|
|
460
459
|
* divider would stand taller than the value and grow the frame.
|
|
461
460
|
*/
|
|
462
|
-
[data-ui
|
|
461
|
+
[data-ui-currency-field] > [data-part-stepper] > button > [data-ui-icon] {
|
|
463
462
|
block-size: min(var(--_icon-size), 100%);
|
|
464
463
|
contain: size;
|
|
465
464
|
}
|
|
@@ -470,23 +469,23 @@
|
|
|
470
469
|
* frame's padding is that inset on both sides. No rule divides a button from
|
|
471
470
|
* the value: the ground it paints is its edge.
|
|
472
471
|
*/
|
|
473
|
-
[data-ui
|
|
472
|
+
[data-ui-currency-field][data-part-root][data-stepper='split'] {
|
|
474
473
|
gap: 0;
|
|
475
474
|
padding-inline: var(--_inset);
|
|
476
475
|
}
|
|
477
476
|
|
|
478
|
-
[data-ui
|
|
479
|
-
[data-ui
|
|
477
|
+
[data-ui-currency-field][data-stepper='split'] > [data-part-decrement],
|
|
478
|
+
[data-ui-currency-field][data-stepper='split'] > [data-part-increment] {
|
|
480
479
|
block-size: var(--_action-size);
|
|
481
480
|
border-radius: var(--_action-radius);
|
|
482
481
|
inline-size: var(--_action-size);
|
|
483
482
|
}
|
|
484
483
|
|
|
485
|
-
[data-ui
|
|
484
|
+
[data-ui-currency-field][data-stepper='split'] > [data-part-start] {
|
|
486
485
|
padding-inline-start: var(--_gap);
|
|
487
486
|
}
|
|
488
487
|
|
|
489
|
-
[data-ui
|
|
488
|
+
[data-ui-currency-field][data-stepper='split'] > [data-part-end] {
|
|
490
489
|
padding-inline-end: var(--_gap);
|
|
491
490
|
}
|
|
492
491
|
|
|
@@ -501,7 +500,7 @@
|
|
|
501
500
|
* stepper beside it would otherwise be five pixels off every amount without
|
|
502
501
|
* one — which is the comparison `align="end"` exists to make.
|
|
503
502
|
*/
|
|
504
|
-
[data-ui
|
|
503
|
+
[data-ui-currency-field][data-stepper='split'] > [data-part-input] {
|
|
505
504
|
padding-inline: var(--_padding-inline);
|
|
506
505
|
}
|
|
507
506
|
|
|
@@ -511,8 +510,8 @@
|
|
|
511
510
|
* 24 in both axes. This grows the target to the minimum and leaves a larger
|
|
512
511
|
* one alone — the correction `docs/token-foundation.md` leaves to the family.
|
|
513
512
|
*/
|
|
514
|
-
[data-ui
|
|
515
|
-
[data-ui
|
|
513
|
+
[data-ui-currency-field][data-stepper='split'] > [data-part-decrement]::after,
|
|
514
|
+
[data-ui-currency-field][data-stepper='split'] > [data-part-increment]::after {
|
|
516
515
|
content: '';
|
|
517
516
|
inset: min(0px, calc((100% - var(--slotted-target-min, 24px)) / 2));
|
|
518
517
|
position: absolute;
|
|
@@ -528,14 +527,14 @@
|
|
|
528
527
|
* value's edge and past the frame's.
|
|
529
528
|
*/
|
|
530
529
|
@media (pointer: coarse) {
|
|
531
|
-
[data-ui
|
|
532
|
-
> :is([data-part
|
|
530
|
+
[data-ui-currency-field][data-stepper='split']
|
|
531
|
+
> :is([data-part-decrement], [data-part-increment])::after {
|
|
533
532
|
inset: min(0px, calc((100% - var(--slotted-target-comfortable, 44px)) / 2));
|
|
534
533
|
}
|
|
535
534
|
|
|
536
|
-
[data-ui
|
|
537
|
-
> [data-part
|
|
538
|
-
> :is([data-part
|
|
535
|
+
[data-ui-currency-field]
|
|
536
|
+
> [data-part-stepper]
|
|
537
|
+
> :is([data-part-increment], [data-part-decrement])::after {
|
|
539
538
|
inset-inline: min(0px, calc((100% - var(--slotted-target-comfortable, 44px)) / 2));
|
|
540
539
|
}
|
|
541
540
|
}
|
|
@@ -546,16 +545,16 @@
|
|
|
546
545
|
* ones it can meet, which is the order `STATE_PRECEDENCE` sets.
|
|
547
546
|
*/
|
|
548
547
|
|
|
549
|
-
[data-ui
|
|
550
|
-
[data-ui
|
|
548
|
+
[data-ui-currency-field] [data-part-decrement]:hover:not(:disabled),
|
|
549
|
+
[data-ui-currency-field] [data-part-increment]:hover:not(:disabled) {
|
|
551
550
|
background-color: var(
|
|
552
551
|
--slotted-currency-field-stepper-hover-background,
|
|
553
552
|
var(--slotted-tone-secondary-subtle-hover)
|
|
554
553
|
);
|
|
555
554
|
}
|
|
556
555
|
|
|
557
|
-
[data-ui
|
|
558
|
-
[data-ui
|
|
556
|
+
[data-ui-currency-field] [data-part-decrement]:active:not(:disabled),
|
|
557
|
+
[data-ui-currency-field] [data-part-increment]:active:not(:disabled) {
|
|
559
558
|
background-color: var(
|
|
560
559
|
--slotted-currency-field-stepper-active-background,
|
|
561
560
|
var(--slotted-tone-secondary-subtle-active)
|
|
@@ -568,8 +567,8 @@
|
|
|
568
567
|
* says it as well as the ink: the disabled foreground and the resting
|
|
569
568
|
* stepper colour are two steps of one neutral.
|
|
570
569
|
*/
|
|
571
|
-
[data-ui
|
|
572
|
-
[data-ui
|
|
570
|
+
[data-ui-currency-field] [data-part-decrement]:disabled,
|
|
571
|
+
[data-ui-currency-field] [data-part-increment]:disabled {
|
|
573
572
|
background-color: var(
|
|
574
573
|
--slotted-currency-field-stepper-disabled-background,
|
|
575
574
|
var(--slotted-disabled-background)
|
|
@@ -583,15 +582,15 @@
|
|
|
583
582
|
* touch and a screen-reader cursor activating one directly. It sits inside
|
|
584
583
|
* the frame's own edge, so the ring never doubles the border.
|
|
585
584
|
*/
|
|
586
|
-
[data-ui
|
|
587
|
-
[data-ui
|
|
585
|
+
[data-ui-currency-field] [data-part-decrement]:focus-visible,
|
|
586
|
+
[data-ui-currency-field] [data-part-increment]:focus-visible {
|
|
588
587
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
589
588
|
outline-offset: calc(var(--slotted-focus-ring-offset, 2px) * -1);
|
|
590
589
|
}
|
|
591
590
|
|
|
592
591
|
/* ── Frame states ─────────────────────────────────────────────────────── */
|
|
593
592
|
|
|
594
|
-
[data-ui
|
|
593
|
+
[data-ui-currency-field][data-part-root]:hover:not([data-disabled]):not([data-readonly]):not(
|
|
595
594
|
[data-invalid]
|
|
596
595
|
) {
|
|
597
596
|
border-color: var(
|
|
@@ -600,16 +599,16 @@
|
|
|
600
599
|
);
|
|
601
600
|
}
|
|
602
601
|
|
|
603
|
-
[data-ui
|
|
604
|
-
[data-
|
|
605
|
-
):not([data-
|
|
602
|
+
[data-ui-currency-field][data-part-root][data-variant='subtle']:hover:not([data-disabled]):not(
|
|
603
|
+
[data-readonly]
|
|
604
|
+
):not([data-invalid]) {
|
|
606
605
|
background-color: var(
|
|
607
606
|
--slotted-currency-field-subtle-hover-background,
|
|
608
607
|
var(--slotted-tone-secondary-subtle-hover)
|
|
609
608
|
);
|
|
610
609
|
}
|
|
611
610
|
|
|
612
|
-
[data-ui
|
|
611
|
+
[data-ui-currency-field][data-part-root][data-variant='plain']:hover:not([data-disabled]):not(
|
|
613
612
|
[data-readonly]
|
|
614
613
|
):not([data-invalid]) {
|
|
615
614
|
background-color: var(
|
|
@@ -625,7 +624,7 @@
|
|
|
625
624
|
* matches `:focus-visible` on a text input for a pointer press as well as for
|
|
626
625
|
* a Tab, which is right for a control whose caret is the thing that moved.
|
|
627
626
|
*/
|
|
628
|
-
[data-ui
|
|
627
|
+
[data-ui-currency-field][data-part-root]:has(> [data-part-input]:focus-visible) {
|
|
629
628
|
/* The resting shadow, recoloured: the lift under the control and the ring
|
|
630
629
|
around it are one colour, and the state decides which colour that is. */
|
|
631
630
|
box-shadow: var(--slotted-control-shadow-focus-geometry, 0 1px 4px -1px)
|
|
@@ -641,8 +640,8 @@
|
|
|
641
640
|
* shadow that appears only under focus is a cell that changes size when it
|
|
642
641
|
* is used.
|
|
643
642
|
*/
|
|
644
|
-
[data-ui
|
|
645
|
-
> [data-part
|
|
643
|
+
[data-ui-currency-field][data-part-root][data-variant='plain']:has(
|
|
644
|
+
> [data-part-input]:focus-visible
|
|
646
645
|
) {
|
|
647
646
|
box-shadow: none;
|
|
648
647
|
outline-offset: calc(var(--slotted-focus-ring-offset, 2px) * -1);
|
|
@@ -655,7 +654,7 @@
|
|
|
655
654
|
* colour on the element moves the outline, the shadow and both steppers'
|
|
656
655
|
* rings at once.
|
|
657
656
|
*/
|
|
658
|
-
[data-ui
|
|
657
|
+
[data-ui-currency-field][data-part-root][data-invalid] {
|
|
659
658
|
--slotted-focus-ring-color: var(
|
|
660
659
|
--slotted-currency-field-invalid-focus-ring-color,
|
|
661
660
|
var(--slotted-focus-ring-color-invalid, Highlight)
|
|
@@ -683,17 +682,15 @@
|
|
|
683
682
|
box-shadow: var(--_invalid-edge);
|
|
684
683
|
}
|
|
685
684
|
|
|
686
|
-
[data-ui
|
|
687
|
-
> [data-part='input']:focus-visible
|
|
688
|
-
) {
|
|
685
|
+
[data-ui-currency-field][data-part-root][data-invalid]:has(> [data-part-input]:focus-visible) {
|
|
689
686
|
box-shadow:
|
|
690
687
|
var(--_invalid-edge),
|
|
691
688
|
var(--slotted-control-shadow-focus-geometry, 0 1px 4px -1px)
|
|
692
689
|
var(--slotted-focus-ring-color, Highlight);
|
|
693
690
|
}
|
|
694
691
|
|
|
695
|
-
[data-ui
|
|
696
|
-
> [data-part
|
|
692
|
+
[data-ui-currency-field][data-part-root][data-variant='plain'][data-invalid]:has(
|
|
693
|
+
> [data-part-input]:focus-visible
|
|
697
694
|
) {
|
|
698
695
|
/* The ring lies inside the box here, over the border and an edge as wide as
|
|
699
696
|
it; the edge reaches past the ring. */
|
|
@@ -711,23 +708,21 @@
|
|
|
711
708
|
* control draws its ring double, which a valid ring is not.
|
|
712
709
|
*/
|
|
713
710
|
@media (forced-colors: active) {
|
|
714
|
-
[data-ui
|
|
711
|
+
[data-ui-currency-field][data-part-root][data-invalid] {
|
|
715
712
|
outline: var(--_invalid-edge-width) solid CanvasText;
|
|
716
713
|
outline-offset: calc(
|
|
717
714
|
-1 * (var(--slotted-control-border-width, 1px) + var(--_invalid-edge-width))
|
|
718
715
|
);
|
|
719
716
|
}
|
|
720
717
|
|
|
721
|
-
[data-ui
|
|
722
|
-
> [data-part='input']:focus-visible
|
|
723
|
-
) {
|
|
718
|
+
[data-ui-currency-field][data-part-root][data-invalid]:has(> [data-part-input]:focus-visible) {
|
|
724
719
|
outline: calc(var(--slotted-focus-ring-width, 2px) + var(--_invalid-edge-width)) double
|
|
725
720
|
var(--slotted-focus-ring-color, Highlight);
|
|
726
721
|
outline-offset: var(--slotted-focus-ring-offset, 2px);
|
|
727
722
|
}
|
|
728
723
|
|
|
729
|
-
[data-ui
|
|
730
|
-
> [data-part
|
|
724
|
+
[data-ui-currency-field][data-part-root][data-variant='plain'][data-invalid]:has(
|
|
725
|
+
> [data-part-input]:focus-visible
|
|
731
726
|
) {
|
|
732
727
|
outline: calc(var(--slotted-focus-ring-width, 2px) + var(--_invalid-edge-width)) double
|
|
733
728
|
var(--slotted-focus-ring-color, Highlight);
|
|
@@ -743,7 +738,7 @@
|
|
|
743
738
|
* ground says "not yours to change", the edge steps down to the separator
|
|
744
739
|
* weight, and the ink stays at full strength.
|
|
745
740
|
*/
|
|
746
|
-
[data-ui
|
|
741
|
+
[data-ui-currency-field][data-part-root][data-readonly] {
|
|
747
742
|
background-color: var(
|
|
748
743
|
--slotted-currency-field-readonly-background,
|
|
749
744
|
var(--slotted-tone-secondary-subtle-hover)
|
|
@@ -760,8 +755,8 @@
|
|
|
760
755
|
* because a control can be disabled by something that never told it so: a
|
|
761
756
|
* disabled `fieldset` disables every control inside it.
|
|
762
757
|
*/
|
|
763
|
-
[data-ui
|
|
764
|
-
[data-ui
|
|
758
|
+
[data-ui-currency-field][data-part-root][data-disabled],
|
|
759
|
+
[data-ui-currency-field][data-part-root]:has(> [data-part-input]:disabled) {
|
|
765
760
|
background-color: var(
|
|
766
761
|
--slotted-currency-field-disabled-background,
|
|
767
762
|
var(--slotted-disabled-background)
|
|
@@ -780,8 +775,8 @@
|
|
|
780
775
|
* Muted to the colour the theme measures rather than faded by opacity: an
|
|
781
776
|
* amount nobody can read is a field nobody can check.
|
|
782
777
|
*/
|
|
783
|
-
[data-ui
|
|
784
|
-
[data-ui
|
|
778
|
+
[data-ui-currency-field][data-part-root][data-disabled] > [data-part-start],
|
|
779
|
+
[data-ui-currency-field][data-part-root][data-disabled] > [data-part-end] {
|
|
785
780
|
color: var(--slotted-disabled-foreground);
|
|
786
781
|
}
|
|
787
782
|
|
|
@@ -796,7 +791,7 @@
|
|
|
796
791
|
* digits; elsewhere the control takes the line and `align` places the
|
|
797
792
|
* amount in it.
|
|
798
793
|
*/
|
|
799
|
-
[data-ui
|
|
794
|
+
[data-ui-currency-field][data-part-root][data-appearance='display'] {
|
|
800
795
|
--_font-size: var(
|
|
801
796
|
--slotted-currency-field-display-font-size,
|
|
802
797
|
var(--slotted-font-size-4xl, 2rem)
|
|
@@ -813,7 +808,7 @@
|
|
|
813
808
|
line-height: var(--slotted-line-height-4xl, 1.2);
|
|
814
809
|
}
|
|
815
810
|
|
|
816
|
-
[data-ui
|
|
811
|
+
[data-ui-currency-field][data-part-root][data-appearance='display'] > [data-part-symbol] {
|
|
817
812
|
color: var(--slotted-currency-field-symbol-color, var(--slotted-text-muted, GrayText));
|
|
818
813
|
flex: none;
|
|
819
814
|
font-size: var(
|
|
@@ -824,18 +819,18 @@
|
|
|
824
819
|
letter-spacing: 0;
|
|
825
820
|
}
|
|
826
821
|
|
|
827
|
-
[data-ui
|
|
822
|
+
[data-ui-currency-field][data-part-root][data-appearance='display'] > [data-part-input] {
|
|
828
823
|
align-self: auto;
|
|
829
824
|
margin-block: 0;
|
|
830
825
|
}
|
|
831
826
|
|
|
832
827
|
@supports (field-sizing: content) {
|
|
833
|
-
[data-ui
|
|
828
|
+
[data-ui-currency-field][data-part-root][data-appearance='display'] {
|
|
834
829
|
inline-size: fit-content;
|
|
835
830
|
max-inline-size: 100%;
|
|
836
831
|
}
|
|
837
832
|
|
|
838
|
-
[data-ui
|
|
833
|
+
[data-ui-currency-field][data-part-root][data-appearance='display'] > [data-part-input] {
|
|
839
834
|
field-sizing: content;
|
|
840
835
|
flex: 0 1 auto;
|
|
841
836
|
min-inline-size: 1ch;
|
|
@@ -847,7 +842,7 @@
|
|
|
847
842
|
* and doubles, which is the focus indicator; invalid, it takes the danger
|
|
848
843
|
* colour. No ground, no corner and no resting lift.
|
|
849
844
|
*/
|
|
850
|
-
[data-ui
|
|
845
|
+
[data-ui-currency-field][data-part-root][data-appearance='display'] {
|
|
851
846
|
background-color: transparent;
|
|
852
847
|
border-color: transparent;
|
|
853
848
|
border-block-end-color: var(
|
|
@@ -859,8 +854,8 @@
|
|
|
859
854
|
padding-inline: 0;
|
|
860
855
|
}
|
|
861
856
|
|
|
862
|
-
[data-ui
|
|
863
|
-
> [data-part
|
|
857
|
+
[data-ui-currency-field][data-part-root][data-appearance='display']:has(
|
|
858
|
+
> [data-part-input]:focus-visible
|
|
864
859
|
) {
|
|
865
860
|
border-block-end-color: var(--slotted-text, CanvasText);
|
|
866
861
|
box-shadow: inset 0 calc(-1 * var(--slotted-border-width-thin, 1px)) 0
|
|
@@ -868,39 +863,39 @@
|
|
|
868
863
|
outline: none;
|
|
869
864
|
}
|
|
870
865
|
|
|
871
|
-
[data-ui
|
|
866
|
+
[data-ui-currency-field][data-part-root][data-appearance='display'][data-invalid] {
|
|
872
867
|
border-block-end-color: var(--slotted-tone-danger-border, CanvasText);
|
|
873
868
|
box-shadow: none;
|
|
874
869
|
}
|
|
875
870
|
|
|
876
|
-
[data-ui
|
|
877
|
-
> [data-part
|
|
871
|
+
[data-ui-currency-field][data-part-root][data-appearance='display'][data-invalid]:has(
|
|
872
|
+
> [data-part-input]:focus-visible
|
|
878
873
|
) {
|
|
879
874
|
box-shadow: inset 0 calc(-1 * var(--_invalid-edge-width)) 0 var(--_invalid-edge-color);
|
|
880
875
|
}
|
|
881
876
|
|
|
882
|
-
[data-ui
|
|
883
|
-
> [data-part
|
|
877
|
+
[data-ui-currency-field][data-part-root][data-appearance='display']:has(
|
|
878
|
+
> [data-part-input]:disabled
|
|
884
879
|
) {
|
|
885
880
|
border-block-end-color: var(--slotted-disabled-border, GrayText);
|
|
886
881
|
}
|
|
887
882
|
|
|
888
883
|
@media (forced-colors: active) {
|
|
889
|
-
[data-ui
|
|
884
|
+
[data-ui-currency-field][data-part-root][data-appearance='display'] {
|
|
890
885
|
border-block-end-color: ButtonBorder;
|
|
891
886
|
}
|
|
892
887
|
|
|
893
888
|
/* A shadow is not painted under forced colours, so the doubled rule of
|
|
894
889
|
focus is a wider border there. */
|
|
895
|
-
[data-ui
|
|
896
|
-
> [data-part
|
|
890
|
+
[data-ui-currency-field][data-part-root][data-appearance='display']:has(
|
|
891
|
+
> [data-part-input]:focus-visible
|
|
897
892
|
) {
|
|
898
893
|
border-block-end-color: Highlight;
|
|
899
894
|
border-block-end-width: calc(2 * var(--slotted-border-width-thin, 1px));
|
|
900
895
|
}
|
|
901
896
|
|
|
902
|
-
[data-ui
|
|
903
|
-
> [data-part
|
|
897
|
+
[data-ui-currency-field][data-part-root][data-appearance='display'][data-invalid]:has(
|
|
898
|
+
> [data-part-input]:focus-visible
|
|
904
899
|
) {
|
|
905
900
|
border-block-end-color: Highlight;
|
|
906
901
|
border-block-end-width: calc(
|