@threadlabs/looma 0.11.6 → 0.12.1
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/components/shared/describe.js +9 -0
- package/components/ui-button/ui-button.html +6 -19
- package/components/ui-checkbox/ui-checkbox.html +22 -1
- package/components/ui-checkbox/ui-checkbox.js +2 -0
- package/components/ui-icon-button/ui-icon-button.html +4 -14
- package/components/ui-input-group/ui-input-group.html +15 -3
- package/components/ui-radio/ui-radio.html +22 -1
- package/components/ui-radio/ui-radio.js +2 -0
- package/components/ui-sidebar/ui-sidebar.js +3 -1
- package/components/ui-switch/ui-switch.html +22 -1
- package/components/ui-switch/ui-switch.js +2 -0
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/styles/ui-button.css +11 -25
- package/styles/ui-checkbox.css +21 -1
- package/styles/ui-icon-button.css +4 -13
- package/styles/ui-input-group.css +19 -4
- package/styles/ui-radio.css +21 -1
- package/styles/ui-switch.css +21 -1
- package/theme-dark.css +2 -0
- package/theme-high-contrast.css +3 -0
- package/tokens.css +3 -0
- package/vanilla/UiCheckbox.js +18 -3
- package/vanilla/UiInputGroup.js +11 -0
- package/vanilla/UiRadio.js +18 -3
- package/vanilla/UiSwitch.js +18 -3
- package/vue/UiButton.vue +6 -19
- package/vue/UiCheckbox.d.ts +3 -1
- package/vue/UiCheckbox.vue +24 -2
- package/vue/UiIconButton.vue +3 -13
- package/vue/UiInputGroup.d.ts +3 -1
- package/vue/UiInputGroup.vue +15 -3
- package/vue/UiRadio.d.ts +3 -1
- package/vue/UiRadio.vue +24 -2
- package/vue/UiSwitch.d.ts +3 -1
- package/vue/UiSwitch.vue +24 -2
- package/vue/chunks/UiButton.js +1 -1
- package/vue/chunks/UiCheckbox.js +14 -4
- package/vue/chunks/UiIconButton.js +1 -1
- package/vue/chunks/UiInputGroup.js +4 -2
- package/vue/chunks/UiRadio.js +14 -4
- package/vue/chunks/UiSwitch.js +14 -4
- package/vue/components.css +171 -133
package/vue/components.css
CHANGED
|
@@ -368,7 +368,7 @@ ol[data-v-0d86d58e] {
|
|
|
368
368
|
display: none;
|
|
369
369
|
}
|
|
370
370
|
|
|
371
|
-
[data-component~="ui-button"][data-v-
|
|
371
|
+
[data-component~="ui-button"][data-v-75541d8a] {
|
|
372
372
|
--_hue: var(--ui-accent);
|
|
373
373
|
--_hue-hover: var(--ui-accent-hover);
|
|
374
374
|
--_hue-active: var(--ui-accent-active);
|
|
@@ -387,15 +387,15 @@ ol[data-v-0d86d58e] {
|
|
|
387
387
|
vertical-align: middle;
|
|
388
388
|
color: var(--_tone-text);
|
|
389
389
|
}
|
|
390
|
-
[data-component~="ui-button"][data-ui-button-state~="align=start"][data-v-
|
|
390
|
+
[data-component~="ui-button"][data-ui-button-state~="align=start"][data-v-75541d8a] {
|
|
391
391
|
justify-content: flex-start;
|
|
392
392
|
text-align: start;
|
|
393
393
|
}
|
|
394
|
-
[data-component~="ui-button"][data-ui-button-state~="stretch"][data-v-
|
|
394
|
+
[data-component~="ui-button"][data-ui-button-state~="stretch"][data-v-75541d8a] {
|
|
395
395
|
display: flex;
|
|
396
396
|
inline-size: 100%;
|
|
397
397
|
}
|
|
398
|
-
[data-component~="ui-button"][data-v-
|
|
398
|
+
[data-component~="ui-button"][data-v-75541d8a] {
|
|
399
399
|
appearance: none;
|
|
400
400
|
min-block-size: var(--ui-button-min-block-size, var(--ui-control-size-md));
|
|
401
401
|
border-style: solid;
|
|
@@ -420,17 +420,17 @@ ol[data-v-0d86d58e] {
|
|
|
420
420
|
margin: 0;
|
|
421
421
|
}
|
|
422
422
|
@supports (text-box-trim: trim-both) {
|
|
423
|
-
[data-component~="ui-button"][data-v-
|
|
423
|
+
[data-component~="ui-button"][data-v-75541d8a] {
|
|
424
424
|
text-box-trim: trim-both;
|
|
425
425
|
text-box-edge: cap alphabetic;
|
|
426
426
|
}
|
|
427
427
|
}
|
|
428
|
-
[data-component~="ui-button"][data-ui-button-state~="size=sm"][data-v-
|
|
428
|
+
[data-component~="ui-button"][data-ui-button-state~="size=sm"][data-v-75541d8a] {
|
|
429
429
|
min-block-size: var(--ui-control-size-sm);
|
|
430
430
|
padding: var(--ui-space-1) var(--ui-space-2);
|
|
431
431
|
font-size: var(--ui-font-size-sm);
|
|
432
432
|
}
|
|
433
|
-
[data-component~="ui-button"][data-ui-button-state~="size=lg"][data-v-
|
|
433
|
+
[data-component~="ui-button"][data-ui-button-state~="size=lg"][data-v-75541d8a] {
|
|
434
434
|
min-block-size: var(--ui-control-size-lg);
|
|
435
435
|
padding: var(--ui-space-3) var(--ui-space-4);
|
|
436
436
|
font-size: var(--ui-font-size-md);
|
|
@@ -438,29 +438,29 @@ ol[data-v-0d86d58e] {
|
|
|
438
438
|
|
|
439
439
|
/* A link is never :enabled, so interactive states test "not unavailable" instead: for a button that
|
|
440
440
|
is exactly :enabled, at the same specificity, and it also matches a link that can be followed. */
|
|
441
|
-
[data-component~="ui-button"][data-v-
|
|
441
|
+
[data-component~="ui-button"][data-v-75541d8a]:hover:not(:disabled, [aria-disabled="true"]) {
|
|
442
442
|
border-color: var(--ui-button-hover-border, var(--_tone-hover));
|
|
443
443
|
background-color: var(--ui-button-hover-surface, oklch(from var(--_tone) l c h / 12%));
|
|
444
444
|
}
|
|
445
445
|
|
|
446
446
|
/* Pressed reads as pressed in: the highlight goes, and the shadow moves inside. */
|
|
447
|
-
[data-component~="ui-button"][data-v-
|
|
447
|
+
[data-component~="ui-button"][data-v-75541d8a]:active:not(:disabled, [aria-disabled="true"]) {
|
|
448
448
|
background-color: var(--ui-button-active-surface, oklch(from var(--_tone) l c h / 18%));
|
|
449
449
|
background-image: none;
|
|
450
450
|
box-shadow: var(--ui-pressed);
|
|
451
451
|
}
|
|
452
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-
|
|
453
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-
|
|
452
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-75541d8a],
|
|
453
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-75541d8a] {
|
|
454
454
|
border-color: var(--_tone);
|
|
455
455
|
background-color: var(--_tone);
|
|
456
456
|
color: var(--_on-tone);
|
|
457
457
|
box-shadow: var(--ui-button-solid-shadow, var(--ui-raised));
|
|
458
458
|
}
|
|
459
|
-
:is([data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-
|
|
459
|
+
:is([data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-75541d8a], [data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-75541d8a]):hover:not(:disabled, [aria-disabled="true"]) {
|
|
460
460
|
background-color: var(--_tone-hover);
|
|
461
461
|
border-color: var(--_tone-hover);
|
|
462
462
|
}
|
|
463
|
-
:is([data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-
|
|
463
|
+
:is([data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-75541d8a], [data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-75541d8a]):active:not(:disabled, [aria-disabled="true"]) {
|
|
464
464
|
background-color: var(--_tone-active);
|
|
465
465
|
border-color: var(--_tone-active);
|
|
466
466
|
background-image: none;
|
|
@@ -469,43 +469,43 @@ ol[data-v-0d86d58e] {
|
|
|
469
469
|
|
|
470
470
|
/* Tone is the colour, variant is the volume. Every pairing works: a danger outline is a
|
|
471
471
|
destructive secondary action, not a special case. */
|
|
472
|
-
[data-component~="ui-button"][data-ui-button-state~="tone=neutral"][data-v-
|
|
472
|
+
[data-component~="ui-button"][data-ui-button-state~="tone=neutral"][data-v-75541d8a] {
|
|
473
473
|
--_hue: var(--ui-text);
|
|
474
474
|
--_hue-hover: var(--ui-text);
|
|
475
475
|
--_hue-active: var(--ui-text);
|
|
476
476
|
--_hue-text: var(--ui-text);
|
|
477
477
|
--_on-hue: var(--ui-surface);
|
|
478
478
|
}
|
|
479
|
-
[data-component~="ui-button"][data-ui-button-state~="tone=danger"][data-v-
|
|
480
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-
|
|
479
|
+
[data-component~="ui-button"][data-ui-button-state~="tone=danger"][data-v-75541d8a],
|
|
480
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-75541d8a] {
|
|
481
481
|
--_hue: var(--ui-danger);
|
|
482
482
|
--_hue-hover: var(--ui-danger-hover);
|
|
483
483
|
--_hue-active: var(--ui-danger-hover);
|
|
484
484
|
--_hue-text: var(--ui-danger-hover);
|
|
485
485
|
--_on-hue: var(--ui-on-danger);
|
|
486
486
|
}
|
|
487
|
-
[data-component~="ui-button"][data-ui-button-state~="tone=success"][data-v-
|
|
487
|
+
[data-component~="ui-button"][data-ui-button-state~="tone=success"][data-v-75541d8a] {
|
|
488
488
|
--_hue: var(--ui-success);
|
|
489
489
|
--_hue-hover: color-mix(in srgb, var(--ui-success) 85%, #000);
|
|
490
490
|
--_hue-active: color-mix(in srgb, var(--ui-success) 75%, #000);
|
|
491
491
|
--_hue-text: color-mix(in srgb, var(--ui-success) 85%, #000);
|
|
492
492
|
--_on-hue: var(--ui-surface);
|
|
493
493
|
}
|
|
494
|
-
[data-component~="ui-button"][data-ui-button-state~="tone=warning"][data-v-
|
|
494
|
+
[data-component~="ui-button"][data-ui-button-state~="tone=warning"][data-v-75541d8a] {
|
|
495
495
|
--_hue: var(--ui-warning);
|
|
496
496
|
--_hue-hover: color-mix(in srgb, var(--ui-warning) 85%, #000);
|
|
497
497
|
--_hue-active: color-mix(in srgb, var(--ui-warning) 75%, #000);
|
|
498
498
|
--_hue-text: color-mix(in srgb, var(--ui-warning) 85%, #000);
|
|
499
499
|
--_on-hue: var(--ui-surface);
|
|
500
500
|
}
|
|
501
|
-
[data-component~="ui-button"][data-ui-button-state~="tone=info"][data-v-
|
|
501
|
+
[data-component~="ui-button"][data-ui-button-state~="tone=info"][data-v-75541d8a] {
|
|
502
502
|
--_hue: var(--ui-info);
|
|
503
503
|
--_hue-hover: color-mix(in srgb, var(--ui-info) 85%, #000);
|
|
504
504
|
--_hue-active: color-mix(in srgb, var(--ui-info) 75%, #000);
|
|
505
505
|
--_hue-text: color-mix(in srgb, var(--ui-info) 85%, #000);
|
|
506
506
|
--_on-hue: var(--ui-surface);
|
|
507
507
|
}
|
|
508
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-
|
|
508
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-75541d8a] {
|
|
509
509
|
border-color: transparent;
|
|
510
510
|
background: transparent;
|
|
511
511
|
box-shadow: none;
|
|
@@ -513,64 +513,52 @@ ol[data-v-0d86d58e] {
|
|
|
513
513
|
}
|
|
514
514
|
|
|
515
515
|
/* Tints derive from the text colour, not a surface token, so hover and press show on any background. */
|
|
516
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-
|
|
516
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-75541d8a]:hover:not(:disabled, [aria-disabled="true"]) {
|
|
517
517
|
background-color: var(--ui-button-ghost-hover-surface, oklch(from var(--_tone) l c h / 10%));
|
|
518
518
|
border-color: transparent;
|
|
519
519
|
}
|
|
520
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-
|
|
520
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-75541d8a]:active:not(:disabled, [aria-disabled="true"]) {
|
|
521
521
|
background-color: var(--ui-button-ghost-active-surface, oklch(from var(--_tone) l c h / 16%));
|
|
522
522
|
border-color: transparent;
|
|
523
523
|
box-shadow: var(--ui-pressed);
|
|
524
524
|
}
|
|
525
525
|
|
|
526
526
|
/* A soft halo that transitions in with the other box-shadow changes, layered on the raised shadow. */
|
|
527
|
-
[data-component~="ui-button"][data-v-
|
|
527
|
+
[data-component~="ui-button"][data-v-75541d8a]:focus-visible {
|
|
528
528
|
outline: none;
|
|
529
529
|
box-shadow:
|
|
530
530
|
var(--ui-button-shadow, var(--ui-raised)),
|
|
531
531
|
var(--ui-focus-halo);
|
|
532
532
|
}
|
|
533
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-
|
|
533
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-75541d8a]:focus-visible {
|
|
534
534
|
box-shadow:
|
|
535
535
|
var(--ui-button-solid-shadow, var(--ui-raised)),
|
|
536
536
|
var(--ui-focus-halo);
|
|
537
537
|
}
|
|
538
538
|
|
|
539
|
-
/* Disabled
|
|
540
|
-
disabled outline is still an outline and a disabled ghost still has no edge.
|
|
541
|
-
|
|
542
|
-
highlight and shadow, because nothing that cannot be pressed should
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
so a dark theme dims where a light one lightens — the same rule, both schemes. */
|
|
547
|
-
--_tone: color-mix(in oklab, var(--_hue) 58%, var(--ui-surface));
|
|
548
|
-
--_tone-hover: var(--_tone);
|
|
549
|
-
--_tone-active: var(--_tone);
|
|
550
|
-
--_tone-text: color-mix(in oklab, var(--_hue-text) 72%, var(--ui-surface));
|
|
551
|
-
--_on-tone: var(--_tone-text);
|
|
552
|
-
|
|
539
|
+
/* Disabled keeps the shape and washes out the rest: every variant keeps its own structure, so a
|
|
540
|
+
disabled outline is still an outline and a disabled ghost still has no edge. One filter fades
|
|
541
|
+
fill, border, and text together (--ui-disabled-filter), and the theme decides which way is
|
|
542
|
+
toward the page. The highlight and shadow go, because nothing that cannot be pressed should
|
|
543
|
+
look raised. */
|
|
544
|
+
[data-component~="ui-button"][data-v-75541d8a]:is(:disabled, [aria-disabled="true"]) {
|
|
545
|
+
filter: var(--ui-button-disabled-filter, var(--ui-disabled-filter));
|
|
553
546
|
opacity: var(--ui-button-disabled-opacity, 1);
|
|
554
547
|
cursor: not-allowed;
|
|
555
548
|
background-image: none;
|
|
556
549
|
box-shadow: none;
|
|
557
550
|
}
|
|
558
551
|
|
|
559
|
-
/* A filled button keeps its fill, faded further so its text stays legible on it. */
|
|
560
|
-
:is([data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-97872575], [data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-97872575]):is(:disabled, [aria-disabled="true"]) {
|
|
561
|
-
--_tone: color-mix(in oklab, var(--_hue) 34%, var(--ui-surface));
|
|
562
|
-
}
|
|
563
|
-
|
|
564
552
|
/* Ghost has no hover to fall back on, so disabled is the one state it has to state outright:
|
|
565
553
|
it takes a surface rather than reading as plain text. The surface is a wash of the faded tone,
|
|
566
554
|
the way hover washes the live one, so it stays light in every tone. An opaque mix toward the
|
|
567
555
|
hue came out a mid-grey slab for neutral, whose hue is the ink: louder than the enabled button. */
|
|
568
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-
|
|
556
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-75541d8a]:is(:disabled, [aria-disabled="true"]) {
|
|
569
557
|
background-color: oklch(from var(--_tone) l c h / 14%);
|
|
570
558
|
border-color: transparent;
|
|
571
559
|
}
|
|
572
560
|
@media (pointer: coarse) {
|
|
573
|
-
[data-component~="ui-button"][data-v-
|
|
561
|
+
[data-component~="ui-button"][data-v-75541d8a] {
|
|
574
562
|
min-block-size: var(--ui-control-min-block-size);
|
|
575
563
|
}
|
|
576
564
|
}
|
|
@@ -580,11 +568,11 @@ ol[data-v-0d86d58e] {
|
|
|
580
568
|
a link-style one keeps its text size, so a standalone one ("See all" under a list) needs the
|
|
581
569
|
area. Only the link needs it: a hit area on every button would reach over its neighbours. */
|
|
582
570
|
html[data-ui-input-modality="touch"]
|
|
583
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-
|
|
571
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-75541d8a] {
|
|
584
572
|
position: relative;
|
|
585
573
|
}
|
|
586
574
|
html[data-ui-input-modality="touch"]
|
|
587
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-
|
|
575
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-75541d8a]::after {
|
|
588
576
|
position: absolute;
|
|
589
577
|
inset: 50% auto auto 50%;
|
|
590
578
|
inline-size: max(100%, var(--ui-control-min-block-size));
|
|
@@ -595,7 +583,7 @@ html[data-ui-input-modality="touch"]
|
|
|
595
583
|
|
|
596
584
|
/* Link: an inline text action. No box, padding, or minimum height (inline targets are exempt under
|
|
597
585
|
WCAG 2.5.8); the inherited font; an underline that strengthens on hover; a visible focus ring. */
|
|
598
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-
|
|
586
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-75541d8a] {
|
|
599
587
|
display: inline;
|
|
600
588
|
min-block-size: 0;
|
|
601
589
|
padding: 0;
|
|
@@ -613,22 +601,21 @@ html[data-ui-input-modality="touch"]
|
|
|
613
601
|
color var(--ui-motion-fast) var(--ui-motion-ease),
|
|
614
602
|
text-decoration-color var(--ui-motion-fast) var(--ui-motion-ease);
|
|
615
603
|
}
|
|
616
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-
|
|
604
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-75541d8a]:hover:not(:disabled, [aria-disabled="true"]) {
|
|
617
605
|
color: var(--ui-button-link-hover-text, var(--ui-text-primary));
|
|
618
606
|
text-decoration-color: currentColor;
|
|
619
607
|
background: none;
|
|
620
608
|
transform: none;
|
|
621
609
|
}
|
|
622
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-
|
|
610
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-75541d8a]:active:not(:disabled, [aria-disabled="true"]) {
|
|
623
611
|
background: none;
|
|
624
612
|
transform: none;
|
|
625
613
|
}
|
|
626
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-
|
|
614
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-75541d8a]:is(:disabled, [aria-disabled="true"]) {
|
|
627
615
|
background: none;
|
|
628
616
|
border-color: transparent;
|
|
629
|
-
color: var(--ui-button-disabled-text, var(--ui-disabled-text));
|
|
630
617
|
}
|
|
631
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-
|
|
618
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-75541d8a]:focus-visible {
|
|
632
619
|
box-shadow: none;
|
|
633
620
|
/* Fallback keeps the ring if the token is missing: an unresolved var() would void the outline. */
|
|
634
621
|
outline: 2px solid var(--ui-focus-ring);
|
|
@@ -636,7 +623,7 @@ html[data-ui-input-modality="touch"]
|
|
|
636
623
|
}
|
|
637
624
|
|
|
638
625
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
639
|
-
[data-component~="ui-button"][hidden][data-v-
|
|
626
|
+
[data-component~="ui-button"][hidden][data-v-75541d8a] {
|
|
640
627
|
display: none;
|
|
641
628
|
}
|
|
642
629
|
|
|
@@ -752,7 +739,7 @@ html[data-ui-input-modality="touch"]
|
|
|
752
739
|
display: none;
|
|
753
740
|
}
|
|
754
741
|
|
|
755
|
-
[data-component~="ui-checkbox"][data-v-
|
|
742
|
+
[data-component~="ui-checkbox"][data-v-4d65c3b0] {
|
|
756
743
|
display: inline-flex;
|
|
757
744
|
align-items: flex-start;
|
|
758
745
|
gap: var(--ui-checkbox-gap, var(--ui-space-2));
|
|
@@ -760,11 +747,27 @@ html[data-ui-input-modality="touch"]
|
|
|
760
747
|
color: var(--ui-text-primary);
|
|
761
748
|
cursor: pointer;
|
|
762
749
|
}
|
|
763
|
-
|
|
750
|
+
|
|
751
|
+
/* The label, and under it an optional line saying what the choice means. */
|
|
752
|
+
.text[data-v-4d65c3b0] {
|
|
753
|
+
display: flex;
|
|
754
|
+
flex-direction: column;
|
|
755
|
+
gap: var(--ui-space-1);
|
|
756
|
+
min-inline-size: 0;
|
|
757
|
+
}
|
|
758
|
+
.label[data-v-4d65c3b0] {
|
|
764
759
|
min-inline-size: 0;
|
|
765
760
|
line-height: var(--ui-line-height-md);
|
|
766
761
|
}
|
|
767
|
-
|
|
762
|
+
.description[data-v-4d65c3b0] {
|
|
763
|
+
color: var(--ui-text-secondary);
|
|
764
|
+
font-size: var(--ui-font-size-sm);
|
|
765
|
+
line-height: var(--ui-line-height);
|
|
766
|
+
}
|
|
767
|
+
.description[data-v-4d65c3b0]:empty {
|
|
768
|
+
display: none;
|
|
769
|
+
}
|
|
770
|
+
input[data-v-4d65c3b0] {
|
|
768
771
|
appearance: none;
|
|
769
772
|
-webkit-appearance: none;
|
|
770
773
|
position: relative;
|
|
@@ -782,20 +785,20 @@ input[data-v-9c9d1eaa] {
|
|
|
782
785
|
border-color var(--ui-motion-fast) var(--ui-motion-ease),
|
|
783
786
|
box-shadow var(--ui-motion-fast) var(--ui-motion-ease);
|
|
784
787
|
}
|
|
785
|
-
input[data-v-
|
|
788
|
+
input[data-v-4d65c3b0]::after {
|
|
786
789
|
content: "";
|
|
787
790
|
position: absolute;
|
|
788
791
|
opacity: 0;
|
|
789
792
|
}
|
|
790
|
-
input[data-v-
|
|
791
|
-
input[data-v-
|
|
793
|
+
input[data-v-4d65c3b0]:checked,
|
|
794
|
+
input[data-v-4d65c3b0]:indeterminate {
|
|
792
795
|
border-color: var(--ui-accent-solid);
|
|
793
796
|
background: var(--ui-accent-solid);
|
|
794
797
|
box-shadow: inset 0 1px 2px color-mix(in srgb, #000 16%, transparent);
|
|
795
798
|
}
|
|
796
799
|
|
|
797
800
|
/* Centre the tick's box, then lift it: a rotated L's ink sits ~0.11rem below its box centre. */
|
|
798
|
-
input[data-v-
|
|
801
|
+
input[data-v-4d65c3b0]:checked::after {
|
|
799
802
|
inset: 0;
|
|
800
803
|
margin: auto;
|
|
801
804
|
inline-size: 0.32rem;
|
|
@@ -808,7 +811,7 @@ input[data-v-9c9d1eaa]:checked::after {
|
|
|
808
811
|
opacity: 1;
|
|
809
812
|
transform: translateY(-0.11rem) rotate(45deg);
|
|
810
813
|
}
|
|
811
|
-
input[data-v-
|
|
814
|
+
input[data-v-4d65c3b0]:indeterminate::after {
|
|
812
815
|
inset: 50% 0.23rem auto;
|
|
813
816
|
block-size: 0.125rem;
|
|
814
817
|
border-radius: var(--ui-radius-round);
|
|
@@ -816,25 +819,25 @@ input[data-v-9c9d1eaa]:indeterminate::after {
|
|
|
816
819
|
opacity: 1;
|
|
817
820
|
transform: translateY(-50%);
|
|
818
821
|
}
|
|
819
|
-
input[data-v-
|
|
822
|
+
input[data-v-4d65c3b0]:hover:enabled {
|
|
820
823
|
border-color: var(--ui-accent-solid);
|
|
821
824
|
}
|
|
822
|
-
input[data-v-
|
|
825
|
+
input[data-v-4d65c3b0]:focus-visible {
|
|
823
826
|
outline: 2px solid var(--ui-focus-ring, var(--ui-accent-solid));
|
|
824
827
|
outline-offset: 2px;
|
|
825
828
|
}
|
|
826
|
-
[data-component~="ui-checkbox"][data-ui-checkbox-state~="disabled"][data-v-
|
|
829
|
+
[data-component~="ui-checkbox"][data-ui-checkbox-state~="disabled"][data-v-4d65c3b0] {
|
|
827
830
|
color: var(--ui-text-muted);
|
|
828
831
|
cursor: not-allowed;
|
|
829
832
|
}
|
|
830
|
-
[data-component~="ui-checkbox"][data-ui-checkbox-state~="disabled"] input[data-v-
|
|
833
|
+
[data-component~="ui-checkbox"][data-ui-checkbox-state~="disabled"] input[data-v-4d65c3b0] {
|
|
831
834
|
border-color: var(--ui-border-default);
|
|
832
835
|
background: var(--ui-control-surface-disabled, var(--ui-surface-muted));
|
|
833
836
|
cursor: not-allowed;
|
|
834
837
|
}
|
|
835
838
|
|
|
836
839
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
837
|
-
[data-component~="ui-checkbox"][hidden][data-v-
|
|
840
|
+
[data-component~="ui-checkbox"][hidden][data-v-4d65c3b0] {
|
|
838
841
|
display: none;
|
|
839
842
|
}
|
|
840
843
|
|
|
@@ -2972,14 +2975,14 @@ svg[data-v-dc9b5621-s] {
|
|
|
2972
2975
|
display: none;
|
|
2973
2976
|
}
|
|
2974
2977
|
|
|
2975
|
-
[data-component~="ui-icon-button"][data-v-
|
|
2978
|
+
[data-component~="ui-icon-button"][data-v-c322b7ed] {
|
|
2976
2979
|
display: inline-flex;
|
|
2977
2980
|
color: var(--ui-text-secondary);
|
|
2978
2981
|
}
|
|
2979
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-
|
|
2982
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-c322b7ed] {
|
|
2980
2983
|
position: relative;
|
|
2981
2984
|
}
|
|
2982
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-
|
|
2985
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-c322b7ed]::before {
|
|
2983
2986
|
content: "";
|
|
2984
2987
|
position: absolute;
|
|
2985
2988
|
inset: 50% auto auto 50%;
|
|
@@ -2998,17 +3001,17 @@ svg[data-v-dc9b5621-s] {
|
|
|
2998
3001
|
* surface and icon. The root is the native button, so hiding it outright would hide the dot
|
|
2999
3002
|
* too, and slotted icons sit outside this scope; `color: transparent` hides currentColor icons. */
|
|
3000
3003
|
@media (hover: hover) and (pointer: fine) {
|
|
3001
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-
|
|
3004
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-c322b7ed]:not([data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"], [data-ui-proximity="near"], :hover, :focus-visible) {
|
|
3002
3005
|
border-color: transparent;
|
|
3003
3006
|
background: transparent;
|
|
3004
3007
|
box-shadow: none;
|
|
3005
3008
|
color: transparent;
|
|
3006
3009
|
}
|
|
3007
3010
|
}
|
|
3008
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-
|
|
3011
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-c322b7ed]:is([data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"], [data-ui-proximity="near"], :hover, :focus-visible)::before {
|
|
3009
3012
|
opacity: 0;
|
|
3010
3013
|
}
|
|
3011
|
-
[data-component~="ui-icon-button"][data-v-
|
|
3014
|
+
[data-component~="ui-icon-button"][data-v-c322b7ed] {
|
|
3012
3015
|
/* The size prop resolves here; --ui-icon-button-size overrides it on an element. */
|
|
3013
3016
|
--_size: 2rem;
|
|
3014
3017
|
appearance: none;
|
|
@@ -3034,7 +3037,7 @@ svg[data-v-dc9b5621-s] {
|
|
|
3034
3037
|
transform var(--ui-motion-fast) var(--ui-motion-ease);
|
|
3035
3038
|
}
|
|
3036
3039
|
@media (hover: none), (pointer: coarse) {
|
|
3037
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-
|
|
3040
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-c322b7ed]::before {
|
|
3038
3041
|
opacity: 0;
|
|
3039
3042
|
}
|
|
3040
3043
|
}
|
|
@@ -3042,10 +3045,10 @@ svg[data-v-dc9b5621-s] {
|
|
|
3042
3045
|
/* A touch target without a bigger button: an invisible hit area, at least the control
|
|
3043
3046
|
minimum, centred on the button (::before is the anticipatory guide). */
|
|
3044
3047
|
@media (pointer: coarse) {
|
|
3045
|
-
[data-component~="ui-icon-button"][data-v-
|
|
3048
|
+
[data-component~="ui-icon-button"][data-v-c322b7ed] {
|
|
3046
3049
|
position: relative;
|
|
3047
3050
|
}
|
|
3048
|
-
[data-component~="ui-icon-button"][data-v-
|
|
3051
|
+
[data-component~="ui-icon-button"][data-v-c322b7ed]::after {
|
|
3049
3052
|
content: "";
|
|
3050
3053
|
position: absolute;
|
|
3051
3054
|
inset: 50% auto auto 50%;
|
|
@@ -3054,10 +3057,10 @@ svg[data-v-dc9b5621-s] {
|
|
|
3054
3057
|
transform: translate(-50%, -50%);
|
|
3055
3058
|
}
|
|
3056
3059
|
}
|
|
3057
|
-
html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-
|
|
3060
|
+
html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-c322b7ed] {
|
|
3058
3061
|
position: relative;
|
|
3059
3062
|
}
|
|
3060
|
-
html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-
|
|
3063
|
+
html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-c322b7ed]::after {
|
|
3061
3064
|
content: "";
|
|
3062
3065
|
position: absolute;
|
|
3063
3066
|
inset: 50% auto auto 50%;
|
|
@@ -3065,29 +3068,29 @@ html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-b
|
|
|
3065
3068
|
block-size: max(100%, var(--ui-control-min-block-size));
|
|
3066
3069
|
transform: translate(-50%, -50%);
|
|
3067
3070
|
}
|
|
3068
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="size=sm"][data-v-
|
|
3071
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="size=sm"][data-v-c322b7ed] {
|
|
3069
3072
|
--_size: 1.75rem;
|
|
3070
3073
|
inline-size: var(--ui-icon-button-size, var(--_size));
|
|
3071
3074
|
block-size: var(--ui-icon-button-size, var(--_size));
|
|
3072
3075
|
min-inline-size: var(--ui-icon-button-size, var(--_size));
|
|
3073
3076
|
min-block-size: var(--ui-icon-button-size, var(--_size));
|
|
3074
3077
|
}
|
|
3075
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="size=lg"][data-v-
|
|
3078
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="size=lg"][data-v-c322b7ed] {
|
|
3076
3079
|
--_size: 2.5rem;
|
|
3077
3080
|
inline-size: var(--ui-icon-button-size, var(--_size));
|
|
3078
3081
|
block-size: var(--ui-icon-button-size, var(--_size));
|
|
3079
3082
|
min-inline-size: var(--ui-icon-button-size, var(--_size));
|
|
3080
3083
|
min-block-size: var(--ui-icon-button-size, var(--_size));
|
|
3081
3084
|
}
|
|
3082
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="round"][data-v-
|
|
3085
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="round"][data-v-c322b7ed] {
|
|
3083
3086
|
border-radius: var(--ui-radius-round);
|
|
3084
3087
|
}
|
|
3085
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][data-v-
|
|
3088
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][data-v-c322b7ed] {
|
|
3086
3089
|
border-color: var(--ui-icon-button-border, var(--ui-border-default));
|
|
3087
3090
|
background: var(--ui-icon-button-outline-surface, var(--ui-surface-default));
|
|
3088
3091
|
color: var(--ui-icon-button-outline-text, var(--ui-text-primary));
|
|
3089
3092
|
}
|
|
3090
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"][data-v-
|
|
3093
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"][data-v-c322b7ed] {
|
|
3091
3094
|
background: var(--ui-icon-button-solid-surface, var(--ui-accent-solid));
|
|
3092
3095
|
color: var(--ui-icon-button-solid-text, var(--ui-text-on-accent));
|
|
3093
3096
|
box-shadow: var(
|
|
@@ -3095,51 +3098,43 @@ html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-b
|
|
|
3095
3098
|
0 1px 2px color-mix(in srgb, var(--ui-accent-solid) 18%, transparent)
|
|
3096
3099
|
);
|
|
3097
3100
|
}
|
|
3098
|
-
[data-component~="ui-icon-button"][data-v-
|
|
3101
|
+
[data-component~="ui-icon-button"][data-v-c322b7ed]:hover:enabled {
|
|
3099
3102
|
/* Derived from the text colour so the ghost hover shows on any background. */
|
|
3100
3103
|
background: var(--ui-icon-button-hover-surface, color-mix(in srgb, currentColor 8%, transparent));
|
|
3101
3104
|
color: var(--ui-icon-button-hover-text, var(--ui-text-primary));
|
|
3102
3105
|
}
|
|
3103
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][data-v-
|
|
3106
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][data-v-c322b7ed]:hover:enabled {
|
|
3104
3107
|
border-color: var(--ui-icon-button-hover-border, var(--ui-border-strong));
|
|
3105
3108
|
}
|
|
3106
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"][data-v-
|
|
3109
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"][data-v-c322b7ed]:hover:enabled {
|
|
3107
3110
|
background: var(--ui-icon-button-solid-hover-surface, var(--ui-accent-hover));
|
|
3108
3111
|
}
|
|
3109
|
-
[data-component~="ui-icon-button"][data-v-
|
|
3112
|
+
[data-component~="ui-icon-button"][data-v-c322b7ed]:active:enabled {
|
|
3110
3113
|
transform: scale(var(--ui-icon-button-active-scale, 0.96));
|
|
3111
3114
|
}
|
|
3112
|
-
[data-component~="ui-icon-button"][data-v-
|
|
3115
|
+
[data-component~="ui-icon-button"][data-v-c322b7ed]:focus-visible {
|
|
3113
3116
|
outline: none;
|
|
3114
3117
|
box-shadow: var(--ui-focus-halo);
|
|
3115
3118
|
}
|
|
3116
3119
|
|
|
3117
3120
|
/* Disabled colours fall back to each variant's own; ghost takes only the icon colour. */
|
|
3118
|
-
|
|
3121
|
+
/* Disabled washes the button out the way Button does: the same shape, one filter. */
|
|
3122
|
+
[data-component~="ui-icon-button"][data-v-c322b7ed]:disabled {
|
|
3123
|
+
filter: var(--ui-icon-button-disabled-filter, var(--ui-disabled-filter));
|
|
3119
3124
|
opacity: var(--ui-icon-button-disabled-opacity, 1);
|
|
3120
|
-
color: var(--ui-icon-button-disabled-text, var(--ui-disabled-text));
|
|
3121
3125
|
cursor: not-allowed;
|
|
3126
|
+
box-shadow: none;
|
|
3122
3127
|
}
|
|
3123
|
-
[data-component~="ui-icon-button"][data-
|
|
3124
|
-
border-color: var(--ui-icon-button-disabled-border, var(--ui-border));
|
|
3125
|
-
background-color: var(--ui-icon-button-disabled-surface, var(--ui-disabled-surface));
|
|
3126
|
-
color: var(--ui-icon-button-disabled-text, var(--ui-disabled-text));
|
|
3127
|
-
}
|
|
3128
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"][data-v-bcedd63e]:disabled {
|
|
3129
|
-
border-color: var(--ui-icon-button-disabled-border, var(--ui-border));
|
|
3130
|
-
background-color: var(--ui-icon-button-disabled-surface, var(--ui-disabled-surface));
|
|
3131
|
-
color: var(--ui-icon-button-disabled-text, var(--ui-disabled-text));
|
|
3132
|
-
}
|
|
3133
|
-
[data-component~="ui-icon-button"][data-v-bcedd63e] {
|
|
3128
|
+
[data-component~="ui-icon-button"][data-v-c322b7ed] {
|
|
3134
3129
|
--_icon-button-icon-default: var(--ui-icon-size-md);
|
|
3135
3130
|
}
|
|
3136
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="size=sm"][data-v-
|
|
3131
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="size=sm"][data-v-c322b7ed] {
|
|
3137
3132
|
--_icon-button-icon-default: var(--ui-icon-size-sm);
|
|
3138
3133
|
}
|
|
3139
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="size=lg"][data-v-
|
|
3134
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="size=lg"][data-v-c322b7ed] {
|
|
3140
3135
|
--_icon-button-icon-default: var(--ui-icon-size-lg);
|
|
3141
3136
|
}
|
|
3142
|
-
svg[data-v-
|
|
3137
|
+
svg[data-v-c322b7ed-s] {
|
|
3143
3138
|
inline-size: var(--ui-icon-button-icon-size, var(--_icon-button-icon-default));
|
|
3144
3139
|
block-size: var(--ui-icon-button-icon-size, var(--_icon-button-icon-default));
|
|
3145
3140
|
flex-shrink: 0;
|
|
@@ -3147,7 +3142,7 @@ svg[data-v-bcedd63e-s] {
|
|
|
3147
3142
|
}
|
|
3148
3143
|
|
|
3149
3144
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
3150
|
-
[data-component~="ui-icon-button"][hidden][data-v-
|
|
3145
|
+
[data-component~="ui-icon-button"][hidden][data-v-c322b7ed] {
|
|
3151
3146
|
display: none;
|
|
3152
3147
|
}
|
|
3153
3148
|
|
|
@@ -3230,8 +3225,10 @@ svg[data-v-bcedd63e-s] {
|
|
|
3230
3225
|
focus ring around the input and its affixes together; the input inside drops its own through
|
|
3231
3226
|
its custom properties, so it is still the one ui-input, with its form behaviour intact. The
|
|
3232
3227
|
affixes are plain text beside the input, so name the input with a label that says what the
|
|
3233
|
-
whole value is.
|
|
3234
|
-
|
|
3228
|
+
whole value is. The action slot takes one button at the end, inside the border, for the one
|
|
3229
|
+
thing the field is for ("Continue" after a site's address), so it reads as the field's action
|
|
3230
|
+
and not the form's. */
|
|
3231
|
+
[data-component~="ui-input-group"][data-v-ac7159ba] {
|
|
3235
3232
|
--ui-input-border: transparent;
|
|
3236
3233
|
--ui-input-border-hover: transparent;
|
|
3237
3234
|
--ui-input-focus-border: transparent;
|
|
@@ -3257,28 +3254,30 @@ svg[data-v-bcedd63e-s] {
|
|
|
3257
3254
|
border-color var(--ui-motion-fast) var(--ui-motion-ease),
|
|
3258
3255
|
box-shadow var(--ui-motion-fast) var(--ui-motion-ease);
|
|
3259
3256
|
}
|
|
3260
|
-
[data-component~="ui-input-group"][data-v-
|
|
3257
|
+
[data-component~="ui-input-group"][data-v-ac7159ba]:hover:not(:focus-within) {
|
|
3261
3258
|
border-color: var(--ui-text-secondary);
|
|
3262
3259
|
}
|
|
3263
|
-
|
|
3260
|
+
|
|
3261
|
+
/* The field's focus, not the action's: a focused button draws its own ring. */
|
|
3262
|
+
[data-component~="ui-input-group"][data-v-ac7159ba]:has(.field :focus) {
|
|
3264
3263
|
border-color: var(--ui-accent-solid);
|
|
3265
3264
|
box-shadow:
|
|
3266
3265
|
var(--ui-control-inset),
|
|
3267
3266
|
var(--ui-control-focus-halo-shadow);
|
|
3268
3267
|
}
|
|
3269
|
-
[data-component~="ui-input-group"][data-v-
|
|
3268
|
+
[data-component~="ui-input-group"][data-v-ac7159ba]:has([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])) {
|
|
3270
3269
|
border-color: var(--ui-danger-solid);
|
|
3271
3270
|
}
|
|
3272
|
-
[data-component~="ui-input-group"][data-ui-input-group-state~="disabled"][data-v-
|
|
3271
|
+
[data-component~="ui-input-group"][data-ui-input-group-state~="disabled"][data-v-ac7159ba] {
|
|
3273
3272
|
background: var(--ui-surface-muted);
|
|
3274
3273
|
box-shadow: none;
|
|
3275
3274
|
}
|
|
3276
|
-
.field[data-v-
|
|
3275
|
+
.field[data-v-ac7159ba] {
|
|
3277
3276
|
display: flex;
|
|
3278
3277
|
flex: 1;
|
|
3279
3278
|
min-inline-size: 0;
|
|
3280
3279
|
}
|
|
3281
|
-
.affix[data-v-
|
|
3280
|
+
.affix[data-v-ac7159ba] {
|
|
3282
3281
|
display: inline-flex;
|
|
3283
3282
|
flex: none;
|
|
3284
3283
|
align-items: center;
|
|
@@ -3288,12 +3287,19 @@ svg[data-v-bcedd63e-s] {
|
|
|
3288
3287
|
font-size: var(--ui-font-size-sm);
|
|
3289
3288
|
white-space: nowrap;
|
|
3290
3289
|
}
|
|
3291
|
-
.
|
|
3290
|
+
.action[data-v-ac7159ba] {
|
|
3291
|
+
display: flex;
|
|
3292
|
+
flex: none;
|
|
3293
|
+
align-items: stretch;
|
|
3294
|
+
padding: var(--ui-space-1);
|
|
3295
|
+
}
|
|
3296
|
+
.affix[data-v-ac7159ba]:empty,
|
|
3297
|
+
.action[data-v-ac7159ba]:empty {
|
|
3292
3298
|
display: none;
|
|
3293
3299
|
}
|
|
3294
3300
|
|
|
3295
3301
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
3296
|
-
[data-component~="ui-input-group"][hidden][data-v-
|
|
3302
|
+
[data-component~="ui-input-group"][hidden][data-v-ac7159ba] {
|
|
3297
3303
|
display: none;
|
|
3298
3304
|
}
|
|
3299
3305
|
|
|
@@ -3699,7 +3705,7 @@ svg[data-v-bcedd63e-s] {
|
|
|
3699
3705
|
}
|
|
3700
3706
|
}
|
|
3701
3707
|
|
|
3702
|
-
[data-component~="ui-radio"][data-v-
|
|
3708
|
+
[data-component~="ui-radio"][data-v-f9c61d50] {
|
|
3703
3709
|
display: inline-flex;
|
|
3704
3710
|
align-items: flex-start;
|
|
3705
3711
|
gap: var(--ui-radio-gap, var(--ui-space-2));
|
|
@@ -3707,11 +3713,27 @@ svg[data-v-bcedd63e-s] {
|
|
|
3707
3713
|
color: var(--ui-text-primary);
|
|
3708
3714
|
cursor: pointer;
|
|
3709
3715
|
}
|
|
3710
|
-
|
|
3716
|
+
|
|
3717
|
+
/* The label, and under it an optional line saying what the choice means. */
|
|
3718
|
+
.text[data-v-f9c61d50] {
|
|
3719
|
+
display: flex;
|
|
3720
|
+
flex-direction: column;
|
|
3721
|
+
gap: var(--ui-space-1);
|
|
3722
|
+
min-inline-size: 0;
|
|
3723
|
+
}
|
|
3724
|
+
.label[data-v-f9c61d50] {
|
|
3711
3725
|
min-inline-size: 0;
|
|
3712
3726
|
line-height: var(--ui-line-height-md);
|
|
3713
3727
|
}
|
|
3714
|
-
|
|
3728
|
+
.description[data-v-f9c61d50] {
|
|
3729
|
+
color: var(--ui-text-secondary);
|
|
3730
|
+
font-size: var(--ui-font-size-sm);
|
|
3731
|
+
line-height: var(--ui-line-height);
|
|
3732
|
+
}
|
|
3733
|
+
.description[data-v-f9c61d50]:empty {
|
|
3734
|
+
display: none;
|
|
3735
|
+
}
|
|
3736
|
+
input[data-v-f9c61d50] {
|
|
3715
3737
|
flex: 0 0 auto;
|
|
3716
3738
|
inline-size: var(--ui-radio-size, 1.125rem);
|
|
3717
3739
|
block-size: var(--ui-radio-size, 1.125rem);
|
|
@@ -3719,20 +3741,20 @@ input[data-v-e31949a7] {
|
|
|
3719
3741
|
accent-color: var(--ui-accent-solid);
|
|
3720
3742
|
cursor: pointer;
|
|
3721
3743
|
}
|
|
3722
|
-
input[data-v-
|
|
3744
|
+
input[data-v-f9c61d50]:focus-visible {
|
|
3723
3745
|
outline: 2px solid var(--ui-focus-ring, var(--ui-accent-solid));
|
|
3724
3746
|
outline-offset: 2px;
|
|
3725
3747
|
}
|
|
3726
|
-
[data-component~="ui-radio"][data-ui-radio-state~="disabled"][data-v-
|
|
3748
|
+
[data-component~="ui-radio"][data-ui-radio-state~="disabled"][data-v-f9c61d50] {
|
|
3727
3749
|
color: var(--ui-text-muted);
|
|
3728
3750
|
cursor: not-allowed;
|
|
3729
3751
|
}
|
|
3730
|
-
[data-component~="ui-radio"][data-ui-radio-state~="disabled"] input[data-v-
|
|
3752
|
+
[data-component~="ui-radio"][data-ui-radio-state~="disabled"] input[data-v-f9c61d50] {
|
|
3731
3753
|
cursor: not-allowed;
|
|
3732
3754
|
}
|
|
3733
3755
|
|
|
3734
3756
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
3735
|
-
[data-component~="ui-radio"][hidden][data-v-
|
|
3757
|
+
[data-component~="ui-radio"][hidden][data-v-f9c61d50] {
|
|
3736
3758
|
display: none;
|
|
3737
3759
|
}
|
|
3738
3760
|
|
|
@@ -4569,7 +4591,7 @@ to {
|
|
|
4569
4591
|
display: none;
|
|
4570
4592
|
}
|
|
4571
4593
|
|
|
4572
|
-
[data-component~="ui-switch"][data-v-
|
|
4594
|
+
[data-component~="ui-switch"][data-v-85cb3260] {
|
|
4573
4595
|
display: inline-flex;
|
|
4574
4596
|
align-items: flex-start;
|
|
4575
4597
|
gap: var(--ui-switch-gap, var(--ui-space-2));
|
|
@@ -4577,11 +4599,27 @@ to {
|
|
|
4577
4599
|
color: var(--ui-text-primary);
|
|
4578
4600
|
cursor: pointer;
|
|
4579
4601
|
}
|
|
4580
|
-
|
|
4602
|
+
|
|
4603
|
+
/* The label, and under it an optional line saying what the choice means. */
|
|
4604
|
+
.text[data-v-85cb3260] {
|
|
4605
|
+
display: flex;
|
|
4606
|
+
flex-direction: column;
|
|
4607
|
+
gap: var(--ui-space-1);
|
|
4608
|
+
min-inline-size: 0;
|
|
4609
|
+
}
|
|
4610
|
+
.label[data-v-85cb3260] {
|
|
4581
4611
|
min-inline-size: 0;
|
|
4582
4612
|
line-height: var(--ui-line-height-md);
|
|
4583
4613
|
}
|
|
4584
|
-
|
|
4614
|
+
.description[data-v-85cb3260] {
|
|
4615
|
+
color: var(--ui-text-secondary);
|
|
4616
|
+
font-size: var(--ui-font-size-sm);
|
|
4617
|
+
line-height: var(--ui-line-height);
|
|
4618
|
+
}
|
|
4619
|
+
.description[data-v-85cb3260]:empty {
|
|
4620
|
+
display: none;
|
|
4621
|
+
}
|
|
4622
|
+
input[data-v-85cb3260] {
|
|
4585
4623
|
appearance: none;
|
|
4586
4624
|
-webkit-appearance: none;
|
|
4587
4625
|
position: relative;
|
|
@@ -4599,7 +4637,7 @@ input[data-v-26ab3add] {
|
|
|
4599
4637
|
border-color var(--ui-motion-fast) var(--ui-motion-ease);
|
|
4600
4638
|
margin: 0;
|
|
4601
4639
|
}
|
|
4602
|
-
input[data-v-
|
|
4640
|
+
input[data-v-85cb3260]::after {
|
|
4603
4641
|
content: "";
|
|
4604
4642
|
position: absolute;
|
|
4605
4643
|
top: 3px;
|
|
@@ -4611,35 +4649,35 @@ input[data-v-26ab3add]::after {
|
|
|
4611
4649
|
box-shadow: var(--ui-shadow-xs);
|
|
4612
4650
|
transition: transform var(--ui-motion-fast) var(--ui-motion-ease);
|
|
4613
4651
|
}
|
|
4614
|
-
input[data-v-
|
|
4652
|
+
input[data-v-85cb3260]:checked {
|
|
4615
4653
|
background: var(--ui-accent-solid);
|
|
4616
4654
|
border-color: var(--ui-accent-solid);
|
|
4617
4655
|
}
|
|
4618
|
-
input[data-v-
|
|
4656
|
+
input[data-v-85cb3260]:checked::after {
|
|
4619
4657
|
transform: translateX(1rem);
|
|
4620
4658
|
background: var(--ui-text-on-accent);
|
|
4621
4659
|
}
|
|
4622
|
-
input[data-v-
|
|
4660
|
+
input[data-v-85cb3260]:focus-visible {
|
|
4623
4661
|
outline: 2px solid var(--ui-focus-ring, var(--ui-accent-solid));
|
|
4624
4662
|
outline-offset: 2px;
|
|
4625
4663
|
}
|
|
4626
|
-
[data-component~="ui-switch"][data-ui-switch-state~="disabled"][data-v-
|
|
4664
|
+
[data-component~="ui-switch"][data-ui-switch-state~="disabled"][data-v-85cb3260] {
|
|
4627
4665
|
color: var(--ui-text-muted);
|
|
4628
4666
|
cursor: not-allowed;
|
|
4629
4667
|
}
|
|
4630
|
-
[data-component~="ui-switch"][data-ui-switch-state~="disabled"] input[data-v-
|
|
4668
|
+
[data-component~="ui-switch"][data-ui-switch-state~="disabled"] input[data-v-85cb3260] {
|
|
4631
4669
|
border-color: var(--ui-border-default);
|
|
4632
4670
|
background: var(--ui-control-surface-disabled, var(--ui-surface-muted));
|
|
4633
4671
|
cursor: not-allowed;
|
|
4634
4672
|
}
|
|
4635
4673
|
@media (prefers-reduced-motion: reduce) {
|
|
4636
|
-
input[data-v-
|
|
4674
|
+
input[data-v-85cb3260], input[data-v-85cb3260]::after {
|
|
4637
4675
|
transition: none;
|
|
4638
4676
|
}
|
|
4639
4677
|
}
|
|
4640
4678
|
|
|
4641
4679
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
4642
|
-
[data-component~="ui-switch"][hidden][data-v-
|
|
4680
|
+
[data-component~="ui-switch"][hidden][data-v-85cb3260] {
|
|
4643
4681
|
display: none;
|
|
4644
4682
|
}
|
|
4645
4683
|
|