@threadlabs/looma 0.19.0 → 0.20.0

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 (508) hide show
  1. package/components/shared/trigger.js +9 -4
  2. package/components/ui-affordance-scope/ui-affordance-scope.html +1 -1
  3. package/components/ui-avatar/ui-avatar.html +2 -2
  4. package/components/ui-avatar-group/ui-avatar-group.html +1 -1
  5. package/components/ui-avatar-group/ui-avatar-group.js +1 -1
  6. package/components/ui-badge/ui-badge.html +3 -3
  7. package/components/ui-button/ui-button.html +7 -6
  8. package/components/ui-callout/ui-callout.html +1 -1
  9. package/components/ui-card/ui-card.html +5 -4
  10. package/components/ui-checkbox/ui-checkbox.html +6 -2
  11. package/components/ui-cluster/ui-cluster.html +4 -4
  12. package/components/ui-combobox/ui-combobox.html +257 -34
  13. package/components/ui-combobox/ui-combobox.js +21 -20
  14. package/components/ui-container/ui-container.html +2 -2
  15. package/components/ui-context-menu/ui-context-menu.html +17 -5
  16. package/components/ui-cover/ui-cover.html +1 -1
  17. package/components/ui-description-list/ui-description-list.html +3 -3
  18. package/components/ui-dialog/ui-dialog.html +14 -6
  19. package/components/ui-disclosure/ui-disclosure.html +14 -5
  20. package/components/ui-editable/ui-editable.html +15 -4
  21. package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +1 -1
  22. package/components/ui-editor-slash-menu/ui-editor-slash-menu.html +1 -1
  23. package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +26 -6
  24. package/components/ui-editor-table-overlay/ui-editor-table-overlay.html +90 -12
  25. package/components/ui-editor-table-overlay/ui-editor-table-overlay.js +5 -5
  26. package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +33 -7
  27. package/components/ui-grid/ui-grid.html +2 -2
  28. package/components/ui-icon-button/ui-icon-button.html +2 -2
  29. package/components/ui-input/ui-input.html +28 -6
  30. package/components/ui-list/ui-list.html +5 -4
  31. package/components/ui-list-item/ui-list-item.html +1 -1
  32. package/components/ui-listbox/ui-listbox.html +7 -1
  33. package/components/ui-menu/ui-menu.html +18 -5
  34. package/components/ui-menu-item/ui-menu-item.html +7 -2
  35. package/components/ui-meter/ui-meter.html +2 -2
  36. package/components/ui-nav-item/ui-nav-item.html +5 -4
  37. package/components/ui-page-header/ui-page-header.html +1 -1
  38. package/components/ui-popover/ui-popover.html +14 -5
  39. package/components/ui-radio/ui-radio.html +6 -2
  40. package/components/ui-radio-group/ui-radio-group.html +11 -3
  41. package/components/ui-reel/ui-reel.html +3 -3
  42. package/components/ui-scroll-area/ui-scroll-area.html +1 -1
  43. package/components/ui-search-shell/ui-search-shell.html +6 -2
  44. package/components/ui-section/ui-section.html +2 -2
  45. package/components/ui-select/ui-select.html +1 -1
  46. package/components/ui-separator/ui-separator.html +1 -1
  47. package/components/ui-sidebar/ui-sidebar.html +11 -4
  48. package/components/ui-spinner/ui-spinner.html +1 -1
  49. package/components/ui-stack/ui-stack.html +3 -3
  50. package/components/ui-status-message/ui-status-message.html +2 -2
  51. package/components/ui-switch/ui-switch.html +6 -2
  52. package/components/ui-switcher/ui-switcher.html +3 -3
  53. package/components/ui-table/ui-table.html +1 -1
  54. package/components/ui-tabs/ui-tabs.html +9 -4
  55. package/components/ui-text/ui-text.html +6 -6
  56. package/components/ui-textarea/ui-textarea.html +1 -1
  57. package/components/ui-toast/ui-toast.html +6 -2
  58. package/components/ui-toast-region/ui-toast-region.html +16 -4
  59. package/components/ui-tooltip/ui-tooltip.html +15 -6
  60. package/components/ui-tree/ui-tree.html +30 -7
  61. package/components/ui-tree-item/ui-tree-item.html +10 -6
  62. package/components/ui-tree-item/ui-tree-item.js +20 -3
  63. package/dist/index.js +1 -1
  64. package/editor/table-overlay.d.ts +1 -1
  65. package/package.json +3 -3
  66. package/styles/ui-action-bar.css +1 -1
  67. package/styles/ui-affordance-scope.css +1 -1
  68. package/styles/ui-avatar-group.css +1 -1
  69. package/styles/ui-avatar.css +1 -1
  70. package/styles/ui-badge.css +1 -1
  71. package/styles/ui-breadcrumb-item.css +1 -1
  72. package/styles/ui-breadcrumbs.css +1 -1
  73. package/styles/ui-button.css +1 -1
  74. package/styles/ui-callout.css +1 -1
  75. package/styles/ui-card.css +1 -1
  76. package/styles/ui-checkbox.css +1 -1
  77. package/styles/ui-cluster.css +1 -1
  78. package/styles/ui-combobox.css +1 -1
  79. package/styles/ui-container.css +1 -1
  80. package/styles/ui-context-menu.css +1 -1
  81. package/styles/ui-cover.css +1 -1
  82. package/styles/ui-description-item.css +1 -1
  83. package/styles/ui-description-list.css +1 -1
  84. package/styles/ui-dialog.css +1 -1
  85. package/styles/ui-disclosure.css +1 -1
  86. package/styles/ui-editable.css +1 -1
  87. package/styles/ui-editor-insert-table-grid.css +1 -1
  88. package/styles/ui-editor-mention-menu-item.css +1 -1
  89. package/styles/ui-editor-mention-menu.css +1 -1
  90. package/styles/ui-editor-slash-menu-group.css +1 -1
  91. package/styles/ui-editor-slash-menu-item.css +1 -1
  92. package/styles/ui-editor-slash-menu.css +1 -1
  93. package/styles/ui-editor-table-context-menu.css +1 -1
  94. package/styles/ui-editor-table-overlay.css +1 -1
  95. package/styles/ui-editor-table-toolbar.css +1 -1
  96. package/styles/ui-editor-toolbar.css +1 -1
  97. package/styles/ui-floating-action-button.css +1 -1
  98. package/styles/ui-form-field.css +1 -1
  99. package/styles/ui-grid.css +1 -1
  100. package/styles/ui-icon-button.css +1 -1
  101. package/styles/ui-icon.css +1 -1
  102. package/styles/ui-input-group.css +1 -1
  103. package/styles/ui-input.css +1 -1
  104. package/styles/ui-list-item.css +1 -1
  105. package/styles/ui-list.css +1 -1
  106. package/styles/ui-listbox.css +1 -1
  107. package/styles/ui-menu-group.css +1 -1
  108. package/styles/ui-menu-item.css +1 -1
  109. package/styles/ui-menu.css +1 -1
  110. package/styles/ui-meter.css +1 -1
  111. package/styles/ui-nav-item.css +1 -1
  112. package/styles/ui-page-header.css +1 -1
  113. package/styles/ui-popover.css +1 -1
  114. package/styles/ui-radio-group.css +1 -1
  115. package/styles/ui-radio.css +1 -1
  116. package/styles/ui-reel.css +1 -1
  117. package/styles/ui-scroll-area.css +1 -1
  118. package/styles/ui-search-result-row.css +1 -1
  119. package/styles/ui-search-shell.css +1 -1
  120. package/styles/ui-section.css +1 -1
  121. package/styles/ui-select.css +1 -1
  122. package/styles/ui-separator.css +1 -1
  123. package/styles/ui-sidebar.css +1 -1
  124. package/styles/ui-spinner.css +1 -1
  125. package/styles/ui-stack.css +1 -1
  126. package/styles/ui-status-message.css +1 -1
  127. package/styles/ui-switch.css +1 -1
  128. package/styles/ui-switcher.css +1 -1
  129. package/styles/ui-table.css +1 -1
  130. package/styles/ui-tabs.css +1 -1
  131. package/styles/ui-text.css +1 -1
  132. package/styles/ui-textarea.css +1 -1
  133. package/styles/ui-toast-region.css +1 -1
  134. package/styles/ui-toast.css +1 -1
  135. package/styles/ui-tooltip.css +1 -1
  136. package/styles/ui-top-bar.css +1 -1
  137. package/styles/ui-tree-item.css +6 -6
  138. package/styles/ui-tree.css +1 -1
  139. package/vanilla/UiActionBar.d.ts +1 -1
  140. package/vanilla/UiActionBar.js +5 -1
  141. package/vanilla/UiAffordanceScope.d.ts +1 -1
  142. package/vanilla/UiAffordanceScope.js +3 -2
  143. package/vanilla/UiAvatar.d.ts +1 -1
  144. package/vanilla/UiAvatar.js +4 -3
  145. package/vanilla/UiAvatarGroup.d.ts +1 -1
  146. package/vanilla/UiAvatarGroup.js +3 -2
  147. package/vanilla/UiBadge.d.ts +1 -1
  148. package/vanilla/UiBadge.js +2 -1
  149. package/vanilla/UiBreadcrumbItem.d.ts +1 -1
  150. package/vanilla/UiBreadcrumbItem.js +2 -1
  151. package/vanilla/UiBreadcrumbs.d.ts +1 -1
  152. package/vanilla/UiBreadcrumbs.js +4 -7
  153. package/vanilla/UiButton.d.ts +1 -1
  154. package/vanilla/UiButton.js +6 -4
  155. package/vanilla/UiCallout.d.ts +1 -1
  156. package/vanilla/UiCallout.js +3 -2
  157. package/vanilla/UiCard.d.ts +1 -1
  158. package/vanilla/UiCard.js +6 -2
  159. package/vanilla/UiCheckbox.d.ts +1 -1
  160. package/vanilla/UiCheckbox.js +4 -2
  161. package/vanilla/UiCluster.d.ts +1 -1
  162. package/vanilla/UiCluster.js +2 -1
  163. package/vanilla/UiCombobox.d.ts +3 -2
  164. package/vanilla/UiCombobox.js +8 -2
  165. package/vanilla/UiContainer.d.ts +1 -1
  166. package/vanilla/UiContainer.js +2 -1
  167. package/vanilla/UiContextMenu.d.ts +1 -1
  168. package/vanilla/UiContextMenu.js +3 -2
  169. package/vanilla/UiCover.d.ts +1 -1
  170. package/vanilla/UiCover.js +4 -5
  171. package/vanilla/UiDescriptionItem.d.ts +1 -1
  172. package/vanilla/UiDescriptionItem.js +4 -7
  173. package/vanilla/UiDescriptionList.d.ts +1 -1
  174. package/vanilla/UiDescriptionList.js +2 -1
  175. package/vanilla/UiDialog.d.ts +1 -1
  176. package/vanilla/UiDialog.js +4 -2
  177. package/vanilla/UiDisclosure.d.ts +1 -1
  178. package/vanilla/UiDisclosure.js +4 -2
  179. package/vanilla/UiEditable.d.ts +1 -1
  180. package/vanilla/UiEditable.js +2 -2
  181. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  182. package/vanilla/UiEditorInsertTableGrid.js +1 -1
  183. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  184. package/vanilla/UiEditorMentionMenu.js +5 -2
  185. package/vanilla/UiEditorMentionMenuItem.d.ts +1 -1
  186. package/vanilla/UiEditorMentionMenuItem.js +3 -1
  187. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  188. package/vanilla/UiEditorSlashMenu.js +6 -2
  189. package/vanilla/UiEditorSlashMenuGroup.d.ts +1 -1
  190. package/vanilla/UiEditorSlashMenuGroup.js +4 -7
  191. package/vanilla/UiEditorSlashMenuItem.d.ts +1 -1
  192. package/vanilla/UiEditorSlashMenuItem.js +2 -1
  193. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  194. package/vanilla/UiEditorTableContextMenu.js +2 -2
  195. package/vanilla/UiEditorTableOverlay.d.ts +12 -2
  196. package/vanilla/UiEditorTableOverlay.js +2 -2
  197. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  198. package/vanilla/UiEditorTableToolbar.js +2 -2
  199. package/vanilla/UiEditorToolbar.d.ts +1 -1
  200. package/vanilla/UiEditorToolbar.js +2 -1
  201. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  202. package/vanilla/UiFloatingActionButton.js +2 -1
  203. package/vanilla/UiFormField.d.ts +1 -1
  204. package/vanilla/UiFormField.js +6 -1
  205. package/vanilla/UiGrid.d.ts +1 -1
  206. package/vanilla/UiGrid.js +4 -3
  207. package/vanilla/UiIcon.d.ts +1 -1
  208. package/vanilla/UiIcon.js +1 -1
  209. package/vanilla/UiIconButton.d.ts +1 -1
  210. package/vanilla/UiIconButton.js +4 -3
  211. package/vanilla/UiInput.d.ts +5 -4
  212. package/vanilla/UiInput.js +16 -13
  213. package/vanilla/UiInputGroup.d.ts +1 -1
  214. package/vanilla/UiInputGroup.js +5 -1
  215. package/vanilla/UiList.d.ts +1 -1
  216. package/vanilla/UiList.js +4 -2
  217. package/vanilla/UiListItem.d.ts +1 -1
  218. package/vanilla/UiListItem.js +5 -1
  219. package/vanilla/UiListbox.d.ts +1 -1
  220. package/vanilla/UiListbox.js +3 -2
  221. package/vanilla/UiMenu.d.ts +1 -1
  222. package/vanilla/UiMenu.js +3 -2
  223. package/vanilla/UiMenuGroup.d.ts +1 -1
  224. package/vanilla/UiMenuGroup.js +2 -1
  225. package/vanilla/UiMenuItem.d.ts +1 -1
  226. package/vanilla/UiMenuItem.js +6 -2
  227. package/vanilla/UiMeter.d.ts +1 -1
  228. package/vanilla/UiMeter.js +2 -2
  229. package/vanilla/UiNavItem.d.ts +2 -2
  230. package/vanilla/UiNavItem.js +11 -5
  231. package/vanilla/UiPageHeader.d.ts +1 -1
  232. package/vanilla/UiPageHeader.js +8 -5
  233. package/vanilla/UiPopover.d.ts +1 -1
  234. package/vanilla/UiPopover.js +3 -2
  235. package/vanilla/UiRadio.d.ts +1 -1
  236. package/vanilla/UiRadio.js +4 -2
  237. package/vanilla/UiRadioGroup.d.ts +1 -1
  238. package/vanilla/UiRadioGroup.js +3 -2
  239. package/vanilla/UiReel.d.ts +1 -1
  240. package/vanilla/UiReel.js +2 -1
  241. package/vanilla/UiScrollArea.d.ts +1 -1
  242. package/vanilla/UiScrollArea.js +3 -2
  243. package/vanilla/UiSearchResultRow.d.ts +1 -1
  244. package/vanilla/UiSearchResultRow.js +6 -1
  245. package/vanilla/UiSearchShell.d.ts +1 -1
  246. package/vanilla/UiSearchShell.js +6 -2
  247. package/vanilla/UiSection.d.ts +1 -1
  248. package/vanilla/UiSection.js +5 -2
  249. package/vanilla/UiSelect.d.ts +1 -1
  250. package/vanilla/UiSelect.js +3 -2
  251. package/vanilla/UiSeparator.d.ts +1 -1
  252. package/vanilla/UiSeparator.js +3 -7
  253. package/vanilla/UiSidebar.d.ts +1 -1
  254. package/vanilla/UiSidebar.js +3 -2
  255. package/vanilla/UiSpinner.d.ts +1 -1
  256. package/vanilla/UiSpinner.js +2 -2
  257. package/vanilla/UiStack.d.ts +1 -1
  258. package/vanilla/UiStack.js +2 -1
  259. package/vanilla/UiStatusMessage.d.ts +1 -1
  260. package/vanilla/UiStatusMessage.js +4 -2
  261. package/vanilla/UiSwitch.d.ts +1 -1
  262. package/vanilla/UiSwitch.js +4 -2
  263. package/vanilla/UiSwitcher.d.ts +1 -1
  264. package/vanilla/UiSwitcher.js +3 -2
  265. package/vanilla/UiTable.d.ts +1 -1
  266. package/vanilla/UiTable.js +3 -2
  267. package/vanilla/UiTabs.d.ts +1 -1
  268. package/vanilla/UiTabs.js +4 -2
  269. package/vanilla/UiText.d.ts +1 -1
  270. package/vanilla/UiText.js +13 -2
  271. package/vanilla/UiTextarea.d.ts +1 -1
  272. package/vanilla/UiTextarea.js +3 -3
  273. package/vanilla/UiToast.d.ts +1 -1
  274. package/vanilla/UiToast.js +4 -2
  275. package/vanilla/UiToastRegion.d.ts +1 -1
  276. package/vanilla/UiToastRegion.js +3 -2
  277. package/vanilla/UiTooltip.d.ts +1 -1
  278. package/vanilla/UiTooltip.js +3 -2
  279. package/vanilla/UiTopBar.d.ts +1 -1
  280. package/vanilla/UiTopBar.js +5 -1
  281. package/vanilla/UiTree.d.ts +1 -1
  282. package/vanilla/UiTree.js +3 -2
  283. package/vanilla/UiTreeItem.d.ts +1 -1
  284. package/vanilla/UiTreeItem.js +8 -4
  285. package/vue/UiActionBar.vue +33 -2
  286. package/vue/UiAffordanceScope.d.ts +23 -8
  287. package/vue/UiAffordanceScope.vue +90 -17
  288. package/vue/UiAvatar.d.ts +77 -19
  289. package/vue/UiAvatar.vue +151 -31
  290. package/vue/UiAvatarGroup.d.ts +50 -13
  291. package/vue/UiAvatarGroup.vue +121 -23
  292. package/vue/UiBadge.d.ts +32 -10
  293. package/vue/UiBadge.vue +104 -17
  294. package/vue/UiBreadcrumbItem.d.ts +14 -6
  295. package/vue/UiBreadcrumbItem.vue +82 -15
  296. package/vue/UiBreadcrumbs.d.ts +14 -6
  297. package/vue/UiBreadcrumbs.vue +78 -10
  298. package/vue/UiButton.d.ts +122 -27
  299. package/vue/UiButton.vue +288 -64
  300. package/vue/UiCallout.d.ts +14 -6
  301. package/vue/UiCallout.vue +84 -16
  302. package/vue/UiCard.d.ts +41 -12
  303. package/vue/UiCard.vue +149 -25
  304. package/vue/UiCheckbox.d.ts +85 -28
  305. package/vue/UiCheckbox.vue +173 -43
  306. package/vue/UiCluster.d.ts +41 -7
  307. package/vue/UiCluster.vue +122 -13
  308. package/vue/UiCombobox.d.ts +303 -110
  309. package/vue/UiCombobox.vue +723 -412
  310. package/vue/UiContainer.d.ts +23 -5
  311. package/vue/UiContainer.vue +89 -9
  312. package/vue/UiContextMenu.d.ts +38 -23
  313. package/vue/UiContextMenu.vue +113 -38
  314. package/vue/UiCover.d.ts +14 -6
  315. package/vue/UiCover.vue +76 -12
  316. package/vue/UiDescriptionItem.d.ts +14 -6
  317. package/vue/UiDescriptionItem.vue +78 -11
  318. package/vue/UiDescriptionList.d.ts +32 -9
  319. package/vue/UiDescriptionList.vue +106 -16
  320. package/vue/UiDialog.d.ts +89 -30
  321. package/vue/UiDialog.vue +168 -38
  322. package/vue/UiDisclosure.d.ts +70 -27
  323. package/vue/UiDisclosure.vue +149 -36
  324. package/vue/UiEditable.d.ts +119 -41
  325. package/vue/UiEditable.vue +220 -62
  326. package/vue/UiEditorInsertTableGrid.d.ts +46 -17
  327. package/vue/UiEditorInsertTableGrid.vue +215 -40
  328. package/vue/UiEditorMentionMenu.d.ts +128 -41
  329. package/vue/UiEditorMentionMenu.vue +211 -37
  330. package/vue/UiEditorMentionMenuItem.d.ts +32 -10
  331. package/vue/UiEditorMentionMenuItem.vue +98 -17
  332. package/vue/UiEditorSlashMenu.d.ts +110 -37
  333. package/vue/UiEditorSlashMenu.vue +189 -31
  334. package/vue/UiEditorSlashMenuGroup.d.ts +14 -6
  335. package/vue/UiEditorSlashMenuGroup.vue +80 -12
  336. package/vue/UiEditorSlashMenuItem.d.ts +50 -14
  337. package/vue/UiEditorSlashMenuItem.vue +120 -23
  338. package/vue/UiEditorTableContextMenu.d.ts +64 -20
  339. package/vue/UiEditorTableContextMenu.vue +326 -91
  340. package/vue/UiEditorTableOverlay.d.ts +170 -44
  341. package/vue/UiEditorTableOverlay.vue +420 -149
  342. package/vue/UiEditorTableToolbar.d.ts +64 -20
  343. package/vue/UiEditorTableToolbar.vue +344 -107
  344. package/vue/UiEditorToolbar.d.ts +14 -6
  345. package/vue/UiEditorToolbar.vue +79 -15
  346. package/vue/UiFloatingActionButton.d.ts +32 -10
  347. package/vue/UiFloatingActionButton.vue +96 -18
  348. package/vue/UiFormField.d.ts +32 -10
  349. package/vue/UiFormField.vue +99 -19
  350. package/vue/UiGrid.d.ts +32 -6
  351. package/vue/UiGrid.vue +95 -11
  352. package/vue/UiIcon.d.ts +14 -6
  353. package/vue/UiIcon.vue +99 -14
  354. package/vue/UiIconButton.d.ts +77 -19
  355. package/vue/UiIconButton.vue +176 -39
  356. package/vue/UiInput.d.ts +50 -19
  357. package/vue/UiInput.vue +326 -33
  358. package/vue/UiInputGroup.d.ts +14 -6
  359. package/vue/UiInputGroup.vue +79 -15
  360. package/vue/UiList.d.ts +41 -12
  361. package/vue/UiList.vue +125 -22
  362. package/vue/UiListItem.d.ts +23 -8
  363. package/vue/UiListItem.vue +88 -16
  364. package/vue/UiListbox.d.ts +86 -27
  365. package/vue/UiListbox.vue +272 -64
  366. package/vue/UiMenu.d.ts +69 -33
  367. package/vue/UiMenu.vue +142 -38
  368. package/vue/UiMenuGroup.d.ts +14 -6
  369. package/vue/UiMenuGroup.vue +80 -11
  370. package/vue/UiMenuItem.d.ts +61 -25
  371. package/vue/UiMenuItem.vue +174 -45
  372. package/vue/UiMeter.d.ts +68 -18
  373. package/vue/UiMeter.vue +215 -41
  374. package/vue/UiNavItem.d.ts +50 -11
  375. package/vue/UiNavItem.vue +163 -29
  376. package/vue/UiPageHeader.d.ts +14 -6
  377. package/vue/UiPageHeader.vue +75 -12
  378. package/vue/UiPopover.d.ts +43 -21
  379. package/vue/UiPopover.vue +147 -27
  380. package/vue/UiRadio.d.ts +67 -24
  381. package/vue/UiRadio.vue +147 -36
  382. package/vue/UiRadioGroup.d.ts +79 -29
  383. package/vue/UiRadioGroup.vue +162 -41
  384. package/vue/UiReel.d.ts +32 -6
  385. package/vue/UiReel.vue +97 -11
  386. package/vue/UiScrollArea.d.ts +14 -6
  387. package/vue/UiScrollArea.vue +83 -14
  388. package/vue/UiSearchResultRow.d.ts +23 -8
  389. package/vue/UiSearchResultRow.vue +86 -16
  390. package/vue/UiSearchShell.d.ts +48 -19
  391. package/vue/UiSearchShell.vue +120 -26
  392. package/vue/UiSection.d.ts +32 -10
  393. package/vue/UiSection.vue +103 -17
  394. package/vue/UiSelect.d.ts +59 -17
  395. package/vue/UiSelect.vue +140 -29
  396. package/vue/UiSeparator.d.ts +14 -6
  397. package/vue/UiSeparator.vue +80 -9
  398. package/vue/UiSidebar.d.ts +95 -31
  399. package/vue/UiSidebar.vue +172 -39
  400. package/vue/UiSpinner.d.ts +23 -8
  401. package/vue/UiSpinner.vue +115 -24
  402. package/vue/UiStack.d.ts +32 -6
  403. package/vue/UiStack.vue +107 -11
  404. package/vue/UiStatusMessage.d.ts +32 -10
  405. package/vue/UiStatusMessage.vue +109 -19
  406. package/vue/UiSwitch.d.ts +67 -24
  407. package/vue/UiSwitch.vue +147 -36
  408. package/vue/UiSwitcher.d.ts +41 -7
  409. package/vue/UiSwitcher.vue +118 -15
  410. package/vue/UiTable.d.ts +23 -8
  411. package/vue/UiTable.vue +91 -17
  412. package/vue/UiTabs.d.ts +66 -23
  413. package/vue/UiTabs.vue +230 -44
  414. package/vue/UiText.d.ts +68 -18
  415. package/vue/UiText.vue +308 -48
  416. package/vue/UiTextarea.d.ts +84 -21
  417. package/vue/UiTextarea.vue +172 -38
  418. package/vue/UiToast.d.ts +28 -13
  419. package/vue/UiToast.vue +103 -24
  420. package/vue/UiToastRegion.d.ts +29 -14
  421. package/vue/UiToastRegion.vue +202 -47
  422. package/vue/UiTooltip.d.ts +81 -31
  423. package/vue/UiTooltip.vue +192 -37
  424. package/vue/UiTopBar.vue +33 -2
  425. package/vue/UiTree.d.ts +72 -29
  426. package/vue/UiTree.vue +170 -49
  427. package/vue/UiTreeItem.d.ts +136 -35
  428. package/vue/UiTreeItem.vue +232 -66
  429. package/vue/chunks/UiActionBar.js +16 -3
  430. package/vue/chunks/UiAffordanceScope.js +66 -11
  431. package/vue/chunks/UiAvatar.js +121 -20
  432. package/vue/chunks/UiAvatarGroup.js +94 -15
  433. package/vue/chunks/UiBadge.js +82 -10
  434. package/vue/chunks/UiBreadcrumbItem.js +43 -9
  435. package/vue/chunks/UiBreadcrumbs.js +41 -5
  436. package/vue/chunks/UiButton.js +237 -51
  437. package/vue/chunks/UiCallout.js +53 -11
  438. package/vue/chunks/UiCard.js +145 -18
  439. package/vue/chunks/UiCheckbox.js +130 -30
  440. package/vue/chunks/UiCluster.js +99 -12
  441. package/vue/chunks/UiCombobox.js +545 -162
  442. package/vue/chunks/UiContainer.js +65 -7
  443. package/vue/chunks/UiContextMenu.js +56 -11
  444. package/vue/chunks/UiCover.js +41 -6
  445. package/vue/chunks/UiDescriptionItem.js +39 -4
  446. package/vue/chunks/UiDescriptionList.js +80 -10
  447. package/vue/chunks/UiDialog.js +125 -18
  448. package/vue/chunks/UiDisclosure.js +102 -17
  449. package/vue/chunks/UiEditable.js +154 -29
  450. package/vue/chunks/UiEditorInsertTableGrid.js +154 -31
  451. package/vue/chunks/UiEditorMentionMenu.js +221 -18
  452. package/vue/chunks/UiEditorMentionMenuItem.js +64 -7
  453. package/vue/chunks/UiEditorSlashMenu.js +201 -14
  454. package/vue/chunks/UiEditorSlashMenuGroup.js +43 -9
  455. package/vue/chunks/UiEditorSlashMenuItem.js +80 -14
  456. package/vue/chunks/UiEditorTableContextMenu.js +220 -49
  457. package/vue/chunks/UiEditorTableOverlay.js +390 -85
  458. package/vue/chunks/UiEditorTableToolbar.js +248 -71
  459. package/vue/chunks/UiEditorToolbar.js +44 -10
  460. package/vue/chunks/UiFloatingActionButton.js +57 -9
  461. package/vue/chunks/UiFormField.js +63 -12
  462. package/vue/chunks/UiGrid.js +80 -9
  463. package/vue/chunks/UiIcon.js +73 -16
  464. package/vue/chunks/UiIconButton.js +126 -28
  465. package/vue/chunks/UiInput.js +328 -22
  466. package/vue/chunks/UiInputGroup.js +44 -10
  467. package/vue/chunks/UiList.js +104 -15
  468. package/vue/chunks/UiListItem.js +57 -8
  469. package/vue/chunks/UiListbox.js +208 -49
  470. package/vue/chunks/UiMenu.js +88 -15
  471. package/vue/chunks/UiMenuGroup.js +41 -5
  472. package/vue/chunks/UiMenuItem.js +111 -32
  473. package/vue/chunks/UiMeter.js +166 -36
  474. package/vue/chunks/UiNavItem.js +133 -37
  475. package/vue/chunks/UiPageHeader.js +41 -6
  476. package/vue/chunks/UiPopover.js +81 -11
  477. package/vue/chunks/UiRadio.js +115 -24
  478. package/vue/chunks/UiRadioGroup.js +108 -19
  479. package/vue/chunks/UiReel.js +81 -10
  480. package/vue/chunks/UiScrollArea.js +47 -10
  481. package/vue/chunks/UiSearchResultRow.js +47 -8
  482. package/vue/chunks/UiSearchShell.js +84 -24
  483. package/vue/chunks/UiSection.js +77 -10
  484. package/vue/chunks/UiSelect.js +108 -20
  485. package/vue/chunks/UiSeparator.js +41 -5
  486. package/vue/chunks/UiSidebar.js +136 -20
  487. package/vue/chunks/UiSpinner.js +64 -19
  488. package/vue/chunks/UiStack.js +87 -10
  489. package/vue/chunks/UiStatusMessage.js +82 -12
  490. package/vue/chunks/UiSwitch.js +115 -24
  491. package/vue/chunks/UiSwitcher.js +103 -15
  492. package/vue/chunks/UiTable.js +63 -11
  493. package/vue/chunks/UiTabs.js +170 -30
  494. package/vue/chunks/UiText.js +365 -38
  495. package/vue/chunks/UiTextarea.js +132 -26
  496. package/vue/chunks/UiToast.js +70 -12
  497. package/vue/chunks/UiToastRegion.js +154 -33
  498. package/vue/chunks/UiTooltip.js +124 -16
  499. package/vue/chunks/UiTopBar.js +16 -3
  500. package/vue/chunks/UiTree.js +107 -15
  501. package/vue/chunks/UiTreeItem.js +167 -43
  502. package/vue/chunks/control.js +171 -0
  503. package/vue/chunks/host.js +170 -27
  504. package/vue/chunks/props.js +477 -0
  505. package/vue/components.css +1197 -1197
  506. package/vue/editor/index.js +58 -15
  507. package/vue/editor/primitives.d.ts +52 -2
  508. package/vue/host.ts +370 -39
@@ -1,24 +1,47 @@
1
1
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
- import { n as useComponentHost, t as createDispatch } from "./host.js";
3
- import { computed, createElementBlock, defineComponent, mergeProps, openBlock, ref, renderSlot } from "vue";
4
- import * as controllerModule from "@threadlabs/looma/components/ui-tree/ui-tree.js";
2
+ import { r as useComponentHost, t as createDispatch } from "./host.js";
3
+ import { t as checkedProp } from "./props.js";
4
+ import { computed, createElementBlock, defineComponent, getCurrentInstance, mergeProps, openBlock, ref, renderSlot, watchSyncEffect } from "vue";
5
5
  //#region .build/vue/UiTree.vue?vue&type=script&setup=true&lang.ts
6
- var _hoisted_1 = ["data-ui-tree-state"];
6
+ var _hoisted_1 = [
7
+ "data-density",
8
+ "data-hover-expand-delay",
9
+ "data-label",
10
+ "data-marquee",
11
+ "data-max-depth",
12
+ "data-selection",
13
+ "data-ui-tree-state"
14
+ ];
7
15
  //#endregion
8
16
  //#region .build/vue/UiTree.vue
9
17
  var UiTree_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
10
18
  inheritAttrs: false,
11
19
  __name: "UiTree",
12
20
  props: {
13
- density: { default: "comfortable" },
14
- hoverExpandDelay: { default: 700 },
15
- label: { default: "Tree" },
21
+ density: {
22
+ type: null,
23
+ default: "comfortable"
24
+ },
25
+ hoverExpandDelay: {
26
+ type: null,
27
+ default: 700
28
+ },
29
+ label: {
30
+ type: null,
31
+ default: "Tree"
32
+ },
16
33
  marquee: {
17
- type: Boolean,
34
+ type: null,
18
35
  default: false
19
36
  },
20
- maxDepth: { default: 0 },
21
- selection: { default: "none" }
37
+ maxDepth: {
38
+ type: null,
39
+ default: 0
40
+ },
41
+ selection: {
42
+ type: null,
43
+ default: "none"
44
+ }
22
45
  },
23
46
  emits: [
24
47
  "update:maxDepth",
@@ -28,10 +51,69 @@ var UiTree_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
28
51
  ],
29
52
  setup(__props, { emit: __emit }) {
30
53
  const props = __props;
54
+ const checkedProps = computed(() => ({
55
+ density: checkedProp(props["density"], {
56
+ kind: "terminal",
57
+ name: "keyword"
58
+ }, false, "density", void 0, ["comfortable", "compact"]),
59
+ hoverExpandDelay: checkedProp(props["hoverExpandDelay"], {
60
+ kind: "terminal",
61
+ name: "number"
62
+ }, false, "hoverExpandDelay", void 0, void 0),
63
+ label: checkedProp(props["label"], {
64
+ kind: "terminal",
65
+ name: "string"
66
+ }, false, "label", void 0, void 0),
67
+ marquee: checkedProp(props["marquee"], {
68
+ kind: "terminal",
69
+ name: "boolean"
70
+ }, false, "marquee", void 0, void 0),
71
+ maxDepth: checkedProp(props["maxDepth"], {
72
+ kind: "terminal",
73
+ name: "number"
74
+ }, false, "maxDepth", void 0, void 0),
75
+ selection: checkedProp(props["selection"], {
76
+ kind: "terminal",
77
+ name: "keyword"
78
+ }, false, "selection", void 0, [
79
+ "none",
80
+ "single",
81
+ "multiple"
82
+ ])
83
+ }));
84
+ checkedProps.value;
85
+ watchSyncEffect(() => {
86
+ checkedProps.value;
87
+ });
88
+ function nativeAttrs(attrs) {
89
+ const names = Object.keys(attrs);
90
+ if (!names.some((name) => Object.hasOwn(Object.prototype, name))) return attrs;
91
+ return Object.fromEntries(names.map((name) => [Object.hasOwn(Object.prototype, name) ? name === "__proto__" ? "__Proto__" : name[0].toUpperCase() + name.slice(1) : name, attrs[name]]));
92
+ }
93
+ const componentInstance = getCurrentInstance();
94
+ function reflectedProp(name, kebab, value, fallback, bound, separator) {
95
+ const incoming = componentInstance?.vnode.props;
96
+ if (!bound && (incoming === null || incoming === void 0 || !Object.hasOwn(incoming, name) && !Object.hasOwn(incoming, kebab))) return fallback;
97
+ if (value === null || value === void 0) return void 0;
98
+ return Array.isArray(value) && separator !== void 0 ? value.join(separator) : typeof value === "object" ? JSON.stringify(value) : String(value);
99
+ }
100
+ const hydrationInstance = getCurrentInstance();
31
101
  const emit = __emit;
32
102
  const root = ref(null);
103
+ const hydrationNode = hydrationInstance?.vnode.el;
104
+ if (typeof window !== "undefined" && hydrationNode != null && (!(hydrationNode instanceof Element) || hydrationNode.localName !== "div")) throw Object.assign(/* @__PURE__ */ new Error("HR005: Server markup for <ui-tree> has an incompatible root."), {
105
+ name: "HtmlDiagnosticError",
106
+ diagnostic: Object.freeze({
107
+ code: "HR005",
108
+ message: "Server markup for <ui-tree> has an incompatible root."
109
+ })
110
+ });
33
111
  /** The values the styles' :host-state() rules test. */
34
- const hostState = computed(() => [props.marquee && "marquee", props.density && `density density=${props.density}`].filter(Boolean).join(" "));
112
+ const hostState = computed(() => [
113
+ checkedProps.value.marquee && "marquee",
114
+ checkedProps.value.density && "density",
115
+ checkedProps.value.density != null && `density=${encodeURIComponent(checkedProps.value.density)}`
116
+ ].filter(Boolean).join(" "));
35
117
  const isReorderDetail = (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["sourceId"] === "string" && typeof detail["targetId"] === "string" && (detail["position"] === "before" || detail["position"] === "inside" || detail["position"] === "after") && typeof detail["sourceType"] === "string" && typeof detail["targetType"] === "string" && typeof detail["sourceScope"] === "string" && typeof detail["targetScope"] === "string" && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
36
118
  "sourceId",
37
119
  "targetId",
@@ -60,22 +142,32 @@ var UiTree_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
60
142
  },
61
143
  modeled: ["maxDepth"]
62
144
  });
63
- useComponentHost(controllerModule.default, {
145
+ useComponentHost(() => import("@threadlabs/looma/components/ui-tree/ui-tree.js"), {
64
146
  root,
65
147
  dispatch,
66
- props
148
+ controllerSource: {
149
+ specifier: "../components/ui-tree/ui-tree.js",
150
+ definition: "./components/ui-tree/ui-tree.html"
151
+ },
152
+ props: checkedProps
67
153
  });
68
154
  return (_ctx, _cache) => {
69
155
  return openBlock(), createElementBlock("div", mergeProps({
70
156
  "data-component": "ui-tree",
71
157
  role: "tree"
72
- }, _ctx.$attrs, {
158
+ }, nativeAttrs(_ctx.$attrs), {
159
+ "data-density": reflectedProp("density", "density", checkedProps.value.density, void 0, false),
160
+ "data-hover-expand-delay": reflectedProp("hoverExpandDelay", "hover-expand-delay", checkedProps.value.hoverExpandDelay, void 0, false),
161
+ "data-label": reflectedProp("label", "label", checkedProps.value.label, void 0, false),
162
+ "data-marquee": reflectedProp("marquee", "marquee", checkedProps.value.marquee, void 0, false),
163
+ "data-max-depth": reflectedProp("maxDepth", "max-depth", checkedProps.value.maxDepth, void 0, false),
164
+ "data-selection": reflectedProp("selection", "selection", checkedProps.value.selection, void 0, false),
73
165
  "data-ui-tree-state": hostState.value || void 0,
74
166
  ref_key: "root",
75
167
  ref: root
76
168
  }), [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 16, _hoisted_1);
77
169
  };
78
170
  }
79
- }), [["__scopeId", "data-v-3dab8614"]]);
171
+ }), [["__scopeId", "data-v-6c11562f"]]);
80
172
  //#endregion
81
173
  export { UiTree_default as t };
@@ -1,18 +1,26 @@
1
1
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
- import { n as useComponentHost, t as createDispatch } from "./host.js";
3
- import { computed, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, defineComponent, mergeProps, openBlock, ref, renderSlot, toDisplayString, useTemplateRef } from "vue";
4
- import * as controllerModule from "@threadlabs/looma/components/ui-tree-item/ui-tree-item.js";
2
+ import { r as useComponentHost, t as createDispatch } from "./host.js";
3
+ import { t as checkedProp } from "./props.js";
4
+ import { computed, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, defineComponent, getCurrentInstance, mergeProps, openBlock, ref, renderSlot, toDisplayString, useTemplateRef, watchSyncEffect } from "vue";
5
5
  //#region .build/vue/UiTreeItem.vue?vue&type=script&setup=true&lang.ts
6
6
  var _hoisted_1 = [
7
7
  "aria-label",
8
8
  "aria-level",
9
9
  "aria-selected",
10
10
  "aria-disabled",
11
- "data-item-id",
12
- "data-drag-type",
13
- "data-drop-scope",
14
11
  "data-accepts",
12
+ "data-container",
13
+ "data-disabled",
14
+ "data-drag-type",
15
15
  "data-drop-depth",
16
+ "data-drop-scope",
17
+ "data-expanded",
18
+ "data-item-id",
19
+ "data-label",
20
+ "data-lazy",
21
+ "data-marquee",
22
+ "data-selected",
23
+ "data-sortable",
16
24
  "data-subtree-depth",
17
25
  "data-ui-tree-item-state"
18
26
  ];
@@ -24,7 +32,7 @@ var _hoisted_3 = ["aria-label"];
24
32
  var _hoisted_4 = ["disabled", "hidden"];
25
33
  var _hoisted_5 = { class: "selection-hit" };
26
34
  var _hoisted_6 = [
27
- "checked",
35
+ "^checked",
28
36
  "disabled",
29
37
  "aria-label"
30
38
  ];
@@ -51,45 +59,141 @@ var UiTreeItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
51
59
  inheritAttrs: false,
52
60
  __name: "UiTreeItem",
53
61
  props: {
54
- accepts: { default: "" },
62
+ accepts: {
63
+ type: null,
64
+ default: ""
65
+ },
55
66
  container: {
56
- type: Boolean,
67
+ type: null,
57
68
  default: false
58
69
  },
59
70
  disabled: {
60
- type: Boolean,
71
+ type: null,
61
72
  default: false
62
73
  },
63
- dragType: { default: "item" },
64
- dropDepth: {},
65
- dropScope: { default: "" },
74
+ dragType: {
75
+ type: null,
76
+ default: "item"
77
+ },
78
+ dropDepth: {
79
+ type: null,
80
+ default: null
81
+ },
82
+ dropScope: {
83
+ type: null,
84
+ default: ""
85
+ },
66
86
  expanded: {
67
- type: Boolean,
87
+ type: null,
68
88
  default: false
69
89
  },
70
- itemId: { default: "" },
71
- label: { default: "" },
90
+ itemId: {
91
+ type: null,
92
+ default: ""
93
+ },
94
+ label: {
95
+ type: null,
96
+ default: ""
97
+ },
72
98
  lazy: {
73
- type: Boolean,
99
+ type: null,
74
100
  default: false
75
101
  },
76
102
  marquee: {
77
- type: Boolean,
103
+ type: null,
78
104
  default: false
79
105
  },
80
106
  selected: {
81
- type: Boolean,
107
+ type: null,
82
108
  default: false
83
109
  },
84
110
  sortable: {
85
- type: Boolean,
111
+ type: null,
86
112
  default: false
87
113
  },
88
- subtreeDepth: {}
114
+ subtreeDepth: {
115
+ type: null,
116
+ default: null
117
+ }
89
118
  },
90
119
  emits: ["update:expanded", "expand"],
91
120
  setup(__props, { emit: __emit }) {
92
121
  const props = __props;
122
+ const checkedProps = computed(() => ({
123
+ accepts: checkedProp(props["accepts"], {
124
+ kind: "terminal",
125
+ name: "string"
126
+ }, false, "accepts", void 0, void 0),
127
+ container: checkedProp(props["container"], {
128
+ kind: "terminal",
129
+ name: "boolean"
130
+ }, false, "container", void 0, void 0),
131
+ disabled: checkedProp(props["disabled"], {
132
+ kind: "terminal",
133
+ name: "boolean"
134
+ }, false, "disabled", void 0, void 0),
135
+ dragType: checkedProp(props["dragType"], {
136
+ kind: "terminal",
137
+ name: "string"
138
+ }, false, "dragType", void 0, void 0),
139
+ dropDepth: checkedProp(props["dropDepth"], {
140
+ kind: "terminal",
141
+ name: "number"
142
+ }, false, "dropDepth", void 0, void 0),
143
+ dropScope: checkedProp(props["dropScope"], {
144
+ kind: "terminal",
145
+ name: "string"
146
+ }, false, "dropScope", void 0, void 0),
147
+ expanded: checkedProp(props["expanded"], {
148
+ kind: "terminal",
149
+ name: "boolean"
150
+ }, false, "expanded", void 0, void 0),
151
+ itemId: checkedProp(props["itemId"], {
152
+ kind: "terminal",
153
+ name: "string"
154
+ }, false, "itemId", void 0, void 0),
155
+ label: checkedProp(props["label"], {
156
+ kind: "terminal",
157
+ name: "string"
158
+ }, false, "label", void 0, void 0),
159
+ lazy: checkedProp(props["lazy"], {
160
+ kind: "terminal",
161
+ name: "boolean"
162
+ }, false, "lazy", void 0, void 0),
163
+ marquee: checkedProp(props["marquee"], {
164
+ kind: "terminal",
165
+ name: "boolean"
166
+ }, false, "marquee", void 0, void 0),
167
+ selected: checkedProp(props["selected"], {
168
+ kind: "terminal",
169
+ name: "boolean"
170
+ }, false, "selected", void 0, void 0),
171
+ sortable: checkedProp(props["sortable"], {
172
+ kind: "terminal",
173
+ name: "boolean"
174
+ }, false, "sortable", void 0, void 0),
175
+ subtreeDepth: checkedProp(props["subtreeDepth"], {
176
+ kind: "terminal",
177
+ name: "number"
178
+ }, false, "subtreeDepth", void 0, void 0)
179
+ }));
180
+ checkedProps.value;
181
+ watchSyncEffect(() => {
182
+ checkedProps.value;
183
+ });
184
+ function nativeAttrs(attrs) {
185
+ const names = Object.keys(attrs);
186
+ if (!names.some((name) => Object.hasOwn(Object.prototype, name))) return attrs;
187
+ return Object.fromEntries(names.map((name) => [Object.hasOwn(Object.prototype, name) ? name === "__proto__" ? "__Proto__" : name[0].toUpperCase() + name.slice(1) : name, attrs[name]]));
188
+ }
189
+ const componentInstance = getCurrentInstance();
190
+ function reflectedProp(name, kebab, value, fallback, bound, separator) {
191
+ const incoming = componentInstance?.vnode.props;
192
+ if (!bound && (incoming === null || incoming === void 0 || !Object.hasOwn(incoming, name) && !Object.hasOwn(incoming, kebab))) return fallback;
193
+ if (value === null || value === void 0) return void 0;
194
+ return Array.isArray(value) && separator !== void 0 ? value.join(separator) : typeof value === "object" ? JSON.stringify(value) : String(value);
195
+ }
196
+ const hydrationInstance = getCurrentInstance();
93
197
  const emit = __emit;
94
198
  const root = ref(null);
95
199
  const rowElement = useTemplateRef("row");
@@ -104,10 +208,18 @@ var UiTreeItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
104
208
  const structuralLevel = ref(1);
105
209
  const tabStop = ref(false);
106
210
  const isContainer = ref(false);
211
+ const hydrationNode = hydrationInstance?.vnode.el;
212
+ if (typeof window !== "undefined" && hydrationNode != null && (!(hydrationNode instanceof Element) || hydrationNode.localName !== "div")) throw Object.assign(/* @__PURE__ */ new Error("HR005: Server markup for <ui-tree-item> has an incompatible root."), {
213
+ name: "HtmlDiagnosticError",
214
+ diagnostic: Object.freeze({
215
+ code: "HR005",
216
+ message: "Server markup for <ui-tree-item> has an incompatible root."
217
+ })
218
+ });
107
219
  /** The values the styles' :host-state() rules test. */
108
220
  const hostState = computed(() => [
109
- props.selected && "selected",
110
- props.disabled && "disabled",
221
+ checkedProps.value.selected && "selected",
222
+ checkedProps.value.disabled && "disabled",
111
223
  isContainer.value && "isContainer"
112
224
  ].filter(Boolean).join(" "));
113
225
  const isExpandDetail = (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["id"] === "string" && typeof detail["expanded"] === "boolean" && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
@@ -124,10 +236,14 @@ var UiTreeItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
124
236
  checks: { expand: isExpandDetail },
125
237
  modeled: ["expanded"]
126
238
  });
127
- useComponentHost(controllerModule.default, {
239
+ useComponentHost(() => import("@threadlabs/looma/components/ui-tree-item/ui-tree-item.js"), {
128
240
  root,
129
241
  dispatch,
130
- props,
242
+ controllerSource: {
243
+ specifier: "../components/ui-tree-item/ui-tree-item.js",
244
+ definition: "./components/ui-tree-item/ui-tree-item.html"
245
+ },
246
+ props: checkedProps,
131
247
  refs: {
132
248
  row: rowElement,
133
249
  dragHandle: dragHandleElement,
@@ -149,28 +265,36 @@ var UiTreeItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
149
265
  return openBlock(), createElementBlock("div", mergeProps({
150
266
  "data-component": "ui-tree-item",
151
267
  role: "treeitem"
152
- }, _ctx.$attrs, {
153
- "aria-label": __props.label,
268
+ }, nativeAttrs(_ctx.$attrs), {
269
+ "aria-label": checkedProps.value.label ?? void 0,
154
270
  "aria-level": structuralLevel.value,
155
- "aria-selected": __props.selected,
156
- "aria-disabled": __props.disabled,
157
- "data-item-id": __props.itemId,
158
- "data-drag-type": __props.dragType,
159
- "data-drop-scope": __props.dropScope,
160
- "data-accepts": __props.accepts,
161
- "data-drop-depth": __props.dropDepth,
162
- "data-subtree-depth": __props.subtreeDepth,
271
+ "aria-selected": checkedProps.value.selected ?? void 0,
272
+ "aria-disabled": checkedProps.value.disabled ?? void 0,
273
+ "data-accepts": reflectedProp("accepts", "accepts", checkedProps.value.accepts, void 0, true),
274
+ "data-container": reflectedProp("container", "container", checkedProps.value.container, void 0, false),
275
+ "data-disabled": reflectedProp("disabled", "disabled", checkedProps.value.disabled, void 0, false),
276
+ "data-drag-type": reflectedProp("dragType", "drag-type", checkedProps.value.dragType, void 0, true),
277
+ "data-drop-depth": reflectedProp("dropDepth", "drop-depth", checkedProps.value.dropDepth, void 0, true),
278
+ "data-drop-scope": reflectedProp("dropScope", "drop-scope", checkedProps.value.dropScope, void 0, true),
279
+ "data-expanded": reflectedProp("expanded", "expanded", checkedProps.value.expanded, void 0, false),
280
+ "data-item-id": reflectedProp("itemId", "item-id", checkedProps.value.itemId, void 0, true),
281
+ "data-label": reflectedProp("label", "label", checkedProps.value.label, void 0, false),
282
+ "data-lazy": reflectedProp("lazy", "lazy", checkedProps.value.lazy, void 0, false),
283
+ "data-marquee": reflectedProp("marquee", "marquee", checkedProps.value.marquee, void 0, false),
284
+ "data-selected": reflectedProp("selected", "selected", checkedProps.value.selected, void 0, false),
285
+ "data-sortable": reflectedProp("sortable", "sortable", checkedProps.value.sortable, void 0, false),
286
+ "data-subtree-depth": reflectedProp("subtreeDepth", "subtree-depth", checkedProps.value.subtreeDepth, void 0, true),
163
287
  "data-ui-tree-item-state": hostState.value || void 0,
164
288
  ref_key: "root",
165
289
  ref: root
166
290
  }), [
167
291
  createElementVNode("div", _hoisted_2, [
168
- __props.sortable && !__props.disabled ? (openBlock(), createElementBlock("button", {
292
+ checkedProps.value.sortable && !checkedProps.value.disabled ? (openBlock(), createElementBlock("button", {
169
293
  key: 0,
170
294
  class: "drag-handle",
171
295
  type: "button",
172
296
  draggable: "true",
173
- "aria-label": `Drag ${__props.label} to reorder`,
297
+ "aria-label": `Drag ${checkedProps.value.label ?? ""} to reorder`,
174
298
  ref: "dragHandle"
175
299
  }, [..._cache[0] || (_cache[0] = [createElementVNode("svg", {
176
300
  "aria-hidden": "true",
@@ -216,7 +340,7 @@ var UiTreeItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
216
340
  createElementVNode("button", {
217
341
  class: "disclosure",
218
342
  type: "button",
219
- disabled: __props.disabled,
343
+ disabled: checkedProps.value.disabled ?? void 0,
220
344
  hidden: !isContainer.value,
221
345
  ref: "disclosure"
222
346
  }, [..._cache[1] || (_cache[1] = [createElementVNode("span", {
@@ -227,12 +351,12 @@ var UiTreeItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
227
351
  class: "selection-checkbox",
228
352
  type: "checkbox",
229
353
  tabindex: "-1",
230
- checked: __props.selected,
231
- disabled: __props.disabled,
232
- "aria-label": `Select ${__props.label}`
354
+ "^checked": checkedProps.value.selected ? true : void 0,
355
+ disabled: checkedProps.value.disabled ?? void 0,
356
+ "aria-label": `Select ${checkedProps.value.label ?? ""}`
233
357
  }, null, 8, _hoisted_6)]),
234
358
  createElementVNode("span", _hoisted_7, [renderSlot(_ctx.$slots, "leading")], 512),
235
- createElementVNode("span", _hoisted_8, [createElementVNode("span", _hoisted_9, [renderSlot(_ctx.$slots, "label", {}, () => [createTextVNode(toDisplayString(__props.label), 1)])], 512)], 512),
359
+ createElementVNode("span", _hoisted_8, [createElementVNode("span", _hoisted_9, [renderSlot(_ctx.$slots, "label", {}, () => [createTextVNode(toDisplayString(checkedProps.value.label), 1)])], 512)], 512),
236
360
  createElementVNode("span", _hoisted_10, [renderSlot(_ctx.$slots, "actions")], 512),
237
361
  _cache[2] || (_cache[2] = createElementVNode("span", {
238
362
  class: "drop-indicator row-drop-indicator",
@@ -252,6 +376,6 @@ var UiTreeItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
252
376
  ], 16, _hoisted_1);
253
377
  };
254
378
  }
255
- }), [["__scopeId", "data-v-78d948f0"]]);
379
+ }), [["__scopeId", "data-v-9978c0fb"]]);
256
380
  //#endregion
257
381
  export { UiTreeItem_default as t };
@@ -0,0 +1,171 @@
1
+ import { Fragment, cloneVNode, createVNode, defineComponent, onMounted, onUpdated } from "vue";
2
+ //#region .build/vue/control.ts
3
+ var connectedControls = /* @__PURE__ */ new WeakSet();
4
+ var boundValues = /* @__PURE__ */ new WeakMap();
5
+ var selectOptions = /* @__PURE__ */ new WeakMap();
6
+ var selectBindings = /* @__PURE__ */ new WeakMap();
7
+ var selectObservers = /* @__PURE__ */ new WeakMap();
8
+ function currentOptions(element) {
9
+ return Array.from(element.options, (option) => [option, option.value]);
10
+ }
11
+ function optionsChanged(element) {
12
+ const previous = selectOptions.get(element);
13
+ const next = currentOptions(element);
14
+ selectOptions.set(element, next);
15
+ return previous !== void 0 && (previous.length !== next.length || next.some(([option, value], index) => previous[index]?.[0] !== option || previous[index]?.[1] !== value));
16
+ }
17
+ function sameValue(left, right) {
18
+ if (Object.is(left, right)) return true;
19
+ if (Array.isArray(left) && Array.isArray(right)) return left.length === right.length && left.every((value, index) => Object.is(value, right[index]));
20
+ return false;
21
+ }
22
+ function snapshotValue(value) {
23
+ return Array.isArray(value) ? [...value] : value;
24
+ }
25
+ function writeBoundControl(element, binding) {
26
+ const value = binding.value;
27
+ if (binding.name === "checked" && element instanceof HTMLInputElement) {
28
+ const next = Boolean(value);
29
+ if (element.checked !== next) element.checked = next;
30
+ } else if (element instanceof HTMLSelectElement && element.multiple && !binding.nativeProperty) {
31
+ const selected = new Set(Array.isArray(value) ? value.map(String) : []);
32
+ for (const option of Array.from(element.options)) {
33
+ const next = selected.has(option.value);
34
+ if (option.selected !== next) option.selected = next;
35
+ }
36
+ } else {
37
+ if (element instanceof HTMLInputElement && (element.type === "number" || element.type === "range")) {
38
+ if (typeof value === "number" && element.valueAsNumber === value) return;
39
+ if (value == null && element.value === "") return;
40
+ }
41
+ const next = binding.nativeProperty ? String(value) : value == null ? "" : String(value);
42
+ if (element.value !== next) element.value = next;
43
+ }
44
+ }
45
+ /** SSR must not turn a live property binding into a new native form-reset default. */
46
+ function restoreDefault(element, binding) {
47
+ if (element instanceof HTMLInputElement && binding.name === "checked") {
48
+ const current = element.checked;
49
+ element.checked = current;
50
+ element.defaultChecked = binding.defaultChecked ?? false;
51
+ element.checked = current;
52
+ } else if (!(element instanceof HTMLSelectElement)) {
53
+ const current = element.value;
54
+ element.value = current;
55
+ element.defaultValue = binding.defaultValue ?? "";
56
+ element.value = current;
57
+ }
58
+ }
59
+ function optionText(node) {
60
+ if (typeof node.children === "string") return node.children;
61
+ if (Array.isArray(node.children)) return node.children.map((child) => typeof child === "string" ? child : optionText(child)).join("");
62
+ return "";
63
+ }
64
+ function selectChildren(nodes, selected, defaults) {
65
+ if (!Array.isArray(nodes)) return nodes;
66
+ return nodes.map((child) => {
67
+ if (child.type === "option") {
68
+ const value = child.props?.value ?? optionText(child).replace(/\s+/g, " ").trim();
69
+ const copy = cloneVNode(child, { selected: selected.has(String(value)) });
70
+ defaults.push([copy, child.props !== null && Object.hasOwn(child.props, "selected") && child.props.selected !== false && child.props.selected !== null && child.props.selected !== void 0]);
71
+ return copy;
72
+ }
73
+ if (child.type === "optgroup" || child.type === Fragment) {
74
+ const copy = cloneVNode(child);
75
+ copy.children = selectChildren(child.children, selected, defaults);
76
+ return copy;
77
+ }
78
+ return child;
79
+ });
80
+ }
81
+ /** Render options through Vue VNodes so slotted options receive SSR selection too. */
82
+ var SelectedOptions = defineComponent({
83
+ name: "SelectedOptions",
84
+ props: {
85
+ value: { type: null },
86
+ multiple: Boolean,
87
+ nativeProperty: Boolean
88
+ },
89
+ setup(props, { slots }) {
90
+ let defaults = [];
91
+ const restoreDefaults = () => {
92
+ const options = defaults.flatMap(([node, original]) => node.el instanceof HTMLOptionElement ? [{
93
+ option: node.el,
94
+ original,
95
+ selected: node.el.selected
96
+ }] : []);
97
+ for (const { option, original } of options) option.defaultSelected = original;
98
+ for (const { option, selected } of options) if (!selected) option.selected = false;
99
+ for (const { option, selected } of options) if (selected) option.selected = true;
100
+ };
101
+ onMounted(restoreDefaults);
102
+ onUpdated(restoreDefaults);
103
+ return () => {
104
+ const values = props.nativeProperty ? [String(props.value)] : props.multiple ? Array.isArray(props.value) ? props.value.map(String) : [] : [props.value == null ? "" : String(props.value)];
105
+ defaults = [];
106
+ return createVNode(Fragment, null, selectChildren(slots.default?.() ?? [], new Set(values), defaults));
107
+ };
108
+ }
109
+ });
110
+ /** Vue reactivity drives this directive; native controls own their edited value until state changes. */
111
+ var vBindControl = {
112
+ deep: true,
113
+ getSSRProps(binding) {
114
+ const { tag, name, value, nativeProperty } = binding.value;
115
+ if (name === "checked") return { checked: Boolean(value) };
116
+ if (tag === "input" || tag === "textarea") return { value: nativeProperty ? String(value) : value == null ? "" : String(value) };
117
+ },
118
+ created(element) {
119
+ if (element.isConnected) connectedControls.add(element);
120
+ },
121
+ mounted(element, binding) {
122
+ boundValues.set(element, snapshotValue(binding.value.value));
123
+ if (!connectedControls.has(element)) writeBoundControl(element, binding.value);
124
+ restoreDefault(element, binding.value);
125
+ connectedControls.delete(element);
126
+ if (element instanceof HTMLSelectElement) {
127
+ selectBindings.set(element, binding.value);
128
+ selectOptions.set(element, currentOptions(element));
129
+ const observer = new MutationObserver(() => {
130
+ const current = selectBindings.get(element);
131
+ if (current !== void 0 && optionsChanged(element)) writeBoundControl(element, current);
132
+ });
133
+ observer.observe(element, {
134
+ childList: true,
135
+ subtree: true,
136
+ characterData: true,
137
+ attributes: true,
138
+ attributeFilter: ["value"]
139
+ });
140
+ selectObservers.set(element, observer);
141
+ }
142
+ },
143
+ updated(element, binding) {
144
+ const previous = boundValues.get(element);
145
+ if (element instanceof HTMLSelectElement) selectBindings.set(element, binding.value);
146
+ if (!sameValue(previous, binding.value.value)) {
147
+ writeBoundControl(element, binding.value);
148
+ boundValues.set(element, snapshotValue(binding.value.value));
149
+ }
150
+ },
151
+ beforeUnmount(element) {
152
+ boundValues.delete(element);
153
+ connectedControls.delete(element);
154
+ if (element instanceof HTMLSelectElement) {
155
+ selectOptions.delete(element);
156
+ selectBindings.delete(element);
157
+ selectObservers.get(element)?.disconnect();
158
+ selectObservers.delete(element);
159
+ }
160
+ }
161
+ };
162
+ function readBoundControl(element) {
163
+ if (element instanceof HTMLInputElement) {
164
+ if (element.type === "checkbox" || element.type === "radio") return element.checked;
165
+ if (element.type === "number" || element.type === "range") return Number.isNaN(element.valueAsNumber) ? null : element.valueAsNumber;
166
+ }
167
+ if (element instanceof HTMLSelectElement && element.multiple) return Array.from(element.selectedOptions, (option) => option.value);
168
+ return element.value;
169
+ }
170
+ //#endregion
171
+ export { readBoundControl as n, vBindControl as r, SelectedOptions as t };