@threadlabs/looma 0.5.1 → 0.6.0-rc.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 (341) hide show
  1. package/README.md +1 -1
  2. package/components/shared/overlay.js +3 -0
  3. package/components/ui-button/ui-button.html +27 -14
  4. package/components/ui-callout/ui-callout.html +1 -1
  5. package/components/ui-checkbox/ui-checkbox.html +1 -1
  6. package/components/ui-cluster/ui-cluster.html +6 -6
  7. package/components/ui-combobox/ui-combobox.html +35 -27
  8. package/components/ui-container/ui-container.html +4 -4
  9. package/components/ui-context-menu/ui-context-menu.html +2 -2
  10. package/components/ui-dialog/ui-dialog.html +21 -8
  11. package/components/ui-disclosure/ui-disclosure.html +19 -4
  12. package/components/ui-editable/ui-editable.html +6 -6
  13. package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.html +21 -21
  14. package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +26 -26
  15. package/components/ui-editor-slash-menu/ui-editor-slash-menu.html +39 -39
  16. package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +26 -22
  17. package/components/ui-editor-table-overlay/ui-editor-table-overlay.html +68 -52
  18. package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +42 -38
  19. package/components/ui-editor-toolbar/ui-editor-toolbar.html +9 -9
  20. package/components/ui-floating-action-button/ui-floating-action-button.html +16 -22
  21. package/components/ui-form-field/ui-form-field.html +18 -7
  22. package/components/ui-grid/ui-grid.html +6 -6
  23. package/components/ui-icon/ui-icon.html +5 -1
  24. package/components/ui-icon-button/ui-icon-button.html +68 -34
  25. package/components/ui-input/ui-input.html +2 -2
  26. package/components/ui-menu/ui-menu.html +15 -4
  27. package/components/ui-menu-item/ui-menu-item.html +5 -5
  28. package/components/ui-popover/ui-popover.html +3 -3
  29. package/components/ui-popover/ui-popover.js +10 -2
  30. package/components/ui-reel/ui-reel.html +6 -6
  31. package/components/ui-search-result-row/ui-search-result-row.html +9 -9
  32. package/components/ui-search-shell/ui-search-shell.html +10 -3
  33. package/components/ui-search-shell/ui-search-shell.js +9 -0
  34. package/components/ui-select/ui-select.html +2 -2
  35. package/components/ui-sidebar/ui-sidebar.html +11 -11
  36. package/components/ui-stack/ui-stack.html +6 -6
  37. package/components/ui-switcher/ui-switcher.html +6 -6
  38. package/components/ui-tabs/ui-tabs.html +19 -5
  39. package/components/ui-textarea/ui-textarea.html +2 -2
  40. package/components/ui-toast-region/ui-toast-region.html +3 -3
  41. package/components/ui-tooltip/ui-tooltip.html +1 -1
  42. package/components/ui-top-bar/ui-top-bar.html +5 -5
  43. package/components/ui-tree/ui-tree.html +7 -0
  44. package/components/ui-tree-item/ui-tree-item.html +20 -7
  45. package/dist/index.d.ts +1 -1
  46. package/dist/index.js +2 -2
  47. package/package.json +2 -2
  48. package/styles/ui-affordance-scope.css +1 -1
  49. package/styles/ui-avatar-group.css +1 -1
  50. package/styles/ui-avatar.css +1 -1
  51. package/styles/ui-badge.css +1 -1
  52. package/styles/ui-button.css +25 -15
  53. package/styles/ui-callout.css +2 -2
  54. package/styles/ui-checkbox.css +2 -2
  55. package/styles/ui-cluster.css +7 -7
  56. package/styles/ui-combobox.css +24 -24
  57. package/styles/ui-container.css +5 -5
  58. package/styles/ui-context-menu.css +3 -3
  59. package/styles/ui-dialog.css +26 -9
  60. package/styles/ui-disclosure.css +23 -7
  61. package/styles/ui-editable.css +7 -7
  62. package/styles/ui-editor-insert-table-grid.css +21 -21
  63. package/styles/ui-editor-mention-menu.css +26 -26
  64. package/styles/ui-editor-slash-menu.css +40 -40
  65. package/styles/ui-editor-table-context-menu.css +21 -21
  66. package/styles/ui-editor-table-overlay.css +49 -49
  67. package/styles/ui-editor-table-toolbar.css +35 -35
  68. package/styles/ui-editor-toolbar.css +10 -10
  69. package/styles/ui-floating-action-button.css +17 -23
  70. package/styles/ui-form-field.css +24 -10
  71. package/styles/ui-grid.css +7 -7
  72. package/styles/ui-icon-button.css +74 -35
  73. package/styles/ui-icon.css +1 -1
  74. package/styles/ui-input.css +3 -3
  75. package/styles/ui-menu-item.css +6 -6
  76. package/styles/ui-menu.css +19 -7
  77. package/styles/ui-popover.css +4 -4
  78. package/styles/ui-radio-group.css +1 -1
  79. package/styles/ui-radio.css +1 -1
  80. package/styles/ui-reel.css +7 -7
  81. package/styles/ui-search-result-row.css +10 -10
  82. package/styles/ui-search-shell.css +14 -5
  83. package/styles/ui-select.css +3 -3
  84. package/styles/ui-separator.css +1 -1
  85. package/styles/ui-sidebar.css +12 -12
  86. package/styles/ui-stack.css +7 -7
  87. package/styles/ui-switch.css +1 -1
  88. package/styles/ui-switcher.css +7 -7
  89. package/styles/ui-tabs.css +21 -7
  90. package/styles/ui-textarea.css +3 -3
  91. package/styles/ui-toast-region.css +3 -3
  92. package/styles/ui-tooltip.css +2 -2
  93. package/styles/ui-top-bar.css +6 -6
  94. package/styles/ui-tree-item.css +30 -9
  95. package/styles/ui-tree.css +8 -2
  96. package/theme-dark.css +42 -103
  97. package/theme-high-contrast.css +18 -22
  98. package/theme-light.css +15 -41
  99. package/tokens.css +149 -201
  100. package/vanilla/UiAffordanceScope.d.ts +1 -1
  101. package/vanilla/UiAffordanceScope.js +2 -2
  102. package/vanilla/UiAvatar.d.ts +1 -1
  103. package/vanilla/UiAvatar.js +2 -2
  104. package/vanilla/UiAvatarGroup.d.ts +1 -1
  105. package/vanilla/UiAvatarGroup.js +2 -2
  106. package/vanilla/UiBadge.d.ts +1 -1
  107. package/vanilla/UiBadge.js +2 -2
  108. package/vanilla/UiButton.d.ts +3 -1
  109. package/vanilla/UiButton.js +3 -3
  110. package/vanilla/UiCallout.d.ts +1 -1
  111. package/vanilla/UiCallout.js +2 -2
  112. package/vanilla/UiCheckbox.d.ts +1 -1
  113. package/vanilla/UiCheckbox.js +2 -2
  114. package/vanilla/UiCluster.d.ts +1 -1
  115. package/vanilla/UiCluster.js +2 -2
  116. package/vanilla/UiCombobox.d.ts +1 -1
  117. package/vanilla/UiCombobox.js +3 -3
  118. package/vanilla/UiContainer.d.ts +1 -1
  119. package/vanilla/UiContainer.js +2 -2
  120. package/vanilla/UiContextMenu.d.ts +1 -1
  121. package/vanilla/UiContextMenu.js +2 -2
  122. package/vanilla/UiDialog.d.ts +1 -1
  123. package/vanilla/UiDialog.js +2 -2
  124. package/vanilla/UiDisclosure.d.ts +2 -1
  125. package/vanilla/UiDisclosure.js +3 -3
  126. package/vanilla/UiEditable.d.ts +1 -1
  127. package/vanilla/UiEditable.js +2 -2
  128. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  129. package/vanilla/UiEditorInsertTableGrid.js +3 -3
  130. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  131. package/vanilla/UiEditorMentionMenu.js +3 -3
  132. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  133. package/vanilla/UiEditorSlashMenu.js +2 -2
  134. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  135. package/vanilla/UiEditorTableContextMenu.js +3 -3
  136. package/vanilla/UiEditorTableOverlay.d.ts +1 -1
  137. package/vanilla/UiEditorTableOverlay.js +3 -3
  138. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  139. package/vanilla/UiEditorTableToolbar.js +3 -3
  140. package/vanilla/UiEditorToolbar.d.ts +1 -1
  141. package/vanilla/UiEditorToolbar.js +2 -2
  142. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  143. package/vanilla/UiFloatingActionButton.js +2 -2
  144. package/vanilla/UiFormField.d.ts +1 -1
  145. package/vanilla/UiFormField.js +15 -6
  146. package/vanilla/UiGrid.d.ts +1 -1
  147. package/vanilla/UiGrid.js +2 -2
  148. package/vanilla/UiIcon.d.ts +1 -1
  149. package/vanilla/UiIcon.js +3 -3
  150. package/vanilla/UiIconButton.d.ts +1 -1
  151. package/vanilla/UiIconButton.js +2 -2
  152. package/vanilla/UiInput.d.ts +1 -1
  153. package/vanilla/UiInput.js +2 -2
  154. package/vanilla/UiMenu.d.ts +2 -1
  155. package/vanilla/UiMenu.js +3 -3
  156. package/vanilla/UiMenuItem.d.ts +1 -1
  157. package/vanilla/UiMenuItem.js +2 -2
  158. package/vanilla/UiPopover.d.ts +1 -1
  159. package/vanilla/UiPopover.js +2 -2
  160. package/vanilla/UiRadio.d.ts +1 -1
  161. package/vanilla/UiRadio.js +2 -2
  162. package/vanilla/UiRadioGroup.d.ts +1 -1
  163. package/vanilla/UiRadioGroup.js +2 -2
  164. package/vanilla/UiReel.d.ts +1 -1
  165. package/vanilla/UiReel.js +2 -2
  166. package/vanilla/UiSearchResultRow.d.ts +1 -1
  167. package/vanilla/UiSearchResultRow.js +2 -2
  168. package/vanilla/UiSearchShell.d.ts +1 -1
  169. package/vanilla/UiSearchShell.js +2 -2
  170. package/vanilla/UiSelect.d.ts +1 -1
  171. package/vanilla/UiSelect.js +2 -2
  172. package/vanilla/UiSeparator.d.ts +1 -1
  173. package/vanilla/UiSeparator.js +2 -2
  174. package/vanilla/UiSidebar.d.ts +1 -1
  175. package/vanilla/UiSidebar.js +2 -2
  176. package/vanilla/UiStack.d.ts +1 -1
  177. package/vanilla/UiStack.js +2 -2
  178. package/vanilla/UiSwitch.d.ts +1 -1
  179. package/vanilla/UiSwitch.js +2 -2
  180. package/vanilla/UiSwitcher.d.ts +1 -1
  181. package/vanilla/UiSwitcher.js +2 -2
  182. package/vanilla/UiTabs.d.ts +2 -1
  183. package/vanilla/UiTabs.js +3 -3
  184. package/vanilla/UiTextarea.d.ts +1 -1
  185. package/vanilla/UiTextarea.js +2 -2
  186. package/vanilla/UiToastRegion.d.ts +1 -1
  187. package/vanilla/UiToastRegion.js +3 -3
  188. package/vanilla/UiTooltip.d.ts +1 -1
  189. package/vanilla/UiTooltip.js +2 -2
  190. package/vanilla/UiTopBar.d.ts +1 -1
  191. package/vanilla/UiTopBar.js +1 -1
  192. package/vanilla/UiTree.d.ts +2 -1
  193. package/vanilla/UiTree.js +3 -3
  194. package/vanilla/UiTreeItem.d.ts +1 -1
  195. package/vanilla/UiTreeItem.js +2 -2
  196. package/vue/UiAffordanceScope.d.ts +2 -2
  197. package/vue/UiAffordanceScope.vue +92 -73
  198. package/vue/UiAvatar.d.ts +7 -7
  199. package/vue/UiAvatar.vue +145 -105
  200. package/vue/UiAvatarGroup.d.ts +4 -4
  201. package/vue/UiAvatarGroup.vue +134 -118
  202. package/vue/UiBadge.d.ts +4 -4
  203. package/vue/UiBadge.vue +113 -114
  204. package/vue/UiButton.d.ts +10 -6
  205. package/vue/UiButton.vue +295 -248
  206. package/vue/UiCallout.d.ts +2 -2
  207. package/vue/UiCallout.vue +154 -87
  208. package/vue/UiCheckbox.d.ts +14 -10
  209. package/vue/UiCheckbox.vue +228 -162
  210. package/vue/UiCluster.d.ts +2 -2
  211. package/vue/UiCluster.vue +53 -60
  212. package/vue/UiCombobox.d.ts +36 -32
  213. package/vue/UiCombobox.vue +1005 -416
  214. package/vue/UiContainer.d.ts +2 -2
  215. package/vue/UiContainer.vue +48 -51
  216. package/vue/UiContextMenu.d.ts +6 -4
  217. package/vue/UiContextMenu.vue +205 -116
  218. package/vue/UiDialog.d.ts +11 -9
  219. package/vue/UiDialog.vue +287 -212
  220. package/vue/UiDisclosure.d.ts +10 -6
  221. package/vue/UiDisclosure.vue +265 -159
  222. package/vue/UiEditable.d.ts +16 -12
  223. package/vue/UiEditable.vue +325 -205
  224. package/vue/UiEditorInsertTableGrid.d.ts +8 -8
  225. package/vue/UiEditorInsertTableGrid.vue +216 -157
  226. package/vue/UiEditorMentionMenu.d.ts +9 -9
  227. package/vue/UiEditorMentionMenu.vue +265 -222
  228. package/vue/UiEditorSlashMenu.d.ts +7 -7
  229. package/vue/UiEditorSlashMenu.vue +286 -240
  230. package/vue/UiEditorTableContextMenu.d.ts +5 -5
  231. package/vue/UiEditorTableContextMenu.vue +306 -193
  232. package/vue/UiEditorTableOverlay.d.ts +2 -2
  233. package/vue/UiEditorTableOverlay.vue +600 -369
  234. package/vue/UiEditorTableToolbar.d.ts +7 -7
  235. package/vue/UiEditorTableToolbar.vue +443 -268
  236. package/vue/UiEditorToolbar.d.ts +2 -2
  237. package/vue/UiEditorToolbar.vue +134 -121
  238. package/vue/UiFloatingActionButton.d.ts +6 -6
  239. package/vue/UiFloatingActionButton.vue +95 -99
  240. package/vue/UiFormField.d.ts +6 -6
  241. package/vue/UiFormField.vue +112 -80
  242. package/vue/UiGrid.d.ts +2 -2
  243. package/vue/UiGrid.vue +51 -57
  244. package/vue/UiIcon.d.ts +2 -2
  245. package/vue/UiIcon.vue +118 -89
  246. package/vue/UiIconButton.d.ts +11 -11
  247. package/vue/UiIconButton.vue +287 -217
  248. package/vue/UiInput.d.ts +9 -9
  249. package/vue/UiInput.vue +153 -127
  250. package/vue/UiMenu.d.ts +10 -6
  251. package/vue/UiMenu.vue +227 -143
  252. package/vue/UiMenuItem.d.ts +4 -4
  253. package/vue/UiMenuItem.vue +53 -46
  254. package/vue/UiPopover.d.ts +8 -6
  255. package/vue/UiPopover.vue +197 -137
  256. package/vue/UiRadio.d.ts +14 -10
  257. package/vue/UiRadio.vue +183 -117
  258. package/vue/UiRadioGroup.d.ts +14 -12
  259. package/vue/UiRadioGroup.vue +172 -111
  260. package/vue/UiReel.d.ts +3 -3
  261. package/vue/UiReel.vue +77 -77
  262. package/vue/UiSearchResultRow.d.ts +4 -4
  263. package/vue/UiSearchResultRow.vue +121 -115
  264. package/vue/UiSearchShell.d.ts +10 -8
  265. package/vue/UiSearchShell.vue +245 -176
  266. package/vue/UiSelect.d.ts +9 -9
  267. package/vue/UiSelect.vue +162 -134
  268. package/vue/UiSeparator.d.ts +2 -2
  269. package/vue/UiSeparator.vue +22 -27
  270. package/vue/UiSidebar.d.ts +20 -18
  271. package/vue/UiSidebar.vue +307 -224
  272. package/vue/UiStack.d.ts +3 -3
  273. package/vue/UiStack.vue +64 -70
  274. package/vue/UiSwitch.d.ts +12 -8
  275. package/vue/UiSwitch.vue +218 -150
  276. package/vue/UiSwitcher.d.ts +3 -3
  277. package/vue/UiSwitcher.vue +73 -75
  278. package/vue/UiTabs.d.ts +12 -8
  279. package/vue/UiTabs.vue +268 -210
  280. package/vue/UiTextarea.d.ts +11 -11
  281. package/vue/UiTextarea.vue +155 -128
  282. package/vue/UiToastRegion.d.ts +10 -8
  283. package/vue/UiToastRegion.vue +261 -198
  284. package/vue/UiTooltip.d.ts +14 -12
  285. package/vue/UiTooltip.vue +241 -177
  286. package/vue/UiTopBar.vue +51 -42
  287. package/vue/UiTree.d.ts +10 -6
  288. package/vue/UiTree.vue +180 -70
  289. package/vue/UiTreeItem.d.ts +24 -22
  290. package/vue/UiTreeItem.vue +464 -339
  291. package/vue/chunks/UiAffordanceScope.js +9 -16
  292. package/vue/chunks/UiAvatar.js +23 -29
  293. package/vue/chunks/UiAvatarGroup.js +16 -39
  294. package/vue/chunks/UiBadge.js +3 -12
  295. package/vue/chunks/UiButton.js +15 -18
  296. package/vue/chunks/UiCallout.js +8 -17
  297. package/vue/chunks/UiCheckbox.js +37 -40
  298. package/vue/chunks/UiCluster.js +3 -12
  299. package/vue/chunks/UiCombobox.js +224 -266
  300. package/vue/chunks/UiContainer.js +3 -12
  301. package/vue/chunks/UiContextMenu.js +39 -34
  302. package/vue/chunks/UiDialog.js +36 -39
  303. package/vue/chunks/UiDisclosure.js +44 -48
  304. package/vue/chunks/UiEditable.js +55 -57
  305. package/vue/chunks/UiEditorInsertTableGrid.js +55 -73
  306. package/vue/chunks/UiEditorMentionMenu.js +40 -81
  307. package/vue/chunks/UiEditorSlashMenu.js +28 -52
  308. package/vue/chunks/UiEditorTableContextMenu.js +32 -56
  309. package/vue/chunks/UiEditorTableOverlay.js +58 -82
  310. package/vue/chunks/UiEditorTableToolbar.js +61 -85
  311. package/vue/chunks/UiEditorToolbar.js +4 -13
  312. package/vue/chunks/UiFloatingActionButton.js +7 -21
  313. package/vue/chunks/UiFormField.js +15 -12
  314. package/vue/chunks/UiGrid.js +3 -12
  315. package/vue/chunks/UiIcon.js +20 -43
  316. package/vue/chunks/UiIconButton.js +16 -28
  317. package/vue/chunks/UiInput.js +20 -25
  318. package/vue/chunks/UiMenu.js +30 -33
  319. package/vue/chunks/UiMenuItem.js +4 -10
  320. package/vue/chunks/UiPopover.js +28 -29
  321. package/vue/chunks/UiRadio.js +36 -39
  322. package/vue/chunks/UiRadioGroup.js +30 -34
  323. package/vue/chunks/UiReel.js +6 -15
  324. package/vue/chunks/UiSearchResultRow.js +6 -19
  325. package/vue/chunks/UiSearchShell.js +25 -28
  326. package/vue/chunks/UiSelect.js +20 -23
  327. package/vue/chunks/UiSeparator.js +2 -8
  328. package/vue/chunks/UiSidebar.js +39 -44
  329. package/vue/chunks/UiStack.js +6 -15
  330. package/vue/chunks/UiSwitch.js +35 -38
  331. package/vue/chunks/UiSwitcher.js +6 -15
  332. package/vue/chunks/UiTabs.js +52 -85
  333. package/vue/chunks/UiTextarea.js +21 -26
  334. package/vue/chunks/UiToastRegion.js +38 -72
  335. package/vue/chunks/UiTooltip.js +34 -35
  336. package/vue/chunks/UiTopBar.js +1 -1
  337. package/vue/chunks/UiTree.js +27 -16
  338. package/vue/chunks/UiTreeItem.js +85 -102
  339. package/vue/components.css +4027 -3800
  340. package/vue/editor/LoomaEditor.d.ts +11 -0
  341. package/vue/editor/index.js +9 -0
@@ -10,7 +10,7 @@
10
10
  type="object({ left?: number, top?: number, right?: number, bottom?: number, x?: number, y?: number, width?: number, height?: number }) | null"
11
11
  >Where the @ was typed, in viewport coordinates.</prop>
12
12
  <state name="visible" :value="false"></state>
13
- <state name="rows" :value="[]"></state>
13
+ <state name="rows" type="list(object({ id: string, label: string, detail?: string, initials: string }))" :value="[]"></state>
14
14
  <state name="searching" :value="false"></state>
15
15
  <state name="active" :value="0"></state>
16
16
  <state name="prefix" :value="'ui-editor-mention-menu'"></state>
@@ -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] {
@@ -7,8 +7,12 @@
7
7
  name="actions"
8
8
  type="list(align-left | align-center | align-right | background-none | background-gray | background-yellow | background-blue | background-green | background-red | add-row-before | add-row-after | add-column-before | add-column-after | clear-cells | merge-cells | split-cell | delete-row | delete-column | delete-table)"
9
9
  >The complete set of commands the current selection permits.</prop>
10
- <state name="swatches" :value="[]"></state>
11
- <state name="sections" :value="[]"></state>
10
+ <state name="swatches" type="list(object({ action: string, label: string, color: string, selected: boolean })) | null" :value="[]"></state>
11
+ <state
12
+ name="sections"
13
+ type="list(object({ heading: string, items: list(object({ action: string, label: string, icon: string, danger: boolean })) }))"
14
+ :value="[]"
15
+ ></state>
12
16
  <event
13
17
  name="action"
14
18
  type="object({ action: align-left | align-center | align-right | background-none | background-gray | background-yellow | background-blue | background-green | background-red | add-row-before | add-row-after | add-column-before | add-column-after | clear-cells | merge-cells | split-cell | delete-row | delete-column | delete-table })"
@@ -49,10 +53,10 @@
49
53
  min-width: 14rem;
50
54
  max-width: min(17rem, calc(100vw - 24px));
51
55
  max-height: min(28rem, calc(100vh - 24px));
52
- padding: var(--ui-space-1-5, 6px);
53
- background: var(--ui-surface, #fff);
54
- border: 1px solid var(--ui-border, #e5e7eb);
55
- 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);
56
60
  box-shadow: var(--ui-shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1));
57
61
  display: flex;
58
62
  flex-direction: column;
@@ -71,17 +75,17 @@
71
75
  :host button {
72
76
  display: flex;
73
77
  align-items: center;
74
- gap: var(--ui-space-2, 8px);
78
+ gap: var(--ui-space-2);
75
79
  width: 100%;
76
80
  text-align: left;
77
81
  min-height: 32px;
78
- padding: var(--ui-space-1-5, 6px) var(--ui-space-2, 8px);
82
+ padding: var(--ui-space-2) var(--ui-space-2);
79
83
  border: none;
80
- border-radius: var(--ui-radius-sm, 4px);
84
+ border-radius: var(--ui-radius-sm);
81
85
  background: none;
82
- font-size: var(--ui-font-size-sm, 0.875rem);
86
+ font-size: var(--ui-font-size-sm);
83
87
  cursor: pointer;
84
- color: var(--ui-text, #111);
88
+ color: var(--ui-text);
85
89
  }
86
90
 
87
91
  :host button {
@@ -90,7 +94,7 @@
90
94
  }
91
95
 
92
96
  :host button:hover:not(:disabled) {
93
- background: var(--ui-surface-hover, #f3f4f6);
97
+ background: var(--ui-surface-hover);
94
98
  }
95
99
 
96
100
  :host button.selected {
@@ -98,7 +102,7 @@
98
102
  }
99
103
 
100
104
  :host button.danger {
101
- color: var(--ui-danger, #dc2626);
105
+ color: var(--ui-danger);
102
106
  }
103
107
 
104
108
  .swatches {
@@ -110,7 +114,7 @@
110
114
  .swatch-button {
111
115
  display: inline-flex;
112
116
  align-items: center;
113
- gap: var(--ui-space-2, 8px);
117
+ gap: var(--ui-space-2);
114
118
  }
115
119
 
116
120
  .swatch {
@@ -118,7 +122,7 @@
118
122
  width: 1rem;
119
123
  height: 1rem;
120
124
  border-radius: 999px;
121
- border: 1px solid var(--ui-border, #d1d5db);
125
+ border: 1px solid var(--ui-border);
122
126
  background: var(--ui-editor-table-context-swatch, #fff);
123
127
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.35);
124
128
  flex-shrink: 0;
@@ -130,11 +134,11 @@
130
134
  linear-gradient(
131
135
  135deg,
132
136
  transparent calc(50% - 1px),
133
- var(--ui-text-muted, #6b7280) calc(50% - 1px),
134
- var(--ui-text-muted, #6b7280) calc(50% + 1px),
137
+ var(--ui-text-muted) calc(50% - 1px),
138
+ var(--ui-text-muted) calc(50% + 1px),
135
139
  transparent calc(50% + 1px)
136
140
  ),
137
- var(--ui-surface, #fff);
141
+ var(--ui-surface);
138
142
  }
139
143
 
140
144
  .swatch-label {
@@ -143,18 +147,18 @@
143
147
  }
144
148
 
145
149
  .heading {
146
- padding: var(--ui-space-1, 4px) var(--ui-space-2, 8px);
150
+ padding: var(--ui-space-1) var(--ui-space-2);
147
151
  font-size: 0.6875rem;
148
152
  font-weight: 700;
149
153
  letter-spacing: 0.05em;
150
154
  text-transform: uppercase;
151
- color: var(--ui-text-muted, #6b7280);
155
+ color: var(--ui-text-muted);
152
156
  }
153
157
 
154
158
  .sep {
155
159
  height: 1px;
156
- background: var(--ui-border, #e5e7eb);
157
- margin: var(--ui-space-1, 4px) 0;
160
+ background: var(--ui-border);
161
+ margin: var(--ui-space-1) 0;
158
162
  }
159
163
 
160
164
  :host[hidden] {
@@ -6,10 +6,26 @@
6
6
  name="geometry"
7
7
  type="object({ rowBoundaries: list(number), columnBoundaries: list(number), activeCell: object({ left: number, top: number, width: number, height: number, rowIndex: integer, columnIndex: integer }) | null, hoveredCell?: object({ left: number, top: number, width: number, height: number, rowIndex: integer, columnIndex: integer }) | null }) | null"
8
8
  >The authoritative editor-measured table boundaries and active or hovered cell rectangles.</prop>
9
- <state name="rows" :value="[]"></state>
10
- <state name="cols" :value="[]"></state>
11
- <state name="hovered" :value="null"></state>
12
- <state name="active" :value="null"></state>
9
+ <state
10
+ name="rows"
11
+ type="list(object({ key: string, index: integer, offset: string, affordance: insert-row | insert-column, action: add-row-before | add-row-after | add-column-before | add-column-after, label: string }))"
12
+ :value="[]"
13
+ ></state>
14
+ <state
15
+ name="cols"
16
+ type="list(object({ key: string, index: integer, offset: string, affordance: insert-row | insert-column, action: add-row-before | add-row-after | add-column-before | add-column-after, label: string }))"
17
+ :value="[]"
18
+ ></state>
19
+ <state
20
+ name="hovered"
21
+ type="object({ left: number, top: number, width: number, height: number, rowIndex: integer, columnIndex: integer, rowOffset: string, columnOffset: string }) | null"
22
+ :value="null"
23
+ ></state>
24
+ <state
25
+ name="active"
26
+ type="object({ left: number, top: number, width: number, height: number, rowIndex: integer, columnIndex: integer, menuLeft: string, menuTop: string }) | null"
27
+ :value="null"
28
+ ></state>
13
29
  <state name="activeKey" :value="''"></state>
14
30
  <event
15
31
  name="action"
@@ -153,10 +169,10 @@
153
169
  width: 24px;
154
170
  height: 24px;
155
171
  padding: 0;
156
- border: 1px solid var(--ui-affordance-near-color, var(--ui-border-strong, #c8c8c4));
157
- border-radius: var(--ui-radius-round, 999px);
158
- background: color-mix(in srgb, var(--ui-surface-elevated, #fff) 96%, transparent);
159
- 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));
160
176
  font: inherit;
161
177
  font-size: 16px;
162
178
  line-height: 1;
@@ -164,18 +180,18 @@
164
180
  opacity: 0;
165
181
  scale: 0.72;
166
182
  transition:
167
- opacity var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
168
- scale var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
169
- color var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
170
- background-color var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
171
- 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);
172
188
  pointer-events: auto;
173
189
  cursor: pointer;
174
190
  }
175
191
 
176
192
  .handle {
177
193
  --ui-icon-size: 14px;
178
- --ui-icon-stroke-width: var(--ui-editor-table-affordance-icon-stroke-width, 2);
194
+ --ui-icon-stroke-width: 2;
179
195
  }
180
196
 
181
197
  .handle[data-ui-proximity="near"],
@@ -187,16 +203,16 @@
187
203
 
188
204
  .control.active .handle,
189
205
  .handle:focus-visible {
190
- border-color: var(--ui-affordance-direct-color, var(--ui-accent-solid, #5b55d6));
191
- background: var(--ui-affordance-direct-color, var(--ui-accent-solid, #5b55d6));
192
- 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);
193
209
  box-shadow: var(--ui-shadow-sm, 0 1px 3px rgb(0 0 0 / 0.1));
194
210
  }
195
211
 
196
212
  .handle:focus-visible,
197
213
  .selector:focus-visible,
198
214
  .cell-menu:focus-visible {
199
- outline: 2px solid var(--ui-focus-ring, #5b55d6);
215
+ outline: 2px solid var(--ui-focus-ring);
200
216
  outline-offset: 2px;
201
217
  }
202
218
 
@@ -224,9 +240,9 @@
224
240
 
225
241
  .line {
226
242
  position: absolute;
227
- background: var(--ui-affordance-direct-color, var(--ui-accent-solid, #5b55d6));
243
+ background: var(--ui-affordance-direct-color, var(--ui-accent-solid));
228
244
  opacity: 0;
229
- 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);
230
246
  }
231
247
 
232
248
  .control.row .line {
@@ -245,12 +261,12 @@
245
261
 
246
262
  .guide {
247
263
  position: absolute;
248
- width: var(--ui-affordance-guide-size, 4px);
249
- height: var(--ui-affordance-guide-size, 4px);
250
- border-radius: var(--ui-radius-round, 999px);
251
- background: var(--ui-affordance-guide-color, var(--ui-border-strong, #c8c8c4));
252
- opacity: var(--ui-affordance-guide-opacity, 0.42);
253
- 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);
254
270
  }
255
271
 
256
272
  .control.row .guide {
@@ -275,16 +291,16 @@
275
291
  left: 50%;
276
292
  width: max-content;
277
293
  max-width: 14rem;
278
- padding: var(--ui-space-1, 4px) var(--ui-space-2, 8px);
279
- border-radius: var(--ui-radius-1, 4px);
280
- background: var(--ui-text-primary, #1a1a1a);
281
- color: var(--ui-surface-elevated, #fff);
282
- font-size: var(--ui-font-size-xs, 0.75rem);
283
- font-weight: var(--ui-font-medium, 500);
284
- 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);
285
301
  opacity: 0;
286
302
  transform: translateX(-50%);
287
- 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);
288
304
  pointer-events: none;
289
305
  }
290
306
 
@@ -310,37 +326,37 @@
310
326
  padding: 0;
311
327
  border: 1px solid transparent;
312
328
  background: transparent;
313
- color: var(--ui-text-secondary, #5c5c5c);
329
+ color: var(--ui-text-secondary);
314
330
  box-shadow: none;
315
331
  pointer-events: auto;
316
332
  cursor: pointer;
317
333
  transition:
318
- color var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
319
- background-color var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
320
- border-color var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
321
- 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);
322
338
  }
323
339
 
324
340
  .selector:hover,
325
341
  .cell-menu:hover {
326
- background: var(--ui-icon-button-hover-bg, var(--ui-surface-muted, #f3f4f6));
327
- 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));
328
344
  box-shadow: var(--ui-shadow-xs, 0 1px 2px rgb(0 0 0 / 0.05));
329
345
  }
330
346
 
331
347
  .selector {
332
- border-radius: var(--ui-radius-round, 999px);
348
+ border-radius: var(--ui-radius-round);
333
349
  }
334
350
 
335
351
  .selector::before {
336
352
  content: "";
337
353
  position: absolute;
338
354
  inset: 50% auto auto 50%;
339
- border-radius: var(--ui-radius-round, 999px);
340
- background: var(--ui-affordance-guide-color, var(--ui-border-strong, #c8c8c4));
341
- 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);
342
358
  transform: translate(-50%, -50%);
343
- 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);
344
360
  pointer-events: none;
345
361
  }
346
362
 
@@ -349,12 +365,12 @@
349
365
  width: 14px;
350
366
  height: 14px;
351
367
  --ui-icon-size: 14px;
352
- --ui-icon-stroke-width: var(--ui-editor-table-affordance-icon-stroke-width, 2);
368
+ --ui-icon-stroke-width: 2;
353
369
  opacity: 0;
354
370
  transform: scale(0.72);
355
371
  transition:
356
- opacity var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
357
- 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);
358
374
  }
359
375
 
360
376
  .selector:hover::before,
@@ -406,13 +422,13 @@
406
422
  .cell-menu {
407
423
  width: 24px;
408
424
  height: 24px;
409
- border-radius: var(--ui-radius-1, 4px);
410
- 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);
411
427
  }
412
428
 
413
429
  .cell-menu {
414
430
  --ui-icon-size: 15px;
415
- --ui-icon-stroke-width: var(--ui-editor-table-affordance-icon-stroke-width, 2);
431
+ --ui-icon-stroke-width: 2;
416
432
  }
417
433
 
418
434
  :host[hidden] {