@threadlabs/looma 0.5.1 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (309) hide show
  1. package/README.md +1 -1
  2. package/components/ui-button/ui-button.html +13 -0
  3. package/components/ui-combobox/ui-combobox.html +12 -4
  4. package/components/ui-dialog/ui-dialog.html +13 -0
  5. package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.html +1 -1
  6. package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +1 -1
  7. package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +6 -2
  8. package/components/ui-editor-table-overlay/ui-editor-table-overlay.html +20 -4
  9. package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +8 -4
  10. package/components/ui-form-field/ui-form-field.html +18 -7
  11. package/components/ui-icon/ui-icon.html +5 -1
  12. package/components/ui-icon-button/ui-icon-button.html +30 -0
  13. package/components/ui-popover/ui-popover.js +10 -2
  14. package/components/ui-search-shell/ui-search-shell.html +7 -0
  15. package/components/ui-search-shell/ui-search-shell.js +9 -0
  16. package/components/ui-tabs/ui-tabs.html +1 -1
  17. package/components/ui-toast-region/ui-toast-region.html +1 -1
  18. package/components/ui-tree-item/ui-tree-item.html +6 -1
  19. package/dist/index.d.ts +1 -1
  20. package/dist/index.js +2 -2
  21. package/package.json +2 -2
  22. package/styles/ui-affordance-scope.css +1 -1
  23. package/styles/ui-avatar-group.css +1 -1
  24. package/styles/ui-avatar.css +1 -1
  25. package/styles/ui-badge.css +1 -1
  26. package/styles/ui-button.css +11 -1
  27. package/styles/ui-callout.css +1 -1
  28. package/styles/ui-checkbox.css +1 -1
  29. package/styles/ui-cluster.css +1 -1
  30. package/styles/ui-combobox.css +1 -1
  31. package/styles/ui-container.css +1 -1
  32. package/styles/ui-context-menu.css +1 -1
  33. package/styles/ui-dialog.css +18 -1
  34. package/styles/ui-disclosure.css +1 -1
  35. package/styles/ui-editable.css +1 -1
  36. package/styles/ui-editor-insert-table-grid.css +1 -1
  37. package/styles/ui-editor-mention-menu.css +1 -1
  38. package/styles/ui-editor-slash-menu.css +1 -1
  39. package/styles/ui-editor-table-context-menu.css +1 -1
  40. package/styles/ui-editor-table-overlay.css +1 -1
  41. package/styles/ui-editor-table-toolbar.css +1 -1
  42. package/styles/ui-editor-toolbar.css +1 -1
  43. package/styles/ui-floating-action-button.css +1 -1
  44. package/styles/ui-form-field.css +24 -10
  45. package/styles/ui-grid.css +1 -1
  46. package/styles/ui-icon-button.css +36 -1
  47. package/styles/ui-icon.css +1 -1
  48. package/styles/ui-input.css +1 -1
  49. package/styles/ui-menu-item.css +1 -1
  50. package/styles/ui-menu.css +1 -1
  51. package/styles/ui-popover.css +1 -1
  52. package/styles/ui-radio-group.css +1 -1
  53. package/styles/ui-radio.css +1 -1
  54. package/styles/ui-reel.css +1 -1
  55. package/styles/ui-search-result-row.css +1 -1
  56. package/styles/ui-search-shell.css +11 -2
  57. package/styles/ui-select.css +1 -1
  58. package/styles/ui-separator.css +1 -1
  59. package/styles/ui-sidebar.css +1 -1
  60. package/styles/ui-stack.css +1 -1
  61. package/styles/ui-switch.css +1 -1
  62. package/styles/ui-switcher.css +1 -1
  63. package/styles/ui-tabs.css +1 -1
  64. package/styles/ui-textarea.css +1 -1
  65. package/styles/ui-toast-region.css +1 -1
  66. package/styles/ui-tooltip.css +1 -1
  67. package/styles/ui-top-bar.css +1 -1
  68. package/styles/ui-tree-item.css +10 -2
  69. package/styles/ui-tree.css +1 -1
  70. package/vanilla/UiAffordanceScope.d.ts +1 -1
  71. package/vanilla/UiAffordanceScope.js +2 -2
  72. package/vanilla/UiAvatar.d.ts +1 -1
  73. package/vanilla/UiAvatar.js +2 -2
  74. package/vanilla/UiAvatarGroup.d.ts +1 -1
  75. package/vanilla/UiAvatarGroup.js +2 -2
  76. package/vanilla/UiBadge.d.ts +1 -1
  77. package/vanilla/UiBadge.js +2 -2
  78. package/vanilla/UiButton.d.ts +3 -1
  79. package/vanilla/UiButton.js +3 -3
  80. package/vanilla/UiCallout.d.ts +1 -1
  81. package/vanilla/UiCallout.js +2 -2
  82. package/vanilla/UiCheckbox.d.ts +1 -1
  83. package/vanilla/UiCheckbox.js +2 -2
  84. package/vanilla/UiCluster.d.ts +1 -1
  85. package/vanilla/UiCluster.js +2 -2
  86. package/vanilla/UiCombobox.d.ts +1 -1
  87. package/vanilla/UiCombobox.js +3 -3
  88. package/vanilla/UiContainer.d.ts +1 -1
  89. package/vanilla/UiContainer.js +2 -2
  90. package/vanilla/UiContextMenu.d.ts +1 -1
  91. package/vanilla/UiContextMenu.js +2 -2
  92. package/vanilla/UiDialog.d.ts +1 -1
  93. package/vanilla/UiDialog.js +2 -2
  94. package/vanilla/UiDisclosure.d.ts +1 -1
  95. package/vanilla/UiDisclosure.js +2 -2
  96. package/vanilla/UiEditable.d.ts +1 -1
  97. package/vanilla/UiEditable.js +2 -2
  98. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  99. package/vanilla/UiEditorInsertTableGrid.js +3 -3
  100. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  101. package/vanilla/UiEditorMentionMenu.js +3 -3
  102. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  103. package/vanilla/UiEditorSlashMenu.js +2 -2
  104. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  105. package/vanilla/UiEditorTableContextMenu.js +3 -3
  106. package/vanilla/UiEditorTableOverlay.d.ts +1 -1
  107. package/vanilla/UiEditorTableOverlay.js +3 -3
  108. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  109. package/vanilla/UiEditorTableToolbar.js +3 -3
  110. package/vanilla/UiEditorToolbar.d.ts +1 -1
  111. package/vanilla/UiEditorToolbar.js +2 -2
  112. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  113. package/vanilla/UiFloatingActionButton.js +2 -2
  114. package/vanilla/UiFormField.d.ts +1 -1
  115. package/vanilla/UiFormField.js +15 -6
  116. package/vanilla/UiGrid.d.ts +1 -1
  117. package/vanilla/UiGrid.js +2 -2
  118. package/vanilla/UiIcon.d.ts +1 -1
  119. package/vanilla/UiIcon.js +3 -3
  120. package/vanilla/UiIconButton.d.ts +1 -1
  121. package/vanilla/UiIconButton.js +2 -2
  122. package/vanilla/UiInput.d.ts +1 -1
  123. package/vanilla/UiInput.js +2 -2
  124. package/vanilla/UiMenu.d.ts +1 -1
  125. package/vanilla/UiMenu.js +2 -2
  126. package/vanilla/UiMenuItem.d.ts +1 -1
  127. package/vanilla/UiMenuItem.js +2 -2
  128. package/vanilla/UiPopover.d.ts +1 -1
  129. package/vanilla/UiPopover.js +2 -2
  130. package/vanilla/UiRadio.d.ts +1 -1
  131. package/vanilla/UiRadio.js +2 -2
  132. package/vanilla/UiRadioGroup.d.ts +1 -1
  133. package/vanilla/UiRadioGroup.js +2 -2
  134. package/vanilla/UiReel.d.ts +1 -1
  135. package/vanilla/UiReel.js +2 -2
  136. package/vanilla/UiSearchResultRow.d.ts +1 -1
  137. package/vanilla/UiSearchResultRow.js +2 -2
  138. package/vanilla/UiSearchShell.d.ts +1 -1
  139. package/vanilla/UiSearchShell.js +2 -2
  140. package/vanilla/UiSelect.d.ts +1 -1
  141. package/vanilla/UiSelect.js +2 -2
  142. package/vanilla/UiSeparator.d.ts +1 -1
  143. package/vanilla/UiSeparator.js +2 -2
  144. package/vanilla/UiSidebar.d.ts +1 -1
  145. package/vanilla/UiSidebar.js +2 -2
  146. package/vanilla/UiStack.d.ts +1 -1
  147. package/vanilla/UiStack.js +2 -2
  148. package/vanilla/UiSwitch.d.ts +1 -1
  149. package/vanilla/UiSwitch.js +2 -2
  150. package/vanilla/UiSwitcher.d.ts +1 -1
  151. package/vanilla/UiSwitcher.js +2 -2
  152. package/vanilla/UiTabs.d.ts +1 -1
  153. package/vanilla/UiTabs.js +3 -3
  154. package/vanilla/UiTextarea.d.ts +1 -1
  155. package/vanilla/UiTextarea.js +2 -2
  156. package/vanilla/UiToastRegion.d.ts +1 -1
  157. package/vanilla/UiToastRegion.js +3 -3
  158. package/vanilla/UiTooltip.d.ts +1 -1
  159. package/vanilla/UiTooltip.js +2 -2
  160. package/vanilla/UiTopBar.d.ts +1 -1
  161. package/vanilla/UiTopBar.js +1 -1
  162. package/vanilla/UiTree.d.ts +1 -1
  163. package/vanilla/UiTree.js +2 -2
  164. package/vanilla/UiTreeItem.d.ts +1 -1
  165. package/vanilla/UiTreeItem.js +2 -2
  166. package/vue/UiAffordanceScope.d.ts +2 -2
  167. package/vue/UiAffordanceScope.vue +92 -73
  168. package/vue/UiAvatar.d.ts +7 -7
  169. package/vue/UiAvatar.vue +145 -105
  170. package/vue/UiAvatarGroup.d.ts +4 -4
  171. package/vue/UiAvatarGroup.vue +134 -118
  172. package/vue/UiBadge.d.ts +4 -4
  173. package/vue/UiBadge.vue +113 -114
  174. package/vue/UiButton.d.ts +10 -6
  175. package/vue/UiButton.vue +289 -248
  176. package/vue/UiCallout.d.ts +2 -2
  177. package/vue/UiCallout.vue +154 -87
  178. package/vue/UiCheckbox.d.ts +14 -10
  179. package/vue/UiCheckbox.vue +228 -162
  180. package/vue/UiCluster.d.ts +2 -2
  181. package/vue/UiCluster.vue +53 -60
  182. package/vue/UiCombobox.d.ts +36 -32
  183. package/vue/UiCombobox.vue +1005 -416
  184. package/vue/UiContainer.d.ts +2 -2
  185. package/vue/UiContainer.vue +48 -51
  186. package/vue/UiContextMenu.d.ts +6 -4
  187. package/vue/UiContextMenu.vue +205 -116
  188. package/vue/UiDialog.d.ts +11 -9
  189. package/vue/UiDialog.vue +287 -212
  190. package/vue/UiDisclosure.d.ts +8 -6
  191. package/vue/UiDisclosure.vue +248 -159
  192. package/vue/UiEditable.d.ts +16 -12
  193. package/vue/UiEditable.vue +325 -205
  194. package/vue/UiEditorInsertTableGrid.d.ts +8 -8
  195. package/vue/UiEditorInsertTableGrid.vue +216 -157
  196. package/vue/UiEditorMentionMenu.d.ts +9 -9
  197. package/vue/UiEditorMentionMenu.vue +265 -222
  198. package/vue/UiEditorSlashMenu.d.ts +7 -7
  199. package/vue/UiEditorSlashMenu.vue +286 -240
  200. package/vue/UiEditorTableContextMenu.d.ts +5 -5
  201. package/vue/UiEditorTableContextMenu.vue +306 -193
  202. package/vue/UiEditorTableOverlay.d.ts +2 -2
  203. package/vue/UiEditorTableOverlay.vue +609 -369
  204. package/vue/UiEditorTableToolbar.d.ts +7 -7
  205. package/vue/UiEditorTableToolbar.vue +443 -268
  206. package/vue/UiEditorToolbar.d.ts +2 -2
  207. package/vue/UiEditorToolbar.vue +134 -121
  208. package/vue/UiFloatingActionButton.d.ts +6 -6
  209. package/vue/UiFloatingActionButton.vue +100 -99
  210. package/vue/UiFormField.d.ts +6 -6
  211. package/vue/UiFormField.vue +112 -80
  212. package/vue/UiGrid.d.ts +2 -2
  213. package/vue/UiGrid.vue +51 -57
  214. package/vue/UiIcon.d.ts +2 -2
  215. package/vue/UiIcon.vue +118 -89
  216. package/vue/UiIconButton.d.ts +11 -11
  217. package/vue/UiIconButton.vue +283 -217
  218. package/vue/UiInput.d.ts +9 -9
  219. package/vue/UiInput.vue +153 -127
  220. package/vue/UiMenu.d.ts +8 -6
  221. package/vue/UiMenu.vue +217 -143
  222. package/vue/UiMenuItem.d.ts +4 -4
  223. package/vue/UiMenuItem.vue +52 -46
  224. package/vue/UiPopover.d.ts +8 -6
  225. package/vue/UiPopover.vue +197 -137
  226. package/vue/UiRadio.d.ts +14 -10
  227. package/vue/UiRadio.vue +183 -117
  228. package/vue/UiRadioGroup.d.ts +14 -12
  229. package/vue/UiRadioGroup.vue +172 -111
  230. package/vue/UiReel.d.ts +3 -3
  231. package/vue/UiReel.vue +77 -77
  232. package/vue/UiSearchResultRow.d.ts +4 -4
  233. package/vue/UiSearchResultRow.vue +124 -115
  234. package/vue/UiSearchShell.d.ts +10 -8
  235. package/vue/UiSearchShell.vue +245 -176
  236. package/vue/UiSelect.d.ts +9 -9
  237. package/vue/UiSelect.vue +162 -134
  238. package/vue/UiSeparator.d.ts +2 -2
  239. package/vue/UiSeparator.vue +22 -27
  240. package/vue/UiSidebar.d.ts +20 -18
  241. package/vue/UiSidebar.vue +312 -224
  242. package/vue/UiStack.d.ts +3 -3
  243. package/vue/UiStack.vue +64 -70
  244. package/vue/UiSwitch.d.ts +12 -8
  245. package/vue/UiSwitch.vue +218 -150
  246. package/vue/UiSwitcher.d.ts +3 -3
  247. package/vue/UiSwitcher.vue +73 -75
  248. package/vue/UiTabs.d.ts +10 -8
  249. package/vue/UiTabs.vue +251 -210
  250. package/vue/UiTextarea.d.ts +11 -11
  251. package/vue/UiTextarea.vue +155 -128
  252. package/vue/UiToastRegion.d.ts +10 -8
  253. package/vue/UiToastRegion.vue +261 -198
  254. package/vue/UiTooltip.d.ts +14 -12
  255. package/vue/UiTooltip.vue +241 -177
  256. package/vue/UiTopBar.vue +51 -42
  257. package/vue/UiTree.d.ts +8 -6
  258. package/vue/UiTree.vue +157 -70
  259. package/vue/UiTreeItem.d.ts +24 -22
  260. package/vue/UiTreeItem.vue +456 -339
  261. package/vue/chunks/UiAffordanceScope.js +9 -16
  262. package/vue/chunks/UiAvatar.js +23 -29
  263. package/vue/chunks/UiAvatarGroup.js +16 -39
  264. package/vue/chunks/UiBadge.js +3 -12
  265. package/vue/chunks/UiButton.js +15 -18
  266. package/vue/chunks/UiCallout.js +8 -17
  267. package/vue/chunks/UiCheckbox.js +37 -40
  268. package/vue/chunks/UiCluster.js +3 -12
  269. package/vue/chunks/UiCombobox.js +224 -266
  270. package/vue/chunks/UiContainer.js +3 -12
  271. package/vue/chunks/UiContextMenu.js +39 -34
  272. package/vue/chunks/UiDialog.js +36 -39
  273. package/vue/chunks/UiDisclosure.js +43 -48
  274. package/vue/chunks/UiEditable.js +55 -57
  275. package/vue/chunks/UiEditorInsertTableGrid.js +55 -73
  276. package/vue/chunks/UiEditorMentionMenu.js +40 -81
  277. package/vue/chunks/UiEditorSlashMenu.js +28 -52
  278. package/vue/chunks/UiEditorTableContextMenu.js +32 -56
  279. package/vue/chunks/UiEditorTableOverlay.js +58 -82
  280. package/vue/chunks/UiEditorTableToolbar.js +61 -85
  281. package/vue/chunks/UiEditorToolbar.js +4 -13
  282. package/vue/chunks/UiFloatingActionButton.js +7 -21
  283. package/vue/chunks/UiFormField.js +15 -12
  284. package/vue/chunks/UiGrid.js +3 -12
  285. package/vue/chunks/UiIcon.js +20 -43
  286. package/vue/chunks/UiIconButton.js +16 -28
  287. package/vue/chunks/UiInput.js +20 -25
  288. package/vue/chunks/UiMenu.js +29 -33
  289. package/vue/chunks/UiMenuItem.js +4 -10
  290. package/vue/chunks/UiPopover.js +28 -29
  291. package/vue/chunks/UiRadio.js +36 -39
  292. package/vue/chunks/UiRadioGroup.js +30 -34
  293. package/vue/chunks/UiReel.js +6 -15
  294. package/vue/chunks/UiSearchResultRow.js +6 -19
  295. package/vue/chunks/UiSearchShell.js +25 -28
  296. package/vue/chunks/UiSelect.js +20 -23
  297. package/vue/chunks/UiSeparator.js +2 -8
  298. package/vue/chunks/UiSidebar.js +39 -44
  299. package/vue/chunks/UiStack.js +6 -15
  300. package/vue/chunks/UiSwitch.js +35 -38
  301. package/vue/chunks/UiSwitcher.js +6 -15
  302. package/vue/chunks/UiTabs.js +47 -85
  303. package/vue/chunks/UiTextarea.js +21 -26
  304. package/vue/chunks/UiToastRegion.js +38 -72
  305. package/vue/chunks/UiTooltip.js +34 -35
  306. package/vue/chunks/UiTopBar.js +1 -1
  307. package/vue/chunks/UiTree.js +20 -15
  308. package/vue/chunks/UiTreeItem.js +85 -102
  309. package/vue/components.css +3994 -3801
@@ -13,77 +13,76 @@ var UiTooltip_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
13
13
  for: { default: "" },
14
14
  hideDelay: { default: 100 },
15
15
  inverse: {
16
- type: [Boolean, null],
16
+ type: Boolean,
17
17
  default: false
18
18
  },
19
19
  open: {
20
- type: [Boolean, null],
20
+ type: Boolean,
21
21
  default: false
22
22
  },
23
23
  placement: { default: "top-start" },
24
24
  showDelay: { default: 500 }
25
25
  },
26
- emits: ["open", "close"],
26
+ emits: [
27
+ "update:open",
28
+ "open",
29
+ "close"
30
+ ],
27
31
  setup(__props, { emit: __emit }) {
28
- const hn = {
29
- t: (v) => v === true || (typeof v === "string" ? v.length > 0 : typeof v === "number" ? v !== 0 && v === v : Array.isArray(v) ? v.length > 0 : v !== null && typeof v === "object" ? Object.keys(v).length > 0 : false),
30
- text: (v) => v === void 0 || v === null ? "" : Array.isArray(v) ? v.map(hn.text).join(" ") : typeof v === "object" ? "" : String(v),
31
- attr: (v) => v === void 0 || v === null || v === false ? void 0 : v === true ? "" : Array.isArray(v) ? v.map(hn.text).join(" ") : typeof v === "object" ? void 0 : String(v)
32
- };
33
32
  const props = __props;
34
33
  const emit = __emit;
35
34
  const root = ref(null);
36
- const refs = {};
37
- const state_internalOpen = ref(false);
35
+ const internalOpen = ref(false);
36
+ /** The values the styles' :host-state() rules test. */
37
+ const hostState = computed(() => [
38
+ props.inverse && "inverse",
39
+ props.placement && "placement",
40
+ `placement=${encodeURIComponent(props.placement)}`
41
+ ].filter(Boolean).join(" "));
38
42
  /** Dispatches a component event to Vue listeners and, for controllers and page code, on the root. */
39
- const dispatch = (name, detail) => {
43
+ function dispatch(name, detail) {
40
44
  const declared = {
41
- "open": {
42
- "bubbles": true,
43
- "composed": true,
44
- "cancelable": false
45
+ open: {
46
+ bubbles: true,
47
+ composed: true,
48
+ cancelable: false
45
49
  },
46
- "close": {
47
- "bubbles": true,
48
- "composed": true,
49
- "cancelable": false
50
+ close: {
51
+ bubbles: true,
52
+ composed: true,
53
+ cancelable: false
50
54
  }
51
55
  };
52
56
  const checks = {
53
- "open": (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["open"] === "boolean" && (detail["reason"] === "action" || detail["reason"] === "programmatic" || detail["reason"] === "light-dismiss" || detail["reason"] === "escape") && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
57
+ open: (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["open"] === "boolean" && (detail["reason"] === "action" || detail["reason"] === "programmatic" || detail["reason"] === "light-dismiss" || detail["reason"] === "escape") && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
54
58
  "open",
55
59
  "reason",
56
60
  "trigger"
57
61
  ].includes(key)),
58
- "close": (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["open"] === "boolean" && (detail["reason"] === "action" || detail["reason"] === "programmatic" || detail["reason"] === "light-dismiss" || detail["reason"] === "escape") && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
62
+ close: (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["open"] === "boolean" && (detail["reason"] === "action" || detail["reason"] === "programmatic" || detail["reason"] === "light-dismiss" || detail["reason"] === "escape") && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
59
63
  "open",
60
64
  "reason",
61
65
  "trigger"
62
66
  ].includes(key))
63
67
  };
64
68
  if (detail !== void 0 && checks[name] !== void 0 && !checks[name](detail)) throw new TypeError(`HR002: Event \`${name}\` detail does not satisfy its declared type.`);
65
- emit(name, detail);
69
+ const emitEvent = emit;
70
+ emitEvent(name, detail);
71
+ if (detail !== null && typeof detail === "object" && "open" in detail) emitEvent("update:open", detail["open"]);
66
72
  return root.value?.dispatchEvent(new CustomEvent(name, {
67
73
  bubbles: true,
68
74
  composed: true,
69
75
  ...declared[name],
70
76
  detail
71
77
  })) ?? true;
72
- };
73
- /** The resolved values the styles' :host-state() rules test. */
74
- const hostState = computed(() => ["inverse", "placement"].flatMap((name) => {
75
- const value = read(name);
76
- const tokens = hn.t(value) ? [name] : [];
77
- if (typeof value === "string" || typeof value === "number") tokens.push(`${name}=${encodeURIComponent(String(value))}`);
78
- return tokens;
79
- }).join(" "));
78
+ }
80
79
  function read(name) {
81
- if (name === "internalOpen") return state_internalOpen.value;
80
+ if (name === "internalOpen") return internalOpen.value;
82
81
  return props[name];
83
82
  }
84
83
  function write(name, value) {
85
84
  if (name === "internalOpen") {
86
- state_internalOpen.value = value;
85
+ internalOpen.value = value;
87
86
  return true;
88
87
  }
89
88
  throw new TypeError(`Only declared state is writable; \`${name}\` is not.`);
@@ -97,7 +96,7 @@ var UiTooltip_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
97
96
  get: (_target, name) => typeof name === "string" ? read(name) : void 0,
98
97
  set: (_target, name, value) => typeof name === "string" && write(name, value)
99
98
  }),
100
- refs,
99
+ refs: {},
101
100
  elements: new Proxy({}, { get: (_target, name) => {
102
101
  if (typeof name !== "string" || root.value === null) return void 0;
103
102
  return (root.value instanceof HTMLFormElement ? root.value : root.value.querySelector("form"))?.elements.namedItem(name) ?? root.value.querySelector(`[name="${CSS.escape(name)}"]`) ?? void 0;
@@ -151,13 +150,13 @@ var UiTooltip_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
151
150
  "data-component": "ui-tooltip",
152
151
  role: "tooltip"
153
152
  }, _ctx.$attrs, {
154
- hidden: hn.attr(!hn.t(state_internalOpen.value)),
153
+ hidden: !internalOpen.value,
155
154
  "data-ui-tooltip-state": hostState.value || void 0,
156
155
  ref_key: "root",
157
156
  ref: root
158
157
  }), [createElementVNode("div", _hoisted_2, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])], 16, _hoisted_1);
159
158
  };
160
159
  }
161
- }), [["__scopeId", "data-v-df5715b2"]]);
160
+ }), [["__scopeId", "data-v-78626a50"]]);
162
161
  //#endregion
163
162
  export { UiTooltip_default as t };
@@ -20,6 +20,6 @@ var UiTopBar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
20
20
  ], 16);
21
21
  };
22
22
  }
23
- }), [["__scopeId", "data-v-ee7c5f3c"]]);
23
+ }), [["__scopeId", "data-v-e785cef9"]]);
24
24
  //#endregion
25
25
  export { UiTopBar_default as t };
@@ -11,28 +11,31 @@ var UiTree_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
11
11
  label: { default: "Tree" },
12
12
  maxDepth: { default: 0 }
13
13
  },
14
- emits: ["reorder", "reorder-rejected"],
14
+ emits: [
15
+ "update:maxDepth",
16
+ "reorder",
17
+ "reorder-rejected"
18
+ ],
15
19
  setup(__props, { emit: __emit }) {
16
20
  const props = __props;
17
21
  const emit = __emit;
18
22
  const root = ref(null);
19
- const refs = {};
20
23
  /** Dispatches a component event to Vue listeners and, for controllers and page code, on the root. */
21
- const dispatch = (name, detail) => {
24
+ function dispatch(name, detail) {
22
25
  const declared = {
23
- "reorder": {
24
- "bubbles": true,
25
- "composed": true,
26
- "cancelable": false
26
+ reorder: {
27
+ bubbles: true,
28
+ composed: true,
29
+ cancelable: false
27
30
  },
28
31
  "reorder-rejected": {
29
- "bubbles": true,
30
- "composed": true,
31
- "cancelable": false
32
+ bubbles: true,
33
+ composed: true,
34
+ cancelable: false
32
35
  }
33
36
  };
34
37
  const checks = {
35
- "reorder": (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) => [
38
+ reorder: (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
39
  "sourceId",
37
40
  "targetId",
38
41
  "position",
@@ -53,14 +56,16 @@ var UiTree_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
53
56
  ].includes(key))
54
57
  };
55
58
  if (detail !== void 0 && checks[name] !== void 0 && !checks[name](detail)) throw new TypeError(`HR002: Event \`${name}\` detail does not satisfy its declared type.`);
56
- emit(name, detail);
59
+ const emitEvent = emit;
60
+ emitEvent(name, detail);
61
+ if (detail !== null && typeof detail === "object" && "maxDepth" in detail) emitEvent("update:maxDepth", detail["maxDepth"]);
57
62
  return root.value?.dispatchEvent(new CustomEvent(name, {
58
63
  bubbles: true,
59
64
  composed: true,
60
65
  ...declared[name],
61
66
  detail
62
67
  })) ?? true;
63
- };
68
+ }
64
69
  function read(name) {
65
70
  return props[name];
66
71
  }
@@ -76,7 +81,7 @@ var UiTree_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
76
81
  get: (_target, name) => typeof name === "string" ? read(name) : void 0,
77
82
  set: (_target, name, value) => typeof name === "string" && write(name, value)
78
83
  }),
79
- refs,
84
+ refs: {},
80
85
  elements: new Proxy({}, { get: (_target, name) => {
81
86
  if (typeof name !== "string" || root.value === null) return void 0;
82
87
  return (root.value instanceof HTMLFormElement ? root.value : root.value.querySelector("form"))?.elements.namedItem(name) ?? root.value.querySelector(`[name="${CSS.escape(name)}"]`) ?? void 0;
@@ -135,6 +140,6 @@ var UiTree_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
135
140
  }), [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 16);
136
141
  };
137
142
  }
138
- }), [["__scopeId", "data-v-fbd119c9"]]);
143
+ }), [["__scopeId", "data-v-abe57610"]]);
139
144
  //#endregion
140
145
  export { UiTree_default as t };
@@ -1,5 +1,5 @@
1
1
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
- import { computed, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, defineComponent, mergeProps, onBeforeUnmount, onMounted, openBlock, ref, renderSlot, shallowRef, toDisplayString, watchEffect } from "vue";
2
+ import { computed, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, defineComponent, mergeProps, onBeforeUnmount, onMounted, openBlock, ref, renderSlot, shallowRef, toDisplayString, useTemplateRef, watchEffect } from "vue";
3
3
  import * as controllerModule from "@threadlabs/looma/components/ui-tree-item/ui-tree-item.js";
4
4
  //#region .build/vue/UiTreeItem.vue?vue&type=script&setup=true&lang.ts
5
5
  var _hoisted_1 = [
@@ -15,12 +15,16 @@ var _hoisted_1 = [
15
15
  "data-subtree-depth",
16
16
  "data-ui-tree-item-state"
17
17
  ];
18
- var _hoisted_2 = ["aria-label"];
19
- var _hoisted_3 = ["disabled", "hidden"];
20
- var _hoisted_4 = { class: "leading" };
21
- var _hoisted_5 = { class: "label" };
22
- var _hoisted_6 = { class: "actions" };
23
- var _hoisted_7 = ["hidden"];
18
+ var _hoisted_2 = {
19
+ class: "row",
20
+ ref: "row"
21
+ };
22
+ var _hoisted_3 = ["aria-label"];
23
+ var _hoisted_4 = ["disabled", "hidden"];
24
+ var _hoisted_5 = { class: "leading" };
25
+ var _hoisted_6 = { class: "label" };
26
+ var _hoisted_7 = { class: "actions" };
27
+ var _hoisted_8 = ["hidden"];
24
28
  //#endregion
25
29
  //#region .build/vue/UiTreeItem.vue
26
30
  var UiTreeItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
@@ -29,115 +33,92 @@ var UiTreeItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
29
33
  props: {
30
34
  accepts: { default: "" },
31
35
  container: {
32
- type: [Boolean, null],
36
+ type: Boolean,
33
37
  default: false
34
38
  },
35
39
  disabled: {
36
- type: [Boolean, null],
40
+ type: Boolean,
37
41
  default: false
38
42
  },
39
43
  dragType: { default: "item" },
40
44
  dropDepth: {},
41
45
  dropScope: { default: "" },
42
46
  expanded: {
43
- type: [Boolean, null],
47
+ type: Boolean,
44
48
  default: false
45
49
  },
46
50
  itemId: { default: "" },
47
51
  label: { default: "" },
48
52
  selected: {
49
- type: [Boolean, null],
53
+ type: Boolean,
50
54
  default: false
51
55
  },
52
56
  sortable: {
53
- type: [Boolean, null],
57
+ type: Boolean,
54
58
  default: false
55
59
  },
56
60
  subtreeDepth: {}
57
61
  },
58
- emits: ["expand"],
62
+ emits: ["update:expanded", "expand"],
59
63
  setup(__props, { emit: __emit }) {
60
- const hn = {
61
- t: (v) => v === true || (typeof v === "string" ? v.length > 0 : typeof v === "number" ? v !== 0 && v === v : Array.isArray(v) ? v.length > 0 : v !== null && typeof v === "object" ? Object.keys(v).length > 0 : false),
62
- n: (v) => typeof v === "number" && v === v ? v : void 0,
63
- text: (v) => v === void 0 || v === null ? "" : Array.isArray(v) ? v.map(hn.text).join(" ") : typeof v === "object" ? "" : String(v),
64
- attr: (v) => v === void 0 || v === null || v === false ? void 0 : v === true ? "" : Array.isArray(v) ? v.map(hn.text).join(" ") : typeof v === "object" ? void 0 : String(v),
65
- enumerated: (v) => typeof v === "boolean" ? String(v) : hn.attr(v),
66
- call: (fn, ...args) => {
67
- if (fn === "format") {
68
- let index = 1;
69
- return typeof args[0] === "string" ? args[0].replace(/%s/g, () => index < args.length ? hn.text(args[index++]) : "%s") : void 0;
70
- }
71
- const n = args.map(hn.n);
72
- if (n.some((value) => value === void 0)) return void 0;
73
- const v = n;
74
- switch (fn) {
75
- case "abs": return v.length === 1 ? Math.abs(v[0]) : void 0;
76
- case "round": return v.length === 1 ? Math.round(v[0]) : void 0;
77
- case "min": return v.length > 0 ? Math.min(...v) : void 0;
78
- case "max": return v.length > 0 ? Math.max(...v) : void 0;
79
- case "clamp": return v.length === 3 ? Math.min(Math.max(v[0], v[1]), v[2]) : void 0;
80
- }
81
- }
82
- };
83
64
  const props = __props;
84
65
  const emit = __emit;
85
66
  const root = ref(null);
86
- const refs = {};
87
- const state_internalExpanded = ref(false);
88
- const state_structuralLevel = ref(1);
89
- const state_tabStop = ref(false);
90
- const state_isContainer = ref(false);
67
+ const rowElement = useTemplateRef("row");
68
+ const dragHandleElement = useTemplateRef("dragHandle");
69
+ const disclosureElement = useTemplateRef("disclosure");
70
+ const childrenElement = useTemplateRef("children");
71
+ const internalExpanded = ref(false);
72
+ const structuralLevel = ref(1);
73
+ const tabStop = ref(false);
74
+ const isContainer = ref(false);
75
+ /** The values the styles' :host-state() rules test. */
76
+ const hostState = computed(() => [props.selected && "selected", props.disabled && "disabled"].filter(Boolean).join(" "));
91
77
  /** Dispatches a component event to Vue listeners and, for controllers and page code, on the root. */
92
- const dispatch = (name, detail) => {
93
- const declared = { "expand": {
94
- "bubbles": false,
95
- "composed": true,
96
- "cancelable": false
78
+ function dispatch(name, detail) {
79
+ const declared = { expand: {
80
+ bubbles: false,
81
+ composed: true,
82
+ cancelable: false
97
83
  } };
98
- const checks = { "expand": (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) => [
84
+ const checks = { expand: (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) => [
99
85
  "id",
100
86
  "expanded",
101
87
  "trigger"
102
88
  ].includes(key)) };
103
89
  if (detail !== void 0 && checks[name] !== void 0 && !checks[name](detail)) throw new TypeError(`HR002: Event \`${name}\` detail does not satisfy its declared type.`);
104
- emit(name, detail);
90
+ const emitEvent = emit;
91
+ emitEvent(name, detail);
92
+ if (detail !== null && typeof detail === "object" && "expanded" in detail) emitEvent("update:expanded", detail["expanded"]);
105
93
  return root.value?.dispatchEvent(new CustomEvent(name, {
106
94
  bubbles: true,
107
95
  composed: true,
108
96
  ...declared[name],
109
97
  detail
110
98
  })) ?? true;
111
- };
112
- /** The resolved values the styles' :host-state() rules test. */
113
- const hostState = computed(() => ["selected", "disabled"].flatMap((name) => {
114
- const value = read(name);
115
- const tokens = hn.t(value) ? [name] : [];
116
- if (typeof value === "string" || typeof value === "number") tokens.push(`${name}=${encodeURIComponent(String(value))}`);
117
- return tokens;
118
- }).join(" "));
99
+ }
119
100
  function read(name) {
120
- if (name === "internalExpanded") return state_internalExpanded.value;
121
- if (name === "structuralLevel") return state_structuralLevel.value;
122
- if (name === "tabStop") return state_tabStop.value;
123
- if (name === "isContainer") return state_isContainer.value;
101
+ if (name === "internalExpanded") return internalExpanded.value;
102
+ if (name === "structuralLevel") return structuralLevel.value;
103
+ if (name === "tabStop") return tabStop.value;
104
+ if (name === "isContainer") return isContainer.value;
124
105
  return props[name];
125
106
  }
126
107
  function write(name, value) {
127
108
  if (name === "internalExpanded") {
128
- state_internalExpanded.value = value;
109
+ internalExpanded.value = value;
129
110
  return true;
130
111
  }
131
112
  if (name === "structuralLevel") {
132
- state_structuralLevel.value = value;
113
+ structuralLevel.value = value;
133
114
  return true;
134
115
  }
135
116
  if (name === "tabStop") {
136
- state_tabStop.value = value;
117
+ tabStop.value = value;
137
118
  return true;
138
119
  }
139
120
  if (name === "isContainer") {
140
- state_isContainer.value = value;
121
+ isContainer.value = value;
141
122
  return true;
142
123
  }
143
124
  throw new TypeError(`Only declared state is writable; \`${name}\` is not.`);
@@ -151,7 +132,20 @@ var UiTreeItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
151
132
  get: (_target, name) => typeof name === "string" ? read(name) : void 0,
152
133
  set: (_target, name, value) => typeof name === "string" && write(name, value)
153
134
  }),
154
- refs,
135
+ refs: {
136
+ get row() {
137
+ return rowElement.value;
138
+ },
139
+ get dragHandle() {
140
+ return dragHandleElement.value;
141
+ },
142
+ get disclosure() {
143
+ return disclosureElement.value;
144
+ },
145
+ get children() {
146
+ return childrenElement.value;
147
+ }
148
+ },
155
149
  elements: new Proxy({}, { get: (_target, name) => {
156
150
  if (typeof name !== "string" || root.value === null) return void 0;
157
151
  return (root.value instanceof HTMLFormElement ? root.value : root.value.querySelector("form"))?.elements.namedItem(name) ?? root.value.querySelector(`[name="${CSS.escape(name)}"]`) ?? void 0;
@@ -205,35 +199,28 @@ var UiTreeItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
205
199
  "data-component": "ui-tree-item",
206
200
  role: "treeitem"
207
201
  }, _ctx.$attrs, {
208
- "aria-label": hn.enumerated(props.label),
209
- "aria-level": hn.enumerated(state_structuralLevel.value),
210
- "aria-selected": hn.enumerated(props.selected),
211
- "aria-disabled": hn.enumerated(props.disabled),
212
- "data-item-id": hn.attr(props.itemId),
213
- "data-drag-type": hn.attr(props.dragType),
214
- "data-drop-scope": hn.attr(props.dropScope),
215
- "data-accepts": hn.attr(props.accepts),
216
- "data-drop-depth": hn.attr(props.dropDepth),
217
- "data-subtree-depth": hn.attr(props.subtreeDepth),
202
+ "aria-label": __props.label,
203
+ "aria-level": structuralLevel.value,
204
+ "aria-selected": __props.selected,
205
+ "aria-disabled": __props.disabled,
206
+ "data-item-id": __props.itemId,
207
+ "data-drag-type": __props.dragType,
208
+ "data-drop-scope": __props.dropScope,
209
+ "data-accepts": __props.accepts,
210
+ "data-drop-depth": __props.dropDepth,
211
+ "data-subtree-depth": __props.subtreeDepth,
218
212
  "data-ui-tree-item-state": hostState.value || void 0,
219
213
  ref_key: "root",
220
214
  ref: root
221
215
  }), [
222
- createElementVNode("div", {
223
- class: "row",
224
- ref: (element) => {
225
- refs["row"] = element;
226
- }
227
- }, [
228
- hn.t(hn.t(props.sortable) && hn.t(!hn.t(props.disabled))) ? (openBlock(), createElementBlock("button", {
216
+ createElementVNode("div", _hoisted_2, [
217
+ __props.sortable && !__props.disabled ? (openBlock(), createElementBlock("button", {
229
218
  key: 0,
230
219
  class: "drag-handle",
231
220
  type: "button",
232
221
  draggable: "true",
233
- "aria-label": hn.enumerated(hn.call("format", "Drag %s to reorder", props.label)),
234
- ref: (element) => {
235
- refs["dragHandle"] = element;
236
- }
222
+ "aria-label": `Drag ${__props.label} to reorder`,
223
+ ref: "dragHandle"
237
224
  }, [..._cache[0] || (_cache[0] = [createElementVNode("svg", {
238
225
  "aria-hidden": "true",
239
226
  focusable: "false",
@@ -274,22 +261,20 @@ var UiTreeItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
274
261
  cy: "19",
275
262
  r: "1"
276
263
  })
277
- ], -1)])], 8, _hoisted_2)) : createCommentVNode("v-if", true),
264
+ ], -1)])], 8, _hoisted_3)) : createCommentVNode("v-if", true),
278
265
  createElementVNode("button", {
279
266
  class: "disclosure",
280
267
  type: "button",
281
- disabled: hn.attr(props.disabled),
282
- hidden: hn.attr(!hn.t(state_isContainer.value)),
283
- ref: (element) => {
284
- refs["disclosure"] = element;
285
- }
268
+ disabled: __props.disabled,
269
+ hidden: !isContainer.value,
270
+ ref: "disclosure"
286
271
  }, [..._cache[1] || (_cache[1] = [createElementVNode("span", {
287
272
  class: "disclosure-icon",
288
273
  "aria-hidden": "true"
289
- }, null, -1)])], 8, _hoisted_3),
290
- createElementVNode("span", _hoisted_4, [renderSlot(_ctx.$slots, "leading")]),
291
- createElementVNode("span", _hoisted_5, [renderSlot(_ctx.$slots, "label", {}, () => [createTextVNode(toDisplayString(hn.text(props.label)), 1)])]),
292
- createElementVNode("span", _hoisted_6, [renderSlot(_ctx.$slots, "actions")]),
274
+ }, null, -1)])], 8, _hoisted_4),
275
+ createElementVNode("span", _hoisted_5, [renderSlot(_ctx.$slots, "leading")]),
276
+ createElementVNode("span", _hoisted_6, [renderSlot(_ctx.$slots, "label", {}, () => [createTextVNode(toDisplayString(__props.label), 1)])]),
277
+ createElementVNode("span", _hoisted_7, [renderSlot(_ctx.$slots, "actions")]),
293
278
  _cache[2] || (_cache[2] = createElementVNode("span", {
294
279
  class: "drop-indicator row-drop-indicator",
295
280
  "aria-hidden": "true"
@@ -298,11 +283,9 @@ var UiTreeItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
298
283
  createElementVNode("div", {
299
284
  class: "children",
300
285
  role: "group",
301
- hidden: hn.attr(!hn.t(hn.t(state_isContainer.value) && hn.t(state_internalExpanded.value))),
302
- ref: (element) => {
303
- refs["children"] = element;
304
- }
305
- }, [renderSlot(_ctx.$slots, "default")], 8, _hoisted_7),
286
+ hidden: !(isContainer.value && internalExpanded.value),
287
+ ref: "children"
288
+ }, [renderSlot(_ctx.$slots, "default")], 8, _hoisted_8),
306
289
  _cache[3] || (_cache[3] = createElementVNode("span", {
307
290
  class: "drop-indicator subtree-drop-indicator",
308
291
  "aria-hidden": "true"
@@ -310,6 +293,6 @@ var UiTreeItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
310
293
  ], 16, _hoisted_1);
311
294
  };
312
295
  }
313
- }), [["__scopeId", "data-v-7617a58a"]]);
296
+ }), [["__scopeId", "data-v-554c49dd"]]);
314
297
  //#endregion
315
298
  export { UiTreeItem_default as t };