@threadlabs/looma 0.5.2 → 0.6.0-rc.2

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 (177) hide show
  1. package/components/shared/overlay.js +3 -0
  2. package/components/ui-button/ui-button.html +46 -26
  3. package/components/ui-callout/ui-callout.html +1 -1
  4. package/components/ui-checkbox/ui-checkbox.html +1 -1
  5. package/components/ui-cluster/ui-cluster.html +6 -6
  6. package/components/ui-combobox/ui-combobox.html +23 -23
  7. package/components/ui-container/ui-container.html +4 -4
  8. package/components/ui-context-menu/ui-context-menu.html +2 -2
  9. package/components/ui-dialog/ui-dialog.html +12 -12
  10. package/components/ui-disclosure/ui-disclosure.html +19 -4
  11. package/components/ui-editable/ui-editable.html +6 -6
  12. package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.html +20 -20
  13. package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +25 -25
  14. package/components/ui-editor-slash-menu/ui-editor-slash-menu.html +39 -39
  15. package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +20 -20
  16. package/components/ui-editor-table-overlay/ui-editor-table-overlay.html +48 -48
  17. package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +34 -34
  18. package/components/ui-editor-toolbar/ui-editor-toolbar.html +9 -9
  19. package/components/ui-floating-action-button/ui-floating-action-button.html +16 -22
  20. package/components/ui-grid/ui-grid.html +6 -6
  21. package/components/ui-icon-button/ui-icon-button.html +45 -40
  22. package/components/ui-input/ui-input.html +2 -2
  23. package/components/ui-menu/ui-menu.html +15 -4
  24. package/components/ui-menu-item/ui-menu-item.html +5 -5
  25. package/components/ui-popover/ui-popover.html +3 -3
  26. package/components/ui-reel/ui-reel.html +6 -6
  27. package/components/ui-search-result-row/ui-search-result-row.html +9 -9
  28. package/components/ui-search-shell/ui-search-shell.html +3 -3
  29. package/components/ui-select/ui-select.html +2 -2
  30. package/components/ui-sidebar/ui-sidebar.html +11 -11
  31. package/components/ui-stack/ui-stack.html +6 -6
  32. package/components/ui-switcher/ui-switcher.html +6 -6
  33. package/components/ui-tabs/ui-tabs.html +18 -4
  34. package/components/ui-textarea/ui-textarea.html +2 -2
  35. package/components/ui-toast-region/ui-toast-region.html +2 -2
  36. package/components/ui-tooltip/ui-tooltip.html +1 -1
  37. package/components/ui-top-bar/ui-top-bar.html +5 -5
  38. package/components/ui-tree/ui-tree.html +7 -0
  39. package/components/ui-tree-item/ui-tree-item.html +15 -7
  40. package/dist/index.js +1 -1
  41. package/package.json +1 -1
  42. package/styles/ui-button.css +47 -26
  43. package/styles/ui-callout.css +1 -1
  44. package/styles/ui-checkbox.css +1 -1
  45. package/styles/ui-cluster.css +6 -6
  46. package/styles/ui-combobox.css +23 -23
  47. package/styles/ui-container.css +4 -4
  48. package/styles/ui-context-menu.css +2 -2
  49. package/styles/ui-dialog.css +12 -12
  50. package/styles/ui-disclosure.css +22 -6
  51. package/styles/ui-editable.css +6 -6
  52. package/styles/ui-editor-insert-table-grid.css +20 -20
  53. package/styles/ui-editor-mention-menu.css +25 -25
  54. package/styles/ui-editor-slash-menu.css +39 -39
  55. package/styles/ui-editor-table-context-menu.css +20 -20
  56. package/styles/ui-editor-table-overlay.css +48 -48
  57. package/styles/ui-editor-table-toolbar.css +34 -34
  58. package/styles/ui-editor-toolbar.css +9 -9
  59. package/styles/ui-floating-action-button.css +16 -22
  60. package/styles/ui-grid.css +6 -6
  61. package/styles/ui-icon-button.css +45 -40
  62. package/styles/ui-input.css +2 -2
  63. package/styles/ui-menu-item.css +5 -5
  64. package/styles/ui-menu.css +18 -6
  65. package/styles/ui-popover.css +3 -3
  66. package/styles/ui-reel.css +6 -6
  67. package/styles/ui-search-result-row.css +9 -9
  68. package/styles/ui-search-shell.css +3 -3
  69. package/styles/ui-select.css +2 -2
  70. package/styles/ui-sidebar.css +11 -11
  71. package/styles/ui-stack.css +6 -6
  72. package/styles/ui-switcher.css +6 -6
  73. package/styles/ui-tabs.css +20 -6
  74. package/styles/ui-textarea.css +2 -2
  75. package/styles/ui-toast-region.css +2 -2
  76. package/styles/ui-tooltip.css +1 -1
  77. package/styles/ui-top-bar.css +5 -5
  78. package/styles/ui-tree-item.css +21 -8
  79. package/styles/ui-tree.css +7 -1
  80. package/theme-dark.css +46 -103
  81. package/theme-high-contrast.css +22 -22
  82. package/theme-light.css +17 -41
  83. package/tokens.css +154 -201
  84. package/vanilla/UiButton.d.ts +1 -0
  85. package/vanilla/UiButton.js +1 -1
  86. package/vanilla/UiDisclosure.d.ts +1 -0
  87. package/vanilla/UiDisclosure.js +1 -1
  88. package/vanilla/UiMenu.d.ts +1 -0
  89. package/vanilla/UiMenu.js +1 -1
  90. package/vanilla/UiTabs.d.ts +1 -0
  91. package/vanilla/UiTabs.js +1 -1
  92. package/vanilla/UiTree.d.ts +1 -0
  93. package/vanilla/UiTree.js +1 -1
  94. package/vue/UiButton.d.ts +2 -0
  95. package/vue/UiButton.vue +56 -41
  96. package/vue/UiCallout.vue +1 -1
  97. package/vue/UiCheckbox.vue +1 -1
  98. package/vue/UiCluster.vue +6 -6
  99. package/vue/UiCombobox.vue +23 -23
  100. package/vue/UiContainer.vue +4 -4
  101. package/vue/UiContextMenu.vue +2 -2
  102. package/vue/UiDialog.vue +12 -12
  103. package/vue/UiDisclosure.d.ts +2 -0
  104. package/vue/UiDisclosure.vue +21 -4
  105. package/vue/UiEditable.vue +6 -6
  106. package/vue/UiEditorInsertTableGrid.vue +20 -20
  107. package/vue/UiEditorMentionMenu.vue +25 -25
  108. package/vue/UiEditorSlashMenu.vue +39 -39
  109. package/vue/UiEditorTableContextMenu.vue +20 -20
  110. package/vue/UiEditorTableOverlay.vue +48 -57
  111. package/vue/UiEditorTableToolbar.vue +34 -34
  112. package/vue/UiEditorToolbar.vue +9 -9
  113. package/vue/UiFloatingActionButton.vue +17 -22
  114. package/vue/UiGrid.vue +6 -6
  115. package/vue/UiIconButton.vue +45 -55
  116. package/vue/UiInput.vue +2 -2
  117. package/vue/UiMenu.d.ts +2 -0
  118. package/vue/UiMenu.vue +17 -7
  119. package/vue/UiMenuItem.vue +6 -5
  120. package/vue/UiPopover.vue +3 -3
  121. package/vue/UiReel.vue +6 -6
  122. package/vue/UiSearchResultRow.vue +10 -13
  123. package/vue/UiSearchShell.vue +3 -3
  124. package/vue/UiSelect.vue +2 -2
  125. package/vue/UiSidebar.vue +11 -16
  126. package/vue/UiStack.vue +6 -6
  127. package/vue/UiSwitcher.vue +6 -6
  128. package/vue/UiTabs.d.ts +2 -0
  129. package/vue/UiTabs.vue +21 -4
  130. package/vue/UiTextarea.vue +2 -2
  131. package/vue/UiToastRegion.vue +2 -2
  132. package/vue/UiTooltip.vue +1 -1
  133. package/vue/UiTopBar.vue +5 -5
  134. package/vue/UiTree.d.ts +2 -0
  135. package/vue/UiTree.vue +24 -1
  136. package/vue/UiTreeItem.vue +16 -8
  137. package/vue/chunks/UiButton.js +4 -2
  138. package/vue/chunks/UiCallout.js +1 -1
  139. package/vue/chunks/UiCheckbox.js +1 -1
  140. package/vue/chunks/UiCluster.js +1 -1
  141. package/vue/chunks/UiCombobox.js +1 -1
  142. package/vue/chunks/UiContainer.js +1 -1
  143. package/vue/chunks/UiContextMenu.js +1 -1
  144. package/vue/chunks/UiDialog.js +1 -1
  145. package/vue/chunks/UiDisclosure.js +3 -2
  146. package/vue/chunks/UiEditable.js +1 -1
  147. package/vue/chunks/UiEditorInsertTableGrid.js +1 -1
  148. package/vue/chunks/UiEditorMentionMenu.js +1 -1
  149. package/vue/chunks/UiEditorSlashMenu.js +1 -1
  150. package/vue/chunks/UiEditorTableContextMenu.js +1 -1
  151. package/vue/chunks/UiEditorTableOverlay.js +1 -1
  152. package/vue/chunks/UiEditorTableToolbar.js +1 -1
  153. package/vue/chunks/UiEditorToolbar.js +1 -1
  154. package/vue/chunks/UiFloatingActionButton.js +1 -1
  155. package/vue/chunks/UiGrid.js +1 -1
  156. package/vue/chunks/UiIconButton.js +1 -1
  157. package/vue/chunks/UiInput.js +1 -1
  158. package/vue/chunks/UiMenu.js +3 -2
  159. package/vue/chunks/UiMenuItem.js +1 -1
  160. package/vue/chunks/UiPopover.js +1 -1
  161. package/vue/chunks/UiReel.js +1 -1
  162. package/vue/chunks/UiSearchResultRow.js +1 -1
  163. package/vue/chunks/UiSearchShell.js +1 -1
  164. package/vue/chunks/UiSelect.js +1 -1
  165. package/vue/chunks/UiSidebar.js +1 -1
  166. package/vue/chunks/UiStack.js +1 -1
  167. package/vue/chunks/UiSwitcher.js +1 -1
  168. package/vue/chunks/UiTabs.js +7 -2
  169. package/vue/chunks/UiTextarea.js +1 -1
  170. package/vue/chunks/UiToastRegion.js +1 -1
  171. package/vue/chunks/UiTooltip.js +1 -1
  172. package/vue/chunks/UiTopBar.js +1 -1
  173. package/vue/chunks/UiTree.js +8 -2
  174. package/vue/chunks/UiTreeItem.js +1 -1
  175. package/vue/components.css +1114 -1090
  176. package/vue/editor/LoomaEditor.d.ts +11 -0
  177. package/vue/editor/index.js +17 -0
@@ -418,10 +418,10 @@ onBeforeUnmount(() => {
418
418
  width: 24px;
419
419
  height: 24px;
420
420
  padding: 0;
421
- border: 1px solid var(--ui-affordance-near-color, var(--ui-border-strong, #c8c8c4));
422
- border-radius: var(--ui-radius-round, 999px);
423
- background: color-mix(in srgb, var(--ui-surface-elevated, #fff) 96%, transparent);
424
- color: var(--ui-affordance-near-color, var(--ui-text-secondary, #5c5c5c));
421
+ border: 1px solid var(--ui-affordance-near-color, var(--ui-border-strong));
422
+ border-radius: var(--ui-radius-round);
423
+ background: color-mix(in srgb, var(--ui-surface-elevated) 96%, transparent);
424
+ color: var(--ui-affordance-near-color, var(--ui-text-secondary));
425
425
  font: inherit;
426
426
  font-size: 16px;
427
427
  line-height: 1;
@@ -429,20 +429,18 @@ onBeforeUnmount(() => {
429
429
  opacity: 0;
430
430
  scale: 0.72;
431
431
  transition:
432
- opacity var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
433
- scale var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
434
- color var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
435
- background-color var(--ui-affordance-motion, var(--ui-motion-fast, 120ms))
436
- var(--ui-motion-ease, ease),
437
- border-color var(--ui-affordance-motion, var(--ui-motion-fast, 120ms))
438
- var(--ui-motion-ease, ease);
432
+ opacity var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
433
+ scale var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
434
+ color var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
435
+ background-color var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
436
+ border-color var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
439
437
  pointer-events: auto;
440
438
  cursor: pointer;
441
439
  }
442
440
 
443
441
  .handle {
444
442
  --ui-icon-size: 14px;
445
- --ui-icon-stroke-width: var(--ui-editor-table-affordance-icon-stroke-width, 2);
443
+ --ui-icon-stroke-width: 2;
446
444
  }
447
445
 
448
446
  .handle[data-ui-proximity="near"],
@@ -454,16 +452,16 @@ onBeforeUnmount(() => {
454
452
 
455
453
  .control.active .handle,
456
454
  .handle:focus-visible {
457
- border-color: var(--ui-affordance-direct-color, var(--ui-accent-solid, #5b55d6));
458
- background: var(--ui-affordance-direct-color, var(--ui-accent-solid, #5b55d6));
459
- color: var(--ui-text-on-accent, #fff);
455
+ border-color: var(--ui-affordance-direct-color, var(--ui-accent-solid));
456
+ background: var(--ui-affordance-direct-color, var(--ui-accent-solid));
457
+ color: var(--ui-text-on-accent);
460
458
  box-shadow: var(--ui-shadow-sm, 0 1px 3px rgb(0 0 0 / 0.1));
461
459
  }
462
460
 
463
461
  .handle:focus-visible,
464
462
  .selector:focus-visible,
465
463
  .cell-menu:focus-visible {
466
- outline: 2px solid var(--ui-focus-ring, #5b55d6);
464
+ outline: 2px solid var(--ui-focus-ring);
467
465
  outline-offset: 2px;
468
466
  }
469
467
 
@@ -491,10 +489,9 @@ onBeforeUnmount(() => {
491
489
 
492
490
  .line {
493
491
  position: absolute;
494
- background: var(--ui-affordance-direct-color, var(--ui-accent-solid, #5b55d6));
492
+ background: var(--ui-affordance-direct-color, var(--ui-accent-solid));
495
493
  opacity: 0;
496
- transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast, 120ms))
497
- var(--ui-motion-ease, ease);
494
+ transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
498
495
  }
499
496
 
500
497
  .control.row .line {
@@ -513,13 +510,12 @@ onBeforeUnmount(() => {
513
510
 
514
511
  .guide {
515
512
  position: absolute;
516
- width: var(--ui-affordance-guide-size, 4px);
517
- height: var(--ui-affordance-guide-size, 4px);
518
- border-radius: var(--ui-radius-round, 999px);
519
- background: var(--ui-affordance-guide-color, var(--ui-border-strong, #c8c8c4));
520
- opacity: var(--ui-affordance-guide-opacity, 0.42);
521
- transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast, 120ms))
522
- var(--ui-motion-ease, ease);
513
+ width: var(--ui-affordance-guide-size);
514
+ height: var(--ui-affordance-guide-size);
515
+ border-radius: var(--ui-radius-round);
516
+ background: var(--ui-affordance-guide-color, var(--ui-border-strong));
517
+ opacity: var(--ui-affordance-guide-opacity);
518
+ transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
523
519
  }
524
520
 
525
521
  .control.row .guide {
@@ -544,17 +540,16 @@ onBeforeUnmount(() => {
544
540
  left: 50%;
545
541
  width: max-content;
546
542
  max-width: 14rem;
547
- padding: var(--ui-space-1, 4px) var(--ui-space-2, 8px);
548
- border-radius: var(--ui-radius-1, 4px);
549
- background: var(--ui-text-primary, #1a1a1a);
550
- color: var(--ui-surface-elevated, #fff);
551
- font-size: var(--ui-font-size-xs, 0.75rem);
552
- font-weight: var(--ui-font-medium, 500);
553
- line-height: var(--ui-line-height-md, 1.4);
543
+ padding: var(--ui-space-1) var(--ui-space-2);
544
+ border-radius: var(--ui-radius-sm);
545
+ background: var(--ui-text-primary);
546
+ color: var(--ui-surface-elevated);
547
+ font-size: var(--ui-font-size-xs);
548
+ font-weight: var(--ui-font-medium);
549
+ line-height: var(--ui-line-height-md);
554
550
  opacity: 0;
555
551
  transform: translateX(-50%);
556
- transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast, 120ms))
557
- var(--ui-motion-ease, ease);
552
+ transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
558
553
  pointer-events: none;
559
554
  }
560
555
 
@@ -580,41 +575,37 @@ onBeforeUnmount(() => {
580
575
  padding: 0;
581
576
  border: 1px solid transparent;
582
577
  background: transparent;
583
- color: var(--ui-text-secondary, #5c5c5c);
578
+ color: var(--ui-text-secondary);
584
579
  box-shadow: none;
585
580
  pointer-events: auto;
586
581
  cursor: pointer;
587
582
  transition:
588
- color var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
589
- background-color var(--ui-affordance-motion, var(--ui-motion-fast, 120ms))
590
- var(--ui-motion-ease, ease),
591
- border-color var(--ui-affordance-motion, var(--ui-motion-fast, 120ms))
592
- var(--ui-motion-ease, ease),
593
- box-shadow var(--ui-affordance-motion, var(--ui-motion-fast, 120ms))
594
- var(--ui-motion-ease, ease);
583
+ color var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
584
+ background-color var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
585
+ border-color var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
586
+ box-shadow var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
595
587
  }
596
588
 
597
589
  .selector:hover,
598
590
  .cell-menu:hover {
599
- background: var(--ui-icon-button-hover-bg, var(--ui-surface-muted, #f3f4f6));
600
- color: var(--ui-icon-button-hover-color, var(--ui-text-primary, #1a1a1a));
591
+ background: var(--ui-icon-button-hover-surface, var(--ui-surface-muted));
592
+ color: var(--ui-icon-button-hover-text, var(--ui-text-primary));
601
593
  box-shadow: var(--ui-shadow-xs, 0 1px 2px rgb(0 0 0 / 0.05));
602
594
  }
603
595
 
604
596
  .selector {
605
- border-radius: var(--ui-radius-round, 999px);
597
+ border-radius: var(--ui-radius-round);
606
598
  }
607
599
 
608
600
  .selector::before {
609
601
  content: "";
610
602
  position: absolute;
611
603
  inset: 50% auto auto 50%;
612
- border-radius: var(--ui-radius-round, 999px);
613
- background: var(--ui-affordance-guide-color, var(--ui-border-strong, #c8c8c4));
614
- opacity: var(--ui-affordance-guide-opacity, 0.42);
604
+ border-radius: var(--ui-radius-round);
605
+ background: var(--ui-affordance-guide-color, var(--ui-border-strong));
606
+ opacity: var(--ui-affordance-guide-opacity);
615
607
  transform: translate(-50%, -50%);
616
- transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast, 120ms))
617
- var(--ui-motion-ease, ease);
608
+ transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
618
609
  pointer-events: none;
619
610
  }
620
611
 
@@ -623,12 +614,12 @@ onBeforeUnmount(() => {
623
614
  width: 14px;
624
615
  height: 14px;
625
616
  --ui-icon-size: 14px;
626
- --ui-icon-stroke-width: var(--ui-editor-table-affordance-icon-stroke-width, 2);
617
+ --ui-icon-stroke-width: 2;
627
618
  opacity: 0;
628
619
  transform: scale(0.72);
629
620
  transition:
630
- opacity var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
631
- transform var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease);
621
+ opacity var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
622
+ transform var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
632
623
  }
633
624
 
634
625
  .selector:hover::before,
@@ -680,13 +671,13 @@ onBeforeUnmount(() => {
680
671
  .cell-menu {
681
672
  width: 24px;
682
673
  height: 24px;
683
- border-radius: var(--ui-radius-1, 4px);
684
- background: color-mix(in srgb, var(--ui-surface-muted, #f3f4f6) 78%, transparent);
674
+ border-radius: var(--ui-radius-sm);
675
+ background: color-mix(in srgb, var(--ui-surface-muted) 78%, transparent);
685
676
  }
686
677
 
687
678
  .cell-menu {
688
679
  --ui-icon-size: 15px;
689
- --ui-icon-stroke-width: var(--ui-editor-table-affordance-icon-stroke-width, 2);
680
+ --ui-icon-stroke-width: 2;
690
681
  }
691
682
 
692
683
  [data-component~="ui-editor-table-overlay"][hidden] {
@@ -341,13 +341,13 @@ onBeforeUnmount(() => {
341
341
 
342
342
  .looma-editor__mobile-toolbar-shell [data-component~="ui-editor-table-toolbar"] button.active,
343
343
  .looma-editor__mobile-toolbar-shell [data-component~="ui-editor-table-toolbar"] button.selected {
344
- background: var(--ui-accent-soft, var(--ui-accent-subtle, #e8f0fb));
344
+ background: var(--ui-accent-soft, var(--ui-accent-subtle));
345
345
  }
346
346
 
347
347
  .looma-editor__mobile-toolbar-shell [data-component~="ui-editor-table-toolbar"] .menu {
348
348
  top: auto;
349
349
  right: 0;
350
- bottom: calc(100% + var(--ui-space-2, 8px));
350
+ bottom: calc(100% + var(--ui-space-2));
351
351
  max-height: min(50dvh, 22rem);
352
352
  overflow-y: auto;
353
353
  overscroll-behavior: contain;
@@ -355,11 +355,11 @@ onBeforeUnmount(() => {
355
355
  [data-component~="ui-editor-table-toolbar"] {
356
356
  display: inline-flex;
357
357
  align-items: center;
358
- gap: var(--ui-space-1, 4px);
359
- padding: var(--ui-space-1, 4px);
360
- background: color-mix(in srgb, var(--ui-surface, #fff) 94%, transparent);
361
- border: 1px solid var(--ui-border, #e5e7eb);
362
- border-radius: calc(var(--ui-radius-md, 6px) + 2px);
358
+ gap: var(--ui-space-1);
359
+ padding: var(--ui-space-1);
360
+ background: color-mix(in srgb, var(--ui-surface) 94%, transparent);
361
+ border: 1px solid var(--ui-border);
362
+ border-radius: calc(var(--ui-radius-md) + 2px);
363
363
  box-shadow: var(--ui-shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1));
364
364
  backdrop-filter: blur(10px);
365
365
  }
@@ -374,7 +374,7 @@ onBeforeUnmount(() => {
374
374
  .sep {
375
375
  width: 1px;
376
376
  align-self: stretch;
377
- background: var(--ui-border, #e5e7eb);
377
+ background: var(--ui-border);
378
378
  }
379
379
 
380
380
  .overflow {
@@ -385,31 +385,31 @@ onBeforeUnmount(() => {
385
385
  display: inline-flex;
386
386
  align-items: center;
387
387
  justify-content: center;
388
- gap: var(--ui-space-1-5, 6px);
388
+ gap: var(--ui-space-2);
389
389
  min-height: 32px;
390
390
  border: 0;
391
- border-radius: var(--ui-radius-sm, 4px);
391
+ border-radius: var(--ui-radius-sm);
392
392
  background: transparent;
393
- color: var(--ui-text-primary, #111827);
393
+ color: var(--ui-text-primary);
394
394
  cursor: pointer;
395
- font-size: var(--ui-text-sm, 0.875rem);
395
+ font-size: var(--ui-font-size-sm);
396
396
  font-weight: 500;
397
397
  line-height: 1;
398
- padding: var(--ui-space-1-5, 6px) var(--ui-space-2, 8px);
398
+ padding: var(--ui-space-2) var(--ui-space-2);
399
399
  white-space: nowrap;
400
400
  }
401
401
 
402
402
  [data-component~="ui-editor-table-toolbar"] button:hover {
403
- background: var(--ui-surface-hover, #f3f4f6);
403
+ background: var(--ui-surface-hover);
404
404
  }
405
405
 
406
406
  [data-component~="ui-editor-table-toolbar"] button.active {
407
- background: var(--ui-accent-soft, var(--ui-accent-subtle, #e8f0fb));
408
- color: var(--ui-accent-active, #003d7a);
407
+ background: var(--ui-accent-soft, var(--ui-accent-subtle));
408
+ color: var(--ui-accent-active);
409
409
  }
410
410
 
411
411
  .group button {
412
- border-radius: var(--ui-radius-sm, 4px);
412
+ border-radius: var(--ui-radius-sm);
413
413
  }
414
414
 
415
415
  .group button + button {
@@ -418,11 +418,11 @@ onBeforeUnmount(() => {
418
418
 
419
419
  [data-component~="ui-editor-table-toolbar"] .more {
420
420
  border: 0;
421
- border-radius: var(--ui-radius-sm, 4px);
421
+ border-radius: var(--ui-radius-sm);
422
422
  }
423
423
 
424
424
  [data-component~="ui-editor-table-toolbar"] button.danger {
425
- color: var(--ui-danger, #dc2626);
425
+ color: var(--ui-danger);
426
426
  }
427
427
 
428
428
  [data-component~="ui-editor-table-toolbar"] {
@@ -442,13 +442,13 @@ onBeforeUnmount(() => {
442
442
 
443
443
  .menu {
444
444
  position: absolute;
445
- top: calc(100% + var(--ui-space-2, 8px));
445
+ top: calc(100% + var(--ui-space-2));
446
446
  right: 0;
447
447
  min-width: 12rem;
448
- padding: var(--ui-space-1, 4px);
449
- background: var(--ui-surface, #fff);
450
- border: 1px solid var(--ui-border, #e5e7eb);
451
- border-radius: var(--ui-radius-md, 6px);
448
+ padding: var(--ui-space-1);
449
+ background: var(--ui-surface);
450
+ border: 1px solid var(--ui-border);
451
+ border-radius: var(--ui-radius-md);
452
452
  box-shadow: var(--ui-shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1));
453
453
  display: flex;
454
454
  flex-direction: column;
@@ -457,18 +457,18 @@ onBeforeUnmount(() => {
457
457
  }
458
458
 
459
459
  .menu-section + .menu-section {
460
- margin-top: var(--ui-space-1, 4px);
461
- padding-top: var(--ui-space-1, 4px);
462
- border-top: 1px solid color-mix(in srgb, var(--ui-border, #e5e7eb) 80%, transparent);
460
+ margin-top: var(--ui-space-1);
461
+ padding-top: var(--ui-space-1);
462
+ border-top: 1px solid color-mix(in srgb, var(--ui-border) 80%, transparent);
463
463
  }
464
464
 
465
465
  .menu-heading {
466
- padding: var(--ui-space-1, 4px) var(--ui-space-2, 8px);
466
+ padding: var(--ui-space-1) var(--ui-space-2);
467
467
  font-size: 0.6875rem;
468
468
  font-weight: 700;
469
469
  letter-spacing: 0.05em;
470
470
  text-transform: uppercase;
471
- color: var(--ui-text-muted, #6b7280);
471
+ color: var(--ui-text-muted);
472
472
  }
473
473
 
474
474
  .menu button {
@@ -485,7 +485,7 @@ onBeforeUnmount(() => {
485
485
  }
486
486
 
487
487
  [data-component~="ui-editor-table-toolbar"] .swatch-button {
488
- gap: var(--ui-space-1, 4px);
488
+ gap: var(--ui-space-1);
489
489
  justify-content: flex-start;
490
490
  }
491
491
 
@@ -493,19 +493,19 @@ onBeforeUnmount(() => {
493
493
  width: 14px;
494
494
  height: 14px;
495
495
  flex: 0 0 14px;
496
- border: 1px solid color-mix(in srgb, var(--ui-border, #e5e7eb) 80%, #000);
496
+ border: 1px solid color-mix(in srgb, var(--ui-border) 80%, #000);
497
497
  border-radius: 3px;
498
498
  background: var(--ui-editor-table-toolbar-swatch);
499
499
  }
500
500
 
501
501
  .swatch.default {
502
502
  background:
503
- linear-gradient(135deg, transparent 44%, var(--ui-danger, #dc2626) 46% 54%, transparent 56%),
504
- var(--ui-surface, #fff);
503
+ linear-gradient(135deg, transparent 44%, var(--ui-danger) 46% 54%, transparent 56%),
504
+ var(--ui-surface);
505
505
  }
506
506
 
507
507
  .swatch-button.selected {
508
- background: var(--ui-accent-soft, var(--ui-accent-subtle, #e8f0fb));
508
+ background: var(--ui-accent-soft, var(--ui-accent-subtle));
509
509
  }
510
510
 
511
511
  [data-component~="ui-editor-table-toolbar"][hidden] {
@@ -48,8 +48,8 @@ const hostState = computed(() =>
48
48
  overflow-x: auto;
49
49
  scrollbar-width: none;
50
50
  white-space: nowrap;
51
- background: var(--ui-editor-toolbar-bg, var(--ui-surface, #fff));
52
- border-bottom: 1px solid var(--ui-editor-toolbar-border, var(--ui-border, #e5e7eb));
51
+ background: var(--ui-editor-toolbar-surface, var(--ui-surface));
52
+ border-bottom: 1px solid var(--ui-editor-toolbar-border, var(--ui-border));
53
53
  }
54
54
 
55
55
  [data-component~="ui-editor-toolbar"]::-webkit-scrollbar {
@@ -63,7 +63,7 @@ const hostState = computed(() =>
63
63
  :slotted(.divider) {
64
64
  width: 1px;
65
65
  height: 20px;
66
- background: var(--ui-editor-toolbar-divider, var(--ui-border, #e5e7eb));
66
+ background: var(--ui-editor-toolbar-divider, var(--ui-border));
67
67
  flex-shrink: 0;
68
68
  margin: 0 var(--ui-editor-toolbar-divider-margin, 4px);
69
69
  }
@@ -78,11 +78,11 @@ const hostState = computed(() =>
78
78
  overflow-x: visible;
79
79
  background: color-mix(
80
80
  in srgb,
81
- var(--ui-editor-toolbar-bg, var(--ui-surface, #fff)) 96%,
81
+ var(--ui-editor-toolbar-surface, var(--ui-surface)) 96%,
82
82
  transparent
83
83
  );
84
- border: 1px solid var(--ui-editor-toolbar-border, var(--ui-border, #e5e7eb));
85
- border-radius: var(--ui-editor-toolbar-floating-radius, var(--ui-radius-lg, 10px));
84
+ border: 1px solid var(--ui-editor-toolbar-border, var(--ui-border));
85
+ border-radius: var(--ui-editor-toolbar-floating-radius, var(--ui-radius-lg));
86
86
  box-shadow: var(
87
87
  --ui-editor-toolbar-floating-shadow,
88
88
  var(--ui-shadow-lg, 0 10px 24px rgb(0 0 0 / 0.12))
@@ -98,7 +98,7 @@ const hostState = computed(() =>
98
98
  left: 0;
99
99
  right: 0;
100
100
  min-height: var(--ui-editor-toolbar-mobile-min-height, 56px);
101
- border-top: 1px solid var(--ui-editor-toolbar-border, var(--ui-border, #e5e7eb));
101
+ border-top: 1px solid var(--ui-editor-toolbar-border, var(--ui-border));
102
102
  border-bottom: none;
103
103
  box-shadow: var(--ui-editor-toolbar-mobile-shadow, 0 -2px 8px rgb(0 0 0 / 0.06));
104
104
  }
@@ -107,8 +107,8 @@ const hostState = computed(() =>
107
107
  position: static;
108
108
  inset: auto;
109
109
  min-height: auto;
110
- border: 1px solid var(--ui-editor-toolbar-border, var(--ui-border, #e5e7eb));
111
- border-radius: var(--ui-editor-toolbar-floating-radius, var(--ui-radius-lg, 10px));
110
+ border: 1px solid var(--ui-editor-toolbar-border, var(--ui-border));
111
+ border-radius: var(--ui-editor-toolbar-floating-radius, var(--ui-radius-lg));
112
112
  box-shadow: var(
113
113
  --ui-editor-toolbar-floating-shadow,
114
114
  var(--ui-shadow-lg, 0 10px 24px rgb(0 0 0 / 0.12))
@@ -42,14 +42,15 @@ const hostState = computed(() =>
42
42
  [data-component~="ui-floating-action-button"] {
43
43
  position: fixed;
44
44
  inset-block-end: calc(
45
- var(--ui-floating-action-button-bottom, var(--ui-space-6, 1.5rem)) + env(safe-area-inset-bottom)
45
+ var(--ui-floating-action-button-inset-block-end, var(--ui-space-6)) +
46
+ env(safe-area-inset-bottom)
46
47
  );
47
48
  inset-inline-end: max(
48
- var(--ui-floating-action-button-inline-end, var(--ui-space-5, 1.25rem)),
49
+ var(--ui-floating-action-button-inset-inline-end, var(--ui-space-5)),
49
50
  env(safe-area-inset-right)
50
51
  );
51
- inline-size: var(--ui-floating-action-button-size, 56px);
52
- block-size: var(--ui-floating-action-button-size, 56px);
52
+ inline-size: var(--ui-control-min-block-size);
53
+ block-size: var(--ui-control-min-block-size);
53
54
  display: inline-flex;
54
55
  z-index: var(--ui-floating-action-button-z-index, 100);
55
56
  }
@@ -63,33 +64,27 @@ const hostState = computed(() =>
63
64
  display: inline-flex;
64
65
  align-items: center;
65
66
  justify-content: center;
66
- background: var(--ui-floating-action-button-bg, var(--ui-accent-solid));
67
- color: var(--ui-floating-action-button-color, var(--ui-text-on-accent));
68
- box-shadow: var(
69
- --ui-floating-action-button-shadow,
70
- 0 4px 12px color-mix(in srgb, var(--ui-accent-solid) 40%, transparent)
71
- );
67
+ background: var(--ui-accent);
68
+ color: var(--ui-on-accent);
69
+ box-shadow: 0 4px 12px color-mix(in srgb, var(--ui-accent) 40%, transparent);
72
70
  cursor: pointer;
73
71
  transition:
74
- background-color var(--ui-motion-fast, 160ms) var(--ui-motion-ease, ease),
75
- transform var(--ui-motion-fast, 160ms) var(--ui-motion-ease, ease),
76
- box-shadow var(--ui-motion-fast, 160ms) var(--ui-motion-ease, ease);
72
+ background-color var(--ui-motion-fast) var(--ui-motion-ease),
73
+ transform var(--ui-motion-fast) var(--ui-motion-ease),
74
+ box-shadow var(--ui-motion-fast) var(--ui-motion-ease);
77
75
  }
78
76
 
79
77
  [data-component~="ui-floating-action-button"]:hover:enabled {
80
- background: var(--ui-floating-action-button-hover-bg, var(--ui-accent-hover));
81
- box-shadow: var(
82
- --ui-floating-action-button-hover-shadow,
83
- 0 6px 16px color-mix(in srgb, var(--ui-accent-solid) 50%, transparent)
84
- );
78
+ background: var(--ui-accent-hover);
79
+ box-shadow: 0 6px 16px color-mix(in srgb, var(--ui-accent) 50%, transparent);
85
80
  }
86
81
 
87
82
  [data-component~="ui-floating-action-button"]:active:enabled {
88
- transform: scale(var(--ui-floating-action-button-active-scale, 0.94));
83
+ transform: scale(0.94);
89
84
  }
90
85
 
91
86
  [data-component~="ui-floating-action-button"]:focus-visible {
92
- outline: 2px solid var(--ui-focus-ring, currentColor);
87
+ outline: 2px solid var(--ui-focus-ring);
93
88
  outline-offset: 2px;
94
89
  }
95
90
 
@@ -99,8 +94,8 @@ const hostState = computed(() =>
99
94
  }
100
95
 
101
96
  :slotted(svg) {
102
- inline-size: var(--ui-floating-action-button-icon-size, 24px);
103
- block-size: var(--ui-floating-action-button-icon-size, 24px);
97
+ inline-size: var(--ui-icon-size-lg);
98
+ block-size: var(--ui-icon-size-lg);
104
99
  flex-shrink: 0;
105
100
  }
106
101
 
package/vue/UiGrid.vue CHANGED
@@ -26,7 +26,7 @@ const hostState = computed(() =>
26
26
 
27
27
  <style scoped>
28
28
  [data-component~="ui-grid"] {
29
- --_grid-gap: var(--ui-space-4, 1rem);
29
+ --_grid-gap: var(--ui-space-4);
30
30
  --_grid-min: 12rem;
31
31
  display: grid;
32
32
  gap: var(--ui-grid-gap, var(--_grid-gap));
@@ -38,19 +38,19 @@ const hostState = computed(() =>
38
38
  }
39
39
 
40
40
  [data-component~="ui-grid"][data-ui-grid-state~="gap=xs"] {
41
- --_grid-gap: var(--ui-space-2, 0.5rem);
41
+ --_grid-gap: var(--ui-space-2);
42
42
  }
43
43
  [data-component~="ui-grid"][data-ui-grid-state~="gap=s"] {
44
- --_grid-gap: var(--ui-space-3, 0.75rem);
44
+ --_grid-gap: var(--ui-space-3);
45
45
  }
46
46
  [data-component~="ui-grid"][data-ui-grid-state~="gap=m"] {
47
- --_grid-gap: var(--ui-space-4, 1rem);
47
+ --_grid-gap: var(--ui-space-4);
48
48
  }
49
49
  [data-component~="ui-grid"][data-ui-grid-state~="gap=l"] {
50
- --_grid-gap: var(--ui-space-5, 1.5rem);
50
+ --_grid-gap: var(--ui-space-5);
51
51
  }
52
52
  [data-component~="ui-grid"][data-ui-grid-state~="gap=xl"] {
53
- --_grid-gap: var(--ui-space-6, 2rem);
53
+ --_grid-gap: var(--ui-space-6);
54
54
  }
55
55
  [data-component~="ui-grid"][data-ui-grid-state~="min=md"] {
56
56
  --_grid-min: 16rem;