@threadlabs/looma 0.32.1 → 0.33.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 (366) hide show
  1. package/README.md +15 -0
  2. package/bin/looma-docs.mjs +3 -0
  3. package/components/shared/icons.js +1 -0
  4. package/components/shared/overlay.js +1 -1
  5. package/components/ui-action-bar/ui-action-bar.html +11 -11
  6. package/components/ui-affordance-scope/ui-affordance-scope.html +2 -2
  7. package/components/ui-avatar/ui-avatar.html +8 -8
  8. package/components/ui-avatar-group/ui-avatar-group.html +14 -14
  9. package/components/ui-avatar-group/ui-avatar-group.js +3 -2
  10. package/components/ui-badge/ui-badge.html +43 -43
  11. package/components/ui-breadcrumb-item/ui-breadcrumb-item.html +13 -13
  12. package/components/ui-breadcrumbs/ui-breadcrumbs.html +8 -8
  13. package/components/ui-button/ui-button.html +32 -29
  14. package/components/ui-callout/ui-callout.html +9 -9
  15. package/components/ui-card/ui-card.html +11 -11
  16. package/components/ui-checkbox/ui-checkbox.html +52 -33
  17. package/components/ui-cluster/ui-cluster.html +21 -21
  18. package/components/ui-color-picker/ui-color-picker.html +135 -0
  19. package/components/ui-color-picker/ui-color-picker.js +76 -0
  20. package/components/ui-combobox/ui-combobox.html +43 -43
  21. package/components/ui-container/ui-container.html +7 -7
  22. package/components/ui-context-menu/ui-context-menu.html +9 -9
  23. package/components/ui-cover/ui-cover.html +8 -8
  24. package/components/ui-description-item/ui-description-item.html +7 -7
  25. package/components/ui-description-list/ui-description-list.html +4 -4
  26. package/components/ui-dialog/ui-dialog.html +26 -26
  27. package/components/ui-disclosure/ui-disclosure.html +23 -23
  28. package/components/ui-editable/ui-editable.html +16 -16
  29. package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.html +9 -9
  30. package/components/ui-editor-link-form/ui-editor-link-form.html +1 -2
  31. package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +23 -23
  32. package/components/ui-editor-mention-menu-item/ui-editor-mention-menu-item.html +10 -10
  33. package/components/ui-editor-slash-menu/ui-editor-slash-menu.html +29 -29
  34. package/components/ui-editor-slash-menu-group/ui-editor-slash-menu-group.html +5 -5
  35. package/components/ui-editor-slash-menu-item/ui-editor-slash-menu-item.html +11 -11
  36. package/components/ui-editor-surface/ui-editor-surface.html +2 -2
  37. package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +25 -25
  38. package/components/ui-editor-table-overlay/ui-editor-table-overlay.html +13 -13
  39. package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +31 -31
  40. package/components/ui-editor-toolbar/ui-editor-toolbar.html +13 -13
  41. package/components/ui-floating-action-button/ui-floating-action-button.html +8 -8
  42. package/components/ui-form-field/ui-form-field.html +15 -15
  43. package/components/ui-form-field/ui-form-field.js +12 -4
  44. package/components/ui-grid/ui-grid.html +4 -4
  45. package/components/ui-icon/ui-icon.html +3 -2
  46. package/components/ui-icon-button/ui-icon-button.html +15 -14
  47. package/components/ui-image/ui-image.html +14 -14
  48. package/components/ui-input/ui-input.html +8 -8
  49. package/components/ui-input-group/ui-input-group.html +18 -18
  50. package/components/ui-list/ui-list.html +11 -11
  51. package/components/ui-list-item/ui-list-item.html +18 -18
  52. package/components/ui-listbox/ui-listbox.html +10 -10
  53. package/components/ui-menu/ui-menu.html +18 -17
  54. package/components/ui-menu-group/ui-menu-group.html +4 -4
  55. package/components/ui-menu-item/ui-menu-item.html +20 -20
  56. package/components/ui-meter/ui-meter.html +5 -5
  57. package/components/ui-nav-item/ui-nav-item.html +20 -20
  58. package/components/ui-page-header/ui-page-header.html +18 -17
  59. package/components/ui-popover/ui-popover.html +8 -8
  60. package/components/ui-radio/ui-radio.html +25 -17
  61. package/components/ui-radio-group/ui-radio-group.html +10 -10
  62. package/components/ui-reel/ui-reel.html +5 -5
  63. package/components/ui-scroll-area/ui-scroll-area.html +10 -10
  64. package/components/ui-search-result-row/ui-search-result-row.html +19 -19
  65. package/components/ui-search-shell/ui-search-shell.html +22 -22
  66. package/components/ui-section/ui-section.html +24 -23
  67. package/components/ui-select/ui-select.html +10 -10
  68. package/components/ui-separator/ui-separator.html +2 -2
  69. package/components/ui-sidebar/ui-sidebar.html +8 -8
  70. package/components/ui-spinner/ui-spinner.html +6 -6
  71. package/components/ui-stack/ui-stack.html +12 -12
  72. package/components/ui-status-message/ui-status-message.html +17 -17
  73. package/components/ui-swatch/ui-swatch.html +2 -2
  74. package/components/ui-switch/ui-switch.html +36 -26
  75. package/components/ui-switcher/ui-switcher.html +7 -7
  76. package/components/ui-table/ui-table.html +6 -6
  77. package/components/ui-tabs/ui-tabs.html +16 -15
  78. package/components/ui-text/ui-text.html +3 -2
  79. package/components/ui-textarea/ui-textarea.html +10 -10
  80. package/components/ui-toast/ui-toast.html +9 -9
  81. package/components/ui-toast-region/ui-toast-region.html +12 -12
  82. package/components/ui-tooltip/ui-tooltip.html +15 -15
  83. package/components/ui-top-bar/ui-top-bar.html +11 -11
  84. package/components/ui-tree/ui-tree.html +5 -5
  85. package/components/ui-tree-item/ui-tree-item.html +36 -36
  86. package/dist/index.js +46 -45
  87. package/docs/README.md +116 -0
  88. package/docs/card.html +63 -0
  89. package/docs/card.js +32 -0
  90. package/docs/catalog-view.js +18 -0
  91. package/docs/catalog-view.mjs +11 -0
  92. package/docs/catalog.json +22974 -0
  93. package/docs/catalog.mjs +131 -0
  94. package/docs/cli.mjs +26 -0
  95. package/docs/commands.mjs +94 -0
  96. package/docs/customizer-render.mjs +40 -0
  97. package/docs/customizer.js +118 -0
  98. package/docs/documentation.css +8 -0
  99. package/docs/examples/ui-action-bar/examples/01-form-footer.behavior.js +7 -0
  100. package/docs/examples/ui-button/examples/08-loading.behavior.js +21 -0
  101. package/docs/examples/ui-checkbox/examples/02-checked-indeterminate-and-disabled.behavior.js +30 -0
  102. package/docs/examples/ui-combobox/examples/06-selected-values.behavior.js +11 -0
  103. package/docs/examples/ui-search-shell/examples/02-label-dismissible-status-and-footer.behavior.js +34 -0
  104. package/docs/examples/ui-toast/examples/01-authored.behavior.js +15 -0
  105. package/docs/examples/ui-toast/examples/02-danger.behavior.js +2 -0
  106. package/docs/examples/ui-tree/examples/03-max-depth-2-and-hover-expand-delay-300.behavior.js +30 -0
  107. package/docs/examples/ui-tree/examples/06-move-without-dragging.behavior.js +2 -0
  108. package/docs/examples/ui-tree/examples/07-multiple-selection.behavior.js +16 -0
  109. package/docs/examples/ui-tree-item/examples/02-container.behavior.js +1 -0
  110. package/docs/index.d.ts +54 -0
  111. package/docs/index.mjs +4 -0
  112. package/docs/local-server.mjs +68 -0
  113. package/docs/preview.js +20 -0
  114. package/docs/reference.html +1 -0
  115. package/docs/reference.js +36 -0
  116. package/docs/render.mjs +84 -0
  117. package/docs/site.mjs +198 -0
  118. package/docs/store.mjs +92 -0
  119. package/docs/theme.mjs +100 -0
  120. package/docs/workspace.mjs +32 -0
  121. package/package.json +28 -3
  122. package/styles/ui-action-bar.css +11 -11
  123. package/styles/ui-affordance-scope.css +2 -2
  124. package/styles/ui-avatar-group.css +14 -14
  125. package/styles/ui-avatar.css +8 -8
  126. package/styles/ui-badge.css +41 -41
  127. package/styles/ui-breadcrumb-item.css +13 -13
  128. package/styles/ui-breadcrumbs.css +8 -8
  129. package/styles/ui-button.css +30 -28
  130. package/styles/ui-callout.css +9 -9
  131. package/styles/ui-card.css +11 -11
  132. package/styles/ui-checkbox.css +52 -33
  133. package/styles/ui-cluster.css +21 -21
  134. package/styles/ui-color-picker.css +120 -0
  135. package/styles/ui-combobox.css +86 -86
  136. package/styles/ui-container.css +7 -7
  137. package/styles/ui-context-menu.css +9 -9
  138. package/styles/ui-cover.css +8 -8
  139. package/styles/ui-description-item.css +7 -7
  140. package/styles/ui-description-list.css +4 -4
  141. package/styles/ui-dialog.css +52 -52
  142. package/styles/ui-disclosure.css +23 -23
  143. package/styles/ui-editable.css +16 -16
  144. package/styles/ui-editor-insert-table-grid.css +9 -9
  145. package/styles/ui-editor-mention-menu-item.css +10 -10
  146. package/styles/ui-editor-mention-menu.css +23 -23
  147. package/styles/ui-editor-slash-menu-group.css +5 -5
  148. package/styles/ui-editor-slash-menu-item.css +11 -11
  149. package/styles/ui-editor-slash-menu.css +29 -29
  150. package/styles/ui-editor-surface.css +2 -2
  151. package/styles/ui-editor-table-context-menu.css +25 -25
  152. package/styles/ui-editor-table-overlay.css +13 -13
  153. package/styles/ui-editor-table-toolbar.css +31 -31
  154. package/styles/ui-editor-toolbar.css +13 -13
  155. package/styles/ui-floating-action-button.css +8 -8
  156. package/styles/ui-form-field.css +13 -13
  157. package/styles/ui-grid.css +4 -4
  158. package/styles/ui-icon-button.css +13 -13
  159. package/styles/ui-icon.css +2 -2
  160. package/styles/ui-image.css +14 -14
  161. package/styles/ui-input-group.css +18 -18
  162. package/styles/ui-input.css +8 -8
  163. package/styles/ui-list-item.css +18 -18
  164. package/styles/ui-list.css +11 -11
  165. package/styles/ui-listbox.css +20 -20
  166. package/styles/ui-menu-group.css +4 -4
  167. package/styles/ui-menu-item.css +20 -20
  168. package/styles/ui-menu.css +16 -16
  169. package/styles/ui-meter.css +5 -5
  170. package/styles/ui-nav-item.css +20 -20
  171. package/styles/ui-page-header.css +18 -17
  172. package/styles/ui-popover.css +8 -8
  173. package/styles/ui-radio-group.css +10 -10
  174. package/styles/ui-radio.css +26 -18
  175. package/styles/ui-reel.css +5 -5
  176. package/styles/ui-scroll-area.css +10 -10
  177. package/styles/ui-search-result-row.css +19 -19
  178. package/styles/ui-search-shell.css +22 -22
  179. package/styles/ui-section.css +24 -23
  180. package/styles/ui-select.css +10 -10
  181. package/styles/ui-separator.css +2 -2
  182. package/styles/ui-sidebar.css +8 -8
  183. package/styles/ui-spinner.css +6 -6
  184. package/styles/ui-stack.css +12 -12
  185. package/styles/ui-status-message.css +17 -17
  186. package/styles/ui-swatch.css +2 -2
  187. package/styles/ui-switch.css +36 -28
  188. package/styles/ui-switcher.css +7 -7
  189. package/styles/ui-table.css +6 -6
  190. package/styles/ui-tabs.css +11 -11
  191. package/styles/ui-text.css +3 -2
  192. package/styles/ui-textarea.css +10 -10
  193. package/styles/ui-toast-region.css +24 -24
  194. package/styles/ui-toast.css +18 -18
  195. package/styles/ui-tooltip.css +15 -15
  196. package/styles/ui-top-bar.css +11 -11
  197. package/styles/ui-tree-item.css +71 -71
  198. package/styles/ui-tree.css +5 -5
  199. package/theme-system.css +80 -0
  200. package/tokens.css +14 -3
  201. package/vanilla/UiColorPicker.d.ts +30 -0
  202. package/vanilla/UiColorPicker.js +77 -0
  203. package/vanilla/UiIcon.js +1 -1
  204. package/vanilla/index.js +1 -0
  205. package/vue/UiActionBar.vue +11 -11
  206. package/vue/UiAffordanceScope.vue +2 -2
  207. package/vue/UiAvatar.vue +8 -8
  208. package/vue/UiAvatarGroup.vue +14 -14
  209. package/vue/UiBadge.vue +43 -42
  210. package/vue/UiBreadcrumbItem.vue +13 -13
  211. package/vue/UiBreadcrumbs.vue +8 -8
  212. package/vue/UiButton.vue +34 -29
  213. package/vue/UiCallout.vue +9 -9
  214. package/vue/UiCard.vue +11 -11
  215. package/vue/UiCheckbox.vue +57 -34
  216. package/vue/UiCluster.vue +21 -21
  217. package/vue/UiColorPicker.d.ts +65 -0
  218. package/vue/UiColorPicker.js +2 -0
  219. package/vue/UiColorPicker.vue +422 -0
  220. package/vue/UiCombobox.vue +86 -86
  221. package/vue/UiContainer.vue +7 -7
  222. package/vue/UiContextMenu.vue +9 -9
  223. package/vue/UiCover.vue +8 -8
  224. package/vue/UiDescriptionItem.vue +7 -7
  225. package/vue/UiDescriptionList.vue +4 -4
  226. package/vue/UiDialog.vue +52 -52
  227. package/vue/UiDisclosure.vue +23 -23
  228. package/vue/UiEditable.vue +16 -16
  229. package/vue/UiEditorInsertTableGrid.vue +9 -9
  230. package/vue/UiEditorMentionMenu.vue +23 -23
  231. package/vue/UiEditorMentionMenuItem.vue +10 -10
  232. package/vue/UiEditorSlashMenu.vue +29 -29
  233. package/vue/UiEditorSlashMenuGroup.vue +5 -5
  234. package/vue/UiEditorSlashMenuItem.vue +11 -11
  235. package/vue/UiEditorSurface.vue +2 -2
  236. package/vue/UiEditorTableContextMenu.vue +25 -25
  237. package/vue/UiEditorTableOverlay.vue +13 -13
  238. package/vue/UiEditorTableToolbar.vue +31 -31
  239. package/vue/UiEditorToolbar.vue +13 -13
  240. package/vue/UiFloatingActionButton.vue +8 -8
  241. package/vue/UiFormField.vue +14 -14
  242. package/vue/UiGrid.vue +4 -4
  243. package/vue/UiIcon.vue +6 -2
  244. package/vue/UiIconButton.vue +14 -14
  245. package/vue/UiImage.vue +14 -14
  246. package/vue/UiInput.vue +9 -8
  247. package/vue/UiInputGroup.vue +18 -18
  248. package/vue/UiList.vue +11 -11
  249. package/vue/UiListItem.vue +18 -18
  250. package/vue/UiListbox.vue +20 -20
  251. package/vue/UiMenu.vue +16 -16
  252. package/vue/UiMenuGroup.vue +4 -4
  253. package/vue/UiMenuItem.vue +20 -20
  254. package/vue/UiMeter.vue +5 -5
  255. package/vue/UiNavItem.vue +20 -20
  256. package/vue/UiPageHeader.vue +18 -17
  257. package/vue/UiPopover.vue +8 -8
  258. package/vue/UiRadio.vue +28 -17
  259. package/vue/UiRadioGroup.vue +10 -10
  260. package/vue/UiReel.vue +5 -5
  261. package/vue/UiScrollArea.vue +10 -10
  262. package/vue/UiSearchResultRow.vue +19 -19
  263. package/vue/UiSearchShell.vue +22 -22
  264. package/vue/UiSection.vue +24 -23
  265. package/vue/UiSelect.vue +11 -10
  266. package/vue/UiSeparator.vue +2 -2
  267. package/vue/UiSidebar.vue +8 -8
  268. package/vue/UiSpinner.vue +6 -6
  269. package/vue/UiStack.vue +12 -12
  270. package/vue/UiStatusMessage.vue +17 -17
  271. package/vue/UiSwatch.vue +2 -2
  272. package/vue/UiSwitch.vue +38 -25
  273. package/vue/UiSwitcher.vue +7 -7
  274. package/vue/UiTable.vue +6 -6
  275. package/vue/UiTabs.vue +13 -13
  276. package/vue/UiText.vue +3 -2
  277. package/vue/UiTextarea.vue +10 -10
  278. package/vue/UiToast.vue +18 -18
  279. package/vue/UiToastRegion.vue +24 -24
  280. package/vue/UiTooltip.vue +15 -15
  281. package/vue/UiTopBar.vue +11 -11
  282. package/vue/UiTree.vue +5 -5
  283. package/vue/UiTreeItem.vue +73 -71
  284. package/vue/chunks/UiActionBar.js +1 -1
  285. package/vue/chunks/UiAffordanceScope.js +1 -1
  286. package/vue/chunks/UiAvatar.js +1 -1
  287. package/vue/chunks/UiAvatarGroup.js +1 -1
  288. package/vue/chunks/UiBadge.js +2 -2
  289. package/vue/chunks/UiBreadcrumbItem.js +1 -1
  290. package/vue/chunks/UiBreadcrumbs.js +1 -1
  291. package/vue/chunks/UiButton.js +2 -2
  292. package/vue/chunks/UiCallout.js +1 -1
  293. package/vue/chunks/UiCard.js +1 -1
  294. package/vue/chunks/UiCheckbox.js +1 -1
  295. package/vue/chunks/UiCluster.js +1 -1
  296. package/vue/chunks/UiColorPicker.js +326 -0
  297. package/vue/chunks/UiCombobox.js +1 -1
  298. package/vue/chunks/UiContainer.js +1 -1
  299. package/vue/chunks/UiContextMenu.js +1 -1
  300. package/vue/chunks/UiCover.js +1 -1
  301. package/vue/chunks/UiDescriptionItem.js +1 -1
  302. package/vue/chunks/UiDescriptionList.js +1 -1
  303. package/vue/chunks/UiDialog.js +1 -1
  304. package/vue/chunks/UiDisclosure.js +1 -1
  305. package/vue/chunks/UiEditable.js +1 -1
  306. package/vue/chunks/UiEditorImageToolbar.js +1 -1
  307. package/vue/chunks/UiEditorInsertTableGrid.js +1 -1
  308. package/vue/chunks/UiEditorLinkForm.js +1 -1
  309. package/vue/chunks/UiEditorMentionMenu.js +1 -1
  310. package/vue/chunks/UiEditorMentionMenuItem.js +1 -1
  311. package/vue/chunks/UiEditorSlashMenu.js +1 -1
  312. package/vue/chunks/UiEditorSlashMenuGroup.js +1 -1
  313. package/vue/chunks/UiEditorSlashMenuItem.js +1 -1
  314. package/vue/chunks/UiEditorSurface.js +1 -1
  315. package/vue/chunks/UiEditorTableContextMenu.js +1 -1
  316. package/vue/chunks/UiEditorTableOverlay.js +1 -1
  317. package/vue/chunks/UiEditorTableToolbar.js +1 -1
  318. package/vue/chunks/UiEditorToolbar.js +1 -1
  319. package/vue/chunks/UiFloatingActionButton.js +1 -1
  320. package/vue/chunks/UiFormField.js +2 -2
  321. package/vue/chunks/UiGrid.js +1 -1
  322. package/vue/chunks/UiIcon.js +5 -1
  323. package/vue/chunks/UiIconButton.js +2 -2
  324. package/vue/chunks/UiImage.js +1 -1
  325. package/vue/chunks/UiInput.js +1 -1
  326. package/vue/chunks/UiInputGroup.js +1 -1
  327. package/vue/chunks/UiList.js +1 -1
  328. package/vue/chunks/UiListItem.js +1 -1
  329. package/vue/chunks/UiListbox.js +1 -1
  330. package/vue/chunks/UiMenu.js +1 -1
  331. package/vue/chunks/UiMenuGroup.js +1 -1
  332. package/vue/chunks/UiMenuItem.js +1 -1
  333. package/vue/chunks/UiMeter.js +1 -1
  334. package/vue/chunks/UiNavItem.js +1 -1
  335. package/vue/chunks/UiPageHeader.js +1 -1
  336. package/vue/chunks/UiPopover.js +1 -1
  337. package/vue/chunks/UiRadio.js +1 -1
  338. package/vue/chunks/UiRadioGroup.js +1 -1
  339. package/vue/chunks/UiReel.js +1 -1
  340. package/vue/chunks/UiScrollArea.js +1 -1
  341. package/vue/chunks/UiSearchResultRow.js +1 -1
  342. package/vue/chunks/UiSearchShell.js +1 -1
  343. package/vue/chunks/UiSection.js +1 -1
  344. package/vue/chunks/UiSelect.js +1 -1
  345. package/vue/chunks/UiSeparator.js +1 -1
  346. package/vue/chunks/UiSidebar.js +1 -1
  347. package/vue/chunks/UiSpinner.js +1 -1
  348. package/vue/chunks/UiStack.js +1 -1
  349. package/vue/chunks/UiStatusMessage.js +1 -1
  350. package/vue/chunks/UiSwatch.js +1 -1
  351. package/vue/chunks/UiSwitch.js +1 -1
  352. package/vue/chunks/UiSwitcher.js +1 -1
  353. package/vue/chunks/UiTable.js +1 -1
  354. package/vue/chunks/UiTabs.js +3 -3
  355. package/vue/chunks/UiText.js +1 -1
  356. package/vue/chunks/UiTextarea.js +1 -1
  357. package/vue/chunks/UiToast.js +1 -1
  358. package/vue/chunks/UiToastRegion.js +1 -1
  359. package/vue/chunks/UiTooltip.js +1 -1
  360. package/vue/chunks/UiTopBar.js +1 -1
  361. package/vue/chunks/UiTree.js +1 -1
  362. package/vue/chunks/UiTreeItem.js +1 -1
  363. package/vue/components.css +1857 -1654
  364. package/vue/editor/index.js +28 -11
  365. package/vue/index.d.ts +1 -0
  366. package/vue/index.js +3 -2
@@ -593,7 +593,7 @@ function createAnchoredSurface$1(surface, options = {}) {
593
593
  });
594
594
  };
595
595
  surface.style.position = "fixed";
596
- surface.style.margin = "0";
596
+ surface.style.setProperty("margin", "0", "important");
597
597
  const presentation = createViewportSurface$1(surface, {
598
598
  position,
599
599
  bare: options.bare
@@ -4931,7 +4931,7 @@ function createAnchoredSurface(surface, options = {}) {
4931
4931
  });
4932
4932
  };
4933
4933
  surface.style.position = "fixed";
4934
- surface.style.margin = "0";
4934
+ surface.style.setProperty("margin", "0", "important");
4935
4935
  const presentation = createViewportSurface(surface, {
4936
4936
  position,
4937
4937
  bare: options.bare
@@ -5473,9 +5473,13 @@ function connect$9(host) {
5473
5473
  };
5474
5474
  const wire = () => {
5475
5475
  const label = element.querySelector("[slot=\"label\"], label");
5476
- const input = element.querySelector("input, textarea, select");
5477
- const help = element.querySelector(":scope > .help > *, [slot=\"help\"]");
5478
- const error = element.querySelector(":scope > .error > *, [slot=\"error\"], [role=\"alert\"]");
5476
+ const selector = "[data-ui-field-control], input:not([type=hidden]), textarea, select";
5477
+ const target = label?.getAttribute("for") ? element.ownerDocument.getElementById(label.getAttribute("for")) : null;
5478
+ const input = (target && element.contains(target) ? target.matches(selector) ? target : target.querySelector(selector) : null) ?? element.querySelector(selector);
5479
+ const helpRegion = element.querySelector(":scope > .help");
5480
+ const help = element.querySelector(":scope > .help > *, [slot=\"help\"]") ?? (helpRegion?.textContent.trim() ? helpRegion : null);
5481
+ const errorRegion = element.querySelector(":scope > .error");
5482
+ const error = element.querySelector(":scope > .error > *, [slot=\"error\"], [role=\"alert\"]") ?? (errorRegion?.textContent.trim() ? errorRegion : null);
5479
5483
  if (input !== activeInput) {
5480
5484
  removeOwned(activeInput);
5481
5485
  activeInput = input;
@@ -5484,7 +5488,7 @@ function connect$9(host) {
5484
5488
  if (!input) return;
5485
5489
  if (DEV) warnOnce(warned, fieldProblems(label, input), element);
5486
5490
  if (!input.id) input.id = id("form-field-input");
5487
- if (label && !label.getAttribute("for")) label.setAttribute("for", input.id);
5491
+ if (label && (!label.getAttribute("for") || target && target !== input && target.contains(input))) label.setAttribute("for", input.id);
5488
5492
  const external = descriptionIds(input).filter((value) => !owned.has(value));
5489
5493
  const described = [];
5490
5494
  if (help) {
@@ -5500,6 +5504,7 @@ function connect$9(host) {
5500
5504
  if (next && input.getAttribute("aria-describedby") !== next) input.setAttribute("aria-describedby", next);
5501
5505
  else if (!next && input.hasAttribute("aria-describedby")) input.removeAttribute("aria-describedby");
5502
5506
  input.disabled = Boolean(host.props.disabled.value);
5507
+ if (input.matches("[data-ui-field-control]")) for (const value of element.querySelectorAll("[data-ui-field-value]")) value.disabled = input.disabled;
5503
5508
  input.required = Boolean(host.props.required.value);
5504
5509
  input.setAttribute("aria-invalid", String(Boolean(host.props.invalid.value)));
5505
5510
  };
@@ -6671,6 +6676,10 @@ function createUiIcon(options = {}, html) {
6671
6676
  "tag": "path",
6672
6677
  "d": "M3 9h18"
6673
6678
  }],
6679
+ "paperclip": [{
6680
+ "tag": "path",
6681
+ "d": "m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551"
6682
+ }],
6674
6683
  "pencil": [{
6675
6684
  "tag": "path",
6676
6685
  "d": "M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"
@@ -16221,8 +16230,10 @@ var LoomaEditor = defineComponent({
16221
16230
  style: mobileToolbarStyle.value,
16222
16231
  role: "toolbar",
16223
16232
  "aria-label": mobileToolbarMode.value === "table" ? "Table editing" : "Text formatting"
16224
- }, mobileToolbarMode.value === "table" ? [h("button", {
16225
- class: "looma-editor__mobile-toolbar-back",
16233
+ }, mobileToolbarMode.value === "table" ? [h(Button, {
16234
+ size: "sm",
16235
+ variant: "ghost",
16236
+ tone: "neutral",
16226
16237
  type: "button",
16227
16238
  "aria-label": "Formatting tools",
16228
16239
  onClick: () => {
@@ -16230,7 +16241,10 @@ var LoomaEditor = defineComponent({
16230
16241
  editor.value?.commands.focus();
16231
16242
  nextTick(updateMobileViewport);
16232
16243
  }
16233
- }, [loomaIcon("chevron-left"), h("span", "Formatting")]), h(EditorTableToolbar, tableProps)] : [renderToolbar(instance)]) : null,
16244
+ }, {
16245
+ start: () => loomaIcon("chevron-left"),
16246
+ default: () => "Formatting"
16247
+ }), h(EditorTableToolbar, tableProps)] : [renderToolbar(instance)]) : null,
16234
16248
  h("input", {
16235
16249
  ref: fileInput,
16236
16250
  class: "looma-editor__file-input",
@@ -16268,13 +16282,16 @@ var LoomaEditor = defineComponent({
16268
16282
  uploadState.value.failed ? h("div", {
16269
16283
  class: "looma-editor__upload-error",
16270
16284
  role: "alert"
16271
- }, [h("span", "Couldn’t upload image."), h("button", {
16285
+ }, [h("span", "Couldn’t upload image."), h(Button, {
16286
+ size: "sm",
16287
+ variant: "ghost",
16288
+ tone: "neutral",
16272
16289
  type: "button",
16273
16290
  disabled: uploadState.value.uploading,
16274
16291
  onClick: () => {
16275
16292
  uploads?.retry();
16276
16293
  }
16277
- }, uploadState.value.uploading ? "Retrying…" : "Retry")]) : null,
16294
+ }, () => uploadState.value.uploading ? "Retrying…" : "Retry")]) : null,
16278
16295
  dragOver.value ? h("div", {
16279
16296
  class: "looma-editor__drop-overlay",
16280
16297
  "aria-hidden": "true"
package/vue/index.d.ts CHANGED
@@ -10,6 +10,7 @@ export { default as Callout } from "./UiCallout.js";
10
10
  export { default as Card } from "./UiCard.js";
11
11
  export { default as Checkbox } from "./UiCheckbox.js";
12
12
  export { default as Cluster } from "./UiCluster.js";
13
+ export { default as ColorPicker } from "./UiColorPicker.js";
13
14
  export { default as Combobox } from "./UiCombobox.js";
14
15
  export { default as Container } from "./UiContainer.js";
15
16
  export { default as ContextMenu } from "./UiContextMenu.js";
package/vue/index.js CHANGED
@@ -12,6 +12,8 @@ import { t as UiCallout_default } from "./chunks/UiCallout.js";
12
12
  import { t as UiCard_default } from "./chunks/UiCard.js";
13
13
  import { t as UiCheckbox_default } from "./chunks/UiCheckbox.js";
14
14
  import { t as UiCluster_default } from "./chunks/UiCluster.js";
15
+ import { t as UiInput_default } from "./chunks/UiInput.js";
16
+ import { t as UiColorPicker_default } from "./chunks/UiColorPicker.js";
15
17
  import { t as UiTooltip_default } from "./chunks/UiTooltip.js";
16
18
  import { t as UiCombobox_default } from "./chunks/UiCombobox.js";
17
19
  import { t as UiContainer_default } from "./chunks/UiContainer.js";
@@ -26,7 +28,6 @@ import { t as UiEditable_default } from "./chunks/UiEditable.js";
26
28
  import { t as UiMenu_default } from "./chunks/UiMenu.js";
27
29
  import { t as UiMenuItem_default } from "./chunks/UiMenuItem.js";
28
30
  import { t as UiEditorBlockActions_default } from "./chunks/UiEditorBlockActions.js";
29
- import { t as UiInput_default } from "./chunks/UiInput.js";
30
31
  import { t as UiRadioGroup_default } from "./chunks/UiRadioGroup.js";
31
32
  import { t as UiStack_default } from "./chunks/UiStack.js";
32
33
  import { t as UiSwatch_default } from "./chunks/UiSwatch.js";
@@ -82,4 +83,4 @@ import { t as UiTopBar_default } from "./chunks/UiTopBar.js";
82
83
  import { t as UiTree_default } from "./chunks/UiTree.js";
83
84
  import { t as UiTreeItem_default } from "./chunks/UiTreeItem.js";
84
85
  import { trackInputModality } from "@threadlabs/looma/components/shared/input-modality.js";
85
- export { UiActionBar_default as ActionBar, UiAffordanceScope_default as AffordanceScope, UiAvatar_default as Avatar, UiAvatarGroup_default as AvatarGroup, UiBadge_default as Badge, UiBreadcrumbItem_default as BreadcrumbItem, UiBreadcrumbs_default as Breadcrumbs, UiButton_default as Button, UiCallout_default as Callout, UiCard_default as Card, UiCheckbox_default as Checkbox, UiCluster_default as Cluster, UiCombobox_default as Combobox, UiContainer_default as Container, UiContextMenu_default as ContextMenu, UiCover_default as Cover, UiDescriptionItem_default as DescriptionItem, UiDescriptionList_default as DescriptionList, UiDialog_default as Dialog, UiDisclosure_default as Disclosure, UiEditable_default as Editable, UiEditorBlockActions_default as EditorBlockActions, UiEditorChipEditor_default as EditorChipEditor, UiEditorCodeLanguage_default as EditorCodeLanguage, UiEditorFootnoteEditor_default as EditorFootnoteEditor, UiEditorImageToolbar_default as EditorImageToolbar, UiEditorInsertTableGrid_default as EditorInsertTableGrid, UiEditorLinkCard_default as EditorLinkCard, UiEditorLinkForm_default as EditorLinkForm, UiEditorMentionMenu_default as EditorMentionMenu, UiEditorMentionMenuItem_default as EditorMentionMenuItem, UiEditorSlashMenu_default as EditorSlashMenu, UiEditorSlashMenuGroup_default as EditorSlashMenuGroup, UiEditorSlashMenuItem_default as EditorSlashMenuItem, UiEditorSurface_default as EditorSurface, UiEditorTableContextMenu_default as EditorTableContextMenu, UiEditorTableOverlay_default as EditorTableOverlay, UiEditorTableToolbar_default as EditorTableToolbar, UiEditorToolbar_default as EditorToolbar, UiFloatingActionButton_default as FloatingActionButton, UiFormField_default as FormField, UiGrid_default as Grid, UiIcon_default as Icon, UiIconButton_default as IconButton, UiImage_default as Image, UiInput_default as Input, UiInputGroup_default as InputGroup, UiList_default as List, UiListItem_default as ListItem, UiListbox_default as Listbox, UiMenu_default as Menu, UiMenuGroup_default as MenuGroup, UiMenuItem_default as MenuItem, UiMeter_default as Meter, UiNavItem_default as NavItem, UiPageHeader_default as PageHeader, UiPopover_default as Popover, UiRadio_default as Radio, UiRadioGroup_default as RadioGroup, UiReel_default as Reel, UiScrollArea_default as ScrollArea, UiSearchResultRow_default as SearchResultRow, UiSearchShell_default as SearchShell, UiSection_default as Section, UiSelect_default as Select, UiSeparator_default as Separator, UiSidebar_default as Sidebar, UiSpinner_default as Spinner, UiStack_default as Stack, UiStatusMessage_default as StatusMessage, UiSwatch_default as Swatch, UiSwitch_default as Switch, UiSwitcher_default as Switcher, UiTable_default as Table, UiTabs_default as Tabs, UiText_default as Text, UiTextarea_default as Textarea, UiToast_default as Toast, UiToastRegion_default as ToastRegion, UiTooltip_default as Tooltip, UiTopBar_default as TopBar, UiTree_default as Tree, UiTreeItem_default as TreeItem, trackInputModality };
86
+ export { UiActionBar_default as ActionBar, UiAffordanceScope_default as AffordanceScope, UiAvatar_default as Avatar, UiAvatarGroup_default as AvatarGroup, UiBadge_default as Badge, UiBreadcrumbItem_default as BreadcrumbItem, UiBreadcrumbs_default as Breadcrumbs, UiButton_default as Button, UiCallout_default as Callout, UiCard_default as Card, UiCheckbox_default as Checkbox, UiCluster_default as Cluster, UiColorPicker_default as ColorPicker, UiCombobox_default as Combobox, UiContainer_default as Container, UiContextMenu_default as ContextMenu, UiCover_default as Cover, UiDescriptionItem_default as DescriptionItem, UiDescriptionList_default as DescriptionList, UiDialog_default as Dialog, UiDisclosure_default as Disclosure, UiEditable_default as Editable, UiEditorBlockActions_default as EditorBlockActions, UiEditorChipEditor_default as EditorChipEditor, UiEditorCodeLanguage_default as EditorCodeLanguage, UiEditorFootnoteEditor_default as EditorFootnoteEditor, UiEditorImageToolbar_default as EditorImageToolbar, UiEditorInsertTableGrid_default as EditorInsertTableGrid, UiEditorLinkCard_default as EditorLinkCard, UiEditorLinkForm_default as EditorLinkForm, UiEditorMentionMenu_default as EditorMentionMenu, UiEditorMentionMenuItem_default as EditorMentionMenuItem, UiEditorSlashMenu_default as EditorSlashMenu, UiEditorSlashMenuGroup_default as EditorSlashMenuGroup, UiEditorSlashMenuItem_default as EditorSlashMenuItem, UiEditorSurface_default as EditorSurface, UiEditorTableContextMenu_default as EditorTableContextMenu, UiEditorTableOverlay_default as EditorTableOverlay, UiEditorTableToolbar_default as EditorTableToolbar, UiEditorToolbar_default as EditorToolbar, UiFloatingActionButton_default as FloatingActionButton, UiFormField_default as FormField, UiGrid_default as Grid, UiIcon_default as Icon, UiIconButton_default as IconButton, UiImage_default as Image, UiInput_default as Input, UiInputGroup_default as InputGroup, UiList_default as List, UiListItem_default as ListItem, UiListbox_default as Listbox, UiMenu_default as Menu, UiMenuGroup_default as MenuGroup, UiMenuItem_default as MenuItem, UiMeter_default as Meter, UiNavItem_default as NavItem, UiPageHeader_default as PageHeader, UiPopover_default as Popover, UiRadio_default as Radio, UiRadioGroup_default as RadioGroup, UiReel_default as Reel, UiScrollArea_default as ScrollArea, UiSearchResultRow_default as SearchResultRow, UiSearchShell_default as SearchShell, UiSection_default as Section, UiSelect_default as Select, UiSeparator_default as Separator, UiSidebar_default as Sidebar, UiSpinner_default as Spinner, UiStack_default as Stack, UiStatusMessage_default as StatusMessage, UiSwatch_default as Swatch, UiSwitch_default as Switch, UiSwitcher_default as Switcher, UiTable_default as Table, UiTabs_default as Tabs, UiText_default as Text, UiTextarea_default as Textarea, UiToast_default as Toast, UiToastRegion_default as ToastRegion, UiTooltip_default as Tooltip, UiTopBar_default as TopBar, UiTree_default as Tree, UiTreeItem_default as TreeItem, trackInputModality };