@threadlabs/looma 0.28.4 → 0.28.6

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 (437) hide show
  1. package/components/ui-editor-image-toolbar/ui-editor-image-toolbar.html +96 -0
  2. package/components/ui-editor-image-toolbar/ui-editor-image-toolbar.js +56 -0
  3. package/components/ui-editor-mention-menu-item/ui-editor-mention-menu-item.html +3 -2
  4. package/dist/index.js +34 -33
  5. package/package.json +3 -2
  6. package/styles/ui-action-bar.css +13 -6
  7. package/styles/ui-affordance-scope.css +12 -5
  8. package/styles/ui-avatar-group.css +17 -10
  9. package/styles/ui-avatar.css +23 -16
  10. package/styles/ui-badge.css +78 -71
  11. package/styles/ui-breadcrumb-item.css +12 -5
  12. package/styles/ui-breadcrumbs.css +10 -3
  13. package/styles/ui-button.css +79 -72
  14. package/styles/ui-callout.css +29 -22
  15. package/styles/ui-card.css +25 -18
  16. package/styles/ui-checkbox.css +45 -37
  17. package/styles/ui-cluster.css +34 -27
  18. package/styles/ui-combobox.css +46 -39
  19. package/styles/ui-container.css +20 -13
  20. package/styles/ui-context-menu.css +17 -10
  21. package/styles/ui-cover.css +12 -5
  22. package/styles/ui-description-item.css +10 -3
  23. package/styles/ui-description-list.css +20 -13
  24. package/styles/ui-dialog.css +44 -35
  25. package/styles/ui-disclosure.css +32 -25
  26. package/styles/ui-editable.css +15 -8
  27. package/styles/ui-editor-image-toolbar.css +1 -0
  28. package/styles/ui-editor-insert-table-grid.css +11 -4
  29. package/styles/ui-editor-mention-menu-item.css +17 -8
  30. package/styles/ui-editor-mention-menu.css +14 -7
  31. package/styles/ui-editor-slash-menu-group.css +10 -3
  32. package/styles/ui-editor-slash-menu-item.css +15 -8
  33. package/styles/ui-editor-slash-menu.css +15 -8
  34. package/styles/ui-editor-surface.css +10 -3
  35. package/styles/ui-editor-table-context-menu.css +17 -10
  36. package/styles/ui-editor-table-overlay.css +17 -10
  37. package/styles/ui-editor-table-toolbar.css +22 -15
  38. package/styles/ui-editor-toolbar.css +18 -11
  39. package/styles/ui-floating-action-button.css +21 -14
  40. package/styles/ui-form-field.css +20 -13
  41. package/styles/ui-grid.css +21 -14
  42. package/styles/ui-icon-button.css +80 -73
  43. package/styles/ui-icon.css +14 -7
  44. package/styles/ui-image.css +25 -18
  45. package/styles/ui-input-group.css +34 -27
  46. package/styles/ui-input.css +42 -35
  47. package/styles/ui-list-item.css +33 -26
  48. package/styles/ui-list.css +22 -15
  49. package/styles/ui-listbox.css +22 -14
  50. package/styles/ui-menu-group.css +10 -3
  51. package/styles/ui-menu-item.css +29 -22
  52. package/styles/ui-menu.css +25 -18
  53. package/styles/ui-meter.css +36 -29
  54. package/styles/ui-nav-item.css +26 -19
  55. package/styles/ui-page-header.css +12 -5
  56. package/styles/ui-popover.css +27 -20
  57. package/styles/ui-radio-group.css +14 -6
  58. package/styles/ui-radio.css +24 -17
  59. package/styles/ui-reel.css +28 -21
  60. package/styles/ui-scroll-area.css +22 -15
  61. package/styles/ui-search-result-row.css +28 -21
  62. package/styles/ui-search-shell.css +24 -17
  63. package/styles/ui-section.css +14 -7
  64. package/styles/ui-select.css +33 -26
  65. package/styles/ui-separator.css +17 -10
  66. package/styles/ui-sidebar.css +35 -28
  67. package/styles/ui-spinner.css +32 -23
  68. package/styles/ui-stack.css +29 -21
  69. package/styles/ui-status-message.css +14 -7
  70. package/styles/ui-switch.css +29 -22
  71. package/styles/ui-switcher.css +27 -20
  72. package/styles/ui-table.css +14 -7
  73. package/styles/ui-tabs.css +24 -17
  74. package/styles/ui-text.css +35 -28
  75. package/styles/ui-textarea.css +37 -30
  76. package/styles/ui-toast-region.css +74 -63
  77. package/styles/ui-toast.css +21 -14
  78. package/styles/ui-tooltip.css +38 -31
  79. package/styles/ui-top-bar.css +19 -12
  80. package/styles/ui-tree-item.css +79 -71
  81. package/styles/ui-tree.css +18 -11
  82. package/vanilla/UiActionBar.d.ts +1 -1
  83. package/vanilla/UiActionBar.js +1 -1
  84. package/vanilla/UiAffordanceScope.d.ts +1 -1
  85. package/vanilla/UiAffordanceScope.js +1 -1
  86. package/vanilla/UiAvatar.d.ts +1 -1
  87. package/vanilla/UiAvatar.js +1 -1
  88. package/vanilla/UiAvatarGroup.d.ts +1 -1
  89. package/vanilla/UiAvatarGroup.js +1 -1
  90. package/vanilla/UiBadge.d.ts +1 -1
  91. package/vanilla/UiBadge.js +1 -1
  92. package/vanilla/UiBreadcrumbItem.d.ts +1 -1
  93. package/vanilla/UiBreadcrumbItem.js +1 -1
  94. package/vanilla/UiBreadcrumbs.d.ts +1 -1
  95. package/vanilla/UiBreadcrumbs.js +1 -1
  96. package/vanilla/UiButton.d.ts +1 -1
  97. package/vanilla/UiButton.js +19 -57
  98. package/vanilla/UiCallout.d.ts +1 -1
  99. package/vanilla/UiCallout.js +25 -73
  100. package/vanilla/UiCard.d.ts +1 -1
  101. package/vanilla/UiCard.js +1 -1
  102. package/vanilla/UiCheckbox.d.ts +1 -1
  103. package/vanilla/UiCheckbox.js +1 -1
  104. package/vanilla/UiCluster.d.ts +1 -1
  105. package/vanilla/UiCluster.js +1 -1
  106. package/vanilla/UiCombobox.d.ts +1 -1
  107. package/vanilla/UiCombobox.js +60 -166
  108. package/vanilla/UiContainer.d.ts +1 -1
  109. package/vanilla/UiContainer.js +1 -1
  110. package/vanilla/UiContextMenu.d.ts +1 -1
  111. package/vanilla/UiContextMenu.js +1 -1
  112. package/vanilla/UiCover.d.ts +1 -1
  113. package/vanilla/UiCover.js +1 -1
  114. package/vanilla/UiDescriptionItem.d.ts +1 -1
  115. package/vanilla/UiDescriptionItem.js +1 -1
  116. package/vanilla/UiDescriptionList.d.ts +1 -1
  117. package/vanilla/UiDescriptionList.js +1 -1
  118. package/vanilla/UiDialog.d.ts +1 -1
  119. package/vanilla/UiDialog.js +4 -10
  120. package/vanilla/UiDisclosure.d.ts +1 -1
  121. package/vanilla/UiDisclosure.js +1 -1
  122. package/vanilla/UiEditable.d.ts +1 -1
  123. package/vanilla/UiEditable.js +7 -19
  124. package/vanilla/UiEditorImageToolbar.d.ts +19 -0
  125. package/vanilla/UiEditorImageToolbar.js +171 -0
  126. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  127. package/vanilla/UiEditorInsertTableGrid.js +1 -1
  128. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  129. package/vanilla/UiEditorMentionMenu.js +17 -37
  130. package/vanilla/UiEditorMentionMenuItem.d.ts +1 -1
  131. package/vanilla/UiEditorMentionMenuItem.js +4 -10
  132. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  133. package/vanilla/UiEditorSlashMenu.js +5 -4
  134. package/vanilla/UiEditorSlashMenuGroup.d.ts +1 -1
  135. package/vanilla/UiEditorSlashMenuGroup.js +1 -1
  136. package/vanilla/UiEditorSlashMenuItem.d.ts +1 -1
  137. package/vanilla/UiEditorSlashMenuItem.js +7 -19
  138. package/vanilla/UiEditorSurface.d.ts +1 -1
  139. package/vanilla/UiEditorSurface.js +1 -1
  140. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  141. package/vanilla/UiEditorTableContextMenu.js +6 -14
  142. package/vanilla/UiEditorTableOverlay.d.ts +1 -1
  143. package/vanilla/UiEditorTableOverlay.js +9 -25
  144. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  145. package/vanilla/UiEditorTableToolbar.js +25 -77
  146. package/vanilla/UiEditorToolbar.d.ts +1 -1
  147. package/vanilla/UiEditorToolbar.js +1 -1
  148. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  149. package/vanilla/UiFloatingActionButton.js +1 -1
  150. package/vanilla/UiFormField.d.ts +1 -1
  151. package/vanilla/UiFormField.js +1 -1
  152. package/vanilla/UiGrid.d.ts +1 -1
  153. package/vanilla/UiGrid.js +1 -1
  154. package/vanilla/UiIcon.d.ts +1 -1
  155. package/vanilla/UiIcon.js +15 -47
  156. package/vanilla/UiIconButton.d.ts +1 -1
  157. package/vanilla/UiIconButton.js +4 -10
  158. package/vanilla/UiImage.d.ts +1 -1
  159. package/vanilla/UiImage.js +1 -1
  160. package/vanilla/UiInput.d.ts +1 -1
  161. package/vanilla/UiInput.js +1 -1
  162. package/vanilla/UiInputGroup.d.ts +1 -1
  163. package/vanilla/UiInputGroup.js +1 -1
  164. package/vanilla/UiList.d.ts +1 -1
  165. package/vanilla/UiList.js +1 -1
  166. package/vanilla/UiListItem.d.ts +1 -1
  167. package/vanilla/UiListItem.js +1 -1
  168. package/vanilla/UiListbox.d.ts +1 -1
  169. package/vanilla/UiListbox.js +4 -10
  170. package/vanilla/UiMenu.d.ts +1 -1
  171. package/vanilla/UiMenu.js +1 -1
  172. package/vanilla/UiMenuGroup.d.ts +1 -1
  173. package/vanilla/UiMenuGroup.js +4 -10
  174. package/vanilla/UiMenuItem.d.ts +1 -1
  175. package/vanilla/UiMenuItem.js +4 -10
  176. package/vanilla/UiMeter.d.ts +1 -1
  177. package/vanilla/UiMeter.js +13 -33
  178. package/vanilla/UiNavItem.d.ts +1 -1
  179. package/vanilla/UiNavItem.js +1 -1
  180. package/vanilla/UiPageHeader.d.ts +1 -1
  181. package/vanilla/UiPageHeader.js +1 -1
  182. package/vanilla/UiPopover.d.ts +1 -1
  183. package/vanilla/UiPopover.js +1 -1
  184. package/vanilla/UiRadio.d.ts +1 -1
  185. package/vanilla/UiRadio.js +1 -1
  186. package/vanilla/UiRadioGroup.d.ts +1 -1
  187. package/vanilla/UiRadioGroup.js +1 -1
  188. package/vanilla/UiReel.d.ts +1 -1
  189. package/vanilla/UiReel.js +1 -1
  190. package/vanilla/UiScrollArea.d.ts +1 -1
  191. package/vanilla/UiScrollArea.js +1 -1
  192. package/vanilla/UiSearchResultRow.d.ts +1 -1
  193. package/vanilla/UiSearchResultRow.js +1 -1
  194. package/vanilla/UiSearchShell.d.ts +1 -1
  195. package/vanilla/UiSearchShell.js +1 -1
  196. package/vanilla/UiSection.d.ts +1 -1
  197. package/vanilla/UiSection.js +1 -1
  198. package/vanilla/UiSelect.d.ts +1 -1
  199. package/vanilla/UiSelect.js +1 -1
  200. package/vanilla/UiSeparator.d.ts +1 -1
  201. package/vanilla/UiSeparator.js +1 -1
  202. package/vanilla/UiSidebar.d.ts +1 -1
  203. package/vanilla/UiSidebar.js +1 -1
  204. package/vanilla/UiSpinner.d.ts +1 -1
  205. package/vanilla/UiSpinner.js +1 -1
  206. package/vanilla/UiStack.d.ts +1 -1
  207. package/vanilla/UiStack.js +1 -1
  208. package/vanilla/UiStatusMessage.d.ts +1 -1
  209. package/vanilla/UiStatusMessage.js +1 -1
  210. package/vanilla/UiSwitch.d.ts +1 -1
  211. package/vanilla/UiSwitch.js +1 -1
  212. package/vanilla/UiSwitcher.d.ts +1 -1
  213. package/vanilla/UiSwitcher.js +1 -1
  214. package/vanilla/UiTable.d.ts +1 -1
  215. package/vanilla/UiTable.js +1 -1
  216. package/vanilla/UiTabs.d.ts +1 -1
  217. package/vanilla/UiTabs.js +1 -1
  218. package/vanilla/UiText.d.ts +1 -1
  219. package/vanilla/UiText.js +1 -1
  220. package/vanilla/UiTextarea.d.ts +1 -1
  221. package/vanilla/UiTextarea.js +1 -1
  222. package/vanilla/UiToast.d.ts +1 -1
  223. package/vanilla/UiToast.js +1 -1
  224. package/vanilla/UiToastRegion.d.ts +1 -1
  225. package/vanilla/UiToastRegion.js +1 -1
  226. package/vanilla/UiTooltip.d.ts +1 -1
  227. package/vanilla/UiTooltip.js +1 -1
  228. package/vanilla/UiTopBar.d.ts +1 -1
  229. package/vanilla/UiTopBar.js +1 -1
  230. package/vanilla/UiTree.d.ts +1 -1
  231. package/vanilla/UiTree.js +1 -1
  232. package/vanilla/UiTreeItem.d.ts +1 -1
  233. package/vanilla/UiTreeItem.js +7 -19
  234. package/vanilla/index.js +1 -0
  235. package/vue/UiActionBar.vue +46 -78
  236. package/vue/UiAffordanceScope.vue +27 -66
  237. package/vue/UiAvatar.d.ts +10 -7
  238. package/vue/UiAvatar.vue +100 -218
  239. package/vue/UiAvatarGroup.d.ts +10 -7
  240. package/vue/UiAvatarGroup.vue +78 -160
  241. package/vue/UiBadge.d.ts +1 -1
  242. package/vue/UiBadge.vue +483 -520
  243. package/vue/UiBreadcrumbItem.vue +52 -123
  244. package/vue/UiBreadcrumbs.vue +27 -70
  245. package/vue/UiButton.d.ts +2 -2
  246. package/vue/UiButton.vue +420 -471
  247. package/vue/UiCallout.vue +131 -175
  248. package/vue/UiCard.d.ts +1 -1
  249. package/vue/UiCard.vue +112 -151
  250. package/vue/UiCheckbox.d.ts +13 -10
  251. package/vue/UiCheckbox.vue +160 -221
  252. package/vue/UiCluster.d.ts +1 -1
  253. package/vue/UiCluster.vue +84 -128
  254. package/vue/UiCombobox.d.ts +71 -68
  255. package/vue/UiCombobox.vue +417 -743
  256. package/vue/UiContainer.vue +43 -87
  257. package/vue/UiContextMenu.d.ts +6 -6
  258. package/vue/UiContextMenu.vue +78 -117
  259. package/vue/UiCover.vue +29 -69
  260. package/vue/UiDescriptionItem.vue +39 -82
  261. package/vue/UiDescriptionList.vue +64 -107
  262. package/vue/UiDialog.d.ts +22 -19
  263. package/vue/UiDialog.vue +193 -246
  264. package/vue/UiDisclosure.d.ts +22 -19
  265. package/vue/UiDisclosure.vue +192 -283
  266. package/vue/UiEditable.d.ts +5 -5
  267. package/vue/UiEditable.vue +124 -207
  268. package/vue/UiEditorImageToolbar.d.ts +54 -0
  269. package/vue/UiEditorImageToolbar.js +2 -0
  270. package/vue/UiEditorImageToolbar.vue +415 -0
  271. package/vue/UiEditorInsertTableGrid.d.ts +2 -2
  272. package/vue/UiEditorInsertTableGrid.vue +98 -266
  273. package/vue/UiEditorMentionMenu.d.ts +15 -12
  274. package/vue/UiEditorMentionMenu.vue +150 -239
  275. package/vue/UiEditorMentionMenuItem.vue +66 -110
  276. package/vue/UiEditorSlashMenu.d.ts +16 -13
  277. package/vue/UiEditorSlashMenu.vue +172 -253
  278. package/vue/UiEditorSlashMenuGroup.vue +25 -69
  279. package/vue/UiEditorSlashMenuItem.vue +67 -115
  280. package/vue/UiEditorSurface.vue +19 -63
  281. package/vue/UiEditorTableContextMenu.vue +135 -269
  282. package/vue/UiEditorTableOverlay.d.ts +2 -2
  283. package/vue/UiEditorTableOverlay.vue +310 -479
  284. package/vue/UiEditorTableToolbar.d.ts +2 -2
  285. package/vue/UiEditorTableToolbar.vue +182 -357
  286. package/vue/UiEditorToolbar.vue +143 -183
  287. package/vue/UiFloatingActionButton.vue +70 -114
  288. package/vue/UiFormField.d.ts +1 -1
  289. package/vue/UiFormField.vue +76 -117
  290. package/vue/UiGrid.d.ts +1 -1
  291. package/vue/UiGrid.vue +65 -103
  292. package/vue/UiIcon.vue +32 -106
  293. package/vue/UiIconButton.d.ts +2 -2
  294. package/vue/UiIconButton.vue +359 -411
  295. package/vue/UiImage.vue +145 -180
  296. package/vue/UiInput.vue +158 -190
  297. package/vue/UiInputGroup.vue +199 -239
  298. package/vue/UiList.vue +67 -109
  299. package/vue/UiListItem.vue +154 -201
  300. package/vue/UiListbox.d.ts +10 -7
  301. package/vue/UiListbox.vue +86 -260
  302. package/vue/UiMenu.d.ts +11 -11
  303. package/vue/UiMenu.vue +118 -152
  304. package/vue/UiMenuGroup.vue +21 -67
  305. package/vue/UiMenuItem.d.ts +19 -16
  306. package/vue/UiMenuItem.vue +169 -262
  307. package/vue/UiMeter.d.ts +4 -4
  308. package/vue/UiMeter.vue +166 -680
  309. package/vue/UiNavItem.vue +140 -213
  310. package/vue/UiPageHeader.vue +81 -127
  311. package/vue/UiPopover.d.ts +7 -7
  312. package/vue/UiPopover.vue +90 -129
  313. package/vue/UiRadio.d.ts +12 -9
  314. package/vue/UiRadio.vue +91 -149
  315. package/vue/UiRadioGroup.d.ts +2 -2
  316. package/vue/UiRadioGroup.vue +47 -85
  317. package/vue/UiReel.vue +89 -130
  318. package/vue/UiScrollArea.d.ts +1 -1
  319. package/vue/UiScrollArea.vue +78 -119
  320. package/vue/UiSearchResultRow.vue +96 -149
  321. package/vue/UiSearchShell.d.ts +2 -2
  322. package/vue/UiSearchShell.vue +159 -196
  323. package/vue/UiSection.vue +105 -149
  324. package/vue/UiSelect.d.ts +1 -1
  325. package/vue/UiSelect.vue +114 -146
  326. package/vue/UiSeparator.vue +42 -85
  327. package/vue/UiSidebar.d.ts +10 -7
  328. package/vue/UiSidebar.vue +193 -260
  329. package/vue/UiSpinner.vue +54 -130
  330. package/vue/UiStack.vue +66 -107
  331. package/vue/UiStatusMessage.d.ts +1 -1
  332. package/vue/UiStatusMessage.vue +61 -135
  333. package/vue/UiSwitch.d.ts +12 -9
  334. package/vue/UiSwitch.vue +136 -194
  335. package/vue/UiSwitcher.vue +69 -107
  336. package/vue/UiTable.vue +121 -156
  337. package/vue/UiTabs.d.ts +1 -1
  338. package/vue/UiTabs.vue +139 -267
  339. package/vue/UiText.d.ts +4 -4
  340. package/vue/UiText.vue +145 -184
  341. package/vue/UiTextarea.d.ts +2 -2
  342. package/vue/UiTextarea.vue +162 -194
  343. package/vue/UiToast.vue +70 -118
  344. package/vue/UiToastRegion.vue +157 -276
  345. package/vue/UiTooltip.d.ts +21 -18
  346. package/vue/UiTooltip.vue +174 -234
  347. package/vue/UiTopBar.vue +48 -76
  348. package/vue/UiTree.vue +46 -79
  349. package/vue/UiTreeItem.d.ts +18 -15
  350. package/vue/UiTreeItem.vue +526 -668
  351. package/vue/chunks/UiActionBar.js +5 -17
  352. package/vue/chunks/UiAffordanceScope.js +7 -26
  353. package/vue/chunks/UiAvatar.js +20 -74
  354. package/vue/chunks/UiAvatarGroup.js +14 -56
  355. package/vue/chunks/UiBadge.js +10 -28
  356. package/vue/chunks/UiBreadcrumbItem.js +11 -41
  357. package/vue/chunks/UiBreadcrumbs.js +7 -25
  358. package/vue/chunks/UiButton.js +80 -103
  359. package/vue/chunks/UiCallout.js +9 -27
  360. package/vue/chunks/UiCard.js +33 -53
  361. package/vue/chunks/UiCheckbox.js +14 -46
  362. package/vue/chunks/UiCluster.js +13 -31
  363. package/vue/chunks/UiCombobox.js +99 -237
  364. package/vue/chunks/UiContainer.js +9 -27
  365. package/vue/chunks/UiContextMenu.js +7 -26
  366. package/vue/chunks/UiCover.js +7 -25
  367. package/vue/chunks/UiDescriptionItem.js +6 -24
  368. package/vue/chunks/UiDescriptionList.js +9 -27
  369. package/vue/chunks/UiDialog.js +18 -47
  370. package/vue/chunks/UiDisclosure.js +19 -66
  371. package/vue/chunks/UiEditable.js +18 -60
  372. package/vue/chunks/UiEditorImageToolbar.js +515 -0
  373. package/vue/chunks/UiEditorInsertTableGrid.js +14 -112
  374. package/vue/chunks/UiEditorMentionMenu.js +16 -54
  375. package/vue/chunks/UiEditorMentionMenuItem.js +10 -28
  376. package/vue/chunks/UiEditorSlashMenu.js +17 -46
  377. package/vue/chunks/UiEditorSlashMenuGroup.js +7 -25
  378. package/vue/chunks/UiEditorSlashMenuItem.js +16 -31
  379. package/vue/chunks/UiEditorSurface.js +7 -25
  380. package/vue/chunks/UiEditorTableContextMenu.js +25 -102
  381. package/vue/chunks/UiEditorTableOverlay.js +41 -104
  382. package/vue/chunks/UiEditorTableToolbar.js +44 -122
  383. package/vue/chunks/UiEditorToolbar.js +7 -26
  384. package/vue/chunks/UiFloatingActionButton.js +10 -28
  385. package/vue/chunks/UiFormField.js +8 -27
  386. package/vue/chunks/UiGrid.js +10 -28
  387. package/vue/chunks/UiIcon.js +21 -74
  388. package/vue/chunks/UiIconButton.js +18 -50
  389. package/vue/chunks/UiImage.js +14 -33
  390. package/vue/chunks/UiInput.js +12 -31
  391. package/vue/chunks/UiInputGroup.js +10 -29
  392. package/vue/chunks/UiList.js +17 -37
  393. package/vue/chunks/UiListItem.js +12 -30
  394. package/vue/chunks/UiListbox.js +22 -124
  395. package/vue/chunks/UiMenu.js +13 -32
  396. package/vue/chunks/UiMenuGroup.js +8 -26
  397. package/vue/chunks/UiMenuItem.js +35 -80
  398. package/vue/chunks/UiMeter.js +17 -351
  399. package/vue/chunks/UiNavItem.js +23 -57
  400. package/vue/chunks/UiPageHeader.js +7 -25
  401. package/vue/chunks/UiPopover.js +9 -28
  402. package/vue/chunks/UiRadio.js +11 -43
  403. package/vue/chunks/UiRadioGroup.js +13 -32
  404. package/vue/chunks/UiReel.js +10 -28
  405. package/vue/chunks/UiScrollArea.js +10 -29
  406. package/vue/chunks/UiSearchResultRow.js +10 -28
  407. package/vue/chunks/UiSearchShell.js +9 -28
  408. package/vue/chunks/UiSection.js +9 -27
  409. package/vue/chunks/UiSelect.js +10 -29
  410. package/vue/chunks/UiSeparator.js +10 -28
  411. package/vue/chunks/UiSidebar.js +15 -47
  412. package/vue/chunks/UiSpinner.js +8 -44
  413. package/vue/chunks/UiStack.js +12 -30
  414. package/vue/chunks/UiStatusMessage.js +10 -42
  415. package/vue/chunks/UiSwitch.js +11 -43
  416. package/vue/chunks/UiSwitcher.js +9 -28
  417. package/vue/chunks/UiTable.js +7 -26
  418. package/vue/chunks/UiTabs.js +15 -91
  419. package/vue/chunks/UiText.js +148 -168
  420. package/vue/chunks/UiTextarea.js +16 -35
  421. package/vue/chunks/UiToast.js +13 -37
  422. package/vue/chunks/UiToastRegion.js +16 -88
  423. package/vue/chunks/UiTooltip.js +14 -46
  424. package/vue/chunks/UiTopBar.js +5 -17
  425. package/vue/chunks/UiTree.js +13 -32
  426. package/vue/chunks/UiTreeItem.js +34 -90
  427. package/vue/chunks/_plugin-vue_export-helper.js +904 -1
  428. package/vue/chunks/control.js +3 -0
  429. package/vue/chunks/props.js +1 -1
  430. package/vue/components.css +7902 -7830
  431. package/vue/editor/index.js +42 -171
  432. package/vue/editor/primitives.d.ts +9 -1
  433. package/vue/host.ts +999 -14
  434. package/vue/index.d.ts +1 -0
  435. package/vue/index.js +9 -8
  436. package/vue/chunks/host.js +0 -443
  437. package/vue/editor/image-controls.d.ts +0 -19
@@ -1,27 +1,18 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.35 for Vue 3.5. Do not edit. -->
2
- <script lang="ts">
3
- const htmlNextAuthoredCheck2Reported = new Set<string>()
4
- function htmlNextAuthoredCheck2(accepted: boolean, location: string, message: string): boolean {
5
- if (!accepted && !htmlNextAuthoredCheck2Reported.has(location)) {
6
- htmlNextAuthoredCheck2Reported.add(location)
7
- console.warn(message)
8
- }
9
- return accepted
10
- }
11
- </script>
12
-
1
+ <!-- Generated by HTML Next 1.0.0-alpha.51 for Vue 3.5. Do not edit. -->
13
2
  <script setup lang="ts">
3
+ import { computed, getCurrentInstance, provide, ref, watchSyncEffect } from 'vue'
4
+ import type { PropType } from 'vue'
14
5
  import {
15
- computed,
16
- defineComponent,
17
- getCurrentInstance,
18
- h,
19
- provide,
20
- ref,
21
- watchSyncEffect,
22
- } from 'vue'
23
- import type { PropType, VNode } from 'vue'
24
- import { createDispatch, useComponentHost } from './host'
6
+ checkHydratedRoot,
7
+ createDispatch,
8
+ isInteger,
9
+ KeyedBoundary,
10
+ nativeAttrs,
11
+ uniqueKeys,
12
+ useComponentHost,
13
+ useReflectedProp,
14
+ warnUnless,
15
+ } from './host'
25
16
  import { acceptsControllerWrite } from './props'
26
17
  import { checkedProp, propValidityState, vPropValidity } from './props'
27
18
  import UiIcon from './UiIcon.vue'
@@ -220,64 +211,7 @@ void checkedProps.value
220
211
  watchSyncEffect(() => {
221
212
  void checkedProps.value
222
213
  })
223
- function nativeAttrs(attrs: Record<string, unknown>): Record<string, unknown> {
224
- const names = Object.keys(attrs)
225
- if (!names.some((name) => Object.hasOwn(Object.prototype, name))) return attrs
226
- return Object.fromEntries(names.map((name) => [
227
- Object.hasOwn(Object.prototype, name)
228
- ? name === '__proto__' ? '__Proto__' : name[0]!.toUpperCase() + name.slice(1)
229
- : name,
230
- attrs[name],
231
- ]))
232
- }
233
- const KeyedFailure = defineComponent({
234
- props: { error: { type: null, required: true } },
235
- setup(props) {
236
- return () => {
237
- throw props.error
238
- }
239
- },
240
- })
241
- const KeyedBoundary = defineComponent({
242
- setup(_props, { slots }) {
243
- let last: VNode[] = []
244
- return () => {
245
- try {
246
- last = slots.default?.() ?? []
247
- return last
248
- } catch (error) {
249
- if (
250
- !(error instanceof Error)
251
- || (error as Error & { diagnostic?: { code?: string } }).diagnostic?.code !== 'HR004'
252
- ) throw error
253
- if (typeof window === 'undefined') throw error
254
- return [...last, h(KeyedFailure, { error })]
255
- }
256
- }
257
- },
258
- })
259
- const componentInstance = getCurrentInstance()
260
- function reflectedProp(
261
- name: string,
262
- kebab: string,
263
- value: unknown,
264
- fallback: string | undefined,
265
- bound: boolean,
266
- separator?: string,
267
- ): string | undefined {
268
- const incoming = componentInstance?.vnode.props
269
- if (
270
- !bound
271
- && (incoming === null || incoming === undefined
272
- || (!Object.hasOwn(incoming, name) && !Object.hasOwn(incoming, kebab)))
273
- ) return fallback
274
- if (value === null || value === undefined) return undefined
275
- return Array.isArray(value) && separator !== undefined
276
- ? value.join(separator)
277
- : typeof value === 'object'
278
- ? JSON.stringify(value)
279
- : String(value)
280
- }
214
+ const reflectedProp = useReflectedProp()
281
215
  const hydrationInstance = getCurrentInstance()
282
216
  const emit = defineEmits<{
283
217
  'add-row-before': [event: CustomEvent<{ readonly boundaryIndex: number }>]
@@ -381,7 +315,7 @@ const activeKey = ref('')
381
315
  let guardedPrevious: any
382
316
  const guarded = computed(() => {
383
317
  if (
384
- !(htmlNextAuthoredCheck2(
318
+ !(warnUnless(
385
319
  hovered.value?.['rowOffset'] == null || typeof hovered.value?.['rowOffset'] === 'string',
386
320
  '$hovered.rowOffset:hovered.rowOffset',
387
321
  './components/ui-editor-table-overlay/ui-editor-table-overlay.html: HR007: Reference hovered.rowOffset does not satisfy its declared type.',
@@ -392,7 +326,7 @@ const guarded = computed(() => {
392
326
  let guardedBindingPrevious: any
393
327
  const guardedBinding = computed(() => {
394
328
  if (
395
- !(htmlNextAuthoredCheck2(
329
+ !(warnUnless(
396
330
  hovered.value?.['rowIndex'] == null || Number.isInteger(hovered.value?.['rowIndex']),
397
331
  '$hovered.rowIndex:hovered.rowIndex',
398
332
  './components/ui-editor-table-overlay/ui-editor-table-overlay.html: HR007: Reference hovered.rowIndex does not satisfy its declared type.',
@@ -403,7 +337,7 @@ const guardedBinding = computed(() => {
403
337
  let guardedBinding2Previous: any
404
338
  const guardedBinding2 = computed(() => {
405
339
  if (
406
- !(htmlNextAuthoredCheck2(
340
+ !(warnUnless(
407
341
  hovered.value?.['columnIndex'] == null || Number.isInteger(hovered.value?.['columnIndex']),
408
342
  '$hovered.columnIndex:hovered.columnIndex',
409
343
  './components/ui-editor-table-overlay/ui-editor-table-overlay.html: HR007: Reference hovered.columnIndex does not satisfy its declared type.',
@@ -414,7 +348,7 @@ const guardedBinding2 = computed(() => {
414
348
  let guardedBinding3Previous: any
415
349
  const guardedBinding3 = computed(() => {
416
350
  if (
417
- !(htmlNextAuthoredCheck2(
351
+ !(warnUnless(
418
352
  hovered.value?.['columnOffset'] == null
419
353
  || typeof hovered.value?.['columnOffset'] === 'string',
420
354
  '$hovered.columnOffset:hovered.columnOffset',
@@ -426,7 +360,7 @@ const guardedBinding3 = computed(() => {
426
360
  let guardedBinding4Previous: any
427
361
  const guardedBinding4 = computed(() => {
428
362
  if (
429
- !(htmlNextAuthoredCheck2(
363
+ !(warnUnless(
430
364
  hovered.value?.['rowIndex'] == null || Number.isInteger(hovered.value?.['rowIndex']),
431
365
  '$hovered.rowIndex:hovered.rowIndex',
432
366
  './components/ui-editor-table-overlay/ui-editor-table-overlay.html: HR007: Reference hovered.rowIndex does not satisfy its declared type.',
@@ -437,7 +371,7 @@ const guardedBinding4 = computed(() => {
437
371
  let guardedBinding5Previous: any
438
372
  const guardedBinding5 = computed(() => {
439
373
  if (
440
- !(htmlNextAuthoredCheck2(
374
+ !(warnUnless(
441
375
  hovered.value?.['columnIndex'] == null || Number.isInteger(hovered.value?.['columnIndex']),
442
376
  '$hovered.columnIndex:hovered.columnIndex',
443
377
  './components/ui-editor-table-overlay/ui-editor-table-overlay.html: HR007: Reference hovered.columnIndex does not satisfy its declared type.',
@@ -448,7 +382,7 @@ const guardedBinding5 = computed(() => {
448
382
  let guardedBinding6Previous: any
449
383
  const guardedBinding6 = computed(() => {
450
384
  if (
451
- !(htmlNextAuthoredCheck2(
385
+ !(warnUnless(
452
386
  active.value?.['menuLeft'] == null || typeof active.value?.['menuLeft'] === 'string',
453
387
  '$active.menuLeft:active.menuLeft',
454
388
  './components/ui-editor-table-overlay/ui-editor-table-overlay.html: HR007: Reference active.menuLeft does not satisfy its declared type.',
@@ -459,7 +393,7 @@ const guardedBinding6 = computed(() => {
459
393
  let guardedBinding7Previous: any
460
394
  const guardedBinding7 = computed(() => {
461
395
  if (
462
- !(htmlNextAuthoredCheck2(
396
+ !(warnUnless(
463
397
  active.value?.['menuTop'] == null || typeof active.value?.['menuTop'] === 'string',
464
398
  '$active.menuTop:active.menuTop',
465
399
  './components/ui-editor-table-overlay/ui-editor-table-overlay.html: HR007: Reference active.menuTop does not satisfy its declared type.',
@@ -470,7 +404,7 @@ const guardedBinding7 = computed(() => {
470
404
  let guardedBinding8Previous: any
471
405
  const guardedBinding8 = computed(() => {
472
406
  if (
473
- !(htmlNextAuthoredCheck2(
407
+ !(warnUnless(
474
408
  active.value?.['rowIndex'] == null || Number.isInteger(active.value?.['rowIndex']),
475
409
  '$active.rowIndex:active.rowIndex',
476
410
  './components/ui-editor-table-overlay/ui-editor-table-overlay.html: HR007: Reference active.rowIndex does not satisfy its declared type.',
@@ -481,7 +415,7 @@ const guardedBinding8 = computed(() => {
481
415
  let guardedBinding9Previous: any
482
416
  const guardedBinding9 = computed(() => {
483
417
  if (
484
- !(htmlNextAuthoredCheck2(
418
+ !(warnUnless(
485
419
  active.value?.['columnIndex'] == null || Number.isInteger(active.value?.['columnIndex']),
486
420
  '$active.columnIndex:active.columnIndex',
487
421
  './components/ui-editor-table-overlay/ui-editor-table-overlay.html: HR007: Reference active.columnIndex does not satisfy its declared type.',
@@ -494,22 +428,7 @@ provide('html-next:ui-editor-table-overlay:cols', cols)
494
428
  provide('html-next:ui-editor-table-overlay:hovered', hovered)
495
429
  provide('html-next:ui-editor-table-overlay:active', active)
496
430
  provide('html-next:ui-editor-table-overlay:activeKey', activeKey)
497
- const hydrationNode = hydrationInstance?.vnode.el
498
- if (
499
- typeof window !== 'undefined' && hydrationNode != null
500
- && (!(hydrationNode instanceof Element) || hydrationNode.localName !== ('div'))
501
- ) {
502
- throw Object.assign(
503
- new Error('HR005: Server markup for <ui-editor-table-overlay> has an incompatible root.'),
504
- {
505
- name: 'HtmlDiagnosticError',
506
- diagnostic: Object.freeze({
507
- code: 'HR005',
508
- message: 'Server markup for <ui-editor-table-overlay> has an incompatible root.',
509
- }),
510
- },
511
- )
512
- }
431
+ checkHydratedRoot('div', 'ui-editor-table-overlay')
513
432
 
514
433
  const isAddRowBeforeDetail = (
515
434
  detail: unknown,
@@ -712,44 +631,11 @@ useComponentHost(() => import('../components/ui-editor-table-overlay/ui-editor-t
712
631
  propValidityState({ contract: propValidityContract, values: { ...props } }, name),
713
632
  state: { rows, cols, hovered, active, activeKey },
714
633
  })
715
-
716
- function text(value: unknown): string {
717
- if (Array.isArray(value)) return value.map(text).join(' ')
718
- return value === null || value === undefined || typeof value === 'object' ? '' : String(value)
719
- }
720
-
721
- function uniqueKeys<T>(
722
- items: readonly T[],
723
- keyOf: (
724
- item: T,
725
- index: number,
726
- loop: { index: number; first: boolean; last: boolean; count: number },
727
- ) => unknown,
728
- ): readonly T[] {
729
- const seen = new Set<unknown>()
730
- for (let index = 0; index < items.length; index += 1) {
731
- const key = keyOf(items[index]!, index, {
732
- index,
733
- first: index === 0,
734
- last: index === items.length - 1,
735
- count: items.length,
736
- })
737
- if (seen.has(key)) {
738
- const message = `A keyed list produced duplicate key \`${text(key)}\`.`
739
- throw Object.assign(new Error(`HR004: ${message}`), {
740
- name: 'HtmlDiagnosticError',
741
- diagnostic: Object.freeze({ code: 'HR004', message }),
742
- })
743
- }
744
- seen.add(key)
745
- }
746
- return items
747
- }
748
634
  </script>
749
635
 
750
636
  <template>
751
637
  <div
752
- data-component="ui-editor-table-overlay"
638
+ class="ui-editor-table-overlay"
753
639
  aria-label="Table controls"
754
640
  v-bind="nativeAttrs($attrs)"
755
641
  :hidden="!checkedProps.open"
@@ -777,7 +663,7 @@ function uniqueKeys<T>(
777
663
  :data-boundary-index="control.index"
778
664
  :aria-label="control.label"
779
665
  >
780
- <UiIcon name="plus" />
666
+ <UiIcon class="ui-icon" name="plus" />
781
667
  <span class="tooltip" role="tooltip">{{ control.label }}</span>
782
668
  </button>
783
669
  </div></KeyedBoundary>
@@ -801,7 +687,7 @@ function uniqueKeys<T>(
801
687
  :data-boundary-index="control.index"
802
688
  :aria-label="control.label"
803
689
  >
804
- <UiIcon name="plus" />
690
+ <UiIcon class="ui-icon" name="plus" />
805
691
  <span class="tooltip" role="tooltip">{{ control.label }}</span>
806
692
  </button>
807
693
  </div></KeyedBoundary>
@@ -816,7 +702,7 @@ function uniqueKeys<T>(
816
702
  :data-column-index="guardedBinding2"
817
703
  :style="{ top: guarded }"
818
704
  >
819
- <span class="glyph"><UiIcon name="grip-vertical" /></span>
705
+ <span class="glyph"><UiIcon class="ui-icon" name="grip-vertical" /></span>
820
706
  </button>
821
707
  <button
822
708
  type="button"
@@ -828,7 +714,7 @@ function uniqueKeys<T>(
828
714
  :data-column-index="guardedBinding5"
829
715
  :style="{ left: guardedBinding3 }"
830
716
  >
831
- <span class="glyph"><UiIcon name="grip-horizontal" /></span>
717
+ <span class="glyph"><UiIcon class="ui-icon" name="grip-horizontal" /></span>
832
718
  </button></template>
833
719
  <button
834
720
  v-if="active"
@@ -841,352 +727,297 @@ function uniqueKeys<T>(
841
727
  :data-column-index="guardedBinding9"
842
728
  :style="{ left: guardedBinding6, top: guardedBinding7 }"
843
729
  >
844
- <UiIcon name="chevron-down" />
730
+ <UiIcon class="ui-icon" name="chevron-down" />
845
731
  </button>
846
732
  <span class="drop-indicator" data-drop-indicator="" hidden="" aria-hidden="true"></span>
847
733
  </div>
848
734
  </template>
849
735
 
850
736
  <style scoped>
851
- [data-component~="ui-editor-table-overlay"] {
852
- display: block;
853
- width: 100%;
854
- height: 100%;
855
- overflow: visible;
856
- pointer-events: none;
857
- }
858
-
859
- [data-component~="ui-editor-table-overlay"] {
860
- position: relative;
861
- width: 100%;
862
- height: 100%;
863
- overflow: visible;
864
- pointer-events: none;
865
- }
866
-
867
- .rows,
868
- .cols {
869
- pointer-events: none;
870
- position: absolute;
871
- }
872
-
873
- .rows {
874
- inset: 0;
875
- width: 100%;
876
- }
877
-
878
- .cols {
879
- inset: 0;
880
- height: 100%;
881
- }
882
-
883
- .control {
884
- position: absolute;
885
- z-index: 1;
886
- pointer-events: none;
887
- }
888
-
889
- .handle {
890
- position: absolute;
891
- display: inline-flex;
892
- align-items: center;
893
- justify-content: center;
894
- width: 24px;
895
- height: 24px;
896
- padding: 0;
897
- border: var(--ui-border-width) solid var(--ui-affordance-near-color, var(--ui-border-strong));
898
- border-radius: var(--ui-radius-round);
899
- background: color-mix(in srgb, var(--ui-surface-elevated) 96%, transparent);
900
- color: var(--ui-affordance-near-color, var(--ui-text-secondary));
901
- font: inherit;
902
- font-size: 16px;
903
- line-height: 1;
904
- box-shadow: var(--ui-shadow-xs, 0 1px 2px rgb(0 0 0 / 0.05));
905
- opacity: 0;
906
- scale: 0.72;
907
- transition:
908
- opacity var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
909
- scale var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
910
- color var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
911
- background-color var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
912
- border-color var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
913
- pointer-events: auto;
914
- cursor: pointer;
915
- }
916
-
917
- .handle {
918
- --_ui-default-icon-size: 14px;
919
- --_ui-default-icon-stroke-width: 2;
920
- }
921
-
922
- .handle[data-ui-proximity="near"],
923
- .control.active .handle,
924
- .handle:focus-visible {
925
- opacity: 1;
926
- scale: 1;
927
- }
928
-
929
- .control.active .handle,
930
- .handle:focus-visible {
931
- border-color: var(--ui-affordance-direct-color, var(--ui-accent-solid));
932
- background: var(--ui-affordance-direct-color, var(--ui-accent-solid));
933
- color: var(--ui-text-on-accent);
934
- box-shadow: var(--ui-shadow-sm, 0 1px 3px rgb(0 0 0 / 0.1));
935
- }
936
-
937
- .handle:focus-visible,
938
- .selector:focus-visible,
939
- .cell-menu:focus-visible {
940
- outline: var(--ui-focus-width) solid var(--ui-focus-ring);
941
- outline-offset: var(--ui-focus-width);
942
- }
943
-
944
- .control.row {
945
- left: 0;
946
- width: 100%;
947
- height: 0;
948
- }
949
-
950
- .control.row .handle {
951
- top: -12px;
952
- left: -30px;
953
- }
954
-
955
- .control.col {
956
- top: 0;
957
- width: 0;
958
- height: 100%;
959
- }
960
-
961
- .control.col .handle {
962
- top: -30px;
963
- left: -12px;
964
- }
965
-
966
- .line {
967
- position: absolute;
968
- background: var(--ui-affordance-direct-color, var(--ui-accent-solid));
969
- opacity: 0;
970
- transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
971
- }
972
-
973
- .control.row .line {
974
- inset: calc(-0.5 * var(--ui-accent-line-width)) 0 auto;
975
- height: var(--ui-accent-line-width);
976
- }
977
-
978
- .control.col .line {
979
- inset: 0 auto 0 calc(-0.5 * var(--ui-accent-line-width));
980
- width: var(--ui-accent-line-width);
981
- }
982
-
983
- .control.active .line {
984
- opacity: 0.8;
985
- }
986
-
987
- .guide {
988
- position: absolute;
989
- width: var(--ui-affordance-guide-size);
990
- height: var(--ui-affordance-guide-size);
991
- border-radius: var(--ui-radius-round);
992
- background: var(--ui-affordance-guide-color, var(--ui-border-strong));
993
- opacity: calc(var(--ui-affordance-guide-opacity) * var(--ui-affordance-scope-guide, 1));
994
- transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
995
- }
996
-
997
- .control.row .guide {
998
- left: -10px;
999
- top: -2px;
1000
- }
1001
-
1002
- .control.col .guide {
1003
- left: -2px;
1004
- top: -10px;
1005
- }
1006
-
1007
- .control:has(.handle[data-ui-proximity="near"]) .guide,
1008
- .control.active .guide {
1009
- opacity: 0;
1010
- }
1011
-
1012
- .tooltip {
1013
- position: absolute;
1014
- z-index: 2;
1015
- top: calc(100% + 6px);
1016
- left: 50%;
1017
- width: max-content;
1018
- max-width: 14rem;
1019
- padding: var(--ui-space-1) var(--ui-space-2);
1020
- border-radius: var(--ui-radius-sm);
1021
- background: var(--ui-text-primary);
1022
- color: var(--ui-surface-elevated);
1023
- font-size: var(--ui-font-size-xs);
1024
- font-weight: var(--ui-font-medium);
1025
- line-height: var(--ui-line-height-md);
1026
- opacity: 0;
1027
- transform: translateX(-50%);
1028
- transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
1029
- pointer-events: none;
1030
- }
1031
-
1032
- .control.row .tooltip {
1033
- top: 50%;
1034
- left: auto;
1035
- right: calc(100% + 8px);
1036
- transform: translateY(-50%);
1037
- }
1038
-
1039
- .control.active .tooltip,
1040
- .handle:focus-visible .tooltip {
1041
- opacity: 1;
1042
- }
1043
-
1044
- .selector,
1045
- .cell-menu {
1046
- position: absolute;
1047
- z-index: 2;
1048
- display: inline-flex;
1049
- align-items: center;
1050
- justify-content: center;
1051
- padding: 0;
1052
- border: var(--ui-border-width) solid transparent;
1053
- background: transparent;
1054
- color: var(--ui-text-secondary);
1055
- box-shadow: none;
1056
- pointer-events: auto;
1057
- cursor: pointer;
1058
- transition:
1059
- color var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
1060
- background-color var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
1061
- border-color var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
1062
- box-shadow var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
1063
- }
1064
-
1065
- .selector:hover,
1066
- .cell-menu:hover {
1067
- background: var(--ui-surface-muted);
1068
- color: var(--ui-text-primary);
1069
- box-shadow: var(--ui-shadow-xs, 0 1px 2px rgb(0 0 0 / 0.05));
1070
- }
1071
-
1072
- .selector {
1073
- border-radius: var(--ui-radius-round);
1074
- touch-action: none;
1075
- cursor: grab;
1076
- }
1077
-
1078
- .selector:active {
1079
- cursor: grabbing;
1080
- }
1081
-
1082
- .selector::before {
1083
- content: "";
1084
- position: absolute;
1085
- inset: 50% auto auto 50%;
1086
- border-radius: var(--ui-radius-round);
1087
- background: var(--ui-affordance-guide-color, var(--ui-border-strong));
1088
- opacity: calc(var(--ui-affordance-guide-opacity) * var(--ui-affordance-scope-guide, 1));
1089
- transform: translate(-50%, -50%);
1090
- transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
1091
- pointer-events: none;
1092
- }
1093
-
1094
- .selector .glyph {
1095
- display: block;
1096
- width: 14px;
1097
- height: 14px;
1098
- --_ui-default-icon-size: 14px;
1099
- --_ui-default-icon-stroke-width: 2;
1100
- opacity: 0;
1101
- transform: scale(0.72);
1102
- transition:
1103
- opacity var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
1104
- transform var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
1105
- }
1106
-
1107
- .selector:hover::before,
1108
- .selector:focus-visible::before {
1109
- opacity: 0;
1110
- }
1111
-
1112
- .selector:hover .glyph,
1113
- .selector:focus-visible .glyph {
1114
- opacity: 1;
1115
- transform: scale(1);
1116
- }
1117
-
1118
- .selector.row {
1119
- left: -9px;
1120
- width: 18px;
1121
- height: 32px;
1122
- transform: translateY(-50%);
1123
- }
1124
-
1125
- .selector.row::before {
1126
- width: 2px;
1127
- height: 16px;
1128
- }
1129
-
1130
- .selector.column {
1131
- top: -9px;
1132
- width: 32px;
1133
- height: 18px;
1134
- transform: translateX(-50%);
1135
- }
1136
-
1137
- .selector.column::before {
1138
- width: 16px;
1139
- height: 2px;
1140
- }
1141
-
1142
- @media (hover: none), (pointer: coarse) {
1143
- .selector::before {
737
+ @scope (.ui-editor-table-overlay) to (.ui-icon) {
738
+ :scope:where(:scope) {
739
+ display: block;
740
+ width: 100%;
741
+ height: 100%;
742
+ overflow: visible;
743
+ pointer-events: none;
744
+ }
745
+ :scope:where(:scope) {
746
+ position: relative;
747
+ width: 100%;
748
+ height: 100%;
749
+ overflow: visible;
750
+ pointer-events: none;
751
+ }
752
+ .rows, .cols {
753
+ pointer-events: none;
754
+ position: absolute;
755
+ }
756
+ .rows {
757
+ inset: 0;
758
+ width: 100%;
759
+ }
760
+ .cols {
761
+ inset: 0;
762
+ height: 100%;
763
+ }
764
+ .control {
765
+ position: absolute;
766
+ z-index: 1;
767
+ pointer-events: none;
768
+ }
769
+ .handle {
770
+ position: absolute;
771
+ display: inline-flex;
772
+ align-items: center;
773
+ justify-content: center;
774
+ width: 24px;
775
+ height: 24px;
776
+ padding: 0;
777
+ border: var(--ui-border-width) solid var(--ui-affordance-near-color, var(--ui-border-strong));
778
+ border-radius: var(--ui-radius-round);
779
+ background: color-mix(in srgb, var(--ui-surface-elevated) 96%, transparent);
780
+ color: var(--ui-affordance-near-color, var(--ui-text-secondary));
781
+ font: inherit;
782
+ font-size: 16px;
783
+ line-height: 1;
784
+ box-shadow: var(--ui-shadow-xs, 0 1px 2px rgb(0 0 0 / 0.05));
1144
785
  opacity: 0;
786
+ scale: 0.72;
787
+ transition:
788
+ opacity var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
789
+ scale var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
790
+ color var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
791
+ background-color var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
792
+ border-color var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
793
+ pointer-events: auto;
794
+ cursor: pointer;
795
+ }
796
+ .handle {
797
+ --_ui-default-icon-size: 14px;
798
+ --_ui-default-icon-stroke-width: 2;
799
+ }
800
+ .handle[data-ui-proximity="near"], .control.active .handle, .handle:focus-visible {
801
+ opacity: 1;
802
+ scale: 1;
803
+ }
804
+ .control.active .handle, .handle:focus-visible {
805
+ border-color: var(--ui-affordance-direct-color, var(--ui-accent-solid));
806
+ background: var(--ui-affordance-direct-color, var(--ui-accent-solid));
807
+ color: var(--ui-text-on-accent);
808
+ box-shadow: var(--ui-shadow-sm, 0 1px 3px rgb(0 0 0 / 0.1));
809
+ }
810
+ .handle:focus-visible, .selector:focus-visible, .cell-menu:focus-visible {
811
+ outline: var(--ui-focus-width) solid var(--ui-focus-ring);
812
+ outline-offset: var(--ui-focus-width);
813
+ }
814
+ .control.row {
815
+ left: 0;
816
+ width: 100%;
817
+ height: 0;
818
+ }
819
+ .control.row .handle {
820
+ top: -12px;
821
+ left: -30px;
822
+ }
823
+ .control.col {
824
+ top: 0;
825
+ width: 0;
826
+ height: 100%;
827
+ }
828
+ .control.col .handle {
829
+ top: -30px;
830
+ left: -12px;
831
+ }
832
+ .line {
833
+ position: absolute;
834
+ background: var(--ui-affordance-direct-color, var(--ui-accent-solid));
835
+ opacity: 0;
836
+ transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
837
+ }
838
+ .control.row .line {
839
+ inset: calc(-0.5 * var(--ui-accent-line-width)) 0 auto;
840
+ height: var(--ui-accent-line-width);
841
+ }
842
+ .control.col .line {
843
+ inset: 0 auto 0 calc(-0.5 * var(--ui-accent-line-width));
844
+ width: var(--ui-accent-line-width);
845
+ }
846
+ .control.active .line {
847
+ opacity: 0.8;
848
+ }
849
+ .guide {
850
+ position: absolute;
851
+ width: var(--ui-affordance-guide-size);
852
+ height: var(--ui-affordance-guide-size);
853
+ border-radius: var(--ui-radius-round);
854
+ background: var(--ui-affordance-guide-color, var(--ui-border-strong));
855
+ opacity: calc(var(--ui-affordance-guide-opacity) * var(--ui-affordance-scope-guide, 1));
856
+ transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
857
+ }
858
+ .control.row .guide {
859
+ left: -10px;
860
+ top: -2px;
861
+ }
862
+ .control.col .guide {
863
+ left: -2px;
864
+ top: -10px;
865
+ }
866
+ .control:has(.handle[data-ui-proximity="near"]) .guide, .control.active .guide {
867
+ opacity: 0;
868
+ }
869
+ .tooltip {
870
+ position: absolute;
871
+ z-index: 2;
872
+ top: calc(100% + 6px);
873
+ left: 50%;
874
+ width: max-content;
875
+ max-width: 14rem;
876
+ padding: var(--ui-space-1) var(--ui-space-2);
877
+ border-radius: var(--ui-radius-sm);
878
+ background: var(--ui-text-primary);
879
+ color: var(--ui-surface-elevated);
880
+ font-size: var(--ui-font-size-xs);
881
+ font-weight: var(--ui-font-medium);
882
+ line-height: var(--ui-line-height-md);
883
+ opacity: 0;
884
+ transform: translateX(-50%);
885
+ transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
886
+ pointer-events: none;
887
+ }
888
+ .control.row .tooltip {
889
+ top: 50%;
890
+ left: auto;
891
+ right: calc(100% + 8px);
892
+ transform: translateY(-50%);
893
+ }
894
+ .control.active .tooltip, .handle:focus-visible .tooltip {
895
+ opacity: 1;
896
+ }
897
+ .selector, .cell-menu {
898
+ position: absolute;
899
+ z-index: 2;
900
+ display: inline-flex;
901
+ align-items: center;
902
+ justify-content: center;
903
+ padding: 0;
904
+ border: var(--ui-border-width) solid transparent;
905
+ background: transparent;
906
+ color: var(--ui-text-secondary);
907
+ box-shadow: none;
908
+ pointer-events: auto;
909
+ cursor: pointer;
910
+ transition:
911
+ color var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
912
+ background-color var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
913
+ border-color var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
914
+ box-shadow var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
915
+ }
916
+ .selector:hover, .cell-menu:hover {
917
+ background: var(--ui-surface-muted);
918
+ color: var(--ui-text-primary);
919
+ box-shadow: var(--ui-shadow-xs, 0 1px 2px rgb(0 0 0 / 0.05));
920
+ }
921
+ .selector {
922
+ border-radius: var(--ui-radius-round);
923
+ touch-action: none;
924
+ cursor: grab;
925
+ }
926
+ .selector:active {
927
+ cursor: grabbing;
928
+ }
929
+ .selector::before {
930
+ content: "";
931
+ position: absolute;
932
+ inset: 50% auto auto 50%;
933
+ border-radius: var(--ui-radius-round);
934
+ background: var(--ui-affordance-guide-color, var(--ui-border-strong));
935
+ opacity: calc(var(--ui-affordance-guide-opacity) * var(--ui-affordance-scope-guide, 1));
936
+ transform: translate(-50%, -50%);
937
+ transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
938
+ pointer-events: none;
1145
939
  }
1146
-
1147
940
  .selector .glyph {
941
+ display: block;
942
+ width: 14px;
943
+ height: 14px;
944
+ --_ui-default-icon-size: 14px;
945
+ --_ui-default-icon-stroke-width: 2;
946
+ opacity: 0;
947
+ transform: scale(0.72);
948
+ transition:
949
+ opacity var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
950
+ transform var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
951
+ }
952
+ .selector:hover::before, .selector:focus-visible::before {
953
+ opacity: 0;
954
+ }
955
+ .selector:hover .glyph, .selector:focus-visible .glyph {
1148
956
  opacity: 1;
1149
- transform: none;
957
+ transform: scale(1);
1150
958
  }
1151
- }
1152
-
1153
- .cell-menu {
1154
- width: 24px;
1155
- height: 24px;
1156
- border-radius: var(--ui-radius-sm);
1157
- background: color-mix(in srgb, var(--ui-surface-muted) 78%, transparent);
1158
- }
1159
-
1160
- .cell-menu {
1161
- --_ui-default-icon-size: 15px;
1162
- --_ui-default-icon-stroke-width: 2;
1163
- }
1164
-
1165
- .drop-indicator {
1166
- position: absolute;
1167
- z-index: 3;
1168
- background: var(--ui-accent-solid);
1169
- box-shadow: 0 0 0 var(--ui-border-width) var(--ui-surface);
1170
- pointer-events: none;
1171
- }
1172
-
1173
- .drop-indicator.row {
1174
- left: 0;
1175
- width: 100%;
1176
- height: var(--ui-accent-line-width);
1177
- }
1178
-
1179
- .drop-indicator.column {
1180
- top: 0;
1181
- width: var(--ui-accent-line-width);
1182
- height: 100%;
1183
- }
1184
-
1185
- .drop-indicator[hidden] {
1186
- display: none;
1187
- }
959
+ .selector.row {
960
+ left: -9px;
961
+ width: 18px;
962
+ height: 32px;
963
+ transform: translateY(-50%);
964
+ }
965
+ .selector.row::before {
966
+ width: 2px;
967
+ height: 16px;
968
+ }
969
+ .selector.column {
970
+ top: -9px;
971
+ width: 32px;
972
+ height: 18px;
973
+ transform: translateX(-50%);
974
+ }
975
+ .selector.column::before {
976
+ width: 16px;
977
+ height: 2px;
978
+ }
979
+ @media (hover: none), (pointer: coarse) {
980
+ .selector::before {
981
+ opacity: 0;
982
+ }
1188
983
 
1189
- [data-component~="ui-editor-table-overlay"][hidden] {
1190
- display: none;
984
+ .selector .glyph {
985
+ opacity: 1;
986
+ transform: none;
987
+ }
988
+ }
989
+ .cell-menu {
990
+ width: 24px;
991
+ height: 24px;
992
+ border-radius: var(--ui-radius-sm);
993
+ background: color-mix(in srgb, var(--ui-surface-muted) 78%, transparent);
994
+ }
995
+ .cell-menu {
996
+ --_ui-default-icon-size: 15px;
997
+ --_ui-default-icon-stroke-width: 2;
998
+ }
999
+ .drop-indicator {
1000
+ position: absolute;
1001
+ z-index: 3;
1002
+ background: var(--ui-accent-solid);
1003
+ box-shadow: 0 0 0 var(--ui-border-width) var(--ui-surface);
1004
+ pointer-events: none;
1005
+ }
1006
+ .drop-indicator.row {
1007
+ left: 0;
1008
+ width: 100%;
1009
+ height: var(--ui-accent-line-width);
1010
+ }
1011
+ .drop-indicator.column {
1012
+ top: 0;
1013
+ width: var(--ui-accent-line-width);
1014
+ height: 100%;
1015
+ }
1016
+ .drop-indicator[hidden] {
1017
+ display: none;
1018
+ }
1019
+ :scope:where(:scope):is([hidden]) {
1020
+ display: none;
1021
+ }
1191
1022
  }
1192
1023
  </style>