@threadlabs/looma 0.26.26 → 0.27.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/components/shared/editor.js +4 -5
  2. package/components/shared/overlay.js +231 -55
  3. package/components/ui-affordance-scope/ui-affordance-scope.js +4 -8
  4. package/components/ui-badge/ui-badge.html +17 -3
  5. package/components/ui-card/ui-card.html +3 -0
  6. package/components/ui-dialog/ui-dialog.html +7 -5
  7. package/components/ui-dialog/ui-dialog.js +67 -7
  8. package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +6 -0
  9. package/components/ui-editor-mention-menu/ui-editor-mention-menu.js +5 -9
  10. package/components/ui-editor-slash-menu/ui-editor-slash-menu.html +6 -0
  11. package/components/ui-editor-slash-menu/ui-editor-slash-menu.js +5 -9
  12. package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +21 -4
  13. package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.js +50 -22
  14. package/components/ui-editor-table-overlay/ui-editor-table-overlay.js +4 -6
  15. package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +3 -11
  16. package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.js +33 -44
  17. package/components/ui-listbox/ui-listbox.html +22 -17
  18. package/components/ui-menu/ui-menu.js +5 -3
  19. package/components/ui-popover/ui-popover.js +3 -2
  20. package/components/ui-scroll-area/ui-scroll-area.html +16 -0
  21. package/components/ui-search-shell/ui-search-shell.html +1 -1
  22. package/components/ui-search-shell/ui-search-shell.js +3 -5
  23. package/components/ui-section/ui-section.html +3 -0
  24. package/components/ui-toast/ui-toast.html +2 -1
  25. package/components/ui-toast/ui-toast.js +18 -2
  26. package/components/ui-toast-region/ui-toast-region.js +11 -3
  27. package/dist/index.js +1 -1
  28. package/editor/chunks/extensions.js +2 -0
  29. package/editor/extensions/slash-command.d.ts +2 -0
  30. package/editor/mention-contract.d.ts +2 -0
  31. package/package.json +1 -1
  32. package/styles/ui-badge.css +16 -0
  33. package/styles/ui-card.css +3 -0
  34. package/styles/ui-dialog.css +4 -2
  35. package/styles/ui-editor-mention-menu.css +7 -1
  36. package/styles/ui-editor-slash-menu.css +7 -1
  37. package/styles/ui-editor-table-context-menu.css +29 -5
  38. package/styles/ui-editor-table-toolbar.css +3 -11
  39. package/styles/ui-listbox.css +6 -0
  40. package/styles/ui-scroll-area.css +13 -0
  41. package/styles/ui-search-shell.css +1 -1
  42. package/styles/ui-section.css +3 -0
  43. package/vanilla/UiBadge.d.ts +1 -1
  44. package/vanilla/UiBadge.js +1 -1
  45. package/vanilla/UiDialog.js +10 -6
  46. package/vanilla/UiListbox.js +10 -9
  47. package/vanilla/UiScrollArea.d.ts +1 -0
  48. package/vanilla/UiScrollArea.js +4 -4
  49. package/vue/UiBadge.d.ts +3 -3
  50. package/vue/UiBadge.vue +24 -6
  51. package/vue/UiCard.vue +3 -0
  52. package/vue/UiDialog.vue +12 -6
  53. package/vue/UiEditorMentionMenu.vue +6 -0
  54. package/vue/UiEditorSlashMenu.vue +6 -0
  55. package/vue/UiEditorTableContextMenu.vue +21 -4
  56. package/vue/UiEditorTableToolbar.vue +3 -11
  57. package/vue/UiListbox.vue +20 -15
  58. package/vue/UiScrollArea.d.ts +9 -0
  59. package/vue/UiScrollArea.vue +39 -1
  60. package/vue/UiSearchShell.vue +1 -1
  61. package/vue/UiSection.vue +3 -0
  62. package/vue/UiToast.vue +1 -1
  63. package/vue/chunks/UiBadge.js +5 -4
  64. package/vue/chunks/UiCard.js +1 -1
  65. package/vue/chunks/UiDialog.js +25 -8
  66. package/vue/chunks/UiEditorMentionMenu.js +1 -1
  67. package/vue/chunks/UiEditorSlashMenu.js +1 -1
  68. package/vue/chunks/UiEditorTableContextMenu.js +1 -1
  69. package/vue/chunks/UiEditorTableToolbar.js +1 -1
  70. package/vue/chunks/UiListbox.js +12 -12
  71. package/vue/chunks/UiScrollArea.js +33 -2
  72. package/vue/chunks/UiSearchShell.js +1 -1
  73. package/vue/chunks/UiSection.js +1 -1
  74. package/vue/chunks/UiToast.js +2 -2
  75. package/vue/components.css +332 -272
  76. package/vue/editor/index.js +225 -40
@@ -360,7 +360,7 @@ svg[data-v-abaeb064] {
360
360
  syntax: "*";
361
361
  inherits: false;
362
362
  }
363
- [data-component~="ui-badge"][data-v-491791b3] {
363
+ [data-component~="ui-badge"][data-v-3a29482a] {
364
364
  --_badge-surface: color-mix(in srgb, var(--ui-surface-subtle) 80%, var(--ui-surface-default));
365
365
  --_badge-text: var(--ui-text-secondary);
366
366
  /* Sit between the soft fill and its stronger theme ink. */
@@ -406,27 +406,27 @@ svg[data-v-abaeb064] {
406
406
 
407
407
  /* A constrained badge keeps its surface intact and ellipsizes only its label. The full
408
408
  text stays in the DOM for accessible names and consumers' selected values. */
409
- .label[data-v-491791b3] {
409
+ .label[data-v-3a29482a] {
410
410
  display: block;
411
411
  min-inline-size: 0;
412
412
  overflow: hidden;
413
413
  text-overflow: ellipsis;
414
414
  }
415
- .label[data-v-491791b3]:empty {
415
+ .label[data-v-3a29482a]:empty {
416
416
  display: none;
417
417
  }
418
418
 
419
419
  /* Icon content has its own flex item so label ellipsis never clips its strokes. */
420
- .icon[data-v-491791b3] {
420
+ .icon[data-v-3a29482a] {
421
421
  display: inline-flex;
422
422
  align-items: center;
423
423
  justify-content: center;
424
424
  flex: none;
425
425
  }
426
- .icon[data-v-491791b3]:empty {
426
+ .icon[data-v-3a29482a]:empty {
427
427
  display: none;
428
428
  }
429
- .icon svg[data-v-491791b3-s] {
429
+ .icon svg[data-v-3a29482a-s] {
430
430
  display: block;
431
431
  inline-size: 1em;
432
432
  block-size: 1em;
@@ -434,39 +434,39 @@ svg[data-v-abaeb064] {
434
434
  }
435
435
 
436
436
  /* Ordinary icon-plus-text children keep inline ellipsis, with explicit glyph spacing. */
437
- .label svg[data-v-491791b3-s] {
437
+ .label svg[data-v-3a29482a-s] {
438
438
  inline-size: 1em;
439
439
  block-size: 1em;
440
440
  vertical-align: middle;
441
441
  margin-inline-end: var(--ui-space-1);
442
442
  }
443
- .label[data-v-491791b3]:has(svg) {
443
+ .label[data-v-3a29482a]:has(svg) {
444
444
  text-box-trim: none;
445
445
  }
446
446
 
447
447
  /* Center the capital/baseline text box, while clipping only inline overflow for ellipsis.
448
448
  Vertical ink remains visible so trimming never cuts off ascenders or descenders. */
449
449
  @supports (text-box-trim: trim-both) {
450
- [data-component~="ui-badge"][data-v-491791b3] {
450
+ [data-component~="ui-badge"][data-v-3a29482a] {
451
451
  display: inline-block;
452
452
  min-block-size: var(--ui-badge-min-block-size, 1.5rem);
453
453
  text-align: center;
454
454
  align-content: center;
455
455
  text-box-trim: none;
456
456
  }
457
- [data-component~="ui-badge"][data-v-491791b3]:has(.icon:not(:empty)),
458
- [data-component~="ui-badge"][data-v-491791b3]:has(.label svg) {
457
+ [data-component~="ui-badge"][data-v-3a29482a]:has(.icon:not(:empty)),
458
+ [data-component~="ui-badge"][data-v-3a29482a]:has(.label svg) {
459
459
  display: inline-flex;
460
460
  text-box-trim: none;
461
461
  }
462
- .label[data-v-491791b3]:not(:has(svg)) {
462
+ .label[data-v-3a29482a]:not(:has(svg)) {
463
463
  text-box-trim: trim-both;
464
464
  text-box-edge: cap alphabetic;
465
465
  overflow-x: clip;
466
466
  overflow-y: visible;
467
467
  }
468
468
  }
469
- [data-component~="ui-badge"][data-ui-badge-state~="size=xs"][data-v-491791b3] {
469
+ [data-component~="ui-badge"][data-ui-badge-state~="size=xs"][data-v-3a29482a] {
470
470
  box-sizing: border-box;
471
471
  min-inline-size: 1rem;
472
472
  min-block-size: var(--ui-badge-min-block-size, 1rem);
@@ -476,56 +476,56 @@ svg[data-v-abaeb064] {
476
476
  font-size: var(--ui-badge-font-size, var(--ui-font-size-2xs));
477
477
  line-height: var(--ui-badge-line-height, 1);
478
478
  }
479
- [data-component~="ui-badge"][data-ui-badge-state~="size=sm"][data-v-491791b3] {
479
+ [data-component~="ui-badge"][data-ui-badge-state~="size=sm"][data-v-3a29482a] {
480
480
  font-size: var(--ui-badge-font-size, var(--ui-font-size-2xs));
481
481
  line-height: var(--ui-badge-line-height, 1);
482
482
  }
483
- [data-component~="ui-badge"][data-ui-badge-state~="tone=accent"][data-v-491791b3] {
483
+ [data-component~="ui-badge"][data-ui-badge-state~="tone=accent"][data-v-3a29482a] {
484
484
  --_badge-surface: var(--ui-accent-strong-surface, var(--ui-accent-solid));
485
485
  --_badge-border: var(--ui-accent-strong-surface, var(--ui-accent-solid));
486
486
  --_badge-text: var(--ui-accent-on-strong, var(--ui-text-on-accent));
487
487
  }
488
- [data-component~="ui-badge"][data-ui-badge-state~="tone=danger"][data-v-491791b3] {
488
+ [data-component~="ui-badge"][data-ui-badge-state~="tone=danger"][data-v-3a29482a] {
489
489
  --_badge-surface: var(--ui-danger-strong-surface, var(--ui-danger-solid));
490
490
  --_badge-border: var(--ui-danger-strong-surface, var(--ui-danger-solid));
491
491
  --_badge-text: var(--ui-danger-on-strong, var(--ui-text-on-accent));
492
492
  }
493
- [data-component~="ui-badge"][data-ui-badge-state~="tone=success"][data-v-491791b3] {
493
+ [data-component~="ui-badge"][data-ui-badge-state~="tone=success"][data-v-3a29482a] {
494
494
  --_badge-surface: var(--ui-success-strong-surface, var(--ui-success-solid));
495
495
  --_badge-border: var(--ui-success-strong-surface, var(--ui-success-solid));
496
496
  --_badge-text: var(--ui-success-on-strong, var(--ui-text-on-accent));
497
497
  }
498
- [data-component~="ui-badge"][data-ui-badge-state~="tone=warning"][data-v-491791b3] {
498
+ [data-component~="ui-badge"][data-ui-badge-state~="tone=warning"][data-v-3a29482a] {
499
499
  --_badge-surface: var(--ui-warning-strong-surface, var(--ui-warning-solid));
500
500
  --_badge-border: var(--ui-warning-strong-surface, var(--ui-warning-solid));
501
501
  --_badge-text: var(--ui-warning-on-strong, var(--ui-text-on-accent));
502
502
  }
503
- [data-component~="ui-badge"][data-ui-badge-state~="tone=info"][data-v-491791b3] {
503
+ [data-component~="ui-badge"][data-ui-badge-state~="tone=info"][data-v-3a29482a] {
504
504
  --_badge-surface: var(--ui-info-strong-surface, var(--ui-info-solid));
505
505
  --_badge-border: var(--ui-info-strong-surface, var(--ui-info-solid));
506
506
  --_badge-text: var(--ui-info-on-strong, var(--ui-text-on-accent));
507
507
  }
508
- [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=accent"][data-v-491791b3] {
508
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=accent"][data-v-3a29482a] {
509
509
  --_badge-surface: color-mix(in srgb, var(--ui-accent-solid) 19%, var(--ui-surface-default));
510
510
  --_badge-border: color-mix(in srgb, var(--ui-accent-solid) 25%, var(--ui-surface-default));
511
511
  --_badge-text: var(--ui-accent-subtle-text, var(--ui-accent-solid));
512
512
  }
513
- [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=danger"][data-v-491791b3] {
513
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=danger"][data-v-3a29482a] {
514
514
  --_badge-surface: color-mix(in srgb, var(--ui-danger-solid) 19%, var(--ui-surface-default));
515
515
  --_badge-border: color-mix(in srgb, var(--ui-danger-solid) 25%, var(--ui-surface-default));
516
516
  --_badge-text: var(--ui-danger-subtle-text, var(--ui-danger-solid));
517
517
  }
518
- [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=success"][data-v-491791b3] {
518
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=success"][data-v-3a29482a] {
519
519
  --_badge-surface: color-mix(in srgb, var(--ui-success-solid) 19%, var(--ui-surface-default));
520
520
  --_badge-border: color-mix(in srgb, var(--ui-success-solid) 25%, var(--ui-surface-default));
521
521
  --_badge-text: var(--ui-success-subtle-text, var(--ui-success-solid));
522
522
  }
523
- [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=warning"][data-v-491791b3] {
523
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=warning"][data-v-3a29482a] {
524
524
  --_badge-surface: color-mix(in srgb, var(--ui-warning-solid) 19%, var(--ui-surface-default));
525
525
  --_badge-border: color-mix(in srgb, var(--ui-warning-solid) 25%, var(--ui-surface-default));
526
526
  --_badge-text: var(--ui-warning-subtle-text, var(--ui-warning-solid));
527
527
  }
528
- [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=info"][data-v-491791b3] {
528
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=info"][data-v-3a29482a] {
529
529
  --_badge-surface: color-mix(in srgb, var(--ui-info-solid) 19%, var(--ui-surface-default));
530
530
  --_badge-border: color-mix(in srgb, var(--ui-info-solid) 25%, var(--ui-surface-default));
531
531
  --_badge-text: var(--ui-info-subtle-text, var(--ui-info-solid));
@@ -533,7 +533,7 @@ svg[data-v-abaeb064] {
533
533
 
534
534
  /* A solid colour fills with the ink. Its text is the page surface, mixed at 0% only so that it too is
535
535
  invalid while the hook is unset. */
536
- [data-component~="ui-badge"][data-ui-badge-state~="variant=solid"][data-v-491791b3] {
536
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=solid"][data-v-3a29482a] {
537
537
  --_badge-color-surface: var(--_badge-color-ink);
538
538
  --_badge-color-border: var(--_badge-color-ink);
539
539
  --_badge-color-text: color-mix(in oklab, var(--_ui-badge-color) 0%, var(--ui-surface-default));
@@ -541,7 +541,7 @@ svg[data-v-abaeb064] {
541
541
 
542
542
  /* A translucent inverse surface picks up its filled control's tone. Deepen the tone ink
543
543
  toward the theme text to retain contrast against that composed surface. */
544
- [data-component~="ui-badge"][data-ui-badge-state~="variant=inverse"][data-v-491791b3] {
544
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=inverse"][data-v-3a29482a] {
545
545
  --_badge-color-surface: color-mix(
546
546
  in srgb,
547
547
  color-mix(in oklab, var(--_ui-badge-color) 0%, var(--ui-surface-default)) 88%,
@@ -567,7 +567,7 @@ svg[data-v-abaeb064] {
567
567
 
568
568
  /* A circular count has a tone-tinted surface, a separate lighter rim and readable tone ink.
569
569
  Dark controls retain a shaded surface and theme ink with a quieter rim. */
570
- [data-component~="ui-badge"][data-ui-badge-state~="variant=inverse"][data-ui-badge-state~="shape=circle"][data-v-491791b3] {
570
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=inverse"][data-ui-badge-state~="shape=circle"][data-v-3a29482a] {
571
571
  --_badge-color-surface: light-dark(
572
572
  color-mix(
573
573
  in srgb,
@@ -633,12 +633,24 @@ svg[data-v-abaeb064] {
633
633
  box-shadow: 0 1px 1px light-dark(rgb(0 0 0 / 0.08), rgb(0 0 0 / 0.12));
634
634
  }
635
635
 
636
+ /* A count can keep its containing control's contrasting ink instead of reversing it.
637
+ The faint fill is painted over that control; no second rim or shadow competes with it. */
638
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=overlay"][data-v-3a29482a] {
639
+ --_badge-outline-surface: var(
640
+ --ui-badge-surface,
641
+ color-mix(in srgb, currentColor 10%, transparent)
642
+ );
643
+ color: var(--ui-badge-text, inherit);
644
+ border-color: var(--ui-badge-border, transparent);
645
+ box-shadow: none;
646
+ }
647
+
636
648
  /* Neutral reverses a subtle surface/ink pair rather than a strong tone. Keep its original
637
649
  surface ink: moving it toward dark-theme primary text would reduce overlay contrast. */
638
- [data-component~="ui-badge"][data-ui-badge-state~="variant=inverse"][data-ui-badge-state~="tone=neutral"][data-v-491791b3] {
650
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=inverse"][data-ui-badge-state~="tone=neutral"][data-v-3a29482a] {
639
651
  color: var(--ui-badge-text, var(--_badge-color-text, var(--_badge-surface)));
640
652
  }
641
- [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-v-491791b3] {
653
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-v-3a29482a] {
642
654
  --_badge-surface: var(--ui-surface-default);
643
655
  --_badge-border: var(--ui-border-strong);
644
656
  --_badge-text: var(--ui-text-secondary);
@@ -646,29 +658,29 @@ svg[data-v-abaeb064] {
646
658
  --_badge-color-surface: initial;
647
659
  --_badge-color-border: var(--_badge-color-ink);
648
660
  }
649
- [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=accent"][data-v-491791b3] {
661
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=accent"][data-v-3a29482a] {
650
662
  --_badge-border: var(--ui-accent-solid);
651
663
  --_badge-text: var(--ui-accent-subtle-text, var(--ui-accent-solid));
652
664
  }
653
- [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=danger"][data-v-491791b3] {
665
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=danger"][data-v-3a29482a] {
654
666
  --_badge-border: var(--ui-danger-solid);
655
667
  --_badge-text: var(--ui-danger-subtle-text, var(--ui-danger-solid));
656
668
  }
657
- [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=success"][data-v-491791b3] {
669
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=success"][data-v-3a29482a] {
658
670
  --_badge-border: var(--ui-success-solid);
659
671
  --_badge-text: var(--ui-success-subtle-text, var(--ui-success-solid));
660
672
  }
661
- [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=warning"][data-v-491791b3] {
673
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=warning"][data-v-3a29482a] {
662
674
  --_badge-border: var(--ui-warning-solid);
663
675
  --_badge-text: var(--ui-warning-subtle-text, var(--ui-warning-solid));
664
676
  }
665
- [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=info"][data-v-491791b3] {
677
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=info"][data-v-3a29482a] {
666
678
  --_badge-border: var(--ui-info-solid);
667
679
  --_badge-text: var(--ui-info-subtle-text, var(--ui-info-solid));
668
680
  }
669
681
 
670
682
  /* An icon mark keeps the existing tone recipe and follows the global spacing and radius. */
671
- [data-component~="ui-badge"][data-ui-badge-state~="shape=square"][data-v-491791b3] {
683
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=square"][data-v-3a29482a] {
672
684
  --_badge-square-size: var(--ui-badge-square-size, calc(var(--ui-space-4) * 2));
673
685
  display: inline-flex;
674
686
  box-sizing: border-box;
@@ -681,29 +693,29 @@ svg[data-v-abaeb064] {
681
693
  border-radius: var(--ui-radius-md);
682
694
  text-box-trim: none;
683
695
  }
684
- [data-component~="ui-badge"][data-ui-badge-state~="shape=square"][data-ui-badge-state~="size=xs"][data-v-491791b3] {
696
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=square"][data-ui-badge-state~="size=xs"][data-v-3a29482a] {
685
697
  --_badge-square-size: var(--ui-badge-square-size, calc(var(--ui-space-3) * 2));
686
698
  }
687
- [data-component~="ui-badge"][data-ui-badge-state~="shape=square"][data-ui-badge-state~="size=lg"][data-v-491791b3] {
699
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=square"][data-ui-badge-state~="size=lg"][data-v-3a29482a] {
688
700
  --_badge-square-size: var(
689
701
  --ui-badge-square-size,
690
702
  calc(var(--ui-space-4) * 2 + var(--ui-space-2))
691
703
  );
692
704
  }
693
- [data-component~="ui-badge"][data-ui-badge-state~="shape=square"] .label[data-v-491791b3] {
705
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=square"] .label[data-v-3a29482a] {
694
706
  display: inline-flex;
695
707
  align-items: center;
696
708
  justify-content: center;
697
709
  }
698
- [data-component~="ui-badge"][data-ui-badge-state~="shape=square"] .label svg[data-v-491791b3-s] {
710
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=square"] .label svg[data-v-3a29482a-s] {
699
711
  margin-inline-end: 0;
700
712
  }
701
- [data-component~="ui-badge"][data-ui-badge-state~="shape=square"] .label[data-v-491791b3]:empty {
713
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=square"] .label[data-v-3a29482a]:empty {
702
714
  display: none;
703
715
  }
704
716
 
705
717
  /* A visible glyph needs fixed geometry, unlike a content-sized pill or a hidden-label dot. */
706
- [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"][data-v-491791b3] {
718
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"][data-v-3a29482a] {
707
719
  --_badge-circle-size: var(--ui-badge-circle-size, calc(var(--ui-space-3) * 2));
708
720
  display: inline-flex;
709
721
  flex: none;
@@ -715,31 +727,34 @@ svg[data-v-abaeb064] {
715
727
  border-radius: var(--ui-radius-round);
716
728
  text-box-trim: none;
717
729
  }
718
- [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"][data-ui-badge-state~="size=xs"][data-v-491791b3] {
730
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"][data-ui-badge-state~="size=sm"][data-ui-badge-state~="variant=overlay"][data-v-3a29482a] {
731
+ --_badge-circle-size: var(--ui-badge-circle-size, calc(var(--ui-space-4) + var(--ui-space-1)));
732
+ }
733
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"][data-ui-badge-state~="size=xs"][data-v-3a29482a] {
719
734
  --_badge-circle-size: var(--ui-badge-circle-size, var(--ui-space-4));
720
735
  }
721
- [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"][data-ui-badge-state~="size=lg"][data-v-491791b3] {
736
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"][data-ui-badge-state~="size=lg"][data-v-3a29482a] {
722
737
  --_badge-circle-size: var(--ui-badge-circle-size, calc(var(--ui-space-4) * 2));
723
738
  }
724
- [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"] .label[data-v-491791b3] {
739
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"] .label[data-v-3a29482a] {
725
740
  display: inline-flex;
726
741
  align-items: center;
727
742
  justify-content: center;
728
743
  line-height: 1;
729
744
  text-box-trim: none;
730
745
  }
731
- [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"] .label svg[data-v-491791b3-s] {
746
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"] .label svg[data-v-3a29482a-s] {
732
747
  margin-inline-end: 0;
733
748
  }
734
- [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"] .label[data-v-491791b3]:empty {
749
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"] .label[data-v-3a29482a]:empty {
735
750
  display: none;
736
751
  }
737
752
 
738
753
  /* Center capital and numeral ink, rather than the font's ascent/descent line box.
739
754
  Icon labels retain flex geometry; untrimmed browsers keep that fallback too. */
740
755
  @supports (text-box-trim: trim-both) {
741
- [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"] .label[data-v-491791b3]:not(:has(svg)),
742
- [data-component~="ui-badge"][data-ui-badge-state~="shape=square"] .label[data-v-491791b3]:not(:has(svg)) {
756
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"] .label[data-v-3a29482a]:not(:has(svg)),
757
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=square"] .label[data-v-3a29482a]:not(:has(svg)) {
743
758
  display: block;
744
759
  text-box-trim: trim-both;
745
760
  text-box-edge: cap alphabetic;
@@ -748,7 +763,7 @@ svg[data-v-abaeb064] {
748
763
  }
749
764
 
750
765
  /* A dot uses the badge's tone recipe; only its silhouette and visible label change. */
751
- [data-component~="ui-badge"][data-ui-badge-state~="shape=dot"][data-v-491791b3] {
766
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=dot"][data-v-3a29482a] {
752
767
  position: relative;
753
768
  box-sizing: border-box;
754
769
  flex: none;
@@ -760,7 +775,7 @@ svg[data-v-abaeb064] {
760
775
  border-radius: var(--ui-radius-round);
761
776
  text-box-trim: none;
762
777
  }
763
- [data-component~="ui-badge"][data-ui-badge-state~="shape=dot"] .label[data-v-491791b3] {
778
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=dot"] .label[data-v-3a29482a] {
764
779
  position: absolute;
765
780
  inline-size: 1px;
766
781
  block-size: 1px;
@@ -771,7 +786,7 @@ svg[data-v-abaeb064] {
771
786
 
772
787
  /* The clipped point needs an inset surface over an outer border-colour shape: a native border
773
788
  has no diagonal edge to follow. Keep this edge for every tag variant. */
774
- [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-491791b3] {
789
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-3a29482a] {
775
790
  --_badge-point: var(--ui-badge-point, var(--ui-space-2));
776
791
 
777
792
  position: relative;
@@ -788,7 +803,7 @@ svg[data-v-abaeb064] {
788
803
  0 100%
789
804
  );
790
805
  }
791
- [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-491791b3]::before {
806
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-3a29482a]::before {
792
807
  content: "";
793
808
  position: absolute;
794
809
  inset: 0;
@@ -803,37 +818,37 @@ svg[data-v-abaeb064] {
803
818
  );
804
819
  pointer-events: none;
805
820
  }
806
- [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-ui-badge-state~="variant=inverse"][data-v-491791b3] {
821
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-ui-badge-state~="variant=inverse"][data-v-3a29482a] {
807
822
  background: var(--ui-badge-border, var(--_badge-color-border, var(--_badge-text)));
808
823
  }
809
- [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-491791b3]:dir(rtl) {
824
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-3a29482a]:dir(rtl) {
810
825
  padding-inline-end: var(--ui-badge-padding-inline, var(--ui-space-2));
811
826
  padding-inline-start: calc(
812
827
  var(--ui-badge-padding-inline, var(--ui-space-2)) + var(--_badge-point)
813
828
  );
814
829
  clip-path: polygon(var(--_badge-point) 0, 100% 0, 100% 100%, var(--_badge-point) 100%, 0 50%);
815
830
  }
816
- [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-491791b3]:dir(rtl)::before {
831
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-3a29482a]:dir(rtl)::before {
817
832
  clip-path: polygon(var(--_badge-point) 0, 100% 0, 100% 100%, var(--_badge-point) 100%, 0 50%);
818
833
  }
819
834
  @media (forced-colors: active) {
820
- [data-component~="ui-badge"][data-ui-badge-state~="shape=dot"][data-v-491791b3] {
835
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=dot"][data-v-3a29482a] {
821
836
  forced-color-adjust: none;
822
837
  border-color: CanvasText;
823
838
  background: CanvasText;
824
839
  }
825
- [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-491791b3] {
840
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-3a29482a] {
826
841
  forced-color-adjust: none;
827
842
  background: CanvasText;
828
843
  color: CanvasText;
829
844
  }
830
- [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-491791b3]::before {
845
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-3a29482a]::before {
831
846
  background: Canvas;
832
847
  }
833
848
  }
834
849
 
835
850
  /* A component that sets its display still honours the hidden attribute on its root. */
836
- [data-component~="ui-badge"][hidden][data-v-491791b3] {
851
+ [data-component~="ui-badge"][hidden][data-v-3a29482a] {
837
852
  display: none;
838
853
  }
839
854
 
@@ -1581,7 +1596,7 @@ html[data-ui-input-modality="touch"]
1581
1596
 
1582
1597
  /* A surface that groups content. Its children stack with even space between them, so a card
1583
1598
  needs no layout of its own. */
1584
- [data-component~="ui-card"][data-v-150bfc3d] {
1599
+ [data-component~="ui-card"][data-v-b5f8424c] {
1585
1600
  --_ui-card-surface: var(--ui-surface-raised);
1586
1601
  --_ui-selection-context-surface: initial;
1587
1602
  --_ui-selection-context-border: initial;
@@ -1597,56 +1612,59 @@ html[data-ui-input-modality="touch"]
1597
1612
  background: var(--_ui-card-surface);
1598
1613
  color: var(--ui-text-primary);
1599
1614
  }
1600
- [data-component~="ui-card"][data-ui-card-state~="padding=xs"][data-v-150bfc3d] {
1615
+ [data-component~="ui-card"][data-ui-card-state~="padding=xs"][data-v-b5f8424c] {
1601
1616
  gap: var(--ui-space-1);
1602
1617
  padding: var(--ui-space-2);
1603
1618
  }
1604
- [data-component~="ui-card"][data-ui-card-state~="padding=sm"][data-v-150bfc3d] {
1619
+ [data-component~="ui-card"][data-ui-card-state~="padding=sm"][data-v-b5f8424c] {
1605
1620
  gap: var(--ui-space-2);
1606
1621
  padding: var(--ui-space-3);
1607
1622
  }
1608
- [data-component~="ui-card"][data-ui-card-state~="padding=lg"][data-v-150bfc3d] {
1623
+ [data-component~="ui-card"][data-ui-card-state~="padding=lg"][data-v-b5f8424c] {
1609
1624
  padding: var(--ui-space-6);
1610
1625
  }
1611
- [data-component~="ui-card"][data-ui-card-state~="variant=subtle"][data-v-150bfc3d] {
1626
+ [data-component~="ui-card"][data-ui-card-state~="variant=subtle"][data-v-b5f8424c] {
1612
1627
  border-color: transparent;
1613
1628
  --_ui-card-surface: var(--ui-surface-muted);
1614
1629
  }
1615
- [data-component~="ui-card"][data-ui-card-state~="variant=elevated"][data-v-150bfc3d] {
1630
+ [data-component~="ui-card"][data-ui-card-state~="variant=elevated"][data-v-b5f8424c] {
1616
1631
  border-color: var(--ui-border-subtle);
1617
1632
  box-shadow: var(--ui-shadow-lg);
1618
1633
  }
1619
- [data-component~="ui-card"][data-ui-card-state~="tone=accent"][data-v-150bfc3d] {
1634
+ [data-component~="ui-card"][data-ui-card-state~="tone=accent"][data-v-b5f8424c] {
1620
1635
  border-color: color-mix(in srgb, var(--ui-accent) 25%, var(--ui-border-default));
1621
1636
  --_ui-card-surface: color-mix(in srgb, var(--ui-accent) 6%, var(--ui-surface-default));
1622
1637
  }
1623
- [data-component~="ui-card"][data-ui-card-state~="tone=info"][data-v-150bfc3d] {
1638
+ [data-component~="ui-card"][data-ui-card-state~="tone=info"][data-v-b5f8424c] {
1624
1639
  border-color: color-mix(in srgb, var(--ui-info) 25%, var(--ui-border-default));
1625
1640
  --_ui-card-surface: color-mix(in srgb, var(--ui-info) 6%, var(--ui-surface-default));
1626
1641
  }
1627
- [data-component~="ui-card"][data-ui-card-state~="tone=success"][data-v-150bfc3d] {
1642
+ [data-component~="ui-card"][data-ui-card-state~="tone=success"][data-v-b5f8424c] {
1628
1643
  border-color: color-mix(in srgb, var(--ui-success) 25%, var(--ui-border-default));
1629
1644
  --_ui-card-surface: color-mix(in srgb, var(--ui-success) 6%, var(--ui-surface-default));
1630
1645
  }
1631
- [data-component~="ui-card"][data-ui-card-state~="tone=warning"][data-v-150bfc3d] {
1646
+ [data-component~="ui-card"][data-ui-card-state~="tone=warning"][data-v-b5f8424c] {
1632
1647
  border-color: color-mix(in srgb, var(--ui-warning) 25%, var(--ui-border-default));
1633
1648
  --_ui-card-surface: color-mix(in srgb, var(--ui-warning) 6%, var(--ui-surface-default));
1634
1649
  }
1635
- [data-component~="ui-card"][data-ui-card-state~="variant=subtle"][data-v-150bfc3d]:is([data-ui-card-state~="tone=accent"], [data-ui-card-state~="tone=info"], [data-ui-card-state~="tone=success"], [data-ui-card-state~="tone=warning"]) {
1650
+ [data-component~="ui-card"][data-ui-card-state~="variant=subtle"][data-v-b5f8424c]:is([data-ui-card-state~="tone=accent"], [data-ui-card-state~="tone=info"], [data-ui-card-state~="tone=success"], [data-ui-card-state~="tone=warning"]) {
1636
1651
  border-color: transparent;
1637
1652
  }
1638
- [data-component~="ui-card"][data-ui-card-state~="tone=danger"][data-v-150bfc3d] {
1653
+ [data-component~="ui-card"][data-ui-card-state~="tone=danger"][data-v-b5f8424c] {
1639
1654
  border-color: color-mix(in srgb, var(--ui-danger) 45%, var(--ui-border-default));
1640
1655
  border-inline-start: var(--ui-accent-line-width) solid var(--ui-danger);
1656
+ /* An accent edge keeps the corners on its side straight. */
1657
+ border-start-start-radius: 0;
1658
+ border-end-start-radius: 0;
1641
1659
  --_ui-card-surface: var(--ui-danger-soft);
1642
1660
  }
1643
1661
 
1644
1662
  /* A colored panel shades rows in its own hue, without changing button intent. */
1645
- [data-component~="ui-card"][data-ui-card-state~="tone=accent"][data-v-150bfc3d],
1646
- [data-component~="ui-card"][data-ui-card-state~="tone=info"][data-v-150bfc3d],
1647
- [data-component~="ui-card"][data-ui-card-state~="tone=success"][data-v-150bfc3d],
1648
- [data-component~="ui-card"][data-ui-card-state~="tone=warning"][data-v-150bfc3d],
1649
- [data-component~="ui-card"][data-ui-card-state~="tone=danger"][data-v-150bfc3d] {
1663
+ [data-component~="ui-card"][data-ui-card-state~="tone=accent"][data-v-b5f8424c],
1664
+ [data-component~="ui-card"][data-ui-card-state~="tone=info"][data-v-b5f8424c],
1665
+ [data-component~="ui-card"][data-ui-card-state~="tone=success"][data-v-b5f8424c],
1666
+ [data-component~="ui-card"][data-ui-card-state~="tone=warning"][data-v-b5f8424c],
1667
+ [data-component~="ui-card"][data-ui-card-state~="tone=danger"][data-v-b5f8424c] {
1650
1668
  --_ui-selection-context-surface: light-dark(
1651
1669
  oklch(from var(--_ui-card-surface) calc(l - 0.045) calc(max(c, min(0.045, c * 3))) h),
1652
1670
  oklch(from var(--_ui-card-surface) calc(l + 0.045) calc(max(c, min(0.045, c * 3))) h)
@@ -1657,21 +1675,21 @@ html[data-ui-input-modality="touch"]
1657
1675
  );
1658
1676
  --_ui-selection-context-text: var(--ui-text-primary);
1659
1677
  }
1660
- [data-component~="ui-card"][data-ui-card-state~="size=sm"][data-v-150bfc3d] {
1678
+ [data-component~="ui-card"][data-ui-card-state~="size=sm"][data-v-b5f8424c] {
1661
1679
  inline-size: min(22rem, calc(100vw - var(--ui-space-2) * 2));
1662
1680
  max-inline-size: min(22rem, calc(100vw - var(--ui-space-2) * 2));
1663
1681
  }
1664
- [data-component~="ui-card"][data-ui-card-state~="size=md"][data-v-150bfc3d] {
1682
+ [data-component~="ui-card"][data-ui-card-state~="size=md"][data-v-b5f8424c] {
1665
1683
  inline-size: min(28rem, calc(100vw - var(--ui-space-2) * 2));
1666
1684
  max-inline-size: min(28rem, calc(100vw - var(--ui-space-2) * 2));
1667
1685
  }
1668
- [data-component~="ui-card"][data-ui-card-state~="size=lg"][data-v-150bfc3d] {
1686
+ [data-component~="ui-card"][data-ui-card-state~="size=lg"][data-v-b5f8424c] {
1669
1687
  inline-size: min(36rem, calc(100vw - var(--ui-space-2) * 2));
1670
1688
  max-inline-size: min(36rem, calc(100vw - var(--ui-space-2) * 2));
1671
1689
  }
1672
1690
 
1673
1691
  /* A component that sets its display still honours the hidden attribute on its root. */
1674
- [data-component~="ui-card"][hidden][data-v-150bfc3d] {
1692
+ [data-component~="ui-card"][hidden][data-v-b5f8424c] {
1675
1693
  display: none;
1676
1694
  }
1677
1695
 
@@ -2817,10 +2835,10 @@ dd[data-v-ac017b1f] {
2817
2835
  /* The controller sets each fade length from overflow and scroll position. The mask blends
2818
2836
  into whatever is behind the area without needing to know its colour. Before upgrade, its
2819
2837
  zero-length defaults leave the authored scroll area fully visible. */
2820
- [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="fill"][data-v-a1ccf697] {
2838
+ [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="fill"][data-v-9a5bb175] {
2821
2839
  flex: 1;
2822
2840
  }
2823
- [data-component~="ui-scroll-area"][data-v-a1ccf697] {
2841
+ [data-component~="ui-scroll-area"][data-v-9a5bb175] {
2824
2842
  display: block;
2825
2843
  box-sizing: border-box;
2826
2844
  min-block-size: 0;
@@ -2839,41 +2857,53 @@ dd[data-v-ac017b1f] {
2839
2857
  transparent
2840
2858
  );
2841
2859
  }
2842
- .content[data-v-a1ccf697] {
2860
+ .content[data-v-9a5bb175] {
2843
2861
  display: flow-root;
2844
2862
  }
2845
2863
 
2846
2864
  /* Trim projected edges without changing spacing inside an item. */
2847
2865
  [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="trim"]
2848
2866
  .content
2849
- > [data-v-a1ccf697-s]:first-child {
2867
+ > [data-v-9a5bb175-s]:first-child {
2850
2868
  margin-block-start: 0;
2851
2869
  }
2852
2870
  [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="trim"]
2853
2871
  .content
2854
- > [data-v-a1ccf697-s]:last-child {
2872
+ > [data-v-9a5bb175-s]:last-child {
2855
2873
  margin-block-end: 0;
2856
2874
  }
2857
- [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="orientation=horizontal"][data-v-a1ccf697] {
2875
+ [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="orientation=horizontal"][data-v-9a5bb175] {
2858
2876
  overflow-x: auto;
2859
2877
  overflow-y: hidden;
2860
2878
  --_ui-scroll-fade-direction: var(--_ui-scroll-fade-inline);
2861
2879
  }
2862
- [data-component~="ui-scroll-area"][data-v-a1ccf697]:dir(rtl) {
2880
+ [data-component~="ui-scroll-area"][data-v-9a5bb175]:dir(rtl) {
2863
2881
  --_ui-scroll-fade-inline: to left;
2864
2882
  }
2865
- [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="size=sm"][data-v-a1ccf697] {
2883
+ [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="size=sm"][data-v-9a5bb175] {
2866
2884
  max-block-size: calc(9.375rem + var(--ui-scroll-fade-size, 24px));
2867
2885
  }
2868
- [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="size=md"][data-v-a1ccf697] {
2886
+ [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="size=md"][data-v-9a5bb175] {
2869
2887
  max-block-size: 20rem;
2870
2888
  }
2871
- [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="size=lg"][data-v-a1ccf697] {
2889
+ [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="size=lg"][data-v-9a5bb175] {
2872
2890
  max-block-size: 30rem;
2873
2891
  }
2892
+ [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="padding=xs"][data-v-9a5bb175] {
2893
+ padding: var(--ui-space-2);
2894
+ }
2895
+ [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="padding=sm"][data-v-9a5bb175] {
2896
+ padding: var(--ui-space-3);
2897
+ }
2898
+ [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="padding=md"][data-v-9a5bb175] {
2899
+ padding: var(--ui-space-5);
2900
+ }
2901
+ [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="padding=lg"][data-v-9a5bb175] {
2902
+ padding: var(--ui-space-6);
2903
+ }
2874
2904
 
2875
2905
  /* A component that sets its display still honours the hidden attribute on its root. */
2876
- [data-component~="ui-scroll-area"][hidden][data-v-a1ccf697] {
2906
+ [data-component~="ui-scroll-area"][hidden][data-v-9a5bb175] {
2877
2907
  display: none;
2878
2908
  }
2879
2909
 
@@ -2906,7 +2936,7 @@ dd[data-v-ac017b1f] {
2906
2936
  syntax: "*";
2907
2937
  inherits: false;
2908
2938
  }
2909
- [data-component~="ui-dialog"][data-v-6d90ae32] {
2939
+ [data-component~="ui-dialog"][data-v-1ec9644b] {
2910
2940
  /* Hooks do not inherit, so the parts below read them from the root. */
2911
2941
  --_ui-dialog-duration: var(--ui-dialog-duration);
2912
2942
 
@@ -2942,21 +2972,21 @@ dd[data-v-ac017b1f] {
2942
2972
  display var(--ui-dialog-duration, var(--ui-motion-base)) var(--ui-motion-ease) allow-discrete,
2943
2973
  overlay var(--ui-dialog-duration, var(--ui-motion-base)) var(--ui-motion-ease) allow-discrete;
2944
2974
  }
2945
- [data-component~="ui-dialog"][open][data-v-6d90ae32] {
2975
+ [data-component~="ui-dialog"][open][data-v-1ec9644b] {
2946
2976
  display: flex;
2947
2977
  visibility: visible;
2948
2978
  pointer-events: auto;
2949
2979
  opacity: 1;
2950
2980
  transform: scale(1);
2951
- animation: ui-dialog-enter-6d90ae32 var(--ui-dialog-duration, var(--ui-motion-base)) var(--ui-motion-ease);
2981
+ animation: ui-dialog-enter-1ec9644b var(--ui-dialog-duration, var(--ui-motion-base)) var(--ui-motion-ease);
2952
2982
  }
2953
- [data-component~="ui-dialog"][data-ui-dialog-state~="size=sm"][data-v-6d90ae32] {
2983
+ [data-component~="ui-dialog"][data-ui-dialog-state~="size=sm"][data-v-1ec9644b] {
2954
2984
  --_ui-dialog-size: 360px;
2955
2985
  }
2956
- [data-component~="ui-dialog"][data-ui-dialog-state~="size=lg"][data-v-6d90ae32] {
2986
+ [data-component~="ui-dialog"][data-ui-dialog-state~="size=lg"][data-v-1ec9644b] {
2957
2987
  --_ui-dialog-size: 640px;
2958
2988
  }
2959
- [data-component~="ui-dialog"][data-ui-dialog-state~="size=fullscreen"][data-v-6d90ae32] {
2989
+ [data-component~="ui-dialog"][data-ui-dialog-state~="size=fullscreen"][data-v-1ec9644b] {
2960
2990
  inset: 0;
2961
2991
  inline-size: 100%;
2962
2992
  block-size: 100dvh;
@@ -2964,21 +2994,24 @@ dd[data-v-ac017b1f] {
2964
2994
  margin: 0;
2965
2995
  border-radius: var(--ui-dialog-radius, 0);
2966
2996
  }
2967
- [data-component~="ui-dialog"][data-ui-dialog-state~="alert"] .close[data-v-6d90ae32] {
2997
+ [data-component~="ui-dialog"][data-ui-dialog-state~="alert"] .close[data-v-1ec9644b] {
2968
2998
  display: none;
2969
2999
  }
2970
3000
 
2971
3001
  /* Own the layout wrapper; nested component roots are outside these scoped rules. */
2972
- header[data-v-6d90ae32] {
3002
+ header[data-v-1ec9644b] {
2973
3003
  display: flex;
2974
3004
  align-items: center;
2975
3005
  gap: var(--ui-space-3);
2976
3006
  flex: none;
2977
- padding: var(--ui-space-3) var(--ui-space-3) var(--ui-space-3) var(--ui-space-5);
3007
+ /* The title's ink sits inside its line box and the taller close target. Balance that
3008
+ visible top inset against the action row's bottom inset, not just the boxes. */
3009
+ padding: calc(var(--ui-space-3) + var(--ui-space-1) / 2) var(--ui-space-3) var(--ui-space-3)
3010
+ var(--ui-space-5);
2978
3011
  }
2979
3012
 
2980
3013
  /* :host-qualified so page heading rules that reach in cannot outrank the dialog chrome. */
2981
- [data-component~="ui-dialog"] .title[data-v-6d90ae32] {
3014
+ [data-component~="ui-dialog"] .title[data-v-1ec9644b] {
2982
3015
  flex: 1;
2983
3016
  min-inline-size: 0;
2984
3017
  margin: 0;
@@ -2990,7 +3023,7 @@ header[data-v-6d90ae32] {
2990
3023
  font-weight: var(--ui-font-semibold);
2991
3024
  line-height: var(--ui-line-height-tight);
2992
3025
  }
2993
- .close[data-v-6d90ae32] {
3026
+ .close[data-v-1ec9644b] {
2994
3027
  display: inline-grid;
2995
3028
  place-items: center;
2996
3029
  flex: none;
@@ -3009,8 +3042,8 @@ header[data-v-6d90ae32] {
3009
3042
  }
3010
3043
 
3011
3044
  /* A CSS-drawn X. */
3012
- .close[data-v-6d90ae32]::before,
3013
- .close[data-v-6d90ae32]::after {
3045
+ .close[data-v-1ec9644b]::before,
3046
+ .close[data-v-1ec9644b]::after {
3014
3047
  content: "";
3015
3048
  grid-area: 1 / 1;
3016
3049
  inline-size: 0.875rem;
@@ -3019,37 +3052,37 @@ header[data-v-6d90ae32] {
3019
3052
  background: currentColor;
3020
3053
  transform: rotate(45deg);
3021
3054
  }
3022
- .close[data-v-6d90ae32]::after {
3055
+ .close[data-v-1ec9644b]::after {
3023
3056
  transform: rotate(-45deg);
3024
3057
  }
3025
- .close[data-v-6d90ae32]:hover {
3058
+ .close[data-v-1ec9644b]:hover {
3026
3059
  background: var(--ui-surface-muted);
3027
3060
  color: var(--ui-text-primary);
3028
3061
  }
3029
- .close[data-v-6d90ae32]:focus-visible {
3062
+ .close[data-v-1ec9644b]:focus-visible {
3030
3063
  outline: var(--ui-focus-width) solid var(--ui-focus-ring);
3031
3064
  outline-offset: var(--ui-focus-width);
3032
3065
  }
3033
3066
 
3034
3067
  /* A touch target, like Button on coarse pointers. */
3035
3068
  @media (pointer: coarse) {
3036
- .close[data-v-6d90ae32] {
3069
+ .close[data-v-1ec9644b] {
3037
3070
  inline-size: var(--ui-control-min-block-size);
3038
3071
  block-size: var(--ui-control-min-block-size);
3039
3072
  }
3040
3073
  }
3041
- html[data-ui-input-modality="touch"] [data-component~="ui-dialog"] .close[data-v-6d90ae32] {
3074
+ html[data-ui-input-modality="touch"] [data-component~="ui-dialog"] .close[data-v-1ec9644b] {
3042
3075
  inline-size: var(--ui-control-min-block-size);
3043
3076
  block-size: var(--ui-control-min-block-size);
3044
3077
  }
3045
- .body[data-v-6d90ae32] {
3078
+ .body[data-v-1ec9644b] {
3046
3079
  display: flex;
3047
3080
  flex-direction: column;
3048
3081
  flex: 1 1 auto;
3049
3082
  min-block-size: 0;
3050
3083
  padding: var(--ui-space-3) var(--ui-space-5) var(--ui-space-5);
3051
3084
  }
3052
- footer[data-v-6d90ae32] {
3085
+ footer[data-v-1ec9644b] {
3053
3086
  display: flex;
3054
3087
  flex: none;
3055
3088
  flex-wrap: wrap;
@@ -3057,33 +3090,33 @@ footer[data-v-6d90ae32] {
3057
3090
  gap: var(--ui-space-2);
3058
3091
  padding: 0 var(--ui-space-5) var(--ui-space-5);
3059
3092
  }
3060
- footer[data-v-6d90ae32]:empty {
3093
+ footer[data-v-1ec9644b]:empty {
3061
3094
  display: none;
3062
3095
  }
3063
- @keyframes ui-dialog-enter-6d90ae32 {
3096
+ @keyframes ui-dialog-enter-1ec9644b {
3064
3097
  from {
3065
3098
  opacity: 0;
3066
3099
  transform: scale(0.96);
3067
3100
  }
3068
3101
  }
3069
- [data-component~="ui-dialog"][data-v-6d90ae32]::backdrop {
3102
+ [data-component~="ui-dialog"][data-v-1ec9644b]::backdrop {
3070
3103
  background-color: transparent;
3071
3104
  transition:
3072
3105
  background-color var(--_ui-dialog-duration, var(--ui-motion-base)) var(--ui-motion-ease),
3073
3106
  display var(--_ui-dialog-duration, var(--ui-motion-base)) var(--ui-motion-ease) allow-discrete,
3074
3107
  overlay var(--_ui-dialog-duration, var(--ui-motion-base)) var(--ui-motion-ease) allow-discrete;
3075
3108
  }
3076
- [data-component~="ui-dialog"][open][data-v-6d90ae32]::backdrop {
3109
+ [data-component~="ui-dialog"][open][data-v-1ec9644b]:modal::backdrop {
3077
3110
  background-color: var(--ui-overlay-backdrop);
3078
- animation: ui-dialog-backdrop-enter-6d90ae32 var(--_ui-dialog-duration, var(--ui-motion-base))
3111
+ animation: ui-dialog-backdrop-enter-1ec9644b var(--_ui-dialog-duration, var(--ui-motion-base))
3079
3112
  var(--ui-motion-ease);
3080
3113
  }
3081
- [data-component~="ui-dialog"][open][data-ui-backdrop-hidden][data-v-6d90ae32]::backdrop {
3114
+ [data-component~="ui-dialog"][open][data-ui-backdrop-hidden][data-v-1ec9644b]::backdrop {
3082
3115
  background-color: transparent;
3083
3116
  animation: none;
3084
3117
  transition: none;
3085
3118
  }
3086
- @keyframes ui-dialog-backdrop-enter-6d90ae32 {
3119
+ @keyframes ui-dialog-backdrop-enter-1ec9644b {
3087
3120
  from {
3088
3121
  background-color: transparent;
3089
3122
  }
@@ -3486,10 +3519,15 @@ from {
3486
3519
  display: none;
3487
3520
  }
3488
3521
 
3489
- [data-component~="ui-editor-mention-menu"][data-v-ba581126] {
3522
+ [data-component~="ui-editor-mention-menu"][popover][data-v-f27cd779] {
3523
+ position: fixed;
3524
+ inset: auto;
3525
+ margin: 0;
3526
+ }
3527
+ [data-component~="ui-editor-mention-menu"][data-v-f27cd779] {
3490
3528
  user-select: none;
3491
3529
  }
3492
- [data-component~="ui-editor-mention-menu"][data-v-ba581126] {
3530
+ [data-component~="ui-editor-mention-menu"][data-v-f27cd779] {
3493
3531
  display: flex;
3494
3532
  overflow: hidden;
3495
3533
  flex-direction: column;
@@ -3498,7 +3536,7 @@ from {
3498
3536
  border-radius: var(--ui-radius-dialog);
3499
3537
  box-shadow: var(--ui-shadow-lg, 0 8px 24px rgb(0 0 0 / 0.12));
3500
3538
  }
3501
- .header[data-v-ba581126] {
3539
+ .header[data-v-f27cd779] {
3502
3540
  display: flex;
3503
3541
  align-items: center;
3504
3542
  justify-content: space-between;
@@ -3509,23 +3547,23 @@ from {
3509
3547
  font-size: var(--ui-font-size-xs);
3510
3548
  font-weight: var(--ui-font-semibold);
3511
3549
  }
3512
- [data-component~="ui-editor-mention-menu"] > .header[data-v-ba581126]:empty,
3513
- [data-component~="ui-editor-mention-menu"] > .empty[data-v-ba581126]:empty {
3550
+ [data-component~="ui-editor-mention-menu"] > .header[data-v-f27cd779]:empty,
3551
+ [data-component~="ui-editor-mention-menu"] > .empty[data-v-f27cd779]:empty {
3514
3552
  display: none;
3515
3553
  }
3516
- .empty[data-v-ba581126] {
3554
+ .empty[data-v-f27cd779] {
3517
3555
  padding: var(--ui-space-3);
3518
3556
  color: var(--ui-text-muted);
3519
3557
  font-size: var(--ui-font-size-sm);
3520
3558
  }
3521
- .hint[data-v-ba581126] {
3559
+ .hint[data-v-f27cd779] {
3522
3560
  overflow: hidden;
3523
3561
  color: var(--ui-text-muted);
3524
3562
  font-weight: var(--ui-font-normal);
3525
3563
  text-overflow: ellipsis;
3526
3564
  white-space: nowrap;
3527
3565
  }
3528
- .list[data-v-ba581126] {
3566
+ .list[data-v-f27cd779] {
3529
3567
  max-height: 280px;
3530
3568
  padding: var(--ui-space-1) 0;
3531
3569
  margin: 0;
@@ -3554,7 +3592,7 @@ from {
3554
3592
  -1px calc(100% - var(--_ui-scroll-fade-size)),
3555
3593
  calc(100% - var(--_ui-scroll-fade-size)) 100%;
3556
3594
  }
3557
- .item[data-v-ba581126] {
3595
+ .item[data-v-f27cd779] {
3558
3596
  display: flex;
3559
3597
  align-items: center;
3560
3598
  min-height: 44px;
@@ -3562,17 +3600,17 @@ from {
3562
3600
  gap: var(--ui-space-3);
3563
3601
  cursor: pointer;
3564
3602
  }
3565
- .item.active[data-v-ba581126] {
3603
+ .item.active[data-v-f27cd779] {
3566
3604
  background: var(--ui-accent-subtle, rgb(59 130 246 / 0.1));
3567
3605
  }
3568
3606
 
3569
3607
  /* The highlight and the initials circle share a tint; on the highlighted row the circle takes
3570
3608
  the surface and a fine accent ring, so the initials stay visible. */
3571
- .item.active .avatar[data-v-ba581126] {
3609
+ .item.active .avatar[data-v-f27cd779] {
3572
3610
  background: var(--ui-surface);
3573
3611
  box-shadow: inset 0 0 0 1px var(--ui-accent-soft, var(--ui-accent-subtle));
3574
3612
  }
3575
- .avatar[data-v-ba581126] {
3613
+ .avatar[data-v-f27cd779] {
3576
3614
  display: inline-flex;
3577
3615
  align-items: center;
3578
3616
  justify-content: center;
@@ -3585,41 +3623,41 @@ from {
3585
3623
  font-size: var(--ui-font-size-xs);
3586
3624
  font-weight: var(--ui-font-semibold);
3587
3625
  }
3588
- .body[data-v-ba581126] {
3626
+ .body[data-v-f27cd779] {
3589
3627
  display: flex;
3590
3628
  min-width: 0;
3591
3629
  flex-direction: column;
3592
3630
  }
3593
- .label[data-v-ba581126],
3594
- .detail[data-v-ba581126] {
3631
+ .label[data-v-f27cd779],
3632
+ .detail[data-v-f27cd779] {
3595
3633
  overflow: hidden;
3596
3634
  text-overflow: ellipsis;
3597
3635
  white-space: nowrap;
3598
3636
  }
3599
- .label[data-v-ba581126] {
3637
+ .label[data-v-f27cd779] {
3600
3638
  color: var(--ui-text-primary);
3601
3639
  font-size: var(--ui-font-size-sm);
3602
3640
  font-weight: var(--ui-font-medium);
3603
3641
  }
3604
- .detail[data-v-ba581126],
3605
- .loading[data-v-ba581126] {
3642
+ .detail[data-v-f27cd779],
3643
+ .loading[data-v-f27cd779] {
3606
3644
  color: var(--ui-text-muted);
3607
3645
  font-size: var(--ui-font-size-xs);
3608
3646
  }
3609
- .loading[data-v-ba581126] {
3647
+ .loading[data-v-f27cd779] {
3610
3648
  min-height: 44px;
3611
3649
  padding: var(--ui-space-3);
3612
3650
  }
3613
3651
  @media (max-width: 767px) {
3614
- [data-component~="ui-editor-mention-menu"][data-v-ba581126] {
3652
+ [data-component~="ui-editor-mention-menu"][data-v-f27cd779] {
3615
3653
  border-bottom: 0;
3616
3654
  border-radius: var(--ui-radius-dialog) var(--ui-radius-dialog) 0 0;
3617
3655
  }
3618
- .list[data-v-ba581126] {
3656
+ .list[data-v-f27cd779] {
3619
3657
  max-height: calc(60dvh - 48px);
3620
3658
  }
3621
3659
  }
3622
- [data-component~="ui-editor-mention-menu"][hidden][data-v-ba581126] {
3660
+ [data-component~="ui-editor-mention-menu"][hidden][data-v-f27cd779] {
3623
3661
  display: none;
3624
3662
  }
3625
3663
 
@@ -3684,10 +3722,15 @@ from {
3684
3722
  display: none;
3685
3723
  }
3686
3724
 
3687
- [data-component~="ui-editor-slash-menu"][data-v-cedd7cd4] {
3725
+ [data-component~="ui-editor-slash-menu"][popover][data-v-a85c3b18] {
3726
+ position: fixed;
3727
+ inset: auto;
3728
+ margin: 0;
3729
+ }
3730
+ [data-component~="ui-editor-slash-menu"][data-v-a85c3b18] {
3688
3731
  user-select: none;
3689
3732
  }
3690
- [data-component~="ui-editor-slash-menu"][data-v-cedd7cd4] {
3733
+ [data-component~="ui-editor-slash-menu"][data-v-a85c3b18] {
3691
3734
  background: var(--ui-surface);
3692
3735
  border: var(--ui-border-width) solid var(--ui-border-strong);
3693
3736
  border-radius: var(--ui-radius-dialog);
@@ -3697,12 +3740,12 @@ from {
3697
3740
  flex-direction: column;
3698
3741
  }
3699
3742
  @media (max-width: 767px) {
3700
- [data-component~="ui-editor-slash-menu"][data-v-cedd7cd4] {
3743
+ [data-component~="ui-editor-slash-menu"][data-v-a85c3b18] {
3701
3744
  border-radius: var(--ui-radius-dialog) var(--ui-radius-dialog) 0 0;
3702
3745
  border-bottom: none;
3703
3746
  }
3704
3747
  }
3705
- .header[data-v-cedd7cd4] {
3748
+ .header[data-v-a85c3b18] {
3706
3749
  display: none;
3707
3750
  align-items: center;
3708
3751
  gap: var(--ui-space-2);
@@ -3714,22 +3757,22 @@ from {
3714
3757
  text-transform: uppercase;
3715
3758
  letter-spacing: 0.05em;
3716
3759
  }
3717
- [data-component~="ui-editor-slash-menu"] > .header[data-v-cedd7cd4]:empty,
3718
- [data-component~="ui-editor-slash-menu"] > .footer[data-v-cedd7cd4]:empty,
3719
- [data-component~="ui-editor-slash-menu"] > .empty[data-v-cedd7cd4]:empty {
3760
+ [data-component~="ui-editor-slash-menu"] > .header[data-v-a85c3b18]:empty,
3761
+ [data-component~="ui-editor-slash-menu"] > .footer[data-v-a85c3b18]:empty,
3762
+ [data-component~="ui-editor-slash-menu"] > .empty[data-v-a85c3b18]:empty {
3720
3763
  display: none;
3721
3764
  }
3722
- .empty[data-v-cedd7cd4] {
3765
+ .empty[data-v-a85c3b18] {
3723
3766
  padding: var(--ui-space-3);
3724
3767
  color: var(--ui-text-muted);
3725
3768
  font-size: var(--ui-font-size-sm);
3726
3769
  }
3727
3770
  @media (max-width: 767px) {
3728
- .header[data-v-cedd7cd4] {
3771
+ .header[data-v-a85c3b18] {
3729
3772
  display: flex;
3730
3773
  }
3731
3774
  }
3732
- .list[data-v-cedd7cd4] {
3775
+ .list[data-v-a85c3b18] {
3733
3776
  list-style: none;
3734
3777
  margin: 0;
3735
3778
  padding: var(--ui-space-1) 0;
@@ -3759,12 +3802,12 @@ from {
3759
3802
  calc(100% - var(--_ui-scroll-fade-size)) 100%;
3760
3803
  }
3761
3804
  @media (max-width: 767px) {
3762
- .list[data-v-cedd7cd4] {
3805
+ .list[data-v-a85c3b18] {
3763
3806
  max-height: calc(60dvh - 80px);
3764
3807
  padding: var(--ui-space-1) 0 var(--ui-space-2);
3765
3808
  }
3766
3809
  }
3767
- .item[data-v-cedd7cd4] {
3810
+ .item[data-v-a85c3b18] {
3768
3811
  display: flex;
3769
3812
  align-items: center;
3770
3813
  gap: var(--ui-space-3);
@@ -3773,10 +3816,10 @@ from {
3773
3816
  cursor: pointer;
3774
3817
  transition: background-color 120ms ease;
3775
3818
  }
3776
- .item.active[data-v-cedd7cd4] {
3819
+ .item.active[data-v-a85c3b18] {
3777
3820
  background: var(--ui-accent-subtle, rgb(59 130 246 / 0.1));
3778
3821
  }
3779
- .icon[data-v-cedd7cd4] {
3822
+ .icon[data-v-a85c3b18] {
3780
3823
  display: flex;
3781
3824
  align-items: center;
3782
3825
  justify-content: center;
@@ -3792,22 +3835,22 @@ from {
3792
3835
  flex-shrink: 0;
3793
3836
  line-height: 1;
3794
3837
  }
3795
- .item.active .icon[data-v-cedd7cd4] {
3838
+ .item.active .icon[data-v-a85c3b18] {
3796
3839
  background: var(--ui-accent);
3797
3840
  border-color: var(--ui-accent);
3798
3841
  color: var(--ui-accent-contrast);
3799
3842
  }
3800
- .icon[data-v-cedd7cd4] {
3843
+ .icon[data-v-a85c3b18] {
3801
3844
  --_ui-default-icon-size: 1rem;
3802
3845
  --_ui-default-icon-stroke-width: var(--ui-editor-toolbar-icon-stroke-width, 1.75);
3803
3846
  }
3804
- .body[data-v-cedd7cd4] {
3847
+ .body[data-v-a85c3b18] {
3805
3848
  display: flex;
3806
3849
  min-width: 0;
3807
3850
  flex-direction: column;
3808
3851
  gap: 1px;
3809
3852
  }
3810
- .title[data-v-cedd7cd4] {
3853
+ .title[data-v-a85c3b18] {
3811
3854
  font-size: var(--ui-font-size-sm);
3812
3855
  font-weight: var(--ui-font-medium);
3813
3856
  color: var(--ui-text);
@@ -3815,20 +3858,20 @@ from {
3815
3858
  overflow: hidden;
3816
3859
  text-overflow: ellipsis;
3817
3860
  }
3818
- .description[data-v-cedd7cd4] {
3861
+ .description[data-v-a85c3b18] {
3819
3862
  font-size: var(--ui-font-size-xs);
3820
3863
  color: var(--ui-text-muted);
3821
3864
  white-space: nowrap;
3822
3865
  overflow: hidden;
3823
3866
  text-overflow: ellipsis;
3824
3867
  }
3825
- .footer[data-v-cedd7cd4] {
3868
+ .footer[data-v-a85c3b18] {
3826
3869
  padding: var(--ui-space-2) var(--ui-space-3);
3827
3870
  border-top: var(--ui-border-width) solid var(--ui-border-divider);
3828
3871
  font-size: var(--ui-font-size-xs);
3829
3872
  color: var(--ui-text-muted);
3830
3873
  }
3831
- [data-component~="ui-editor-slash-menu"] kbd[data-v-cedd7cd4] {
3874
+ [data-component~="ui-editor-slash-menu"] kbd[data-v-a85c3b18] {
3832
3875
  display: inline-flex;
3833
3876
  align-items: center;
3834
3877
  justify-content: center;
@@ -3840,7 +3883,7 @@ from {
3840
3883
  padding: 0 3px;
3841
3884
  color: var(--ui-text-secondary);
3842
3885
  }
3843
- [data-component~="ui-editor-slash-menu"][hidden][data-v-cedd7cd4] {
3886
+ [data-component~="ui-editor-slash-menu"][hidden][data-v-a85c3b18] {
3844
3887
  display: none;
3845
3888
  }
3846
3889
 
@@ -3937,10 +3980,15 @@ ul[data-v-516afff1] {
3937
3980
  --_ui-editor-mobile-bottom-space: 0px;
3938
3981
  }
3939
3982
 
3940
- [data-component~="ui-editor-table-context-menu"][data-v-d311fe5d] {
3983
+ [data-component~="ui-editor-table-context-menu"][popover][data-v-f2ebbbc8] {
3984
+ position: fixed;
3985
+ inset: auto;
3986
+ margin: 0;
3987
+ }
3988
+ [data-component~="ui-editor-table-context-menu"][data-v-f2ebbbc8] {
3941
3989
  /* The max-width is a promise about the menu's footprint, so it counts padding and border. */
3942
3990
  box-sizing: border-box;
3943
- min-width: 14rem;
3991
+ min-width: min(14rem, calc(100vw - 24px));
3944
3992
  max-width: min(17rem, calc(100vw - 24px));
3945
3993
  max-height: min(28rem, calc(100vh - 24px));
3946
3994
  padding: var(--ui-space-2);
@@ -3955,12 +4003,12 @@ ul[data-v-516afff1] {
3955
4003
  overscroll-behavior: contain;
3956
4004
  scrollbar-width: thin;
3957
4005
  }
3958
- .section[data-v-d311fe5d] {
4006
+ .section[data-v-f2ebbbc8] {
3959
4007
  display: flex;
3960
4008
  flex-direction: column;
3961
4009
  gap: 3px;
3962
4010
  }
3963
- [data-component~="ui-editor-table-context-menu"] button[data-v-d311fe5d] {
4011
+ [data-component~="ui-editor-table-context-menu"] button[data-v-f2ebbbc8] {
3964
4012
  display: flex;
3965
4013
  align-items: center;
3966
4014
  gap: var(--ui-space-2);
@@ -3975,30 +4023,38 @@ ul[data-v-516afff1] {
3975
4023
  cursor: pointer;
3976
4024
  color: var(--ui-text);
3977
4025
  }
3978
- [data-component~="ui-editor-table-context-menu"] button[data-v-d311fe5d] {
4026
+ [data-component~="ui-editor-table-context-menu"] button[data-v-f2ebbbc8] {
3979
4027
  --_ui-default-icon-size: 1rem;
3980
4028
  --_ui-default-icon-stroke-width: var(--ui-editor-toolbar-icon-stroke-width, 1.75);
3981
4029
  }
3982
- [data-component~="ui-editor-table-context-menu"] button[data-v-d311fe5d]:hover:not(:disabled) {
4030
+ [data-component~="ui-editor-table-context-menu"] button[data-v-f2ebbbc8]:hover:not(:disabled) {
3983
4031
  background: var(--ui-surface-hover);
3984
4032
  }
3985
- [data-component~="ui-editor-table-context-menu"] button.selected[data-v-d311fe5d] {
4033
+ [data-component~="ui-editor-table-context-menu"] button.selected[data-v-f2ebbbc8] {
3986
4034
  background: var(--ui-accent-subtle, rgb(59 130 246 / 0.1));
3987
4035
  }
3988
- [data-component~="ui-editor-table-context-menu"] button.danger[data-v-d311fe5d] {
4036
+ [data-component~="ui-editor-table-context-menu"] button.danger[data-v-f2ebbbc8] {
3989
4037
  color: var(--ui-danger);
3990
4038
  }
3991
- .swatches[data-v-d311fe5d] {
3992
- display: grid;
3993
- grid-template-columns: repeat(3, minmax(0, 1fr));
4039
+
4040
+ /* Swatches wrap like words: the row asks for the menu's full width, and a narrower menu fits fewer. */
4041
+ .swatches[data-v-f2ebbbc8] {
4042
+ display: flex;
4043
+ flex-wrap: wrap;
3994
4044
  gap: 3px;
3995
4045
  }
3996
- .swatch-button[data-v-d311fe5d] {
4046
+
4047
+ /* Three to a row at the menu's full width; 5rem keeps the longest label, "Default", whole. */
4048
+ [data-component~="ui-editor-table-context-menu"] .swatch-button[data-v-f2ebbbc8] {
3997
4049
  display: inline-flex;
3998
4050
  align-items: center;
3999
4051
  gap: var(--ui-space-2);
4052
+ flex: 1 0 5rem;
4053
+ min-width: 5rem;
4054
+ max-width: calc((100% - 6px) / 3);
4055
+ padding-inline-end: var(--ui-space-1);
4000
4056
  }
4001
- .swatch[data-v-d311fe5d] {
4057
+ .swatch[data-v-f2ebbbc8] {
4002
4058
  display: inline-flex;
4003
4059
  width: 1rem;
4004
4060
  height: 1rem;
@@ -4008,7 +4064,7 @@ ul[data-v-516afff1] {
4008
4064
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.35);
4009
4065
  flex-shrink: 0;
4010
4066
  }
4011
- .swatch.default[data-v-d311fe5d] {
4067
+ .swatch.default[data-v-f2ebbbc8] {
4012
4068
  position: relative;
4013
4069
  background:
4014
4070
  linear-gradient(
@@ -4020,11 +4076,11 @@ ul[data-v-516afff1] {
4020
4076
  ),
4021
4077
  var(--ui-surface);
4022
4078
  }
4023
- .swatch-label[data-v-d311fe5d] {
4079
+ .swatch-label[data-v-f2ebbbc8] {
4024
4080
  min-width: 0;
4025
4081
  white-space: nowrap;
4026
4082
  }
4027
- .heading[data-v-d311fe5d] {
4083
+ .heading[data-v-f2ebbbc8] {
4028
4084
  padding: var(--ui-space-1) var(--ui-space-2);
4029
4085
  font-size: var(--ui-font-size-2xs);
4030
4086
  font-weight: 700;
@@ -4032,12 +4088,17 @@ ul[data-v-516afff1] {
4032
4088
  text-transform: uppercase;
4033
4089
  color: var(--ui-text-muted);
4034
4090
  }
4035
- .sep[data-v-d311fe5d] {
4091
+ .sep[data-v-f2ebbbc8] {
4036
4092
  height: 1px;
4037
4093
  background: var(--ui-border-divider);
4038
4094
  margin: var(--ui-space-1) 0;
4039
4095
  }
4040
- [data-component~="ui-editor-table-context-menu"][hidden][data-v-d311fe5d] {
4096
+
4097
+ /* Separators divide sections, so none sits above the first. */
4098
+ .sep[data-v-f2ebbbc8]:first-child {
4099
+ display: none;
4100
+ }
4101
+ [data-component~="ui-editor-table-context-menu"][hidden][data-v-f2ebbbc8] {
4041
4102
  display: none;
4042
4103
  }
4043
4104
 
@@ -4337,7 +4398,7 @@ ul[data-v-516afff1] {
4337
4398
  display: none;
4338
4399
  }
4339
4400
 
4340
- .looma-editor__mobile-toolbar-shell [data-component~="ui-editor-table-toolbar"][data-v-b9979342] {
4401
+ .looma-editor__mobile-toolbar-shell [data-component~="ui-editor-table-toolbar"][data-v-8c2d4497] {
4341
4402
  min-width: max-content;
4342
4403
  min-height: 100%;
4343
4404
  padding: 0;
@@ -4347,23 +4408,15 @@ ul[data-v-516afff1] {
4347
4408
  box-shadow: none;
4348
4409
  backdrop-filter: none;
4349
4410
  }
4350
- .looma-editor__mobile-toolbar-shell [data-component~="ui-editor-table-toolbar"] button[data-v-b9979342] {
4411
+ .looma-editor__mobile-toolbar-shell [data-component~="ui-editor-table-toolbar"] button[data-v-8c2d4497] {
4351
4412
  min-height: 44px;
4352
4413
  background: transparent;
4353
4414
  }
4354
- .looma-editor__mobile-toolbar-shell [data-component~="ui-editor-table-toolbar"] button.active[data-v-b9979342],
4355
- .looma-editor__mobile-toolbar-shell [data-component~="ui-editor-table-toolbar"] button.selected[data-v-b9979342] {
4415
+ .looma-editor__mobile-toolbar-shell [data-component~="ui-editor-table-toolbar"] button.active[data-v-8c2d4497],
4416
+ .looma-editor__mobile-toolbar-shell [data-component~="ui-editor-table-toolbar"] button.selected[data-v-8c2d4497] {
4356
4417
  background: var(--ui-accent-soft, var(--ui-accent-subtle));
4357
4418
  }
4358
- .looma-editor__mobile-toolbar-shell [data-component~="ui-editor-table-toolbar"] .menu[data-v-b9979342] {
4359
- top: auto;
4360
- right: 0;
4361
- bottom: calc(100% + var(--ui-space-2));
4362
- max-height: min(50dvh, 22rem);
4363
- overflow-y: auto;
4364
- overscroll-behavior: contain;
4365
- }
4366
- [data-component~="ui-editor-table-toolbar"][data-v-b9979342] {
4419
+ [data-component~="ui-editor-table-toolbar"][data-v-8c2d4497] {
4367
4420
  display: inline-flex;
4368
4421
  align-items: center;
4369
4422
  gap: var(--ui-space-1);
@@ -4374,21 +4427,21 @@ ul[data-v-516afff1] {
4374
4427
  box-shadow: var(--ui-shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1));
4375
4428
  backdrop-filter: blur(10px);
4376
4429
  }
4377
- .group[data-v-b9979342] {
4430
+ .group[data-v-8c2d4497] {
4378
4431
  display: inline-flex;
4379
4432
  align-items: center;
4380
4433
  gap: 2px;
4381
4434
  overflow: hidden;
4382
4435
  }
4383
- .sep[data-v-b9979342] {
4436
+ .sep[data-v-8c2d4497] {
4384
4437
  width: 1px;
4385
4438
  align-self: stretch;
4386
4439
  background: var(--ui-border-divider);
4387
4440
  }
4388
- .overflow[data-v-b9979342] {
4441
+ .overflow[data-v-8c2d4497] {
4389
4442
  position: relative;
4390
4443
  }
4391
- [data-component~="ui-editor-table-toolbar"] button[data-v-b9979342] {
4444
+ [data-component~="ui-editor-table-toolbar"] button[data-v-8c2d4497] {
4392
4445
  display: inline-flex;
4393
4446
  align-items: center;
4394
4447
  justify-content: center;
@@ -4405,43 +4458,43 @@ ul[data-v-516afff1] {
4405
4458
  padding: var(--ui-space-2) var(--ui-space-2);
4406
4459
  white-space: nowrap;
4407
4460
  }
4408
- [data-component~="ui-editor-table-toolbar"] button[data-v-b9979342]:hover {
4461
+ [data-component~="ui-editor-table-toolbar"] button[data-v-8c2d4497]:hover {
4409
4462
  background: var(--ui-surface-hover);
4410
4463
  }
4411
- [data-component~="ui-editor-table-toolbar"] button.active[data-v-b9979342] {
4464
+ [data-component~="ui-editor-table-toolbar"] button.active[data-v-8c2d4497] {
4412
4465
  background: var(--ui-accent-soft, var(--ui-accent-subtle));
4413
4466
  color: var(--ui-accent-active);
4414
4467
  }
4415
- .group button[data-v-b9979342] {
4468
+ .group button[data-v-8c2d4497] {
4416
4469
  border-radius: var(--ui-radius-sm);
4417
4470
  }
4418
- .group button + button[data-v-b9979342] {
4471
+ .group button + button[data-v-8c2d4497] {
4419
4472
  border-left: 0;
4420
4473
  }
4421
- [data-component~="ui-editor-table-toolbar"] .more[data-v-b9979342] {
4474
+ [data-component~="ui-editor-table-toolbar"] .more[data-v-8c2d4497] {
4422
4475
  border: 0;
4423
4476
  border-radius: var(--ui-radius-sm);
4424
4477
  }
4425
- [data-component~="ui-editor-table-toolbar"] button.danger[data-v-b9979342] {
4478
+ [data-component~="ui-editor-table-toolbar"] button.danger[data-v-8c2d4497] {
4426
4479
  color: var(--ui-danger);
4427
4480
  }
4428
- [data-component~="ui-editor-table-toolbar"][data-v-b9979342] {
4481
+ [data-component~="ui-editor-table-toolbar"][data-v-8c2d4497] {
4429
4482
  --_ui-default-icon-size: var(--ui-editor-toolbar-icon-size, 1rem);
4430
4483
  --_ui-default-icon-stroke-width: var(--ui-editor-toolbar-icon-stroke-width, 1.75);
4431
4484
  }
4432
- .chevron[data-v-b9979342] {
4485
+ .chevron[data-v-8c2d4497] {
4433
4486
  display: inline-flex;
4434
4487
  --_ui-default-icon-size: 0.875rem;
4435
4488
  }
4436
- [data-component~="ui-editor-table-toolbar"] .icon-button[data-v-b9979342] {
4489
+ [data-component~="ui-editor-table-toolbar"] .icon-button[data-v-8c2d4497] {
4437
4490
  width: 32px;
4438
4491
  padding-inline: 0;
4439
4492
  }
4440
- .menu[data-v-b9979342] {
4493
+ .menu[data-v-8c2d4497] {
4441
4494
  box-sizing: border-box;
4442
- position: absolute;
4443
- top: calc(100% + var(--ui-space-2));
4444
- right: 0;
4495
+ position: fixed;
4496
+ inset: auto;
4497
+ margin: 0;
4445
4498
  min-width: 12rem;
4446
4499
  max-width: min(17rem, calc(100vw - 24px));
4447
4500
  padding: var(--ui-space-1);
@@ -4457,12 +4510,12 @@ ul[data-v-516afff1] {
4457
4510
  overscroll-behavior: contain;
4458
4511
  scrollbar-width: thin;
4459
4512
  }
4460
- .menu-section + .menu-section[data-v-b9979342] {
4513
+ .menu-section + .menu-section[data-v-8c2d4497] {
4461
4514
  margin-top: var(--ui-space-1);
4462
4515
  padding-top: var(--ui-space-1);
4463
4516
  border-top: var(--ui-border-width) solid var(--ui-border-divider);
4464
4517
  }
4465
- .menu-heading[data-v-b9979342] {
4518
+ .menu-heading[data-v-8c2d4497] {
4466
4519
  padding: var(--ui-space-1) var(--ui-space-2);
4467
4520
  font-size: var(--ui-font-size-2xs);
4468
4521
  font-weight: 700;
@@ -4470,22 +4523,22 @@ ul[data-v-516afff1] {
4470
4523
  text-transform: uppercase;
4471
4524
  color: var(--ui-text-muted);
4472
4525
  }
4473
- .menu button[data-v-b9979342] {
4526
+ .menu button[data-v-8c2d4497] {
4474
4527
  display: flex;
4475
4528
  justify-content: flex-start;
4476
4529
  width: 100%;
4477
4530
  text-align: left;
4478
4531
  }
4479
- .swatches[data-v-b9979342] {
4532
+ .swatches[data-v-8c2d4497] {
4480
4533
  display: grid;
4481
4534
  grid-template-columns: repeat(2, minmax(0, 1fr));
4482
4535
  gap: 2px;
4483
4536
  }
4484
- [data-component~="ui-editor-table-toolbar"] .swatch-button[data-v-b9979342] {
4537
+ [data-component~="ui-editor-table-toolbar"] .swatch-button[data-v-8c2d4497] {
4485
4538
  gap: var(--ui-space-1);
4486
4539
  justify-content: flex-start;
4487
4540
  }
4488
- .swatch[data-v-b9979342] {
4541
+ .swatch[data-v-8c2d4497] {
4489
4542
  width: 14px;
4490
4543
  height: 14px;
4491
4544
  flex: 0 0 14px;
@@ -4493,15 +4546,15 @@ ul[data-v-516afff1] {
4493
4546
  border-radius: var(--ui-radius-round);
4494
4547
  background: var(--_swatch);
4495
4548
  }
4496
- .swatch.default[data-v-b9979342] {
4549
+ .swatch.default[data-v-8c2d4497] {
4497
4550
  background:
4498
4551
  linear-gradient(135deg, transparent 44%, var(--ui-danger) 46% 54%, transparent 56%),
4499
4552
  var(--ui-surface);
4500
4553
  }
4501
- .swatch-button.selected[data-v-b9979342] {
4554
+ .swatch-button.selected[data-v-8c2d4497] {
4502
4555
  background: var(--ui-accent-soft, var(--ui-accent-subtle));
4503
4556
  }
4504
- [data-component~="ui-editor-table-toolbar"][hidden][data-v-b9979342] {
4557
+ [data-component~="ui-editor-table-toolbar"][hidden][data-v-8c2d4497] {
4505
4558
  display: none;
4506
4559
  }
4507
4560
 
@@ -6173,7 +6226,7 @@ svg[data-v-ea2a5496-s] {
6173
6226
  syntax: "*";
6174
6227
  inherits: false;
6175
6228
  }
6176
- [data-component~="ui-listbox"][data-v-1ba46396] {
6229
+ [data-component~="ui-listbox"][data-v-e7a8688c] {
6177
6230
  position: relative;
6178
6231
  box-sizing: border-box;
6179
6232
  display: block;
@@ -6190,25 +6243,29 @@ svg[data-v-ea2a5496-s] {
6190
6243
  box-shadow: var(--ui-control-inset);
6191
6244
  outline: none;
6192
6245
  }
6193
- .choices[data-v-1ba46396] {
6246
+
6247
+ /* Its own box around the nested Scroll Area, which it shrinks into so the choices scroll. */
6248
+ .choices[data-v-e7a8688c] {
6249
+ display: flex;
6250
+ flex-direction: column;
6194
6251
  max-block-size: calc(max(2, var(--_rows, 5)) * var(--ui-control-size-md));
6195
6252
  }
6196
- [data-component~="ui-listbox"][data-v-1ba46396]:not([data-enhanced]) {
6253
+ [data-component~="ui-listbox"][data-v-e7a8688c]:not([data-enhanced]) {
6197
6254
  padding: 0;
6198
6255
  border: 0;
6199
6256
  background: transparent;
6200
6257
  box-shadow: none;
6201
6258
  }
6202
- [data-component~="ui-listbox"]:not([data-enhanced]) .choices[data-v-1ba46396],
6203
- [data-component~="ui-listbox"][data-enhanced] .fallback[data-v-1ba46396] {
6259
+ [data-component~="ui-listbox"]:not([data-enhanced]) .choices[data-v-e7a8688c],
6260
+ [data-component~="ui-listbox"][data-enhanced] .fallback[data-v-e7a8688c] {
6204
6261
  display: none;
6205
6262
  }
6206
- .fallback[data-v-1ba46396] {
6263
+ .fallback[data-v-e7a8688c] {
6207
6264
  box-sizing: border-box;
6208
6265
  inline-size: 100%;
6209
6266
  font: inherit;
6210
6267
  }
6211
- .validity[data-v-1ba46396] {
6268
+ .validity[data-v-e7a8688c] {
6212
6269
  position: absolute;
6213
6270
  inline-size: 1px;
6214
6271
  block-size: 1px;
@@ -6217,22 +6274,22 @@ svg[data-v-ea2a5496-s] {
6217
6274
  opacity: 0;
6218
6275
  pointer-events: none;
6219
6276
  }
6220
- [data-component~="ui-listbox"][data-v-1ba46396]:focus-visible {
6277
+ [data-component~="ui-listbox"][data-v-e7a8688c]:focus-visible {
6221
6278
  border-color: var(--ui-control-focus);
6222
6279
  outline: var(--ui-focus-width) solid var(--ui-focus-ring);
6223
6280
  outline-offset: var(--ui-focus-width);
6224
6281
  box-shadow: var(--ui-listbox-focus-shadow, var(--ui-focus-halo));
6225
6282
  }
6226
- [data-component~="ui-listbox"][aria-invalid="true"][data-v-1ba46396] {
6283
+ [data-component~="ui-listbox"][aria-invalid="true"][data-v-e7a8688c] {
6227
6284
  border-color: var(--ui-listbox-invalid-border, var(--ui-field-danger, var(--ui-danger)));
6228
6285
  }
6229
- [data-component~="ui-listbox"][aria-disabled="true"][data-v-1ba46396] {
6286
+ [data-component~="ui-listbox"][aria-disabled="true"][data-v-e7a8688c] {
6230
6287
  background: var(--ui-control-surface-disabled);
6231
6288
  color: var(--ui-disabled-text);
6232
6289
  box-shadow: none;
6233
6290
  cursor: not-allowed;
6234
6291
  }
6235
- [data-component~="ui-listbox"][hidden][data-v-1ba46396] {
6292
+ [data-component~="ui-listbox"][hidden][data-v-e7a8688c] {
6236
6293
  display: none;
6237
6294
  }
6238
6295
 
@@ -7466,7 +7523,7 @@ legend[data-v-0bead1b5] + * {
7466
7523
  syntax: "*";
7467
7524
  inherits: false;
7468
7525
  }
7469
- [data-component~="ui-search-shell"][data-v-0778ed20] {
7526
+ [data-component~="ui-search-shell"][data-v-62b2f3da] {
7470
7527
  /* Hooks do not inherit, so the parts below read them from the root. */
7471
7528
  --_ui-search-shell-z-index: var(--ui-search-shell-z-index);
7472
7529
  --_ui-search-shell-padding-top: var(--ui-search-shell-padding-top);
@@ -7481,7 +7538,7 @@ legend[data-v-0bead1b5] + * {
7481
7538
 
7482
7539
  display: contents;
7483
7540
  }
7484
- dialog[data-v-0778ed20] {
7541
+ dialog[data-v-62b2f3da] {
7485
7542
  position: fixed;
7486
7543
  inset: 0;
7487
7544
  z-index: var(--_ui-search-shell-z-index, 400);
@@ -7499,16 +7556,16 @@ dialog[data-v-0778ed20] {
7499
7556
  background: var(--ui-overlay-backdrop);
7500
7557
  color: var(--ui-text-primary);
7501
7558
  }
7502
- dialog[data-v-0778ed20]::backdrop {
7559
+ dialog[data-v-62b2f3da]:modal::backdrop {
7503
7560
  background: var(--ui-overlay-backdrop);
7504
7561
  }
7505
- dialog[data-v-0778ed20]:modal {
7562
+ dialog[data-v-62b2f3da]:modal {
7506
7563
  background: transparent;
7507
7564
  }
7508
- dialog[data-ui-backdrop-hidden][data-v-0778ed20]::backdrop {
7565
+ dialog[data-ui-backdrop-hidden][data-v-62b2f3da]::backdrop {
7509
7566
  background: transparent;
7510
7567
  }
7511
- .panel[data-v-0778ed20] {
7568
+ .panel[data-v-62b2f3da] {
7512
7569
  position: relative;
7513
7570
  display: flex;
7514
7571
  flex-direction: column;
@@ -7528,10 +7585,10 @@ dialog[data-ui-backdrop-hidden][data-v-0778ed20]::backdrop {
7528
7585
  var(--ui-overlay-shadow, var(--ui-elevation-dialog, var(--ui-shadow-xl)))
7529
7586
  );
7530
7587
  }
7531
- .search[data-v-0778ed20] {
7588
+ .search[data-v-62b2f3da] {
7532
7589
  padding: var(--ui-space-3);
7533
7590
  }
7534
- input[slot="search"][data-v-0778ed20-s] {
7591
+ input[slot="search"][data-v-62b2f3da-s] {
7535
7592
  box-sizing: border-box;
7536
7593
  inline-size: 100%;
7537
7594
  min-block-size: var(--ui-control-min-block-size);
@@ -7543,24 +7600,24 @@ input[slot="search"][data-v-0778ed20-s] {
7543
7600
  font: inherit;
7544
7601
  box-shadow: var(--ui-shadow-xs);
7545
7602
  }
7546
- input[slot="search"][data-v-0778ed20-s]:focus-visible {
7603
+ input[slot="search"][data-v-62b2f3da-s]:focus-visible {
7547
7604
  border-color: var(--_ui-search-shell-focus-color, var(--ui-control-focus));
7548
7605
  outline: var(--ui-focus-width) solid var(--ui-focus-ring);
7549
7606
  outline-offset: var(--ui-focus-width);
7550
7607
  }
7551
- .status[data-v-0778ed20],
7552
- .actions[data-v-0778ed20] {
7608
+ .status[data-v-62b2f3da],
7609
+ .actions[data-v-62b2f3da] {
7553
7610
  flex-shrink: 0;
7554
7611
  padding: var(--ui-space-2) var(--ui-space-4);
7555
7612
  color: var(--ui-text-secondary);
7556
7613
  font-size: var(--ui-font-size-sm);
7557
7614
  }
7558
- .status[data-v-0778ed20] {
7615
+ .status[data-v-62b2f3da] {
7559
7616
  padding-block-start: 0;
7560
7617
  }
7561
7618
 
7562
7619
  /* Laid out like the dialog's action row: actions right-aligned, spaced as buttons, no fill. */
7563
- .actions[data-v-0778ed20] {
7620
+ .actions[data-v-62b2f3da] {
7564
7621
  display: flex;
7565
7622
  flex-wrap: wrap;
7566
7623
  align-items: center;
@@ -7568,11 +7625,11 @@ input[slot="search"][data-v-0778ed20-s]:focus-visible {
7568
7625
  gap: var(--ui-space-2);
7569
7626
  padding: var(--ui-space-3) var(--ui-space-4);
7570
7627
  }
7571
- .status[data-v-0778ed20]:empty,
7572
- .actions[data-v-0778ed20]:empty {
7628
+ .status[data-v-62b2f3da]:empty,
7629
+ .actions[data-v-62b2f3da]:empty {
7573
7630
  display: none;
7574
7631
  }
7575
- .body[data-v-0778ed20] {
7632
+ .body[data-v-62b2f3da] {
7576
7633
  flex: 1;
7577
7634
  min-block-size: 0;
7578
7635
  overflow: auto;
@@ -7600,10 +7657,10 @@ input[slot="search"][data-v-0778ed20-s]:focus-visible {
7600
7657
  calc(100% - var(--_ui-scroll-fade-size)) 100%;
7601
7658
  }
7602
7659
  @media (max-width: 47.9375rem) {
7603
- dialog[data-v-0778ed20] {
7660
+ dialog[data-v-62b2f3da] {
7604
7661
  padding: 0;
7605
7662
  }
7606
- .panel[data-v-0778ed20] {
7663
+ .panel[data-v-62b2f3da] {
7607
7664
  inline-size: 100%;
7608
7665
  min-block-size: 100dvh;
7609
7666
  max-block-size: none;
@@ -7613,19 +7670,19 @@ dialog[data-v-0778ed20] {
7613
7670
  }
7614
7671
 
7615
7672
  /* A component that sets its display still honours the hidden attribute on its root. */
7616
- [data-component~="ui-search-shell"][hidden][data-v-0778ed20] {
7673
+ [data-component~="ui-search-shell"][hidden][data-v-62b2f3da] {
7617
7674
  display: none;
7618
7675
  }
7619
7676
 
7620
7677
  /* A part of a view: a heading, an optional line under it, actions for the whole section at its
7621
7678
  end, and the content. Sections space themselves out through the Stack around them. */
7622
- [data-component~="ui-section"][data-v-93e8cb94] {
7679
+ [data-component~="ui-section"][data-v-97cdaba4] {
7623
7680
  display: flex;
7624
7681
  flex-direction: column;
7625
7682
  gap: var(--ui-space-4);
7626
7683
  min-inline-size: 0;
7627
7684
  }
7628
- [data-component~="ui-section"][data-ui-section-state~="variant=card"][data-v-93e8cb94] {
7685
+ [data-component~="ui-section"][data-ui-section-state~="variant=card"][data-v-97cdaba4] {
7629
7686
  --_ui-selection-context-surface: initial;
7630
7687
  --_ui-selection-context-border: initial;
7631
7688
  --_ui-selection-context-text: initial;
@@ -7634,11 +7691,11 @@ dialog[data-v-0778ed20] {
7634
7691
  border-radius: var(--ui-radius-lg);
7635
7692
  background: var(--ui-surface-raised);
7636
7693
  }
7637
- [data-component~="ui-section"][data-ui-section-state~="variant=divided"][data-v-93e8cb94] {
7694
+ [data-component~="ui-section"][data-ui-section-state~="variant=divided"][data-v-97cdaba4] {
7638
7695
  padding-block-start: var(--ui-space-6);
7639
7696
  border-block-start: var(--ui-border-width) solid var(--ui-border-divider);
7640
7697
  }
7641
- [data-component~="ui-section"][data-ui-section-state~="variant=card"][data-ui-section-state~="tone=danger"][data-v-93e8cb94] {
7698
+ [data-component~="ui-section"][data-ui-section-state~="variant=card"][data-ui-section-state~="tone=danger"][data-v-97cdaba4] {
7642
7699
  --_ui-selection-context-surface: light-dark(
7643
7700
  oklch(from var(--ui-danger-soft) calc(l - 0.045) calc(max(c, min(0.045, c * 3))) h),
7644
7701
  oklch(from var(--ui-danger-soft) calc(l + 0.045) calc(max(c, min(0.045, c * 3))) h)
@@ -7650,58 +7707,61 @@ dialog[data-v-0778ed20] {
7650
7707
  --_ui-selection-context-text: var(--ui-text-primary);
7651
7708
  border-color: color-mix(in srgb, var(--ui-danger) 45%, var(--ui-border-default));
7652
7709
  border-inline-start: var(--ui-accent-line-width) solid var(--ui-danger);
7710
+ /* An accent edge keeps the corners on its side straight. */
7711
+ border-start-start-radius: 0;
7712
+ border-end-start-radius: 0;
7653
7713
  background: var(--ui-danger-soft);
7654
7714
  }
7655
- .head[data-v-93e8cb94] {
7715
+ .head[data-v-97cdaba4] {
7656
7716
  display: flex;
7657
7717
  flex-wrap: wrap;
7658
7718
  align-items: flex-start;
7659
7719
  justify-content: space-between;
7660
7720
  gap: var(--ui-space-2) var(--ui-space-4);
7661
7721
  }
7662
- .copy[data-v-93e8cb94] {
7722
+ .copy[data-v-97cdaba4] {
7663
7723
  display: flex;
7664
7724
  flex: 1 1 16rem;
7665
7725
  flex-direction: column;
7666
7726
  gap: var(--ui-space-1);
7667
7727
  min-inline-size: 0;
7668
7728
  }
7669
- .heading[data-v-93e8cb94] {
7729
+ .heading[data-v-97cdaba4] {
7670
7730
  margin: 0;
7671
7731
  color: var(--ui-text-primary);
7672
7732
  font-size: var(--ui-font-size-lg);
7673
7733
  font-weight: var(--ui-font-semibold);
7674
7734
  line-height: var(--ui-line-height-tight);
7675
7735
  }
7676
- [data-component~="ui-section"][data-ui-section-state~="tone=danger"] .heading[data-v-93e8cb94] {
7736
+ [data-component~="ui-section"][data-ui-section-state~="tone=danger"] .heading[data-v-97cdaba4] {
7677
7737
  color: var(--ui-danger);
7678
7738
  }
7679
- .description[data-v-93e8cb94] {
7739
+ .description[data-v-97cdaba4] {
7680
7740
  color: var(--ui-text-secondary);
7681
7741
  font-size: var(--ui-font-size-sm);
7682
7742
  line-height: var(--ui-line-height);
7683
7743
  }
7684
- .actions[data-v-93e8cb94] {
7744
+ .actions[data-v-97cdaba4] {
7685
7745
  display: inline-flex;
7686
7746
  flex-wrap: wrap;
7687
7747
  gap: var(--ui-space-2);
7688
7748
  }
7689
- .body[data-v-93e8cb94] {
7749
+ .body[data-v-97cdaba4] {
7690
7750
  display: flex;
7691
7751
  flex-direction: column;
7692
7752
  gap: var(--ui-space-4);
7693
7753
  min-inline-size: 0;
7694
7754
  }
7695
- .description[data-v-93e8cb94]:empty,
7696
- .actions[data-v-93e8cb94]:empty {
7755
+ .description[data-v-97cdaba4]:empty,
7756
+ .actions[data-v-97cdaba4]:empty {
7697
7757
  display: none;
7698
7758
  }
7699
- .head[data-v-93e8cb94]:has(.heading[hidden]):has(.description:empty):has(.actions:empty) {
7759
+ .head[data-v-97cdaba4]:has(.heading[hidden]):has(.description:empty):has(.actions:empty) {
7700
7760
  display: none;
7701
7761
  }
7702
7762
 
7703
7763
  /* A component that sets its display still honours the hidden attribute on its root. */
7704
- [data-component~="ui-section"][hidden][data-v-93e8cb94] {
7764
+ [data-component~="ui-section"][hidden][data-v-97cdaba4] {
7705
7765
  display: none;
7706
7766
  }
7707
7767
 
@@ -9050,7 +9110,7 @@ tbody tr[data-v-722ca2ea-s]:last-child > * {
9050
9110
  syntax: "*";
9051
9111
  inherits: false;
9052
9112
  }
9053
- [data-component~="ui-toast"][data-v-af4b9641] {
9113
+ [data-component~="ui-toast"][data-v-0812e30e] {
9054
9114
  --_ui-toast-accent: var(--ui-border-strong);
9055
9115
  --_ui-toast-surface: var(--ui-surface-muted);
9056
9116
 
@@ -9081,30 +9141,30 @@ tbody tr[data-v-722ca2ea-s]:last-child > * {
9081
9141
  );
9082
9142
  pointer-events: auto;
9083
9143
  }
9084
- [data-component~="ui-toast"][data-ui-toast-state~="tone=info"][data-v-af4b9641] {
9144
+ [data-component~="ui-toast"][data-ui-toast-state~="tone=info"][data-v-0812e30e] {
9085
9145
  --_ui-toast-accent: var(--ui-info-solid);
9086
9146
  --_ui-toast-surface: var(--ui-info-soft);
9087
9147
  }
9088
- [data-component~="ui-toast"][data-ui-toast-state~="tone=success"][data-v-af4b9641] {
9148
+ [data-component~="ui-toast"][data-ui-toast-state~="tone=success"][data-v-0812e30e] {
9089
9149
  --_ui-toast-accent: var(--ui-success-solid);
9090
9150
  --_ui-toast-surface: var(--ui-success-soft);
9091
9151
  }
9092
- [data-component~="ui-toast"][data-ui-toast-state~="tone=warning"][data-v-af4b9641] {
9152
+ [data-component~="ui-toast"][data-ui-toast-state~="tone=warning"][data-v-0812e30e] {
9093
9153
  --_ui-toast-accent: var(--ui-warning-solid);
9094
9154
  --_ui-toast-surface: var(--ui-warning-soft);
9095
9155
  }
9096
- [data-component~="ui-toast"][data-ui-toast-state~="tone=danger"][data-v-af4b9641] {
9156
+ [data-component~="ui-toast"][data-ui-toast-state~="tone=danger"][data-v-0812e30e] {
9097
9157
  --_ui-toast-accent: var(--ui-danger-solid);
9098
9158
  --_ui-toast-surface: var(--ui-danger-soft);
9099
9159
  }
9100
- .message[data-v-af4b9641] {
9160
+ .message[data-v-0812e30e] {
9101
9161
  min-inline-size: 0;
9102
9162
  flex: 1;
9103
9163
  }
9104
- .action[data-v-af4b9641]:not(:has(> *)) {
9164
+ .action[data-v-0812e30e]:not(:has(> *)) {
9105
9165
  display: none;
9106
9166
  }
9107
- [data-component~="ui-toast"][hidden][data-v-af4b9641] {
9167
+ [data-component~="ui-toast"][hidden][data-v-0812e30e] {
9108
9168
  display: none;
9109
9169
  }
9110
9170