@threadlabs/looma 0.14.7 → 0.15.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 (336) hide show
  1. package/components/shared/icons.js +5 -0
  2. package/components/shared/menu-navigation.js +49 -0
  3. package/components/shared/overlay.js +33 -60
  4. package/components/ui-avatar/ui-avatar.html +19 -2
  5. package/components/ui-avatar/ui-avatar.js +7 -1
  6. package/components/ui-avatar-group/ui-avatar-group.html +8 -3
  7. package/components/ui-avatar-group/ui-avatar-group.js +6 -2
  8. package/components/ui-badge/ui-badge.html +70 -4
  9. package/components/ui-button/ui-button.html +21 -5
  10. package/components/ui-button/ui-button.js +10 -0
  11. package/components/ui-callout/ui-callout.html +13 -5
  12. package/components/ui-checkbox/ui-checkbox.html +11 -0
  13. package/components/ui-combobox/ui-combobox.html +50 -10
  14. package/components/ui-combobox/ui-combobox.js +11 -8
  15. package/components/ui-context-menu/ui-context-menu.html +33 -5
  16. package/components/ui-context-menu/ui-context-menu.js +26 -17
  17. package/components/ui-dialog/ui-dialog.html +51 -8
  18. package/components/ui-dialog/ui-dialog.js +28 -7
  19. package/components/ui-disclosure/ui-disclosure.html +14 -5
  20. package/components/ui-disclosure/ui-disclosure.js +51 -4
  21. package/components/ui-editable/ui-editable.html +17 -3
  22. package/components/ui-editable/ui-editable.js +7 -0
  23. package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.html +48 -14
  24. package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.js +40 -6
  25. package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +22 -9
  26. package/components/ui-editor-mention-menu/ui-editor-mention-menu.js +33 -11
  27. package/components/ui-editor-mention-menu-item/ui-editor-mention-menu-item.html +67 -0
  28. package/components/ui-editor-slash-menu/ui-editor-slash-menu.html +33 -30
  29. package/components/ui-editor-slash-menu/ui-editor-slash-menu.js +42 -8
  30. package/components/ui-editor-slash-menu-group/ui-editor-slash-menu-group.html +31 -0
  31. package/components/ui-editor-slash-menu-item/ui-editor-slash-menu-item.html +75 -0
  32. package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +16 -5
  33. package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.js +10 -2
  34. package/components/ui-editor-table-overlay/ui-editor-table-overlay.html +5 -5
  35. package/components/ui-editor-table-overlay/ui-editor-table-overlay.js +5 -2
  36. package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +14 -4
  37. package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.js +2 -2
  38. package/components/ui-editor-toolbar/ui-editor-toolbar.html +1 -1
  39. package/components/ui-editor-toolbar/ui-editor-toolbar.js +46 -0
  40. package/components/ui-floating-action-button/ui-floating-action-button.html +1 -1
  41. package/components/ui-form-field/ui-form-field.html +16 -3
  42. package/components/ui-form-field/ui-form-field.js +1 -1
  43. package/components/ui-grid/ui-grid.html +17 -2
  44. package/components/ui-icon/ui-icon.html +5 -0
  45. package/components/ui-icon-button/ui-icon-button.html +25 -6
  46. package/components/ui-icon-button/ui-icon-button.js +11 -1
  47. package/components/ui-input/ui-input.html +3 -3
  48. package/components/ui-input-group/ui-input-group.html +18 -4
  49. package/components/ui-listbox/ui-listbox.html +81 -0
  50. package/components/ui-listbox/ui-listbox.js +27 -0
  51. package/components/ui-menu/ui-menu.html +33 -5
  52. package/components/ui-menu/ui-menu.js +18 -12
  53. package/components/ui-menu-group/ui-menu-group.html +27 -0
  54. package/components/ui-menu-item/ui-menu-item.html +80 -8
  55. package/components/ui-menu-item/ui-menu-item.js +47 -0
  56. package/components/ui-popover/ui-popover.html +33 -5
  57. package/components/ui-popover/ui-popover.js +9 -1
  58. package/components/ui-radio-group/ui-radio-group.html +13 -1
  59. package/components/ui-search-shell/ui-search-shell.html +6 -6
  60. package/components/ui-search-shell/ui-search-shell.js +21 -5
  61. package/components/ui-select/ui-select.html +14 -4
  62. package/components/ui-switch/ui-switch.html +2 -2
  63. package/components/ui-switcher/ui-switcher.html +8 -1
  64. package/components/ui-switcher/ui-switcher.js +15 -0
  65. package/components/ui-tabs/ui-tabs.html +17 -12
  66. package/components/ui-tabs/ui-tabs.js +43 -7
  67. package/components/ui-textarea/ui-textarea.html +28 -5
  68. package/components/ui-toast/ui-toast.html +88 -0
  69. package/components/ui-toast/ui-toast.js +68 -0
  70. package/components/ui-toast-region/ui-toast-region.html +102 -19
  71. package/components/ui-toast-region/ui-toast-region.js +10 -18
  72. package/components/ui-tooltip/ui-tooltip.html +51 -7
  73. package/components/ui-tooltip/ui-tooltip.js +29 -3
  74. package/components/ui-tree/ui-tree.html +12 -0
  75. package/components/ui-tree/ui-tree.js +191 -12
  76. package/components/ui-tree-item/ui-tree-item.html +87 -8
  77. package/components/ui-tree-item/ui-tree-item.js +3 -1
  78. package/dist/index.js +38 -32
  79. package/editor/chunks/extensions.js +82 -2
  80. package/editor/extensions/table-commands.d.ts +8 -0
  81. package/editor/icons.d.ts +5 -0
  82. package/editor/index.js +7 -2
  83. package/editor/insert-table-grid.d.ts +1 -1
  84. package/editor/mention-menu.d.ts +2 -0
  85. package/editor/slash-menu.d.ts +3 -0
  86. package/editor/table-context-menu.d.ts +1 -1
  87. package/editor/table-overlay.d.ts +2 -2
  88. package/package.json +1 -1
  89. package/styles/ui-avatar-group.css +1 -2
  90. package/styles/ui-avatar.css +11 -1
  91. package/styles/ui-badge.css +73 -1
  92. package/styles/ui-button.css +9 -1
  93. package/styles/ui-callout.css +1 -1
  94. package/styles/ui-checkbox.css +9 -0
  95. package/styles/ui-combobox.css +38 -7
  96. package/styles/ui-context-menu.css +32 -4
  97. package/styles/ui-dialog.css +42 -5
  98. package/styles/ui-editor-insert-table-grid.css +48 -11
  99. package/styles/ui-editor-mention-menu-item.css +57 -0
  100. package/styles/ui-editor-mention-menu.css +11 -1
  101. package/styles/ui-editor-slash-menu-group.css +21 -0
  102. package/styles/ui-editor-slash-menu-item.css +62 -0
  103. package/styles/ui-editor-slash-menu.css +10 -21
  104. package/styles/ui-editor-table-context-menu.css +1 -1
  105. package/styles/ui-floating-action-button.css +1 -1
  106. package/styles/ui-form-field.css +14 -1
  107. package/styles/ui-grid.css +14 -1
  108. package/styles/ui-icon-button.css +17 -5
  109. package/styles/ui-input-group.css +18 -4
  110. package/styles/ui-input.css +3 -3
  111. package/styles/ui-listbox.css +69 -0
  112. package/styles/ui-menu-group.css +19 -0
  113. package/styles/ui-menu-item.css +48 -9
  114. package/styles/ui-menu.css +32 -4
  115. package/styles/ui-popover.css +28 -4
  116. package/styles/ui-radio-group.css +9 -0
  117. package/styles/ui-search-shell.css +5 -5
  118. package/styles/ui-select.css +14 -4
  119. package/styles/ui-switch.css +2 -2
  120. package/styles/ui-switcher.css +4 -0
  121. package/styles/ui-textarea.css +27 -4
  122. package/styles/ui-toast-region.css +88 -4
  123. package/styles/ui-toast.css +74 -0
  124. package/styles/ui-tooltip.css +46 -6
  125. package/styles/ui-tree-item.css +72 -4
  126. package/styles/ui-tree.css +8 -0
  127. package/tokens.css +3 -0
  128. package/vanilla/UiAvatar.d.ts +2 -0
  129. package/vanilla/UiAvatar.js +8 -1
  130. package/vanilla/UiAvatarGroup.d.ts +2 -0
  131. package/vanilla/UiAvatarGroup.js +1 -1
  132. package/vanilla/UiBadge.d.ts +1 -1
  133. package/vanilla/UiBadge.js +1 -1
  134. package/vanilla/UiButton.d.ts +1 -0
  135. package/vanilla/UiButton.js +22 -6
  136. package/vanilla/UiCallout.d.ts +1 -1
  137. package/vanilla/UiCallout.js +1 -1
  138. package/vanilla/UiCheckbox.d.ts +1 -0
  139. package/vanilla/UiCheckbox.js +12 -9
  140. package/vanilla/UiCombobox.d.ts +4 -0
  141. package/vanilla/UiCombobox.js +30 -15
  142. package/vanilla/UiContextMenu.d.ts +1 -1
  143. package/vanilla/UiContextMenu.js +1 -1
  144. package/vanilla/UiDialog.d.ts +5 -2
  145. package/vanilla/UiDialog.js +1 -1
  146. package/vanilla/UiDisclosure.d.ts +2 -0
  147. package/vanilla/UiDisclosure.js +32 -18
  148. package/vanilla/UiEditable.d.ts +5 -0
  149. package/vanilla/UiEditable.js +7 -3
  150. package/vanilla/UiEditorInsertTableGrid.js +1 -6
  151. package/vanilla/UiEditorMentionMenu.d.ts +4 -2
  152. package/vanilla/UiEditorMentionMenu.js +49 -31
  153. package/vanilla/UiEditorMentionMenuItem.d.ts +16 -0
  154. package/vanilla/UiEditorMentionMenuItem.js +56 -0
  155. package/vanilla/UiEditorSlashMenu.d.ts +4 -3
  156. package/vanilla/UiEditorSlashMenu.js +59 -46
  157. package/vanilla/UiEditorSlashMenuGroup.d.ts +14 -0
  158. package/vanilla/UiEditorSlashMenuGroup.js +48 -0
  159. package/vanilla/UiEditorSlashMenuItem.d.ts +18 -0
  160. package/vanilla/UiEditorSlashMenuItem.js +57 -0
  161. package/vanilla/UiEditorTableContextMenu.d.ts +5 -2
  162. package/vanilla/UiEditorTableContextMenu.js +1 -2
  163. package/vanilla/UiEditorTableOverlay.d.ts +1 -1
  164. package/vanilla/UiEditorTableOverlay.js +5 -5
  165. package/vanilla/UiEditorTableToolbar.d.ts +4 -2
  166. package/vanilla/UiEditorTableToolbar.js +1 -2
  167. package/vanilla/UiEditorToolbar.js +2 -0
  168. package/vanilla/UiGrid.d.ts +1 -0
  169. package/vanilla/UiGrid.js +8 -7
  170. package/vanilla/UiIcon.js +1 -1
  171. package/vanilla/UiIconButton.d.ts +1 -0
  172. package/vanilla/UiIconButton.js +11 -2
  173. package/vanilla/UiListbox.d.ts +20 -0
  174. package/vanilla/UiListbox.js +45 -0
  175. package/vanilla/UiMenu.d.ts +1 -1
  176. package/vanilla/UiMenu.js +1 -1
  177. package/vanilla/UiMenuGroup.d.ts +14 -0
  178. package/vanilla/UiMenuGroup.js +35 -0
  179. package/vanilla/UiMenuItem.d.ts +5 -1
  180. package/vanilla/UiMenuItem.js +91 -30
  181. package/vanilla/UiPopover.d.ts +1 -1
  182. package/vanilla/UiPopover.js +1 -1
  183. package/vanilla/UiRadioGroup.d.ts +1 -0
  184. package/vanilla/UiRadioGroup.js +6 -3
  185. package/vanilla/UiSwitcher.d.ts +1 -0
  186. package/vanilla/UiSwitcher.js +7 -9
  187. package/vanilla/UiTabs.d.ts +1 -0
  188. package/vanilla/UiTabs.js +9 -1
  189. package/vanilla/UiTextarea.d.ts +1 -0
  190. package/vanilla/UiTextarea.js +4 -1
  191. package/vanilla/UiToast.d.ts +16 -0
  192. package/vanilla/UiToast.js +53 -0
  193. package/vanilla/UiToastRegion.d.ts +1 -4
  194. package/vanilla/UiToastRegion.js +3 -11
  195. package/vanilla/UiTooltip.d.ts +1 -1
  196. package/vanilla/UiTooltip.js +1 -1
  197. package/vanilla/UiTree.d.ts +2 -0
  198. package/vanilla/UiTree.js +1 -1
  199. package/vanilla/UiTreeItem.d.ts +1 -0
  200. package/vanilla/UiTreeItem.js +45 -31
  201. package/vanilla/index.js +6 -0
  202. package/vue/UiAvatar.d.ts +4 -0
  203. package/vue/UiAvatar.vue +23 -3
  204. package/vue/UiAvatarGroup.d.ts +3 -0
  205. package/vue/UiAvatarGroup.vue +7 -4
  206. package/vue/UiBadge.d.ts +2 -2
  207. package/vue/UiBadge.vue +74 -2
  208. package/vue/UiButton.d.ts +5 -3
  209. package/vue/UiButton.vue +41 -7
  210. package/vue/UiCallout.d.ts +2 -2
  211. package/vue/UiCallout.vue +3 -2
  212. package/vue/UiCheckbox.d.ts +2 -0
  213. package/vue/UiCheckbox.vue +16 -0
  214. package/vue/UiCombobox.d.ts +13 -3
  215. package/vue/UiCombobox.vue +62 -11
  216. package/vue/UiContextMenu.d.ts +2 -0
  217. package/vue/UiContextMenu.vue +47 -6
  218. package/vue/UiDialog.d.ts +18 -4
  219. package/vue/UiDialog.vue +86 -11
  220. package/vue/UiDisclosure.d.ts +8 -2
  221. package/vue/UiDisclosure.vue +38 -14
  222. package/vue/UiEditable.d.ts +10 -0
  223. package/vue/UiEditable.vue +14 -2
  224. package/vue/UiEditorInsertTableGrid.vue +52 -15
  225. package/vue/UiEditorMentionMenu.d.ts +24 -2
  226. package/vue/UiEditorMentionMenu.vue +27 -11
  227. package/vue/UiEditorMentionMenuItem.d.ts +24 -0
  228. package/vue/UiEditorMentionMenuItem.js +2 -0
  229. package/vue/UiEditorMentionMenuItem.vue +88 -0
  230. package/vue/UiEditorSlashMenu.d.ts +24 -1
  231. package/vue/UiEditorSlashMenu.vue +33 -33
  232. package/vue/UiEditorSlashMenuGroup.d.ts +18 -0
  233. package/vue/UiEditorSlashMenuGroup.js +2 -0
  234. package/vue/UiEditorSlashMenuGroup.vue +43 -0
  235. package/vue/UiEditorSlashMenuItem.d.ts +26 -0
  236. package/vue/UiEditorSlashMenuItem.js +2 -0
  237. package/vue/UiEditorSlashMenuItem.vue +101 -0
  238. package/vue/UiEditorTableContextMenu.d.ts +9 -3
  239. package/vue/UiEditorTableContextMenu.vue +53 -3
  240. package/vue/UiEditorTableOverlay.d.ts +2 -2
  241. package/vue/UiEditorTableOverlay.vue +8 -6
  242. package/vue/UiEditorTableToolbar.d.ts +7 -3
  243. package/vue/UiEditorTableToolbar.vue +50 -2
  244. package/vue/UiEditorToolbar.vue +14 -1
  245. package/vue/UiFloatingActionButton.vue +1 -1
  246. package/vue/UiFormField.vue +28 -3
  247. package/vue/UiGrid.d.ts +1 -0
  248. package/vue/UiGrid.vue +26 -2
  249. package/vue/UiIcon.vue +16 -0
  250. package/vue/UiIconButton.d.ts +5 -3
  251. package/vue/UiIconButton.vue +40 -6
  252. package/vue/UiInput.vue +10 -3
  253. package/vue/UiInputGroup.vue +32 -11
  254. package/vue/UiListbox.d.ts +33 -0
  255. package/vue/UiListbox.js +2 -0
  256. package/vue/UiListbox.vue +131 -0
  257. package/vue/UiMenu.d.ts +2 -0
  258. package/vue/UiMenu.vue +43 -6
  259. package/vue/UiMenuGroup.d.ts +18 -0
  260. package/vue/UiMenuGroup.js +2 -0
  261. package/vue/UiMenuGroup.vue +39 -0
  262. package/vue/UiMenuItem.d.ts +34 -2
  263. package/vue/UiMenuItem.vue +145 -9
  264. package/vue/UiPopover.d.ts +2 -2
  265. package/vue/UiPopover.vue +44 -5
  266. package/vue/UiRadioGroup.d.ts +2 -0
  267. package/vue/UiRadioGroup.vue +17 -0
  268. package/vue/UiSearchShell.vue +12 -5
  269. package/vue/UiSelect.vue +18 -4
  270. package/vue/UiSwitch.vue +2 -2
  271. package/vue/UiSwitcher.d.ts +1 -0
  272. package/vue/UiSwitcher.vue +22 -1
  273. package/vue/UiTabs.d.ts +6 -2
  274. package/vue/UiTabs.vue +14 -12
  275. package/vue/UiTextarea.d.ts +2 -0
  276. package/vue/UiTextarea.vue +32 -4
  277. package/vue/UiToast.d.ts +34 -0
  278. package/vue/UiToast.js +2 -0
  279. package/vue/UiToast.vue +173 -0
  280. package/vue/UiToastRegion.d.ts +2 -18
  281. package/vue/UiToastRegion.vue +123 -48
  282. package/vue/UiTooltip.d.ts +2 -2
  283. package/vue/UiTooltip.vue +67 -12
  284. package/vue/UiTree.d.ts +10 -0
  285. package/vue/UiTree.vue +27 -0
  286. package/vue/UiTreeItem.d.ts +2 -0
  287. package/vue/UiTreeItem.vue +96 -4
  288. package/vue/chunks/UiAvatar.js +19 -5
  289. package/vue/chunks/UiAvatarGroup.js +10 -4
  290. package/vue/chunks/UiBadge.js +1 -1
  291. package/vue/chunks/UiButton.js +58 -11
  292. package/vue/chunks/UiCallout.js +2 -2
  293. package/vue/chunks/UiCheckbox.js +12 -2
  294. package/vue/chunks/UiCombobox.js +30 -13
  295. package/vue/chunks/UiContextMenu.js +6 -2
  296. package/vue/chunks/UiDialog.js +25 -8
  297. package/vue/chunks/UiDisclosure.js +36 -12
  298. package/vue/chunks/UiEditable.js +22 -8
  299. package/vue/chunks/UiEditorInsertTableGrid.js +11 -14
  300. package/vue/chunks/UiEditorMentionMenu.js +30 -19
  301. package/vue/chunks/UiEditorMentionMenuItem.js +36 -0
  302. package/vue/chunks/UiEditorSlashMenu.js +33 -35
  303. package/vue/chunks/UiEditorSlashMenuGroup.js +26 -0
  304. package/vue/chunks/UiEditorSlashMenuItem.js +51 -0
  305. package/vue/chunks/UiEditorTableContextMenu.js +39 -5
  306. package/vue/chunks/UiEditorTableOverlay.js +6 -6
  307. package/vue/chunks/UiEditorTableToolbar.js +37 -4
  308. package/vue/chunks/UiEditorToolbar.js +18 -4
  309. package/vue/chunks/UiFloatingActionButton.js +1 -1
  310. package/vue/chunks/UiFormField.js +13 -9
  311. package/vue/chunks/UiGrid.js +6 -2
  312. package/vue/chunks/UiIcon.js +40 -2
  313. package/vue/chunks/UiIconButton.js +35 -4
  314. package/vue/chunks/UiInput.js +1 -1
  315. package/vue/chunks/UiInputGroup.js +1 -1
  316. package/vue/chunks/UiListbox.js +70 -0
  317. package/vue/chunks/UiMenu.js +6 -2
  318. package/vue/chunks/UiMenuGroup.js +25 -0
  319. package/vue/chunks/UiMenuItem.js +128 -7
  320. package/vue/chunks/UiPopover.js +1 -1
  321. package/vue/chunks/UiRadioGroup.js +8 -2
  322. package/vue/chunks/UiSearchShell.js +1 -1
  323. package/vue/chunks/UiSelect.js +1 -1
  324. package/vue/chunks/UiSwitch.js +1 -1
  325. package/vue/chunks/UiSwitcher.js +20 -3
  326. package/vue/chunks/UiTabs.js +4 -3
  327. package/vue/chunks/UiTextarea.js +7 -2
  328. package/vue/chunks/UiToast.js +81 -0
  329. package/vue/chunks/UiToastRegion.js +25 -49
  330. package/vue/chunks/UiTooltip.js +3 -7
  331. package/vue/chunks/UiTree.js +8 -4
  332. package/vue/chunks/UiTreeItem.js +28 -10
  333. package/vue/components.css +1840 -851
  334. package/vue/editor/index.js +263 -2
  335. package/vue/index.d.ts +6 -0
  336. package/vue/index.js +9 -3
@@ -1,9 +1,9 @@
1
1
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
2
  import { n as useComponentHost, t as createDispatch } from "./host.js";
3
- import { createCommentVNode, createElementBlock, createElementVNode, defineComponent, mergeProps, openBlock, ref, renderSlot, toDisplayString, useTemplateRef } from "vue";
3
+ import { computed, createCommentVNode, createElementBlock, createElementVNode, defineComponent, mergeProps, openBlock, ref, renderSlot, toDisplayString, useTemplateRef } from "vue";
4
4
  import * as controllerModule from "@threadlabs/looma/components/ui-dialog/ui-dialog.js";
5
5
  //#region .build/vue/UiDialog.vue?vue&type=script&setup=true&lang.ts
6
- var _hoisted_1 = ["aria-label"];
6
+ var _hoisted_1 = ["aria-label", "data-ui-dialog-state"];
7
7
  var _hoisted_2 = {
8
8
  key: 0,
9
9
  class: "title"
@@ -21,22 +21,28 @@ var UiDialog_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
21
21
  inheritAttrs: false,
22
22
  __name: "UiDialog",
23
23
  props: {
24
- dismissible: {
24
+ alert: {
25
25
  type: Boolean,
26
26
  default: false
27
27
  },
28
+ closedby: { default: "closerequest" },
28
29
  for: { default: "" },
29
30
  label: {},
30
- modal: {
31
+ modeless: {
31
32
  type: Boolean,
32
33
  default: false
33
34
  },
34
35
  open: {
35
36
  type: Boolean,
36
37
  default: false
37
- }
38
+ },
39
+ size: { default: "md" }
38
40
  },
39
- emits: ["update:open", "close"],
41
+ emits: [
42
+ "update:open",
43
+ "open",
44
+ "close"
45
+ ],
40
46
  setup(__props, { emit: __emit }) {
41
47
  const props = __props;
42
48
  const emit = __emit;
@@ -44,13 +50,23 @@ var UiDialog_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
44
50
  const closeElement = useTemplateRef("close");
45
51
  const internalOpen = ref(false);
46
52
  const accessibleLabel = ref("Dialog");
53
+ /** The values the styles' :host-state() rules test. */
54
+ const hostState = computed(() => [props.size && `size size=${props.size}`, props.alert && "alert"].filter(Boolean).join(" "));
55
+ const isOpenDetail = (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["open"] === "boolean" && (detail["reason"] === "action" || detail["reason"] === "programmatic") && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
56
+ "open",
57
+ "reason",
58
+ "trigger"
59
+ ].includes(key));
47
60
  const isCloseDetail = (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) => [
48
61
  "open",
49
62
  "reason",
50
63
  "trigger"
51
64
  ].includes(key));
52
65
  const dispatch = createDispatch(root, emit, {
53
- checks: { close: isCloseDetail },
66
+ checks: {
67
+ open: isOpenDetail,
68
+ close: isCloseDetail
69
+ },
54
70
  modeled: ["open"]
55
71
  });
56
72
  useComponentHost(controllerModule.default, {
@@ -66,6 +82,7 @@ var UiDialog_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
66
82
  return (_ctx, _cache) => {
67
83
  return openBlock(), createElementBlock("dialog", mergeProps({ "data-component": "ui-dialog" }, _ctx.$attrs, {
68
84
  "aria-label": accessibleLabel.value,
85
+ "data-ui-dialog-state": hostState.value || void 0,
69
86
  ref_key: "root",
70
87
  ref: root
71
88
  }), [
@@ -75,6 +92,6 @@ var UiDialog_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
75
92
  ], 16, _hoisted_1);
76
93
  };
77
94
  }
78
- }), [["__scopeId", "data-v-616b4560"]]);
95
+ }), [["__scopeId", "data-v-8d67e1e0"]]);
79
96
  //#endregion
80
97
  export { UiDialog_default as t };
@@ -1,16 +1,18 @@
1
1
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
2
  import { n as useComponentHost, t as createDispatch } from "./host.js";
3
- import { computed, createElementBlock, createElementVNode, defineComponent, mergeProps, openBlock, ref, renderSlot, toDisplayString, useTemplateRef } from "vue";
3
+ import { computed, createElementBlock, createElementVNode, createTextVNode, defineComponent, mergeProps, openBlock, ref, renderSlot, toDisplayString, useTemplateRef } from "vue";
4
4
  import * as controllerModule from "@threadlabs/looma/components/ui-disclosure/ui-disclosure.js";
5
5
  //#region .build/vue/UiDisclosure.vue?vue&type=script&setup=true&lang.ts
6
6
  var _hoisted_1 = ["data-ui-disclosure-state"];
7
- var _hoisted_2 = [
7
+ var _hoisted_2 = ["role", "aria-level"];
8
+ var _hoisted_3 = [
8
9
  "aria-controls",
9
10
  "aria-expanded",
10
11
  "disabled"
11
12
  ];
12
- var _hoisted_3 = ["id", "inert"];
13
- var _hoisted_4 = { class: "panel-inner" };
13
+ var _hoisted_4 = { class: "summary" };
14
+ var _hoisted_5 = ["id"];
15
+ var _hoisted_6 = { class: "panel-inner" };
14
16
  //#endregion
15
17
  //#region .build/vue/UiDisclosure.vue
16
18
  var UiDisclosure_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
@@ -22,6 +24,8 @@ var UiDisclosure_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
22
24
  type: Boolean,
23
25
  default: false
24
26
  },
27
+ headingLevel: { default: 0 },
28
+ name: { default: "" },
25
29
  open: {
26
30
  type: Boolean,
27
31
  default: false
@@ -38,8 +42,11 @@ var UiDisclosure_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
38
42
  const emit = __emit;
39
43
  const root = ref(null);
40
44
  const triggerElement = useTemplateRef("trigger");
45
+ const panelElement = useTemplateRef("panel");
41
46
  const internalOpen = ref(false);
42
47
  const contentId = ref("");
48
+ const headingRole = ref(null);
49
+ const headingAriaLevel = ref(null);
43
50
  /** The values the styles' :host-state() rules test. */
44
51
  const hostState = computed(() => [props.density && `density density=${props.density}`, internalOpen.value && "internalOpen"].filter(Boolean).join(" "));
45
52
  const isOpenDetail = (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) => [
@@ -58,34 +65,51 @@ var UiDisclosure_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
58
65
  root,
59
66
  dispatch,
60
67
  props,
61
- refs: { trigger: triggerElement },
68
+ refs: {
69
+ trigger: triggerElement,
70
+ panel: panelElement
71
+ },
62
72
  state: {
63
73
  internalOpen,
64
- contentId
74
+ contentId,
75
+ headingRole,
76
+ headingAriaLevel
65
77
  }
66
78
  });
79
+ function text(value) {
80
+ if (Array.isArray(value)) return value.map(text).join(" ");
81
+ return value === null || value === void 0 || typeof value === "object" ? "" : String(value);
82
+ }
83
+ function attribute(value) {
84
+ if (value === null || value === void 0 || value === false || typeof value === "object" && !Array.isArray(value)) return void 0;
85
+ return value === true ? "" : text(value);
86
+ }
67
87
  return (_ctx, _cache) => {
68
88
  return openBlock(), createElementBlock("div", mergeProps({ "data-component": "ui-disclosure" }, _ctx.$attrs, {
69
89
  "data-ui-disclosure-state": hostState.value || void 0,
70
90
  ref_key: "root",
71
91
  ref: root
72
- }), [createElementVNode("button", {
92
+ }), [createElementVNode("div", {
93
+ class: "heading",
94
+ role: attribute(headingRole.value),
95
+ "aria-level": typeof headingAriaLevel.value === "boolean" ? String(headingAriaLevel.value) : attribute(headingAriaLevel.value)
96
+ }, [createElementVNode("button", {
73
97
  class: "trigger",
74
98
  type: "button",
75
99
  "aria-controls": contentId.value,
76
100
  "aria-expanded": internalOpen.value,
77
101
  disabled: __props.disabled,
78
102
  ref: "trigger"
79
- }, [createElementVNode("span", null, toDisplayString(__props.summary), 1), _cache[0] || (_cache[0] = createElementVNode("span", {
103
+ }, [createElementVNode("span", _hoisted_4, [renderSlot(_ctx.$slots, "summary", {}, () => [createTextVNode(toDisplayString(__props.summary), 1)], true)]), _cache[0] || (_cache[0] = createElementVNode("span", {
80
104
  class: "chevron",
81
105
  "aria-hidden": "true"
82
- }, null, -1))], 8, _hoisted_2), createElementVNode("div", {
106
+ }, null, -1))], 8, _hoisted_3)], 8, _hoisted_2), createElementVNode("div", {
83
107
  class: "panel",
84
108
  id: contentId.value,
85
- inert: !internalOpen.value
86
- }, [createElementVNode("div", _hoisted_4, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])], 8, _hoisted_3)], 16, _hoisted_1);
109
+ ref: "panel"
110
+ }, [createElementVNode("div", _hoisted_6, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])], 8, _hoisted_5)], 16, _hoisted_1);
87
111
  };
88
112
  }
89
- }), [["__scopeId", "data-v-07294756"]]);
113
+ }), [["__scopeId", "data-v-a496a6e7"]]);
90
114
  //#endregion
91
115
  export { UiDisclosure_default as t };
@@ -15,12 +15,22 @@ var _hoisted_5 = {
15
15
  var _hoisted_6 = [
16
16
  ".value",
17
17
  "aria-label",
18
+ "placeholder",
19
+ "required",
18
20
  "disabled"
19
21
  ];
20
22
  var _hoisted_7 = {
21
23
  key: 0,
22
24
  class: "actions"
23
25
  };
26
+ var _hoisted_8 = {
27
+ class: "save",
28
+ type: "button"
29
+ };
30
+ var _hoisted_9 = {
31
+ class: "cancel",
32
+ type: "button"
33
+ };
24
34
  //#endregion
25
35
  //#region .build/vue/UiEditable.vue
26
36
  var UiEditable_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
@@ -31,6 +41,7 @@ var UiEditable_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
31
41
  type: Boolean,
32
42
  default: false
33
43
  },
44
+ cancelLabel: { default: "Cancel" },
34
45
  disabled: {
35
46
  type: Boolean,
36
47
  default: false
@@ -41,6 +52,13 @@ var UiEditable_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
41
52
  },
42
53
  hint: { default: "" },
43
54
  label: { default: "Edit value" },
55
+ maxLength: { default: 0 },
56
+ placeholder: { default: "" },
57
+ required: {
58
+ type: Boolean,
59
+ default: false
60
+ },
61
+ saveLabel: { default: "Save" },
44
62
  value: { default: "" }
45
63
  },
46
64
  emits: [
@@ -109,17 +127,13 @@ var UiEditable_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
109
127
  type: "text",
110
128
  ".value": draft.value,
111
129
  "aria-label": __props.label,
130
+ placeholder: __props.placeholder,
131
+ required: __props.required,
112
132
  disabled: __props.disabled || !internalEdit.value,
113
133
  ref: "input"
114
- }, null, 40, _hoisted_6)]), __props.actions ? (openBlock(), createElementBlock("div", _hoisted_7, [..._cache[0] || (_cache[0] = [createElementVNode("button", {
115
- class: "save",
116
- type: "button"
117
- }, "Save", -1), createElementVNode("button", {
118
- class: "cancel",
119
- type: "button"
120
- }, "Cancel", -1)])])) : createCommentVNode("v-if", true)], 16, _hoisted_1);
134
+ }, null, 40, _hoisted_6)]), __props.actions ? (openBlock(), createElementBlock("div", _hoisted_7, [createElementVNode("button", _hoisted_8, toDisplayString(__props.saveLabel), 1), createElementVNode("button", _hoisted_9, toDisplayString(__props.cancelLabel), 1)])) : createCommentVNode("v-if", true)], 16, _hoisted_1);
121
135
  };
122
136
  }
123
- }), [["__scopeId", "data-v-73a44500"]]);
137
+ }), [["__scopeId", "data-v-39853d49"]]);
124
138
  //#endregion
125
139
  export { UiEditable_default as t };
@@ -9,15 +9,11 @@ var _hoisted_3 = [
9
9
  "data-row",
10
10
  "data-col",
11
11
  "aria-label",
12
- "aria-pressed"
12
+ "aria-pressed",
13
+ "tabindex"
13
14
  ];
14
15
  var _hoisted_4 = { class: "header" };
15
16
  var _hoisted_5 = [".checked"];
16
- var _hoisted_6 = {
17
- type: "button",
18
- class: "insert",
19
- ref: "insert"
20
- };
21
17
  //#endregion
22
18
  //#region .build/vue/UiEditorInsertTableGrid.vue
23
19
  var UiEditorInsertTableGrid_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
@@ -40,8 +36,8 @@ var UiEditorInsertTableGrid_default = /*#__PURE__*/ _plugin_vue_export_helper_de
40
36
  const props = __props;
41
37
  const emit = __emit;
42
38
  const root = ref(null);
39
+ const gridElement = useTemplateRef("grid");
43
40
  const headerElement = useTemplateRef("header");
44
- const insertElement = useTemplateRef("insert");
45
41
  const cells = ref([]);
46
42
  const rows = ref(8);
47
43
  const cols = ref(8);
@@ -58,8 +54,8 @@ var UiEditorInsertTableGrid_default = /*#__PURE__*/ _plugin_vue_export_helper_de
58
54
  dispatch,
59
55
  props,
60
56
  refs: {
61
- header: headerElement,
62
- insert: insertElement
57
+ grid: gridElement,
58
+ header: headerElement
63
59
  },
64
60
  state: {
65
61
  cells,
@@ -83,7 +79,8 @@ var UiEditorInsertTableGrid_default = /*#__PURE__*/ _plugin_vue_export_helper_de
83
79
  style: normalizeStyle({
84
80
  "--_rows": rows.value,
85
81
  "--_cols": cols.value
86
- })
82
+ }),
83
+ ref: "grid"
87
84
  }, [(openBlock(true), createElementBlock(Fragment, null, renderList(cells.value, (cell) => {
88
85
  return openBlock(), createElementBlock("button", {
89
86
  key: cell.key,
@@ -92,18 +89,18 @@ var UiEditorInsertTableGrid_default = /*#__PURE__*/ _plugin_vue_export_helper_de
92
89
  "data-row": cell.row,
93
90
  "data-col": cell.col,
94
91
  "aria-label": cell.label,
95
- "aria-pressed": cell.selected
92
+ "aria-pressed": cell.selected,
93
+ tabindex: cell.tabIndex
96
94
  }, null, 10, _hoisted_3);
97
95
  }), 128))], 4),
98
96
  createElementVNode("label", _hoisted_4, [createElementVNode("input", {
99
97
  type: "checkbox",
100
98
  ".checked": withHeaderRow.value,
101
99
  ref: "header"
102
- }, null, 40, _hoisted_5), _cache[0] || (_cache[0] = createTextVNode(" Header row", -1))]),
103
- createElementVNode("button", _hoisted_6, "Insert table", 512)
100
+ }, null, 40, _hoisted_5), _cache[0] || (_cache[0] = createTextVNode(" Header row", -1))])
104
101
  ], 16, _hoisted_1);
105
102
  };
106
103
  }
107
- }), [["__scopeId", "data-v-efb1c451"]]);
104
+ }), [["__scopeId", "data-v-2dd6031b"]]);
108
105
  //#endregion
109
106
  export { UiEditorInsertTableGrid_default as t };
@@ -1,34 +1,40 @@
1
1
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
2
  import { n as useComponentHost, t as createDispatch } from "./host.js";
3
- import { Fragment, createCommentVNode, createElementBlock, createElementVNode, defineComponent, mergeProps, normalizeClass, openBlock, ref, renderList, toDisplayString } from "vue";
3
+ import { Fragment, createCommentVNode, createElementBlock, createElementVNode, defineComponent, mergeProps, normalizeClass, openBlock, ref, renderList, renderSlot, toDisplayString, useTemplateRef } from "vue";
4
4
  import * as controllerModule from "@threadlabs/looma/components/ui-editor-mention-menu/ui-editor-mention-menu.js";
5
5
  //#region .build/vue/UiEditorMentionMenu.vue?vue&type=script&setup=true&lang.ts
6
6
  var _hoisted_1 = ["aria-busy", "hidden"];
7
- var _hoisted_2 = {
7
+ var _hoisted_2 = { class: "header" };
8
+ var _hoisted_3 = {
8
9
  key: 0,
9
10
  class: "loading",
10
11
  role: "status"
11
12
  };
12
- var _hoisted_3 = {
13
+ var _hoisted_4 = {
13
14
  key: 1,
14
15
  class: "list",
15
16
  role: "presentation"
16
17
  };
17
- var _hoisted_4 = [
18
+ var _hoisted_5 = [
18
19
  "id",
19
20
  "aria-selected",
20
- "data-index"
21
+ "data-index",
22
+ "data-value"
21
23
  ];
22
- var _hoisted_5 = {
24
+ var _hoisted_6 = {
23
25
  class: "avatar",
24
26
  "aria-hidden": "true"
25
27
  };
26
- var _hoisted_6 = { class: "body" };
27
- var _hoisted_7 = { class: "label" };
28
- var _hoisted_8 = {
28
+ var _hoisted_7 = { class: "body" };
29
+ var _hoisted_8 = { class: "label" };
30
+ var _hoisted_9 = {
29
31
  key: 0,
30
32
  class: "detail"
31
33
  };
34
+ var _hoisted_10 = {
35
+ class: "empty",
36
+ ref: "empty"
37
+ };
32
38
  //#endregion
33
39
  //#region .build/vue/UiEditorMentionMenu.vue
34
40
  var UiEditorMentionMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
@@ -37,10 +43,12 @@ var UiEditorMentionMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_defaul
37
43
  props: {
38
44
  anchorRect: {},
39
45
  items: {},
46
+ label: { default: "Mentions" },
40
47
  loading: {
41
48
  type: Boolean,
42
49
  default: false
43
50
  },
51
+ loadingLabel: { default: "Searching…" },
44
52
  open: {
45
53
  type: Boolean,
46
54
  default: false
@@ -53,12 +61,13 @@ var UiEditorMentionMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_defaul
53
61
  const props = __props;
54
62
  const emit = __emit;
55
63
  const root = ref(null);
64
+ const emptyElement = useTemplateRef("empty");
56
65
  const visible = ref(false);
57
66
  const rows = ref([]);
58
67
  const searching = ref(false);
59
68
  const active = ref(0);
60
69
  const prefix = ref("ui-editor-mention-menu");
61
- const isHighlightDetail = (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && Number.isInteger(detail["index"]) && Object.keys(detail).every((key) => ["index"].includes(key));
70
+ const isHighlightDetail = (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && Number.isInteger(detail["index"]) && typeof detail["value"] === "string" && Object.keys(detail).every((key) => ["index", "value"].includes(key));
62
71
  const dispatch = createDispatch(root, emit, { checks: {
63
72
  highlight: isHighlightDetail,
64
73
  select: isHighlightDetail
@@ -67,6 +76,7 @@ var UiEditorMentionMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_defaul
67
76
  root,
68
77
  dispatch,
69
78
  props,
79
+ refs: { empty: emptyElement },
70
80
  state: {
71
81
  visible,
72
82
  rows,
@@ -78,29 +88,30 @@ var UiEditorMentionMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_defaul
78
88
  return (_ctx, _cache) => {
79
89
  return openBlock(), createElementBlock("div", mergeProps({
80
90
  "data-component": "ui-editor-mention-menu",
81
- role: "listbox",
82
- "aria-label": "Mention a person"
91
+ role: "listbox"
83
92
  }, _ctx.$attrs, {
84
93
  "aria-busy": __props.loading,
85
94
  hidden: !visible.value,
86
95
  ref_key: "root",
87
96
  ref: root
88
97
  }), [
89
- _cache[0] || (_cache[0] = createElementVNode("div", { class: "header" }, [createElementVNode("span", null, "People"), createElementVNode("span", { class: "hint" }, "Type after @ to search")], -1)),
90
- searching.value ? (openBlock(), createElementBlock("div", _hoisted_2, "Searching…")) : createCommentVNode("v-if", true),
91
- !searching.value ? (openBlock(), createElementBlock("ul", _hoisted_3, [(openBlock(true), createElementBlock(Fragment, null, renderList(rows.value, (row, index) => {
98
+ createElementVNode("div", _hoisted_2, [renderSlot(_ctx.$slots, "header", {}, void 0, true)]),
99
+ searching.value ? (openBlock(), createElementBlock("div", _hoisted_3, toDisplayString(__props.loadingLabel), 1)) : createCommentVNode("v-if", true),
100
+ !searching.value ? (openBlock(), createElementBlock("ul", _hoisted_4, [(openBlock(true), createElementBlock(Fragment, null, renderList(rows.value, (row, index) => {
92
101
  return openBlock(), createElementBlock("li", {
93
102
  key: index,
94
103
  class: normalizeClass(["item", { active: index === active.value }]),
95
104
  role: "option",
96
105
  id: `${prefix.value}-option-${index}`,
97
106
  "aria-selected": index === active.value,
98
- "data-index": index
99
- }, [createElementVNode("span", _hoisted_5, toDisplayString(row.initials), 1), createElementVNode("span", _hoisted_6, [createElementVNode("span", _hoisted_7, toDisplayString(row.label), 1), row.detail ? (openBlock(), createElementBlock("span", _hoisted_8, toDisplayString(row.detail), 1)) : createCommentVNode("v-if", true)])], 10, _hoisted_4);
100
- }), 128))])) : createCommentVNode("v-if", true)
107
+ "data-index": index,
108
+ "data-value": row.id
109
+ }, [createElementVNode("span", _hoisted_6, toDisplayString(row.initials), 1), createElementVNode("span", _hoisted_7, [createElementVNode("span", _hoisted_8, toDisplayString(row.label), 1), row.detail ? (openBlock(), createElementBlock("span", _hoisted_9, toDisplayString(row.detail), 1)) : createCommentVNode("v-if", true)])], 10, _hoisted_5);
110
+ }), 128)), renderSlot(_ctx.$slots, "default", {}, void 0, true)])) : createCommentVNode("v-if", true),
111
+ createElementVNode("div", _hoisted_10, [renderSlot(_ctx.$slots, "empty", {}, void 0, true)], 512)
101
112
  ], 16, _hoisted_1);
102
113
  };
103
114
  }
104
- }), [["__scopeId", "data-v-b290e588"]]);
115
+ }), [["__scopeId", "data-v-a5ae5970"]]);
105
116
  //#endregion
106
117
  export { UiEditorMentionMenu_default as t };
@@ -0,0 +1,36 @@
1
+ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
+ import { createCommentVNode, createElementBlock, createElementVNode, createTextVNode, defineComponent, mergeProps, openBlock, renderSlot, toDisplayString } from "vue";
3
+ //#region .build/vue/UiEditorMentionMenuItem.vue?vue&type=script&setup=true&lang.ts
4
+ var _hoisted_1 = ["data-value"];
5
+ var _hoisted_2 = {
6
+ class: "avatar",
7
+ "aria-hidden": "true"
8
+ };
9
+ var _hoisted_3 = { class: "body" };
10
+ var _hoisted_4 = { class: "label" };
11
+ var _hoisted_5 = {
12
+ key: 0,
13
+ class: "detail"
14
+ };
15
+ //#endregion
16
+ //#region .build/vue/UiEditorMentionMenuItem.vue
17
+ var UiEditorMentionMenuItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
18
+ inheritAttrs: false,
19
+ __name: "UiEditorMentionMenuItem",
20
+ props: {
21
+ detail: { default: "" },
22
+ initials: { default: "" },
23
+ value: { default: "" }
24
+ },
25
+ setup(__props) {
26
+ return (_ctx, _cache) => {
27
+ return openBlock(), createElementBlock("li", mergeProps({
28
+ "data-component": "ui-editor-mention-menu-item",
29
+ role: "option",
30
+ tabindex: "-1"
31
+ }, _ctx.$attrs, { "data-value": __props.value }), [createElementVNode("span", _hoisted_2, [renderSlot(_ctx.$slots, "start", {}, () => [createTextVNode(toDisplayString(__props.initials), 1)], true)]), createElementVNode("span", _hoisted_3, [createElementVNode("span", _hoisted_4, [renderSlot(_ctx.$slots, "default", {}, void 0, true)]), __props.detail ? (openBlock(), createElementBlock("span", _hoisted_5, toDisplayString(__props.detail), 1)) : createCommentVNode("v-if", true)])], 16, _hoisted_1);
32
+ };
33
+ }
34
+ }), [["__scopeId", "data-v-91fa2023"]]);
35
+ //#endregion
36
+ export { UiEditorMentionMenuItem_default as t };
@@ -1,30 +1,32 @@
1
1
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
2
  import { n as useComponentHost, t as createDispatch } from "./host.js";
3
3
  import { t as UiIcon_default } from "./UiIcon.js";
4
- import { Fragment, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, mergeProps, normalizeClass, openBlock, ref, renderList, toDisplayString } from "vue";
4
+ import { Fragment, createElementBlock, createElementVNode, createVNode, defineComponent, mergeProps, normalizeClass, openBlock, ref, renderList, renderSlot, toDisplayString, useTemplateRef } from "vue";
5
5
  import * as controllerModule from "@threadlabs/looma/components/ui-editor-slash-menu/ui-editor-slash-menu.js";
6
6
  //#region .build/vue/UiEditorSlashMenu.vue?vue&type=script&setup=true&lang.ts
7
7
  var _hoisted_1 = ["hidden"];
8
- var _hoisted_2 = {
9
- class: "header",
10
- "aria-hidden": "true"
11
- };
8
+ var _hoisted_2 = { class: "header" };
12
9
  var _hoisted_3 = {
13
- key: 0,
14
- class: "header-query"
15
- };
16
- var _hoisted_4 = {
17
10
  class: "list",
18
11
  role: "presentation"
19
12
  };
20
- var _hoisted_5 = ["aria-selected", "data-index"];
21
- var _hoisted_6 = {
13
+ var _hoisted_4 = [
14
+ "aria-selected",
15
+ "data-index",
16
+ "data-value"
17
+ ];
18
+ var _hoisted_5 = {
22
19
  class: "icon",
23
20
  "aria-hidden": "true"
24
21
  };
25
- var _hoisted_7 = { class: "body" };
26
- var _hoisted_8 = { class: "title" };
27
- var _hoisted_9 = { class: "description" };
22
+ var _hoisted_6 = { class: "body" };
23
+ var _hoisted_7 = { class: "title" };
24
+ var _hoisted_8 = { class: "description" };
25
+ var _hoisted_9 = {
26
+ class: "empty",
27
+ ref: "empty"
28
+ };
29
+ var _hoisted_10 = { class: "footer" };
28
30
  //#endregion
29
31
  //#region .build/vue/UiEditorSlashMenu.vue
30
32
  var UiEditorSlashMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
@@ -33,6 +35,7 @@ var UiEditorSlashMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_default(
33
35
  props: {
34
36
  anchorRect: {},
35
37
  items: {},
38
+ label: { default: "Insert block" },
36
39
  open: {
37
40
  type: Boolean,
38
41
  default: false
@@ -45,9 +48,11 @@ var UiEditorSlashMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_default(
45
48
  const props = __props;
46
49
  const emit = __emit;
47
50
  const root = ref(null);
51
+ const emptyElement = useTemplateRef("empty");
48
52
  const visible = ref(false);
49
53
  const active = ref(0);
50
- const isHighlightDetail = (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && Number.isInteger(detail["index"]) && Object.keys(detail).every((key) => ["index"].includes(key));
54
+ const rows = ref([]);
55
+ const isHighlightDetail = (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && Number.isInteger(detail["index"]) && typeof detail["value"] === "string" && Object.keys(detail).every((key) => ["index", "value"].includes(key));
51
56
  const dispatch = createDispatch(root, emit, { checks: {
52
57
  highlight: isHighlightDetail,
53
58
  select: isHighlightDetail
@@ -56,45 +61,38 @@ var UiEditorSlashMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_default(
56
61
  root,
57
62
  dispatch,
58
63
  props,
64
+ refs: { empty: emptyElement },
59
65
  state: {
60
66
  visible,
61
- active
67
+ active,
68
+ rows
62
69
  }
63
70
  });
64
71
  return (_ctx, _cache) => {
65
72
  return openBlock(), createElementBlock("div", mergeProps({
66
73
  "data-component": "ui-editor-slash-menu",
67
- role: "listbox",
68
- "aria-label": "Insert block"
74
+ role: "listbox"
69
75
  }, _ctx.$attrs, {
70
76
  hidden: !visible.value,
71
77
  ref_key: "root",
72
78
  ref: root
73
79
  }), [
74
- createElementVNode("div", _hoisted_2, [_cache[0] || (_cache[0] = createElementVNode("span", { class: "header-label" }, "Insert", -1)), __props.query ? (openBlock(), createElementBlock("span", _hoisted_3, toDisplayString(__props.query), 1)) : createCommentVNode("v-if", true)]),
75
- createElementVNode("ul", _hoisted_4, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item, index) => {
80
+ createElementVNode("div", _hoisted_2, [renderSlot(_ctx.$slots, "header", {}, void 0, true)]),
81
+ createElementVNode("ul", _hoisted_3, [(openBlock(true), createElementBlock(Fragment, null, renderList(rows.value, (item, index) => {
76
82
  return openBlock(), createElementBlock("li", {
77
83
  key: index,
78
84
  class: normalizeClass(["item", { active: index === active.value }]),
79
85
  role: "option",
80
86
  "aria-selected": index === active.value,
81
- "data-index": index
82
- }, [createElementVNode("span", _hoisted_6, [createVNode(UiIcon_default, { name: item.icon }, null, 8, ["name"])]), createElementVNode("span", _hoisted_7, [createElementVNode("span", _hoisted_8, toDisplayString(item.title), 1), createElementVNode("span", _hoisted_9, toDisplayString(item.description), 1)])], 10, _hoisted_5);
83
- }), 128))]),
84
- _cache[1] || (_cache[1] = createElementVNode("div", {
85
- class: "footer",
86
- "aria-hidden": "true"
87
- }, [
88
- createElementVNode("kbd", null, "↑↓"),
89
- createTextVNode(" navigate · "),
90
- createElementVNode("kbd", null, "↵"),
91
- createTextVNode(" insert · "),
92
- createElementVNode("kbd", null, "Esc"),
93
- createTextVNode(" close ")
94
- ], -1))
87
+ "data-index": index,
88
+ "data-value": item.value
89
+ }, [createElementVNode("span", _hoisted_5, [createVNode(UiIcon_default, { name: item.icon }, null, 8, ["name"])]), createElementVNode("span", _hoisted_6, [createElementVNode("span", _hoisted_7, toDisplayString(item.title), 1), createElementVNode("span", _hoisted_8, toDisplayString(item.description), 1)])], 10, _hoisted_4);
90
+ }), 128)), renderSlot(_ctx.$slots, "default", {}, void 0, true)]),
91
+ createElementVNode("div", _hoisted_9, [renderSlot(_ctx.$slots, "empty", {}, void 0, true)], 512),
92
+ createElementVNode("div", _hoisted_10, [renderSlot(_ctx.$slots, "footer", {}, void 0, true)])
95
93
  ], 16, _hoisted_1);
96
94
  };
97
95
  }
98
- }), [["__scopeId", "data-v-2399c2e3"]]);
96
+ }), [["__scopeId", "data-v-3f70d2bc"]]);
99
97
  //#endregion
100
98
  export { UiEditorSlashMenu_default as t };
@@ -0,0 +1,26 @@
1
+ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
+ import { createElementBlock, createElementVNode, defineComponent, mergeProps, openBlock, renderSlot, toDisplayString } from "vue";
3
+ //#region .build/vue/UiEditorSlashMenuGroup.vue?vue&type=script&setup=true&lang.ts
4
+ var _hoisted_1 = ["aria-label"];
5
+ var _hoisted_2 = { class: "heading" };
6
+ var _hoisted_3 = { role: "presentation" };
7
+ //#endregion
8
+ //#region .build/vue/UiEditorSlashMenuGroup.vue
9
+ var UiEditorSlashMenuGroup_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
10
+ inheritAttrs: false,
11
+ __name: "UiEditorSlashMenuGroup",
12
+ props: { label: { default: "" } },
13
+ setup(__props) {
14
+ return (_ctx, _cache) => {
15
+ return openBlock(), createElementBlock("li", mergeProps({
16
+ "data-component": "ui-editor-slash-menu-group",
17
+ role: "presentation"
18
+ }, _ctx.$attrs), [createElementVNode("div", {
19
+ role: "group",
20
+ "aria-label": __props.label
21
+ }, [createElementVNode("div", _hoisted_2, toDisplayString(__props.label), 1), createElementVNode("ul", _hoisted_3, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])], 8, _hoisted_1)], 16);
22
+ };
23
+ }
24
+ }), [["__scopeId", "data-v-7603f4ce"]]);
25
+ //#endregion
26
+ export { UiEditorSlashMenuGroup_default as t };