@threadlabs/looma 0.26.3 → 0.26.5

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.
Files changed (39) hide show
  1. package/components/ui-badge/ui-badge.html +41 -4
  2. package/components/ui-button/ui-button.html +50 -5
  3. package/components/ui-callout/ui-callout.html +2 -1
  4. package/components/ui-icon-button/ui-icon-button.html +35 -7
  5. package/components/ui-input-group/ui-input-group.html +9 -0
  6. package/components/ui-toast/ui-toast.html +13 -7
  7. package/components/ui-toast-region/ui-toast-region.html +18 -7
  8. package/dist/index.js +1 -1
  9. package/package.json +1 -1
  10. package/styles/ui-badge.css +40 -1
  11. package/styles/ui-button.css +53 -5
  12. package/styles/ui-callout.css +2 -1
  13. package/styles/ui-icon-button.css +35 -7
  14. package/styles/ui-input-group.css +6 -0
  15. package/styles/ui-toast-region.css +18 -7
  16. package/styles/ui-toast.css +13 -7
  17. package/vanilla/UiBadge.d.ts +1 -1
  18. package/vanilla/UiBadge.js +1 -1
  19. package/vanilla/UiButton.js +47 -21
  20. package/vanilla/UiInputGroup.d.ts +1 -0
  21. package/vanilla/UiInputGroup.js +4 -4
  22. package/vue/UiBadge.d.ts +3 -3
  23. package/vue/UiBadge.vue +79 -6
  24. package/vue/UiButton.d.ts +6 -2
  25. package/vue/UiButton.vue +56 -6
  26. package/vue/UiCallout.vue +4 -2
  27. package/vue/UiIconButton.vue +40 -7
  28. package/vue/UiInputGroup.d.ts +9 -0
  29. package/vue/UiInputGroup.vue +29 -1
  30. package/vue/UiToast.vue +16 -8
  31. package/vue/UiToastRegion.vue +18 -7
  32. package/vue/chunks/UiBadge.js +3 -2
  33. package/vue/chunks/UiButton.js +15 -5
  34. package/vue/chunks/UiCallout.js +1 -1
  35. package/vue/chunks/UiIconButton.js +1 -1
  36. package/vue/chunks/UiInputGroup.js +29 -4
  37. package/vue/chunks/UiToast.js +1 -1
  38. package/vue/chunks/UiToastRegion.js +1 -1
  39. package/vue/components.css +435 -263
@@ -312,6 +312,10 @@ svg[data-v-abaeb064] {
312
312
  syntax: "*";
313
313
  inherits: false;
314
314
  }
315
+ @property --ui-badge-circle-opacity {
316
+ syntax: "*";
317
+ inherits: false;
318
+ }
315
319
  @property --ui-badge-dot-size {
316
320
  syntax: "*";
317
321
  inherits: false;
@@ -356,7 +360,7 @@ svg[data-v-abaeb064] {
356
360
  syntax: "*";
357
361
  inherits: false;
358
362
  }
359
- [data-component~="ui-badge"][data-v-4d2f1396] {
363
+ [data-component~="ui-badge"][data-v-57826cf9] {
360
364
  --_badge-surface: color-mix(in srgb, var(--ui-surface-subtle) 80%, var(--ui-surface-default));
361
365
  --_badge-text: var(--ui-text-secondary);
362
366
  /* Sit between the soft fill and its stronger theme ink. */
@@ -402,27 +406,27 @@ svg[data-v-abaeb064] {
402
406
 
403
407
  /* A constrained badge keeps its surface intact and ellipsizes only its label. The full
404
408
  text stays in the DOM for accessible names and consumers' selected values. */
405
- .label[data-v-4d2f1396] {
409
+ .label[data-v-57826cf9] {
406
410
  display: block;
407
411
  min-inline-size: 0;
408
412
  overflow: hidden;
409
413
  text-overflow: ellipsis;
410
414
  }
411
- .label[data-v-4d2f1396]:empty {
415
+ .label[data-v-57826cf9]:empty {
412
416
  display: none;
413
417
  }
414
418
 
415
419
  /* Icon content has its own flex item so label ellipsis never clips its strokes. */
416
- .icon[data-v-4d2f1396] {
420
+ .icon[data-v-57826cf9] {
417
421
  display: inline-flex;
418
422
  align-items: center;
419
423
  justify-content: center;
420
424
  flex: none;
421
425
  }
422
- .icon[data-v-4d2f1396]:empty {
426
+ .icon[data-v-57826cf9]:empty {
423
427
  display: none;
424
428
  }
425
- .icon svg[data-v-4d2f1396-s] {
429
+ .icon svg[data-v-57826cf9-s] {
426
430
  display: block;
427
431
  inline-size: 1em;
428
432
  block-size: 1em;
@@ -430,39 +434,39 @@ svg[data-v-abaeb064] {
430
434
  }
431
435
 
432
436
  /* Ordinary icon-plus-text children keep inline ellipsis, with explicit glyph spacing. */
433
- .label svg[data-v-4d2f1396-s] {
437
+ .label svg[data-v-57826cf9-s] {
434
438
  inline-size: 1em;
435
439
  block-size: 1em;
436
440
  vertical-align: middle;
437
441
  margin-inline-end: var(--ui-space-1);
438
442
  }
439
- .label[data-v-4d2f1396]:has(svg) {
443
+ .label[data-v-57826cf9]:has(svg) {
440
444
  text-box-trim: none;
441
445
  }
442
446
 
443
447
  /* Center the capital/baseline text box, while clipping only inline overflow for ellipsis.
444
448
  Vertical ink remains visible so trimming never cuts off ascenders or descenders. */
445
449
  @supports (text-box-trim: trim-both) {
446
- [data-component~="ui-badge"][data-v-4d2f1396] {
450
+ [data-component~="ui-badge"][data-v-57826cf9] {
447
451
  display: inline-block;
448
452
  min-block-size: var(--ui-badge-min-block-size, 1.5rem);
449
453
  text-align: center;
450
454
  align-content: center;
451
455
  text-box-trim: none;
452
456
  }
453
- [data-component~="ui-badge"][data-v-4d2f1396]:has(.icon:not(:empty)),
454
- [data-component~="ui-badge"][data-v-4d2f1396]:has(.label svg) {
457
+ [data-component~="ui-badge"][data-v-57826cf9]:has(.icon:not(:empty)),
458
+ [data-component~="ui-badge"][data-v-57826cf9]:has(.label svg) {
455
459
  display: inline-flex;
456
460
  text-box-trim: none;
457
461
  }
458
- .label[data-v-4d2f1396]:not(:has(svg)) {
462
+ .label[data-v-57826cf9]:not(:has(svg)) {
459
463
  text-box-trim: trim-both;
460
464
  text-box-edge: cap alphabetic;
461
465
  overflow-x: clip;
462
466
  overflow-y: visible;
463
467
  }
464
468
  }
465
- [data-component~="ui-badge"][data-ui-badge-state~="size=xs"][data-v-4d2f1396] {
469
+ [data-component~="ui-badge"][data-ui-badge-state~="size=xs"][data-v-57826cf9] {
466
470
  box-sizing: border-box;
467
471
  min-inline-size: 1rem;
468
472
  min-block-size: var(--ui-badge-min-block-size, 1rem);
@@ -470,52 +474,56 @@ svg[data-v-abaeb064] {
470
474
  font-size: var(--ui-badge-font-size, var(--ui-font-size-2xs));
471
475
  line-height: var(--ui-badge-line-height, 1);
472
476
  }
473
- [data-component~="ui-badge"][data-ui-badge-state~="tone=accent"][data-v-4d2f1396] {
477
+ [data-component~="ui-badge"][data-ui-badge-state~="size=sm"][data-v-57826cf9] {
478
+ font-size: var(--ui-badge-font-size, var(--ui-font-size-2xs));
479
+ line-height: var(--ui-badge-line-height, 1);
480
+ }
481
+ [data-component~="ui-badge"][data-ui-badge-state~="tone=accent"][data-v-57826cf9] {
474
482
  --_badge-surface: var(--ui-accent-strong-surface, var(--ui-accent-solid));
475
483
  --_badge-border: var(--ui-accent-strong-surface, var(--ui-accent-solid));
476
484
  --_badge-text: var(--ui-accent-on-strong, var(--ui-text-on-accent));
477
485
  }
478
- [data-component~="ui-badge"][data-ui-badge-state~="tone=danger"][data-v-4d2f1396] {
486
+ [data-component~="ui-badge"][data-ui-badge-state~="tone=danger"][data-v-57826cf9] {
479
487
  --_badge-surface: var(--ui-danger-strong-surface, var(--ui-danger-solid));
480
488
  --_badge-border: var(--ui-danger-strong-surface, var(--ui-danger-solid));
481
489
  --_badge-text: var(--ui-danger-on-strong, var(--ui-text-on-accent));
482
490
  }
483
- [data-component~="ui-badge"][data-ui-badge-state~="tone=success"][data-v-4d2f1396] {
491
+ [data-component~="ui-badge"][data-ui-badge-state~="tone=success"][data-v-57826cf9] {
484
492
  --_badge-surface: var(--ui-success-strong-surface, var(--ui-success-solid));
485
493
  --_badge-border: var(--ui-success-strong-surface, var(--ui-success-solid));
486
494
  --_badge-text: var(--ui-success-on-strong, var(--ui-text-on-accent));
487
495
  }
488
- [data-component~="ui-badge"][data-ui-badge-state~="tone=warning"][data-v-4d2f1396] {
496
+ [data-component~="ui-badge"][data-ui-badge-state~="tone=warning"][data-v-57826cf9] {
489
497
  --_badge-surface: var(--ui-warning-strong-surface, var(--ui-warning-solid));
490
498
  --_badge-border: var(--ui-warning-strong-surface, var(--ui-warning-solid));
491
499
  --_badge-text: var(--ui-warning-on-strong, var(--ui-text-on-accent));
492
500
  }
493
- [data-component~="ui-badge"][data-ui-badge-state~="tone=info"][data-v-4d2f1396] {
501
+ [data-component~="ui-badge"][data-ui-badge-state~="tone=info"][data-v-57826cf9] {
494
502
  --_badge-surface: var(--ui-info-strong-surface, var(--ui-info-solid));
495
503
  --_badge-border: var(--ui-info-strong-surface, var(--ui-info-solid));
496
504
  --_badge-text: var(--ui-info-on-strong, var(--ui-text-on-accent));
497
505
  }
498
- [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=accent"][data-v-4d2f1396] {
506
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=accent"][data-v-57826cf9] {
499
507
  --_badge-surface: color-mix(in srgb, var(--ui-accent-solid) 19%, var(--ui-surface-default));
500
508
  --_badge-border: color-mix(in srgb, var(--ui-accent-solid) 25%, var(--ui-surface-default));
501
509
  --_badge-text: var(--ui-accent-subtle-text, var(--ui-accent-solid));
502
510
  }
503
- [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=danger"][data-v-4d2f1396] {
511
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=danger"][data-v-57826cf9] {
504
512
  --_badge-surface: color-mix(in srgb, var(--ui-danger-solid) 19%, var(--ui-surface-default));
505
513
  --_badge-border: color-mix(in srgb, var(--ui-danger-solid) 25%, var(--ui-surface-default));
506
514
  --_badge-text: var(--ui-danger-subtle-text, var(--ui-danger-solid));
507
515
  }
508
- [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=success"][data-v-4d2f1396] {
516
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=success"][data-v-57826cf9] {
509
517
  --_badge-surface: color-mix(in srgb, var(--ui-success-solid) 19%, var(--ui-surface-default));
510
518
  --_badge-border: color-mix(in srgb, var(--ui-success-solid) 25%, var(--ui-surface-default));
511
519
  --_badge-text: var(--ui-success-subtle-text, var(--ui-success-solid));
512
520
  }
513
- [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=warning"][data-v-4d2f1396] {
521
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=warning"][data-v-57826cf9] {
514
522
  --_badge-surface: color-mix(in srgb, var(--ui-warning-solid) 19%, var(--ui-surface-default));
515
523
  --_badge-border: color-mix(in srgb, var(--ui-warning-solid) 25%, var(--ui-surface-default));
516
524
  --_badge-text: var(--ui-warning-subtle-text, var(--ui-warning-solid));
517
525
  }
518
- [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=info"][data-v-4d2f1396] {
526
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=info"][data-v-57826cf9] {
519
527
  --_badge-surface: color-mix(in srgb, var(--ui-info-solid) 19%, var(--ui-surface-default));
520
528
  --_badge-border: color-mix(in srgb, var(--ui-info-solid) 25%, var(--ui-surface-default));
521
529
  --_badge-text: var(--ui-info-subtle-text, var(--ui-info-solid));
@@ -523,7 +531,7 @@ svg[data-v-abaeb064] {
523
531
 
524
532
  /* A solid colour fills with the ink. Its text is the page surface, mixed at 0% only so that it too is
525
533
  invalid while the hook is unset. */
526
- [data-component~="ui-badge"][data-ui-badge-state~="variant=solid"][data-v-4d2f1396] {
534
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=solid"][data-v-57826cf9] {
527
535
  --_badge-color-surface: var(--_badge-color-ink);
528
536
  --_badge-color-border: var(--_badge-color-ink);
529
537
  --_badge-color-text: color-mix(in oklab, var(--_ui-badge-color) 0%, var(--ui-surface-default));
@@ -531,7 +539,7 @@ svg[data-v-abaeb064] {
531
539
 
532
540
  /* A translucent inverse surface picks up its filled control's tone. Deepen the tone ink
533
541
  toward the theme text to retain contrast against that composed surface. */
534
- [data-component~="ui-badge"][data-ui-badge-state~="variant=inverse"][data-v-4d2f1396] {
542
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=inverse"][data-v-57826cf9] {
535
543
  --_badge-color-surface: color-mix(
536
544
  in srgb,
537
545
  color-mix(in oklab, var(--_ui-badge-color) 0%, var(--ui-surface-default)) 88%,
@@ -554,16 +562,81 @@ svg[data-v-abaeb064] {
554
562
  /* Paint each translucent layer once, including the border, without a bright double-painted ring. */
555
563
  background-clip: padding-box;
556
564
  }
557
- [data-component~="ui-badge"][data-ui-badge-state~="variant=inverse"][data-ui-badge-state~="shape=circle"][data-v-4d2f1396] {
558
- box-shadow: var(--ui-shadow-sm);
565
+
566
+ /* A circular count has a tone-tinted surface, a separate lighter rim and readable tone ink.
567
+ Dark controls retain a shaded surface and theme ink with a quieter rim. */
568
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=inverse"][data-ui-badge-state~="shape=circle"][data-v-57826cf9] {
569
+ --_badge-color-surface: light-dark(
570
+ color-mix(
571
+ in srgb,
572
+ color-mix(in oklab, var(--_ui-badge-color) 0%, var(--ui-surface-default)) var(
573
+ --ui-badge-circle-opacity,
574
+ 66%
575
+ ),
576
+ transparent
577
+ ),
578
+ color-mix(
579
+ in srgb,
580
+ color-mix(in oklab, var(--_ui-badge-color) 0%, var(--ui-surface-default)) var(
581
+ --ui-badge-circle-opacity,
582
+ 56%
583
+ ),
584
+ transparent
585
+ )
586
+ );
587
+ --_badge-color-border: light-dark(
588
+ color-mix(
589
+ in srgb,
590
+ color-mix(in oklab, var(--_ui-badge-color) 0%, var(--ui-surface-default)) 88%,
591
+ transparent
592
+ ),
593
+ color-mix(
594
+ in srgb,
595
+ color-mix(in oklab, var(--_ui-badge-color) 0%, var(--ui-surface-default)) 44%,
596
+ transparent
597
+ )
598
+ );
599
+ --_badge-color-text: light-dark(
600
+ color-mix(in srgb, var(--_badge-color-ink) 65%, var(--ui-text-primary)),
601
+ color-mix(in oklab, var(--_ui-badge-color) 0%, var(--ui-text-primary))
602
+ );
603
+ --_badge-count-surface: light-dark(
604
+ color-mix(in srgb, var(--_badge-text) var(--ui-badge-circle-opacity, 66%), transparent),
605
+ color-mix(in srgb, var(--_badge-text) var(--ui-badge-circle-opacity, 56%), transparent)
606
+ );
607
+ --_badge-outline-surface: var(
608
+ --ui-badge-surface,
609
+ var(--_badge-color-surface, var(--_badge-count-surface))
610
+ );
611
+ border-color: var(
612
+ --ui-badge-border,
613
+ var(
614
+ --_badge-color-border,
615
+ light-dark(
616
+ color-mix(in srgb, var(--_badge-text) 88%, transparent),
617
+ color-mix(in srgb, var(--_badge-text) 44%, transparent)
618
+ )
619
+ )
620
+ );
621
+ color: var(
622
+ --ui-badge-text,
623
+ var(
624
+ --_badge-color-text,
625
+ light-dark(
626
+ color-mix(in srgb, var(--_badge-surface) 65%, var(--ui-text-primary)),
627
+ var(--ui-text-primary)
628
+ )
629
+ )
630
+ );
631
+ box-shadow: 0 1px 1px light-dark(rgb(0 0 0 / 0.08), rgb(0 0 0 / 0.12));
559
632
  }
560
633
 
561
634
  /* Neutral reverses a subtle surface/ink pair rather than a strong tone. Keep its original
562
635
  surface ink: moving it toward dark-theme primary text would reduce overlay contrast. */
563
- [data-component~="ui-badge"][data-ui-badge-state~="variant=inverse"][data-ui-badge-state~="tone=neutral"][data-v-4d2f1396] {
636
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=inverse"][data-ui-badge-state~="tone=neutral"][data-v-57826cf9] {
564
637
  color: var(--ui-badge-text, var(--_badge-color-text, var(--_badge-surface)));
565
638
  }
566
- [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-v-4d2f1396] {
639
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-v-57826cf9] {
567
640
  --_badge-surface: var(--ui-surface-default);
568
641
  --_badge-border: var(--ui-border-strong);
569
642
  --_badge-text: var(--ui-text-secondary);
@@ -571,29 +644,29 @@ svg[data-v-abaeb064] {
571
644
  --_badge-color-surface: initial;
572
645
  --_badge-color-border: var(--_badge-color-ink);
573
646
  }
574
- [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=accent"][data-v-4d2f1396] {
647
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=accent"][data-v-57826cf9] {
575
648
  --_badge-border: var(--ui-accent-solid);
576
649
  --_badge-text: var(--ui-accent-subtle-text, var(--ui-accent-solid));
577
650
  }
578
- [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=danger"][data-v-4d2f1396] {
651
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=danger"][data-v-57826cf9] {
579
652
  --_badge-border: var(--ui-danger-solid);
580
653
  --_badge-text: var(--ui-danger-subtle-text, var(--ui-danger-solid));
581
654
  }
582
- [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=success"][data-v-4d2f1396] {
655
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=success"][data-v-57826cf9] {
583
656
  --_badge-border: var(--ui-success-solid);
584
657
  --_badge-text: var(--ui-success-subtle-text, var(--ui-success-solid));
585
658
  }
586
- [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=warning"][data-v-4d2f1396] {
659
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=warning"][data-v-57826cf9] {
587
660
  --_badge-border: var(--ui-warning-solid);
588
661
  --_badge-text: var(--ui-warning-subtle-text, var(--ui-warning-solid));
589
662
  }
590
- [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=info"][data-v-4d2f1396] {
663
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=info"][data-v-57826cf9] {
591
664
  --_badge-border: var(--ui-info-solid);
592
665
  --_badge-text: var(--ui-info-subtle-text, var(--ui-info-solid));
593
666
  }
594
667
 
595
668
  /* An icon mark keeps the existing tone recipe and follows the global spacing and radius. */
596
- [data-component~="ui-badge"][data-ui-badge-state~="shape=square"][data-v-4d2f1396] {
669
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=square"][data-v-57826cf9] {
597
670
  --_badge-square-size: var(--ui-badge-square-size, calc(var(--ui-space-4) * 2));
598
671
  display: inline-flex;
599
672
  box-sizing: border-box;
@@ -606,29 +679,29 @@ svg[data-v-abaeb064] {
606
679
  border-radius: var(--ui-radius-md);
607
680
  text-box-trim: none;
608
681
  }
609
- [data-component~="ui-badge"][data-ui-badge-state~="shape=square"][data-ui-badge-state~="size=xs"][data-v-4d2f1396] {
682
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=square"][data-ui-badge-state~="size=xs"][data-v-57826cf9] {
610
683
  --_badge-square-size: var(--ui-badge-square-size, calc(var(--ui-space-3) * 2));
611
684
  }
612
- [data-component~="ui-badge"][data-ui-badge-state~="shape=square"][data-ui-badge-state~="size=lg"][data-v-4d2f1396] {
685
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=square"][data-ui-badge-state~="size=lg"][data-v-57826cf9] {
613
686
  --_badge-square-size: var(
614
687
  --ui-badge-square-size,
615
688
  calc(var(--ui-space-4) * 2 + var(--ui-space-2))
616
689
  );
617
690
  }
618
- [data-component~="ui-badge"][data-ui-badge-state~="shape=square"] .label[data-v-4d2f1396] {
691
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=square"] .label[data-v-57826cf9] {
619
692
  display: inline-flex;
620
693
  align-items: center;
621
694
  justify-content: center;
622
695
  }
623
- [data-component~="ui-badge"][data-ui-badge-state~="shape=square"] .label svg[data-v-4d2f1396-s] {
696
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=square"] .label svg[data-v-57826cf9-s] {
624
697
  margin-inline-end: 0;
625
698
  }
626
- [data-component~="ui-badge"][data-ui-badge-state~="shape=square"] .label[data-v-4d2f1396]:empty {
699
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=square"] .label[data-v-57826cf9]:empty {
627
700
  display: none;
628
701
  }
629
702
 
630
703
  /* A visible glyph needs fixed geometry, unlike a content-sized pill or a hidden-label dot. */
631
- [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"][data-v-4d2f1396] {
704
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"][data-v-57826cf9] {
632
705
  --_badge-circle-size: var(--ui-badge-circle-size, calc(var(--ui-space-3) * 2));
633
706
  display: inline-flex;
634
707
  flex: none;
@@ -640,31 +713,31 @@ svg[data-v-abaeb064] {
640
713
  border-radius: var(--ui-radius-round);
641
714
  text-box-trim: none;
642
715
  }
643
- [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"][data-ui-badge-state~="size=xs"][data-v-4d2f1396] {
716
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"][data-ui-badge-state~="size=xs"][data-v-57826cf9] {
644
717
  --_badge-circle-size: var(--ui-badge-circle-size, var(--ui-space-4));
645
718
  }
646
- [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"][data-ui-badge-state~="size=lg"][data-v-4d2f1396] {
719
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"][data-ui-badge-state~="size=lg"][data-v-57826cf9] {
647
720
  --_badge-circle-size: var(--ui-badge-circle-size, calc(var(--ui-space-4) * 2));
648
721
  }
649
- [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"] .label[data-v-4d2f1396] {
722
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"] .label[data-v-57826cf9] {
650
723
  display: inline-flex;
651
724
  align-items: center;
652
725
  justify-content: center;
653
726
  line-height: 1;
654
727
  text-box-trim: none;
655
728
  }
656
- [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"] .label svg[data-v-4d2f1396-s] {
729
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"] .label svg[data-v-57826cf9-s] {
657
730
  margin-inline-end: 0;
658
731
  }
659
- [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"] .label[data-v-4d2f1396]:empty {
732
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"] .label[data-v-57826cf9]:empty {
660
733
  display: none;
661
734
  }
662
735
 
663
736
  /* Center capital and numeral ink, rather than the font's ascent/descent line box.
664
737
  Icon labels retain flex geometry; untrimmed browsers keep that fallback too. */
665
738
  @supports (text-box-trim: trim-both) {
666
- [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"] .label[data-v-4d2f1396]:not(:has(svg)),
667
- [data-component~="ui-badge"][data-ui-badge-state~="shape=square"] .label[data-v-4d2f1396]:not(:has(svg)) {
739
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"] .label[data-v-57826cf9]:not(:has(svg)),
740
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=square"] .label[data-v-57826cf9]:not(:has(svg)) {
668
741
  display: block;
669
742
  text-box-trim: trim-both;
670
743
  text-box-edge: cap alphabetic;
@@ -673,7 +746,7 @@ svg[data-v-abaeb064] {
673
746
  }
674
747
 
675
748
  /* A dot uses the badge's tone recipe; only its silhouette and visible label change. */
676
- [data-component~="ui-badge"][data-ui-badge-state~="shape=dot"][data-v-4d2f1396] {
749
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=dot"][data-v-57826cf9] {
677
750
  position: relative;
678
751
  box-sizing: border-box;
679
752
  flex: none;
@@ -685,7 +758,7 @@ svg[data-v-abaeb064] {
685
758
  border-radius: var(--ui-radius-round);
686
759
  text-box-trim: none;
687
760
  }
688
- [data-component~="ui-badge"][data-ui-badge-state~="shape=dot"] .label[data-v-4d2f1396] {
761
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=dot"] .label[data-v-57826cf9] {
689
762
  position: absolute;
690
763
  inline-size: 1px;
691
764
  block-size: 1px;
@@ -696,7 +769,7 @@ svg[data-v-abaeb064] {
696
769
 
697
770
  /* The clipped point needs an inset surface over an outer border-colour shape: a native border
698
771
  has no diagonal edge to follow. Keep this edge for every tag variant. */
699
- [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-4d2f1396] {
772
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-57826cf9] {
700
773
  --_badge-point: var(--ui-badge-point, var(--ui-space-2));
701
774
 
702
775
  position: relative;
@@ -713,7 +786,7 @@ svg[data-v-abaeb064] {
713
786
  0 100%
714
787
  );
715
788
  }
716
- [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-4d2f1396]::before {
789
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-57826cf9]::before {
717
790
  content: "";
718
791
  position: absolute;
719
792
  inset: 0;
@@ -728,37 +801,37 @@ svg[data-v-abaeb064] {
728
801
  );
729
802
  pointer-events: none;
730
803
  }
731
- [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-ui-badge-state~="variant=inverse"][data-v-4d2f1396] {
804
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-ui-badge-state~="variant=inverse"][data-v-57826cf9] {
732
805
  background: var(--ui-badge-border, var(--_badge-color-border, var(--_badge-text)));
733
806
  }
734
- [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-4d2f1396]:dir(rtl) {
807
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-57826cf9]:dir(rtl) {
735
808
  padding-inline-end: var(--ui-badge-padding-inline, var(--ui-space-2));
736
809
  padding-inline-start: calc(
737
810
  var(--ui-badge-padding-inline, var(--ui-space-2)) + var(--_badge-point)
738
811
  );
739
812
  clip-path: polygon(var(--_badge-point) 0, 100% 0, 100% 100%, var(--_badge-point) 100%, 0 50%);
740
813
  }
741
- [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-4d2f1396]:dir(rtl)::before {
814
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-57826cf9]:dir(rtl)::before {
742
815
  clip-path: polygon(var(--_badge-point) 0, 100% 0, 100% 100%, var(--_badge-point) 100%, 0 50%);
743
816
  }
744
817
  @media (forced-colors: active) {
745
- [data-component~="ui-badge"][data-ui-badge-state~="shape=dot"][data-v-4d2f1396] {
818
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=dot"][data-v-57826cf9] {
746
819
  forced-color-adjust: none;
747
820
  border-color: CanvasText;
748
821
  background: CanvasText;
749
822
  }
750
- [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-4d2f1396] {
823
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-57826cf9] {
751
824
  forced-color-adjust: none;
752
825
  background: CanvasText;
753
826
  color: CanvasText;
754
827
  }
755
- [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-4d2f1396]::before {
828
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-57826cf9]::before {
756
829
  background: Canvas;
757
830
  }
758
831
  }
759
832
 
760
833
  /* A component that sets its display still honours the hidden attribute on its root. */
761
- [data-component~="ui-badge"][hidden][data-v-4d2f1396] {
834
+ [data-component~="ui-badge"][hidden][data-v-57826cf9] {
762
835
  display: none;
763
836
  }
764
837
 
@@ -968,7 +1041,22 @@ svg[data-v-6551ff4d],
968
1041
  syntax: "*";
969
1042
  inherits: false;
970
1043
  }
971
- [data-component~="ui-button"][data-v-37d5b9a2] {
1044
+ [data-component~="ui-button"][data-v-e56c4e01] {
1045
+ /* Optional inherited action-group values keep text and icon actions under the same light.
1046
+ One fine top/start highlight follows the bottom/end lowlight at a joined action seam.
1047
+ A single ambient lift avoids stacking a face gradient or another inset bevel. */
1048
+ --_ui-action-start: 1px;
1049
+ --_ui-action-edge: var(
1050
+ --ui-action-edge,
1051
+ inset var(--_ui-action-start) 1px 0 light-dark(
1052
+ rgb(255 255 255 / 0.08),
1053
+ rgb(255 255 255 / 0.06)
1054
+ ),
1055
+ inset calc(-1 * var(--_ui-action-start)) -1px 0 light-dark(rgb(0 0 0 / 0.08), rgb(0 0 0 / 0.08))
1056
+ );
1057
+ --_ui-action-shadow:
1058
+ var(--_ui-action-edge),
1059
+ 0 1px 2px light-dark(rgb(0 0 0 / 0.10), rgb(0 0 0 / 0.20));
972
1060
  --_hue: var(--ui-accent);
973
1061
  --_hue-hover: var(--ui-accent-hover);
974
1062
  --_hue-active: var(--ui-accent-active);
@@ -988,15 +1076,18 @@ svg[data-v-6551ff4d],
988
1076
  vertical-align: middle;
989
1077
  color: var(--_tone-text);
990
1078
  }
991
- [data-component~="ui-button"][data-ui-button-state~="align=start"][data-v-37d5b9a2] {
1079
+ [data-component~="ui-button"][data-v-e56c4e01]:dir(rtl) {
1080
+ --_ui-action-start: -1px;
1081
+ }
1082
+ [data-component~="ui-button"][data-ui-button-state~="align=start"][data-v-e56c4e01] {
992
1083
  justify-content: flex-start;
993
1084
  text-align: start;
994
1085
  }
995
- [data-component~="ui-button"][data-ui-button-state~="stretch"][data-v-37d5b9a2] {
1086
+ [data-component~="ui-button"][data-ui-button-state~="stretch"][data-v-e56c4e01] {
996
1087
  display: flex;
997
1088
  inline-size: 100%;
998
1089
  }
999
- [data-component~="ui-button"][data-v-37d5b9a2] {
1090
+ [data-component~="ui-button"][data-v-e56c4e01] {
1000
1091
  appearance: none;
1001
1092
  min-block-size: var(--ui-button-min-block-size, var(--ui-control-size-md));
1002
1093
  border-style: solid;
@@ -1012,8 +1103,8 @@ svg[data-v-6551ff4d],
1012
1103
  white-space: var(--ui-button-white-space, inherit);
1013
1104
  line-height: var(--ui-line-height-tight);
1014
1105
  padding: var(--ui-space-2) var(--ui-space-3);
1015
- background-image: var(--ui-raised-highlight);
1016
- box-shadow: var(--ui-button-shadow, var(--ui-raised));
1106
+ background-image: none;
1107
+ box-shadow: var(--ui-button-shadow, var(--ui-action-shadow, var(--_ui-action-shadow)));
1017
1108
  cursor: pointer;
1018
1109
  transition:
1019
1110
  background-color var(--ui-motion-fast) var(--ui-motion-ease),
@@ -1024,34 +1115,48 @@ svg[data-v-6551ff4d],
1024
1115
  }
1025
1116
 
1026
1117
  /* An anchor keeps the boxed button look even when an app styles ordinary links. */
1027
- [data-component~="ui-button"][data-v-37d5b9a2]:is(a) {
1118
+ [data-component~="ui-button"][data-v-e56c4e01]:is(a) {
1028
1119
  text-decoration: none;
1029
1120
  }
1030
- .spinner-wrap[data-v-37d5b9a2] {
1121
+ .spinner-wrap[data-v-e56c4e01] {
1031
1122
  display: inline-flex;
1032
1123
  flex: none;
1033
1124
  vertical-align: middle;
1034
1125
  }
1126
+
1127
+ /* A count is an adornment, not another line of label text. Keep the standard control height
1128
+ with enough inset for a 24px mark; large content can still grow the button naturally. */
1129
+ [data-component~="ui-button"][data-v-e56c4e01]:not([variant="link"]):has(.badge:not(:empty)) {
1130
+ padding-block: var(--ui-space-0-5);
1131
+ }
1132
+ .badge[data-v-e56c4e01] {
1133
+ display: inline-flex;
1134
+ align-items: center;
1135
+ flex: none;
1136
+ }
1137
+ .badge[data-v-e56c4e01]:empty {
1138
+ display: none;
1139
+ }
1035
1140
  @supports (text-box-trim: trim-both) {
1036
- [data-component~="ui-button"][data-v-37d5b9a2] {
1141
+ [data-component~="ui-button"][data-v-e56c4e01] {
1037
1142
  text-box-trim: trim-both;
1038
1143
  text-box-edge: cap alphabetic;
1039
1144
  }
1040
1145
  }
1041
- [data-component~="ui-button"][data-ui-button-state~="size=xs"][data-v-37d5b9a2] {
1146
+ [data-component~="ui-button"][data-ui-button-state~="size=xs"][data-v-e56c4e01] {
1042
1147
  min-block-size: 1.5rem;
1043
1148
  padding: calc(var(--ui-space-0-5) * 1.5) calc(var(--ui-space-1) * 1.25);
1044
1149
  font-size: var(--ui-font-size-xs);
1045
1150
  }
1046
- [data-component~="ui-button"][data-ui-button-state~="shape=pill"][data-v-37d5b9a2] {
1151
+ [data-component~="ui-button"][data-ui-button-state~="shape=pill"][data-v-e56c4e01] {
1047
1152
  border-radius: var(--ui-button-radius, var(--ui-radius-round));
1048
1153
  }
1049
- [data-component~="ui-button"][data-ui-button-state~="size=sm"][data-v-37d5b9a2] {
1154
+ [data-component~="ui-button"][data-ui-button-state~="size=sm"][data-v-e56c4e01] {
1050
1155
  min-block-size: var(--ui-control-size-sm);
1051
1156
  padding: var(--ui-space-1) var(--ui-space-2);
1052
1157
  font-size: var(--ui-font-size-sm);
1053
1158
  }
1054
- [data-component~="ui-button"][data-ui-button-state~="size=lg"][data-v-37d5b9a2] {
1159
+ [data-component~="ui-button"][data-ui-button-state~="size=lg"][data-v-e56c4e01] {
1055
1160
  min-block-size: var(--ui-control-size-lg);
1056
1161
  padding: var(--ui-space-3) var(--ui-space-4);
1057
1162
  font-size: var(--ui-font-size-md);
@@ -1059,7 +1164,7 @@ svg[data-v-6551ff4d],
1059
1164
 
1060
1165
  /* Card actions inherit Button's palette and behavior; only their shared layout changes.
1061
1166
  The icon may contain any decorative composition. Empty icons remove their column. */
1062
- [data-component~="ui-button"][data-ui-button-state~="variant=card"][data-v-37d5b9a2] {
1167
+ [data-component~="ui-button"][data-ui-button-state~="variant=card"][data-v-e56c4e01] {
1063
1168
  display: grid;
1064
1169
  grid-template-columns: auto minmax(0, 1fr) auto;
1065
1170
  align-content: center;
@@ -1072,23 +1177,23 @@ svg[data-v-6551ff4d],
1072
1177
  box-shadow: none;
1073
1178
  background-image: none;
1074
1179
  }
1075
- [data-component~="ui-button"][data-ui-button-state~="variant=card"][data-ui-button-state~="size=lg"][data-v-37d5b9a2] {
1180
+ [data-component~="ui-button"][data-ui-button-state~="variant=card"][data-ui-button-state~="size=lg"][data-v-e56c4e01] {
1076
1181
  min-block-size: max(var(--ui-control-min-block-size), var(--ui-control-size-lg));
1077
1182
  }
1078
- [data-component~="ui-button"][data-ui-button-state~="variant=card"][data-v-37d5b9a2]:has(.card-icon:empty) {
1183
+ [data-component~="ui-button"][data-ui-button-state~="variant=card"][data-v-e56c4e01]:has(.card-icon:empty) {
1079
1184
  grid-template-columns: minmax(0, 1fr) auto;
1080
1185
  }
1081
- .card-icon[data-v-37d5b9a2] {
1186
+ .card-icon[data-v-e56c4e01] {
1082
1187
  display: flex;
1083
1188
  align-items: flex-start;
1084
1189
  }
1085
- .card-icon[data-v-37d5b9a2]:empty {
1190
+ .card-icon[data-v-e56c4e01]:empty {
1086
1191
  display: none;
1087
1192
  }
1088
- .card-content[data-v-37d5b9a2] {
1193
+ .card-content[data-v-e56c4e01] {
1089
1194
  min-inline-size: 0;
1090
1195
  }
1091
- .card-action[data-v-37d5b9a2] {
1196
+ .card-action[data-v-e56c4e01] {
1092
1197
  display: flex;
1093
1198
  align-items: center;
1094
1199
  align-self: center;
@@ -1096,29 +1201,37 @@ svg[data-v-6551ff4d],
1096
1201
 
1097
1202
  /* A link is never :enabled, so interactive states test "not unavailable" instead: for a button that
1098
1203
  is exactly :enabled, at the same specificity, and it also matches a link that can be followed. */
1099
- [data-component~="ui-button"][data-v-37d5b9a2]:hover:not(:disabled, [aria-disabled="true"]) {
1204
+ [data-component~="ui-button"][data-v-e56c4e01]:hover:not(:disabled, [aria-disabled="true"]) {
1100
1205
  border-color: var(--ui-button-hover-border, var(--_tone-hover));
1101
1206
  background-color: var(--ui-button-hover-surface, oklch(from var(--_tone) l c h / 12%));
1102
1207
  }
1103
1208
 
1209
+ /* A neutral card encloses content quietly; ordinary outlines keep their action-tone edge. */
1210
+ [data-component~="ui-button"][data-ui-button-state~="variant=card"][data-ui-button-state~="tone=neutral"][data-v-e56c4e01] {
1211
+ border-color: var(--ui-button-border, var(--ui-border));
1212
+ }
1213
+ [data-component~="ui-button"][data-ui-button-state~="variant=card"][data-ui-button-state~="tone=neutral"][data-v-e56c4e01]:hover:not(:disabled, [aria-disabled="true"]) {
1214
+ border-color: var(--ui-button-hover-border, var(--ui-border-strong));
1215
+ }
1216
+
1104
1217
  /* Pressed reads as pressed in: the highlight goes, and the shadow moves inside. */
1105
- [data-component~="ui-button"][data-v-37d5b9a2]:active:not(:disabled, [aria-disabled="true"]) {
1218
+ [data-component~="ui-button"][data-v-e56c4e01]:active:not(:disabled, [aria-disabled="true"]) {
1106
1219
  background-color: var(--ui-button-active-surface, oklch(from var(--_tone) l c h / 18%));
1107
1220
  background-image: none;
1108
1221
  box-shadow: var(--ui-pressed);
1109
1222
  }
1110
- [data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-37d5b9a2],
1111
- [data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-37d5b9a2] {
1223
+ [data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-e56c4e01],
1224
+ [data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-e56c4e01] {
1112
1225
  border-color: var(--_tone);
1113
1226
  background-color: var(--_tone);
1114
1227
  color: var(--_on-tone);
1115
- box-shadow: var(--ui-button-solid-shadow, var(--ui-raised));
1228
+ box-shadow: var(--ui-button-solid-shadow, var(--ui-action-shadow, var(--_ui-action-shadow)));
1116
1229
  }
1117
- :is([data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-37d5b9a2], [data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-37d5b9a2]):hover:not(:disabled, [aria-disabled="true"]) {
1230
+ :is([data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-e56c4e01], [data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-e56c4e01]):hover:not(:disabled, [aria-disabled="true"]) {
1118
1231
  background-color: var(--_tone-hover);
1119
1232
  border-color: var(--_tone-hover);
1120
1233
  }
1121
- :is([data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-37d5b9a2], [data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-37d5b9a2]):active:not(:disabled, [aria-disabled="true"]) {
1234
+ :is([data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-e56c4e01], [data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-e56c4e01]):active:not(:disabled, [aria-disabled="true"]) {
1122
1235
  background-color: var(--_tone-active);
1123
1236
  border-color: var(--_tone-active);
1124
1237
  background-image: none;
@@ -1127,43 +1240,43 @@ svg[data-v-6551ff4d],
1127
1240
 
1128
1241
  /* Tone is the colour, variant is the volume. Every pairing works: a danger outline is a
1129
1242
  destructive secondary action, not a special case. */
1130
- [data-component~="ui-button"][data-ui-button-state~="tone=neutral"][data-v-37d5b9a2] {
1243
+ [data-component~="ui-button"][data-ui-button-state~="tone=neutral"][data-v-e56c4e01] {
1131
1244
  --_hue: var(--ui-text);
1132
1245
  --_hue-hover: var(--ui-text);
1133
1246
  --_hue-active: var(--ui-text);
1134
1247
  --_hue-text: var(--ui-text);
1135
1248
  --_on-hue: var(--ui-surface);
1136
1249
  }
1137
- [data-component~="ui-button"][data-ui-button-state~="tone=danger"][data-v-37d5b9a2],
1138
- [data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-37d5b9a2] {
1250
+ [data-component~="ui-button"][data-ui-button-state~="tone=danger"][data-v-e56c4e01],
1251
+ [data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-e56c4e01] {
1139
1252
  --_hue: var(--ui-danger);
1140
1253
  --_hue-hover: var(--ui-danger-hover);
1141
1254
  --_hue-active: var(--ui-danger-hover);
1142
1255
  --_hue-text: var(--ui-danger-hover);
1143
1256
  --_on-hue: var(--ui-on-danger);
1144
1257
  }
1145
- [data-component~="ui-button"][data-ui-button-state~="tone=success"][data-v-37d5b9a2] {
1258
+ [data-component~="ui-button"][data-ui-button-state~="tone=success"][data-v-e56c4e01] {
1146
1259
  --_hue: var(--ui-success);
1147
1260
  --_hue-hover: color-mix(in srgb, var(--ui-success) 85%, #000);
1148
1261
  --_hue-active: color-mix(in srgb, var(--ui-success) 75%, #000);
1149
1262
  --_hue-text: color-mix(in srgb, var(--ui-success) 85%, #000);
1150
1263
  --_on-hue: var(--ui-surface);
1151
1264
  }
1152
- [data-component~="ui-button"][data-ui-button-state~="tone=warning"][data-v-37d5b9a2] {
1265
+ [data-component~="ui-button"][data-ui-button-state~="tone=warning"][data-v-e56c4e01] {
1153
1266
  --_hue: var(--ui-warning);
1154
1267
  --_hue-hover: color-mix(in srgb, var(--ui-warning) 85%, #000);
1155
1268
  --_hue-active: color-mix(in srgb, var(--ui-warning) 75%, #000);
1156
1269
  --_hue-text: color-mix(in srgb, var(--ui-warning) 85%, #000);
1157
1270
  --_on-hue: var(--ui-surface);
1158
1271
  }
1159
- [data-component~="ui-button"][data-ui-button-state~="tone=info"][data-v-37d5b9a2] {
1272
+ [data-component~="ui-button"][data-ui-button-state~="tone=info"][data-v-e56c4e01] {
1160
1273
  --_hue: var(--ui-info);
1161
1274
  --_hue-hover: color-mix(in srgb, var(--ui-info) 85%, #000);
1162
1275
  --_hue-active: color-mix(in srgb, var(--ui-info) 75%, #000);
1163
1276
  --_hue-text: color-mix(in srgb, var(--ui-info) 85%, #000);
1164
1277
  --_on-hue: var(--ui-surface);
1165
1278
  }
1166
- [data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-37d5b9a2] {
1279
+ [data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-e56c4e01] {
1167
1280
  border-color: transparent;
1168
1281
  background: transparent;
1169
1282
  box-shadow: none;
@@ -1171,14 +1284,14 @@ svg[data-v-6551ff4d],
1171
1284
  }
1172
1285
 
1173
1286
  /* Tints derive from the text colour, not a surface token, so hover and press show on any background. */
1174
- [data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-37d5b9a2]:hover:not(:disabled, [aria-disabled="true"]) {
1287
+ [data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-e56c4e01]:hover:not(:disabled, [aria-disabled="true"]) {
1175
1288
  background-color: var(--ui-button-ghost-hover-surface, oklch(from var(--_tone) l c h / 10%));
1176
1289
  border-color: transparent;
1177
1290
  }
1178
1291
 
1179
1292
  /* Pressed, or holding its menu open, a ghost button sinks slightly: a light surface with a faint
1180
1293
  edge and a soft inner shadow. Lighter than hover, so an open menu's trigger never reads as heavy. */
1181
- [data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-37d5b9a2]:is(:active, [aria-expanded="true"]):not(:disabled, [aria-disabled="true"]) {
1294
+ [data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-e56c4e01]:is(:active, [aria-expanded="true"]):not(:disabled, [aria-disabled="true"]) {
1182
1295
  background-color: var(
1183
1296
  --ui-button-ghost-active-surface,
1184
1297
  color-mix(in oklch, var(--ui-surface), var(--_tone) 3%)
@@ -1190,21 +1303,24 @@ svg[data-v-6551ff4d],
1190
1303
  }
1191
1304
 
1192
1305
  /* A soft halo that transitions in with the other box-shadow changes, layered on the raised shadow. */
1193
- [data-component~="ui-button"][data-v-37d5b9a2]:focus-visible {
1306
+ [data-component~="ui-button"][data-v-e56c4e01]:focus-visible {
1194
1307
  outline: none;
1195
1308
  box-shadow:
1196
- var(--ui-button-shadow, var(--ui-raised)),
1309
+ var(--ui-button-shadow, var(--ui-action-shadow, var(--_ui-action-shadow))),
1197
1310
  var(--ui-focus-halo);
1198
1311
  }
1199
- [data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-37d5b9a2]:focus-visible {
1312
+ [data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-e56c4e01]:focus-visible {
1200
1313
  box-shadow:
1201
- var(--ui-button-solid-shadow, var(--ui-raised)),
1314
+ var(--ui-button-solid-shadow, var(--ui-action-shadow, var(--_ui-action-shadow))),
1202
1315
  var(--ui-focus-halo);
1203
1316
  }
1317
+ :is([data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-e56c4e01], [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-e56c4e01], [data-component~="ui-button"][data-ui-button-state~="variant=card"][data-v-e56c4e01]):focus-visible {
1318
+ box-shadow: var(--ui-focus-halo);
1319
+ }
1204
1320
 
1205
1321
  /* A loading action stays visually active; only an explicitly disabled action takes the
1206
1322
  neutral disabled palette. Its flat surface and muted ink make the state unambiguous. */
1207
- [data-component~="ui-button"][data-v-37d5b9a2]:is(:disabled, [aria-disabled="true"]:not([aria-busy="true"])) {
1323
+ [data-component~="ui-button"][data-v-e56c4e01]:is(:disabled, [aria-disabled="true"]:not([aria-busy="true"])) {
1208
1324
  border-color: var(--ui-disabled-border);
1209
1325
  background-color: var(--ui-disabled-surface);
1210
1326
  color: var(--ui-disabled-text);
@@ -1214,19 +1330,19 @@ svg[data-v-6551ff4d],
1214
1330
  background-image: none;
1215
1331
  box-shadow: none;
1216
1332
  }
1217
- :is([data-component~="ui-button"][data-ui-button-state~="loading"][data-v-37d5b9a2], [data-component~="ui-button"][data-ui-button-state~="pending"][data-v-37d5b9a2]):focus-visible {
1333
+ :is([data-component~="ui-button"][data-ui-button-state~="loading"][data-v-e56c4e01], [data-component~="ui-button"][data-ui-button-state~="pending"][data-v-e56c4e01]):focus-visible {
1218
1334
  box-shadow: var(--ui-focus-halo);
1219
1335
  }
1220
1336
 
1221
1337
  /* Ghost keeps no border, but gains the same neutral surface as other disabled buttons. */
1222
- [data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-37d5b9a2]:is(:disabled, [aria-disabled="true"]:not([aria-busy="true"])) {
1338
+ [data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-e56c4e01]:is(:disabled, [aria-disabled="true"]:not([aria-busy="true"])) {
1223
1339
  background-color: var(--ui-disabled-surface);
1224
1340
  border-color: transparent;
1225
1341
  }
1226
1342
 
1227
1343
  /* The size states outrank :host, so sm is named too, or a small button would stay small. */
1228
1344
  @media (pointer: coarse) {
1229
- [data-component~="ui-button"][data-v-37d5b9a2], [data-component~="ui-button"][data-ui-button-state~="size=sm"][data-v-37d5b9a2] {
1345
+ [data-component~="ui-button"][data-v-e56c4e01], [data-component~="ui-button"][data-ui-button-state~="size=sm"][data-v-e56c4e01] {
1230
1346
  min-block-size: var(--ui-control-min-block-size);
1231
1347
  }
1232
1348
  }
@@ -1237,15 +1353,15 @@ svg[data-v-6551ff4d],
1237
1353
  area. xs sits inside a line of text the same way, so it keeps its size and gains the area too.
1238
1354
  Only these need it: a hit area on every button would reach over its neighbours. */
1239
1355
  html[data-ui-input-modality="touch"]
1240
- [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-37d5b9a2],
1356
+ [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-e56c4e01],
1241
1357
  html[data-ui-input-modality="touch"]
1242
- [data-component~="ui-button"][data-ui-button-state~="size=xs"][data-v-37d5b9a2] {
1358
+ [data-component~="ui-button"][data-ui-button-state~="size=xs"][data-v-e56c4e01] {
1243
1359
  position: relative;
1244
1360
  }
1245
1361
  html[data-ui-input-modality="touch"]
1246
- [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-37d5b9a2]::after,
1362
+ [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-e56c4e01]::after,
1247
1363
  html[data-ui-input-modality="touch"]
1248
- [data-component~="ui-button"][data-ui-button-state~="size=xs"][data-v-37d5b9a2]::after {
1364
+ [data-component~="ui-button"][data-ui-button-state~="size=xs"][data-v-e56c4e01]::after {
1249
1365
  position: absolute;
1250
1366
  inset: 50% auto auto 50%;
1251
1367
  inline-size: max(100%, var(--ui-control-min-block-size));
@@ -1256,7 +1372,7 @@ html[data-ui-input-modality="touch"]
1256
1372
 
1257
1373
  /* Link: an inline text action. No box, padding, or minimum height (inline targets are exempt under
1258
1374
  WCAG 2.5.8); the inherited font; an underline that strengthens on hover; a visible focus ring. */
1259
- [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-37d5b9a2] {
1375
+ [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-e56c4e01] {
1260
1376
  display: inline;
1261
1377
  min-block-size: 0;
1262
1378
  padding: 0;
@@ -1274,21 +1390,21 @@ html[data-ui-input-modality="touch"]
1274
1390
  color var(--ui-motion-fast) var(--ui-motion-ease),
1275
1391
  text-decoration-color var(--ui-motion-fast) var(--ui-motion-ease);
1276
1392
  }
1277
- [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-37d5b9a2]:hover:not(:disabled, [aria-disabled="true"]) {
1393
+ [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-e56c4e01]:hover:not(:disabled, [aria-disabled="true"]) {
1278
1394
  color: var(--ui-button-link-hover-text, var(--ui-text-primary));
1279
1395
  text-decoration-color: currentColor;
1280
1396
  background: none;
1281
1397
  transform: none;
1282
1398
  }
1283
- [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-37d5b9a2]:active:not(:disabled, [aria-disabled="true"]) {
1399
+ [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-e56c4e01]:active:not(:disabled, [aria-disabled="true"]) {
1284
1400
  background: none;
1285
1401
  transform: none;
1286
1402
  }
1287
- [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-37d5b9a2]:is(:disabled, [aria-disabled="true"]:not([aria-busy="true"])) {
1403
+ [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-e56c4e01]:is(:disabled, [aria-disabled="true"]:not([aria-busy="true"])) {
1288
1404
  background: none;
1289
1405
  border-color: transparent;
1290
1406
  }
1291
- [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-37d5b9a2]:focus-visible {
1407
+ [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-e56c4e01]:focus-visible {
1292
1408
  box-shadow: none;
1293
1409
  /* Fallback keeps the ring if the token is missing: an unresolved var() would void the outline. */
1294
1410
  outline: var(--ui-focus-width) solid var(--ui-focus-ring);
@@ -1296,7 +1412,7 @@ html[data-ui-input-modality="touch"]
1296
1412
  }
1297
1413
 
1298
1414
  /* A component that sets its display still honours the hidden attribute on its root. */
1299
- [data-component~="ui-button"][hidden][data-v-37d5b9a2] {
1415
+ [data-component~="ui-button"][hidden][data-v-e56c4e01] {
1300
1416
  display: none;
1301
1417
  }
1302
1418
 
@@ -1345,7 +1461,7 @@ html[data-ui-input-modality="touch"]
1345
1461
  syntax: "*";
1346
1462
  inherits: false;
1347
1463
  }
1348
- [data-component~="ui-callout"][data-v-948263db] {
1464
+ [data-component~="ui-callout"][data-v-ca7a11cb] {
1349
1465
  /* Hooks do not inherit, so the parts below read them from the root. */
1350
1466
  --_ui-callout-icon-column: var(--ui-callout-icon-column);
1351
1467
  --_ui-callout-icon: var(--ui-callout-icon);
@@ -1365,8 +1481,10 @@ html[data-ui-input-modality="touch"]
1365
1481
  padding-inline-end: var(--ui-callout-padding-inline, var(--ui-space-3));
1366
1482
  border: var(--ui-callout-border-width, var(--ui-border-width)) solid
1367
1483
  color-mix(in srgb, var(--ui-callout-border, var(--_callout-border)) 35%, transparent);
1368
- border-inline-start: var(--ui-callout-leading-border-width, var(--ui-accent-line-width)) solid
1369
- var(--ui-callout-border, var(--_callout-border));
1484
+ border-inline-start: var(
1485
+ --ui-callout-leading-border-width,
1486
+ var(--ui-callout-border-width, var(--ui-border-width))
1487
+ ) solid color-mix(in srgb, var(--ui-callout-border, var(--_callout-border)) 35%, transparent);
1370
1488
  border-radius: var(--ui-radius-md);
1371
1489
  background: var(--ui-callout-surface, var(--_callout-surface));
1372
1490
  color: var(--ui-callout-text, var(--ui-text-primary));
@@ -1377,44 +1495,44 @@ html[data-ui-input-modality="touch"]
1377
1495
  }
1378
1496
 
1379
1497
  /* One line box tall, so the icon centres on the first line of text. */
1380
- .icon[data-v-948263db] {
1498
+ .icon[data-v-ca7a11cb] {
1381
1499
  display: grid;
1382
1500
  place-items: center;
1383
1501
  inline-size: var(--_ui-callout-icon-column, 1.125rem);
1384
1502
  block-size: 1lh;
1385
1503
  color: var(--_ui-callout-icon, var(--_callout-icon));
1386
1504
  }
1387
- .icon svg[data-v-948263db] {
1505
+ .icon svg[data-v-ca7a11cb] {
1388
1506
  inline-size: var(--_ui-callout-icon-size, 1.125rem);
1389
1507
  block-size: var(--_ui-callout-icon-size, 1.125rem);
1390
1508
  }
1391
- .content[data-v-948263db] {
1509
+ .content[data-v-ca7a11cb] {
1392
1510
  min-inline-size: 0;
1393
1511
  }
1394
- [data-component~="ui-callout"][data-ui-callout-state~="tone=neutral"][data-v-948263db],
1395
- [data-component~="ui-callout"][data-ui-callout-state~="tone=note"][data-v-948263db] {
1512
+ [data-component~="ui-callout"][data-ui-callout-state~="tone=neutral"][data-v-ca7a11cb],
1513
+ [data-component~="ui-callout"][data-ui-callout-state~="tone=note"][data-v-ca7a11cb] {
1396
1514
  --_callout-surface: var(--ui-surface-muted);
1397
1515
  --_callout-border: var(--ui-border-strong);
1398
1516
  --_callout-icon: var(--ui-text-secondary);
1399
1517
  }
1400
- [data-component~="ui-callout"][data-ui-callout-state~="tone=warning"][data-v-948263db] {
1518
+ [data-component~="ui-callout"][data-ui-callout-state~="tone=warning"][data-v-ca7a11cb] {
1401
1519
  --_callout-surface: var(--ui-warning-soft);
1402
1520
  --_callout-border: var(--ui-warning-solid);
1403
1521
  --_callout-icon: var(--ui-warning-solid);
1404
1522
  }
1405
- [data-component~="ui-callout"][data-ui-callout-state~="tone=success"][data-v-948263db] {
1523
+ [data-component~="ui-callout"][data-ui-callout-state~="tone=success"][data-v-ca7a11cb] {
1406
1524
  --_callout-surface: var(--ui-success-soft);
1407
1525
  --_callout-border: var(--ui-success-solid);
1408
1526
  --_callout-icon: var(--ui-success-solid);
1409
1527
  }
1410
- [data-component~="ui-callout"][data-ui-callout-state~="tone=danger"][data-v-948263db] {
1528
+ [data-component~="ui-callout"][data-ui-callout-state~="tone=danger"][data-v-ca7a11cb] {
1411
1529
  --_callout-surface: var(--ui-danger-soft);
1412
1530
  --_callout-border: var(--ui-danger-solid);
1413
1531
  --_callout-icon: var(--ui-danger-solid);
1414
1532
  }
1415
1533
 
1416
1534
  /* A link in the callout's text is underlined, so it reads as a link by more than colour. */
1417
- .content a[data-v-948263db-s] {
1535
+ .content a[data-v-ca7a11cb-s] {
1418
1536
  color: var(--ui-accent-active);
1419
1537
  text-decoration: underline;
1420
1538
  text-decoration-thickness: 0.06em;
@@ -1422,7 +1540,7 @@ html[data-ui-input-modality="touch"]
1422
1540
  }
1423
1541
 
1424
1542
  /* A component that sets its display still honours the hidden attribute on its root. */
1425
- [data-component~="ui-callout"][hidden][data-v-948263db] {
1543
+ [data-component~="ui-callout"][hidden][data-v-ca7a11cb] {
1426
1544
  display: none;
1427
1545
  }
1428
1546
 
@@ -4799,7 +4917,22 @@ svg[data-v-955cfa65-s] {
4799
4917
  syntax: "*";
4800
4918
  inherits: false;
4801
4919
  }
4802
- [data-component~="ui-icon-button"][data-v-b66a1661] {
4920
+ [data-component~="ui-icon-button"][data-v-219fa683] {
4921
+ /* Optional inherited action-group values keep text and icon actions under the same light.
4922
+ One fine top/start highlight follows the bottom/end lowlight at a joined action seam.
4923
+ A single ambient lift avoids stacking a face gradient or another inset bevel. */
4924
+ --_ui-action-start: 1px;
4925
+ --_ui-action-edge: var(
4926
+ --ui-action-edge,
4927
+ inset var(--_ui-action-start) 1px 0 light-dark(
4928
+ rgb(255 255 255 / 0.08),
4929
+ rgb(255 255 255 / 0.06)
4930
+ ),
4931
+ inset calc(-1 * var(--_ui-action-start)) -1px 0 light-dark(rgb(0 0 0 / 0.08), rgb(0 0 0 / 0.08))
4932
+ );
4933
+ --_ui-action-shadow:
4934
+ var(--_ui-action-edge),
4935
+ 0 1px 2px light-dark(rgb(0 0 0 / 0.10), rgb(0 0 0 / 0.20));
4803
4936
  /* Hooks do not inherit, so the parts below read them from the root. */
4804
4937
  --_ui-icon-button-icon-size: var(--ui-icon-button-icon-size);
4805
4938
  --_ui-icon-button-icon-stroke-width: var(--ui-icon-button-icon-stroke-width);
@@ -4807,7 +4940,10 @@ svg[data-v-955cfa65-s] {
4807
4940
  display: inline-flex;
4808
4941
  color: var(--ui-text-secondary);
4809
4942
  }
4810
- [data-component~="ui-icon-button"][data-ui-icon-button-state~="tone=accent"][data-v-b66a1661] {
4943
+ [data-component~="ui-icon-button"][data-v-219fa683]:dir(rtl) {
4944
+ --_ui-action-start: -1px;
4945
+ }
4946
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="tone=accent"][data-v-219fa683] {
4811
4947
  --_icon-button-border: var(--ui-accent-solid);
4812
4948
  --_icon-button-hover-border: var(--ui-accent-hover);
4813
4949
  --_icon-button-text: var(--ui-accent-subtle-text, var(--ui-accent-solid));
@@ -4820,15 +4956,15 @@ svg[data-v-955cfa65-s] {
4820
4956
  }
4821
4957
 
4822
4958
  /* Omitted tone retains the existing accent solid; explicit neutral is additive. */
4823
- [data-component~="ui-icon-button"][data-ui-icon-button-state~="tone=neutral"][data-v-b66a1661] {
4959
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="tone=neutral"][data-v-219fa683] {
4824
4960
  --_icon-button-solid-surface: var(--ui-text-primary);
4825
4961
  --_icon-button-solid-hover-surface: var(--ui-text-primary);
4826
4962
  --_icon-button-solid-text: var(--ui-surface-default);
4827
4963
  }
4828
- [data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-b66a1661] {
4964
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-219fa683] {
4829
4965
  position: relative;
4830
4966
  }
4831
- [data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-b66a1661]::before {
4967
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-219fa683]::before {
4832
4968
  content: "";
4833
4969
  position: absolute;
4834
4970
  inset: 50% auto auto 50%;
@@ -4842,13 +4978,13 @@ svg[data-v-955cfa65-s] {
4842
4978
  transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
4843
4979
  pointer-events: none;
4844
4980
  }
4845
- [data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-b66a1661]:disabled::before {
4981
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-219fa683]:disabled::before {
4846
4982
  opacity: 0;
4847
4983
  }
4848
4984
 
4849
4985
  /* At rest an anticipatory button shows only its guide dot. The icon grows into place when
4850
4986
  proximity, hover, or focus reveals it; the button's hit area and guide remain stable. */
4851
- [data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"] .content[data-v-b66a1661] {
4987
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"] .content[data-v-219fa683] {
4852
4988
  opacity: 1;
4853
4989
  transform: scale(1);
4854
4990
  transition:
@@ -4856,22 +4992,22 @@ svg[data-v-955cfa65-s] {
4856
4992
  transform calc(var(--ui-motion-fast) * 2) cubic-bezier(0.2, 1.4, 0.35, 1);
4857
4993
  }
4858
4994
  @media (hover: hover) and (pointer: fine) {
4859
- [data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-b66a1661]:not([data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"], [data-component~="ui-icon-button"][data-ui-icon-button-state~="loading"], [data-component~="ui-icon-button"][data-ui-icon-button-state~="pending"], :disabled, [aria-pressed="true"], [data-ui-proximity="near"], :hover, :focus-visible) {
4995
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-219fa683]:not([data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"], [data-component~="ui-icon-button"][data-ui-icon-button-state~="loading"], [data-component~="ui-icon-button"][data-ui-icon-button-state~="pending"], :disabled, [aria-pressed="true"], [data-ui-proximity="near"], :hover, :focus-visible) {
4860
4996
  border-color: transparent;
4861
4997
  background-color: transparent;
4862
4998
  box-shadow: none;
4863
4999
  }
4864
5000
  [data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"]:not([data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"], [data-component~="ui-icon-button"][data-ui-icon-button-state~="loading"], [data-component~="ui-icon-button"][data-ui-icon-button-state~="pending"], :disabled, [aria-pressed="true"], [data-ui-proximity="near"], :hover, :focus-visible)
4865
- .content[data-v-b66a1661] {
5001
+ .content[data-v-219fa683] {
4866
5002
  opacity: 0;
4867
5003
  transform: scale(0.65);
4868
5004
  transition-duration: var(--ui-motion-fast);
4869
5005
  }
4870
5006
  }
4871
- [data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-b66a1661]:is([data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"], [aria-pressed="true"], [data-ui-proximity="near"], :hover, :focus-visible)::before {
5007
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-219fa683]:is([data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"], [aria-pressed="true"], [data-ui-proximity="near"], :hover, :focus-visible)::before {
4872
5008
  opacity: 0;
4873
5009
  }
4874
- [data-component~="ui-icon-button"][data-v-b66a1661] {
5010
+ [data-component~="ui-icon-button"][data-v-219fa683] {
4875
5011
  /* The size prop resolves here; --ui-icon-button-size overrides it on an element. */
4876
5012
  --_size: 2rem;
4877
5013
  appearance: none;
@@ -4897,7 +5033,7 @@ svg[data-v-955cfa65-s] {
4897
5033
  transform var(--ui-motion-fast) var(--ui-motion-ease);
4898
5034
  }
4899
5035
  @media (hover: none), (pointer: coarse) {
4900
- [data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-b66a1661]::before {
5036
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-219fa683]::before {
4901
5037
  opacity: 0;
4902
5038
  }
4903
5039
  }
@@ -4905,10 +5041,10 @@ svg[data-v-955cfa65-s] {
4905
5041
  /* A touch target without a bigger button: an invisible hit area, at least the control
4906
5042
  minimum, centred on the button (::before is the anticipatory guide). */
4907
5043
  @media (pointer: coarse) {
4908
- [data-component~="ui-icon-button"][data-v-b66a1661] {
5044
+ [data-component~="ui-icon-button"][data-v-219fa683] {
4909
5045
  position: relative;
4910
5046
  }
4911
- [data-component~="ui-icon-button"][data-v-b66a1661]::after {
5047
+ [data-component~="ui-icon-button"][data-v-219fa683]::after {
4912
5048
  content: "";
4913
5049
  position: absolute;
4914
5050
  inset: 50% auto auto 50%;
@@ -4917,10 +5053,10 @@ svg[data-v-955cfa65-s] {
4917
5053
  transform: translate(-50%, -50%);
4918
5054
  }
4919
5055
  }
4920
- html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-b66a1661] {
5056
+ html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-219fa683] {
4921
5057
  position: relative;
4922
5058
  }
4923
- html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-b66a1661]::after {
5059
+ html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-219fa683]::after {
4924
5060
  content: "";
4925
5061
  position: absolute;
4926
5062
  inset: 50% auto auto 50%;
@@ -4928,14 +5064,14 @@ html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-b
4928
5064
  block-size: max(100%, var(--ui-control-min-block-size));
4929
5065
  transform: translate(-50%, -50%);
4930
5066
  }
4931
- [data-component~="ui-icon-button"][data-ui-icon-button-state~="size=sm"][data-v-b66a1661] {
5067
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="size=sm"][data-v-219fa683] {
4932
5068
  --_size: 1.75rem;
4933
5069
  inline-size: var(--ui-icon-button-size, var(--_size));
4934
5070
  block-size: var(--ui-icon-button-size, var(--_size));
4935
5071
  min-inline-size: var(--ui-icon-button-size, var(--_size));
4936
5072
  min-block-size: var(--ui-icon-button-size, var(--_size));
4937
5073
  }
4938
- [data-component~="ui-icon-button"][data-ui-icon-button-state~="size=lg"][data-v-b66a1661] {
5074
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="size=lg"][data-v-219fa683] {
4939
5075
  --_size: 2.5rem;
4940
5076
  inline-size: var(--ui-icon-button-size, var(--_size));
4941
5077
  block-size: var(--ui-icon-button-size, var(--_size));
@@ -4944,19 +5080,19 @@ html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-b
4944
5080
  }
4945
5081
 
4946
5082
  /* A text button's companion uses control geometry; compact icon buttons keep their own density. */
4947
- [data-component~="ui-icon-button"][data-ui-icon-button-state~="matchButton"][data-v-b66a1661] {
5083
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="matchButton"][data-v-219fa683] {
4948
5084
  --_size: var(--ui-control-size-md);
4949
5085
  block-size: auto;
4950
5086
  align-self: stretch;
4951
5087
  }
4952
- [data-component~="ui-icon-button"][data-ui-icon-button-state~="matchButton"][data-ui-icon-button-state~="size=sm"][data-v-b66a1661] {
5088
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="matchButton"][data-ui-icon-button-state~="size=sm"][data-v-219fa683] {
4953
5089
  --_size: var(--ui-control-size-sm);
4954
5090
  }
4955
- [data-component~="ui-icon-button"][data-ui-icon-button-state~="matchButton"][data-ui-icon-button-state~="size=lg"][data-v-b66a1661] {
5091
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="matchButton"][data-ui-icon-button-state~="size=lg"][data-v-219fa683] {
4956
5092
  --_size: var(--ui-control-size-lg);
4957
5093
  }
4958
5094
  @media (pointer: coarse) {
4959
- [data-component~="ui-icon-button"][data-ui-icon-button-state~="matchButton"][data-v-b66a1661] {
5095
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="matchButton"][data-v-219fa683] {
4960
5096
  inline-size: max(var(--ui-icon-button-size, var(--_size)), var(--ui-control-min-block-size));
4961
5097
  min-inline-size: max(
4962
5098
  var(--ui-icon-button-size, var(--_size)),
@@ -4965,10 +5101,10 @@ html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-b
4965
5101
  min-block-size: max(var(--ui-icon-button-size, var(--_size)), var(--ui-control-min-block-size));
4966
5102
  }
4967
5103
  }
4968
- [data-component~="ui-icon-button"][data-ui-icon-button-state~="round"][data-v-b66a1661] {
5104
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="round"][data-v-219fa683] {
4969
5105
  border-radius: var(--ui-radius-round);
4970
5106
  }
4971
- [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][data-v-b66a1661] {
5107
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][data-v-219fa683] {
4972
5108
  border-color: var(
4973
5109
  --ui-icon-button-border,
4974
5110
  var(--_icon-button-border, var(--ui-control-border, var(--ui-border-strong)))
@@ -4977,23 +5113,20 @@ html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-b
4977
5113
  --ui-icon-button-outline-surface,
4978
5114
  var(--_icon-button-outline-surface, var(--ui-surface-default))
4979
5115
  );
4980
- background-image: var(--ui-raised-highlight);
5116
+ background-image: none;
4981
5117
  color: var(--ui-icon-button-outline-text, var(--_icon-button-text, var(--ui-text-primary)));
4982
- box-shadow: var(--ui-raised);
5118
+ box-shadow: var(--ui-action-shadow, var(--_ui-action-shadow));
4983
5119
  }
4984
- [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"][data-v-b66a1661] {
5120
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"][data-v-219fa683] {
4985
5121
  background-color: var(
4986
5122
  --ui-icon-button-solid-surface,
4987
5123
  var(--_icon-button-solid-surface, var(--ui-accent-solid))
4988
5124
  );
4989
- background-image: var(--ui-raised-highlight);
5125
+ background-image: none;
4990
5126
  color: var(--ui-icon-button-solid-text, var(--_icon-button-solid-text, var(--ui-text-on-accent)));
4991
- box-shadow: var(
4992
- --ui-icon-button-solid-shadow,
4993
- 0 1px 2px color-mix(in srgb, var(--ui-accent-solid) 18%, transparent)
4994
- );
5127
+ box-shadow: var(--ui-icon-button-solid-shadow, var(--ui-action-shadow, var(--_ui-action-shadow)));
4995
5128
  }
4996
- [data-component~="ui-icon-button"][data-v-b66a1661]:hover:enabled:not([aria-disabled="true"]) {
5129
+ [data-component~="ui-icon-button"][data-v-219fa683]:hover:enabled:not([aria-disabled="true"]) {
4997
5130
  /* Derived from the text colour so the ghost hover shows on any background. */
4998
5131
  background-color: var(
4999
5132
  --ui-icon-button-hover-surface,
@@ -5001,23 +5134,23 @@ html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-b
5001
5134
  );
5002
5135
  color: var(--ui-icon-button-hover-text, var(--_icon-button-text, var(--ui-text-primary)));
5003
5136
  }
5004
- [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][data-v-b66a1661]:hover:enabled:not([aria-disabled="true"]) {
5137
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][data-v-219fa683]:hover:enabled:not([aria-disabled="true"]) {
5005
5138
  border-color: var(
5006
5139
  --ui-icon-button-hover-border,
5007
5140
  var(--_icon-button-hover-border, var(--ui-control-border-hover, var(--ui-control-border)))
5008
5141
  );
5009
5142
  }
5010
- [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"][data-v-b66a1661]:hover:enabled:not([aria-disabled="true"]) {
5143
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"][data-v-219fa683]:hover:enabled:not([aria-disabled="true"]) {
5011
5144
  background-color: var(
5012
5145
  --ui-icon-button-solid-hover-surface,
5013
5146
  var(--_icon-button-solid-hover-surface, var(--ui-accent-hover))
5014
5147
  );
5015
5148
  }
5016
- [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"][data-ui-icon-button-state~="tone=accent"][data-v-b66a1661]:hover:enabled:not([aria-disabled="true"]),
5017
- [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"][data-ui-icon-button-state~="tone=neutral"][data-v-b66a1661]:hover:enabled:not([aria-disabled="true"]) {
5149
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"][data-ui-icon-button-state~="tone=accent"][data-v-219fa683]:hover:enabled:not([aria-disabled="true"]),
5150
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"][data-ui-icon-button-state~="tone=neutral"][data-v-219fa683]:hover:enabled:not([aria-disabled="true"]) {
5018
5151
  color: var(--ui-icon-button-solid-text, var(--_icon-button-solid-text, var(--ui-text-on-accent)));
5019
5152
  }
5020
- [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=ghost"][aria-expanded="true"][data-v-b66a1661]:enabled:not([aria-disabled="true"]) {
5153
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=ghost"][aria-expanded="true"][data-v-219fa683]:enabled:not([aria-disabled="true"]) {
5021
5154
  background-color: var(
5022
5155
  --ui-icon-button-active-surface,
5023
5156
  color-mix(in srgb, currentColor 16%, transparent)
@@ -5027,7 +5160,7 @@ html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-b
5027
5160
  }
5028
5161
 
5029
5162
  /* Native toggle state persists after pointer release, including during loading. */
5030
- [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][aria-pressed="true"][data-v-b66a1661]:enabled {
5163
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][aria-pressed="true"][data-v-219fa683]:enabled {
5031
5164
  background-color: var(
5032
5165
  --ui-icon-button-active-surface,
5033
5166
  color-mix(in srgb, currentColor 12%, var(--ui-surface-default))
@@ -5035,47 +5168,61 @@ html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-b
5035
5168
  background-image: none;
5036
5169
  box-shadow: var(--ui-pressed);
5037
5170
  }
5038
- [data-component~="ui-icon-button"][data-v-b66a1661]:active:enabled:not([aria-disabled="true"]) {
5171
+ [data-component~="ui-icon-button"][data-v-219fa683]:active:enabled:not([aria-disabled="true"]) {
5039
5172
  transform: scale(var(--ui-icon-button-active-scale, 0.96));
5040
5173
  }
5041
- :is([data-component~="ui-icon-button"][data-ui-icon-button-state~="loading"][data-v-b66a1661], [data-component~="ui-icon-button"][data-ui-icon-button-state~="pending"][data-v-b66a1661]) {
5174
+ :is([data-component~="ui-icon-button"][data-ui-icon-button-state~="loading"][data-v-219fa683], [data-component~="ui-icon-button"][data-ui-icon-button-state~="pending"][data-v-219fa683]) {
5042
5175
  cursor: progress;
5043
5176
  }
5044
- .content[data-v-b66a1661] {
5177
+ .content[data-v-219fa683] {
5045
5178
  display: inline-flex;
5046
5179
  align-items: center;
5047
5180
  justify-content: center;
5048
5181
  }
5049
5182
  :is([data-component~="ui-icon-button"][data-ui-icon-button-state~="loading"], [data-component~="ui-icon-button"][data-ui-icon-button-state~="pending"])
5050
- .content[data-v-b66a1661] {
5183
+ .content[data-v-219fa683] {
5051
5184
  display: none;
5052
5185
  }
5053
5186
  @media (prefers-reduced-motion: reduce) {
5054
- [data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"] .content[data-v-b66a1661] {
5187
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"] .content[data-v-219fa683] {
5055
5188
  transition: none;
5056
5189
  }
5057
5190
  }
5058
- [data-component~="ui-icon-button"][data-v-b66a1661]:focus-visible {
5191
+ [data-component~="ui-icon-button"][data-v-219fa683]:focus-visible {
5059
5192
  outline: none;
5060
5193
  box-shadow: var(--ui-focus-halo);
5061
5194
  }
5062
- [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][aria-pressed="true"][data-v-b66a1661]:enabled:focus-visible {
5195
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][data-v-219fa683]:focus-visible {
5196
+ box-shadow:
5197
+ var(--ui-action-shadow, var(--_ui-action-shadow)),
5198
+ var(--ui-focus-halo);
5199
+ }
5200
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"][data-v-219fa683]:focus-visible {
5201
+ box-shadow:
5202
+ var(--ui-icon-button-solid-shadow, var(--ui-action-shadow, var(--_ui-action-shadow))),
5203
+ var(--ui-focus-halo);
5204
+ }
5205
+ [data-component~="ui-icon-button"][data-v-219fa683]:is([data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"], [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"]):active:enabled:not([aria-disabled="true"]) {
5206
+ background-image: none;
5207
+ box-shadow: var(--ui-pressed);
5208
+ }
5209
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][aria-pressed="true"][data-v-219fa683]:enabled:focus-visible {
5063
5210
  box-shadow:
5064
5211
  var(--ui-pressed),
5065
5212
  var(--ui-focus-halo);
5066
5213
  }
5067
5214
  @media (forced-colors: active) {
5068
- [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][aria-pressed="true"][data-v-b66a1661]:enabled {
5215
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][aria-pressed="true"][data-v-219fa683]:enabled {
5069
5216
  outline: var(--ui-focus-width) solid Highlight;
5070
5217
  outline-offset: calc(-2 * var(--ui-focus-width));
5071
5218
  }
5072
- [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][aria-pressed="true"][data-v-b66a1661]:enabled:focus-visible {
5219
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][aria-pressed="true"][data-v-219fa683]:enabled:focus-visible {
5073
5220
  outline-offset: var(--ui-focus-width);
5074
5221
  }
5075
5222
  }
5076
5223
 
5077
5224
  /* Disabled is a flat neutral control, independent of the active variant's tone. */
5078
- [data-component~="ui-icon-button"][data-v-b66a1661]:disabled {
5225
+ [data-component~="ui-icon-button"][data-v-219fa683]:disabled {
5079
5226
  border-color: var(--ui-disabled-border);
5080
5227
  background-color: var(--ui-disabled-surface);
5081
5228
  color: var(--ui-disabled-text);
@@ -5085,23 +5232,23 @@ html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-b
5085
5232
  box-shadow: none;
5086
5233
  background-image: none;
5087
5234
  }
5088
- [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=ghost"][data-v-b66a1661]:disabled {
5235
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=ghost"][data-v-219fa683]:disabled {
5089
5236
  border-color: transparent;
5090
5237
  }
5091
- [data-component~="ui-icon-button"][data-v-b66a1661] {
5238
+ [data-component~="ui-icon-button"][data-v-219fa683] {
5092
5239
  --_icon-button-icon-default: var(--ui-icon-size-md);
5093
5240
  /* A slotted ui-icon is its own component, out of reach of the svg rule below; these are its
5094
5241
  defaults, which its own --ui-icon-* hooks still override. */
5095
5242
  --_ui-default-icon-size: var(--_ui-icon-button-icon-size, var(--_icon-button-icon-default));
5096
5243
  --_ui-default-icon-stroke-width: var(--_ui-icon-button-icon-stroke-width, 1.75);
5097
5244
  }
5098
- [data-component~="ui-icon-button"][data-ui-icon-button-state~="size=sm"][data-v-b66a1661] {
5245
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="size=sm"][data-v-219fa683] {
5099
5246
  --_icon-button-icon-default: var(--ui-icon-size-sm);
5100
5247
  }
5101
- [data-component~="ui-icon-button"][data-ui-icon-button-state~="size=lg"][data-v-b66a1661] {
5248
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="size=lg"][data-v-219fa683] {
5102
5249
  --_icon-button-icon-default: var(--ui-icon-size-lg);
5103
5250
  }
5104
- svg[data-v-b66a1661-s] {
5251
+ svg[data-v-219fa683-s] {
5105
5252
  inline-size: var(--_ui-icon-button-icon-size, var(--_icon-button-icon-default));
5106
5253
  block-size: var(--_ui-icon-button-icon-size, var(--_icon-button-icon-default));
5107
5254
  flex-shrink: 0;
@@ -5109,7 +5256,7 @@ svg[data-v-b66a1661-s] {
5109
5256
  }
5110
5257
 
5111
5258
  /* A component that sets its display still honours the hidden attribute on its root. */
5112
- [data-component~="ui-icon-button"][hidden][data-v-b66a1661] {
5259
+ [data-component~="ui-icon-button"][hidden][data-v-219fa683] {
5113
5260
  display: none;
5114
5261
  }
5115
5262
 
@@ -5489,7 +5636,7 @@ svg[data-v-b66a1661-s] {
5489
5636
  whole value is. The action slot takes one button at the end, inside the border, for the one
5490
5637
  thing the field is for ("Continue" after a site's address), so it reads as the field's action
5491
5638
  and not the form's. */
5492
- [data-component~="ui-input-group"][data-v-a7fb387e] {
5639
+ [data-component~="ui-input-group"][data-v-ac4d8095] {
5493
5640
  /* The group's own border and height stand for the input's, so the group is a lone Input's height.
5494
5641
  Hooks do not inherit, so these are defaults for the input; its own hooks still win. */
5495
5642
  --_ui-default-input-border-width: 0;
@@ -5534,38 +5681,43 @@ svg[data-v-b66a1661-s] {
5534
5681
  border-color var(--ui-motion-fast) var(--ui-motion-ease),
5535
5682
  box-shadow var(--ui-motion-fast) var(--ui-motion-ease);
5536
5683
  }
5684
+ [data-component~="ui-input-group"][data-ui-input-group-state~="variant=subtle"][data-v-ac4d8095] {
5685
+ border-color: var(--ui-border);
5686
+ background: var(--ui-surface-muted);
5687
+ box-shadow: none;
5688
+ }
5537
5689
 
5538
5690
  /* The frame takes its input's size, so a small group lines up with small buttons and fields. */
5539
- [data-component~="ui-input-group"][data-v-a7fb387e]:has(.field [data-ui-input-state~="size=sm"]) {
5691
+ [data-component~="ui-input-group"][data-v-ac4d8095]:has(.field [data-ui-input-state~="size=sm"]) {
5540
5692
  min-block-size: var(--ui-control-size-sm);
5541
5693
  }
5542
- [data-component~="ui-input-group"][data-v-a7fb387e]:has(.field [data-ui-input-state~="size=lg"]) {
5694
+ [data-component~="ui-input-group"][data-v-ac4d8095]:has(.field [data-ui-input-state~="size=lg"]) {
5543
5695
  min-block-size: var(--ui-control-size-lg);
5544
5696
  }
5545
5697
  @media (pointer: coarse) {
5546
- [data-component~="ui-input-group"][data-v-a7fb387e]:has(.field [data-ui-input-state~="size=sm"]) {
5698
+ [data-component~="ui-input-group"][data-v-ac4d8095]:has(.field [data-ui-input-state~="size=sm"]) {
5547
5699
  min-block-size: var(--ui-control-min-block-size);
5548
5700
  }
5549
5701
  }
5550
- [data-component~="ui-input-group"][data-v-a7fb387e]:hover:not(:has(:is(input, textarea):focus, :is(input, textarea):disabled, :is(input, textarea):read-only, [aria-invalid="true"], :is(:user-invalid, [data-user-invalid]))) {
5702
+ [data-component~="ui-input-group"][data-v-ac4d8095]:hover:not(:has(:is(input, textarea):focus, :is(input, textarea):disabled, :is(input, textarea):read-only, [aria-invalid="true"], :is(:user-invalid, [data-user-invalid]))) {
5551
5703
  border-color: var(--ui-control-border-hover, var(--ui-text-secondary));
5552
5704
  }
5553
5705
 
5554
5706
  /* The ring shows when the field's input would show its own: when it is focus-visible, which a
5555
5707
  text input is for a pointer as well as a keyboard. A focused action button draws its own. */
5556
- [data-component~="ui-input-group"][data-v-a7fb387e]:has(.field :is(input, textarea):focus-visible) {
5708
+ [data-component~="ui-input-group"][data-v-ac4d8095]:has(.field :is(input, textarea):focus-visible) {
5557
5709
  border-color: var(--ui-control-focus, var(--ui-accent-solid));
5558
5710
  box-shadow:
5559
5711
  var(--ui-control-inset),
5560
5712
  var(--ui-control-focus-halo-shadow);
5561
5713
  }
5562
- [data-component~="ui-input-group"][data-v-a7fb387e]:has([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])) {
5714
+ [data-component~="ui-input-group"][data-v-ac4d8095]:has([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])) {
5563
5715
  border-color: var(
5564
5716
  --ui-input-group-invalid-border,
5565
5717
  var(--ui-field-danger, var(--ui-danger-solid))
5566
5718
  );
5567
5719
  }
5568
- [data-component~="ui-input-group"][data-v-a7fb387e]:has(:is(input, textarea):is([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])):focus-visible) {
5720
+ [data-component~="ui-input-group"][data-v-ac4d8095]:has(:is(input, textarea):is([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])):focus-visible) {
5569
5721
  box-shadow: var(
5570
5722
  --ui-input-group-invalid-focus-shadow,
5571
5723
  var(--ui-control-inset),
@@ -5579,23 +5731,23 @@ svg[data-v-b66a1661-s] {
5579
5731
 
5580
5732
  /* Forced colors drop box shadows, so the focus ring becomes an outline. */
5581
5733
  @media (forced-colors: active) {
5582
- [data-component~="ui-input-group"][data-v-a7fb387e]:has(:is(input, textarea):focus-visible) {
5734
+ [data-component~="ui-input-group"][data-v-ac4d8095]:has(:is(input, textarea):focus-visible) {
5583
5735
  outline: var(--ui-focus-width) solid Highlight;
5584
5736
  outline-offset: var(--ui-border-width);
5585
5737
  }
5586
5738
  }
5587
- [data-component~="ui-input-group"][data-ui-input-group-state~="disabled"][data-v-a7fb387e],
5588
- [data-component~="ui-input-group"][data-v-a7fb387e]:has(:is(input, textarea):disabled) {
5739
+ [data-component~="ui-input-group"][data-ui-input-group-state~="disabled"][data-v-ac4d8095],
5740
+ [data-component~="ui-input-group"][data-v-ac4d8095]:has(:is(input, textarea):disabled) {
5589
5741
  background: var(--ui-control-surface-disabled, var(--ui-surface-muted));
5590
5742
  box-shadow: none;
5591
5743
  cursor: not-allowed;
5592
5744
  }
5593
- .field[data-v-a7fb387e] {
5745
+ .field[data-v-ac4d8095] {
5594
5746
  display: flex;
5595
5747
  flex: 1;
5596
5748
  min-inline-size: 0;
5597
5749
  }
5598
- .affix[data-v-a7fb387e] {
5750
+ .affix[data-v-ac4d8095] {
5599
5751
  display: inline-flex;
5600
5752
  flex: none;
5601
5753
  align-items: center;
@@ -5607,21 +5759,21 @@ svg[data-v-b66a1661-s] {
5607
5759
  }
5608
5760
 
5609
5761
  /* Fixed text is part of the value, but should not look editable. */
5610
- .affix[data-v-a7fb387e]:has([slot="prefix"]),
5611
- .affix[data-v-a7fb387e]:has([slot="suffix"]) {
5762
+ .affix[data-v-ac4d8095]:has([slot="prefix"]),
5763
+ .affix[data-v-ac4d8095]:has([slot="suffix"]) {
5612
5764
  background: var(--ui-surface-muted);
5613
5765
  }
5614
- .affix[data-v-a7fb387e]:has([slot="prefix"]) {
5766
+ .affix[data-v-ac4d8095]:has([slot="prefix"]) {
5615
5767
  border-inline-end: var(--ui-border-width) solid var(--ui-border-divider);
5616
5768
  }
5617
- .affix[data-v-a7fb387e]:has([slot="suffix"]) {
5769
+ .affix[data-v-ac4d8095]:has([slot="suffix"]) {
5618
5770
  border-inline-start: var(--ui-border-width) solid var(--ui-border-divider);
5619
5771
  }
5620
- [data-component~="ui-input-group"][data-ui-input-group-state~="prefixKind=icon"][data-v-a7fb387e] {
5772
+ [data-component~="ui-input-group"][data-ui-input-group-state~="prefixKind=icon"][data-v-ac4d8095] {
5621
5773
  --_ui-default-input-padding-inline-start: var(--ui-space-2);
5622
5774
  }
5623
5775
  [data-component~="ui-input-group"][data-ui-input-group-state~="prefixKind=icon"]
5624
- .affix[data-v-a7fb387e]:first-child {
5776
+ .affix[data-v-ac4d8095]:first-child {
5625
5777
  padding-inline-end: 0;
5626
5778
  border-inline-end: 0;
5627
5779
  background: transparent;
@@ -5629,7 +5781,7 @@ svg[data-v-b66a1661-s] {
5629
5781
 
5630
5782
  /* Centred rather than padded above and below: the group is exactly a lone Input's height, so a
5631
5783
  small button sits inside it with the difference split evenly, and the field keeps its height. */
5632
- .action[data-v-a7fb387e] {
5784
+ .action[data-v-ac4d8095] {
5633
5785
  display: flex;
5634
5786
  flex: none;
5635
5787
  align-items: center;
@@ -5637,14 +5789,14 @@ svg[data-v-b66a1661-s] {
5637
5789
  }
5638
5790
 
5639
5791
  /* Multiline text owns the first row; its action remains inside the same frame below it. */
5640
- [data-component~="ui-input-group"][data-ui-input-group-state~="multiline"][data-v-a7fb387e] {
5792
+ [data-component~="ui-input-group"][data-ui-input-group-state~="multiline"][data-v-ac4d8095] {
5641
5793
  display: grid;
5642
5794
  grid-template-columns: auto minmax(0, 1fr) auto;
5643
5795
  }
5644
- [data-component~="ui-input-group"][data-ui-input-group-state~="multiline"] .field[data-v-a7fb387e] {
5796
+ [data-component~="ui-input-group"][data-ui-input-group-state~="multiline"] .field[data-v-ac4d8095] {
5645
5797
  grid-column: 2;
5646
5798
  }
5647
- [data-component~="ui-input-group"][data-ui-input-group-state~="multiline"] .action[data-v-a7fb387e] {
5799
+ [data-component~="ui-input-group"][data-ui-input-group-state~="multiline"] .action[data-v-ac4d8095] {
5648
5800
  grid-column: 1 / -1;
5649
5801
  justify-content: end;
5650
5802
  padding: var(--ui-space-2);
@@ -5653,30 +5805,30 @@ svg[data-v-b66a1661-s] {
5653
5805
 
5654
5806
  /* The same textarea keeps its full resizeable box. Its text reserves the action's live width,
5655
5807
  so a translated label or pending indicator cannot cover what the person types. */
5656
- [data-component~="ui-input-group"][data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"][data-v-a7fb387e] {
5808
+ [data-component~="ui-input-group"][data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"][data-v-ac4d8095] {
5657
5809
  --_ui-default-textarea-padding-inline-end: calc(
5658
5810
  var(--_ui-input-group-action-inline-size, 7rem) + var(--ui-space-3)
5659
5811
  );
5660
5812
  }
5661
5813
  [data-component~="ui-input-group"][data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"]
5662
- .field[data-v-a7fb387e] {
5814
+ .field[data-v-ac4d8095] {
5663
5815
  grid-row: 1;
5664
5816
  }
5665
5817
  [data-component~="ui-input-group"][data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"]
5666
- .action[data-v-a7fb387e] {
5818
+ .action[data-v-ac4d8095] {
5667
5819
  grid-column: 2;
5668
5820
  grid-row: 1;
5669
5821
  align-self: start;
5670
5822
  justify-self: end;
5671
5823
  padding: var(--ui-space-2);
5672
5824
  }
5673
- .affix[data-v-a7fb387e]:empty,
5674
- .action[data-v-a7fb387e]:empty {
5825
+ .affix[data-v-ac4d8095]:empty,
5826
+ .action[data-v-ac4d8095]:empty {
5675
5827
  display: none;
5676
5828
  }
5677
5829
 
5678
5830
  /* A component that sets its display still honours the hidden attribute on its root. */
5679
- [data-component~="ui-input-group"][hidden][data-v-a7fb387e] {
5831
+ [data-component~="ui-input-group"][hidden][data-v-ac4d8095] {
5680
5832
  display: none;
5681
5833
  }
5682
5834
 
@@ -8749,8 +8901,9 @@ tbody tr[data-v-722ca2ea-s]:last-child > * {
8749
8901
  syntax: "*";
8750
8902
  inherits: false;
8751
8903
  }
8752
- [data-component~="ui-toast"][data-v-241766bc] {
8904
+ [data-component~="ui-toast"][data-v-af4b9641] {
8753
8905
  --_ui-toast-accent: var(--ui-border-strong);
8906
+ --_ui-toast-surface: var(--ui-surface-muted);
8754
8907
 
8755
8908
  display: flex;
8756
8909
  align-items: center;
@@ -8759,42 +8912,50 @@ tbody tr[data-v-722ca2ea-s]:last-child > * {
8759
8912
  inline-size: 100%;
8760
8913
  margin: 0;
8761
8914
  padding: var(--ui-space-3) var(--ui-space-4);
8915
+ /* The close button's internal space supplies the rest of the trailing inset. */
8916
+ padding-inline-end: var(--ui-space-2);
8762
8917
  border: var(--ui-border-width) solid
8763
- var(--ui-toast-border, var(--ui-overlay-border, var(--ui-border-strong)));
8764
- border-inline-start: var(--ui-accent-line-width) solid
8765
- var(--ui-toast-accent, var(--_ui-toast-accent));
8918
+ var(
8919
+ --ui-toast-border,
8920
+ var(--ui-overlay-border, var(--ui-toast-accent, var(--_ui-toast-accent)))
8921
+ );
8766
8922
  border-radius: var(--ui-toast-radius, var(--ui-overlay-radius, var(--ui-radius-lg)));
8767
- background: var(--ui-toast-surface, var(--ui-overlay-surface, var(--ui-surface-elevated)));
8923
+ background: var(--ui-toast-surface, var(--ui-overlay-surface, var(--_ui-toast-surface)));
8768
8924
  color: var(--ui-text-primary);
8925
+ font-family: var(--ui-font-family-sans);
8926
+ font-size: var(--ui-font-size-sm);
8927
+ font-weight: var(--ui-font-normal);
8928
+ line-height: var(--ui-line-height-md);
8769
8929
  box-shadow: var(
8770
8930
  --ui-toast-shadow,
8771
8931
  var(--ui-overlay-shadow, var(--ui-elevation-overlay, var(--ui-shadow-lg)))
8772
8932
  );
8773
8933
  pointer-events: auto;
8774
8934
  }
8775
- [data-component~="ui-toast"][data-ui-toast-state~="tone=info"][data-v-241766bc] {
8935
+ [data-component~="ui-toast"][data-ui-toast-state~="tone=info"][data-v-af4b9641] {
8776
8936
  --_ui-toast-accent: var(--ui-info-solid);
8937
+ --_ui-toast-surface: var(--ui-info-soft);
8777
8938
  }
8778
- [data-component~="ui-toast"][data-ui-toast-state~="tone=success"][data-v-241766bc] {
8939
+ [data-component~="ui-toast"][data-ui-toast-state~="tone=success"][data-v-af4b9641] {
8779
8940
  --_ui-toast-accent: var(--ui-success-solid);
8941
+ --_ui-toast-surface: var(--ui-success-soft);
8780
8942
  }
8781
- [data-component~="ui-toast"][data-ui-toast-state~="tone=warning"][data-v-241766bc] {
8943
+ [data-component~="ui-toast"][data-ui-toast-state~="tone=warning"][data-v-af4b9641] {
8782
8944
  --_ui-toast-accent: var(--ui-warning-solid);
8945
+ --_ui-toast-surface: var(--ui-warning-soft);
8783
8946
  }
8784
- [data-component~="ui-toast"][data-ui-toast-state~="tone=danger"][data-v-241766bc] {
8947
+ [data-component~="ui-toast"][data-ui-toast-state~="tone=danger"][data-v-af4b9641] {
8785
8948
  --_ui-toast-accent: var(--ui-danger-solid);
8949
+ --_ui-toast-surface: var(--ui-danger-soft);
8786
8950
  }
8787
- .message[data-v-241766bc] {
8951
+ .message[data-v-af4b9641] {
8788
8952
  min-inline-size: 0;
8789
8953
  flex: 1;
8790
8954
  }
8791
- .action[data-v-241766bc]:not(:has(> *)) {
8955
+ .action[data-v-af4b9641]:not(:has(> *)) {
8792
8956
  display: none;
8793
8957
  }
8794
- .dismiss[data-v-241766bc] {
8795
- margin-inline-end: calc(var(--ui-space-2) * -1);
8796
- }
8797
- [data-component~="ui-toast"][hidden][data-v-241766bc] {
8958
+ [data-component~="ui-toast"][hidden][data-v-af4b9641] {
8798
8959
  display: none;
8799
8960
  }
8800
8961
 
@@ -8823,7 +8984,7 @@ tbody tr[data-v-722ca2ea-s]:last-child > * {
8823
8984
  syntax: "*";
8824
8985
  inherits: false;
8825
8986
  }
8826
- [data-component~="ui-toast-region"][data-v-4234b07d] {
8987
+ [data-component~="ui-toast-region"][data-v-1a7d67f7] {
8827
8988
  /* Hooks do not inherit, so the parts below read them from the root. */
8828
8989
  --_ui-toast-region-surface: var(--ui-toast-region-surface);
8829
8990
  --_ui-toast-region-border: var(--ui-toast-region-border);
@@ -8853,81 +9014,93 @@ tbody tr[data-v-722ca2ea-s]:last-child > * {
8853
9014
  box-shadow: none;
8854
9015
  pointer-events: none;
8855
9016
  }
8856
- [data-component~="ui-toast-region"][data-v-4234b07d]:not(:popover-open) {
9017
+ [data-component~="ui-toast-region"][data-v-1a7d67f7]:not(:popover-open) {
8857
9018
  display: none;
8858
9019
  }
8859
- [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=top-start"][data-v-4234b07d],
8860
- [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom-start"][data-v-4234b07d] {
9020
+ [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=top-start"][data-v-1a7d67f7],
9021
+ [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom-start"][data-v-1a7d67f7] {
8861
9022
  left: auto;
8862
9023
  right: auto;
8863
9024
  inset-inline-start: calc(var(--ui-space-4) + env(safe-area-inset-left));
8864
9025
  transform: none;
8865
9026
  }
8866
- [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=top-end"][data-v-4234b07d],
8867
- [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom-end"][data-v-4234b07d] {
9027
+ [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=top-end"][data-v-1a7d67f7],
9028
+ [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom-end"][data-v-1a7d67f7] {
8868
9029
  left: auto;
8869
9030
  right: auto;
8870
9031
  inset-inline-end: calc(var(--ui-space-4) + env(safe-area-inset-right));
8871
9032
  transform: none;
8872
9033
  }
8873
- [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom"][data-v-4234b07d],
8874
- [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom-start"][data-v-4234b07d],
8875
- [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom-end"][data-v-4234b07d] {
9034
+ [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom"][data-v-1a7d67f7],
9035
+ [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom-start"][data-v-1a7d67f7],
9036
+ [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom-end"][data-v-1a7d67f7] {
8876
9037
  top: auto;
8877
9038
  bottom: calc(var(--ui-space-4) + env(safe-area-inset-bottom));
8878
9039
  }
8879
- [data-component~="ui-toast-region"] > .toast[data-v-4234b07d],
8880
- [data-component~="ui-toast-region"] > [data-v-4234b07d-s] {
9040
+ [data-component~="ui-toast-region"] > .toast[data-v-1a7d67f7],
9041
+ [data-component~="ui-toast-region"] > [data-v-1a7d67f7-s] {
8881
9042
  pointer-events: auto;
8882
9043
  }
8883
- .toast[data-v-4234b07d] {
9044
+ .toast[data-v-1a7d67f7] {
9045
+ --_ui-toast-region-accent: var(--ui-border-strong);
9046
+ --_ui-toast-region-tone-surface: var(--ui-surface-muted);
8884
9047
  display: grid;
8885
9048
  grid-template-columns: 1fr auto;
8886
9049
  gap: var(--ui-space-2);
8887
9050
  align-items: start;
8888
9051
  border: var(--ui-border-width) solid
8889
- var(--_ui-toast-region-border, var(--ui-overlay-border, var(--ui-border-strong)));
9052
+ var(--_ui-toast-region-border, var(--ui-overlay-border, var(--_ui-toast-region-accent)));
8890
9053
  border-radius: var(--_ui-toast-region-radius, var(--ui-overlay-radius, var(--ui-radius-lg)));
8891
9054
  padding: var(--ui-space-3) var(--ui-space-4);
9055
+ /* The close button's internal space supplies the rest of the trailing inset. */
9056
+ padding-inline-end: var(--ui-space-2);
8892
9057
  background: var(
8893
9058
  --_ui-toast-region-surface,
8894
- var(--ui-overlay-surface, var(--ui-surface-elevated))
9059
+ var(--ui-overlay-surface, var(--_ui-toast-region-tone-surface))
8895
9060
  );
8896
9061
  color: var(--ui-text-primary);
9062
+ font-family: var(--ui-font-family-sans);
9063
+ font-size: var(--ui-font-size-sm);
9064
+ font-weight: var(--ui-font-normal);
9065
+ line-height: var(--ui-line-height-md);
8897
9066
  box-shadow: var(
8898
9067
  --_ui-toast-region-shadow,
8899
9068
  var(--ui-overlay-shadow, var(--ui-elevation-overlay, var(--ui-shadow-lg)))
8900
9069
  );
8901
- animation: ui-toast-enter-4234b07d var(--_ui-toast-region-enter-duration, 0.32s)
9070
+ animation: ui-toast-enter-1a7d67f7 var(--_ui-toast-region-enter-duration, 0.32s)
8902
9071
  var(--ui-motion-ease-out, cubic-bezier(0.16, 1, 0.3, 1)) both;
8903
9072
  }
8904
- .toast[data-tone="info"][data-v-4234b07d] {
8905
- border-inline-start: var(--ui-accent-line-width) solid var(--ui-info-solid);
9073
+ .toast[data-tone="info"][data-v-1a7d67f7] {
9074
+ --_ui-toast-region-accent: var(--ui-info-solid);
9075
+ --_ui-toast-region-tone-surface: var(--ui-info-soft);
8906
9076
  }
8907
- .toast[data-tone="success"][data-v-4234b07d] {
8908
- border-inline-start: var(--ui-accent-line-width) solid var(--ui-success-solid);
9077
+ .toast[data-tone="success"][data-v-1a7d67f7] {
9078
+ --_ui-toast-region-accent: var(--ui-success-solid);
9079
+ --_ui-toast-region-tone-surface: var(--ui-success-soft);
8909
9080
  }
8910
- .toast[data-tone="warning"][data-v-4234b07d] {
8911
- border-inline-start: var(--ui-accent-line-width) solid var(--ui-warning-solid);
9081
+ .toast[data-tone="warning"][data-v-1a7d67f7] {
9082
+ --_ui-toast-region-accent: var(--ui-warning-solid);
9083
+ --_ui-toast-region-tone-surface: var(--ui-warning-soft);
8912
9084
  }
8913
- .toast[data-tone="danger"][data-v-4234b07d] {
8914
- border-inline-start: var(--ui-accent-line-width) solid var(--ui-danger-solid);
9085
+ .toast[data-tone="danger"][data-v-1a7d67f7] {
9086
+ --_ui-toast-region-accent: var(--ui-danger-solid);
9087
+ --_ui-toast-region-tone-surface: var(--ui-danger-soft);
8915
9088
  }
8916
9089
 
8917
9090
  /* Leaving slides on down and fades; the controller removes the toast when this ends. */
8918
- .toast.closing[data-v-4234b07d] {
8919
- animation: ui-toast-exit-4234b07d var(--_ui-toast-region-exit-duration, 0.22s) var(--ui-motion-ease) both;
9091
+ .toast.closing[data-v-1a7d67f7] {
9092
+ animation: ui-toast-exit-1a7d67f7 var(--_ui-toast-region-exit-duration, 0.22s) var(--ui-motion-ease) both;
8920
9093
  pointer-events: none;
8921
9094
  }
8922
9095
  :is([data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom"], [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom-start"], [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom-end"])
8923
- .toast[data-v-4234b07d] {
8924
- animation-name: ui-toast-enter-bottom-4234b07d;
9096
+ .toast[data-v-1a7d67f7] {
9097
+ animation-name: ui-toast-enter-bottom-1a7d67f7;
8925
9098
  }
8926
9099
  :is([data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom"], [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom-start"], [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom-end"])
8927
- .toast.closing[data-v-4234b07d] {
8928
- animation-name: ui-toast-exit-bottom-4234b07d;
9100
+ .toast.closing[data-v-1a7d67f7] {
9101
+ animation-name: ui-toast-exit-bottom-1a7d67f7;
8929
9102
  }
8930
- @keyframes ui-toast-enter-4234b07d {
9103
+ @keyframes ui-toast-enter-1a7d67f7 {
8931
9104
  from {
8932
9105
  opacity: 0;
8933
9106
  transform: translateY(-1rem);
@@ -8937,7 +9110,7 @@ to {
8937
9110
  transform: translateY(0);
8938
9111
  }
8939
9112
  }
8940
- @keyframes ui-toast-exit-4234b07d {
9113
+ @keyframes ui-toast-exit-1a7d67f7 {
8941
9114
  from {
8942
9115
  opacity: 1;
8943
9116
  transform: translateY(0);
@@ -8947,7 +9120,7 @@ to {
8947
9120
  transform: translateY(0.75rem);
8948
9121
  }
8949
9122
  }
8950
- @keyframes ui-toast-enter-bottom-4234b07d {
9123
+ @keyframes ui-toast-enter-bottom-1a7d67f7 {
8951
9124
  from {
8952
9125
  opacity: 0;
8953
9126
  transform: translateY(1rem);
@@ -8957,7 +9130,7 @@ to {
8957
9130
  transform: translateY(0);
8958
9131
  }
8959
9132
  }
8960
- @keyframes ui-toast-exit-bottom-4234b07d {
9133
+ @keyframes ui-toast-exit-bottom-1a7d67f7 {
8961
9134
  from {
8962
9135
  opacity: 1;
8963
9136
  transform: translateY(0);
@@ -8968,21 +9141,20 @@ to {
8968
9141
  }
8969
9142
  }
8970
9143
  @media (prefers-reduced-motion: reduce) {
8971
- .toast[data-v-4234b07d], .toast.closing[data-v-4234b07d] {
9144
+ .toast[data-v-1a7d67f7], .toast.closing[data-v-1a7d67f7] {
8972
9145
  animation: none;
8973
9146
  }
8974
9147
  }
8975
- .message[data-v-4234b07d] {
9148
+ .message[data-v-1a7d67f7] {
8976
9149
  min-inline-size: 0;
8977
9150
  align-self: center;
8978
9151
  }
8979
- .dismiss[data-v-4234b07d] {
9152
+ .dismiss[data-v-1a7d67f7] {
8980
9153
  align-self: center;
8981
- margin-inline-end: calc(var(--ui-space-2) * -1);
8982
9154
  }
8983
9155
 
8984
9156
  /* A component that sets its display still honours the hidden attribute on its root. */
8985
- [data-component~="ui-toast-region"][hidden][data-v-4234b07d] {
9157
+ [data-component~="ui-toast-region"][hidden][data-v-1a7d67f7] {
8986
9158
  display: none;
8987
9159
  }
8988
9160