@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
@@ -47,9 +47,9 @@
47
47
  display: flex;
48
48
  overflow: hidden;
49
49
  flex-direction: column;
50
- background: var(--ui-surface, #fff);
51
- border: 1px solid var(--ui-border, #e5e7eb);
52
- border-radius: var(--ui-radius-xl, 1rem);
50
+ background: var(--ui-surface);
51
+ border: 1px solid var(--ui-border);
52
+ border-radius: var(--ui-radius-dialog);
53
53
  box-shadow: var(--ui-shadow-lg, 0 8px 24px rgb(0 0 0 / 0.12));
54
54
  }
55
55
 
@@ -57,25 +57,25 @@
57
57
  display: flex;
58
58
  align-items: center;
59
59
  justify-content: space-between;
60
- gap: var(--ui-space-3, 12px);
61
- padding: var(--ui-space-2, 8px) var(--ui-space-3, 12px);
62
- color: var(--ui-text-secondary, #4b5563);
63
- border-bottom: 1px solid var(--ui-border, #e5e7eb);
64
- font-size: var(--ui-font-size-xs, 0.75rem);
65
- font-weight: var(--ui-font-semibold, 600);
60
+ gap: var(--ui-space-3);
61
+ padding: var(--ui-space-2) var(--ui-space-3);
62
+ color: var(--ui-text-secondary);
63
+ border-bottom: 1px solid var(--ui-border);
64
+ font-size: var(--ui-font-size-xs);
65
+ font-weight: var(--ui-font-semibold);
66
66
  }
67
67
 
68
68
  .hint {
69
69
  overflow: hidden;
70
- color: var(--ui-text-muted, #6b7280);
71
- font-weight: var(--ui-font-normal, 400);
70
+ color: var(--ui-text-muted);
71
+ font-weight: var(--ui-font-normal);
72
72
  text-overflow: ellipsis;
73
73
  white-space: nowrap;
74
74
  }
75
75
 
76
76
  .list {
77
77
  max-height: 280px;
78
- padding: var(--ui-space-1, 4px) 0;
78
+ padding: var(--ui-space-1) 0;
79
79
  margin: 0;
80
80
  overflow-y: auto;
81
81
  overscroll-behavior: contain;
@@ -86,8 +86,8 @@
86
86
  display: flex;
87
87
  align-items: center;
88
88
  min-height: 44px;
89
- padding: var(--ui-space-1-5, 6px) var(--ui-space-3, 12px);
90
- gap: var(--ui-space-3, 12px);
89
+ padding: var(--ui-space-2) var(--ui-space-3);
90
+ gap: var(--ui-space-3);
91
91
  cursor: pointer;
92
92
  }
93
93
 
@@ -102,11 +102,11 @@
102
102
  width: 32px;
103
103
  height: 32px;
104
104
  flex: 0 0 auto;
105
- color: var(--ui-accent-active, var(--ui-accent-solid, #2563eb));
106
- background: var(--ui-accent-soft, var(--ui-accent-subtle, #eff6ff));
105
+ color: var(--ui-accent-active, var(--ui-accent-solid));
106
+ background: var(--ui-accent-soft, var(--ui-accent-subtle));
107
107
  border-radius: 999px;
108
- font-size: var(--ui-font-size-xs, 0.75rem);
109
- font-weight: var(--ui-font-semibold, 600);
108
+ font-size: var(--ui-font-size-xs);
109
+ font-weight: var(--ui-font-semibold);
110
110
  }
111
111
 
112
112
  .body {
@@ -123,26 +123,26 @@
123
123
  }
124
124
 
125
125
  .label {
126
- color: var(--ui-text-primary, #111827);
127
- font-size: var(--ui-font-size-sm, 0.875rem);
128
- font-weight: var(--ui-font-medium, 500);
126
+ color: var(--ui-text-primary);
127
+ font-size: var(--ui-font-size-sm);
128
+ font-weight: var(--ui-font-medium);
129
129
  }
130
130
 
131
131
  .detail,
132
132
  .loading {
133
- color: var(--ui-text-muted, #6b7280);
134
- font-size: var(--ui-font-size-xs, 0.75rem);
133
+ color: var(--ui-text-muted);
134
+ font-size: var(--ui-font-size-xs);
135
135
  }
136
136
 
137
137
  .loading {
138
138
  min-height: 44px;
139
- padding: var(--ui-space-3, 12px);
139
+ padding: var(--ui-space-3);
140
140
  }
141
141
 
142
142
  @media (max-width: 767px) {
143
143
  :host {
144
144
  border-bottom: 0;
145
- border-radius: var(--ui-radius-xl, 1rem) var(--ui-radius-xl, 1rem) 0 0;
145
+ border-radius: var(--ui-radius-dialog) var(--ui-radius-dialog) 0 0;
146
146
  }
147
147
 
148
148
  .list {
@@ -35,9 +35,9 @@
35
35
  }
36
36
 
37
37
  :host {
38
- background: var(--ui-surface, #fff);
39
- border: 1px solid var(--ui-border, #e5e7eb);
40
- border-radius: var(--ui-radius-xl, 1rem);
38
+ background: var(--ui-surface);
39
+ border: 1px solid var(--ui-border);
40
+ border-radius: var(--ui-radius-dialog);
41
41
  box-shadow: var(--ui-shadow-lg, 0 8px 24px rgb(0 0 0 / 0.12));
42
42
  overflow: hidden;
43
43
  display: flex;
@@ -46,7 +46,7 @@
46
46
 
47
47
  @media (max-width: 767px) {
48
48
  :host {
49
- border-radius: var(--ui-radius-xl, 1rem) var(--ui-radius-xl, 1rem) 0 0;
49
+ border-radius: var(--ui-radius-dialog) var(--ui-radius-dialog) 0 0;
50
50
  border-bottom: none;
51
51
  }
52
52
  }
@@ -54,12 +54,12 @@
54
54
  .header {
55
55
  display: none;
56
56
  align-items: center;
57
- gap: var(--ui-space-2, 8px);
58
- padding: var(--ui-space-3, 12px) var(--ui-space-4, 16px);
59
- border-bottom: 1px solid var(--ui-border, #e5e7eb);
60
- font-size: var(--ui-font-size-xs, 0.75rem);
61
- color: var(--ui-text-muted, #6b7280);
62
- font-weight: var(--ui-font-semibold, 600);
57
+ gap: var(--ui-space-2);
58
+ padding: var(--ui-space-3) var(--ui-space-4);
59
+ border-bottom: 1px solid var(--ui-border);
60
+ font-size: var(--ui-font-size-xs);
61
+ color: var(--ui-text-muted);
62
+ font-weight: var(--ui-font-semibold);
63
63
  text-transform: uppercase;
64
64
  letter-spacing: 0.05em;
65
65
  }
@@ -71,12 +71,12 @@
71
71
  }
72
72
 
73
73
  .header-query {
74
- background: var(--ui-surface-hover, #f3f4f6);
75
- border-radius: var(--ui-radius-sm, 4px);
74
+ background: var(--ui-surface-hover);
75
+ border-radius: var(--ui-radius-sm);
76
76
  padding: 0.1em 0.4em;
77
77
  font-family: var(--ui-font-family-mono, ui-monospace, monospace);
78
- font-size: var(--ui-font-size-xs, 0.75rem);
79
- color: var(--ui-accent, #3b82f6);
78
+ font-size: var(--ui-font-size-xs);
79
+ color: var(--ui-accent);
80
80
  text-transform: none;
81
81
  letter-spacing: 0;
82
82
  }
@@ -84,7 +84,7 @@
84
84
  .list {
85
85
  list-style: none;
86
86
  margin: 0;
87
- padding: var(--ui-space-1, 4px) 0;
87
+ padding: var(--ui-space-1) 0;
88
88
  overflow-y: auto;
89
89
  max-height: 280px;
90
90
  overscroll-behavior: contain;
@@ -93,15 +93,15 @@
93
93
  @media (max-width: 767px) {
94
94
  .list {
95
95
  max-height: calc(60dvh - 80px);
96
- padding: var(--ui-space-1, 4px) 0 var(--ui-space-2, 8px);
96
+ padding: var(--ui-space-1) 0 var(--ui-space-2);
97
97
  }
98
98
  }
99
99
 
100
100
  .item {
101
101
  display: flex;
102
102
  align-items: center;
103
- gap: var(--ui-space-3, 12px);
104
- padding: var(--ui-space-2, 8px) var(--ui-space-3, 12px);
103
+ gap: var(--ui-space-3);
104
+ padding: var(--ui-space-2) var(--ui-space-3);
105
105
  min-height: 44px;
106
106
  cursor: pointer;
107
107
  transition: background-color 120ms ease;
@@ -117,21 +117,21 @@
117
117
  justify-content: center;
118
118
  width: 32px;
119
119
  height: 32px;
120
- background: var(--ui-surface-hover, #f3f4f6);
121
- border: 1px solid var(--ui-border, #e5e7eb);
122
- border-radius: var(--ui-radius-md, 6px);
123
- font-size: var(--ui-font-size-sm, 0.875rem);
124
- font-weight: var(--ui-font-bold, 700);
125
- color: var(--ui-text-secondary, #4b5563);
120
+ background: var(--ui-surface-hover);
121
+ border: 1px solid var(--ui-border);
122
+ border-radius: var(--ui-radius-md);
123
+ font-size: var(--ui-font-size-sm);
124
+ font-weight: var(--ui-font-bold);
125
+ color: var(--ui-text-secondary);
126
126
  font-family: var(--ui-font-family-mono, ui-monospace, monospace);
127
127
  flex-shrink: 0;
128
128
  line-height: 1;
129
129
  }
130
130
 
131
131
  .item.active .icon {
132
- background: var(--ui-accent, #3b82f6);
133
- border-color: var(--ui-accent, #3b82f6);
134
- color: var(--ui-accent-contrast, #fff);
132
+ background: var(--ui-accent);
133
+ border-color: var(--ui-accent);
134
+ color: var(--ui-accent-contrast);
135
135
  }
136
136
 
137
137
  .icon {
@@ -147,17 +147,17 @@
147
147
  }
148
148
 
149
149
  .title {
150
- font-size: var(--ui-font-size-sm, 0.875rem);
151
- font-weight: var(--ui-font-medium, 500);
152
- color: var(--ui-text, #111827);
150
+ font-size: var(--ui-font-size-sm);
151
+ font-weight: var(--ui-font-medium);
152
+ color: var(--ui-text);
153
153
  white-space: nowrap;
154
154
  overflow: hidden;
155
155
  text-overflow: ellipsis;
156
156
  }
157
157
 
158
158
  .description {
159
- font-size: var(--ui-font-size-xs, 0.75rem);
160
- color: var(--ui-text-muted, #6b7280);
159
+ font-size: var(--ui-font-size-xs);
160
+ color: var(--ui-text-muted);
161
161
  white-space: nowrap;
162
162
  overflow: hidden;
163
163
  text-overflow: ellipsis;
@@ -165,10 +165,10 @@
165
165
 
166
166
  .footer {
167
167
  display: none;
168
- padding: var(--ui-space-2, 8px) var(--ui-space-3, 12px);
169
- border-top: 1px solid var(--ui-border, #e5e7eb);
170
- font-size: var(--ui-font-size-xs, 0.75rem);
171
- color: var(--ui-text-muted, #6b7280);
168
+ padding: var(--ui-space-2) var(--ui-space-3);
169
+ border-top: 1px solid var(--ui-border);
170
+ font-size: var(--ui-font-size-xs);
171
+ color: var(--ui-text-muted);
172
172
  }
173
173
 
174
174
  @media (min-width: 768px) {
@@ -183,11 +183,11 @@
183
183
  justify-content: center;
184
184
  font-family: var(--ui-font-family-mono, ui-monospace, monospace);
185
185
  font-size: 10px;
186
- background: var(--ui-surface-hover, #f3f4f6);
187
- border: 1px solid var(--ui-border, #e5e7eb);
186
+ background: var(--ui-surface-hover);
187
+ border: 1px solid var(--ui-border);
188
188
  border-radius: 3px;
189
189
  padding: 0 3px;
190
- color: var(--ui-text-secondary, #4b5563);
190
+ color: var(--ui-text-secondary);
191
191
  }
192
192
 
193
193
  :host[hidden] {
@@ -53,10 +53,10 @@
53
53
  min-width: 14rem;
54
54
  max-width: min(17rem, calc(100vw - 24px));
55
55
  max-height: min(28rem, calc(100vh - 24px));
56
- padding: var(--ui-space-1-5, 6px);
57
- background: var(--ui-surface, #fff);
58
- border: 1px solid var(--ui-border, #e5e7eb);
59
- border-radius: var(--ui-radius-lg, 10px);
56
+ padding: var(--ui-space-2);
57
+ background: var(--ui-surface);
58
+ border: 1px solid var(--ui-border);
59
+ border-radius: var(--ui-radius-lg);
60
60
  box-shadow: var(--ui-shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1));
61
61
  display: flex;
62
62
  flex-direction: column;
@@ -75,17 +75,17 @@
75
75
  :host button {
76
76
  display: flex;
77
77
  align-items: center;
78
- gap: var(--ui-space-2, 8px);
78
+ gap: var(--ui-space-2);
79
79
  width: 100%;
80
80
  text-align: left;
81
81
  min-height: 32px;
82
- padding: var(--ui-space-1-5, 6px) var(--ui-space-2, 8px);
82
+ padding: var(--ui-space-2) var(--ui-space-2);
83
83
  border: none;
84
- border-radius: var(--ui-radius-sm, 4px);
84
+ border-radius: var(--ui-radius-sm);
85
85
  background: none;
86
- font-size: var(--ui-font-size-sm, 0.875rem);
86
+ font-size: var(--ui-font-size-sm);
87
87
  cursor: pointer;
88
- color: var(--ui-text, #111);
88
+ color: var(--ui-text);
89
89
  }
90
90
 
91
91
  :host button {
@@ -94,7 +94,7 @@
94
94
  }
95
95
 
96
96
  :host button:hover:not(:disabled) {
97
- background: var(--ui-surface-hover, #f3f4f6);
97
+ background: var(--ui-surface-hover);
98
98
  }
99
99
 
100
100
  :host button.selected {
@@ -102,7 +102,7 @@
102
102
  }
103
103
 
104
104
  :host button.danger {
105
- color: var(--ui-danger, #dc2626);
105
+ color: var(--ui-danger);
106
106
  }
107
107
 
108
108
  .swatches {
@@ -114,7 +114,7 @@
114
114
  .swatch-button {
115
115
  display: inline-flex;
116
116
  align-items: center;
117
- gap: var(--ui-space-2, 8px);
117
+ gap: var(--ui-space-2);
118
118
  }
119
119
 
120
120
  .swatch {
@@ -122,7 +122,7 @@
122
122
  width: 1rem;
123
123
  height: 1rem;
124
124
  border-radius: 999px;
125
- border: 1px solid var(--ui-border, #d1d5db);
125
+ border: 1px solid var(--ui-border);
126
126
  background: var(--ui-editor-table-context-swatch, #fff);
127
127
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.35);
128
128
  flex-shrink: 0;
@@ -134,11 +134,11 @@
134
134
  linear-gradient(
135
135
  135deg,
136
136
  transparent calc(50% - 1px),
137
- var(--ui-text-muted, #6b7280) calc(50% - 1px),
138
- var(--ui-text-muted, #6b7280) calc(50% + 1px),
137
+ var(--ui-text-muted) calc(50% - 1px),
138
+ var(--ui-text-muted) calc(50% + 1px),
139
139
  transparent calc(50% + 1px)
140
140
  ),
141
- var(--ui-surface, #fff);
141
+ var(--ui-surface);
142
142
  }
143
143
 
144
144
  .swatch-label {
@@ -147,18 +147,18 @@
147
147
  }
148
148
 
149
149
  .heading {
150
- padding: var(--ui-space-1, 4px) var(--ui-space-2, 8px);
150
+ padding: var(--ui-space-1) var(--ui-space-2);
151
151
  font-size: 0.6875rem;
152
152
  font-weight: 700;
153
153
  letter-spacing: 0.05em;
154
154
  text-transform: uppercase;
155
- color: var(--ui-text-muted, #6b7280);
155
+ color: var(--ui-text-muted);
156
156
  }
157
157
 
158
158
  .sep {
159
159
  height: 1px;
160
- background: var(--ui-border, #e5e7eb);
161
- margin: var(--ui-space-1, 4px) 0;
160
+ background: var(--ui-border);
161
+ margin: var(--ui-space-1) 0;
162
162
  }
163
163
 
164
164
  :host[hidden] {
@@ -169,10 +169,10 @@
169
169
  width: 24px;
170
170
  height: 24px;
171
171
  padding: 0;
172
- border: 1px solid var(--ui-affordance-near-color, var(--ui-border-strong, #c8c8c4));
173
- border-radius: var(--ui-radius-round, 999px);
174
- background: color-mix(in srgb, var(--ui-surface-elevated, #fff) 96%, transparent);
175
- color: var(--ui-affordance-near-color, var(--ui-text-secondary, #5c5c5c));
172
+ border: 1px solid var(--ui-affordance-near-color, var(--ui-border-strong));
173
+ border-radius: var(--ui-radius-round);
174
+ background: color-mix(in srgb, var(--ui-surface-elevated) 96%, transparent);
175
+ color: var(--ui-affordance-near-color, var(--ui-text-secondary));
176
176
  font: inherit;
177
177
  font-size: 16px;
178
178
  line-height: 1;
@@ -180,18 +180,18 @@
180
180
  opacity: 0;
181
181
  scale: 0.72;
182
182
  transition:
183
- opacity var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
184
- scale var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
185
- color var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
186
- background-color var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
187
- border-color var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease);
183
+ opacity var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
184
+ scale var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
185
+ color var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
186
+ background-color var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
187
+ border-color var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
188
188
  pointer-events: auto;
189
189
  cursor: pointer;
190
190
  }
191
191
 
192
192
  .handle {
193
193
  --ui-icon-size: 14px;
194
- --ui-icon-stroke-width: var(--ui-editor-table-affordance-icon-stroke-width, 2);
194
+ --ui-icon-stroke-width: 2;
195
195
  }
196
196
 
197
197
  .handle[data-ui-proximity="near"],
@@ -203,16 +203,16 @@
203
203
 
204
204
  .control.active .handle,
205
205
  .handle:focus-visible {
206
- border-color: var(--ui-affordance-direct-color, var(--ui-accent-solid, #5b55d6));
207
- background: var(--ui-affordance-direct-color, var(--ui-accent-solid, #5b55d6));
208
- color: var(--ui-text-on-accent, #fff);
206
+ border-color: var(--ui-affordance-direct-color, var(--ui-accent-solid));
207
+ background: var(--ui-affordance-direct-color, var(--ui-accent-solid));
208
+ color: var(--ui-text-on-accent);
209
209
  box-shadow: var(--ui-shadow-sm, 0 1px 3px rgb(0 0 0 / 0.1));
210
210
  }
211
211
 
212
212
  .handle:focus-visible,
213
213
  .selector:focus-visible,
214
214
  .cell-menu:focus-visible {
215
- outline: 2px solid var(--ui-focus-ring, #5b55d6);
215
+ outline: 2px solid var(--ui-focus-ring);
216
216
  outline-offset: 2px;
217
217
  }
218
218
 
@@ -240,9 +240,9 @@
240
240
 
241
241
  .line {
242
242
  position: absolute;
243
- background: var(--ui-affordance-direct-color, var(--ui-accent-solid, #5b55d6));
243
+ background: var(--ui-affordance-direct-color, var(--ui-accent-solid));
244
244
  opacity: 0;
245
- transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease);
245
+ transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
246
246
  }
247
247
 
248
248
  .control.row .line {
@@ -261,12 +261,12 @@
261
261
 
262
262
  .guide {
263
263
  position: absolute;
264
- width: var(--ui-affordance-guide-size, 4px);
265
- height: var(--ui-affordance-guide-size, 4px);
266
- border-radius: var(--ui-radius-round, 999px);
267
- background: var(--ui-affordance-guide-color, var(--ui-border-strong, #c8c8c4));
268
- opacity: var(--ui-affordance-guide-opacity, 0.42);
269
- transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease);
264
+ width: var(--ui-affordance-guide-size);
265
+ height: var(--ui-affordance-guide-size);
266
+ border-radius: var(--ui-radius-round);
267
+ background: var(--ui-affordance-guide-color, var(--ui-border-strong));
268
+ opacity: var(--ui-affordance-guide-opacity);
269
+ transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
270
270
  }
271
271
 
272
272
  .control.row .guide {
@@ -291,16 +291,16 @@
291
291
  left: 50%;
292
292
  width: max-content;
293
293
  max-width: 14rem;
294
- padding: var(--ui-space-1, 4px) var(--ui-space-2, 8px);
295
- border-radius: var(--ui-radius-1, 4px);
296
- background: var(--ui-text-primary, #1a1a1a);
297
- color: var(--ui-surface-elevated, #fff);
298
- font-size: var(--ui-font-size-xs, 0.75rem);
299
- font-weight: var(--ui-font-medium, 500);
300
- line-height: var(--ui-line-height-md, 1.4);
294
+ padding: var(--ui-space-1) var(--ui-space-2);
295
+ border-radius: var(--ui-radius-sm);
296
+ background: var(--ui-text-primary);
297
+ color: var(--ui-surface-elevated);
298
+ font-size: var(--ui-font-size-xs);
299
+ font-weight: var(--ui-font-medium);
300
+ line-height: var(--ui-line-height-md);
301
301
  opacity: 0;
302
302
  transform: translateX(-50%);
303
- transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease);
303
+ transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
304
304
  pointer-events: none;
305
305
  }
306
306
 
@@ -326,37 +326,37 @@
326
326
  padding: 0;
327
327
  border: 1px solid transparent;
328
328
  background: transparent;
329
- color: var(--ui-text-secondary, #5c5c5c);
329
+ color: var(--ui-text-secondary);
330
330
  box-shadow: none;
331
331
  pointer-events: auto;
332
332
  cursor: pointer;
333
333
  transition:
334
- color var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
335
- background-color var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
336
- border-color var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
337
- box-shadow var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease);
334
+ color var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
335
+ background-color var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
336
+ border-color var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
337
+ box-shadow var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
338
338
  }
339
339
 
340
340
  .selector:hover,
341
341
  .cell-menu:hover {
342
- background: var(--ui-icon-button-hover-bg, var(--ui-surface-muted, #f3f4f6));
343
- color: var(--ui-icon-button-hover-color, var(--ui-text-primary, #1a1a1a));
342
+ background: var(--ui-icon-button-hover-surface, var(--ui-surface-muted));
343
+ color: var(--ui-icon-button-hover-text, var(--ui-text-primary));
344
344
  box-shadow: var(--ui-shadow-xs, 0 1px 2px rgb(0 0 0 / 0.05));
345
345
  }
346
346
 
347
347
  .selector {
348
- border-radius: var(--ui-radius-round, 999px);
348
+ border-radius: var(--ui-radius-round);
349
349
  }
350
350
 
351
351
  .selector::before {
352
352
  content: "";
353
353
  position: absolute;
354
354
  inset: 50% auto auto 50%;
355
- border-radius: var(--ui-radius-round, 999px);
356
- background: var(--ui-affordance-guide-color, var(--ui-border-strong, #c8c8c4));
357
- opacity: var(--ui-affordance-guide-opacity, 0.42);
355
+ border-radius: var(--ui-radius-round);
356
+ background: var(--ui-affordance-guide-color, var(--ui-border-strong));
357
+ opacity: var(--ui-affordance-guide-opacity);
358
358
  transform: translate(-50%, -50%);
359
- transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease);
359
+ transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
360
360
  pointer-events: none;
361
361
  }
362
362
 
@@ -365,12 +365,12 @@
365
365
  width: 14px;
366
366
  height: 14px;
367
367
  --ui-icon-size: 14px;
368
- --ui-icon-stroke-width: var(--ui-editor-table-affordance-icon-stroke-width, 2);
368
+ --ui-icon-stroke-width: 2;
369
369
  opacity: 0;
370
370
  transform: scale(0.72);
371
371
  transition:
372
- opacity var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
373
- transform var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease);
372
+ opacity var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
373
+ transform var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
374
374
  }
375
375
 
376
376
  .selector:hover::before,
@@ -422,13 +422,13 @@
422
422
  .cell-menu {
423
423
  width: 24px;
424
424
  height: 24px;
425
- border-radius: var(--ui-radius-1, 4px);
426
- background: color-mix(in srgb, var(--ui-surface-muted, #f3f4f6) 78%, transparent);
425
+ border-radius: var(--ui-radius-sm);
426
+ background: color-mix(in srgb, var(--ui-surface-muted) 78%, transparent);
427
427
  }
428
428
 
429
429
  .cell-menu {
430
430
  --ui-icon-size: 15px;
431
- --ui-icon-stroke-width: var(--ui-editor-table-affordance-icon-stroke-width, 2);
431
+ --ui-icon-stroke-width: 2;
432
432
  }
433
433
 
434
434
  :host[hidden] {