@threadlabs/looma 0.2.5 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (427) hide show
  1. package/dist/chunk-3K45IWIJ.js +4733 -0
  2. package/dist/chunk-MLKGABMK.js +9 -0
  3. package/dist/chunk-UHHA4WT5.js +2916 -0
  4. package/dist/declarative-generated.cjs +135 -0
  5. package/dist/declarative-generated.d.cts +10 -0
  6. package/dist/declarative-generated.d.ts +10 -0
  7. package/dist/declarative-generated.js +111 -0
  8. package/dist/declarative.cjs +2944 -0
  9. package/dist/declarative.d.cts +27 -0
  10. package/dist/declarative.d.ts +27 -0
  11. package/dist/declarative.js +13 -0
  12. package/dist/index.cjs +7480 -6457
  13. package/dist/index.d.cts +4 -58
  14. package/dist/index.d.ts +4 -58
  15. package/dist/index.js +15 -27
  16. package/dist/loader.cjs +7654 -0
  17. package/dist/loader.d.cts +4 -0
  18. package/dist/loader.d.ts +4 -0
  19. package/dist/loader.js +16 -0
  20. package/dist/valibot.cjs +31 -0
  21. package/dist/valibot.d.cts +10 -0
  22. package/dist/valibot.d.ts +1 -43
  23. package/dist/valibot.js +2 -0
  24. package/dist/{types/field/validation.d.ts → validation-bxcou-l-.d.cts} +13 -11
  25. package/dist/validation-bxcou-l-.d.ts +58 -0
  26. package/editor/{chunk-B5WVJOPV.js → chunk-BXICJBWS.js} +118 -8
  27. package/editor/{chunk-ZOUKEZ77.js → chunk-JK53ENSG.js} +8 -21
  28. package/editor/chunk-WI7ZA44X.js +2558 -0
  29. package/editor/extensions/index.d.ts +11 -2
  30. package/editor/extensions/index.js +9 -7
  31. package/editor/index.d.ts +1 -1
  32. package/editor/index.js +10 -8
  33. package/editor/ui.js +2 -2
  34. package/editor.css +32 -0
  35. package/layout/index.cjs +466 -400
  36. package/layout/index.d.cts +1 -2
  37. package/layout/index.d.ts +1 -2
  38. package/layout/index.js +471 -395
  39. package/package.json +14 -5
  40. package/vue/chunk-4DPYH3IT.js +3538 -0
  41. package/vue/editor/index.d.ts +17 -7
  42. package/vue/editor/index.js +53 -35
  43. package/vue/index.d.ts +48 -31
  44. package/vue/index.js +1 -1
  45. package/dist/chunk-24OTMNIU.js +0 -1617
  46. package/dist/chunk-D5WRORG6.js +0 -366
  47. package/dist/chunk-HNFCGIBP.js +0 -8
  48. package/dist/chunk-NB6DBRXQ.js +0 -323
  49. package/dist/chunk-OF57X5AR.js +0 -10
  50. package/dist/chunk-TL4FIE7X.js +0 -93
  51. package/dist/chunk-UL7UIUJZ.js +0 -20
  52. package/dist/cjs/app-globals-V2Kpy_OQ.js +0 -5
  53. package/dist/cjs/controlled-state-BFya8rAX.js +0 -9
  54. package/dist/cjs/events-TcQIzpNv.js +0 -19
  55. package/dist/cjs/icons-BAdjrnhS.js +0 -680
  56. package/dist/cjs/id-CYbKpaYr.js +0 -9
  57. package/dist/cjs/index-BHG9Rpil.js +0 -1602
  58. package/dist/cjs/index.cjs.js +0 -2
  59. package/dist/cjs/loader.cjs.js +0 -13
  60. package/dist/cjs/looma.cjs.js +0 -25
  61. package/dist/cjs/manager-Ce25WRtl.js +0 -95
  62. package/dist/cjs/positioning-CCR6ifPj.js +0 -426
  63. package/dist/cjs/ui-affordance-scope.cjs.entry.js +0 -43
  64. package/dist/cjs/ui-avatar-group.cjs.entry.js +0 -43
  65. package/dist/cjs/ui-avatar.cjs.entry.js +0 -50
  66. package/dist/cjs/ui-badge.cjs.entry.js +0 -19
  67. package/dist/cjs/ui-button.cjs.entry.js +0 -75
  68. package/dist/cjs/ui-callout.cjs.entry.js +0 -27
  69. package/dist/cjs/ui-checkbox.cjs.entry.js +0 -97
  70. package/dist/cjs/ui-chip_2.cjs.entry.js +0 -258
  71. package/dist/cjs/ui-combobox.cjs.entry.js +0 -708
  72. package/dist/cjs/ui-context-menu.cjs.entry.js +0 -239
  73. package/dist/cjs/ui-dialog.cjs.entry.js +0 -131
  74. package/dist/cjs/ui-disclosure.cjs.entry.js +0 -112
  75. package/dist/cjs/ui-editable.cjs.entry.js +0 -100
  76. package/dist/cjs/ui-floating-action-button.cjs.entry.js +0 -20
  77. package/dist/cjs/ui-form-field.cjs.entry.js +0 -114
  78. package/dist/cjs/ui-icon-button.cjs.entry.js +0 -23
  79. package/dist/cjs/ui-input.cjs.entry.js +0 -106
  80. package/dist/cjs/ui-menu-item.cjs.entry.js +0 -19
  81. package/dist/cjs/ui-menu.cjs.entry.js +0 -182
  82. package/dist/cjs/ui-popover.cjs.entry.js +0 -135
  83. package/dist/cjs/ui-radio-group.cjs.entry.js +0 -134
  84. package/dist/cjs/ui-radio.cjs.entry.js +0 -94
  85. package/dist/cjs/ui-search-result-row.cjs.entry.js +0 -47
  86. package/dist/cjs/ui-search-shell.cjs.entry.js +0 -39
  87. package/dist/cjs/ui-select.cjs.entry.js +0 -108
  88. package/dist/cjs/ui-switch.cjs.entry.js +0 -74
  89. package/dist/cjs/ui-tabs.cjs.entry.js +0 -118
  90. package/dist/cjs/ui-textarea.cjs.entry.js +0 -110
  91. package/dist/cjs/ui-toast-region.cjs.entry.js +0 -93
  92. package/dist/cjs/ui-top-bar.cjs.entry.js +0 -43
  93. package/dist/cjs/ui-tree-item.cjs.entry.js +0 -135
  94. package/dist/cjs/ui-tree.cjs.entry.js +0 -500
  95. package/dist/collection/collection-manifest.json +0 -45
  96. package/dist/collection/components/ui-affordance-scope/ui-affordance-scope.css +0 -8
  97. package/dist/collection/components/ui-affordance-scope/ui-affordance-scope.js +0 -70
  98. package/dist/collection/components/ui-avatar/ui-avatar.css +0 -35
  99. package/dist/collection/components/ui-avatar/ui-avatar.js +0 -130
  100. package/dist/collection/components/ui-avatar-group/ui-avatar-group.css +0 -32
  101. package/dist/collection/components/ui-avatar-group/ui-avatar-group.js +0 -95
  102. package/dist/collection/components/ui-badge/ui-badge.css +0 -90
  103. package/dist/collection/components/ui-badge/ui-badge.js +0 -62
  104. package/dist/collection/components/ui-button/ui-button.css +0 -121
  105. package/dist/collection/components/ui-button/ui-button.js +0 -141
  106. package/dist/collection/components/ui-callout/ui-callout.css +0 -74
  107. package/dist/collection/components/ui-callout/ui-callout.js +0 -59
  108. package/dist/collection/components/ui-checkbox/ui-checkbox.css +0 -24
  109. package/dist/collection/components/ui-checkbox/ui-checkbox.js +0 -228
  110. package/dist/collection/components/ui-chip/ui-chip.css +0 -57
  111. package/dist/collection/components/ui-chip/ui-chip.js +0 -67
  112. package/dist/collection/components/ui-combobox/ui-combobox.css +0 -47
  113. package/dist/collection/components/ui-combobox/ui-combobox.js +0 -1295
  114. package/dist/collection/components/ui-context-menu/ui-context-menu.css +0 -34
  115. package/dist/collection/components/ui-context-menu/ui-context-menu.js +0 -311
  116. package/dist/collection/components/ui-dialog/ui-dialog.css +0 -72
  117. package/dist/collection/components/ui-dialog/ui-dialog.js +0 -242
  118. package/dist/collection/components/ui-disclosure/ui-disclosure.css +0 -7
  119. package/dist/collection/components/ui-disclosure/ui-disclosure.js +0 -184
  120. package/dist/collection/components/ui-editable/ui-editable.css +0 -2
  121. package/dist/collection/components/ui-editable/ui-editable.js +0 -196
  122. package/dist/collection/components/ui-floating-action-button/ui-floating-action-button.css +0 -73
  123. package/dist/collection/components/ui-floating-action-button/ui-floating-action-button.js +0 -85
  124. package/dist/collection/components/ui-form-field/ui-form-field.css +0 -25
  125. package/dist/collection/components/ui-form-field/ui-form-field.js +0 -180
  126. package/dist/collection/components/ui-icon-button/ui-icon-button.css +0 -145
  127. package/dist/collection/components/ui-icon-button/ui-icon-button.js +0 -128
  128. package/dist/collection/components/ui-input/ui-input.css +0 -48
  129. package/dist/collection/components/ui-input/ui-input.js +0 -217
  130. package/dist/collection/components/ui-menu/ui-menu.css +0 -73
  131. package/dist/collection/components/ui-menu/ui-menu.js +0 -280
  132. package/dist/collection/components/ui-menu-item/ui-menu-item.css +0 -32
  133. package/dist/collection/components/ui-menu-item/ui-menu-item.js +0 -64
  134. package/dist/collection/components/ui-popover/ui-popover.css +0 -58
  135. package/dist/collection/components/ui-popover/ui-popover.js +0 -232
  136. package/dist/collection/components/ui-radio/ui-radio.css +0 -22
  137. package/dist/collection/components/ui-radio/ui-radio.js +0 -226
  138. package/dist/collection/components/ui-radio-group/ui-radio-group.css +0 -10
  139. package/dist/collection/components/ui-radio-group/ui-radio-group.js +0 -247
  140. package/dist/collection/components/ui-search-result-row/ui-search-result-row.css +0 -80
  141. package/dist/collection/components/ui-search-result-row/ui-search-result-row.js +0 -100
  142. package/dist/collection/components/ui-search-shell/ui-search-shell.css +0 -63
  143. package/dist/collection/components/ui-search-shell/ui-search-shell.js +0 -46
  144. package/dist/collection/components/ui-select/ui-select.css +0 -64
  145. package/dist/collection/components/ui-select/ui-select.js +0 -218
  146. package/dist/collection/components/ui-switch/ui-switch.css +0 -63
  147. package/dist/collection/components/ui-switch/ui-switch.js +0 -185
  148. package/dist/collection/components/ui-tabs/ui-tabs.css +0 -68
  149. package/dist/collection/components/ui-tabs/ui-tabs.js +0 -190
  150. package/dist/collection/components/ui-textarea/ui-textarea.css +0 -49
  151. package/dist/collection/components/ui-textarea/ui-textarea.js +0 -241
  152. package/dist/collection/components/ui-toast-region/ui-toast-region.css +0 -59
  153. package/dist/collection/components/ui-toast-region/ui-toast-region.js +0 -126
  154. package/dist/collection/components/ui-tooltip/ui-tooltip.css +0 -43
  155. package/dist/collection/components/ui-tooltip/ui-tooltip.js +0 -430
  156. package/dist/collection/components/ui-top-bar/ui-top-bar.css +0 -51
  157. package/dist/collection/components/ui-top-bar/ui-top-bar.js +0 -52
  158. package/dist/collection/components/ui-tree/ui-tree.css +0 -12
  159. package/dist/collection/components/ui-tree/ui-tree.js +0 -515
  160. package/dist/collection/components/ui-tree-item/ui-tree-item.css +0 -217
  161. package/dist/collection/components/ui-tree-item/ui-tree-item.js +0 -406
  162. package/dist/collection/field/combobox.js +0 -4
  163. package/dist/collection/field/editable.js +0 -1
  164. package/dist/collection/field/multi-combobox.js +0 -1
  165. package/dist/collection/field/valibot.js +0 -5
  166. package/dist/collection/field/validation.js +0 -62
  167. package/dist/collection/icons.js +0 -71
  168. package/dist/collection/input-modality.js +0 -24
  169. package/dist/collection/overlay/manager.js +0 -92
  170. package/dist/collection/overlay/positioning.js +0 -424
  171. package/dist/collection/utils/controlled-state.js +0 -4
  172. package/dist/collection/utils/drag-drop.js +0 -51
  173. package/dist/collection/utils/events.js +0 -13
  174. package/dist/collection/utils/id.js +0 -5
  175. package/dist/collection/utils/initials.js +0 -11
  176. package/dist/components/index.d.ts +0 -102
  177. package/dist/components/index.js +0 -1
  178. package/dist/components/p-6SWSrfmW.js +0 -1
  179. package/dist/components/p-B_DaIVEY.js +0 -1
  180. package/dist/components/p-Bh_1GxOD.js +0 -1
  181. package/dist/components/p-BnGhGgTH.js +0 -1
  182. package/dist/components/p-BzaB_bXo.js +0 -1
  183. package/dist/components/p-C-0syqXZ.js +0 -1
  184. package/dist/components/p-CoFximGM.js +0 -13
  185. package/dist/components/p-JwSoedEO.js +0 -1
  186. package/dist/components/p-Vc4ExHFc.js +0 -1
  187. package/dist/components/p-hgBUJRDa.js +0 -1
  188. package/dist/components/ui-affordance-scope.d.ts +0 -11
  189. package/dist/components/ui-affordance-scope.js +0 -1
  190. package/dist/components/ui-avatar-group.d.ts +0 -11
  191. package/dist/components/ui-avatar-group.js +0 -1
  192. package/dist/components/ui-avatar.d.ts +0 -11
  193. package/dist/components/ui-avatar.js +0 -1
  194. package/dist/components/ui-badge.d.ts +0 -11
  195. package/dist/components/ui-badge.js +0 -1
  196. package/dist/components/ui-button.d.ts +0 -11
  197. package/dist/components/ui-button.js +0 -1
  198. package/dist/components/ui-callout.d.ts +0 -11
  199. package/dist/components/ui-callout.js +0 -1
  200. package/dist/components/ui-checkbox.d.ts +0 -11
  201. package/dist/components/ui-checkbox.js +0 -1
  202. package/dist/components/ui-chip.d.ts +0 -11
  203. package/dist/components/ui-chip.js +0 -1
  204. package/dist/components/ui-combobox.d.ts +0 -11
  205. package/dist/components/ui-combobox.js +0 -1
  206. package/dist/components/ui-context-menu.d.ts +0 -11
  207. package/dist/components/ui-context-menu.js +0 -1
  208. package/dist/components/ui-dialog.d.ts +0 -11
  209. package/dist/components/ui-dialog.js +0 -1
  210. package/dist/components/ui-disclosure.d.ts +0 -11
  211. package/dist/components/ui-disclosure.js +0 -1
  212. package/dist/components/ui-editable.d.ts +0 -11
  213. package/dist/components/ui-editable.js +0 -1
  214. package/dist/components/ui-floating-action-button.d.ts +0 -11
  215. package/dist/components/ui-floating-action-button.js +0 -1
  216. package/dist/components/ui-form-field.d.ts +0 -11
  217. package/dist/components/ui-form-field.js +0 -1
  218. package/dist/components/ui-icon-button.d.ts +0 -11
  219. package/dist/components/ui-icon-button.js +0 -1
  220. package/dist/components/ui-input.d.ts +0 -11
  221. package/dist/components/ui-input.js +0 -1
  222. package/dist/components/ui-menu-item.d.ts +0 -11
  223. package/dist/components/ui-menu-item.js +0 -1
  224. package/dist/components/ui-menu.d.ts +0 -11
  225. package/dist/components/ui-menu.js +0 -1
  226. package/dist/components/ui-popover.d.ts +0 -11
  227. package/dist/components/ui-popover.js +0 -1
  228. package/dist/components/ui-radio-group.d.ts +0 -11
  229. package/dist/components/ui-radio-group.js +0 -1
  230. package/dist/components/ui-radio.d.ts +0 -11
  231. package/dist/components/ui-radio.js +0 -1
  232. package/dist/components/ui-search-result-row.d.ts +0 -11
  233. package/dist/components/ui-search-result-row.js +0 -1
  234. package/dist/components/ui-search-shell.d.ts +0 -11
  235. package/dist/components/ui-search-shell.js +0 -1
  236. package/dist/components/ui-select.d.ts +0 -11
  237. package/dist/components/ui-select.js +0 -1
  238. package/dist/components/ui-switch.d.ts +0 -11
  239. package/dist/components/ui-switch.js +0 -1
  240. package/dist/components/ui-tabs.d.ts +0 -11
  241. package/dist/components/ui-tabs.js +0 -1
  242. package/dist/components/ui-textarea.d.ts +0 -11
  243. package/dist/components/ui-textarea.js +0 -1
  244. package/dist/components/ui-toast-region.d.ts +0 -11
  245. package/dist/components/ui-toast-region.js +0 -1
  246. package/dist/components/ui-tooltip.d.ts +0 -11
  247. package/dist/components/ui-tooltip.js +0 -1
  248. package/dist/components/ui-top-bar.d.ts +0 -11
  249. package/dist/components/ui-top-bar.js +0 -1
  250. package/dist/components/ui-tree-item.d.ts +0 -11
  251. package/dist/components/ui-tree-item.js +0 -1
  252. package/dist/components/ui-tree.d.ts +0 -11
  253. package/dist/components/ui-tree.js +0 -1
  254. package/dist/esm/app-globals-DQuL1Twl.js +0 -3
  255. package/dist/esm/controlled-state-BnGhGgTH.js +0 -6
  256. package/dist/esm/events-JwSoedEO.js +0 -15
  257. package/dist/esm/icons-CoFximGM.js +0 -678
  258. package/dist/esm/id-hgBUJRDa.js +0 -7
  259. package/dist/esm/index-8BGiMGQ0.js +0 -1593
  260. package/dist/esm/index.js +0 -1
  261. package/dist/esm/loader.js +0 -11
  262. package/dist/esm/looma.js +0 -21
  263. package/dist/esm/manager-C-0syqXZ.js +0 -91
  264. package/dist/esm/positioning-ZOr-2PSe.js +0 -421
  265. package/dist/esm/ui-affordance-scope.entry.js +0 -41
  266. package/dist/esm/ui-avatar-group.entry.js +0 -41
  267. package/dist/esm/ui-avatar.entry.js +0 -48
  268. package/dist/esm/ui-badge.entry.js +0 -17
  269. package/dist/esm/ui-button.entry.js +0 -73
  270. package/dist/esm/ui-callout.entry.js +0 -25
  271. package/dist/esm/ui-checkbox.entry.js +0 -95
  272. package/dist/esm/ui-chip_2.entry.js +0 -255
  273. package/dist/esm/ui-combobox.entry.js +0 -706
  274. package/dist/esm/ui-context-menu.entry.js +0 -237
  275. package/dist/esm/ui-dialog.entry.js +0 -129
  276. package/dist/esm/ui-disclosure.entry.js +0 -110
  277. package/dist/esm/ui-editable.entry.js +0 -98
  278. package/dist/esm/ui-floating-action-button.entry.js +0 -18
  279. package/dist/esm/ui-form-field.entry.js +0 -112
  280. package/dist/esm/ui-icon-button.entry.js +0 -21
  281. package/dist/esm/ui-input.entry.js +0 -104
  282. package/dist/esm/ui-menu-item.entry.js +0 -17
  283. package/dist/esm/ui-menu.entry.js +0 -180
  284. package/dist/esm/ui-popover.entry.js +0 -133
  285. package/dist/esm/ui-radio-group.entry.js +0 -132
  286. package/dist/esm/ui-radio.entry.js +0 -92
  287. package/dist/esm/ui-search-result-row.entry.js +0 -45
  288. package/dist/esm/ui-search-shell.entry.js +0 -37
  289. package/dist/esm/ui-select.entry.js +0 -106
  290. package/dist/esm/ui-switch.entry.js +0 -72
  291. package/dist/esm/ui-tabs.entry.js +0 -116
  292. package/dist/esm/ui-textarea.entry.js +0 -108
  293. package/dist/esm/ui-toast-region.entry.js +0 -91
  294. package/dist/esm/ui-top-bar.entry.js +0 -41
  295. package/dist/esm/ui-tree-item.entry.js +0 -133
  296. package/dist/esm/ui-tree.entry.js +0 -498
  297. package/dist/index.cjs.js +0 -1
  298. package/dist/looma/index.esm.js +0 -0
  299. package/dist/looma/looma.esm.js +0 -1
  300. package/dist/looma/p-08f80207.entry.js +0 -1
  301. package/dist/looma/p-0b5b8d9e.entry.js +0 -1
  302. package/dist/looma/p-1249a806.entry.js +0 -1
  303. package/dist/looma/p-16e0669d.entry.js +0 -1
  304. package/dist/looma/p-1c00670f.entry.js +0 -1
  305. package/dist/looma/p-1c5a7522.entry.js +0 -1
  306. package/dist/looma/p-22842f8c.entry.js +0 -1
  307. package/dist/looma/p-2915d5c0.entry.js +0 -1
  308. package/dist/looma/p-3b2961a6.entry.js +0 -1
  309. package/dist/looma/p-3f60f4c8.entry.js +0 -1
  310. package/dist/looma/p-424d6719.entry.js +0 -1
  311. package/dist/looma/p-4caccfce.entry.js +0 -1
  312. package/dist/looma/p-5fdcee1d.entry.js +0 -1
  313. package/dist/looma/p-6d8b99ee.entry.js +0 -1
  314. package/dist/looma/p-6f20d470.entry.js +0 -1
  315. package/dist/looma/p-7c0b5364.entry.js +0 -1
  316. package/dist/looma/p-8BGiMGQ0.js +0 -2
  317. package/dist/looma/p-8bdd9495.entry.js +0 -1
  318. package/dist/looma/p-99116a72.entry.js +0 -1
  319. package/dist/looma/p-9cfbf722.entry.js +0 -1
  320. package/dist/looma/p-9d2662ca.entry.js +0 -1
  321. package/dist/looma/p-9ff2fa19.entry.js +0 -1
  322. package/dist/looma/p-BnGhGgTH.js +0 -1
  323. package/dist/looma/p-C-0syqXZ.js +0 -1
  324. package/dist/looma/p-CoFximGM.js +0 -13
  325. package/dist/looma/p-DQuL1Twl.js +0 -1
  326. package/dist/looma/p-JwSoedEO.js +0 -1
  327. package/dist/looma/p-ZOr-2PSe.js +0 -1
  328. package/dist/looma/p-a2dd4c6c.entry.js +0 -1
  329. package/dist/looma/p-add67e4c.entry.js +0 -1
  330. package/dist/looma/p-b6ede6bb.entry.js +0 -1
  331. package/dist/looma/p-b76e2111.entry.js +0 -1
  332. package/dist/looma/p-ca2a54fd.entry.js +0 -1
  333. package/dist/looma/p-d372b0db.entry.js +0 -1
  334. package/dist/looma/p-d4825822.entry.js +0 -1
  335. package/dist/looma/p-d56571a2.entry.js +0 -1
  336. package/dist/looma/p-d5c3954f.entry.js +0 -1
  337. package/dist/looma/p-e604e906.entry.js +0 -1
  338. package/dist/looma/p-f1f7c5cb.entry.js +0 -1
  339. package/dist/looma/p-hgBUJRDa.js +0 -1
  340. package/dist/types/components/ui-affordance-scope/ui-affordance-scope.d.ts +0 -11
  341. package/dist/types/components/ui-avatar/ui-avatar.d.ts +0 -11
  342. package/dist/types/components/ui-avatar-group/ui-avatar-group.d.ts +0 -11
  343. package/dist/types/components/ui-badge/ui-badge.d.ts +0 -5
  344. package/dist/types/components/ui-button/ui-button.d.ts +0 -13
  345. package/dist/types/components/ui-callout/ui-callout.d.ts +0 -6
  346. package/dist/types/components/ui-checkbox/ui-checkbox.d.ts +0 -20
  347. package/dist/types/components/ui-chip/ui-chip.d.ts +0 -8
  348. package/dist/types/components/ui-combobox/ui-combobox.d.ts +0 -128
  349. package/dist/types/components/ui-context-menu/ui-context-menu.d.ts +0 -43
  350. package/dist/types/components/ui-dialog/ui-dialog.d.ts +0 -27
  351. package/dist/types/components/ui-disclosure/ui-disclosure.d.ts +0 -21
  352. package/dist/types/components/ui-editable/ui-editable.d.ts +0 -24
  353. package/dist/types/components/ui-floating-action-button/ui-floating-action-button.d.ts +0 -6
  354. package/dist/types/components/ui-form-field/ui-form-field.d.ts +0 -18
  355. package/dist/types/components/ui-icon-button/ui-icon-button.d.ts +0 -9
  356. package/dist/types/components/ui-input/ui-input.d.ts +0 -19
  357. package/dist/types/components/ui-menu/ui-menu.d.ts +0 -28
  358. package/dist/types/components/ui-menu-item/ui-menu-item.d.ts +0 -5
  359. package/dist/types/components/ui-popover/ui-popover.d.ts +0 -26
  360. package/dist/types/components/ui-radio/ui-radio.d.ts +0 -20
  361. package/dist/types/components/ui-radio-group/ui-radio-group.d.ts +0 -21
  362. package/dist/types/components/ui-search-result-row/ui-search-result-row.d.ts +0 -15
  363. package/dist/types/components/ui-search-shell/ui-search-shell.d.ts +0 -9
  364. package/dist/types/components/ui-select/ui-select.d.ts +0 -20
  365. package/dist/types/components/ui-switch/ui-switch.d.ts +0 -16
  366. package/dist/types/components/ui-tabs/ui-tabs.d.ts +0 -18
  367. package/dist/types/components/ui-textarea/ui-textarea.d.ts +0 -20
  368. package/dist/types/components/ui-toast-region/ui-toast-region.d.ts +0 -16
  369. package/dist/types/components/ui-tooltip/ui-tooltip.d.ts +0 -57
  370. package/dist/types/components/ui-top-bar/ui-top-bar.d.ts +0 -12
  371. package/dist/types/components/ui-tree/ui-tree.d.ts +0 -53
  372. package/dist/types/components/ui-tree-item/ui-tree-item.d.ts +0 -44
  373. package/dist/types/components.d.ts +0 -1889
  374. package/dist/types/field/combobox.d.ts +0 -46
  375. package/dist/types/field/editable.d.ts +0 -5
  376. package/dist/types/field/multi-combobox.d.ts +0 -11
  377. package/dist/types/field/valibot.d.ts +0 -7
  378. package/dist/types/icons.d.ts +0 -53
  379. package/dist/types/input-modality.d.ts +0 -6
  380. package/dist/types/overlay/manager.d.ts +0 -17
  381. package/dist/types/overlay/positioning.d.ts +0 -74
  382. package/dist/types/stencil-public-runtime.d.ts +0 -1860
  383. package/dist/types/utils/controlled-state.d.ts +0 -4
  384. package/dist/types/utils/drag-drop.d.ts +0 -15
  385. package/dist/types/utils/events.d.ts +0 -4
  386. package/dist/types/utils/id.d.ts +0 -1
  387. package/dist/types/utils/initials.d.ts +0 -1
  388. package/dist/ui-affordance-scope.entry-L6TIXYOP.js +0 -54
  389. package/dist/ui-avatar-group.entry-TCAA6P72.js +0 -51
  390. package/dist/ui-avatar.entry-52DQ7VXA.js +0 -51
  391. package/dist/ui-badge.entry-2XCAA6LL.js +0 -22
  392. package/dist/ui-button.entry-MNFBMNSX.js +0 -83
  393. package/dist/ui-callout.entry-SSHT5TH2.js +0 -32
  394. package/dist/ui-checkbox.entry-LOWIWIWI.js +0 -111
  395. package/dist/ui-chip_2.entry-BIMTSF6C.js +0 -272
  396. package/dist/ui-combobox.entry-25Z4MN7N.js +0 -717
  397. package/dist/ui-context-menu.entry-YZDL5Y4M.js +0 -248
  398. package/dist/ui-dialog.entry-HIXZX5AB.js +0 -146
  399. package/dist/ui-disclosure.entry-2JZHZNDQ.js +0 -126
  400. package/dist/ui-editable.entry-U3VR3XPT.js +0 -110
  401. package/dist/ui-floating-action-button.entry-6S3QN3KJ.js +0 -23
  402. package/dist/ui-form-field.entry-GQOSMLHT.js +0 -120
  403. package/dist/ui-icon-button.entry-QJXKVDM6.js +0 -26
  404. package/dist/ui-input.entry-UWMQ6JMP.js +0 -114
  405. package/dist/ui-menu-item.entry-NHNZKKJS.js +0 -22
  406. package/dist/ui-menu.entry-D53RUJND.js +0 -192
  407. package/dist/ui-popover.entry-7ZSIWCFQ.js +0 -152
  408. package/dist/ui-radio-group.entry-37MSYIH4.js +0 -142
  409. package/dist/ui-radio.entry-7YGCDHXT.js +0 -108
  410. package/dist/ui-search-result-row.entry-6FCCLGAS.js +0 -50
  411. package/dist/ui-search-shell.entry-HSBEXPER.js +0 -41
  412. package/dist/ui-select.entry-GIDIAYRD.js +0 -117
  413. package/dist/ui-switch.entry-MYAL6XPC.js +0 -87
  414. package/dist/ui-tabs.entry-R4TEXQSD.js +0 -128
  415. package/dist/ui-textarea.entry-FW32JNDV.js +0 -119
  416. package/dist/ui-toast-region.entry-BTMFPKZF.js +0 -104
  417. package/dist/ui-top-bar.entry-5DQGJF3B.js +0 -49
  418. package/dist/ui-tree-item.entry-ADT7DSOS.js +0 -145
  419. package/dist/ui-tree.entry-7PYQ5RIN.js +0 -470
  420. package/editor/chunk-64GLF274.js +0 -1271
  421. package/layout/index.css +0 -387
  422. package/loader/cdn.js +0 -1
  423. package/loader/index.cjs.js +0 -1
  424. package/loader/index.d.ts +0 -24
  425. package/loader/index.es2017.js +0 -1
  426. package/loader/index.js +0 -2
  427. package/vue/chunk-ROMBQS2L.js +0 -352
@@ -0,0 +1,3538 @@
1
+ // src/index.ts
2
+ import "@threadlabs/looma/layout";
3
+ import "@threadlabs/looma/core";
4
+
5
+ // src/adapter.ts
6
+ import {
7
+ defineComponent,
8
+ h,
9
+ shallowRef,
10
+ watchEffect
11
+ } from "vue";
12
+ var BASE_EVENT_BINDINGS = [
13
+ ["open", "onOpen"],
14
+ ["close", "onClose"],
15
+ ["select", "onSelect"],
16
+ ["change", "onChange"],
17
+ ["input", "onInput"],
18
+ ["dismiss", "onDismiss"]
19
+ ];
20
+ function toHTMLElement(value) {
21
+ if (!value) return null;
22
+ if (value instanceof HTMLElement) return value;
23
+ const componentRoot = value.$el;
24
+ if (componentRoot instanceof HTMLElement) return componentRoot;
25
+ return null;
26
+ }
27
+ function createAdapterComponent(component, displayName, additionalEventBindings = [], defaultHydrationMismatch = "class", propertyBindings = []) {
28
+ const eventBindings = [...BASE_EVENT_BINDINGS, ...additionalEventBindings];
29
+ const callbackAttrs = new Set(eventBindings.map(([, callbackAttr]) => callbackAttr));
30
+ const propertyAttrs = new Set(propertyBindings);
31
+ return defineComponent({
32
+ name: displayName,
33
+ inheritAttrs: false,
34
+ setup(_props, { attrs, slots }) {
35
+ const elementRef = shallowRef(null);
36
+ watchEffect((onCleanup) => {
37
+ const element = elementRef.value;
38
+ if (!element) return;
39
+ const adapterAttrs = attrs;
40
+ const propertyTarget = element;
41
+ for (const propertyName of propertyBindings) {
42
+ if (propertyTarget[propertyName] !== adapterAttrs[propertyName]) {
43
+ propertyTarget[propertyName] = adapterAttrs[propertyName];
44
+ }
45
+ }
46
+ const handlers = eventBindings.map(
47
+ ([eventName, callbackAttr]) => {
48
+ const callback = adapterAttrs[callbackAttr];
49
+ return [
50
+ eventName,
51
+ typeof callback === "function" ? (event) => callback(event.detail) : void 0
52
+ ];
53
+ }
54
+ );
55
+ for (const [eventName, handler] of handlers) {
56
+ if (handler) element.addEventListener(eventName, handler);
57
+ }
58
+ onCleanup(() => {
59
+ for (const [eventName, handler] of handlers) {
60
+ if (handler) element.removeEventListener(eventName, handler);
61
+ }
62
+ });
63
+ });
64
+ return () => {
65
+ const forwardedAttrs = Object.fromEntries(
66
+ Object.entries(attrs).filter(
67
+ ([name]) => !callbackAttrs.has(name)
68
+ )
69
+ );
70
+ const componentSlots = Object.fromEntries(
71
+ Object.entries(slots).filter((entry) => Boolean(entry[1])).map(([slotName, slotFn]) => [slotName, () => slotFn()])
72
+ );
73
+ return h(
74
+ component,
75
+ {
76
+ "data-allow-mismatch": forwardedAttrs["data-allow-mismatch"] ?? defaultHydrationMismatch,
77
+ ...forwardedAttrs,
78
+ class: forwardedAttrs.class,
79
+ ref: (value) => {
80
+ elementRef.value = toHTMLElement(value);
81
+ }
82
+ },
83
+ Object.keys(componentSlots).length > 0 ? componentSlots : void 0
84
+ );
85
+ };
86
+ }
87
+ });
88
+ }
89
+
90
+ // src/generated/UiAffordanceScope.ts
91
+ import { defineComponent as _defineComponent } from "vue";
92
+ import { renderSlot as _renderSlot, mergeProps as _mergeProps, openBlock as _openBlock, createElementBlock as _createElementBlock } from "vue";
93
+ import { onMounted, onUnmounted, ref, watchEffect as watchEffect2 } from "vue";
94
+ import { attachLoomaComponent } from "@threadlabs/looma/core/declarative";
95
+ var UiAffordanceScope_default = /* @__PURE__ */ _defineComponent({
96
+ ...{ inheritAttrs: false },
97
+ __name: "UiAffordanceScope",
98
+ props: {
99
+ nearRadius: { type: [Number, null], required: false, default: 16 }
100
+ },
101
+ setup(__props) {
102
+ const props = __props;
103
+ const definition = { ...{ "contract": { "tag": "ui-affordance-scope", "props": { "nearRadius": { "type": "number", "required": false, "target": { "attribute": "nearradius" }, "default": 16 } } }, "template": { "kind": "element", "name": "span", "attributes": [], "children": [{ "kind": "slot" }] }, "declarations": [], "root": { "kind": "native", "element": "span", "choices": ["span"] } }, source: { file: import.meta.url }, css: "" };
104
+ const root = ref();
105
+ let detach;
106
+ onMounted(() => {
107
+ if (root.value == null) return;
108
+ detach = attachLoomaComponent(root.value, definition, "ui-affordance-scope", props);
109
+ });
110
+ watchEffect2(() => {
111
+ if (root.value == null) return;
112
+ for (const name of ["nearRadius"]) root.value[name] = props[name];
113
+ });
114
+ onUnmounted(() => {
115
+ detach?.();
116
+ });
117
+ return (_ctx, _cache) => {
118
+ return _openBlock(), _createElementBlock(
119
+ "span",
120
+ _mergeProps(_ctx.$attrs, {
121
+ "data-component": "ui-affordance-scope",
122
+ "data-component-root": "ui-affordance-scope",
123
+ "data-looma-managed": "framework",
124
+ ref_key: "root",
125
+ ref: root
126
+ }),
127
+ [
128
+ _renderSlot(_ctx.$slots, "default")
129
+ ],
130
+ 16
131
+ /* FULL_PROPS */
132
+ );
133
+ };
134
+ }
135
+ });
136
+
137
+ // src/generated/UiAvatarGroup.ts
138
+ import { defineComponent as _defineComponent2 } from "vue";
139
+ import { renderSlot as _renderSlot2, mergeProps as _mergeProps2, openBlock as _openBlock2, createElementBlock as _createElementBlock2 } from "vue";
140
+ import { onMounted as onMounted2, onUnmounted as onUnmounted2, ref as ref2, watchEffect as watchEffect3 } from "vue";
141
+ import { attachLoomaComponent as attachLoomaComponent2 } from "@threadlabs/looma/core/declarative";
142
+ var _hoisted_1 = ["aria-label"];
143
+ var UiAvatarGroup_default = /* @__PURE__ */ _defineComponent2({
144
+ ...{ inheritAttrs: false },
145
+ __name: "UiAvatarGroup",
146
+ props: {
147
+ label: { type: [String, null], required: false, default: "People" },
148
+ max: { type: [Number, null], required: false, default: 5 }
149
+ },
150
+ setup(__props) {
151
+ const props = __props;
152
+ const definition = { ...{ "contract": { "tag": "ui-avatar-group", "props": { "label": { "type": "string", "required": false, "target": { "attribute": "aria-label" }, "default": "People" }, "max": { "type": "number", "required": false, "target": { "attribute": "max" }, "default": 5 } } }, "template": { "kind": "element", "name": "div", "attributes": [{ "kind": "literal", "name": "role", "value": "group" }, { "kind": "attribute", "name": "aria-label", "expression": "label", "expressionPlan": { "source": "label", "ast": { "kind": "id", "name": "label" }, "dependencies": ["label"] } }], "children": [{ "kind": "slot" }] }, "declarations": [{ "kind": "state", "name": "overflowCount", "expression": { "source": "0", "ast": { "kind": "literal", "value": 0 }, "dependencies": [] } }], "root": { "kind": "native", "element": "div", "choices": ["div"] } }, source: { file: import.meta.url }, css: "" };
153
+ const root = ref2();
154
+ let detach;
155
+ onMounted2(() => {
156
+ if (root.value == null) return;
157
+ detach = attachLoomaComponent2(root.value, definition, "ui-avatar-group", props);
158
+ });
159
+ watchEffect3(() => {
160
+ if (root.value == null) return;
161
+ for (const name of ["label", "max"]) root.value[name] = props[name];
162
+ });
163
+ onUnmounted2(() => {
164
+ detach?.();
165
+ });
166
+ return (_ctx, _cache) => {
167
+ return _openBlock2(), _createElementBlock2("div", _mergeProps2(_ctx.$attrs, {
168
+ "data-component": "ui-avatar-group",
169
+ "data-component-root": "ui-avatar-group",
170
+ "data-looma-managed": "framework",
171
+ role: "group",
172
+ "aria-label": props.label,
173
+ ref_key: "root",
174
+ ref: root
175
+ }), [
176
+ _renderSlot2(_ctx.$slots, "default")
177
+ ], 16, _hoisted_1);
178
+ };
179
+ }
180
+ });
181
+
182
+ // src/generated/UiAvatar.ts
183
+ import { defineComponent as _defineComponent3 } from "vue";
184
+ import { createElementVNode as _createElementVNode, mergeProps as _mergeProps3, openBlock as _openBlock3, createElementBlock as _createElementBlock3 } from "vue";
185
+ import { onMounted as onMounted3, onUnmounted as onUnmounted3, ref as ref3, watchEffect as watchEffect4 } from "vue";
186
+ import { attachLoomaComponent as attachLoomaComponent3 } from "@threadlabs/looma/core/declarative";
187
+ var _hoisted_12 = {
188
+ class: "avatar",
189
+ "data-component": "ui-avatar"
190
+ };
191
+ var _hoisted_2 = ["src"];
192
+ var UiAvatar_default = /* @__PURE__ */ _defineComponent3({
193
+ ...{ inheritAttrs: false },
194
+ __name: "UiAvatar",
195
+ props: {
196
+ alt: { type: [String, null], required: false, default: "" },
197
+ fallback: { type: [String, null], required: false, default: "" },
198
+ name: { type: [String, null], required: false, default: "" },
199
+ src: { type: [String, null], required: false, default: "" }
200
+ },
201
+ setup(__props) {
202
+ const props = __props;
203
+ const definition = { ...{ "contract": { "tag": "ui-avatar", "props": { "alt": { "type": "string", "required": false, "target": { "attribute": "alt" }, "default": "" }, "fallback": { "type": "string", "required": false, "target": { "attribute": "fallback" }, "default": "" }, "name": { "type": "string", "required": false, "target": { "attribute": "name" }, "default": "" }, "src": { "type": "string", "required": false, "target": { "attribute": "src" }, "default": "" } } }, "template": { "kind": "element", "name": "span", "attributes": [{ "kind": "literal", "name": "role", "value": "img" }, { "kind": "attribute", "name": "data-has-image", "expression": "hasImage", "expressionPlan": { "source": "hasImage", "ast": { "kind": "id", "name": "hasImage" }, "dependencies": ["hasImage"] } }], "children": [{ "kind": "element", "name": "div", "attributes": [{ "kind": "literal", "name": "class", "value": "avatar" }], "children": [{ "kind": "element", "name": "img", "attributes": [{ "kind": "attribute", "name": "src", "expression": "src", "expressionPlan": { "source": "src", "ast": { "kind": "id", "name": "src" }, "dependencies": ["src"] } }, { "kind": "attribute", "name": "hidden", "expression": "not hasImage", "expressionPlan": { "source": "not hasImage", "ast": { "kind": "unary", "op": "not", "operand": { "kind": "id", "name": "hasImage" } }, "dependencies": ["hasImage"] } }], "children": [] }, { "kind": "element", "name": "span", "attributes": [{ "kind": "literal", "name": "class", "value": "fallback" }], "children": [] }] }] }, "declarations": [{ "kind": "state", "name": "hasImage", "expression": { "source": "false", "ast": { "kind": "literal", "value": false }, "dependencies": [] } }], "root": { "kind": "native", "element": "span", "choices": ["span"] } }, source: { file: import.meta.url }, css: "" };
204
+ const root = ref3();
205
+ let detach;
206
+ onMounted3(() => {
207
+ if (root.value == null) return;
208
+ detach = attachLoomaComponent3(root.value, definition, "ui-avatar", props);
209
+ });
210
+ watchEffect4(() => {
211
+ if (root.value == null) return;
212
+ for (const name of ["alt", "fallback", "name", "src"]) root.value[name] = props[name];
213
+ });
214
+ onUnmounted3(() => {
215
+ detach?.();
216
+ });
217
+ return (_ctx, _cache) => {
218
+ return _openBlock3(), _createElementBlock3(
219
+ "span",
220
+ _mergeProps3(_ctx.$attrs, {
221
+ "data-component": "ui-avatar",
222
+ "data-component-root": "ui-avatar",
223
+ "data-looma-managed": "framework",
224
+ role: "img",
225
+ "data-has-image": void 0,
226
+ ref_key: "root",
227
+ ref: root
228
+ }),
229
+ [
230
+ _createElementVNode("div", _hoisted_12, [
231
+ _createElementVNode("img", {
232
+ src: props.src,
233
+ hidden: void 0,
234
+ "data-component": "ui-avatar"
235
+ }, null, 8, _hoisted_2),
236
+ _cache[0] || (_cache[0] = _createElementVNode(
237
+ "span",
238
+ {
239
+ class: "fallback",
240
+ "data-component": "ui-avatar"
241
+ },
242
+ null,
243
+ -1
244
+ /* CACHED */
245
+ ))
246
+ ])
247
+ ],
248
+ 16
249
+ /* FULL_PROPS */
250
+ );
251
+ };
252
+ }
253
+ });
254
+
255
+ // src/generated/UiBadge.ts
256
+ import { defineComponent as _defineComponent4 } from "vue";
257
+ import { renderSlot as _renderSlot3, createElementVNode as _createElementVNode2, mergeProps as _mergeProps4, openBlock as _openBlock4, createElementBlock as _createElementBlock4 } from "vue";
258
+ import { onMounted as onMounted4, onUnmounted as onUnmounted4, ref as ref4, watchEffect as watchEffect5 } from "vue";
259
+ import { manageGeneratedProps } from "@threadlabs/looma/core/declarative-generated";
260
+ var _hoisted_13 = ["data-variant", "data-tone"];
261
+ var _hoisted_22 = {
262
+ class: "badge__surface",
263
+ "data-component": "ui-badge"
264
+ };
265
+ var UiBadge_default = /* @__PURE__ */ _defineComponent4({
266
+ ...{ inheritAttrs: false },
267
+ __name: "UiBadge",
268
+ props: {
269
+ tone: { type: [String, null], required: false },
270
+ variant: { type: [String, null], required: false }
271
+ },
272
+ setup(__props) {
273
+ const props = __props;
274
+ const root = ref4();
275
+ let detach;
276
+ onMounted4(() => {
277
+ if (root.value == null) return;
278
+ detach = manageGeneratedProps(root.value, [
279
+ { name: "tone", attribute: "data-tone", value: props.tone, type: "string", required: false },
280
+ { name: "variant", attribute: "data-variant", value: props.variant, type: "string", required: false }
281
+ ]);
282
+ });
283
+ watchEffect5(() => {
284
+ if (root.value == null) return;
285
+ for (const name of ["tone", "variant"]) root.value[name] = props[name];
286
+ });
287
+ onUnmounted4(() => {
288
+ detach?.();
289
+ });
290
+ return (_ctx, _cache) => {
291
+ return _openBlock4(), _createElementBlock4("span", _mergeProps4(_ctx.$attrs, {
292
+ "data-component": "ui-badge",
293
+ "data-component-root": "ui-badge",
294
+ "data-looma-managed": "framework",
295
+ "data-variant": props.variant,
296
+ "data-tone": props.tone,
297
+ ref_key: "root",
298
+ ref: root
299
+ }), [
300
+ _createElementVNode2("span", _hoisted_22, [
301
+ _renderSlot3(_ctx.$slots, "default")
302
+ ])
303
+ ], 16, _hoisted_13);
304
+ };
305
+ }
306
+ });
307
+
308
+ // src/generated/UiButton.ts
309
+ import { defineComponent as _defineComponent5 } from "vue";
310
+ import { renderSlot as _renderSlot4, mergeProps as _mergeProps5, openBlock as _openBlock5, createElementBlock as _createElementBlock5 } from "vue";
311
+ import { onMounted as onMounted5, onUnmounted as onUnmounted5, ref as ref5, watchEffect as watchEffect6 } from "vue";
312
+ import { attachLoomaComponent as attachLoomaComponent4 } from "@threadlabs/looma/core/declarative";
313
+ var _hoisted_14 = ["data-size", "data-variant"];
314
+ var UiButton_default = /* @__PURE__ */ _defineComponent5({
315
+ ...{ inheritAttrs: false },
316
+ __name: "UiButton",
317
+ props: {
318
+ disabled: { type: [Boolean, null], required: false, default: false },
319
+ size: { type: [String, null], required: false },
320
+ variant: { type: [String, null], required: false, default: "outline" }
321
+ },
322
+ setup(__props) {
323
+ const props = __props;
324
+ const definition = { ...{ "contract": { "tag": "ui-button", "props": { "disabled": { "type": "boolean", "required": false, "target": { "attribute": "disabled" }, "default": false }, "size": { "type": "string", "required": false, "target": { "attribute": "data-size" } }, "variant": { "type": "string", "required": false, "target": { "attribute": "data-variant" }, "default": "outline" } } }, "template": { "kind": "element", "name": "span", "attributes": [{ "kind": "attribute", "name": "data-size", "expression": "size", "expressionPlan": { "source": "size", "ast": { "kind": "id", "name": "size" }, "dependencies": ["size"] } }, { "kind": "attribute", "name": "data-variant", "expression": "variant", "expressionPlan": { "source": "variant", "ast": { "kind": "id", "name": "variant" }, "dependencies": ["variant"] } }], "children": [{ "kind": "slot" }] }, "declarations": [], "root": { "kind": "native", "element": "span", "choices": ["span"] } }, source: { file: import.meta.url }, css: "" };
325
+ const root = ref5();
326
+ let detach;
327
+ onMounted5(() => {
328
+ if (root.value == null) return;
329
+ detach = attachLoomaComponent4(root.value, definition, "ui-button", props);
330
+ });
331
+ watchEffect6(() => {
332
+ if (root.value == null) return;
333
+ for (const name of ["disabled", "size", "variant"]) root.value[name] = props[name];
334
+ });
335
+ onUnmounted5(() => {
336
+ detach?.();
337
+ });
338
+ return (_ctx, _cache) => {
339
+ return _openBlock5(), _createElementBlock5("span", _mergeProps5(_ctx.$attrs, {
340
+ "data-component": "ui-button",
341
+ "data-component-root": "ui-button",
342
+ "data-looma-managed": "framework",
343
+ "data-size": props.size,
344
+ "data-variant": props.variant,
345
+ ref_key: "root",
346
+ ref: root
347
+ }), [
348
+ _renderSlot4(_ctx.$slots, "default")
349
+ ], 16, _hoisted_14);
350
+ };
351
+ }
352
+ });
353
+
354
+ // src/generated/UiCallout.ts
355
+ import { defineComponent as _defineComponent6 } from "vue";
356
+ import { createElementVNode as _createElementVNode3, renderSlot as _renderSlot5, mergeProps as _mergeProps6, openBlock as _openBlock6, createElementBlock as _createElementBlock6 } from "vue";
357
+ import { onMounted as onMounted6, onUnmounted as onUnmounted6, ref as ref6, watchEffect as watchEffect7 } from "vue";
358
+ import { manageGeneratedProps as manageGeneratedProps2 } from "@threadlabs/looma/core/declarative-generated";
359
+ var _hoisted_15 = ["data-tone"];
360
+ var _hoisted_23 = {
361
+ class: "callout__surface",
362
+ "data-component": "ui-callout"
363
+ };
364
+ var _hoisted_3 = {
365
+ class: "content",
366
+ "data-component": "ui-callout"
367
+ };
368
+ var UiCallout_default = /* @__PURE__ */ _defineComponent6({
369
+ ...{ inheritAttrs: false },
370
+ __name: "UiCallout",
371
+ props: {
372
+ tone: { type: [String, null], required: false, default: "info" }
373
+ },
374
+ setup(__props) {
375
+ const props = __props;
376
+ const root = ref6();
377
+ let detach;
378
+ onMounted6(() => {
379
+ if (root.value == null) return;
380
+ detach = manageGeneratedProps2(root.value, [
381
+ { name: "tone", attribute: "data-tone", value: props.tone, type: ["info", "note", "warning", "success", "error"], required: false }
382
+ ]);
383
+ });
384
+ watchEffect7(() => {
385
+ if (root.value == null) return;
386
+ for (const name of ["tone"]) root.value[name] = props[name];
387
+ });
388
+ onUnmounted6(() => {
389
+ detach?.();
390
+ });
391
+ return (_ctx, _cache) => {
392
+ return _openBlock6(), _createElementBlock6("div", _mergeProps6(_ctx.$attrs, {
393
+ "data-component": "ui-callout",
394
+ "data-component-root": "ui-callout",
395
+ "data-looma-managed": "framework",
396
+ role: "note",
397
+ "data-tone": props.tone,
398
+ ref_key: "root",
399
+ ref: root
400
+ }), [
401
+ _createElementVNode3("div", _hoisted_23, [
402
+ _cache[0] || (_cache[0] = _createElementVNode3(
403
+ "span",
404
+ {
405
+ class: "icon",
406
+ "aria-hidden": "true",
407
+ "data-component": "ui-callout"
408
+ },
409
+ null,
410
+ -1
411
+ /* CACHED */
412
+ )),
413
+ _createElementVNode3("div", _hoisted_3, [
414
+ _renderSlot5(_ctx.$slots, "default")
415
+ ])
416
+ ])
417
+ ], 16, _hoisted_15);
418
+ };
419
+ }
420
+ });
421
+
422
+ // src/generated/UiCheckbox.ts
423
+ import { defineComponent as _defineComponent7 } from "vue";
424
+ import { renderSlot as _renderSlot6, mergeProps as _mergeProps7, openBlock as _openBlock7, createElementBlock as _createElementBlock7 } from "vue";
425
+ import { onMounted as onMounted7, onUnmounted as onUnmounted7, ref as ref7, watchEffect as watchEffect8 } from "vue";
426
+ import { attachLoomaComponent as attachLoomaComponent5 } from "@threadlabs/looma/core/declarative";
427
+ var _hoisted_16 = ["data-disabled"];
428
+ var UiCheckbox_default = /* @__PURE__ */ _defineComponent7({
429
+ ...{ inheritAttrs: false },
430
+ __name: "UiCheckbox",
431
+ props: {
432
+ checked: { type: [Boolean, null], required: false },
433
+ defaultChecked: { type: [Boolean, null], required: false, default: false },
434
+ disabled: { type: [Boolean, null], required: false, default: false },
435
+ indeterminate: { type: [Boolean, null], required: false, default: false },
436
+ required: { type: [Boolean, null], required: false, default: false },
437
+ value: { type: [String, null], required: false, default: "on" }
438
+ },
439
+ emits: ["change"],
440
+ setup(__props, { emit: __emit }) {
441
+ const props = __props;
442
+ const emit = __emit;
443
+ const definition = { ...{ "contract": { "tag": "ui-checkbox", "props": { "checked": { "type": "boolean", "required": false, "target": { "attribute": "checked" } }, "defaultChecked": { "type": "boolean", "required": false, "target": { "attribute": "defaultchecked" }, "default": false }, "disabled": { "type": "boolean", "required": false, "target": { "attribute": "data-disabled" }, "default": false }, "indeterminate": { "type": "boolean", "required": false, "target": { "attribute": "indeterminate" }, "default": false }, "required": { "type": "boolean", "required": false, "target": { "attribute": "required" }, "default": false }, "value": { "type": "string", "required": false, "target": { "attribute": "value" }, "default": "on" } } }, "template": { "kind": "element", "name": "span", "attributes": [{ "kind": "literal", "name": "role", "value": "checkbox" }, { "kind": "attribute", "name": "data-disabled", "expression": "disabled", "expressionPlan": { "source": "disabled", "ast": { "kind": "id", "name": "disabled" }, "dependencies": ["disabled"] } }], "children": [{ "kind": "slot" }] }, "declarations": [{ "kind": "state", "name": "internalChecked", "expression": { "source": "false", "ast": { "kind": "literal", "value": false }, "dependencies": [] } }, { "kind": "event", "name": "change", "type": "object({ checked: boolean, value: string, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }], "root": { "kind": "native", "element": "span", "choices": ["span"] } }, source: { file: import.meta.url }, css: "" };
444
+ const root = ref7();
445
+ const eventListener0 = (event) => emit("change", event.detail);
446
+ let detach;
447
+ onMounted7(() => {
448
+ if (root.value == null) return;
449
+ detach = attachLoomaComponent5(root.value, definition, "ui-checkbox", props);
450
+ root.value.addEventListener("change", eventListener0);
451
+ });
452
+ watchEffect8(() => {
453
+ if (root.value == null) return;
454
+ for (const name of ["checked", "defaultChecked", "disabled", "indeterminate", "required", "value"]) root.value[name] = props[name];
455
+ });
456
+ onUnmounted7(() => {
457
+ root.value?.removeEventListener("change", eventListener0);
458
+ detach?.();
459
+ });
460
+ return (_ctx, _cache) => {
461
+ return _openBlock7(), _createElementBlock7("span", _mergeProps7(_ctx.$attrs, {
462
+ "data-component": "ui-checkbox",
463
+ "data-component-root": "ui-checkbox",
464
+ "data-looma-managed": "framework",
465
+ role: "checkbox",
466
+ "data-disabled": props.disabled ? "" : void 0,
467
+ ref_key: "root",
468
+ ref: root
469
+ }), [
470
+ _renderSlot6(_ctx.$slots, "default")
471
+ ], 16, _hoisted_16);
472
+ };
473
+ }
474
+ });
475
+
476
+ // src/generated/UiChip.ts
477
+ import { defineComponent as _defineComponent8 } from "vue";
478
+ import { renderSlot as _renderSlot7, createElementVNode as _createElementVNode4, mergeProps as _mergeProps8, openBlock as _openBlock8, createElementBlock as _createElementBlock8 } from "vue";
479
+ import { onMounted as onMounted8, onUnmounted as onUnmounted8, ref as ref8, watchEffect as watchEffect9 } from "vue";
480
+ import { manageGeneratedProps as manageGeneratedProps3 } from "@threadlabs/looma/core/declarative-generated";
481
+ var _hoisted_17 = ["data-appearance", "data-size"];
482
+ var _hoisted_24 = {
483
+ class: "chip__surface",
484
+ "data-component": "ui-chip"
485
+ };
486
+ var _hoisted_32 = {
487
+ class: "chip__label",
488
+ "data-component": "ui-chip"
489
+ };
490
+ var UiChip_default = /* @__PURE__ */ _defineComponent8({
491
+ ...{ inheritAttrs: false },
492
+ __name: "UiChip",
493
+ props: {
494
+ appearance: { type: [String, null], required: false, default: "tag" },
495
+ size: { type: [String, null], required: false, default: "xs" }
496
+ },
497
+ setup(__props) {
498
+ const props = __props;
499
+ const root = ref8();
500
+ let detach;
501
+ onMounted8(() => {
502
+ if (root.value == null) return;
503
+ detach = manageGeneratedProps3(root.value, [
504
+ { name: "appearance", attribute: "data-appearance", value: props.appearance, type: ["tag", "pill"], required: false },
505
+ { name: "size", attribute: "data-size", value: props.size, type: ["xs", "sm"], required: false }
506
+ ]);
507
+ });
508
+ watchEffect9(() => {
509
+ if (root.value == null) return;
510
+ for (const name of ["appearance", "size"]) root.value[name] = props[name];
511
+ });
512
+ onUnmounted8(() => {
513
+ detach?.();
514
+ });
515
+ return (_ctx, _cache) => {
516
+ return _openBlock8(), _createElementBlock8("span", _mergeProps8(_ctx.$attrs, {
517
+ "data-component": "ui-chip",
518
+ "data-component-root": "ui-chip",
519
+ "data-looma-managed": "framework",
520
+ "data-appearance": props.appearance,
521
+ "data-size": props.size,
522
+ ref_key: "root",
523
+ ref: root
524
+ }), [
525
+ _createElementVNode4("span", _hoisted_24, [
526
+ _createElementVNode4("span", _hoisted_32, [
527
+ _renderSlot7(_ctx.$slots, "default")
528
+ ])
529
+ ])
530
+ ], 16, _hoisted_17);
531
+ };
532
+ }
533
+ });
534
+
535
+ // src/generated/UiCombobox.ts
536
+ import { defineComponent as _defineComponent10 } from "vue";
537
+ import { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode6, renderSlot as _renderSlot9, unref as _unref, withCtx as _withCtx, createVNode as _createVNode, mergeProps as _mergeProps10, openBlock as _openBlock10, createElementBlock as _createElementBlock10 } from "vue";
538
+
539
+ // src/generated/UiTooltip.ts
540
+ import { defineComponent as _defineComponent9 } from "vue";
541
+ import { renderSlot as _renderSlot8, createElementVNode as _createElementVNode5, mergeProps as _mergeProps9, openBlock as _openBlock9, createElementBlock as _createElementBlock9 } from "vue";
542
+ import { onMounted as onMounted9, onUnmounted as onUnmounted9, ref as ref9, watchEffect as watchEffect10 } from "vue";
543
+ import { attachLoomaComponent as attachLoomaComponent6 } from "@threadlabs/looma/core/declarative";
544
+ var _hoisted_18 = {
545
+ class: "tooltip__surface",
546
+ "data-component": "ui-tooltip"
547
+ };
548
+ var UiTooltip_default = /* @__PURE__ */ _defineComponent9({
549
+ ...{ inheritAttrs: false },
550
+ __name: "UiTooltip",
551
+ props: {
552
+ defaultOpen: { type: [Boolean, null], required: false, default: false },
553
+ for: { type: [String, null], required: false, default: "" },
554
+ hideDelay: { type: [Number, null], required: false, default: 100 },
555
+ open: { type: [Boolean, null], required: false },
556
+ placement: { type: [String, null], required: false, default: "top-start" },
557
+ showDelay: { type: [Number, null], required: false, default: 500 },
558
+ toggleOnClick: { type: [Boolean, null], required: false, default: false }
559
+ },
560
+ emits: ["open", "close"],
561
+ setup(__props, { emit: __emit }) {
562
+ const props = __props;
563
+ const emit = __emit;
564
+ const definition = { ...{ "contract": { "tag": "ui-tooltip", "props": { "defaultOpen": { "type": "boolean", "required": false, "target": { "attribute": "defaultopen" }, "default": false }, "for": { "type": "string", "required": false, "target": { "attribute": "for" }, "default": "" }, "hideDelay": { "type": "number", "required": false, "target": { "attribute": "hidedelay" }, "default": 100 }, "open": { "type": "boolean", "required": false, "target": { "attribute": "open" } }, "placement": { "type": "string", "required": false, "target": { "attribute": "placement" }, "default": "top-start" }, "showDelay": { "type": "number", "required": false, "target": { "attribute": "showdelay" }, "default": 500 }, "toggleOnClick": { "type": "boolean", "required": false, "target": { "attribute": "toggleonclick" }, "default": false } } }, "template": { "kind": "element", "name": "span", "attributes": [{ "kind": "literal", "name": "role", "value": "tooltip" }, { "kind": "attribute", "name": "hidden", "expression": "not internalOpen", "expressionPlan": { "source": "not internalOpen", "ast": { "kind": "unary", "op": "not", "operand": { "kind": "id", "name": "internalOpen" } }, "dependencies": ["internalOpen"] } }, { "kind": "attribute", "name": "data-state-open", "expression": "internalOpen", "expressionPlan": { "source": "internalOpen", "ast": { "kind": "id", "name": "internalOpen" }, "dependencies": ["internalOpen"] } }], "children": [{ "kind": "element", "name": "div", "attributes": [{ "kind": "literal", "name": "class", "value": "tooltip__surface" }], "children": [{ "kind": "slot" }] }] }, "declarations": [{ "kind": "state", "name": "internalOpen", "expression": { "source": "false", "ast": { "kind": "literal", "value": false }, "dependencies": [] } }, { "kind": "event", "name": "open", "type": "object({ open: boolean, reason: action | programmatic | light-dismiss | escape, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }, { "kind": "event", "name": "close", "type": "object({ open: boolean, reason: action | programmatic | light-dismiss | escape, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }], "root": { "kind": "native", "element": "span", "choices": ["span"] } }, source: { file: import.meta.url }, css: "" };
565
+ const root = ref9();
566
+ const eventListener0 = (event) => emit("open", event.detail);
567
+ const eventListener1 = (event) => emit("close", event.detail);
568
+ let detach;
569
+ onMounted9(() => {
570
+ if (root.value == null) return;
571
+ detach = attachLoomaComponent6(root.value, definition, "ui-tooltip", props);
572
+ root.value.addEventListener("open", eventListener0);
573
+ root.value.addEventListener("close", eventListener1);
574
+ });
575
+ watchEffect10(() => {
576
+ if (root.value == null) return;
577
+ for (const name of ["defaultOpen", "for", "hideDelay", "open", "placement", "showDelay", "toggleOnClick"]) root.value[name] = props[name];
578
+ });
579
+ onUnmounted9(() => {
580
+ root.value?.removeEventListener("open", eventListener0);
581
+ root.value?.removeEventListener("close", eventListener1);
582
+ detach?.();
583
+ });
584
+ return (_ctx, _cache) => {
585
+ return _openBlock9(), _createElementBlock9(
586
+ "span",
587
+ _mergeProps9(_ctx.$attrs, {
588
+ "data-component": "ui-tooltip",
589
+ "data-component-root": "ui-tooltip",
590
+ "data-looma-managed": "framework",
591
+ role: "tooltip",
592
+ hidden: void 0,
593
+ "data-state-open": void 0,
594
+ ref_key: "root",
595
+ ref: root
596
+ }),
597
+ [
598
+ _createElementVNode5("div", _hoisted_18, [
599
+ _renderSlot8(_ctx.$slots, "default")
600
+ ])
601
+ ],
602
+ 16
603
+ /* FULL_PROPS */
604
+ );
605
+ };
606
+ }
607
+ });
608
+
609
+ // src/generated/UiCombobox.ts
610
+ import { onMounted as onMounted10, onUnmounted as onUnmounted10, ref as ref10, watchEffect as watchEffect11 } from "vue";
611
+ import { attachLoomaComponent as attachLoomaComponent7 } from "@threadlabs/looma/core/declarative";
612
+ var _hoisted_19 = ["data-size"];
613
+ var _hoisted_25 = {
614
+ class: "field",
615
+ part: "field",
616
+ "data-component": "ui-combobox"
617
+ };
618
+ var _hoisted_33 = ["placeholder", "name", "disabled", "readonly", "required"];
619
+ var _hoisted_4 = ["disabled"];
620
+ var _hoisted_5 = {
621
+ class: "popup",
622
+ part: "popup",
623
+ hidden: void 0,
624
+ "data-component": "ui-combobox"
625
+ };
626
+ var UiCombobox_default = /* @__PURE__ */ _defineComponent10({
627
+ ...{ inheritAttrs: false },
628
+ __name: "UiCombobox",
629
+ props: {
630
+ clearable: { type: [Boolean, null], required: false, default: false },
631
+ config: { type: null, required: false },
632
+ defaultQuery: { type: [String, null], required: false, default: "" },
633
+ defaultValue: { type: [String, null], required: false },
634
+ disabled: { type: [Boolean, null], required: false, default: false },
635
+ disclosure: { type: [Boolean, null], required: false, default: false },
636
+ help: { type: [String, null], required: false, default: "" },
637
+ label: { type: [String, null], required: false, default: "" },
638
+ labelVisibility: { type: [String, null], required: false, default: "visible" },
639
+ multiple: { type: [Boolean, null], required: false, default: false },
640
+ name: { type: [String, null], required: false, default: "" },
641
+ placeholder: { type: [String, null], required: false, default: "" },
642
+ query: { type: [String, null], required: false },
643
+ readOnly: { type: [Boolean, null], required: false, default: false },
644
+ required: { type: [Boolean, null], required: false, default: false },
645
+ size: { type: [String, null], required: false, default: "md" },
646
+ tokenSeparators: { type: [Array, null], required: false },
647
+ value: { type: [String, null, Array], required: false }
648
+ },
649
+ emits: ["query-change", "value-change", "free-entry", "create-entry", "dependency-invalidate", "validation-change", "options-change", "add-item", "remove-item", "create-item"],
650
+ setup(__props, { expose: __expose, emit: __emit }) {
651
+ const props = __props;
652
+ const emit = __emit;
653
+ const definition = { ...{ "contract": { "tag": "ui-combobox", "props": { "clearable": { "type": "boolean", "required": false, "target": { "attribute": "clearable" }, "default": false }, "config": { "type": { "kind": "terminal", "name": "unknown" }, "required": false, "target": { "property": "config" } }, "defaultQuery": { "type": "string", "required": false, "target": { "attribute": "defaultquery" }, "default": "" }, "defaultValue": { "type": "string", "required": false, "target": { "attribute": "defaultvalue" } }, "disabled": { "type": "boolean", "required": false, "target": { "attribute": "disabled" }, "default": false }, "disclosure": { "type": "boolean", "required": false, "target": { "attribute": "disclosure" }, "default": false }, "help": { "type": "string", "required": false, "target": { "attribute": "help" }, "default": "" }, "label": { "type": "string", "required": false, "target": { "attribute": "label" }, "default": "" }, "labelVisibility": { "type": { "enum": ["visible", "sr-only"] }, "required": false, "target": { "attribute": "labelvisibility" }, "default": "visible" }, "multiple": { "type": "boolean", "required": false, "target": { "attribute": "multiple" }, "default": false }, "name": { "type": "string", "required": false, "target": { "attribute": "name" }, "default": "" }, "placeholder": { "type": "string", "required": false, "target": { "attribute": "placeholder" }, "default": "" }, "query": { "type": "string", "required": false, "target": { "attribute": "query" } }, "readOnly": { "type": "boolean", "required": false, "target": { "attribute": "readonly" }, "default": false }, "required": { "type": "boolean", "required": false, "target": { "attribute": "required" }, "default": false }, "size": { "type": { "enum": ["sm", "md"] }, "required": false, "target": { "attribute": "data-size" }, "default": "md" }, "tokenSeparators": { "type": { "kind": "list", "item": { "kind": "terminal", "name": "string" } }, "required": false, "target": { "property": "tokenSeparators" } }, "value": { "type": { "kind": "union", "members": [{ "kind": "terminal", "name": "string" }, { "kind": "terminal", "name": "null" }, { "kind": "list", "item": { "kind": "object", "fields": [{ "name": "id", "type": { "kind": "terminal", "name": "string" }, "optional": false }, { "name": "value", "type": { "kind": "terminal", "name": "string" }, "optional": false }, { "name": "label", "type": { "kind": "terminal", "name": "string" }, "optional": false }, { "name": "description", "type": { "kind": "terminal", "name": "string" }, "optional": true }, { "name": "metadata", "type": { "kind": "terminal", "name": "unknown" }, "optional": true }, { "name": "group", "type": { "kind": "terminal", "name": "string" }, "optional": true }, { "name": "disabled", "type": { "kind": "terminal", "name": "boolean" }, "optional": true }], "open": false } }] }, "required": false, "target": { "property": "value" } } } }, "template": { "kind": "element", "name": "div", "attributes": [{ "kind": "property", "key": "value", "name": "value", "expression": "value", "expressionPlan": { "source": "value", "ast": { "kind": "id", "name": "value" }, "dependencies": ["value"] } }, { "kind": "property", "key": "tokenseparators", "name": "tokenSeparators", "expression": "tokenSeparators", "expressionPlan": { "source": "tokenSeparators", "ast": { "kind": "id", "name": "tokenSeparators" }, "dependencies": ["tokenSeparators"] } }, { "kind": "property", "key": "config", "name": "config", "expression": "config", "expressionPlan": { "source": "config", "ast": { "kind": "id", "name": "config" }, "dependencies": ["config"] } }, { "kind": "attribute", "name": "data-size", "expression": "size", "expressionPlan": { "source": "size", "ast": { "kind": "id", "name": "size" }, "dependencies": ["size"] } }], "children": [{ "kind": "element", "name": "label", "attributes": [{ "kind": "literal", "name": "for", "value": "input" }, { "kind": "literal", "name": "part", "value": "label" }], "children": [{ "kind": "element", "name": "template", "attributes": [{ "kind": "directive", "name": "value", "expression": "label", "expressionPlan": { "source": "label", "ast": { "kind": "id", "name": "label" }, "dependencies": ["label"] } }], "children": [] }] }, { "kind": "element", "name": "div", "attributes": [{ "kind": "literal", "name": "class", "value": "field" }, { "kind": "literal", "name": "part", "value": "field" }], "children": [{ "kind": "slot", "fallback": [], "name": "start" }, { "kind": "element", "name": "div", "attributes": [{ "kind": "literal", "name": "class", "value": "items" }, { "kind": "literal", "name": "role", "value": "group" }], "children": [], "flow": { "kind": "if", "test": "multiple", "testPlan": { "source": "multiple", "ast": { "kind": "id", "name": "multiple" }, "dependencies": ["multiple"] } } }, { "kind": "element", "name": "input", "attributes": [{ "kind": "literal", "name": "id", "value": "input" }, { "kind": "literal", "name": "role", "value": "combobox" }, { "kind": "literal", "name": "aria-autocomplete", "value": "list" }, { "kind": "literal", "name": "aria-controls", "value": "listbox" }, { "kind": "attribute", "name": "value", "expression": "display", "expressionPlan": { "source": "display", "ast": { "kind": "id", "name": "display" }, "dependencies": ["display"] } }, { "kind": "attribute", "name": "placeholder", "expression": "placeholder", "expressionPlan": { "source": "placeholder", "ast": { "kind": "id", "name": "placeholder" }, "dependencies": ["placeholder"] } }, { "kind": "attribute", "name": "name", "expression": "name", "expressionPlan": { "source": "name", "ast": { "kind": "id", "name": "name" }, "dependencies": ["name"] } }, { "kind": "attribute", "name": "disabled", "expression": "disabled", "expressionPlan": { "source": "disabled", "ast": { "kind": "id", "name": "disabled" }, "dependencies": ["disabled"] } }, { "kind": "attribute", "name": "readonly", "expression": "readOnly", "expressionPlan": { "source": "readOnly", "ast": { "kind": "id", "name": "readOnly" }, "dependencies": ["readOnly"] } }, { "kind": "attribute", "name": "required", "expression": "required", "expressionPlan": { "source": "required", "ast": { "kind": "id", "name": "required" }, "dependencies": ["required"] } }, { "kind": "literal", "name": "autocomplete", "value": "off" }, { "kind": "literal", "name": "part", "value": "input" }], "children": [] }, { "kind": "element", "name": "button", "attributes": [{ "kind": "literal", "name": "type", "value": "button" }, { "kind": "literal", "name": "part", "value": "affordance" }], "children": [{ "kind": "text", "value": "\xD7" }], "flow": { "kind": "if", "test": "clearable", "testPlan": { "source": "clearable", "ast": { "kind": "id", "name": "clearable" }, "dependencies": ["clearable"] } } }, { "kind": "element", "name": "button", "attributes": [{ "kind": "literal", "name": "id", "value": "help" }, { "kind": "literal", "name": "type", "value": "button" }, { "kind": "literal", "name": "part", "value": "affordance" }, { "kind": "attribute", "name": "disabled", "expression": "disabled", "expressionPlan": { "source": "disabled", "ast": { "kind": "id", "name": "disabled" }, "dependencies": ["disabled"] } }], "children": [{ "kind": "element", "name": "span", "attributes": [{ "kind": "literal", "name": "aria-hidden", "value": "true" }], "children": [{ "kind": "text", "value": "?" }] }], "flow": { "kind": "if", "test": "help", "testPlan": { "source": "help", "ast": { "kind": "id", "name": "help" }, "dependencies": ["help"] } } }, { "kind": "element", "name": "button", "attributes": [{ "kind": "literal", "name": "type", "value": "button" }, { "kind": "literal", "name": "part", "value": "affordance" }, { "kind": "literal", "name": "aria-controls", "value": "listbox" }], "children": [{ "kind": "element", "name": "span", "attributes": [{ "kind": "literal", "name": "aria-hidden", "value": "true" }], "children": [{ "kind": "text", "value": "\u2304" }] }], "flow": { "kind": "if", "test": "disclosure", "testPlan": { "source": "disclosure", "ast": { "kind": "id", "name": "disclosure" }, "dependencies": ["disclosure"] } } }] }, { "kind": "element", "name": "ui-tooltip", "attributes": [{ "kind": "literal", "name": "id", "value": "help-text" }, { "kind": "literal", "name": "for", "value": "help" }], "children": [{ "kind": "element", "name": "template", "attributes": [{ "kind": "directive", "name": "value", "expression": "help", "expressionPlan": { "source": "help", "ast": { "kind": "id", "name": "help" }, "dependencies": ["help"] } }], "children": [] }], "flow": { "kind": "if", "test": "help", "testPlan": { "source": "help", "ast": { "kind": "id", "name": "help" }, "dependencies": ["help"] } } }, { "kind": "element", "name": "div", "attributes": [{ "kind": "literal", "name": "class", "value": "popup" }, { "kind": "literal", "name": "part", "value": "popup" }, { "kind": "attribute", "name": "hidden", "expression": "not expanded", "expressionPlan": { "source": "not expanded", "ast": { "kind": "unary", "op": "not", "operand": { "kind": "id", "name": "expanded" } }, "dependencies": ["expanded"] } }], "children": [{ "kind": "element", "name": "div", "attributes": [{ "kind": "literal", "name": "id", "value": "listbox" }, { "kind": "literal", "name": "role", "value": "listbox" }], "children": [] }, { "kind": "slot", "fallback": [], "name": "footer" }] }, { "kind": "element", "name": "div", "attributes": [{ "kind": "literal", "name": "id", "value": "validation" }, { "kind": "literal", "name": "class", "value": "message" }, { "kind": "literal", "name": "part", "value": "validation" }, { "kind": "attribute", "name": "hidden", "expression": "not validation.issues.length", "expressionPlan": { "source": "not validation.issues.length", "ast": { "kind": "unary", "op": "not", "operand": { "kind": "member", "object": { "kind": "member", "object": { "kind": "id", "name": "validation" }, "key": "issues" }, "key": "length" } }, "dependencies": ["validation.issues.length"] } }], "children": [] }, { "kind": "element", "name": "div", "attributes": [{ "kind": "literal", "name": "class", "value": "sr-only" }, { "kind": "literal", "name": "role", "value": "status" }, { "kind": "literal", "name": "aria-live", "value": "polite" }, { "kind": "literal", "name": "aria-atomic", "value": "true" }], "children": [] }] }, "declarations": [{ "kind": "state", "name": "raw", "expression": { "source": "''", "ast": { "kind": "literal", "value": "" }, "dependencies": [] } }, { "kind": "state", "name": "display", "expression": { "source": "''", "ast": { "kind": "literal", "value": "" }, "dependencies": [] } }, { "kind": "state", "name": "selected", "expression": { "source": "null", "ast": { "kind": "literal", "value": null }, "dependencies": [] } }, { "kind": "state", "name": "expanded", "expression": { "source": "false", "ast": { "kind": "literal", "value": false }, "dependencies": [] } }, { "kind": "state", "name": "rows", "expression": { "source": "[]", "ast": { "kind": "array", "items": [] }, "dependencies": [] } }, { "kind": "state", "name": "active", "expression": { "source": "-1", "ast": { "kind": "unary", "op": "-", "operand": { "kind": "literal", "value": 1 } }, "dependencies": [] } }, { "kind": "state", "name": "loading", "expression": { "source": "false", "ast": { "kind": "literal", "value": false }, "dependencies": [] } }, { "kind": "state", "name": "helpOpen", "expression": { "source": "false", "ast": { "kind": "literal", "value": false }, "dependencies": [] } }, { "kind": "state", "name": "lookupError", "expression": { "source": "''", "ast": { "kind": "literal", "value": "" }, "dependencies": [] } }, { "kind": "state", "name": "validation", "expression": { "source": "{ status: 'pristine', touched: false, dirty: false, issues: [] }", "ast": { "kind": "object", "pairs": [{ "key": "status", "value": { "kind": "literal", "value": "pristine" } }, { "key": "touched", "value": { "kind": "literal", "value": false } }, { "key": "dirty", "value": { "kind": "literal", "value": false } }, { "key": "issues", "value": { "kind": "array", "items": [] } }] }, "dependencies": [] } }, { "kind": "event", "name": "query-change", "type": "object({ query: string, display: string, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }, { "kind": "event", "name": "value-change", "type": "object({ value: string | null, query: string, option: object({ id: string, value: string, label: string, description?: string, metadata?: unknown, group?: string, disabled?: boolean }) | null, kind: selection | clear | free-entry | create | invalidation, trigger: keyboard | pointer | programmatic }) | list(object({ id: string, value: string, label: string, description?: string, metadata?: unknown, group?: string, disabled?: boolean }))", "bubbles": true, "composed": true, "cancelable": false }, { "kind": "event", "name": "free-entry", "type": "object({ value: string | null, query: string, option: object({ id: string, value: string, label: string, description?: string, metadata?: unknown, group?: string, disabled?: boolean }) | null, kind: selection | clear | free-entry | create | invalidation, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }, { "kind": "event", "name": "create-entry", "type": "object({ value: string | null, query: string, option: object({ id: string, value: string, label: string, description?: string, metadata?: unknown, group?: string, disabled?: boolean }) | null, kind: selection | clear | free-entry | create | invalidation, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }, { "kind": "event", "name": "dependency-invalidate", "type": "object({ value: string | null, query: string, option: object({ id: string, value: string, label: string, description?: string, metadata?: unknown, group?: string, disabled?: boolean }) | null, kind: selection | clear | free-entry | create | invalidation, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }, { "kind": "event", "name": "validation-change", "type": "object({ status: pristine | pending | valid | warning | error, touched: boolean, dirty: boolean, issues: list(object({ message: string, path?: list(unknown), severity?: error | warning })), output?: unknown })", "bubbles": true, "composed": true, "cancelable": false }, { "kind": "event", "name": "options-change", "type": "list(object({ id: string, value: string, label: string, description?: string, metadata?: unknown, group?: string, disabled?: boolean }))", "bubbles": true, "composed": true, "cancelable": false }, { "kind": "event", "name": "add-item", "type": "object({ item: object({ id: string, value: string, label: string, description?: string, metadata?: unknown, group?: string, disabled?: boolean }), index: integer, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }, { "kind": "event", "name": "remove-item", "type": "object({ item: object({ id: string, value: string, label: string, description?: string, metadata?: unknown, group?: string, disabled?: boolean }), index: integer, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }, { "kind": "event", "name": "create-item", "type": "object({ query: string, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }, { "kind": "method", "name": "validate", "exportName": "validate", "returns": "promise(unknown)" }, { "kind": "method", "name": "focusInput", "exportName": "focusInput", "returns": "promise(undefined)" }], "root": { "kind": "native", "element": "div", "choices": ["div"] } }, source: { file: import.meta.url }, css: "" };
654
+ const root = ref10();
655
+ const eventListener0 = (event) => emit("query-change", event.detail);
656
+ const eventListener1 = (event) => emit("value-change", event.detail);
657
+ const eventListener2 = (event) => emit("free-entry", event.detail);
658
+ const eventListener3 = (event) => emit("create-entry", event.detail);
659
+ const eventListener4 = (event) => emit("dependency-invalidate", event.detail);
660
+ const eventListener5 = (event) => emit("validation-change", event.detail);
661
+ const eventListener6 = (event) => emit("options-change", event.detail);
662
+ const eventListener7 = (event) => emit("add-item", event.detail);
663
+ const eventListener8 = (event) => emit("remove-item", event.detail);
664
+ const eventListener9 = (event) => emit("create-item", event.detail);
665
+ let detach;
666
+ onMounted10(() => {
667
+ if (root.value == null) return;
668
+ detach = attachLoomaComponent7(root.value, definition, "ui-combobox", props);
669
+ root.value.addEventListener("query-change", eventListener0);
670
+ root.value.addEventListener("value-change", eventListener1);
671
+ root.value.addEventListener("free-entry", eventListener2);
672
+ root.value.addEventListener("create-entry", eventListener3);
673
+ root.value.addEventListener("dependency-invalidate", eventListener4);
674
+ root.value.addEventListener("validation-change", eventListener5);
675
+ root.value.addEventListener("options-change", eventListener6);
676
+ root.value.addEventListener("add-item", eventListener7);
677
+ root.value.addEventListener("remove-item", eventListener8);
678
+ root.value.addEventListener("create-item", eventListener9);
679
+ });
680
+ watchEffect11(() => {
681
+ if (root.value == null) return;
682
+ for (const name of ["clearable", "config", "defaultQuery", "defaultValue", "disabled", "disclosure", "help", "label", "labelVisibility", "multiple", "name", "placeholder", "query", "readOnly", "required", "size", "tokenSeparators", "value"]) root.value[name] = props[name];
683
+ });
684
+ __expose({
685
+ validate: () => root.value["validate"](),
686
+ focusInput: () => root.value["focusInput"]()
687
+ });
688
+ onUnmounted10(() => {
689
+ root.value?.removeEventListener("query-change", eventListener0);
690
+ root.value?.removeEventListener("value-change", eventListener1);
691
+ root.value?.removeEventListener("free-entry", eventListener2);
692
+ root.value?.removeEventListener("create-entry", eventListener3);
693
+ root.value?.removeEventListener("dependency-invalidate", eventListener4);
694
+ root.value?.removeEventListener("validation-change", eventListener5);
695
+ root.value?.removeEventListener("options-change", eventListener6);
696
+ root.value?.removeEventListener("add-item", eventListener7);
697
+ root.value?.removeEventListener("remove-item", eventListener8);
698
+ root.value?.removeEventListener("create-item", eventListener9);
699
+ detach?.();
700
+ });
701
+ return (_ctx, _cache) => {
702
+ return _openBlock10(), _createElementBlock10("div", _mergeProps10(_ctx.$attrs, {
703
+ "data-component": "ui-combobox",
704
+ "data-component-root": "ui-combobox",
705
+ "data-looma-managed": "framework",
706
+ "data-size": props.size,
707
+ ref_key: "root",
708
+ ref: root
709
+ }), [
710
+ _cache[6] || (_cache[6] = _createElementVNode6(
711
+ "label",
712
+ {
713
+ for: "input",
714
+ part: "label",
715
+ "data-component": "ui-combobox"
716
+ },
717
+ [
718
+ _createElementVNode6("template", { "data-component": "ui-combobox" }, [
719
+ _createTextVNode(_toDisplayString(void 0))
720
+ ])
721
+ ],
722
+ -1
723
+ /* CACHED */
724
+ )),
725
+ _createElementVNode6("div", _hoisted_25, [
726
+ _renderSlot9(_ctx.$slots, "start"),
727
+ _cache[1] || (_cache[1] = _createElementVNode6(
728
+ "div",
729
+ {
730
+ class: "items",
731
+ role: "group",
732
+ "data-component": "ui-combobox"
733
+ },
734
+ null,
735
+ -1
736
+ /* CACHED */
737
+ )),
738
+ _createElementVNode6("input", {
739
+ id: "input",
740
+ role: "combobox",
741
+ "aria-autocomplete": "list",
742
+ "aria-controls": "listbox",
743
+ value: void 0,
744
+ placeholder: props.placeholder,
745
+ name: props.name,
746
+ disabled: props.disabled,
747
+ readonly: props.readOnly,
748
+ required: props.required,
749
+ autocomplete: "off",
750
+ part: "input",
751
+ "data-component": "ui-combobox"
752
+ }, null, 8, _hoisted_33),
753
+ _cache[2] || (_cache[2] = _createElementVNode6(
754
+ "button",
755
+ {
756
+ type: "button",
757
+ part: "affordance",
758
+ "data-component": "ui-combobox"
759
+ },
760
+ " \xD7 ",
761
+ -1
762
+ /* CACHED */
763
+ )),
764
+ _createElementVNode6("button", {
765
+ id: "help",
766
+ type: "button",
767
+ part: "affordance",
768
+ disabled: props.disabled,
769
+ "data-component": "ui-combobox"
770
+ }, [..._cache[0] || (_cache[0] = [
771
+ _createElementVNode6(
772
+ "span",
773
+ {
774
+ "aria-hidden": "true",
775
+ "data-component": "ui-combobox"
776
+ },
777
+ " ? ",
778
+ -1
779
+ /* CACHED */
780
+ )
781
+ ])], 8, _hoisted_4),
782
+ _cache[3] || (_cache[3] = _createElementVNode6(
783
+ "button",
784
+ {
785
+ type: "button",
786
+ part: "affordance",
787
+ "aria-controls": "listbox",
788
+ "data-component": "ui-combobox"
789
+ },
790
+ [
791
+ _createElementVNode6("span", {
792
+ "aria-hidden": "true",
793
+ "data-component": "ui-combobox"
794
+ }, " \u2304 ")
795
+ ],
796
+ -1
797
+ /* CACHED */
798
+ ))
799
+ ]),
800
+ _createVNode(_unref(UiTooltip_default), {
801
+ id: "help-text",
802
+ for: "help",
803
+ "data-component": "ui-combobox"
804
+ }, {
805
+ default: _withCtx(() => [..._cache[4] || (_cache[4] = [
806
+ _createElementVNode6(
807
+ "template",
808
+ { "data-component": "ui-combobox" },
809
+ [
810
+ _createTextVNode(_toDisplayString(void 0))
811
+ ],
812
+ -1
813
+ /* CACHED */
814
+ )
815
+ ])]),
816
+ _: 1
817
+ /* STABLE */
818
+ }),
819
+ _createElementVNode6("div", _hoisted_5, [
820
+ _cache[5] || (_cache[5] = _createElementVNode6(
821
+ "div",
822
+ {
823
+ id: "listbox",
824
+ role: "listbox",
825
+ "data-component": "ui-combobox"
826
+ },
827
+ null,
828
+ -1
829
+ /* CACHED */
830
+ )),
831
+ _renderSlot9(_ctx.$slots, "footer")
832
+ ]),
833
+ _cache[7] || (_cache[7] = _createElementVNode6(
834
+ "div",
835
+ {
836
+ id: "validation",
837
+ class: "message",
838
+ part: "validation",
839
+ hidden: void 0,
840
+ "data-component": "ui-combobox"
841
+ },
842
+ null,
843
+ -1
844
+ /* CACHED */
845
+ )),
846
+ _cache[8] || (_cache[8] = _createElementVNode6(
847
+ "div",
848
+ {
849
+ class: "sr-only",
850
+ role: "status",
851
+ "aria-live": "polite",
852
+ "aria-atomic": "true",
853
+ "data-component": "ui-combobox"
854
+ },
855
+ null,
856
+ -1
857
+ /* CACHED */
858
+ ))
859
+ ], 16, _hoisted_19);
860
+ };
861
+ }
862
+ });
863
+
864
+ // src/generated/UiContextMenu.ts
865
+ import { defineComponent as _defineComponent12 } from "vue";
866
+ import { renderSlot as _renderSlot11, unref as _unref2, withCtx as _withCtx2, createVNode as _createVNode2, createElementVNode as _createElementVNode8, mergeProps as _mergeProps12, openBlock as _openBlock12, createElementBlock as _createElementBlock12 } from "vue";
867
+
868
+ // src/generated/UiMenu.ts
869
+ import { defineComponent as _defineComponent11 } from "vue";
870
+ import { renderSlot as _renderSlot10, createElementVNode as _createElementVNode7, mergeProps as _mergeProps11, openBlock as _openBlock11, createElementBlock as _createElementBlock11 } from "vue";
871
+ import { onMounted as onMounted11, onUnmounted as onUnmounted11, ref as ref11, watchEffect as watchEffect12 } from "vue";
872
+ import { attachLoomaComponent as attachLoomaComponent8 } from "@threadlabs/looma/core/declarative";
873
+ var _hoisted_110 = {
874
+ class: "menu__surface",
875
+ "data-component": "ui-menu"
876
+ };
877
+ var UiMenu_default = /* @__PURE__ */ _defineComponent11({
878
+ ...{ inheritAttrs: false },
879
+ __name: "UiMenu",
880
+ props: {
881
+ defaultOpen: { type: [Boolean, null], required: false, default: false },
882
+ for: { type: [String, null], required: false },
883
+ open: { type: [Boolean, null], required: false },
884
+ placement: { type: [String, null], required: false, default: "bottom-start" }
885
+ },
886
+ emits: ["select", "close"],
887
+ setup(__props, { emit: __emit }) {
888
+ const props = __props;
889
+ const emit = __emit;
890
+ const definition = { ...{ "contract": { "tag": "ui-menu", "props": { "defaultOpen": { "type": "boolean", "required": false, "target": { "attribute": "defaultopen" }, "default": false }, "for": { "type": "string", "required": false, "target": { "attribute": "for" } }, "open": { "type": "boolean", "required": false, "target": { "attribute": "open" } }, "placement": { "type": "string", "required": false, "target": { "attribute": "placement" }, "default": "bottom-start" } } }, "template": { "kind": "element", "name": "div", "attributes": [{ "kind": "literal", "name": "role", "value": "menu" }, { "kind": "literal", "name": "aria-orientation", "value": "vertical" }, { "kind": "attribute", "name": "data-state-open", "expression": "internalOpen", "expressionPlan": { "source": "internalOpen", "ast": { "kind": "id", "name": "internalOpen" }, "dependencies": ["internalOpen"] } }], "children": [{ "kind": "element", "name": "div", "attributes": [{ "kind": "literal", "name": "class", "value": "menu__surface" }], "children": [{ "kind": "slot" }] }] }, "declarations": [{ "kind": "state", "name": "internalOpen", "expression": { "source": "false", "ast": { "kind": "literal", "value": false }, "dependencies": [] } }, { "kind": "event", "name": "select", "type": "object({ value: string, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }, { "kind": "event", "name": "close", "type": "object({ open: boolean, reason: action | programmatic | light-dismiss | escape, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }], "root": { "kind": "native", "element": "div", "choices": ["div"] } }, source: { file: import.meta.url }, css: "" };
891
+ const root = ref11();
892
+ const eventListener0 = (event) => emit("select", event.detail);
893
+ const eventListener1 = (event) => emit("close", event.detail);
894
+ let detach;
895
+ onMounted11(() => {
896
+ if (root.value == null) return;
897
+ detach = attachLoomaComponent8(root.value, definition, "ui-menu", props);
898
+ root.value.addEventListener("select", eventListener0);
899
+ root.value.addEventListener("close", eventListener1);
900
+ });
901
+ watchEffect12(() => {
902
+ if (root.value == null) return;
903
+ for (const name of ["defaultOpen", "for", "open", "placement"]) root.value[name] = props[name];
904
+ });
905
+ onUnmounted11(() => {
906
+ root.value?.removeEventListener("select", eventListener0);
907
+ root.value?.removeEventListener("close", eventListener1);
908
+ detach?.();
909
+ });
910
+ return (_ctx, _cache) => {
911
+ return _openBlock11(), _createElementBlock11(
912
+ "div",
913
+ _mergeProps11(_ctx.$attrs, {
914
+ "data-component": "ui-menu",
915
+ "data-component-root": "ui-menu",
916
+ "data-looma-managed": "framework",
917
+ role: "menu",
918
+ "aria-orientation": "vertical",
919
+ "data-state-open": void 0,
920
+ ref_key: "root",
921
+ ref: root
922
+ }),
923
+ [
924
+ _createElementVNode7("div", _hoisted_110, [
925
+ _renderSlot10(_ctx.$slots, "default")
926
+ ])
927
+ ],
928
+ 16
929
+ /* FULL_PROPS */
930
+ );
931
+ };
932
+ }
933
+ });
934
+
935
+ // src/generated/UiContextMenu.ts
936
+ import { onMounted as onMounted12, onUnmounted as onUnmounted12, ref as ref12, watchEffect as watchEffect13 } from "vue";
937
+ import { attachLoomaComponent as attachLoomaComponent9 } from "@threadlabs/looma/core/declarative";
938
+ var _hoisted_111 = {
939
+ class: "menu",
940
+ "data-state-open": void 0,
941
+ "data-component": "ui-context-menu"
942
+ };
943
+ var UiContextMenu_default = /* @__PURE__ */ _defineComponent12({
944
+ ...{ inheritAttrs: false },
945
+ __name: "UiContextMenu",
946
+ props: {
947
+ defaultOpen: { type: [Boolean, null], required: false, default: false },
948
+ for: { type: [String, null], required: false },
949
+ open: { type: [Boolean, null], required: false }
950
+ },
951
+ emits: ["open", "close", "select"],
952
+ setup(__props, { emit: __emit }) {
953
+ const props = __props;
954
+ const emit = __emit;
955
+ const definition = { ...{ "contract": { "tag": "ui-context-menu", "props": { "defaultOpen": { "type": "boolean", "required": false, "target": { "attribute": "defaultopen" }, "default": false }, "for": { "type": "string", "required": false, "target": { "attribute": "for" } }, "open": { "type": "boolean", "required": false, "target": { "attribute": "open" } } } }, "template": { "kind": "element", "name": "span", "attributes": [{ "kind": "attribute", "name": "data-state-open", "expression": "internalOpen", "expressionPlan": { "source": "internalOpen", "ast": { "kind": "id", "name": "internalOpen" }, "dependencies": ["internalOpen"] } }], "children": [{ "kind": "slot", "fallback": [], "name": "trigger" }, { "kind": "element", "name": "div", "attributes": [{ "kind": "literal", "name": "class", "value": "menu" }, { "kind": "attribute", "name": "data-state-open", "expression": "internalOpen", "expressionPlan": { "source": "internalOpen", "ast": { "kind": "id", "name": "internalOpen" }, "dependencies": ["internalOpen"] } }], "children": [{ "kind": "element", "name": "ui-menu", "attributes": [], "children": [{ "kind": "slot" }] }] }] }, "declarations": [{ "kind": "state", "name": "internalOpen", "expression": { "source": "false", "ast": { "kind": "literal", "value": false }, "dependencies": [] } }, { "kind": "state", "name": "focusTrigger", "expression": { "source": "'programmatic'", "ast": { "kind": "literal", "value": "programmatic" }, "dependencies": [] } }, { "kind": "event", "name": "open", "type": "object({ open: boolean, reason: action | programmatic | light-dismiss | escape, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }, { "kind": "event", "name": "close", "type": "object({ open: boolean, reason: action | programmatic | light-dismiss | escape, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }, { "kind": "event", "name": "select", "type": "object({ value: string, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }], "root": { "kind": "native", "element": "span", "choices": ["span"] } }, source: { file: import.meta.url }, css: "" };
956
+ const root = ref12();
957
+ const eventListener0 = (event) => emit("open", event.detail);
958
+ const eventListener1 = (event) => emit("close", event.detail);
959
+ const eventListener2 = (event) => emit("select", event.detail);
960
+ let detach;
961
+ onMounted12(() => {
962
+ if (root.value == null) return;
963
+ detach = attachLoomaComponent9(root.value, definition, "ui-context-menu", props);
964
+ root.value.addEventListener("open", eventListener0);
965
+ root.value.addEventListener("close", eventListener1);
966
+ root.value.addEventListener("select", eventListener2);
967
+ });
968
+ watchEffect13(() => {
969
+ if (root.value == null) return;
970
+ for (const name of ["defaultOpen", "for", "open"]) root.value[name] = props[name];
971
+ });
972
+ onUnmounted12(() => {
973
+ root.value?.removeEventListener("open", eventListener0);
974
+ root.value?.removeEventListener("close", eventListener1);
975
+ root.value?.removeEventListener("select", eventListener2);
976
+ detach?.();
977
+ });
978
+ return (_ctx, _cache) => {
979
+ return _openBlock12(), _createElementBlock12(
980
+ "span",
981
+ _mergeProps12(_ctx.$attrs, {
982
+ "data-component": "ui-context-menu",
983
+ "data-component-root": "ui-context-menu",
984
+ "data-looma-managed": "framework",
985
+ "data-state-open": void 0,
986
+ ref_key: "root",
987
+ ref: root
988
+ }),
989
+ [
990
+ _renderSlot11(_ctx.$slots, "trigger"),
991
+ _createElementVNode8("div", _hoisted_111, [
992
+ _createVNode2(_unref2(UiMenu_default), { "data-component": "ui-context-menu" }, {
993
+ default: _withCtx2(() => [
994
+ _renderSlot11(_ctx.$slots, "default")
995
+ ]),
996
+ _: 3
997
+ /* FORWARDED */
998
+ })
999
+ ])
1000
+ ],
1001
+ 16
1002
+ /* FULL_PROPS */
1003
+ );
1004
+ };
1005
+ }
1006
+ });
1007
+
1008
+ // src/generated/UiDialog.ts
1009
+ import { defineComponent as _defineComponent13 } from "vue";
1010
+ import { renderSlot as _renderSlot12, createElementVNode as _createElementVNode9, mergeProps as _mergeProps13, openBlock as _openBlock13, createElementBlock as _createElementBlock13 } from "vue";
1011
+ import { onMounted as onMounted13, onUnmounted as onUnmounted13, ref as ref13, watchEffect as watchEffect14 } from "vue";
1012
+ import { attachLoomaComponent as attachLoomaComponent10 } from "@threadlabs/looma/core/declarative";
1013
+ var _hoisted_112 = {
1014
+ "aria-label": void 0,
1015
+ "data-component": "ui-dialog"
1016
+ };
1017
+ var UiDialog_default = /* @__PURE__ */ _defineComponent13({
1018
+ ...{ inheritAttrs: false },
1019
+ __name: "UiDialog",
1020
+ props: {
1021
+ defaultOpen: { type: [Boolean, null], required: false, default: false },
1022
+ dismissible: { type: [Boolean, null], required: false, default: true },
1023
+ label: { type: [String, null], required: false },
1024
+ modal: { type: [Boolean, null], required: false, default: true },
1025
+ open: { type: [Boolean, null], required: false }
1026
+ },
1027
+ emits: ["close"],
1028
+ setup(__props, { emit: __emit }) {
1029
+ const props = __props;
1030
+ const emit = __emit;
1031
+ const definition = { ...{ "contract": { "tag": "ui-dialog", "props": { "defaultOpen": { "type": "boolean", "required": false, "target": { "attribute": "defaultopen" }, "default": false }, "dismissible": { "type": "boolean", "required": false, "target": { "attribute": "dismissible" }, "default": true }, "label": { "type": "string", "required": false, "target": { "attribute": "label" } }, "modal": { "type": "boolean", "required": false, "target": { "attribute": "modal" }, "default": true }, "open": { "type": "boolean", "required": false, "target": { "attribute": "open" } } } }, "template": { "kind": "element", "name": "div", "attributes": [{ "kind": "attribute", "name": "data-state-open", "expression": "internalOpen", "expressionPlan": { "source": "internalOpen", "ast": { "kind": "id", "name": "internalOpen" }, "dependencies": ["internalOpen"] } }], "children": [{ "kind": "element", "name": "dialog", "attributes": [{ "kind": "attribute", "name": "aria-label", "expression": "accessibleLabel", "expressionPlan": { "source": "accessibleLabel", "ast": { "kind": "id", "name": "accessibleLabel" }, "dependencies": ["accessibleLabel"] } }], "children": [{ "kind": "slot" }] }] }, "declarations": [{ "kind": "state", "name": "internalOpen", "expression": { "source": "false", "ast": { "kind": "literal", "value": false }, "dependencies": [] } }, { "kind": "state", "name": "accessibleLabel", "expression": { "source": "'Dialog'", "ast": { "kind": "literal", "value": "Dialog" }, "dependencies": [] } }, { "kind": "event", "name": "close", "type": "object({ open: boolean, reason: action | programmatic | light-dismiss | escape, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }], "root": { "kind": "native", "element": "div", "choices": ["div"] } }, source: { file: import.meta.url }, css: "" };
1032
+ const root = ref13();
1033
+ const eventListener0 = (event) => emit("close", event.detail);
1034
+ let detach;
1035
+ onMounted13(() => {
1036
+ if (root.value == null) return;
1037
+ detach = attachLoomaComponent10(root.value, definition, "ui-dialog", props);
1038
+ root.value.addEventListener("close", eventListener0);
1039
+ });
1040
+ watchEffect14(() => {
1041
+ if (root.value == null) return;
1042
+ for (const name of ["defaultOpen", "dismissible", "label", "modal", "open"]) root.value[name] = props[name];
1043
+ });
1044
+ onUnmounted13(() => {
1045
+ root.value?.removeEventListener("close", eventListener0);
1046
+ detach?.();
1047
+ });
1048
+ return (_ctx, _cache) => {
1049
+ return _openBlock13(), _createElementBlock13(
1050
+ "div",
1051
+ _mergeProps13(_ctx.$attrs, {
1052
+ "data-component": "ui-dialog",
1053
+ "data-component-root": "ui-dialog",
1054
+ "data-looma-managed": "framework",
1055
+ "data-state-open": void 0,
1056
+ ref_key: "root",
1057
+ ref: root
1058
+ }),
1059
+ [
1060
+ _createElementVNode9("dialog", _hoisted_112, [
1061
+ _renderSlot12(_ctx.$slots, "default")
1062
+ ])
1063
+ ],
1064
+ 16
1065
+ /* FULL_PROPS */
1066
+ );
1067
+ };
1068
+ }
1069
+ });
1070
+
1071
+ // src/generated/UiDisclosure.ts
1072
+ import { defineComponent as _defineComponent14 } from "vue";
1073
+ import { renderSlot as _renderSlot13, mergeProps as _mergeProps14, openBlock as _openBlock14, createElementBlock as _createElementBlock14 } from "vue";
1074
+ import { onMounted as onMounted14, onUnmounted as onUnmounted14, ref as ref14, watchEffect as watchEffect15 } from "vue";
1075
+ import { attachLoomaComponent as attachLoomaComponent11 } from "@threadlabs/looma/core/declarative";
1076
+ var UiDisclosure_default = /* @__PURE__ */ _defineComponent14({
1077
+ ...{ inheritAttrs: false },
1078
+ __name: "UiDisclosure",
1079
+ props: {
1080
+ defaultOpen: { type: [Boolean, null], required: false, default: false },
1081
+ disabled: { type: [Boolean, null], required: false, default: false },
1082
+ open: { type: [Boolean, null], required: false }
1083
+ },
1084
+ emits: ["open", "close"],
1085
+ setup(__props, { emit: __emit }) {
1086
+ const props = __props;
1087
+ const emit = __emit;
1088
+ const definition = { ...{ "contract": { "tag": "ui-disclosure", "props": { "defaultOpen": { "type": "boolean", "required": false, "target": { "attribute": "defaultopen" }, "default": false }, "disabled": { "type": "boolean", "required": false, "target": { "attribute": "disabled" }, "default": false }, "open": { "type": "boolean", "required": false, "target": { "attribute": "open" } } } }, "template": { "kind": "element", "name": "div", "attributes": [], "children": [{ "kind": "slot" }] }, "declarations": [{ "kind": "state", "name": "internalOpen", "expression": { "source": "false", "ast": { "kind": "literal", "value": false }, "dependencies": [] } }, { "kind": "state", "name": "contentId", "expression": { "source": "''", "ast": { "kind": "literal", "value": "" }, "dependencies": [] } }, { "kind": "event", "name": "open", "type": "object({ open: boolean, reason: action | programmatic | light-dismiss | escape, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }, { "kind": "event", "name": "close", "type": "object({ open: boolean, reason: action | programmatic | light-dismiss | escape, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }], "root": { "kind": "native", "element": "div", "choices": ["div"] } }, source: { file: import.meta.url }, css: "" };
1089
+ const root = ref14();
1090
+ const eventListener0 = (event) => emit("open", event.detail);
1091
+ const eventListener1 = (event) => emit("close", event.detail);
1092
+ let detach;
1093
+ onMounted14(() => {
1094
+ if (root.value == null) return;
1095
+ detach = attachLoomaComponent11(root.value, definition, "ui-disclosure", props);
1096
+ root.value.addEventListener("open", eventListener0);
1097
+ root.value.addEventListener("close", eventListener1);
1098
+ });
1099
+ watchEffect15(() => {
1100
+ if (root.value == null) return;
1101
+ for (const name of ["defaultOpen", "disabled", "open"]) root.value[name] = props[name];
1102
+ });
1103
+ onUnmounted14(() => {
1104
+ root.value?.removeEventListener("open", eventListener0);
1105
+ root.value?.removeEventListener("close", eventListener1);
1106
+ detach?.();
1107
+ });
1108
+ return (_ctx, _cache) => {
1109
+ return _openBlock14(), _createElementBlock14(
1110
+ "div",
1111
+ _mergeProps14(_ctx.$attrs, {
1112
+ "data-component": "ui-disclosure",
1113
+ "data-component-root": "ui-disclosure",
1114
+ "data-looma-managed": "framework",
1115
+ ref_key: "root",
1116
+ ref: root
1117
+ }),
1118
+ [
1119
+ _renderSlot13(_ctx.$slots, "default")
1120
+ ],
1121
+ 16
1122
+ /* FULL_PROPS */
1123
+ );
1124
+ };
1125
+ }
1126
+ });
1127
+
1128
+ // src/generated/UiEditable.ts
1129
+ import { defineComponent as _defineComponent15 } from "vue";
1130
+ import { renderSlot as _renderSlot14, createElementVNode as _createElementVNode10, mergeProps as _mergeProps15, openBlock as _openBlock15, createElementBlock as _createElementBlock15 } from "vue";
1131
+ import { onMounted as onMounted15, onUnmounted as onUnmounted15, ref as ref15, watchEffect as watchEffect16 } from "vue";
1132
+ import { attachLoomaComponent as attachLoomaComponent12 } from "@threadlabs/looma/core/declarative";
1133
+ var _hoisted_113 = ["data-disabled"];
1134
+ var _hoisted_26 = {
1135
+ part: "preview",
1136
+ "data-component": "ui-editable"
1137
+ };
1138
+ var _hoisted_34 = {
1139
+ part: "edit",
1140
+ hidden: void 0,
1141
+ "data-component": "ui-editable"
1142
+ };
1143
+ var UiEditable_default = /* @__PURE__ */ _defineComponent15({
1144
+ ...{ inheritAttrs: false },
1145
+ __name: "UiEditable",
1146
+ props: {
1147
+ defaultEdit: { type: [Boolean, null], required: false, default: false },
1148
+ disabled: { type: [Boolean, null], required: false, default: false },
1149
+ edit: { type: [Boolean, null], required: false }
1150
+ },
1151
+ emits: ["edit-change"],
1152
+ setup(__props, { emit: __emit }) {
1153
+ const props = __props;
1154
+ const emit = __emit;
1155
+ const definition = { ...{ "contract": { "tag": "ui-editable", "props": { "defaultEdit": { "type": "boolean", "required": false, "target": { "attribute": "defaultedit" }, "default": false }, "disabled": { "type": "boolean", "required": false, "target": { "attribute": "data-disabled" }, "default": false }, "edit": { "type": "boolean", "required": false, "target": { "attribute": "edit" } } } }, "template": { "kind": "element", "name": "div", "attributes": [{ "kind": "attribute", "name": "data-state-edit", "expression": "internalEdit", "expressionPlan": { "source": "internalEdit", "ast": { "kind": "id", "name": "internalEdit" }, "dependencies": ["internalEdit"] } }, { "kind": "attribute", "name": "data-disabled", "expression": "disabled", "expressionPlan": { "source": "disabled", "ast": { "kind": "id", "name": "disabled" }, "dependencies": ["disabled"] } }], "children": [{ "kind": "element", "name": "div", "attributes": [{ "kind": "literal", "name": "part", "value": "preview" }], "children": [{ "kind": "slot", "fallback": [], "name": "preview" }] }, { "kind": "element", "name": "div", "attributes": [{ "kind": "literal", "name": "part", "value": "edit" }, { "kind": "attribute", "name": "hidden", "expression": "not internalEdit", "expressionPlan": { "source": "not internalEdit", "ast": { "kind": "unary", "op": "not", "operand": { "kind": "id", "name": "internalEdit" } }, "dependencies": ["internalEdit"] } }], "children": [{ "kind": "slot", "fallback": [], "name": "edit" }] }] }, "declarations": [{ "kind": "state", "name": "internalEdit", "expression": { "source": "false", "ast": { "kind": "literal", "value": false }, "dependencies": [] } }, { "kind": "event", "name": "edit-change", "type": "object({ edit: boolean, reason: activate | light-dismiss | escape | programmatic, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }], "root": { "kind": "native", "element": "div", "choices": ["div"] } }, source: { file: import.meta.url }, css: "" };
1156
+ const root = ref15();
1157
+ const eventListener0 = (event) => emit("edit-change", event.detail);
1158
+ let detach;
1159
+ onMounted15(() => {
1160
+ if (root.value == null) return;
1161
+ detach = attachLoomaComponent12(root.value, definition, "ui-editable", props);
1162
+ root.value.addEventListener("edit-change", eventListener0);
1163
+ });
1164
+ watchEffect16(() => {
1165
+ if (root.value == null) return;
1166
+ for (const name of ["defaultEdit", "disabled", "edit"]) root.value[name] = props[name];
1167
+ });
1168
+ onUnmounted15(() => {
1169
+ root.value?.removeEventListener("edit-change", eventListener0);
1170
+ detach?.();
1171
+ });
1172
+ return (_ctx, _cache) => {
1173
+ return _openBlock15(), _createElementBlock15("div", _mergeProps15(_ctx.$attrs, {
1174
+ "data-component": "ui-editable",
1175
+ "data-component-root": "ui-editable",
1176
+ "data-looma-managed": "framework",
1177
+ "data-state-edit": void 0,
1178
+ "data-disabled": props.disabled ? "" : void 0,
1179
+ ref_key: "root",
1180
+ ref: root
1181
+ }), [
1182
+ _createElementVNode10("div", _hoisted_26, [
1183
+ _renderSlot14(_ctx.$slots, "preview")
1184
+ ]),
1185
+ _createElementVNode10("div", _hoisted_34, [
1186
+ _renderSlot14(_ctx.$slots, "edit")
1187
+ ])
1188
+ ], 16, _hoisted_113);
1189
+ };
1190
+ }
1191
+ });
1192
+
1193
+ // src/generated/UiFloatingActionButton.ts
1194
+ import { defineComponent as _defineComponent16 } from "vue";
1195
+ import { renderSlot as _renderSlot15, createElementVNode as _createElementVNode11, mergeProps as _mergeProps16, openBlock as _openBlock16, createElementBlock as _createElementBlock16 } from "vue";
1196
+ import { onMounted as onMounted16, onUnmounted as onUnmounted16, ref as ref16, watchEffect as watchEffect17 } from "vue";
1197
+ import { manageGeneratedProps as manageGeneratedProps4 } from "@threadlabs/looma/core/declarative-generated";
1198
+ var _hoisted_114 = ["data-disabled"];
1199
+ var _hoisted_27 = ["aria-label"];
1200
+ var UiFloatingActionButton_default = /* @__PURE__ */ _defineComponent16({
1201
+ ...{ inheritAttrs: false },
1202
+ __name: "UiFloatingActionButton",
1203
+ props: {
1204
+ disabled: { type: [Boolean, null], required: false, default: false },
1205
+ label: { type: [String, null], required: false, default: "" },
1206
+ mobileOnly: { type: [Boolean, null], required: false, default: false }
1207
+ },
1208
+ setup(__props) {
1209
+ const props = __props;
1210
+ const root = ref16();
1211
+ let detach;
1212
+ onMounted16(() => {
1213
+ if (root.value == null) return;
1214
+ detach = manageGeneratedProps4(root.value, [
1215
+ { name: "disabled", attribute: "data-disabled", value: props.disabled, type: "boolean", required: false },
1216
+ { name: "label", attribute: "data-label", value: props.label, type: "string", required: false },
1217
+ { name: "mobileOnly", attribute: "data-mobile-only", value: props.mobileOnly, type: "boolean", required: false }
1218
+ ]);
1219
+ });
1220
+ watchEffect17(() => {
1221
+ if (root.value == null) return;
1222
+ for (const name of ["disabled", "label", "mobileOnly"]) root.value[name] = props[name];
1223
+ });
1224
+ onUnmounted16(() => {
1225
+ detach?.();
1226
+ });
1227
+ return (_ctx, _cache) => {
1228
+ return _openBlock16(), _createElementBlock16("span", _mergeProps16(_ctx.$attrs, {
1229
+ "data-component": "ui-floating-action-button",
1230
+ "data-component-root": "ui-floating-action-button",
1231
+ "data-looma-managed": "framework",
1232
+ "data-disabled": props.disabled ? "" : void 0,
1233
+ ref_key: "root",
1234
+ ref: root
1235
+ }), [
1236
+ _createElementVNode11("button", {
1237
+ type: "button",
1238
+ "aria-label": props.label,
1239
+ "data-component": "ui-floating-action-button"
1240
+ }, [
1241
+ _renderSlot15(_ctx.$slots, "default")
1242
+ ], 8, _hoisted_27)
1243
+ ], 16, _hoisted_114);
1244
+ };
1245
+ }
1246
+ });
1247
+
1248
+ // src/generated/UiFormField.ts
1249
+ import { defineComponent as _defineComponent17 } from "vue";
1250
+ import { renderSlot as _renderSlot16, mergeProps as _mergeProps17, openBlock as _openBlock17, createElementBlock as _createElementBlock17 } from "vue";
1251
+ import { onMounted as onMounted17, onUnmounted as onUnmounted17, ref as ref17, watchEffect as watchEffect18 } from "vue";
1252
+ import { attachLoomaComponent as attachLoomaComponent13 } from "@threadlabs/looma/core/declarative";
1253
+ var _hoisted_115 = ["data-invalid", "data-disabled", "data-required"];
1254
+ var UiFormField_default = /* @__PURE__ */ _defineComponent17({
1255
+ ...{ inheritAttrs: false },
1256
+ __name: "UiFormField",
1257
+ props: {
1258
+ disabled: { type: [Boolean, null], required: false, default: false },
1259
+ invalid: { type: [Boolean, null], required: false, default: false },
1260
+ required: { type: [Boolean, null], required: false, default: false }
1261
+ },
1262
+ setup(__props) {
1263
+ const props = __props;
1264
+ const definition = { ...{ "contract": { "tag": "ui-form-field", "props": { "disabled": { "type": "boolean", "required": false, "target": { "attribute": "data-disabled" }, "default": false }, "invalid": { "type": "boolean", "required": false, "target": { "attribute": "data-invalid" }, "default": false }, "required": { "type": "boolean", "required": false, "target": { "attribute": "data-required" }, "default": false } } }, "template": { "kind": "element", "name": "div", "attributes": [{ "kind": "attribute", "name": "data-invalid", "expression": "invalid", "expressionPlan": { "source": "invalid", "ast": { "kind": "id", "name": "invalid" }, "dependencies": ["invalid"] } }, { "kind": "attribute", "name": "data-disabled", "expression": "disabled", "expressionPlan": { "source": "disabled", "ast": { "kind": "id", "name": "disabled" }, "dependencies": ["disabled"] } }, { "kind": "attribute", "name": "data-required", "expression": "required", "expressionPlan": { "source": "required", "ast": { "kind": "id", "name": "required" }, "dependencies": ["required"] } }], "children": [{ "kind": "slot" }] }, "declarations": [], "root": { "kind": "native", "element": "div", "choices": ["div"] } }, source: { file: import.meta.url }, css: "" };
1265
+ const root = ref17();
1266
+ let detach;
1267
+ onMounted17(() => {
1268
+ if (root.value == null) return;
1269
+ detach = attachLoomaComponent13(root.value, definition, "ui-form-field", props);
1270
+ });
1271
+ watchEffect18(() => {
1272
+ if (root.value == null) return;
1273
+ for (const name of ["disabled", "invalid", "required"]) root.value[name] = props[name];
1274
+ });
1275
+ onUnmounted17(() => {
1276
+ detach?.();
1277
+ });
1278
+ return (_ctx, _cache) => {
1279
+ return _openBlock17(), _createElementBlock17("div", _mergeProps17(_ctx.$attrs, {
1280
+ "data-component": "ui-form-field",
1281
+ "data-component-root": "ui-form-field",
1282
+ "data-looma-managed": "framework",
1283
+ "data-invalid": props.invalid ? "" : void 0,
1284
+ "data-disabled": props.disabled ? "" : void 0,
1285
+ "data-required": props.required ? "" : void 0,
1286
+ ref_key: "root",
1287
+ ref: root
1288
+ }), [
1289
+ _renderSlot16(_ctx.$slots, "default")
1290
+ ], 16, _hoisted_115);
1291
+ };
1292
+ }
1293
+ });
1294
+
1295
+ // src/generated/UiIconButton.ts
1296
+ import { defineComponent as _defineComponent18 } from "vue";
1297
+ import { renderSlot as _renderSlot17, createElementVNode as _createElementVNode12, mergeProps as _mergeProps18, openBlock as _openBlock18, createElementBlock as _createElementBlock18 } from "vue";
1298
+ import { onMounted as onMounted18, onUnmounted as onUnmounted18, ref as ref18, watchEffect as watchEffect19 } from "vue";
1299
+ import { attachLoomaComponent as attachLoomaComponent14 } from "@threadlabs/looma/core/declarative";
1300
+ var _hoisted_116 = ["data-disabled"];
1301
+ var _hoisted_28 = ["aria-label"];
1302
+ var UiIconButton_default = /* @__PURE__ */ _defineComponent18({
1303
+ ...{ inheritAttrs: false },
1304
+ __name: "UiIconButton",
1305
+ props: {
1306
+ anticipatory: { type: [Boolean, null], required: false, default: false },
1307
+ disabled: { type: [Boolean, null], required: false, default: false },
1308
+ label: { type: [String, null], required: false, default: "" },
1309
+ size: { type: [String, null], required: false, default: "md" },
1310
+ variant: { type: [String, null], required: false, default: "ghost" }
1311
+ },
1312
+ setup(__props) {
1313
+ const props = __props;
1314
+ const definition = { ...{ "contract": { "tag": "ui-icon-button", "props": { "anticipatory": { "type": "boolean", "required": false, "target": { "attribute": "anticipatory" }, "default": false }, "disabled": { "type": "boolean", "required": false, "target": { "attribute": "data-disabled" }, "default": false }, "label": { "type": "string", "required": false, "target": { "attribute": "aria-label" }, "default": "" }, "size": { "type": { "enum": ["sm", "md", "lg"] }, "required": false, "target": { "attribute": "size" }, "default": "md" }, "variant": { "type": { "enum": ["ghost", "outline", "solid"] }, "required": false, "target": { "attribute": "variant" }, "default": "ghost" } } }, "template": { "kind": "element", "name": "span", "attributes": [{ "kind": "attribute", "name": "data-disabled", "expression": "disabled", "expressionPlan": { "source": "disabled", "ast": { "kind": "id", "name": "disabled" }, "dependencies": ["disabled"] } }], "children": [{ "kind": "element", "name": "button", "attributes": [{ "kind": "literal", "name": "type", "value": "button" }, { "kind": "attribute", "name": "aria-label", "expression": "label", "expressionPlan": { "source": "label", "ast": { "kind": "id", "name": "label" }, "dependencies": ["label"] } }], "children": [{ "kind": "slot" }] }] }, "declarations": [], "root": { "kind": "native", "element": "span", "choices": ["span"] } }, source: { file: import.meta.url }, css: "" };
1315
+ const root = ref18();
1316
+ let detach;
1317
+ onMounted18(() => {
1318
+ if (root.value == null) return;
1319
+ detach = attachLoomaComponent14(root.value, definition, "ui-icon-button", props);
1320
+ });
1321
+ watchEffect19(() => {
1322
+ if (root.value == null) return;
1323
+ for (const name of ["anticipatory", "disabled", "label", "size", "variant"]) root.value[name] = props[name];
1324
+ });
1325
+ onUnmounted18(() => {
1326
+ detach?.();
1327
+ });
1328
+ return (_ctx, _cache) => {
1329
+ return _openBlock18(), _createElementBlock18("span", _mergeProps18(_ctx.$attrs, {
1330
+ "data-component": "ui-icon-button",
1331
+ "data-component-root": "ui-icon-button",
1332
+ "data-looma-managed": "framework",
1333
+ "data-disabled": props.disabled ? "" : void 0,
1334
+ ref_key: "root",
1335
+ ref: root
1336
+ }), [
1337
+ _createElementVNode12("button", {
1338
+ type: "button",
1339
+ "aria-label": props.label,
1340
+ "data-component": "ui-icon-button"
1341
+ }, [
1342
+ _renderSlot17(_ctx.$slots, "default")
1343
+ ], 8, _hoisted_28)
1344
+ ], 16, _hoisted_116);
1345
+ };
1346
+ }
1347
+ });
1348
+
1349
+ // src/generated/UiInput.ts
1350
+ import { defineComponent as _defineComponent19 } from "vue";
1351
+ import { renderSlot as _renderSlot18, mergeProps as _mergeProps19, openBlock as _openBlock19, createElementBlock as _createElementBlock19 } from "vue";
1352
+ import { onMounted as onMounted19, onUnmounted as onUnmounted19, ref as ref19, watchEffect as watchEffect20 } from "vue";
1353
+ import { attachLoomaComponent as attachLoomaComponent15 } from "@threadlabs/looma/core/declarative";
1354
+ var _hoisted_117 = ["data-invalid"];
1355
+ var UiInput_default = /* @__PURE__ */ _defineComponent19({
1356
+ ...{ inheritAttrs: false },
1357
+ __name: "UiInput",
1358
+ props: {
1359
+ defaultValue: { type: [String, null], required: false, default: "" },
1360
+ disabled: { type: [Boolean, null], required: false, default: false },
1361
+ invalid: { type: [Boolean, null], required: false, default: false },
1362
+ readOnly: { type: [Boolean, null], required: false, default: false },
1363
+ value: { type: [String, null], required: false }
1364
+ },
1365
+ emits: ["input", "change"],
1366
+ setup(__props, { emit: __emit }) {
1367
+ const props = __props;
1368
+ const emit = __emit;
1369
+ const definition = { ...{ "contract": { "tag": "ui-input", "props": { "defaultValue": { "type": "string", "required": false, "target": { "attribute": "defaultvalue" }, "default": "" }, "disabled": { "type": "boolean", "required": false, "target": { "attribute": "disabled" }, "default": false }, "invalid": { "type": "boolean", "required": false, "target": { "attribute": "data-invalid" }, "default": false }, "readOnly": { "type": "boolean", "required": false, "target": { "attribute": "readonly" }, "default": false }, "value": { "type": "string", "required": false, "target": { "attribute": "value" } } } }, "template": { "kind": "element", "name": "span", "attributes": [{ "kind": "attribute", "name": "data-invalid", "expression": "invalid", "expressionPlan": { "source": "invalid", "ast": { "kind": "id", "name": "invalid" }, "dependencies": ["invalid"] } }], "children": [{ "kind": "slot" }] }, "declarations": [{ "kind": "state", "name": "internalValue", "expression": { "source": "''", "ast": { "kind": "literal", "value": "" }, "dependencies": [] } }, { "kind": "event", "name": "input", "type": "object({ value: string, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }, { "kind": "event", "name": "change", "type": "object({ value: string, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }], "root": { "kind": "native", "element": "span", "choices": ["span"] } }, source: { file: import.meta.url }, css: "" };
1370
+ const root = ref19();
1371
+ const eventListener0 = (event) => emit("input", event.detail);
1372
+ const eventListener1 = (event) => emit("change", event.detail);
1373
+ let detach;
1374
+ onMounted19(() => {
1375
+ if (root.value == null) return;
1376
+ detach = attachLoomaComponent15(root.value, definition, "ui-input", props);
1377
+ root.value.addEventListener("input", eventListener0);
1378
+ root.value.addEventListener("change", eventListener1);
1379
+ });
1380
+ watchEffect20(() => {
1381
+ if (root.value == null) return;
1382
+ for (const name of ["defaultValue", "disabled", "invalid", "readOnly", "value"]) root.value[name] = props[name];
1383
+ });
1384
+ onUnmounted19(() => {
1385
+ root.value?.removeEventListener("input", eventListener0);
1386
+ root.value?.removeEventListener("change", eventListener1);
1387
+ detach?.();
1388
+ });
1389
+ return (_ctx, _cache) => {
1390
+ return _openBlock19(), _createElementBlock19("span", _mergeProps19(_ctx.$attrs, {
1391
+ "data-component": "ui-input",
1392
+ "data-component-root": "ui-input",
1393
+ "data-looma-managed": "framework",
1394
+ "data-invalid": props.invalid ? "" : void 0,
1395
+ ref_key: "root",
1396
+ ref: root
1397
+ }), [
1398
+ _renderSlot18(_ctx.$slots, "default")
1399
+ ], 16, _hoisted_117);
1400
+ };
1401
+ }
1402
+ });
1403
+
1404
+ // src/generated/UiMenuItem.ts
1405
+ import { defineComponent as _defineComponent20 } from "vue";
1406
+ import { renderSlot as _renderSlot19, createElementVNode as _createElementVNode13, mergeProps as _mergeProps20, openBlock as _openBlock20, createElementBlock as _createElementBlock20 } from "vue";
1407
+ import { onMounted as onMounted20, onUnmounted as onUnmounted20, ref as ref20, watchEffect as watchEffect21 } from "vue";
1408
+ import { manageGeneratedProps as manageGeneratedProps5 } from "@threadlabs/looma/core/declarative-generated";
1409
+ var _hoisted_118 = ["data-value"];
1410
+ var _hoisted_29 = {
1411
+ class: "menu-item__surface",
1412
+ "data-component": "ui-menu-item"
1413
+ };
1414
+ var UiMenuItem_default = /* @__PURE__ */ _defineComponent20({
1415
+ ...{ inheritAttrs: false },
1416
+ __name: "UiMenuItem",
1417
+ props: {
1418
+ disabled: { type: [Boolean, null], required: false, default: false },
1419
+ value: { type: [String, null], required: false, default: "" }
1420
+ },
1421
+ setup(__props) {
1422
+ const props = __props;
1423
+ const root = ref20();
1424
+ let detach;
1425
+ onMounted20(() => {
1426
+ if (root.value == null) return;
1427
+ detach = manageGeneratedProps5(root.value, [
1428
+ { name: "disabled", attribute: "data-disabled", value: props.disabled, type: "boolean", required: false },
1429
+ { name: "value", attribute: "data-value", value: props.value, type: "string", required: false }
1430
+ ]);
1431
+ });
1432
+ watchEffect21(() => {
1433
+ if (root.value == null) return;
1434
+ for (const name of ["disabled", "value"]) root.value[name] = props[name];
1435
+ });
1436
+ onUnmounted20(() => {
1437
+ detach?.();
1438
+ });
1439
+ return (_ctx, _cache) => {
1440
+ return _openBlock20(), _createElementBlock20("div", _mergeProps20(_ctx.$attrs, {
1441
+ "data-component": "ui-menu-item",
1442
+ "data-component-root": "ui-menu-item",
1443
+ "data-looma-managed": "framework",
1444
+ role: "menuitem",
1445
+ "data-value": props.value,
1446
+ ref_key: "root",
1447
+ ref: root
1448
+ }), [
1449
+ _createElementVNode13("span", _hoisted_29, [
1450
+ _renderSlot19(_ctx.$slots, "default")
1451
+ ])
1452
+ ], 16, _hoisted_118);
1453
+ };
1454
+ }
1455
+ });
1456
+
1457
+ // src/generated/UiPopover.ts
1458
+ import { defineComponent as _defineComponent21 } from "vue";
1459
+ import { renderSlot as _renderSlot20, createElementVNode as _createElementVNode14, mergeProps as _mergeProps21, openBlock as _openBlock21, createElementBlock as _createElementBlock21 } from "vue";
1460
+ import { onMounted as onMounted21, onUnmounted as onUnmounted21, ref as ref21, watchEffect as watchEffect22 } from "vue";
1461
+ import { attachLoomaComponent as attachLoomaComponent16 } from "@threadlabs/looma/core/declarative";
1462
+ var _hoisted_119 = {
1463
+ class: "popover__surface",
1464
+ "data-component": "ui-popover"
1465
+ };
1466
+ var UiPopover_default = /* @__PURE__ */ _defineComponent21({
1467
+ ...{ inheritAttrs: false },
1468
+ __name: "UiPopover",
1469
+ props: {
1470
+ defaultOpen: { type: [Boolean, null], required: false, default: false },
1471
+ for: { type: [String, null], required: false },
1472
+ open: { type: [Boolean, null], required: false },
1473
+ placement: { type: [String, null], required: false, default: "bottom-start" }
1474
+ },
1475
+ emits: ["open", "close"],
1476
+ setup(__props, { emit: __emit }) {
1477
+ const props = __props;
1478
+ const emit = __emit;
1479
+ const definition = { ...{ "contract": { "tag": "ui-popover", "props": { "defaultOpen": { "type": "boolean", "required": false, "target": { "attribute": "defaultopen" }, "default": false }, "for": { "type": "string", "required": false, "target": { "attribute": "for" } }, "open": { "type": "boolean", "required": false, "target": { "attribute": "open" } }, "placement": { "type": "string", "required": false, "target": { "attribute": "placement" }, "default": "bottom-start" } } }, "template": { "kind": "element", "name": "span", "attributes": [{ "kind": "attribute", "name": "data-state-open", "expression": "internalOpen", "expressionPlan": { "source": "internalOpen", "ast": { "kind": "id", "name": "internalOpen" }, "dependencies": ["internalOpen"] } }], "children": [{ "kind": "element", "name": "div", "attributes": [{ "kind": "literal", "name": "class", "value": "popover__surface" }], "children": [{ "kind": "slot" }] }] }, "declarations": [{ "kind": "state", "name": "internalOpen", "expression": { "source": "false", "ast": { "kind": "literal", "value": false }, "dependencies": [] } }, { "kind": "event", "name": "open", "type": "object({ open: boolean, reason: action | programmatic | light-dismiss | escape, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }, { "kind": "event", "name": "close", "type": "object({ open: boolean, reason: action | programmatic | light-dismiss | escape, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }], "root": { "kind": "native", "element": "span", "choices": ["span"] } }, source: { file: import.meta.url }, css: "" };
1480
+ const root = ref21();
1481
+ const eventListener0 = (event) => emit("open", event.detail);
1482
+ const eventListener1 = (event) => emit("close", event.detail);
1483
+ let detach;
1484
+ onMounted21(() => {
1485
+ if (root.value == null) return;
1486
+ detach = attachLoomaComponent16(root.value, definition, "ui-popover", props);
1487
+ root.value.addEventListener("open", eventListener0);
1488
+ root.value.addEventListener("close", eventListener1);
1489
+ });
1490
+ watchEffect22(() => {
1491
+ if (root.value == null) return;
1492
+ for (const name of ["defaultOpen", "for", "open", "placement"]) root.value[name] = props[name];
1493
+ });
1494
+ onUnmounted21(() => {
1495
+ root.value?.removeEventListener("open", eventListener0);
1496
+ root.value?.removeEventListener("close", eventListener1);
1497
+ detach?.();
1498
+ });
1499
+ return (_ctx, _cache) => {
1500
+ return _openBlock21(), _createElementBlock21(
1501
+ "span",
1502
+ _mergeProps21(_ctx.$attrs, {
1503
+ "data-component": "ui-popover",
1504
+ "data-component-root": "ui-popover",
1505
+ "data-looma-managed": "framework",
1506
+ "data-state-open": void 0,
1507
+ ref_key: "root",
1508
+ ref: root
1509
+ }),
1510
+ [
1511
+ _createElementVNode14("div", _hoisted_119, [
1512
+ _renderSlot20(_ctx.$slots, "default")
1513
+ ])
1514
+ ],
1515
+ 16
1516
+ /* FULL_PROPS */
1517
+ );
1518
+ };
1519
+ }
1520
+ });
1521
+
1522
+ // src/generated/UiRadioGroup.ts
1523
+ import { defineComponent as _defineComponent22 } from "vue";
1524
+ import { renderSlot as _renderSlot21, mergeProps as _mergeProps22, openBlock as _openBlock22, createElementBlock as _createElementBlock22 } from "vue";
1525
+ import { onMounted as onMounted22, onUnmounted as onUnmounted22, ref as ref22, watchEffect as watchEffect23 } from "vue";
1526
+ import { attachLoomaComponent as attachLoomaComponent17 } from "@threadlabs/looma/core/declarative";
1527
+ var _hoisted_120 = ["data-orientation", "data-disabled"];
1528
+ var UiRadioGroup_default = /* @__PURE__ */ _defineComponent22({
1529
+ ...{ inheritAttrs: false },
1530
+ __name: "UiRadioGroup",
1531
+ props: {
1532
+ disabled: { type: [Boolean, null], required: false, default: false },
1533
+ name: { type: [String, null], required: false, default: "" },
1534
+ orientation: { type: [String, null], required: false, default: "horizontal" },
1535
+ required: { type: [Boolean, null], required: false, default: false },
1536
+ value: { type: [String, null], required: false, default: "" }
1537
+ },
1538
+ emits: ["select", "change"],
1539
+ setup(__props, { emit: __emit }) {
1540
+ const props = __props;
1541
+ const emit = __emit;
1542
+ const definition = { ...{ "contract": { "tag": "ui-radio-group", "props": { "disabled": { "type": "boolean", "required": false, "target": { "attribute": "data-disabled" }, "default": false }, "name": { "type": "string", "required": false, "target": { "attribute": "name" }, "default": "" }, "orientation": { "type": { "enum": ["horizontal", "vertical"] }, "required": false, "target": { "attribute": "data-orientation" }, "default": "horizontal" }, "required": { "type": "boolean", "required": false, "target": { "attribute": "required" }, "default": false }, "value": { "type": "string", "required": false, "target": { "attribute": "value" }, "default": "" } } }, "template": { "kind": "element", "name": "span", "attributes": [{ "kind": "literal", "name": "role", "value": "radiogroup" }, { "kind": "attribute", "name": "data-orientation", "expression": "orientation", "expressionPlan": { "source": "orientation", "ast": { "kind": "id", "name": "orientation" }, "dependencies": ["orientation"] } }, { "kind": "attribute", "name": "data-disabled", "expression": "disabled", "expressionPlan": { "source": "disabled", "ast": { "kind": "id", "name": "disabled" }, "dependencies": ["disabled"] } }], "children": [{ "kind": "slot" }] }, "declarations": [{ "kind": "state", "name": "internalValue", "expression": { "source": "''", "ast": { "kind": "literal", "value": "" }, "dependencies": [] } }, { "kind": "event", "name": "select", "type": "object({ value: string, previousValue: string, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }, { "kind": "event", "name": "change", "type": "object({ checked: boolean, value: string, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }], "root": { "kind": "native", "element": "span", "choices": ["span"] } }, source: { file: import.meta.url }, css: "" };
1543
+ const root = ref22();
1544
+ const eventListener0 = (event) => emit("select", event.detail);
1545
+ const eventListener1 = (event) => emit("change", event.detail);
1546
+ let detach;
1547
+ onMounted22(() => {
1548
+ if (root.value == null) return;
1549
+ detach = attachLoomaComponent17(root.value, definition, "ui-radio-group", props);
1550
+ root.value.addEventListener("select", eventListener0);
1551
+ root.value.addEventListener("change", eventListener1);
1552
+ });
1553
+ watchEffect23(() => {
1554
+ if (root.value == null) return;
1555
+ for (const name of ["disabled", "name", "orientation", "required", "value"]) root.value[name] = props[name];
1556
+ });
1557
+ onUnmounted22(() => {
1558
+ root.value?.removeEventListener("select", eventListener0);
1559
+ root.value?.removeEventListener("change", eventListener1);
1560
+ detach?.();
1561
+ });
1562
+ return (_ctx, _cache) => {
1563
+ return _openBlock22(), _createElementBlock22("span", _mergeProps22(_ctx.$attrs, {
1564
+ "data-component": "ui-radio-group",
1565
+ "data-component-root": "ui-radio-group",
1566
+ "data-looma-managed": "framework",
1567
+ role: "radiogroup",
1568
+ "data-orientation": props.orientation,
1569
+ "data-disabled": props.disabled ? "" : void 0,
1570
+ ref_key: "root",
1571
+ ref: root
1572
+ }), [
1573
+ _renderSlot21(_ctx.$slots, "default")
1574
+ ], 16, _hoisted_120);
1575
+ };
1576
+ }
1577
+ });
1578
+
1579
+ // src/generated/UiRadio.ts
1580
+ import { defineComponent as _defineComponent23 } from "vue";
1581
+ import { renderSlot as _renderSlot22, mergeProps as _mergeProps23, openBlock as _openBlock23, createElementBlock as _createElementBlock23 } from "vue";
1582
+ import { onMounted as onMounted23, onUnmounted as onUnmounted23, ref as ref23, watchEffect as watchEffect24 } from "vue";
1583
+ import { attachLoomaComponent as attachLoomaComponent18 } from "@threadlabs/looma/core/declarative";
1584
+ var _hoisted_121 = ["data-disabled"];
1585
+ var UiRadio_default = /* @__PURE__ */ _defineComponent23({
1586
+ ...{ inheritAttrs: false },
1587
+ __name: "UiRadio",
1588
+ props: {
1589
+ checked: { type: [Boolean, null], required: false },
1590
+ defaultChecked: { type: [Boolean, null], required: false, default: false },
1591
+ disabled: { type: [Boolean, null], required: false, default: false },
1592
+ name: { type: [String, null], required: false, default: "" },
1593
+ required: { type: [Boolean, null], required: false, default: false },
1594
+ value: { type: [String, null], required: false, default: "on" }
1595
+ },
1596
+ emits: ["change"],
1597
+ setup(__props, { emit: __emit }) {
1598
+ const props = __props;
1599
+ const emit = __emit;
1600
+ const definition = { ...{ "contract": { "tag": "ui-radio", "props": { "checked": { "type": "boolean", "required": false, "target": { "attribute": "checked" } }, "defaultChecked": { "type": "boolean", "required": false, "target": { "attribute": "defaultchecked" }, "default": false }, "disabled": { "type": "boolean", "required": false, "target": { "attribute": "data-disabled" }, "default": false }, "name": { "type": "string", "required": false, "target": { "attribute": "name" }, "default": "" }, "required": { "type": "boolean", "required": false, "target": { "attribute": "required" }, "default": false }, "value": { "type": "string", "required": false, "target": { "attribute": "value" }, "default": "on" } } }, "template": { "kind": "element", "name": "span", "attributes": [{ "kind": "literal", "name": "role", "value": "radio" }, { "kind": "attribute", "name": "data-disabled", "expression": "disabled", "expressionPlan": { "source": "disabled", "ast": { "kind": "id", "name": "disabled" }, "dependencies": ["disabled"] } }], "children": [{ "kind": "slot" }] }, "declarations": [{ "kind": "state", "name": "internalChecked", "expression": { "source": "false", "ast": { "kind": "literal", "value": false }, "dependencies": [] } }, { "kind": "event", "name": "change", "type": "object({ checked: boolean, value: string, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }], "root": { "kind": "native", "element": "span", "choices": ["span"] } }, source: { file: import.meta.url }, css: "" };
1601
+ const root = ref23();
1602
+ const eventListener0 = (event) => emit("change", event.detail);
1603
+ let detach;
1604
+ onMounted23(() => {
1605
+ if (root.value == null) return;
1606
+ detach = attachLoomaComponent18(root.value, definition, "ui-radio", props);
1607
+ root.value.addEventListener("change", eventListener0);
1608
+ });
1609
+ watchEffect24(() => {
1610
+ if (root.value == null) return;
1611
+ for (const name of ["checked", "defaultChecked", "disabled", "name", "required", "value"]) root.value[name] = props[name];
1612
+ });
1613
+ onUnmounted23(() => {
1614
+ root.value?.removeEventListener("change", eventListener0);
1615
+ detach?.();
1616
+ });
1617
+ return (_ctx, _cache) => {
1618
+ return _openBlock23(), _createElementBlock23("span", _mergeProps23(_ctx.$attrs, {
1619
+ "data-component": "ui-radio",
1620
+ "data-component-root": "ui-radio",
1621
+ "data-looma-managed": "framework",
1622
+ role: "radio",
1623
+ "data-disabled": props.disabled ? "" : void 0,
1624
+ ref_key: "root",
1625
+ ref: root
1626
+ }), [
1627
+ _renderSlot22(_ctx.$slots, "default")
1628
+ ], 16, _hoisted_121);
1629
+ };
1630
+ }
1631
+ });
1632
+
1633
+ // src/generated/UiSearchResultRow.ts
1634
+ import { defineComponent as _defineComponent24 } from "vue";
1635
+ import { renderSlot as _renderSlot23, createElementVNode as _createElementVNode15, mergeProps as _mergeProps24, openBlock as _openBlock24, createElementBlock as _createElementBlock24 } from "vue";
1636
+ import { onMounted as onMounted24, onUnmounted as onUnmounted24, ref as ref24, watchEffect as watchEffect25 } from "vue";
1637
+ import { attachLoomaComponent as attachLoomaComponent19 } from "@threadlabs/looma/core/declarative";
1638
+ var _hoisted_122 = ["disabled"];
1639
+ var _hoisted_210 = {
1640
+ class: "search-result-row__leading",
1641
+ part: "leading",
1642
+ hidden: void 0,
1643
+ "data-component": "ui-search-result-row"
1644
+ };
1645
+ var _hoisted_35 = {
1646
+ class: "search-result-row__content",
1647
+ part: "content",
1648
+ "data-component": "ui-search-result-row"
1649
+ };
1650
+ var _hoisted_42 = {
1651
+ class: "search-result-row__title",
1652
+ part: "title",
1653
+ "data-component": "ui-search-result-row"
1654
+ };
1655
+ var _hoisted_52 = {
1656
+ class: "search-result-row__meta",
1657
+ part: "meta",
1658
+ hidden: void 0,
1659
+ "data-component": "ui-search-result-row"
1660
+ };
1661
+ var _hoisted_6 = {
1662
+ class: "search-result-row__excerpt",
1663
+ part: "excerpt",
1664
+ hidden: void 0,
1665
+ "data-component": "ui-search-result-row"
1666
+ };
1667
+ var _hoisted_7 = {
1668
+ class: "search-result-row__trailing",
1669
+ part: "trailing",
1670
+ hidden: void 0,
1671
+ "data-component": "ui-search-result-row"
1672
+ };
1673
+ var UiSearchResultRow_default = /* @__PURE__ */ _defineComponent24({
1674
+ ...{ inheritAttrs: false },
1675
+ __name: "UiSearchResultRow",
1676
+ props: {
1677
+ disabled: { type: [Boolean, null], required: false, default: false },
1678
+ selected: { type: [Boolean, null], required: false, default: false }
1679
+ },
1680
+ setup(__props) {
1681
+ const props = __props;
1682
+ const definition = { ...{ "contract": { "tag": "ui-search-result-row", "props": { "disabled": { "type": "boolean", "required": false, "target": { "attribute": "disabled" }, "default": false }, "selected": { "type": "boolean", "required": false, "target": { "attribute": "selected" }, "default": false } } }, "template": { "kind": "element", "name": "div", "attributes": [], "children": [{ "kind": "element", "name": "button", "attributes": [{ "kind": "literal", "name": "class", "value": "search-result-row" }, { "kind": "literal", "name": "type", "value": "button" }, { "kind": "attribute", "name": "disabled", "expression": "disabled", "expressionPlan": { "source": "disabled", "ast": { "kind": "id", "name": "disabled" }, "dependencies": ["disabled"] } }, { "kind": "literal", "name": "part", "value": "button" }], "children": [{ "kind": "element", "name": "span", "attributes": [{ "kind": "literal", "name": "class", "value": "search-result-row__leading" }, { "kind": "literal", "name": "part", "value": "leading" }, { "kind": "attribute", "name": "hidden", "expression": "not hasLeading", "expressionPlan": { "source": "not hasLeading", "ast": { "kind": "unary", "op": "not", "operand": { "kind": "id", "name": "hasLeading" } }, "dependencies": ["hasLeading"] } }], "children": [{ "kind": "slot", "fallback": [], "name": "leading" }] }, { "kind": "element", "name": "span", "attributes": [{ "kind": "literal", "name": "class", "value": "search-result-row__content" }, { "kind": "literal", "name": "part", "value": "content" }], "children": [{ "kind": "element", "name": "span", "attributes": [{ "kind": "literal", "name": "class", "value": "search-result-row__title" }, { "kind": "literal", "name": "part", "value": "title" }], "children": [{ "kind": "slot", "fallback": [], "name": "title" }] }, { "kind": "element", "name": "span", "attributes": [{ "kind": "literal", "name": "class", "value": "search-result-row__meta" }, { "kind": "literal", "name": "part", "value": "meta" }, { "kind": "attribute", "name": "hidden", "expression": "not hasMeta", "expressionPlan": { "source": "not hasMeta", "ast": { "kind": "unary", "op": "not", "operand": { "kind": "id", "name": "hasMeta" } }, "dependencies": ["hasMeta"] } }], "children": [{ "kind": "slot", "fallback": [], "name": "meta" }] }, { "kind": "element", "name": "span", "attributes": [{ "kind": "literal", "name": "class", "value": "search-result-row__excerpt" }, { "kind": "literal", "name": "part", "value": "excerpt" }, { "kind": "attribute", "name": "hidden", "expression": "not hasExcerpt", "expressionPlan": { "source": "not hasExcerpt", "ast": { "kind": "unary", "op": "not", "operand": { "kind": "id", "name": "hasExcerpt" } }, "dependencies": ["hasExcerpt"] } }], "children": [{ "kind": "slot", "fallback": [], "name": "excerpt" }] }] }, { "kind": "element", "name": "span", "attributes": [{ "kind": "literal", "name": "class", "value": "search-result-row__trailing" }, { "kind": "literal", "name": "part", "value": "trailing" }, { "kind": "attribute", "name": "hidden", "expression": "not hasTrailing", "expressionPlan": { "source": "not hasTrailing", "ast": { "kind": "unary", "op": "not", "operand": { "kind": "id", "name": "hasTrailing" } }, "dependencies": ["hasTrailing"] } }], "children": [{ "kind": "slot", "fallback": [], "name": "trailing" }] }] }] }, "declarations": [{ "kind": "state", "name": "hasLeading", "expression": { "source": "false", "ast": { "kind": "literal", "value": false }, "dependencies": [] } }, { "kind": "state", "name": "hasMeta", "expression": { "source": "false", "ast": { "kind": "literal", "value": false }, "dependencies": [] } }, { "kind": "state", "name": "hasExcerpt", "expression": { "source": "false", "ast": { "kind": "literal", "value": false }, "dependencies": [] } }, { "kind": "state", "name": "hasTrailing", "expression": { "source": "false", "ast": { "kind": "literal", "value": false }, "dependencies": [] } }], "root": { "kind": "native", "element": "div", "choices": ["div"] } }, source: { file: import.meta.url }, css: "" };
1683
+ const root = ref24();
1684
+ let detach;
1685
+ onMounted24(() => {
1686
+ if (root.value == null) return;
1687
+ detach = attachLoomaComponent19(root.value, definition, "ui-search-result-row", props);
1688
+ });
1689
+ watchEffect25(() => {
1690
+ if (root.value == null) return;
1691
+ for (const name of ["disabled", "selected"]) root.value[name] = props[name];
1692
+ });
1693
+ onUnmounted24(() => {
1694
+ detach?.();
1695
+ });
1696
+ return (_ctx, _cache) => {
1697
+ return _openBlock24(), _createElementBlock24(
1698
+ "div",
1699
+ _mergeProps24(_ctx.$attrs, {
1700
+ "data-component": "ui-search-result-row",
1701
+ "data-component-root": "ui-search-result-row",
1702
+ "data-looma-managed": "framework",
1703
+ ref_key: "root",
1704
+ ref: root
1705
+ }),
1706
+ [
1707
+ _createElementVNode15("button", {
1708
+ class: "search-result-row",
1709
+ type: "button",
1710
+ disabled: props.disabled,
1711
+ part: "button",
1712
+ "data-component": "ui-search-result-row"
1713
+ }, [
1714
+ _createElementVNode15("span", _hoisted_210, [
1715
+ _renderSlot23(_ctx.$slots, "leading")
1716
+ ]),
1717
+ _createElementVNode15("span", _hoisted_35, [
1718
+ _createElementVNode15("span", _hoisted_42, [
1719
+ _renderSlot23(_ctx.$slots, "title")
1720
+ ]),
1721
+ _createElementVNode15("span", _hoisted_52, [
1722
+ _renderSlot23(_ctx.$slots, "meta")
1723
+ ]),
1724
+ _createElementVNode15("span", _hoisted_6, [
1725
+ _renderSlot23(_ctx.$slots, "excerpt")
1726
+ ])
1727
+ ]),
1728
+ _createElementVNode15("span", _hoisted_7, [
1729
+ _renderSlot23(_ctx.$slots, "trailing")
1730
+ ])
1731
+ ], 8, _hoisted_122)
1732
+ ],
1733
+ 16
1734
+ /* FULL_PROPS */
1735
+ );
1736
+ };
1737
+ }
1738
+ });
1739
+
1740
+ // src/generated/UiSearchShell.ts
1741
+ import { defineComponent as _defineComponent25 } from "vue";
1742
+ import { renderSlot as _renderSlot24, createElementVNode as _createElementVNode16, mergeProps as _mergeProps25, openBlock as _openBlock25, createElementBlock as _createElementBlock25 } from "vue";
1743
+ import { onMounted as onMounted25, onUnmounted as onUnmounted25, ref as ref25, watchEffect as watchEffect26 } from "vue";
1744
+ import { attachLoomaComponent as attachLoomaComponent20 } from "@threadlabs/looma/core/declarative";
1745
+ var _hoisted_123 = {
1746
+ class: "search-shell",
1747
+ part: "base",
1748
+ "data-component": "ui-search-shell"
1749
+ };
1750
+ var _hoisted_211 = {
1751
+ class: "search-shell__panel",
1752
+ part: "panel",
1753
+ "data-component": "ui-search-shell"
1754
+ };
1755
+ var _hoisted_36 = {
1756
+ class: "search-shell__search",
1757
+ part: "search",
1758
+ "data-component": "ui-search-shell"
1759
+ };
1760
+ var _hoisted_43 = {
1761
+ class: "search-shell__status",
1762
+ part: "status",
1763
+ hidden: void 0,
1764
+ "data-component": "ui-search-shell"
1765
+ };
1766
+ var _hoisted_53 = {
1767
+ class: "search-shell__body",
1768
+ part: "body",
1769
+ "data-component": "ui-search-shell"
1770
+ };
1771
+ var _hoisted_62 = {
1772
+ class: "search-shell__footer",
1773
+ part: "footer",
1774
+ hidden: void 0,
1775
+ "data-component": "ui-search-shell"
1776
+ };
1777
+ var UiSearchShell_default = /* @__PURE__ */ _defineComponent25({
1778
+ ...{ inheritAttrs: false },
1779
+ __name: "UiSearchShell",
1780
+ setup(__props) {
1781
+ const props = __props;
1782
+ const definition = { ...{ "contract": { "tag": "ui-search-shell", "props": {} }, "template": { "kind": "element", "name": "div", "attributes": [], "children": [{ "kind": "element", "name": "div", "attributes": [{ "kind": "literal", "name": "class", "value": "search-shell" }, { "kind": "literal", "name": "part", "value": "base" }], "children": [{ "kind": "slot", "fallback": [], "name": "backdrop" }, { "kind": "element", "name": "div", "attributes": [{ "kind": "literal", "name": "class", "value": "search-shell__panel" }, { "kind": "literal", "name": "part", "value": "panel" }], "children": [{ "kind": "element", "name": "div", "attributes": [{ "kind": "literal", "name": "class", "value": "search-shell__search" }, { "kind": "literal", "name": "part", "value": "search" }], "children": [{ "kind": "slot", "fallback": [], "name": "search" }] }, { "kind": "element", "name": "div", "attributes": [{ "kind": "literal", "name": "class", "value": "search-shell__status" }, { "kind": "literal", "name": "part", "value": "status" }, { "kind": "attribute", "name": "hidden", "expression": "not hasStatus", "expressionPlan": { "source": "not hasStatus", "ast": { "kind": "unary", "op": "not", "operand": { "kind": "id", "name": "hasStatus" } }, "dependencies": ["hasStatus"] } }], "children": [{ "kind": "slot", "fallback": [], "name": "status" }] }, { "kind": "element", "name": "div", "attributes": [{ "kind": "literal", "name": "class", "value": "search-shell__body" }, { "kind": "literal", "name": "part", "value": "body" }], "children": [{ "kind": "slot", "fallback": [], "name": "body" }] }, { "kind": "element", "name": "div", "attributes": [{ "kind": "literal", "name": "class", "value": "search-shell__footer" }, { "kind": "literal", "name": "part", "value": "footer" }, { "kind": "attribute", "name": "hidden", "expression": "not hasFooter", "expressionPlan": { "source": "not hasFooter", "ast": { "kind": "unary", "op": "not", "operand": { "kind": "id", "name": "hasFooter" } }, "dependencies": ["hasFooter"] } }], "children": [{ "kind": "slot", "fallback": [], "name": "footer" }] }] }] }] }, "declarations": [{ "kind": "state", "name": "hasStatus", "expression": { "source": "false", "ast": { "kind": "literal", "value": false }, "dependencies": [] } }, { "kind": "state", "name": "hasFooter", "expression": { "source": "false", "ast": { "kind": "literal", "value": false }, "dependencies": [] } }], "root": { "kind": "native", "element": "div", "choices": ["div"] } }, source: { file: import.meta.url }, css: "" };
1783
+ const root = ref25();
1784
+ let detach;
1785
+ onMounted25(() => {
1786
+ if (root.value == null) return;
1787
+ detach = attachLoomaComponent20(root.value, definition, "ui-search-shell", props);
1788
+ });
1789
+ watchEffect26(() => {
1790
+ if (root.value == null) return;
1791
+ for (const name of []) root.value[name] = props[name];
1792
+ });
1793
+ onUnmounted25(() => {
1794
+ detach?.();
1795
+ });
1796
+ return (_ctx, _cache) => {
1797
+ return _openBlock25(), _createElementBlock25(
1798
+ "div",
1799
+ _mergeProps25(_ctx.$attrs, {
1800
+ "data-component": "ui-search-shell",
1801
+ "data-component-root": "ui-search-shell",
1802
+ "data-looma-managed": "framework",
1803
+ ref_key: "root",
1804
+ ref: root
1805
+ }),
1806
+ [
1807
+ _createElementVNode16("div", _hoisted_123, [
1808
+ _renderSlot24(_ctx.$slots, "backdrop"),
1809
+ _createElementVNode16("div", _hoisted_211, [
1810
+ _createElementVNode16("div", _hoisted_36, [
1811
+ _renderSlot24(_ctx.$slots, "search")
1812
+ ]),
1813
+ _createElementVNode16("div", _hoisted_43, [
1814
+ _renderSlot24(_ctx.$slots, "status")
1815
+ ]),
1816
+ _createElementVNode16("div", _hoisted_53, [
1817
+ _renderSlot24(_ctx.$slots, "body")
1818
+ ]),
1819
+ _createElementVNode16("div", _hoisted_62, [
1820
+ _renderSlot24(_ctx.$slots, "footer")
1821
+ ])
1822
+ ])
1823
+ ])
1824
+ ],
1825
+ 16
1826
+ /* FULL_PROPS */
1827
+ );
1828
+ };
1829
+ }
1830
+ });
1831
+
1832
+ // src/generated/UiSelect.ts
1833
+ import { defineComponent as _defineComponent26 } from "vue";
1834
+ import { renderSlot as _renderSlot25, mergeProps as _mergeProps26, openBlock as _openBlock26, createElementBlock as _createElementBlock26 } from "vue";
1835
+ import { onMounted as onMounted26, onUnmounted as onUnmounted26, ref as ref26, watchEffect as watchEffect27 } from "vue";
1836
+ import { attachLoomaComponent as attachLoomaComponent21 } from "@threadlabs/looma/core/declarative";
1837
+ var _hoisted_124 = ["data-invalid"];
1838
+ var UiSelect_default = /* @__PURE__ */ _defineComponent26({
1839
+ ...{ inheritAttrs: false },
1840
+ __name: "UiSelect",
1841
+ props: {
1842
+ defaultValue: { type: [String, null], required: false },
1843
+ disabled: { type: [Boolean, null], required: false, default: false },
1844
+ invalid: { type: [Boolean, null], required: false, default: false },
1845
+ required: { type: [Boolean, null], required: false, default: false },
1846
+ value: { type: [String, null], required: false }
1847
+ },
1848
+ emits: ["input", "change"],
1849
+ setup(__props, { emit: __emit }) {
1850
+ const props = __props;
1851
+ const emit = __emit;
1852
+ const definition = { ...{ "contract": { "tag": "ui-select", "props": { "defaultValue": { "type": "string", "required": false, "target": { "attribute": "defaultvalue" } }, "disabled": { "type": "boolean", "required": false, "target": { "attribute": "disabled" }, "default": false }, "invalid": { "type": "boolean", "required": false, "target": { "attribute": "data-invalid" }, "default": false }, "required": { "type": "boolean", "required": false, "target": { "attribute": "required" }, "default": false }, "value": { "type": "string", "required": false, "target": { "attribute": "value" } } } }, "template": { "kind": "element", "name": "span", "attributes": [{ "kind": "attribute", "name": "data-invalid", "expression": "invalid", "expressionPlan": { "source": "invalid", "ast": { "kind": "id", "name": "invalid" }, "dependencies": ["invalid"] } }], "children": [{ "kind": "slot" }] }, "declarations": [{ "kind": "state", "name": "internalValue", "expression": { "source": "''", "ast": { "kind": "literal", "value": "" }, "dependencies": [] } }, { "kind": "event", "name": "input", "type": "object({ value: string, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }, { "kind": "event", "name": "change", "type": "object({ value: string, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }], "root": { "kind": "native", "element": "span", "choices": ["span"] } }, source: { file: import.meta.url }, css: "" };
1853
+ const root = ref26();
1854
+ const eventListener0 = (event) => emit("input", event.detail);
1855
+ const eventListener1 = (event) => emit("change", event.detail);
1856
+ let detach;
1857
+ onMounted26(() => {
1858
+ if (root.value == null) return;
1859
+ detach = attachLoomaComponent21(root.value, definition, "ui-select", props);
1860
+ root.value.addEventListener("input", eventListener0);
1861
+ root.value.addEventListener("change", eventListener1);
1862
+ });
1863
+ watchEffect27(() => {
1864
+ if (root.value == null) return;
1865
+ for (const name of ["defaultValue", "disabled", "invalid", "required", "value"]) root.value[name] = props[name];
1866
+ });
1867
+ onUnmounted26(() => {
1868
+ root.value?.removeEventListener("input", eventListener0);
1869
+ root.value?.removeEventListener("change", eventListener1);
1870
+ detach?.();
1871
+ });
1872
+ return (_ctx, _cache) => {
1873
+ return _openBlock26(), _createElementBlock26("span", _mergeProps26(_ctx.$attrs, {
1874
+ "data-component": "ui-select",
1875
+ "data-component-root": "ui-select",
1876
+ "data-looma-managed": "framework",
1877
+ "data-invalid": props.invalid ? "" : void 0,
1878
+ ref_key: "root",
1879
+ ref: root
1880
+ }), [
1881
+ _renderSlot25(_ctx.$slots, "default")
1882
+ ], 16, _hoisted_124);
1883
+ };
1884
+ }
1885
+ });
1886
+
1887
+ // src/generated/UiSwitch.ts
1888
+ import { defineComponent as _defineComponent27 } from "vue";
1889
+ import { createElementVNode as _createElementVNode17, renderSlot as _renderSlot26, mergeProps as _mergeProps27, openBlock as _openBlock27, createElementBlock as _createElementBlock27 } from "vue";
1890
+ import { onMounted as onMounted27, onUnmounted as onUnmounted27, ref as ref27, watchEffect as watchEffect28 } from "vue";
1891
+ import { attachLoomaComponent as attachLoomaComponent22 } from "@threadlabs/looma/core/declarative";
1892
+ var _hoisted_125 = ["data-disabled"];
1893
+ var _hoisted_212 = ["required", "value"];
1894
+ var UiSwitch_default = /* @__PURE__ */ _defineComponent27({
1895
+ ...{ inheritAttrs: false },
1896
+ __name: "UiSwitch",
1897
+ props: {
1898
+ checked: { type: [Boolean, null], required: false },
1899
+ defaultChecked: { type: [Boolean, null], required: false, default: false },
1900
+ disabled: { type: [Boolean, null], required: false, default: false },
1901
+ required: { type: [Boolean, null], required: false, default: false },
1902
+ value: { type: [String, null], required: false, default: "on" }
1903
+ },
1904
+ emits: ["change"],
1905
+ setup(__props, { emit: __emit }) {
1906
+ const props = __props;
1907
+ const emit = __emit;
1908
+ const definition = { ...{ "contract": { "tag": "ui-switch", "props": { "checked": { "type": "boolean", "required": false, "target": { "attribute": "checked" } }, "defaultChecked": { "type": "boolean", "required": false, "target": { "attribute": "defaultchecked" }, "default": false }, "disabled": { "type": "boolean", "required": false, "target": { "attribute": "data-disabled" }, "default": false }, "required": { "type": "boolean", "required": false, "target": { "attribute": "required" }, "default": false }, "value": { "type": "string", "required": false, "target": { "attribute": "value" }, "default": "on" } } }, "template": { "kind": "element", "name": "span", "attributes": [{ "kind": "literal", "name": "role", "value": "switch" }, { "kind": "attribute", "name": "data-disabled", "expression": "disabled", "expressionPlan": { "source": "disabled", "ast": { "kind": "id", "name": "disabled" }, "dependencies": ["disabled"] } }], "children": [{ "kind": "element", "name": "input", "attributes": [{ "kind": "literal", "name": "type", "value": "checkbox" }, { "kind": "attribute", "name": "checked", "expression": "internalChecked", "expressionPlan": { "source": "internalChecked", "ast": { "kind": "id", "name": "internalChecked" }, "dependencies": ["internalChecked"] } }, { "kind": "attribute", "name": "required", "expression": "required", "expressionPlan": { "source": "required", "ast": { "kind": "id", "name": "required" }, "dependencies": ["required"] } }, { "kind": "attribute", "name": "value", "expression": "value", "expressionPlan": { "source": "value", "ast": { "kind": "id", "name": "value" }, "dependencies": ["value"] } }, { "kind": "literal", "name": "aria-hidden", "value": "true" }], "children": [] }, { "kind": "slot" }] }, "declarations": [{ "kind": "state", "name": "internalChecked", "expression": { "source": "false", "ast": { "kind": "literal", "value": false }, "dependencies": [] } }, { "kind": "event", "name": "change", "type": "object({ checked: boolean, value: string, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }], "root": { "kind": "native", "element": "span", "choices": ["span"] } }, source: { file: import.meta.url }, css: "" };
1909
+ const root = ref27();
1910
+ const eventListener0 = (event) => emit("change", event.detail);
1911
+ let detach;
1912
+ onMounted27(() => {
1913
+ if (root.value == null) return;
1914
+ detach = attachLoomaComponent22(root.value, definition, "ui-switch", props);
1915
+ root.value.addEventListener("change", eventListener0);
1916
+ });
1917
+ watchEffect28(() => {
1918
+ if (root.value == null) return;
1919
+ for (const name of ["checked", "defaultChecked", "disabled", "required", "value"]) root.value[name] = props[name];
1920
+ });
1921
+ onUnmounted27(() => {
1922
+ root.value?.removeEventListener("change", eventListener0);
1923
+ detach?.();
1924
+ });
1925
+ return (_ctx, _cache) => {
1926
+ return _openBlock27(), _createElementBlock27("span", _mergeProps27(_ctx.$attrs, {
1927
+ "data-component": "ui-switch",
1928
+ "data-component-root": "ui-switch",
1929
+ "data-looma-managed": "framework",
1930
+ role: "switch",
1931
+ "data-disabled": props.disabled ? "" : void 0,
1932
+ ref_key: "root",
1933
+ ref: root
1934
+ }), [
1935
+ _createElementVNode17("input", {
1936
+ type: "checkbox",
1937
+ checked: void 0,
1938
+ required: props.required,
1939
+ value: props.value,
1940
+ "aria-hidden": "true",
1941
+ "data-component": "ui-switch"
1942
+ }, null, 8, _hoisted_212),
1943
+ _renderSlot26(_ctx.$slots, "default")
1944
+ ], 16, _hoisted_125);
1945
+ };
1946
+ }
1947
+ });
1948
+
1949
+ // src/generated/UiTabs.ts
1950
+ import { defineComponent as _defineComponent28 } from "vue";
1951
+ import { renderSlot as _renderSlot27, mergeProps as _mergeProps28, openBlock as _openBlock28, createElementBlock as _createElementBlock28 } from "vue";
1952
+ import { onMounted as onMounted28, onUnmounted as onUnmounted28, ref as ref28, watchEffect as watchEffect29 } from "vue";
1953
+ import { attachLoomaComponent as attachLoomaComponent23 } from "@threadlabs/looma/core/declarative";
1954
+ var _hoisted_126 = ["data-orientation"];
1955
+ var UiTabs_default = /* @__PURE__ */ _defineComponent28({
1956
+ ...{ inheritAttrs: false },
1957
+ __name: "UiTabs",
1958
+ props: {
1959
+ defaultValue: { type: [String, null], required: false, default: "" },
1960
+ orientation: { type: [String, null], required: false, default: "horizontal" },
1961
+ value: { type: [String, null], required: false }
1962
+ },
1963
+ emits: ["select"],
1964
+ setup(__props, { emit: __emit }) {
1965
+ const props = __props;
1966
+ const emit = __emit;
1967
+ const definition = { ...{ "contract": { "tag": "ui-tabs", "props": { "defaultValue": { "type": "string", "required": false, "target": { "attribute": "defaultvalue" }, "default": "" }, "orientation": { "type": { "enum": ["horizontal", "vertical"] }, "required": false, "target": { "attribute": "data-orientation" }, "default": "horizontal" }, "value": { "type": "string", "required": false, "target": { "attribute": "value" } } } }, "template": { "kind": "element", "name": "div", "attributes": [{ "kind": "attribute", "name": "data-orientation", "expression": "orientation", "expressionPlan": { "source": "orientation", "ast": { "kind": "id", "name": "orientation" }, "dependencies": ["orientation"] } }], "children": [{ "kind": "slot" }] }, "declarations": [{ "kind": "state", "name": "internalValue", "expression": { "source": "''", "ast": { "kind": "literal", "value": "" }, "dependencies": [] } }, { "kind": "event", "name": "select", "type": "object({ value: string, previousValue: string, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }], "root": { "kind": "native", "element": "div", "choices": ["div"] } }, source: { file: import.meta.url }, css: "" };
1968
+ const root = ref28();
1969
+ const eventListener0 = (event) => emit("select", event.detail);
1970
+ let detach;
1971
+ onMounted28(() => {
1972
+ if (root.value == null) return;
1973
+ detach = attachLoomaComponent23(root.value, definition, "ui-tabs", props);
1974
+ root.value.addEventListener("select", eventListener0);
1975
+ });
1976
+ watchEffect29(() => {
1977
+ if (root.value == null) return;
1978
+ for (const name of ["defaultValue", "orientation", "value"]) root.value[name] = props[name];
1979
+ });
1980
+ onUnmounted28(() => {
1981
+ root.value?.removeEventListener("select", eventListener0);
1982
+ detach?.();
1983
+ });
1984
+ return (_ctx, _cache) => {
1985
+ return _openBlock28(), _createElementBlock28("div", _mergeProps28(_ctx.$attrs, {
1986
+ "data-component": "ui-tabs",
1987
+ "data-component-root": "ui-tabs",
1988
+ "data-looma-managed": "framework",
1989
+ "data-orientation": props.orientation,
1990
+ ref_key: "root",
1991
+ ref: root
1992
+ }), [
1993
+ _renderSlot27(_ctx.$slots, "default")
1994
+ ], 16, _hoisted_126);
1995
+ };
1996
+ }
1997
+ });
1998
+
1999
+ // src/generated/UiTextarea.ts
2000
+ import { defineComponent as _defineComponent29 } from "vue";
2001
+ import { renderSlot as _renderSlot28, mergeProps as _mergeProps29, openBlock as _openBlock29, createElementBlock as _createElementBlock29 } from "vue";
2002
+ import { onMounted as onMounted29, onUnmounted as onUnmounted29, ref as ref29, watchEffect as watchEffect30 } from "vue";
2003
+ import { attachLoomaComponent as attachLoomaComponent24 } from "@threadlabs/looma/core/declarative";
2004
+ var _hoisted_127 = ["data-invalid"];
2005
+ var UiTextarea_default = /* @__PURE__ */ _defineComponent29({
2006
+ ...{ inheritAttrs: false },
2007
+ __name: "UiTextarea",
2008
+ props: {
2009
+ defaultValue: { type: [String, null], required: false, default: "" },
2010
+ disabled: { type: [Boolean, null], required: false, default: false },
2011
+ invalid: { type: [Boolean, null], required: false, default: false },
2012
+ readOnly: { type: [Boolean, null], required: false, default: false },
2013
+ rows: { type: [Number, null], required: false, default: 4 },
2014
+ value: { type: [String, null], required: false }
2015
+ },
2016
+ emits: ["input", "change"],
2017
+ setup(__props, { emit: __emit }) {
2018
+ const props = __props;
2019
+ const emit = __emit;
2020
+ const definition = { ...{ "contract": { "tag": "ui-textarea", "props": { "defaultValue": { "type": "string", "required": false, "target": { "attribute": "defaultvalue" }, "default": "" }, "disabled": { "type": "boolean", "required": false, "target": { "attribute": "disabled" }, "default": false }, "invalid": { "type": "boolean", "required": false, "target": { "attribute": "data-invalid" }, "default": false }, "readOnly": { "type": "boolean", "required": false, "target": { "attribute": "readonly" }, "default": false }, "rows": { "type": "number", "required": false, "target": { "attribute": "rows" }, "default": 4 }, "value": { "type": "string", "required": false, "target": { "attribute": "value" } } } }, "template": { "kind": "element", "name": "span", "attributes": [{ "kind": "attribute", "name": "data-invalid", "expression": "invalid", "expressionPlan": { "source": "invalid", "ast": { "kind": "id", "name": "invalid" }, "dependencies": ["invalid"] } }], "children": [{ "kind": "slot" }] }, "declarations": [{ "kind": "state", "name": "internalValue", "expression": { "source": "''", "ast": { "kind": "literal", "value": "" }, "dependencies": [] } }, { "kind": "event", "name": "input", "type": "object({ value: string, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }, { "kind": "event", "name": "change", "type": "object({ value: string, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }], "root": { "kind": "native", "element": "span", "choices": ["span"] } }, source: { file: import.meta.url }, css: "" };
2021
+ const root = ref29();
2022
+ const eventListener0 = (event) => emit("input", event.detail);
2023
+ const eventListener1 = (event) => emit("change", event.detail);
2024
+ let detach;
2025
+ onMounted29(() => {
2026
+ if (root.value == null) return;
2027
+ detach = attachLoomaComponent24(root.value, definition, "ui-textarea", props);
2028
+ root.value.addEventListener("input", eventListener0);
2029
+ root.value.addEventListener("change", eventListener1);
2030
+ });
2031
+ watchEffect30(() => {
2032
+ if (root.value == null) return;
2033
+ for (const name of ["defaultValue", "disabled", "invalid", "readOnly", "rows", "value"]) root.value[name] = props[name];
2034
+ });
2035
+ onUnmounted29(() => {
2036
+ root.value?.removeEventListener("input", eventListener0);
2037
+ root.value?.removeEventListener("change", eventListener1);
2038
+ detach?.();
2039
+ });
2040
+ return (_ctx, _cache) => {
2041
+ return _openBlock29(), _createElementBlock29("span", _mergeProps29(_ctx.$attrs, {
2042
+ "data-component": "ui-textarea",
2043
+ "data-component-root": "ui-textarea",
2044
+ "data-looma-managed": "framework",
2045
+ "data-invalid": props.invalid ? "" : void 0,
2046
+ ref_key: "root",
2047
+ ref: root
2048
+ }), [
2049
+ _renderSlot28(_ctx.$slots, "default")
2050
+ ], 16, _hoisted_127);
2051
+ };
2052
+ }
2053
+ });
2054
+
2055
+ // src/generated/UiToastRegion.ts
2056
+ import { defineComponent as _defineComponent30 } from "vue";
2057
+ import { renderSlot as _renderSlot29, mergeProps as _mergeProps30, openBlock as _openBlock30, createElementBlock as _createElementBlock30 } from "vue";
2058
+ import { onMounted as onMounted30, onUnmounted as onUnmounted30, ref as ref30, watchEffect as watchEffect31 } from "vue";
2059
+ import { attachLoomaComponent as attachLoomaComponent25 } from "@threadlabs/looma/core/declarative";
2060
+ var UiToastRegion_default = /* @__PURE__ */ _defineComponent30({
2061
+ ...{ inheritAttrs: false },
2062
+ __name: "UiToastRegion",
2063
+ props: {
2064
+ open: { type: [Boolean, null], required: false, default: true }
2065
+ },
2066
+ emits: ["close", "dismiss"],
2067
+ setup(__props, { emit: __emit }) {
2068
+ const props = __props;
2069
+ const emit = __emit;
2070
+ const definition = { ...{ "contract": { "tag": "ui-toast-region", "props": { "open": { "type": "boolean", "required": false, "target": { "attribute": "open" }, "default": true } } }, "template": { "kind": "element", "name": "div", "attributes": [{ "kind": "literal", "name": "role", "value": "region" }, { "kind": "literal", "name": "aria-label", "value": "Notifications" }, { "kind": "literal", "name": "aria-live", "value": "polite" }, { "kind": "attribute", "name": "data-state-open", "expression": "internalOpen", "expressionPlan": { "source": "internalOpen", "ast": { "kind": "id", "name": "internalOpen" }, "dependencies": ["internalOpen"] } }], "children": [{ "kind": "slot" }] }, "declarations": [{ "kind": "state", "name": "internalOpen", "expression": { "source": "false", "ast": { "kind": "literal", "value": false }, "dependencies": [] } }, { "kind": "event", "name": "close", "type": "object({ open: boolean, reason: action | programmatic | light-dismiss | escape, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }, { "kind": "event", "name": "dismiss", "type": "object({ id: string, reason: action, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }], "root": { "kind": "native", "element": "div", "choices": ["div"] } }, source: { file: import.meta.url }, css: "" };
2071
+ const root = ref30();
2072
+ const eventListener0 = (event) => emit("close", event.detail);
2073
+ const eventListener1 = (event) => emit("dismiss", event.detail);
2074
+ let detach;
2075
+ onMounted30(() => {
2076
+ if (root.value == null) return;
2077
+ detach = attachLoomaComponent25(root.value, definition, "ui-toast-region", props);
2078
+ root.value.addEventListener("close", eventListener0);
2079
+ root.value.addEventListener("dismiss", eventListener1);
2080
+ });
2081
+ watchEffect31(() => {
2082
+ if (root.value == null) return;
2083
+ for (const name of ["open"]) root.value[name] = props[name];
2084
+ });
2085
+ onUnmounted30(() => {
2086
+ root.value?.removeEventListener("close", eventListener0);
2087
+ root.value?.removeEventListener("dismiss", eventListener1);
2088
+ detach?.();
2089
+ });
2090
+ return (_ctx, _cache) => {
2091
+ return _openBlock30(), _createElementBlock30(
2092
+ "div",
2093
+ _mergeProps30(_ctx.$attrs, {
2094
+ "data-component": "ui-toast-region",
2095
+ "data-component-root": "ui-toast-region",
2096
+ "data-looma-managed": "framework",
2097
+ role: "region",
2098
+ "aria-label": "Notifications",
2099
+ "aria-live": "polite",
2100
+ "data-state-open": void 0,
2101
+ ref_key: "root",
2102
+ ref: root
2103
+ }),
2104
+ [
2105
+ _renderSlot29(_ctx.$slots, "default")
2106
+ ],
2107
+ 16
2108
+ /* FULL_PROPS */
2109
+ );
2110
+ };
2111
+ }
2112
+ });
2113
+
2114
+ // src/generated/UiTopBar.ts
2115
+ import { defineComponent as _defineComponent31 } from "vue";
2116
+ import { renderSlot as _renderSlot30, createElementVNode as _createElementVNode18, mergeProps as _mergeProps31, openBlock as _openBlock31, createElementBlock as _createElementBlock31 } from "vue";
2117
+ import { onMounted as onMounted31, onUnmounted as onUnmounted31, ref as ref31, watchEffect as watchEffect32 } from "vue";
2118
+ import { attachLoomaComponent as attachLoomaComponent26 } from "@threadlabs/looma/core/declarative";
2119
+ var _hoisted_128 = {
2120
+ class: "top-bar",
2121
+ part: "base",
2122
+ "data-component": "ui-top-bar"
2123
+ };
2124
+ var _hoisted_213 = {
2125
+ class: "top-bar__leading",
2126
+ hidden: void 0,
2127
+ "data-component": "ui-top-bar"
2128
+ };
2129
+ var _hoisted_37 = {
2130
+ class: "top-bar__title",
2131
+ "data-component": "ui-top-bar"
2132
+ };
2133
+ var _hoisted_44 = {
2134
+ class: "top-bar__search",
2135
+ hidden: void 0,
2136
+ "data-component": "ui-top-bar"
2137
+ };
2138
+ var _hoisted_54 = {
2139
+ class: "top-bar__actions",
2140
+ hidden: void 0,
2141
+ "data-component": "ui-top-bar"
2142
+ };
2143
+ var UiTopBar_default = /* @__PURE__ */ _defineComponent31({
2144
+ ...{ inheritAttrs: false },
2145
+ __name: "UiTopBar",
2146
+ setup(__props) {
2147
+ const props = __props;
2148
+ const definition = { ...{ "contract": { "tag": "ui-top-bar", "props": {} }, "template": { "kind": "element", "name": "div", "attributes": [], "children": [{ "kind": "element", "name": "header", "attributes": [{ "kind": "literal", "name": "class", "value": "top-bar" }, { "kind": "literal", "name": "part", "value": "base" }], "children": [{ "kind": "element", "name": "div", "attributes": [{ "kind": "literal", "name": "class", "value": "top-bar__leading" }, { "kind": "attribute", "name": "hidden", "expression": "not hasLeading", "expressionPlan": { "source": "not hasLeading", "ast": { "kind": "unary", "op": "not", "operand": { "kind": "id", "name": "hasLeading" } }, "dependencies": ["hasLeading"] } }], "children": [{ "kind": "slot", "fallback": [], "name": "leading" }] }, { "kind": "element", "name": "div", "attributes": [{ "kind": "literal", "name": "class", "value": "top-bar__title" }], "children": [{ "kind": "slot" }] }, { "kind": "element", "name": "div", "attributes": [{ "kind": "literal", "name": "class", "value": "top-bar__search" }, { "kind": "attribute", "name": "hidden", "expression": "not hasSearch", "expressionPlan": { "source": "not hasSearch", "ast": { "kind": "unary", "op": "not", "operand": { "kind": "id", "name": "hasSearch" } }, "dependencies": ["hasSearch"] } }], "children": [{ "kind": "slot", "fallback": [], "name": "search" }] }, { "kind": "element", "name": "div", "attributes": [{ "kind": "literal", "name": "class", "value": "top-bar__actions" }, { "kind": "attribute", "name": "hidden", "expression": "not hasActions", "expressionPlan": { "source": "not hasActions", "ast": { "kind": "unary", "op": "not", "operand": { "kind": "id", "name": "hasActions" } }, "dependencies": ["hasActions"] } }], "children": [{ "kind": "slot", "fallback": [], "name": "actions" }] }] }] }, "declarations": [{ "kind": "state", "name": "hasLeading", "expression": { "source": "false", "ast": { "kind": "literal", "value": false }, "dependencies": [] } }, { "kind": "state", "name": "hasSearch", "expression": { "source": "false", "ast": { "kind": "literal", "value": false }, "dependencies": [] } }, { "kind": "state", "name": "hasActions", "expression": { "source": "false", "ast": { "kind": "literal", "value": false }, "dependencies": [] } }], "root": { "kind": "native", "element": "div", "choices": ["div"] } }, source: { file: import.meta.url }, css: "" };
2149
+ const root = ref31();
2150
+ let detach;
2151
+ onMounted31(() => {
2152
+ if (root.value == null) return;
2153
+ detach = attachLoomaComponent26(root.value, definition, "ui-top-bar", props);
2154
+ });
2155
+ watchEffect32(() => {
2156
+ if (root.value == null) return;
2157
+ for (const name of []) root.value[name] = props[name];
2158
+ });
2159
+ onUnmounted31(() => {
2160
+ detach?.();
2161
+ });
2162
+ return (_ctx, _cache) => {
2163
+ return _openBlock31(), _createElementBlock31(
2164
+ "div",
2165
+ _mergeProps31(_ctx.$attrs, {
2166
+ "data-component": "ui-top-bar",
2167
+ "data-component-root": "ui-top-bar",
2168
+ "data-looma-managed": "framework",
2169
+ ref_key: "root",
2170
+ ref: root
2171
+ }),
2172
+ [
2173
+ _createElementVNode18("header", _hoisted_128, [
2174
+ _createElementVNode18("div", _hoisted_213, [
2175
+ _renderSlot30(_ctx.$slots, "leading")
2176
+ ]),
2177
+ _createElementVNode18("div", _hoisted_37, [
2178
+ _renderSlot30(_ctx.$slots, "default")
2179
+ ]),
2180
+ _createElementVNode18("div", _hoisted_44, [
2181
+ _renderSlot30(_ctx.$slots, "search")
2182
+ ]),
2183
+ _createElementVNode18("div", _hoisted_54, [
2184
+ _renderSlot30(_ctx.$slots, "actions")
2185
+ ])
2186
+ ])
2187
+ ],
2188
+ 16
2189
+ /* FULL_PROPS */
2190
+ );
2191
+ };
2192
+ }
2193
+ });
2194
+
2195
+ // src/generated/UiTreeItem.ts
2196
+ import { defineComponent as _defineComponent32 } from "vue";
2197
+ import { createElementVNode as _createElementVNode19, renderSlot as _renderSlot31, mergeProps as _mergeProps32, openBlock as _openBlock32, createElementBlock as _createElementBlock32 } from "vue";
2198
+ import { onMounted as onMounted32, onUnmounted as onUnmounted32, ref as ref32, watchEffect as watchEffect33 } from "vue";
2199
+ import { attachLoomaComponent as attachLoomaComponent27 } from "@threadlabs/looma/core/declarative";
2200
+ var _hoisted_129 = ["aria-label", "data-container", "data-selected", "data-disabled", "data-drop-scope", "data-accepts"];
2201
+ var _hoisted_214 = {
2202
+ class: "row",
2203
+ part: "row",
2204
+ "data-component": "ui-tree-item"
2205
+ };
2206
+ var _hoisted_38 = {
2207
+ class: "leading",
2208
+ part: "leading",
2209
+ "data-component": "ui-tree-item"
2210
+ };
2211
+ var _hoisted_45 = {
2212
+ class: "label",
2213
+ part: "label",
2214
+ "data-component": "ui-tree-item"
2215
+ };
2216
+ var _hoisted_55 = {
2217
+ class: "actions",
2218
+ part: "actions",
2219
+ "data-component": "ui-tree-item"
2220
+ };
2221
+ var _hoisted_63 = {
2222
+ class: "children",
2223
+ part: "children",
2224
+ role: "group",
2225
+ "data-component": "ui-tree-item"
2226
+ };
2227
+ var UiTreeItem_default = /* @__PURE__ */ _defineComponent32({
2228
+ ...{ inheritAttrs: false },
2229
+ __name: "UiTreeItem",
2230
+ props: {
2231
+ accepts: { type: [String, null], required: false, default: "" },
2232
+ container: { type: [Boolean, null], required: false, default: false },
2233
+ defaultExpanded: { type: [Boolean, null], required: false, default: false },
2234
+ disabled: { type: [Boolean, null], required: false, default: false },
2235
+ dragType: { type: [String, null], required: false, default: "item" },
2236
+ dropDepth: { type: [Number, null], required: false },
2237
+ dropScope: { type: [String, null], required: false, default: "" },
2238
+ expanded: { type: [Boolean, null], required: false },
2239
+ itemId: { type: [String, null], required: false, default: "" },
2240
+ label: { type: [String, null], required: false, default: "" },
2241
+ selected: { type: [Boolean, null], required: false, default: false },
2242
+ sortable: { type: [Boolean, null], required: false, default: false },
2243
+ subtreeDepth: { type: [Number, null], required: false }
2244
+ },
2245
+ emits: ["expand"],
2246
+ setup(__props, { emit: __emit }) {
2247
+ const props = __props;
2248
+ const emit = __emit;
2249
+ const definition = { ...{ "contract": { "tag": "ui-tree-item", "props": { "accepts": { "type": "string", "required": false, "target": { "attribute": "data-accepts" }, "default": "" }, "container": { "type": "boolean", "required": false, "target": { "attribute": "data-container" }, "default": false }, "defaultExpanded": { "type": "boolean", "required": false, "target": { "attribute": "defaultexpanded" }, "default": false }, "disabled": { "type": "boolean", "required": false, "target": { "attribute": "data-disabled" }, "default": false }, "dragType": { "type": "string", "required": false, "target": { "attribute": "dragtype" }, "default": "item" }, "dropDepth": { "type": "number", "required": false, "target": { "attribute": "dropdepth" } }, "dropScope": { "type": "string", "required": false, "target": { "attribute": "data-drop-scope" }, "default": "" }, "expanded": { "type": "boolean", "required": false, "target": { "attribute": "expanded" } }, "itemId": { "type": "string", "required": false, "target": { "attribute": "itemid" }, "default": "" }, "label": { "type": "string", "required": false, "target": { "attribute": "aria-label" }, "default": "" }, "selected": { "type": "boolean", "required": false, "target": { "attribute": "data-selected" }, "default": false }, "sortable": { "type": "boolean", "required": false, "target": { "attribute": "sortable" }, "default": false }, "subtreeDepth": { "type": "number", "required": false, "target": { "attribute": "subtreedepth" } } } }, "template": { "kind": "element", "name": "div", "attributes": [{ "kind": "literal", "name": "role", "value": "treeitem" }, { "kind": "attribute", "name": "aria-label", "expression": "label", "expressionPlan": { "source": "label", "ast": { "kind": "id", "name": "label" }, "dependencies": ["label"] } }, { "kind": "attribute", "name": "data-container", "expression": "container", "expressionPlan": { "source": "container", "ast": { "kind": "id", "name": "container" }, "dependencies": ["container"] } }, { "kind": "attribute", "name": "data-selected", "expression": "selected", "expressionPlan": { "source": "selected", "ast": { "kind": "id", "name": "selected" }, "dependencies": ["selected"] } }, { "kind": "attribute", "name": "data-disabled", "expression": "disabled", "expressionPlan": { "source": "disabled", "ast": { "kind": "id", "name": "disabled" }, "dependencies": ["disabled"] } }, { "kind": "attribute", "name": "data-drop-scope", "expression": "dropScope", "expressionPlan": { "source": "dropScope", "ast": { "kind": "id", "name": "dropScope" }, "dependencies": ["dropScope"] } }, { "kind": "attribute", "name": "data-accepts", "expression": "accepts", "expressionPlan": { "source": "accepts", "ast": { "kind": "id", "name": "accepts" }, "dependencies": ["accepts"] } }], "children": [{ "kind": "element", "name": "div", "attributes": [{ "kind": "literal", "name": "class", "value": "row" }, { "kind": "literal", "name": "part", "value": "row" }], "children": [{ "kind": "element", "name": "button", "attributes": [{ "kind": "literal", "name": "class", "value": "drag-handle" }, { "kind": "literal", "name": "part", "value": "drag-handle" }, { "kind": "literal", "name": "type", "value": "button" }], "children": [{ "kind": "element", "name": "span", "attributes": [], "children": [] }], "flow": { "kind": "if", "test": "sortable and not disabled", "testPlan": { "source": "sortable and not disabled", "ast": { "kind": "binary", "op": "and", "left": { "kind": "id", "name": "sortable" }, "right": { "kind": "unary", "op": "not", "operand": { "kind": "id", "name": "disabled" } } }, "dependencies": ["disabled", "sortable"] } } }, { "kind": "element", "name": "template", "attributes": [], "children": [{ "kind": "element", "name": "button", "attributes": [{ "kind": "literal", "name": "class", "value": "disclosure" }, { "kind": "literal", "name": "part", "value": "disclosure" }, { "kind": "literal", "name": "type", "value": "button" }], "children": [{ "kind": "element", "name": "span", "attributes": [], "children": [] }], "flow": { "kind": "when", "test": "container", "testPlan": { "source": "container", "ast": { "kind": "id", "name": "container" }, "dependencies": ["container"] } } }, { "kind": "element", "name": "span", "attributes": [{ "kind": "literal", "name": "class", "value": "disclosure-spacer" }, { "kind": "literal", "name": "aria-hidden", "value": "true" }], "children": [], "flow": { "kind": "else" } }], "flow": { "kind": "match" } }, { "kind": "element", "name": "span", "attributes": [{ "kind": "literal", "name": "class", "value": "leading" }, { "kind": "literal", "name": "part", "value": "leading" }], "children": [{ "kind": "slot", "fallback": [], "name": "leading" }] }, { "kind": "element", "name": "span", "attributes": [{ "kind": "literal", "name": "class", "value": "label" }, { "kind": "literal", "name": "part", "value": "label" }], "children": [{ "kind": "slot" }] }, { "kind": "element", "name": "span", "attributes": [{ "kind": "literal", "name": "class", "value": "actions" }, { "kind": "literal", "name": "part", "value": "actions" }], "children": [{ "kind": "slot", "fallback": [], "name": "actions" }] }, { "kind": "element", "name": "span", "attributes": [{ "kind": "literal", "name": "class", "value": "drop-indicator row-drop-indicator" }, { "kind": "literal", "name": "part", "value": "drop-indicator" }, { "kind": "literal", "name": "aria-hidden", "value": "true" }], "children": [] }] }, { "kind": "element", "name": "div", "attributes": [{ "kind": "literal", "name": "class", "value": "children" }, { "kind": "literal", "name": "part", "value": "children" }, { "kind": "literal", "name": "role", "value": "group" }], "children": [{ "kind": "slot", "fallback": [], "name": "children" }], "flow": { "kind": "if", "test": "container", "testPlan": { "source": "container", "ast": { "kind": "id", "name": "container" }, "dependencies": ["container"] } } }, { "kind": "element", "name": "span", "attributes": [{ "kind": "literal", "name": "class", "value": "drop-indicator subtree-drop-indicator" }, { "kind": "literal", "name": "part", "value": "drop-indicator" }, { "kind": "literal", "name": "aria-hidden", "value": "true" }], "children": [] }] }, "declarations": [{ "kind": "state", "name": "internalExpanded", "expression": { "source": "false", "ast": { "kind": "literal", "value": false }, "dependencies": [] } }, { "kind": "state", "name": "structuralLevel", "expression": { "source": "1", "ast": { "kind": "literal", "value": 1 }, "dependencies": [] } }, { "kind": "state", "name": "tabStop", "expression": { "source": "false", "ast": { "kind": "literal", "value": false }, "dependencies": [] } }, { "kind": "event", "name": "expand", "type": "object({ id: string, expanded: boolean, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }], "root": { "kind": "native", "element": "div", "choices": ["div"] } }, source: { file: import.meta.url }, css: "" };
2250
+ const root = ref32();
2251
+ const eventListener0 = (event) => emit("expand", event.detail);
2252
+ let detach;
2253
+ onMounted32(() => {
2254
+ if (root.value == null) return;
2255
+ detach = attachLoomaComponent27(root.value, definition, "ui-tree-item", props);
2256
+ root.value.addEventListener("expand", eventListener0);
2257
+ });
2258
+ watchEffect33(() => {
2259
+ if (root.value == null) return;
2260
+ for (const name of ["accepts", "container", "defaultExpanded", "disabled", "dragType", "dropDepth", "dropScope", "expanded", "itemId", "label", "selected", "sortable", "subtreeDepth"]) root.value[name] = props[name];
2261
+ });
2262
+ onUnmounted32(() => {
2263
+ root.value?.removeEventListener("expand", eventListener0);
2264
+ detach?.();
2265
+ });
2266
+ return (_ctx, _cache) => {
2267
+ return _openBlock32(), _createElementBlock32("div", _mergeProps32(_ctx.$attrs, {
2268
+ "data-component": "ui-tree-item",
2269
+ "data-component-root": "ui-tree-item",
2270
+ "data-looma-managed": "framework",
2271
+ role: "treeitem",
2272
+ "aria-label": props.label,
2273
+ "data-container": props.container ? "" : void 0,
2274
+ "data-selected": props.selected ? "" : void 0,
2275
+ "data-disabled": props.disabled ? "" : void 0,
2276
+ "data-drop-scope": props.dropScope,
2277
+ "data-accepts": props.accepts,
2278
+ ref_key: "root",
2279
+ ref: root
2280
+ }), [
2281
+ _createElementVNode19("div", _hoisted_214, [
2282
+ _cache[0] || (_cache[0] = _createElementVNode19(
2283
+ "button",
2284
+ {
2285
+ class: "drag-handle",
2286
+ part: "drag-handle",
2287
+ type: "button",
2288
+ "data-component": "ui-tree-item"
2289
+ },
2290
+ [
2291
+ _createElementVNode19("span", { "data-component": "ui-tree-item" })
2292
+ ],
2293
+ -1
2294
+ /* CACHED */
2295
+ )),
2296
+ _cache[1] || (_cache[1] = _createElementVNode19(
2297
+ "template",
2298
+ { "data-component": "ui-tree-item" },
2299
+ [
2300
+ _createElementVNode19("button", {
2301
+ class: "disclosure",
2302
+ part: "disclosure",
2303
+ type: "button",
2304
+ "data-component": "ui-tree-item"
2305
+ }, [
2306
+ _createElementVNode19("span", { "data-component": "ui-tree-item" })
2307
+ ]),
2308
+ _createElementVNode19("span", {
2309
+ class: "disclosure-spacer",
2310
+ "aria-hidden": "true",
2311
+ "data-component": "ui-tree-item"
2312
+ })
2313
+ ],
2314
+ -1
2315
+ /* CACHED */
2316
+ )),
2317
+ _createElementVNode19("span", _hoisted_38, [
2318
+ _renderSlot31(_ctx.$slots, "leading")
2319
+ ]),
2320
+ _createElementVNode19("span", _hoisted_45, [
2321
+ _renderSlot31(_ctx.$slots, "default")
2322
+ ]),
2323
+ _createElementVNode19("span", _hoisted_55, [
2324
+ _renderSlot31(_ctx.$slots, "actions")
2325
+ ]),
2326
+ _cache[2] || (_cache[2] = _createElementVNode19(
2327
+ "span",
2328
+ {
2329
+ class: "drop-indicator row-drop-indicator",
2330
+ part: "drop-indicator",
2331
+ "aria-hidden": "true",
2332
+ "data-component": "ui-tree-item"
2333
+ },
2334
+ null,
2335
+ -1
2336
+ /* CACHED */
2337
+ ))
2338
+ ]),
2339
+ _createElementVNode19("div", _hoisted_63, [
2340
+ _renderSlot31(_ctx.$slots, "children")
2341
+ ]),
2342
+ _cache[3] || (_cache[3] = _createElementVNode19(
2343
+ "span",
2344
+ {
2345
+ class: "drop-indicator subtree-drop-indicator",
2346
+ part: "drop-indicator",
2347
+ "aria-hidden": "true",
2348
+ "data-component": "ui-tree-item"
2349
+ },
2350
+ null,
2351
+ -1
2352
+ /* CACHED */
2353
+ ))
2354
+ ], 16, _hoisted_129);
2355
+ };
2356
+ }
2357
+ });
2358
+
2359
+ // src/generated/UiTree.ts
2360
+ import { defineComponent as _defineComponent33 } from "vue";
2361
+ import { renderSlot as _renderSlot32, mergeProps as _mergeProps33, openBlock as _openBlock33, createElementBlock as _createElementBlock33 } from "vue";
2362
+ import { onMounted as onMounted33, onUnmounted as onUnmounted33, ref as ref33, watchEffect as watchEffect34 } from "vue";
2363
+ import { attachLoomaComponent as attachLoomaComponent28 } from "@threadlabs/looma/core/declarative";
2364
+ var UiTree_default = /* @__PURE__ */ _defineComponent33({
2365
+ ...{ inheritAttrs: false },
2366
+ __name: "UiTree",
2367
+ props: {
2368
+ hoverExpandDelay: { type: [Number, null], required: false, default: 700 },
2369
+ label: { type: [String, null], required: false, default: "Tree" },
2370
+ maxDepth: { type: [Number, null], required: false, default: 0 }
2371
+ },
2372
+ emits: ["reorder", "reorder-rejected"],
2373
+ setup(__props, { emit: __emit }) {
2374
+ const props = __props;
2375
+ const emit = __emit;
2376
+ const definition = { ...{ "contract": { "tag": "ui-tree", "props": { "hoverExpandDelay": { "type": "number", "required": false, "target": { "attribute": "hoverexpanddelay" }, "default": 700 }, "label": { "type": "string", "required": false, "target": { "attribute": "label" }, "default": "Tree" }, "maxDepth": { "type": "number", "required": false, "target": { "attribute": "maxdepth" }, "default": 0 } } }, "template": { "kind": "element", "name": "div", "attributes": [{ "kind": "literal", "name": "role", "value": "tree" }], "children": [{ "kind": "slot" }] }, "declarations": [{ "kind": "event", "name": "reorder", "type": "object({ sourceId: string, targetId: string, position: before | inside | after, sourceType: string, targetType: string, sourceScope: string, targetScope: string, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }, { "kind": "event", "name": "reorder-rejected", "type": "object({ sourceId: string, targetId: string, position: before | inside | after, reason: max-depth, maxDepth: integer, resultingDepth: integer, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }], "root": { "kind": "native", "element": "div", "choices": ["div"] } }, source: { file: import.meta.url }, css: "" };
2377
+ const root = ref33();
2378
+ const eventListener0 = (event) => emit("reorder", event.detail);
2379
+ const eventListener1 = (event) => emit("reorder-rejected", event.detail);
2380
+ let detach;
2381
+ onMounted33(() => {
2382
+ if (root.value == null) return;
2383
+ detach = attachLoomaComponent28(root.value, definition, "ui-tree", props);
2384
+ root.value.addEventListener("reorder", eventListener0);
2385
+ root.value.addEventListener("reorder-rejected", eventListener1);
2386
+ });
2387
+ watchEffect34(() => {
2388
+ if (root.value == null) return;
2389
+ for (const name of ["hoverExpandDelay", "label", "maxDepth"]) root.value[name] = props[name];
2390
+ });
2391
+ onUnmounted33(() => {
2392
+ root.value?.removeEventListener("reorder", eventListener0);
2393
+ root.value?.removeEventListener("reorder-rejected", eventListener1);
2394
+ detach?.();
2395
+ });
2396
+ return (_ctx, _cache) => {
2397
+ return _openBlock33(), _createElementBlock33(
2398
+ "div",
2399
+ _mergeProps33(_ctx.$attrs, {
2400
+ "data-component": "ui-tree",
2401
+ "data-component-root": "ui-tree",
2402
+ "data-looma-managed": "framework",
2403
+ role: "tree",
2404
+ ref_key: "root",
2405
+ ref: root
2406
+ }),
2407
+ [
2408
+ _renderSlot32(_ctx.$slots, "default")
2409
+ ],
2410
+ 16
2411
+ /* FULL_PROPS */
2412
+ );
2413
+ };
2414
+ }
2415
+ });
2416
+
2417
+ // src/generated/UiCenter.ts
2418
+ import { defineComponent as _defineComponent34 } from "vue";
2419
+ import { renderSlot as _renderSlot33, mergeProps as _mergeProps34, openBlock as _openBlock34, createElementBlock as _createElementBlock34 } from "vue";
2420
+ import { onMounted as onMounted34, onUnmounted as onUnmounted34, ref as ref34, watchEffect as watchEffect35 } from "vue";
2421
+ import { manageGeneratedProps as manageGeneratedProps6 } from "@threadlabs/looma/core/declarative-generated";
2422
+ var UiCenter_default = /* @__PURE__ */ _defineComponent34({
2423
+ ...{ inheritAttrs: false },
2424
+ __name: "UiCenter",
2425
+ props: {
2426
+ gutters: { type: [String, null], required: false },
2427
+ measure: { type: [String, null], required: false }
2428
+ },
2429
+ setup(__props) {
2430
+ const props = __props;
2431
+ const root = ref34();
2432
+ let detach;
2433
+ onMounted34(() => {
2434
+ if (root.value == null) return;
2435
+ detach = manageGeneratedProps6(root.value, [
2436
+ { name: "gutters", attribute: "data-gutters", value: props.gutters, type: ["s", "m", "l"], required: false },
2437
+ { name: "measure", attribute: "data-measure", value: props.measure, type: ["narrow", "wide"], required: false }
2438
+ ]);
2439
+ });
2440
+ watchEffect35(() => {
2441
+ if (root.value == null) return;
2442
+ for (const name of ["gutters", "measure"]) root.value[name] = props[name];
2443
+ });
2444
+ onUnmounted34(() => {
2445
+ detach?.();
2446
+ });
2447
+ return (_ctx, _cache) => {
2448
+ return _openBlock34(), _createElementBlock34(
2449
+ "div",
2450
+ _mergeProps34(_ctx.$attrs, {
2451
+ "data-component": "ui-center",
2452
+ "data-component-root": "ui-center",
2453
+ "data-looma-managed": "framework",
2454
+ ref_key: "root",
2455
+ ref: root
2456
+ }),
2457
+ [
2458
+ _renderSlot33(_ctx.$slots, "default")
2459
+ ],
2460
+ 16
2461
+ /* FULL_PROPS */
2462
+ );
2463
+ };
2464
+ }
2465
+ });
2466
+
2467
+ // src/generated/UiCluster.ts
2468
+ import { defineComponent as _defineComponent35 } from "vue";
2469
+ import { renderSlot as _renderSlot34, mergeProps as _mergeProps35, openBlock as _openBlock35, createElementBlock as _createElementBlock35 } from "vue";
2470
+ import { onMounted as onMounted35, onUnmounted as onUnmounted35, ref as ref35, watchEffect as watchEffect36 } from "vue";
2471
+ import { manageGeneratedProps as manageGeneratedProps7 } from "@threadlabs/looma/core/declarative-generated";
2472
+ var UiCluster_default = /* @__PURE__ */ _defineComponent35({
2473
+ ...{ inheritAttrs: false },
2474
+ __name: "UiCluster",
2475
+ props: {
2476
+ align: { type: [String, null], required: false },
2477
+ gap: { type: [String, null], required: false },
2478
+ justify: { type: [String, null], required: false }
2479
+ },
2480
+ setup(__props) {
2481
+ const props = __props;
2482
+ const root = ref35();
2483
+ let detach;
2484
+ onMounted35(() => {
2485
+ if (root.value == null) return;
2486
+ detach = manageGeneratedProps7(root.value, [
2487
+ { name: "align", attribute: "data-align", value: props.align, type: ["start", "center", "end", "stretch"], required: false },
2488
+ { name: "gap", attribute: "data-gap", value: props.gap, type: ["xs", "s", "m", "l", "xl"], required: false },
2489
+ { name: "justify", attribute: "data-justify", value: props.justify, type: ["start", "center", "end", "between"], required: false }
2490
+ ]);
2491
+ });
2492
+ watchEffect36(() => {
2493
+ if (root.value == null) return;
2494
+ for (const name of ["align", "gap", "justify"]) root.value[name] = props[name];
2495
+ });
2496
+ onUnmounted35(() => {
2497
+ detach?.();
2498
+ });
2499
+ return (_ctx, _cache) => {
2500
+ return _openBlock35(), _createElementBlock35(
2501
+ "div",
2502
+ _mergeProps35(_ctx.$attrs, {
2503
+ "data-component": "ui-cluster",
2504
+ "data-component-root": "ui-cluster",
2505
+ "data-looma-managed": "framework",
2506
+ ref_key: "root",
2507
+ ref: root
2508
+ }),
2509
+ [
2510
+ _renderSlot34(_ctx.$slots, "default")
2511
+ ],
2512
+ 16
2513
+ /* FULL_PROPS */
2514
+ );
2515
+ };
2516
+ }
2517
+ });
2518
+
2519
+ // src/generated/UiGrid.ts
2520
+ import { defineComponent as _defineComponent36 } from "vue";
2521
+ import { renderSlot as _renderSlot35, mergeProps as _mergeProps36, openBlock as _openBlock36, createElementBlock as _createElementBlock36 } from "vue";
2522
+ import { onMounted as onMounted36, onUnmounted as onUnmounted36, ref as ref36, watchEffect as watchEffect37 } from "vue";
2523
+ import { manageGeneratedProps as manageGeneratedProps8 } from "@threadlabs/looma/core/declarative-generated";
2524
+ var UiGrid_default = /* @__PURE__ */ _defineComponent36({
2525
+ ...{ inheritAttrs: false },
2526
+ __name: "UiGrid",
2527
+ props: {
2528
+ gap: { type: [String, null], required: false },
2529
+ min: { type: [String, null], required: false }
2530
+ },
2531
+ setup(__props) {
2532
+ const props = __props;
2533
+ const root = ref36();
2534
+ let detach;
2535
+ onMounted36(() => {
2536
+ if (root.value == null) return;
2537
+ detach = manageGeneratedProps8(root.value, [
2538
+ { name: "gap", attribute: "data-gap", value: props.gap, type: ["xs", "s", "m", "l", "xl"], required: false },
2539
+ { name: "min", attribute: "data-min", value: props.min, type: ["sm", "md", "lg"], required: false }
2540
+ ]);
2541
+ });
2542
+ watchEffect37(() => {
2543
+ if (root.value == null) return;
2544
+ for (const name of ["gap", "min"]) root.value[name] = props[name];
2545
+ });
2546
+ onUnmounted36(() => {
2547
+ detach?.();
2548
+ });
2549
+ return (_ctx, _cache) => {
2550
+ return _openBlock36(), _createElementBlock36(
2551
+ "div",
2552
+ _mergeProps36(_ctx.$attrs, {
2553
+ "data-component": "ui-grid",
2554
+ "data-component-root": "ui-grid",
2555
+ "data-looma-managed": "framework",
2556
+ ref_key: "root",
2557
+ ref: root
2558
+ }),
2559
+ [
2560
+ _renderSlot35(_ctx.$slots, "default")
2561
+ ],
2562
+ 16
2563
+ /* FULL_PROPS */
2564
+ );
2565
+ };
2566
+ }
2567
+ });
2568
+
2569
+ // src/generated/UiInline.ts
2570
+ import { defineComponent as _defineComponent37 } from "vue";
2571
+ import { renderSlot as _renderSlot36, mergeProps as _mergeProps37, openBlock as _openBlock37, createElementBlock as _createElementBlock37 } from "vue";
2572
+ import { onMounted as onMounted37, onUnmounted as onUnmounted37, ref as ref37, watchEffect as watchEffect38 } from "vue";
2573
+ import { manageGeneratedProps as manageGeneratedProps9 } from "@threadlabs/looma/core/declarative-generated";
2574
+ var UiInline_default = /* @__PURE__ */ _defineComponent37({
2575
+ ...{ inheritAttrs: false },
2576
+ __name: "UiInline",
2577
+ props: {
2578
+ align: { type: [String, null], required: false },
2579
+ gap: { type: [String, null], required: false },
2580
+ justify: { type: [String, null], required: false },
2581
+ wrap: { type: [String, null], required: false }
2582
+ },
2583
+ setup(__props) {
2584
+ const props = __props;
2585
+ const root = ref37();
2586
+ let detach;
2587
+ onMounted37(() => {
2588
+ if (root.value == null) return;
2589
+ detach = manageGeneratedProps9(root.value, [
2590
+ { name: "align", attribute: "data-align", value: props.align, type: ["start", "center", "end", "stretch"], required: false },
2591
+ { name: "gap", attribute: "data-gap", value: props.gap, type: ["xs", "s", "m", "l", "xl"], required: false },
2592
+ { name: "justify", attribute: "data-justify", value: props.justify, type: ["start", "center", "end", "between"], required: false },
2593
+ { name: "wrap", attribute: "data-wrap", value: props.wrap, type: ["wrap", "nowrap"], required: false }
2594
+ ]);
2595
+ });
2596
+ watchEffect38(() => {
2597
+ if (root.value == null) return;
2598
+ for (const name of ["align", "gap", "justify", "wrap"]) root.value[name] = props[name];
2599
+ });
2600
+ onUnmounted37(() => {
2601
+ detach?.();
2602
+ });
2603
+ return (_ctx, _cache) => {
2604
+ return _openBlock37(), _createElementBlock37(
2605
+ "div",
2606
+ _mergeProps37(_ctx.$attrs, {
2607
+ "data-component": "ui-inline",
2608
+ "data-component-root": "ui-inline",
2609
+ "data-looma-managed": "framework",
2610
+ ref_key: "root",
2611
+ ref: root
2612
+ }),
2613
+ [
2614
+ _renderSlot36(_ctx.$slots, "default")
2615
+ ],
2616
+ 16
2617
+ /* FULL_PROPS */
2618
+ );
2619
+ };
2620
+ }
2621
+ });
2622
+
2623
+ // src/generated/UiReel.ts
2624
+ import { defineComponent as _defineComponent38 } from "vue";
2625
+ import { renderSlot as _renderSlot37, mergeProps as _mergeProps38, openBlock as _openBlock38, createElementBlock as _createElementBlock38 } from "vue";
2626
+ import { onMounted as onMounted38, onUnmounted as onUnmounted38, ref as ref38, watchEffect as watchEffect39 } from "vue";
2627
+ import { attachLoomaComponent as attachLoomaComponent29 } from "@threadlabs/looma/core/declarative";
2628
+ var UiReel_default = /* @__PURE__ */ _defineComponent38({
2629
+ ...{ inheritAttrs: false },
2630
+ __name: "UiReel",
2631
+ props: {
2632
+ gap: { type: [String, null], required: false },
2633
+ itemWidth: { type: [String, null], required: false },
2634
+ snap: { type: [String, null], required: false }
2635
+ },
2636
+ setup(__props) {
2637
+ const props = __props;
2638
+ const definition = { ...{ "contract": { "tag": "ui-reel", "props": { "gap": { "type": { "enum": ["xs", "s", "m", "l", "xl"] }, "required": false, "target": { "attribute": "gap" } }, "itemWidth": { "type": { "enum": ["sm", "md", "lg"] }, "required": false, "target": { "attribute": "itemwidth" } }, "snap": { "type": { "enum": ["start", "center"] }, "required": false, "target": { "attribute": "snap" } } } }, "template": { "kind": "element", "name": "div", "attributes": [], "children": [{ "kind": "slot" }] }, "declarations": [], "root": { "kind": "native", "element": "div", "choices": ["div"] } }, source: { file: import.meta.url }, css: "" };
2639
+ const root = ref38();
2640
+ let detach;
2641
+ onMounted38(() => {
2642
+ if (root.value == null) return;
2643
+ detach = attachLoomaComponent29(root.value, definition, "ui-reel", props);
2644
+ });
2645
+ watchEffect39(() => {
2646
+ if (root.value == null) return;
2647
+ for (const name of ["gap", "itemWidth", "snap"]) root.value[name] = props[name];
2648
+ });
2649
+ onUnmounted38(() => {
2650
+ detach?.();
2651
+ });
2652
+ return (_ctx, _cache) => {
2653
+ return _openBlock38(), _createElementBlock38(
2654
+ "div",
2655
+ _mergeProps38(_ctx.$attrs, {
2656
+ "data-component": "ui-reel",
2657
+ "data-component-root": "ui-reel",
2658
+ "data-looma-managed": "framework",
2659
+ ref_key: "root",
2660
+ ref: root
2661
+ }),
2662
+ [
2663
+ _renderSlot37(_ctx.$slots, "default")
2664
+ ],
2665
+ 16
2666
+ /* FULL_PROPS */
2667
+ );
2668
+ };
2669
+ }
2670
+ });
2671
+
2672
+ // src/generated/UiSeparator.ts
2673
+ import { defineComponent as _defineComponent39 } from "vue";
2674
+ import { renderSlot as _renderSlot38, mergeProps as _mergeProps39, openBlock as _openBlock39, createElementBlock as _createElementBlock39 } from "vue";
2675
+ import { onMounted as onMounted39, onUnmounted as onUnmounted39, ref as ref39, watchEffect as watchEffect40 } from "vue";
2676
+ import { attachLoomaComponent as attachLoomaComponent30 } from "@threadlabs/looma/core/declarative";
2677
+ var UiSeparator_default = /* @__PURE__ */ _defineComponent39({
2678
+ ...{ inheritAttrs: false },
2679
+ __name: "UiSeparator",
2680
+ props: {
2681
+ orientation: { type: [String, null], required: false, default: "horizontal" }
2682
+ },
2683
+ setup(__props) {
2684
+ const props = __props;
2685
+ const definition = { ...{ "contract": { "tag": "ui-separator", "props": { "orientation": { "type": { "enum": ["horizontal", "vertical"] }, "required": false, "target": { "attribute": "orientation" }, "default": "horizontal" } } }, "template": { "kind": "element", "name": "div", "attributes": [], "children": [{ "kind": "slot" }] }, "declarations": [], "root": { "kind": "native", "element": "div", "choices": ["div"] } }, source: { file: import.meta.url }, css: "" };
2686
+ const root = ref39();
2687
+ let detach;
2688
+ onMounted39(() => {
2689
+ if (root.value == null) return;
2690
+ detach = attachLoomaComponent30(root.value, definition, "ui-separator", props);
2691
+ });
2692
+ watchEffect40(() => {
2693
+ if (root.value == null) return;
2694
+ for (const name of ["orientation"]) root.value[name] = props[name];
2695
+ });
2696
+ onUnmounted39(() => {
2697
+ detach?.();
2698
+ });
2699
+ return (_ctx, _cache) => {
2700
+ return _openBlock39(), _createElementBlock39(
2701
+ "div",
2702
+ _mergeProps39(_ctx.$attrs, {
2703
+ "data-component": "ui-separator",
2704
+ "data-component-root": "ui-separator",
2705
+ "data-looma-managed": "framework",
2706
+ ref_key: "root",
2707
+ ref: root
2708
+ }),
2709
+ [
2710
+ _renderSlot38(_ctx.$slots, "default")
2711
+ ],
2712
+ 16
2713
+ /* FULL_PROPS */
2714
+ );
2715
+ };
2716
+ }
2717
+ });
2718
+
2719
+ // src/generated/UiSidebar.ts
2720
+ import { defineComponent as _defineComponent40 } from "vue";
2721
+ import { renderSlot as _renderSlot39, mergeProps as _mergeProps40, openBlock as _openBlock40, createElementBlock as _createElementBlock40 } from "vue";
2722
+ import { onMounted as onMounted40, onUnmounted as onUnmounted40, ref as ref40, watchEffect as watchEffect41 } from "vue";
2723
+ import { attachLoomaComponent as attachLoomaComponent31 } from "@threadlabs/looma/core/declarative";
2724
+ var UiSidebar_default = /* @__PURE__ */ _defineComponent40({
2725
+ ...{ inheritAttrs: false },
2726
+ __name: "UiSidebar",
2727
+ props: {
2728
+ align: { type: [String, null], required: false },
2729
+ gap: { type: [String, null], required: false },
2730
+ maxWidth: { type: [Number, null], required: false, default: 480 },
2731
+ minWidth: { type: [Number, null], required: false, default: 176 },
2732
+ resizable: { type: [Boolean, null], required: false, default: false },
2733
+ resizeLabel: { type: [String, null], required: false, default: "Resize sidebar" },
2734
+ resizeStep: { type: [Number, null], required: false, default: 16 },
2735
+ side: { type: [String, null], required: false, default: "start" },
2736
+ storageKey: { type: [String, null], required: false },
2737
+ width: { type: [String, null], required: false, default: "default" }
2738
+ },
2739
+ emits: ["resize"],
2740
+ setup(__props, { emit: __emit }) {
2741
+ const props = __props;
2742
+ const emit = __emit;
2743
+ const definition = { ...{ "contract": { "tag": "ui-sidebar", "props": { "align": { "type": { "enum": ["start", "center", "end", "stretch"] }, "required": false, "target": { "attribute": "align" } }, "gap": { "type": { "enum": ["xs", "s", "m", "l", "xl"] }, "required": false, "target": { "attribute": "gap" } }, "maxWidth": { "type": "number", "required": false, "target": { "attribute": "maxwidth" }, "default": 480 }, "minWidth": { "type": "number", "required": false, "target": { "attribute": "minwidth" }, "default": 176 }, "resizable": { "type": "boolean", "required": false, "target": { "attribute": "resizable" }, "default": false }, "resizeLabel": { "type": "string", "required": false, "target": { "attribute": "resizelabel" }, "default": "Resize sidebar" }, "resizeStep": { "type": "number", "required": false, "target": { "attribute": "resizestep" }, "default": 16 }, "side": { "type": { "enum": ["start", "end"] }, "required": false, "target": { "attribute": "side" }, "default": "start" }, "storageKey": { "type": "string", "required": false, "target": { "attribute": "storagekey" } }, "width": { "type": { "enum": ["narrow", "default", "wide"] }, "required": false, "target": { "attribute": "width" }, "default": "default" } } }, "template": { "kind": "element", "name": "div", "attributes": [], "children": [{ "kind": "slot" }] }, "declarations": [{ "kind": "event", "name": "resize", "type": "object({ width: number, trigger: keyboard | pointer | programmatic })", "bubbles": true, "composed": true, "cancelable": false }], "root": { "kind": "native", "element": "div", "choices": ["div"] } }, source: { file: import.meta.url }, css: "" };
2744
+ const root = ref40();
2745
+ const eventListener0 = (event) => emit("resize", event.detail);
2746
+ let detach;
2747
+ onMounted40(() => {
2748
+ if (root.value == null) return;
2749
+ detach = attachLoomaComponent31(root.value, definition, "ui-sidebar", props);
2750
+ root.value.addEventListener("resize", eventListener0);
2751
+ });
2752
+ watchEffect41(() => {
2753
+ if (root.value == null) return;
2754
+ for (const name of ["align", "gap", "maxWidth", "minWidth", "resizable", "resizeLabel", "resizeStep", "side", "storageKey", "width"]) root.value[name] = props[name];
2755
+ });
2756
+ onUnmounted40(() => {
2757
+ root.value?.removeEventListener("resize", eventListener0);
2758
+ detach?.();
2759
+ });
2760
+ return (_ctx, _cache) => {
2761
+ return _openBlock40(), _createElementBlock40(
2762
+ "div",
2763
+ _mergeProps40(_ctx.$attrs, {
2764
+ "data-component": "ui-sidebar",
2765
+ "data-component-root": "ui-sidebar",
2766
+ "data-looma-managed": "framework",
2767
+ ref_key: "root",
2768
+ ref: root
2769
+ }),
2770
+ [
2771
+ _renderSlot39(_ctx.$slots, "default")
2772
+ ],
2773
+ 16
2774
+ /* FULL_PROPS */
2775
+ );
2776
+ };
2777
+ }
2778
+ });
2779
+
2780
+ // src/generated/UiStack.ts
2781
+ import { defineComponent as _defineComponent41 } from "vue";
2782
+ import { renderSlot as _renderSlot40, mergeProps as _mergeProps41, openBlock as _openBlock41, createElementBlock as _createElementBlock41 } from "vue";
2783
+ import { onMounted as onMounted41, onUnmounted as onUnmounted41, ref as ref41, watchEffect as watchEffect42 } from "vue";
2784
+ import { manageGeneratedProps as manageGeneratedProps10 } from "@threadlabs/looma/core/declarative-generated";
2785
+ var UiStack_default = /* @__PURE__ */ _defineComponent41({
2786
+ ...{ inheritAttrs: false },
2787
+ __name: "UiStack",
2788
+ props: {
2789
+ align: { type: [String, null], required: false },
2790
+ gap: { type: [String, null], required: false },
2791
+ justify: { type: [String, null], required: false }
2792
+ },
2793
+ setup(__props) {
2794
+ const props = __props;
2795
+ const root = ref41();
2796
+ let detach;
2797
+ onMounted41(() => {
2798
+ if (root.value == null) return;
2799
+ detach = manageGeneratedProps10(root.value, [
2800
+ { name: "align", attribute: "data-align", value: props.align, type: ["start", "center", "end", "stretch"], required: false },
2801
+ { name: "gap", attribute: "data-gap", value: props.gap, type: ["xs", "s", "m", "l", "xl"], required: false },
2802
+ { name: "justify", attribute: "data-justify", value: props.justify, type: ["start", "center", "end", "between"], required: false }
2803
+ ]);
2804
+ });
2805
+ watchEffect42(() => {
2806
+ if (root.value == null) return;
2807
+ for (const name of ["align", "gap", "justify"]) root.value[name] = props[name];
2808
+ });
2809
+ onUnmounted41(() => {
2810
+ detach?.();
2811
+ });
2812
+ return (_ctx, _cache) => {
2813
+ return _openBlock41(), _createElementBlock41(
2814
+ "div",
2815
+ _mergeProps41(_ctx.$attrs, {
2816
+ "data-component": "ui-stack",
2817
+ "data-component-root": "ui-stack",
2818
+ "data-looma-managed": "framework",
2819
+ ref_key: "root",
2820
+ ref: root
2821
+ }),
2822
+ [
2823
+ _renderSlot40(_ctx.$slots, "default")
2824
+ ],
2825
+ 16
2826
+ /* FULL_PROPS */
2827
+ );
2828
+ };
2829
+ }
2830
+ });
2831
+
2832
+ // src/generated/UiSwitcher.ts
2833
+ import { defineComponent as _defineComponent42 } from "vue";
2834
+ import { renderSlot as _renderSlot41, mergeProps as _mergeProps42, openBlock as _openBlock42, createElementBlock as _createElementBlock42 } from "vue";
2835
+ import { onMounted as onMounted42, onUnmounted as onUnmounted42, ref as ref42, watchEffect as watchEffect43 } from "vue";
2836
+ import { manageGeneratedProps as manageGeneratedProps11 } from "@threadlabs/looma/core/declarative-generated";
2837
+ var UiSwitcher_default = /* @__PURE__ */ _defineComponent42({
2838
+ ...{ inheritAttrs: false },
2839
+ __name: "UiSwitcher",
2840
+ props: {
2841
+ align: { type: [String, null], required: false },
2842
+ gap: { type: [String, null], required: false },
2843
+ threshold: { type: [String, null], required: false }
2844
+ },
2845
+ setup(__props) {
2846
+ const props = __props;
2847
+ const root = ref42();
2848
+ let detach;
2849
+ onMounted42(() => {
2850
+ if (root.value == null) return;
2851
+ detach = manageGeneratedProps11(root.value, [
2852
+ { name: "align", attribute: "data-align", value: props.align, type: ["start", "center", "end", "stretch"], required: false },
2853
+ { name: "gap", attribute: "data-gap", value: props.gap, type: ["xs", "s", "m", "l", "xl"], required: false },
2854
+ { name: "threshold", attribute: "data-threshold", value: props.threshold, type: ["xs", "sm", "md", "lg"], required: false }
2855
+ ]);
2856
+ });
2857
+ watchEffect43(() => {
2858
+ if (root.value == null) return;
2859
+ for (const name of ["align", "gap", "threshold"]) root.value[name] = props[name];
2860
+ });
2861
+ onUnmounted42(() => {
2862
+ detach?.();
2863
+ });
2864
+ return (_ctx, _cache) => {
2865
+ return _openBlock42(), _createElementBlock42(
2866
+ "div",
2867
+ _mergeProps42(_ctx.$attrs, {
2868
+ "data-component": "ui-switcher",
2869
+ "data-component-root": "ui-switcher",
2870
+ "data-looma-managed": "framework",
2871
+ ref_key: "root",
2872
+ ref: root
2873
+ }),
2874
+ [
2875
+ _renderSlot41(_ctx.$slots, "default")
2876
+ ],
2877
+ 16
2878
+ /* FULL_PROPS */
2879
+ );
2880
+ };
2881
+ }
2882
+ });
2883
+
2884
+ // src/generated/UiEditorInsertTableGrid.ts
2885
+ import { defineComponent as _defineComponent43 } from "vue";
2886
+ import { mergeProps as _mergeProps43, openBlock as _openBlock43, createElementBlock as _createElementBlock43 } from "vue";
2887
+ import { onMounted as onMounted43, onUnmounted as onUnmounted43, ref as ref43, watchEffect as watchEffect44 } from "vue";
2888
+ import { attachLoomaComponent as attachLoomaComponent32 } from "@threadlabs/looma/core/declarative";
2889
+ var UiEditorInsertTableGrid_default = /* @__PURE__ */ _defineComponent43({
2890
+ ...{ inheritAttrs: false },
2891
+ __name: "UiEditorInsertTableGrid",
2892
+ props: {
2893
+ maxCols: { type: [Number, null], required: false, default: 8 },
2894
+ maxRows: { type: [Number, null], required: false, default: 8 },
2895
+ open: { type: [Boolean, null], required: false, default: false }
2896
+ },
2897
+ emits: ["looma-editor-insert-table"],
2898
+ setup(__props, { emit: __emit }) {
2899
+ const props = __props;
2900
+ const emit = __emit;
2901
+ const definition = { ...{ "contract": { "tag": "ui-editor-insert-table-grid", "props": { "maxCols": { "type": { "kind": "terminal", "name": "integer" }, "required": false, "target": { "attribute": "maxcols" }, "default": 8 }, "maxRows": { "type": { "kind": "terminal", "name": "integer" }, "required": false, "target": { "attribute": "maxrows" }, "default": 8 }, "open": { "type": "boolean", "required": false, "target": { "attribute": "open" }, "default": false } } }, "template": { "kind": "element", "name": "div", "attributes": [], "children": [] }, "declarations": [{ "kind": "event", "name": "looma-editor-insert-table", "type": "object({ rows: integer, cols: integer, withHeaderRow: boolean })", "bubbles": true, "composed": true, "cancelable": false }], "root": { "kind": "native", "element": "div", "choices": ["div"] } }, source: { file: import.meta.url }, css: "" };
2902
+ const root = ref43();
2903
+ const eventListener0 = (event) => emit("looma-editor-insert-table", event.detail);
2904
+ let detach;
2905
+ onMounted43(() => {
2906
+ if (root.value == null) return;
2907
+ detach = attachLoomaComponent32(root.value, definition, "ui-editor-insert-table-grid", props);
2908
+ root.value.addEventListener("looma-editor-insert-table", eventListener0);
2909
+ });
2910
+ watchEffect44(() => {
2911
+ if (root.value == null) return;
2912
+ for (const name of ["maxCols", "maxRows", "open"]) root.value[name] = props[name];
2913
+ });
2914
+ onUnmounted43(() => {
2915
+ root.value?.removeEventListener("looma-editor-insert-table", eventListener0);
2916
+ detach?.();
2917
+ });
2918
+ return (_ctx, _cache) => {
2919
+ return _openBlock43(), _createElementBlock43(
2920
+ "div",
2921
+ _mergeProps43(_ctx.$attrs, {
2922
+ "data-component": "ui-editor-insert-table-grid",
2923
+ "data-component-root": "ui-editor-insert-table-grid",
2924
+ "data-looma-managed": "framework",
2925
+ ref_key: "root",
2926
+ ref: root
2927
+ }),
2928
+ null,
2929
+ 16
2930
+ /* FULL_PROPS */
2931
+ );
2932
+ };
2933
+ }
2934
+ });
2935
+
2936
+ // src/generated/UiEditorMentionMenu.ts
2937
+ import { defineComponent as _defineComponent44 } from "vue";
2938
+ import { mergeProps as _mergeProps44, openBlock as _openBlock44, createElementBlock as _createElementBlock44 } from "vue";
2939
+ import { onMounted as onMounted44, onUnmounted as onUnmounted44, ref as ref44, watchEffect as watchEffect45 } from "vue";
2940
+ import { attachLoomaComponent as attachLoomaComponent33 } from "@threadlabs/looma/core/declarative";
2941
+ var UiEditorMentionMenu_default = /* @__PURE__ */ _defineComponent44({
2942
+ ...{ inheritAttrs: false },
2943
+ __name: "UiEditorMentionMenu",
2944
+ props: {
2945
+ anchorRect: { type: [Object, null], required: false },
2946
+ items: { type: [Array, null], required: false },
2947
+ loading: { type: [Boolean, null], required: false, default: false },
2948
+ open: { type: [Boolean, null], required: false, default: false },
2949
+ query: { type: [String, null], required: false, default: "" },
2950
+ selectedIndex: { type: [Number, null], required: false, default: 0 }
2951
+ },
2952
+ emits: ["looma-editor-mention-menu-highlight", "looma-editor-mention-menu-select"],
2953
+ setup(__props, { emit: __emit }) {
2954
+ const props = __props;
2955
+ const emit = __emit;
2956
+ const definition = { ...{ "contract": { "tag": "ui-editor-mention-menu", "props": { "anchorRect": { "type": { "kind": "union", "members": [{ "kind": "object", "fields": [{ "name": "left", "type": { "kind": "terminal", "name": "number" }, "optional": true }, { "name": "top", "type": { "kind": "terminal", "name": "number" }, "optional": true }, { "name": "right", "type": { "kind": "terminal", "name": "number" }, "optional": true }, { "name": "bottom", "type": { "kind": "terminal", "name": "number" }, "optional": true }, { "name": "x", "type": { "kind": "terminal", "name": "number" }, "optional": true }, { "name": "y", "type": { "kind": "terminal", "name": "number" }, "optional": true }, { "name": "width", "type": { "kind": "terminal", "name": "number" }, "optional": true }, { "name": "height", "type": { "kind": "terminal", "name": "number" }, "optional": true }], "open": false }, { "kind": "terminal", "name": "null" }] }, "required": false, "target": { "property": "anchorRect" } }, "items": { "type": { "kind": "list", "item": { "kind": "object", "fields": [{ "name": "id", "type": { "kind": "terminal", "name": "string" }, "optional": false }, { "name": "label", "type": { "kind": "terminal", "name": "string" }, "optional": false }, { "name": "detail", "type": { "kind": "terminal", "name": "string" }, "optional": true }, { "name": "initials", "type": { "kind": "terminal", "name": "string" }, "optional": true }], "open": false } }, "required": false, "target": { "property": "items" } }, "loading": { "type": "boolean", "required": false, "target": { "attribute": "loading" }, "default": false }, "open": { "type": "boolean", "required": false, "target": { "attribute": "open" }, "default": false }, "query": { "type": "string", "required": false, "target": { "attribute": "query" }, "default": "" }, "selectedIndex": { "type": { "kind": "terminal", "name": "integer" }, "required": false, "target": { "attribute": "selectedindex" }, "default": 0 } } }, "template": { "kind": "element", "name": "div", "attributes": [{ "kind": "property", "key": "items", "name": "items", "expression": "items", "expressionPlan": { "source": "items", "ast": { "kind": "id", "name": "items" }, "dependencies": ["items"] } }, { "kind": "property", "key": "anchorrect", "name": "anchorRect", "expression": "anchorRect", "expressionPlan": { "source": "anchorRect", "ast": { "kind": "id", "name": "anchorRect" }, "dependencies": ["anchorRect"] } }], "children": [] }, "declarations": [{ "kind": "event", "name": "looma-editor-mention-menu-highlight", "type": "object({ index: integer })", "bubbles": true, "composed": true, "cancelable": false }, { "kind": "event", "name": "looma-editor-mention-menu-select", "type": "object({ index: integer })", "bubbles": true, "composed": true, "cancelable": false }], "root": { "kind": "native", "element": "div", "choices": ["div"] } }, source: { file: import.meta.url }, css: "" };
2957
+ const root = ref44();
2958
+ const eventListener0 = (event) => emit("looma-editor-mention-menu-highlight", event.detail);
2959
+ const eventListener1 = (event) => emit("looma-editor-mention-menu-select", event.detail);
2960
+ let detach;
2961
+ onMounted44(() => {
2962
+ if (root.value == null) return;
2963
+ detach = attachLoomaComponent33(root.value, definition, "ui-editor-mention-menu", props);
2964
+ root.value.addEventListener("looma-editor-mention-menu-highlight", eventListener0);
2965
+ root.value.addEventListener("looma-editor-mention-menu-select", eventListener1);
2966
+ });
2967
+ watchEffect45(() => {
2968
+ if (root.value == null) return;
2969
+ for (const name of ["anchorRect", "items", "loading", "open", "query", "selectedIndex"]) root.value[name] = props[name];
2970
+ });
2971
+ onUnmounted44(() => {
2972
+ root.value?.removeEventListener("looma-editor-mention-menu-highlight", eventListener0);
2973
+ root.value?.removeEventListener("looma-editor-mention-menu-select", eventListener1);
2974
+ detach?.();
2975
+ });
2976
+ return (_ctx, _cache) => {
2977
+ return _openBlock44(), _createElementBlock44(
2978
+ "div",
2979
+ _mergeProps44(_ctx.$attrs, {
2980
+ "data-component": "ui-editor-mention-menu",
2981
+ "data-component-root": "ui-editor-mention-menu",
2982
+ "data-looma-managed": "framework",
2983
+ ref_key: "root",
2984
+ ref: root
2985
+ }),
2986
+ null,
2987
+ 16
2988
+ /* FULL_PROPS */
2989
+ );
2990
+ };
2991
+ }
2992
+ });
2993
+
2994
+ // src/generated/UiEditorSlashMenu.ts
2995
+ import { defineComponent as _defineComponent45 } from "vue";
2996
+ import { mergeProps as _mergeProps45, openBlock as _openBlock45, createElementBlock as _createElementBlock45 } from "vue";
2997
+ import { onMounted as onMounted45, onUnmounted as onUnmounted45, ref as ref45, watchEffect as watchEffect46 } from "vue";
2998
+ import { attachLoomaComponent as attachLoomaComponent34 } from "@threadlabs/looma/core/declarative";
2999
+ var UiEditorSlashMenu_default = /* @__PURE__ */ _defineComponent45({
3000
+ ...{ inheritAttrs: false },
3001
+ __name: "UiEditorSlashMenu",
3002
+ props: {
3003
+ anchorRect: { type: [Object, null], required: false },
3004
+ items: { type: [Array, null], required: false },
3005
+ open: { type: [Boolean, null], required: false, default: false },
3006
+ query: { type: [String, null], required: false, default: "" },
3007
+ selectedIndex: { type: [Number, null], required: false, default: 0 }
3008
+ },
3009
+ emits: ["looma-editor-slash-menu-highlight", "looma-editor-slash-menu-select"],
3010
+ setup(__props, { emit: __emit }) {
3011
+ const props = __props;
3012
+ const emit = __emit;
3013
+ const definition = { ...{ "contract": { "tag": "ui-editor-slash-menu", "props": { "anchorRect": { "type": { "kind": "union", "members": [{ "kind": "object", "fields": [{ "name": "left", "type": { "kind": "terminal", "name": "number" }, "optional": true }, { "name": "top", "type": { "kind": "terminal", "name": "number" }, "optional": true }, { "name": "right", "type": { "kind": "terminal", "name": "number" }, "optional": true }, { "name": "bottom", "type": { "kind": "terminal", "name": "number" }, "optional": true }, { "name": "x", "type": { "kind": "terminal", "name": "number" }, "optional": true }, { "name": "y", "type": { "kind": "terminal", "name": "number" }, "optional": true }, { "name": "width", "type": { "kind": "terminal", "name": "number" }, "optional": true }, { "name": "height", "type": { "kind": "terminal", "name": "number" }, "optional": true }], "open": false }, { "kind": "terminal", "name": "null" }] }, "required": false, "target": { "property": "anchorRect" } }, "items": { "type": { "kind": "list", "item": { "kind": "object", "fields": [{ "name": "title", "type": { "kind": "terminal", "name": "string" }, "optional": false }, { "name": "description", "type": { "kind": "terminal", "name": "string" }, "optional": false }, { "name": "icon", "type": { "kind": "terminal", "name": "string" }, "optional": false }], "open": false } }, "required": false, "target": { "property": "items" } }, "open": { "type": "boolean", "required": false, "target": { "attribute": "open" }, "default": false }, "query": { "type": "string", "required": false, "target": { "attribute": "query" }, "default": "" }, "selectedIndex": { "type": { "kind": "terminal", "name": "integer" }, "required": false, "target": { "attribute": "selectedindex" }, "default": 0 } } }, "template": { "kind": "element", "name": "div", "attributes": [{ "kind": "property", "key": "items", "name": "items", "expression": "items", "expressionPlan": { "source": "items", "ast": { "kind": "id", "name": "items" }, "dependencies": ["items"] } }, { "kind": "property", "key": "anchorrect", "name": "anchorRect", "expression": "anchorRect", "expressionPlan": { "source": "anchorRect", "ast": { "kind": "id", "name": "anchorRect" }, "dependencies": ["anchorRect"] } }], "children": [] }, "declarations": [{ "kind": "event", "name": "looma-editor-slash-menu-highlight", "type": "object({ index: integer })", "bubbles": true, "composed": true, "cancelable": false }, { "kind": "event", "name": "looma-editor-slash-menu-select", "type": "object({ index: integer })", "bubbles": true, "composed": true, "cancelable": false }], "root": { "kind": "native", "element": "div", "choices": ["div"] } }, source: { file: import.meta.url }, css: "" };
3014
+ const root = ref45();
3015
+ const eventListener0 = (event) => emit("looma-editor-slash-menu-highlight", event.detail);
3016
+ const eventListener1 = (event) => emit("looma-editor-slash-menu-select", event.detail);
3017
+ let detach;
3018
+ onMounted45(() => {
3019
+ if (root.value == null) return;
3020
+ detach = attachLoomaComponent34(root.value, definition, "ui-editor-slash-menu", props);
3021
+ root.value.addEventListener("looma-editor-slash-menu-highlight", eventListener0);
3022
+ root.value.addEventListener("looma-editor-slash-menu-select", eventListener1);
3023
+ });
3024
+ watchEffect46(() => {
3025
+ if (root.value == null) return;
3026
+ for (const name of ["anchorRect", "items", "open", "query", "selectedIndex"]) root.value[name] = props[name];
3027
+ });
3028
+ onUnmounted45(() => {
3029
+ root.value?.removeEventListener("looma-editor-slash-menu-highlight", eventListener0);
3030
+ root.value?.removeEventListener("looma-editor-slash-menu-select", eventListener1);
3031
+ detach?.();
3032
+ });
3033
+ return (_ctx, _cache) => {
3034
+ return _openBlock45(), _createElementBlock45(
3035
+ "div",
3036
+ _mergeProps45(_ctx.$attrs, {
3037
+ "data-component": "ui-editor-slash-menu",
3038
+ "data-component-root": "ui-editor-slash-menu",
3039
+ "data-looma-managed": "framework",
3040
+ ref_key: "root",
3041
+ ref: root
3042
+ }),
3043
+ null,
3044
+ 16
3045
+ /* FULL_PROPS */
3046
+ );
3047
+ };
3048
+ }
3049
+ });
3050
+
3051
+ // src/generated/UiEditorTableContextMenu.ts
3052
+ import { defineComponent as _defineComponent46 } from "vue";
3053
+ import { mergeProps as _mergeProps46, openBlock as _openBlock46, createElementBlock as _createElementBlock46 } from "vue";
3054
+ import { onMounted as onMounted46, onUnmounted as onUnmounted46, ref as ref46, watchEffect as watchEffect47 } from "vue";
3055
+ import { attachLoomaComponent as attachLoomaComponent35 } from "@threadlabs/looma/core/declarative";
3056
+ var UiEditorTableContextMenu_default = /* @__PURE__ */ _defineComponent46({
3057
+ ...{ inheritAttrs: false },
3058
+ __name: "UiEditorTableContextMenu",
3059
+ props: {
3060
+ canAddColumnAfter: { type: [Boolean, null], required: false, default: false },
3061
+ canAddColumnBefore: { type: [Boolean, null], required: false, default: false },
3062
+ canAddRowAfter: { type: [Boolean, null], required: false, default: false },
3063
+ canAddRowBefore: { type: [Boolean, null], required: false, default: false },
3064
+ canDeleteColumn: { type: [Boolean, null], required: false, default: false },
3065
+ canDeleteRow: { type: [Boolean, null], required: false, default: false },
3066
+ canDeleteTable: { type: [Boolean, null], required: false, default: false },
3067
+ canMergeCells: { type: [Boolean, null], required: false, default: false },
3068
+ canSplitCell: { type: [Boolean, null], required: false, default: false },
3069
+ cellBackground: { type: [String, null], required: false, default: "" },
3070
+ open: { type: [Boolean, null], required: false, default: false }
3071
+ },
3072
+ emits: ["looma-editor-table-action"],
3073
+ setup(__props, { emit: __emit }) {
3074
+ const props = __props;
3075
+ const emit = __emit;
3076
+ const definition = { ...{ "contract": { "tag": "ui-editor-table-context-menu", "props": { "canAddColumnAfter": { "type": "boolean", "required": false, "target": { "attribute": "canaddcolumnafter" }, "default": false }, "canAddColumnBefore": { "type": "boolean", "required": false, "target": { "attribute": "canaddcolumnbefore" }, "default": false }, "canAddRowAfter": { "type": "boolean", "required": false, "target": { "attribute": "canaddrowafter" }, "default": false }, "canAddRowBefore": { "type": "boolean", "required": false, "target": { "attribute": "canaddrowbefore" }, "default": false }, "canDeleteColumn": { "type": "boolean", "required": false, "target": { "attribute": "candeletecolumn" }, "default": false }, "canDeleteRow": { "type": "boolean", "required": false, "target": { "attribute": "candeleterow" }, "default": false }, "canDeleteTable": { "type": "boolean", "required": false, "target": { "attribute": "candeletetable" }, "default": false }, "canMergeCells": { "type": "boolean", "required": false, "target": { "attribute": "canmergecells" }, "default": false }, "canSplitCell": { "type": "boolean", "required": false, "target": { "attribute": "cansplitcell" }, "default": false }, "cellBackground": { "type": "string", "required": false, "target": { "attribute": "cellbackground" }, "default": "" }, "open": { "type": "boolean", "required": false, "target": { "attribute": "open" }, "default": false } } }, "template": { "kind": "element", "name": "div", "attributes": [], "children": [] }, "declarations": [{ "kind": "event", "name": "looma-editor-table-action", "type": "object({ action: string })", "bubbles": true, "composed": true, "cancelable": false }], "root": { "kind": "native", "element": "div", "choices": ["div"] } }, source: { file: import.meta.url }, css: "" };
3077
+ const root = ref46();
3078
+ const eventListener0 = (event) => emit("looma-editor-table-action", event.detail);
3079
+ let detach;
3080
+ onMounted46(() => {
3081
+ if (root.value == null) return;
3082
+ detach = attachLoomaComponent35(root.value, definition, "ui-editor-table-context-menu", props);
3083
+ root.value.addEventListener("looma-editor-table-action", eventListener0);
3084
+ });
3085
+ watchEffect47(() => {
3086
+ if (root.value == null) return;
3087
+ for (const name of ["canAddColumnAfter", "canAddColumnBefore", "canAddRowAfter", "canAddRowBefore", "canDeleteColumn", "canDeleteRow", "canDeleteTable", "canMergeCells", "canSplitCell", "cellBackground", "open"]) root.value[name] = props[name];
3088
+ });
3089
+ onUnmounted46(() => {
3090
+ root.value?.removeEventListener("looma-editor-table-action", eventListener0);
3091
+ detach?.();
3092
+ });
3093
+ return (_ctx, _cache) => {
3094
+ return _openBlock46(), _createElementBlock46(
3095
+ "div",
3096
+ _mergeProps46(_ctx.$attrs, {
3097
+ "data-component": "ui-editor-table-context-menu",
3098
+ "data-component-root": "ui-editor-table-context-menu",
3099
+ "data-looma-managed": "framework",
3100
+ ref_key: "root",
3101
+ ref: root
3102
+ }),
3103
+ null,
3104
+ 16
3105
+ /* FULL_PROPS */
3106
+ );
3107
+ };
3108
+ }
3109
+ });
3110
+
3111
+ // src/generated/UiEditorTableOverlay.ts
3112
+ import { defineComponent as _defineComponent47 } from "vue";
3113
+ import { mergeProps as _mergeProps47, openBlock as _openBlock47, createElementBlock as _createElementBlock47 } from "vue";
3114
+ import { onMounted as onMounted47, onUnmounted as onUnmounted47, ref as ref47, watchEffect as watchEffect48 } from "vue";
3115
+ import { attachLoomaComponent as attachLoomaComponent36 } from "@threadlabs/looma/core/declarative";
3116
+ var UiEditorTableOverlay_default = /* @__PURE__ */ _defineComponent47({
3117
+ ...{ inheritAttrs: false },
3118
+ __name: "UiEditorTableOverlay",
3119
+ props: {
3120
+ activeCell: { type: [String, Array, null], required: false },
3121
+ cols: { type: [Number, null], required: false, default: 3 },
3122
+ columnBoundaries: { type: [String, Array, null], required: false },
3123
+ geometry: { type: [Object, null], required: false },
3124
+ hoveredCell: { type: [String, Array, null], required: false },
3125
+ open: { type: [Boolean, null], required: false, default: false },
3126
+ rowBoundaries: { type: [String, Array, null], required: false },
3127
+ rows: { type: [Number, null], required: false, default: 3 }
3128
+ },
3129
+ emits: ["looma-editor-table-overlay-action"],
3130
+ setup(__props, { emit: __emit }) {
3131
+ const props = __props;
3132
+ const emit = __emit;
3133
+ const definition = { ...{ "contract": { "tag": "ui-editor-table-overlay", "props": { "activeCell": { "type": { "kind": "union", "members": [{ "kind": "terminal", "name": "string" }, { "kind": "list", "item": { "kind": "terminal", "name": "number" } }] }, "required": false, "target": { "attribute": "activecell" } }, "cols": { "type": { "kind": "terminal", "name": "integer" }, "required": false, "target": { "attribute": "cols" }, "default": 3 }, "columnBoundaries": { "type": { "kind": "union", "members": [{ "kind": "terminal", "name": "string" }, { "kind": "list", "item": { "kind": "terminal", "name": "number" } }] }, "required": false, "target": { "attribute": "columnboundaries" } }, "geometry": { "type": { "kind": "union", "members": [{ "kind": "object", "fields": [{ "name": "rowBoundaries", "type": { "kind": "list", "item": { "kind": "terminal", "name": "number" } }, "optional": false }, { "name": "columnBoundaries", "type": { "kind": "list", "item": { "kind": "terminal", "name": "number" } }, "optional": false }, { "name": "activeCell", "type": { "kind": "union", "members": [{ "kind": "object", "fields": [{ "name": "left", "type": { "kind": "terminal", "name": "number" }, "optional": false }, { "name": "top", "type": { "kind": "terminal", "name": "number" }, "optional": false }, { "name": "width", "type": { "kind": "terminal", "name": "number" }, "optional": false }, { "name": "height", "type": { "kind": "terminal", "name": "number" }, "optional": false }, { "name": "rowIndex", "type": { "kind": "terminal", "name": "integer" }, "optional": false }, { "name": "columnIndex", "type": { "kind": "terminal", "name": "integer" }, "optional": false }], "open": false }, { "kind": "terminal", "name": "null" }] }, "optional": false }, { "name": "hoveredCell", "type": { "kind": "union", "members": [{ "kind": "object", "fields": [{ "name": "left", "type": { "kind": "terminal", "name": "number" }, "optional": false }, { "name": "top", "type": { "kind": "terminal", "name": "number" }, "optional": false }, { "name": "width", "type": { "kind": "terminal", "name": "number" }, "optional": false }, { "name": "height", "type": { "kind": "terminal", "name": "number" }, "optional": false }, { "name": "rowIndex", "type": { "kind": "terminal", "name": "integer" }, "optional": false }, { "name": "columnIndex", "type": { "kind": "terminal", "name": "integer" }, "optional": false }], "open": false }, { "kind": "terminal", "name": "null" }] }, "optional": true }], "open": false }, { "kind": "terminal", "name": "null" }] }, "required": false, "target": { "property": "geometry" } }, "hoveredCell": { "type": { "kind": "union", "members": [{ "kind": "terminal", "name": "string" }, { "kind": "list", "item": { "kind": "terminal", "name": "number" } }] }, "required": false, "target": { "attribute": "hoveredcell" } }, "open": { "type": "boolean", "required": false, "target": { "attribute": "open" }, "default": false }, "rowBoundaries": { "type": { "kind": "union", "members": [{ "kind": "terminal", "name": "string" }, { "kind": "list", "item": { "kind": "terminal", "name": "number" } }] }, "required": false, "target": { "attribute": "rowboundaries" } }, "rows": { "type": { "kind": "terminal", "name": "integer" }, "required": false, "target": { "attribute": "rows" }, "default": 3 } } }, "template": { "kind": "element", "name": "div", "attributes": [{ "kind": "property", "key": "geometry", "name": "geometry", "expression": "geometry", "expressionPlan": { "source": "geometry", "ast": { "kind": "id", "name": "geometry" }, "dependencies": ["geometry"] } }], "children": [] }, "declarations": [{ "kind": "event", "name": "looma-editor-table-overlay-action", "type": "object({ action: string, boundaryIndex?: integer, rowIndex?: integer, columnIndex?: integer, anchor?: object({ left: number, top: number, right: number, bottom: number }) })", "bubbles": true, "composed": true, "cancelable": false }], "root": { "kind": "native", "element": "div", "choices": ["div"] } }, source: { file: import.meta.url }, css: "" };
3134
+ const root = ref47();
3135
+ const eventListener0 = (event) => emit("looma-editor-table-overlay-action", event.detail);
3136
+ let detach;
3137
+ onMounted47(() => {
3138
+ if (root.value == null) return;
3139
+ detach = attachLoomaComponent36(root.value, definition, "ui-editor-table-overlay", props);
3140
+ root.value.addEventListener("looma-editor-table-overlay-action", eventListener0);
3141
+ });
3142
+ watchEffect48(() => {
3143
+ if (root.value == null) return;
3144
+ for (const name of ["activeCell", "cols", "columnBoundaries", "geometry", "hoveredCell", "open", "rowBoundaries", "rows"]) root.value[name] = props[name];
3145
+ });
3146
+ onUnmounted47(() => {
3147
+ root.value?.removeEventListener("looma-editor-table-overlay-action", eventListener0);
3148
+ detach?.();
3149
+ });
3150
+ return (_ctx, _cache) => {
3151
+ return _openBlock47(), _createElementBlock47(
3152
+ "div",
3153
+ _mergeProps47(_ctx.$attrs, {
3154
+ "data-component": "ui-editor-table-overlay",
3155
+ "data-component-root": "ui-editor-table-overlay",
3156
+ "data-looma-managed": "framework",
3157
+ ref_key: "root",
3158
+ ref: root
3159
+ }),
3160
+ null,
3161
+ 16
3162
+ /* FULL_PROPS */
3163
+ );
3164
+ };
3165
+ }
3166
+ });
3167
+
3168
+ // src/generated/UiEditorTableToolbar.ts
3169
+ import { defineComponent as _defineComponent48 } from "vue";
3170
+ import { mergeProps as _mergeProps48, openBlock as _openBlock48, createElementBlock as _createElementBlock48 } from "vue";
3171
+ import { onMounted as onMounted48, onUnmounted as onUnmounted48, ref as ref48, watchEffect as watchEffect49 } from "vue";
3172
+ import { attachLoomaComponent as attachLoomaComponent37 } from "@threadlabs/looma/core/declarative";
3173
+ var UiEditorTableToolbar_default = /* @__PURE__ */ _defineComponent48({
3174
+ ...{ inheritAttrs: false },
3175
+ __name: "UiEditorTableToolbar",
3176
+ props: {
3177
+ canAddColumnAfter: { type: [Boolean, null], required: false, default: false },
3178
+ canAddColumnBefore: { type: [Boolean, null], required: false, default: false },
3179
+ canAddRowAfter: { type: [Boolean, null], required: false, default: false },
3180
+ canAddRowBefore: { type: [Boolean, null], required: false, default: false },
3181
+ canDeleteColumn: { type: [Boolean, null], required: false, default: false },
3182
+ canDeleteRow: { type: [Boolean, null], required: false, default: false },
3183
+ canDeleteTable: { type: [Boolean, null], required: false, default: false },
3184
+ canMergeCells: { type: [Boolean, null], required: false, default: false },
3185
+ canSplitCell: { type: [Boolean, null], required: false, default: false },
3186
+ cellAlignment: { type: [String, null], required: false, default: "left" },
3187
+ cellBackground: { type: [String, null], required: false, default: "" },
3188
+ open: { type: [Boolean, null], required: false, default: false }
3189
+ },
3190
+ emits: ["looma-editor-table-action"],
3191
+ setup(__props, { emit: __emit }) {
3192
+ const props = __props;
3193
+ const emit = __emit;
3194
+ const definition = { ...{ "contract": { "tag": "ui-editor-table-toolbar", "props": { "canAddColumnAfter": { "type": "boolean", "required": false, "target": { "attribute": "canaddcolumnafter" }, "default": false }, "canAddColumnBefore": { "type": "boolean", "required": false, "target": { "attribute": "canaddcolumnbefore" }, "default": false }, "canAddRowAfter": { "type": "boolean", "required": false, "target": { "attribute": "canaddrowafter" }, "default": false }, "canAddRowBefore": { "type": "boolean", "required": false, "target": { "attribute": "canaddrowbefore" }, "default": false }, "canDeleteColumn": { "type": "boolean", "required": false, "target": { "attribute": "candeletecolumn" }, "default": false }, "canDeleteRow": { "type": "boolean", "required": false, "target": { "attribute": "candeleterow" }, "default": false }, "canDeleteTable": { "type": "boolean", "required": false, "target": { "attribute": "candeletetable" }, "default": false }, "canMergeCells": { "type": "boolean", "required": false, "target": { "attribute": "canmergecells" }, "default": false }, "canSplitCell": { "type": "boolean", "required": false, "target": { "attribute": "cansplitcell" }, "default": false }, "cellAlignment": { "type": { "enum": ["left", "center", "right"] }, "required": false, "target": { "attribute": "cellalignment" }, "default": "left" }, "cellBackground": { "type": "string", "required": false, "target": { "attribute": "cellbackground" }, "default": "" }, "open": { "type": "boolean", "required": false, "target": { "attribute": "open" }, "default": false } } }, "template": { "kind": "element", "name": "div", "attributes": [], "children": [] }, "declarations": [{ "kind": "event", "name": "looma-editor-table-action", "type": "object({ action: string })", "bubbles": true, "composed": true, "cancelable": false }], "root": { "kind": "native", "element": "div", "choices": ["div"] } }, source: { file: import.meta.url }, css: "" };
3195
+ const root = ref48();
3196
+ const eventListener0 = (event) => emit("looma-editor-table-action", event.detail);
3197
+ let detach;
3198
+ onMounted48(() => {
3199
+ if (root.value == null) return;
3200
+ detach = attachLoomaComponent37(root.value, definition, "ui-editor-table-toolbar", props);
3201
+ root.value.addEventListener("looma-editor-table-action", eventListener0);
3202
+ });
3203
+ watchEffect49(() => {
3204
+ if (root.value == null) return;
3205
+ for (const name of ["canAddColumnAfter", "canAddColumnBefore", "canAddRowAfter", "canAddRowBefore", "canDeleteColumn", "canDeleteRow", "canDeleteTable", "canMergeCells", "canSplitCell", "cellAlignment", "cellBackground", "open"]) root.value[name] = props[name];
3206
+ });
3207
+ onUnmounted48(() => {
3208
+ root.value?.removeEventListener("looma-editor-table-action", eventListener0);
3209
+ detach?.();
3210
+ });
3211
+ return (_ctx, _cache) => {
3212
+ return _openBlock48(), _createElementBlock48(
3213
+ "div",
3214
+ _mergeProps48(_ctx.$attrs, {
3215
+ "data-component": "ui-editor-table-toolbar",
3216
+ "data-component-root": "ui-editor-table-toolbar",
3217
+ "data-looma-managed": "framework",
3218
+ ref_key: "root",
3219
+ ref: root
3220
+ }),
3221
+ null,
3222
+ 16
3223
+ /* FULL_PROPS */
3224
+ );
3225
+ };
3226
+ }
3227
+ });
3228
+
3229
+ // src/generated/UiEditorToolbar.ts
3230
+ import { defineComponent as _defineComponent49 } from "vue";
3231
+ import { renderSlot as _renderSlot42, mergeProps as _mergeProps49, openBlock as _openBlock49, createElementBlock as _createElementBlock49 } from "vue";
3232
+ import { onMounted as onMounted49, onUnmounted as onUnmounted49, ref as ref49, watchEffect as watchEffect50 } from "vue";
3233
+ import { attachLoomaComponent as attachLoomaComponent38 } from "@threadlabs/looma/core/declarative";
3234
+ var UiEditorToolbar_default = /* @__PURE__ */ _defineComponent49({
3235
+ ...{ inheritAttrs: false },
3236
+ __name: "UiEditorToolbar",
3237
+ setup(__props) {
3238
+ const props = __props;
3239
+ const definition = { ...{ "contract": { "tag": "ui-editor-toolbar", "props": {} }, "template": { "kind": "element", "name": "div", "attributes": [], "children": [{ "kind": "slot" }] }, "declarations": [], "root": { "kind": "native", "element": "div", "choices": ["div"] } }, source: { file: import.meta.url }, css: "" };
3240
+ const root = ref49();
3241
+ let detach;
3242
+ onMounted49(() => {
3243
+ if (root.value == null) return;
3244
+ detach = attachLoomaComponent38(root.value, definition, "ui-editor-toolbar", props);
3245
+ });
3246
+ watchEffect50(() => {
3247
+ if (root.value == null) return;
3248
+ for (const name of []) root.value[name] = props[name];
3249
+ });
3250
+ onUnmounted49(() => {
3251
+ detach?.();
3252
+ });
3253
+ return (_ctx, _cache) => {
3254
+ return _openBlock49(), _createElementBlock49(
3255
+ "div",
3256
+ _mergeProps49(_ctx.$attrs, {
3257
+ "data-component": "ui-editor-toolbar",
3258
+ "data-component-root": "ui-editor-toolbar",
3259
+ "data-looma-managed": "framework",
3260
+ ref_key: "root",
3261
+ ref: root
3262
+ }),
3263
+ [
3264
+ _renderSlot42(_ctx.$slots, "default")
3265
+ ],
3266
+ 16
3267
+ /* FULL_PROPS */
3268
+ );
3269
+ };
3270
+ }
3271
+ });
3272
+
3273
+ // src/Combobox.ts
3274
+ import { defineComponent as defineComponent2, h as h2, shallowRef as shallowRef2, watch, watchEffect as watchEffect51 } from "vue";
3275
+ var Combobox = defineComponent2({
3276
+ name: "Combobox",
3277
+ inheritAttrs: false,
3278
+ props: {
3279
+ label: { type: String, required: true },
3280
+ modelValue: { type: [String, Array, null], default: void 0 },
3281
+ query: { type: String, default: void 0 },
3282
+ defaultValue: String,
3283
+ defaultQuery: String,
3284
+ config: { type: Object, default: () => ({}) },
3285
+ placeholder: String,
3286
+ name: String,
3287
+ size: { type: String, default: "md" },
3288
+ labelVisibility: { type: String, default: "visible" },
3289
+ disabled: Boolean,
3290
+ readOnly: Boolean,
3291
+ required: Boolean,
3292
+ disclosure: Boolean,
3293
+ clearable: Boolean,
3294
+ help: String,
3295
+ // Multiple mode: `modelValue` holds the selected item list and chips render before the cursor.
3296
+ multiple: Boolean,
3297
+ tokenSeparators: { type: Array, default: () => [] }
3298
+ },
3299
+ emits: {
3300
+ // Typed for single mode (v-model of `string | null`); multiple mode writes the
3301
+ // item array through the same channel (cast at the emit site below).
3302
+ "update:modelValue": (_value) => true,
3303
+ "update:query": (_query) => true,
3304
+ queryChange: (_detail) => true,
3305
+ valueChange: (_detail) => true,
3306
+ freeEntry: (_detail) => true,
3307
+ createEntry: (_detail) => true,
3308
+ dependencyInvalidate: (_detail) => true,
3309
+ validationChange: (_detail) => true,
3310
+ // Multiple mode item events.
3311
+ addItem: (_detail) => true,
3312
+ removeItem: (_detail) => true,
3313
+ createItem: (_detail) => true,
3314
+ optionsChange: (_detail) => true
3315
+ },
3316
+ slots: Object,
3317
+ setup(props, { attrs, slots, emit, expose }) {
3318
+ const element = shallowRef2();
3319
+ const rows = shallowRef2(props.config.options ?? []);
3320
+ const currentQuery = shallowRef2(props.query ?? props.defaultQuery ?? "");
3321
+ watch(() => props.query, (query) => {
3322
+ if (query !== void 0) currentQuery.value = query;
3323
+ });
3324
+ watchEffect51(() => {
3325
+ if (!element.value) return;
3326
+ element.value.config = props.config;
3327
+ element.value.value = props.modelValue;
3328
+ element.value.query = props.query;
3329
+ element.value.multiple = props.multiple;
3330
+ element.value.tokenSeparators = props.tokenSeparators;
3331
+ });
3332
+ expose({ validate: () => element.value.validate() });
3333
+ const items = () => props.multiple && Array.isArray(props.modelValue) ? props.modelValue : [];
3334
+ return () => h2(UiCombobox_default, {
3335
+ ...attrs,
3336
+ ...Object.fromEntries(Object.entries(props).filter(([key]) => !["modelValue", "config", "query", "tokenSeparators"].includes(key))),
3337
+ // Property binding is explicit for non-serializable config; strings remain
3338
+ // SSR-compatible attributes until the element upgrades.
3339
+ value: typeof props.modelValue === "string" || props.modelValue == null ? props.modelValue : [...props.modelValue],
3340
+ config: props.config,
3341
+ query: props.query,
3342
+ tokenSeparators: [...props.tokenSeparators],
3343
+ "data-allow-mismatch": "class",
3344
+ ref: (value) => {
3345
+ element.value = toHTMLElement(value);
3346
+ },
3347
+ class: attrs.class,
3348
+ "onOptions-change": (event) => {
3349
+ rows.value = event.detail;
3350
+ emit("optionsChange", event.detail);
3351
+ },
3352
+ "onQuery-change": (event) => {
3353
+ currentQuery.value = event.detail.query;
3354
+ emit("update:query", event.detail.query);
3355
+ emit("queryChange", event.detail);
3356
+ },
3357
+ "onValue-change": (event) => {
3358
+ emit("update:modelValue", props.multiple ? event.detail : event.detail.value);
3359
+ emit("valueChange", event.detail);
3360
+ },
3361
+ "onFree-entry": (event) => emit("freeEntry", event.detail),
3362
+ "onCreate-entry": (event) => emit("createEntry", event.detail),
3363
+ "onDependency-invalidate": (event) => emit("dependencyInvalidate", event.detail),
3364
+ "onValidation-change": (event) => emit("validationChange", event.detail),
3365
+ "onAdd-item": (event) => emit("addItem", event.detail),
3366
+ "onRemove-item": (event) => emit("removeItem", event.detail),
3367
+ "onCreate-item": (event) => emit("createItem", event.detail)
3368
+ }, [
3369
+ h2("label", { slot: "fallback" }, [props.label, h2("input", {
3370
+ value: props.query ?? props.defaultQuery ?? "",
3371
+ disabled: props.disabled,
3372
+ readonly: props.readOnly,
3373
+ required: props.required
3374
+ })]),
3375
+ ...slots.option ? rows.value.map((option) => h2("div", { slot: `option-${option.id}`, key: option.id }, slots.option({ option }))) : [],
3376
+ ...props.multiple && slots.item ? items().map((item) => h2("span", { slot: `item-${item.id}`, key: item.id }, slots.item({ item }))) : [],
3377
+ ...slots.create ? [h2("span", { slot: "create" }, slots.create({ query: currentQuery.value }))] : [],
3378
+ ...["start", "footer", "loading", "empty", "error"].flatMap((name) => slots[name] ? [h2("div", { slot: name }, slots[name]({}))] : [])
3379
+ ]);
3380
+ }
3381
+ });
3382
+
3383
+ // src/index.ts
3384
+ var Combobox2 = Combobox;
3385
+ var Stack = createAdapterComponent(UiStack_default, "Stack");
3386
+ var Inline = createAdapterComponent(UiInline_default, "Inline");
3387
+ var Cluster = createAdapterComponent(UiCluster_default, "Cluster");
3388
+ var Grid = createAdapterComponent(UiGrid_default, "Grid");
3389
+ var Center = createAdapterComponent(UiCenter_default, "Center");
3390
+ var Switcher = createAdapterComponent(UiSwitcher_default, "Switcher");
3391
+ var Sidebar = createAdapterComponent(UiSidebar_default, "Sidebar", [], "");
3392
+ var Reel = createAdapterComponent(UiReel_default, "Reel");
3393
+ var Separator = createAdapterComponent(UiSeparator_default, "Separator");
3394
+ var Disclosure = createAdapterComponent(UiDisclosure_default, "Disclosure", [], "class", ["open"]);
3395
+ var Editable = createAdapterComponent(UiEditable_default, "Editable", [["edit-change", "onEditChange"]], "class", ["edit"]);
3396
+ var Tabs = createAdapterComponent(UiTabs_default, "Tabs", [], "class", ["value"]);
3397
+ var Dialog = createAdapterComponent(UiDialog_default, "Dialog", [], "class", ["open"]);
3398
+ var Popover = createAdapterComponent(UiPopover_default, "Popover", [], "class", ["open"]);
3399
+ var Menu = createAdapterComponent(UiMenu_default, "Menu", [], "class", ["open"]);
3400
+ var MenuItem = createAdapterComponent(UiMenuItem_default, "MenuItem");
3401
+ var ContextMenu = createAdapterComponent(UiContextMenu_default, "ContextMenu", [], "class", ["open"]);
3402
+ var AffordanceScope = createAdapterComponent(UiAffordanceScope_default, "AffordanceScope");
3403
+ var Button = createAdapterComponent(UiButton_default, "Button");
3404
+ var IconButton = createAdapterComponent(UiIconButton_default, "IconButton");
3405
+ var Input = createAdapterComponent(UiInput_default, "Input", [], "class", ["value"]);
3406
+ var Select = createAdapterComponent(UiSelect_default, "Select", [], "class", ["value"]);
3407
+ var Textarea = createAdapterComponent(UiTextarea_default, "Textarea", [], "class", ["value"]);
3408
+ var FormField = createAdapterComponent(UiFormField_default, "FormField");
3409
+ var Tooltip = createAdapterComponent(UiTooltip_default, "Tooltip", [], "class", ["open"]);
3410
+ var ToastRegion = createAdapterComponent(UiToastRegion_default, "ToastRegion", [], "class", ["open"]);
3411
+ var Checkbox = createAdapterComponent(UiCheckbox_default, "Checkbox", [], "class", ["checked"]);
3412
+ var Switch = createAdapterComponent(UiSwitch_default, "Switch", [], "class", ["checked"]);
3413
+ var RadioGroup = createAdapterComponent(UiRadioGroup_default, "RadioGroup", [], "class", ["value"]);
3414
+ var Radio = createAdapterComponent(UiRadio_default, "Radio", [], "class", ["checked"]);
3415
+ var Badge = createAdapterComponent(UiBadge_default, "Badge");
3416
+ var Chip = createAdapterComponent(UiChip_default, "Chip");
3417
+ var Callout = createAdapterComponent(UiCallout_default, "Callout");
3418
+ var Avatar = createAdapterComponent(UiAvatar_default, "Avatar");
3419
+ var AvatarGroup = createAdapterComponent(UiAvatarGroup_default, "AvatarGroup");
3420
+ var FloatingActionButton = createAdapterComponent(
3421
+ UiFloatingActionButton_default,
3422
+ "FloatingActionButton"
3423
+ );
3424
+ var SearchShell = createAdapterComponent(UiSearchShell_default, "SearchShell");
3425
+ var SearchResultRow = createAdapterComponent(UiSearchResultRow_default, "SearchResultRow");
3426
+ var TopBar = createAdapterComponent(UiTopBar_default, "TopBar");
3427
+ var Tree = createAdapterComponent(UiTree_default, "Tree", [
3428
+ ["reorder", "onReorder"],
3429
+ ["reorder-rejected", "onReorderRejected"]
3430
+ ]);
3431
+ var TreeItem = createAdapterComponent(
3432
+ UiTreeItem_default,
3433
+ "TreeItem",
3434
+ [["expand", "onExpand"]],
3435
+ "class",
3436
+ ["expanded"]
3437
+ );
3438
+ var ADAPTER_COMPONENT_TAG_MAP = {
3439
+ Combobox: "ui-combobox",
3440
+ Stack: "ui-stack",
3441
+ Inline: "ui-inline",
3442
+ Cluster: "ui-cluster",
3443
+ Grid: "ui-grid",
3444
+ Center: "ui-center",
3445
+ Switcher: "ui-switcher",
3446
+ Sidebar: "ui-sidebar",
3447
+ Reel: "ui-reel",
3448
+ Separator: "ui-separator",
3449
+ Disclosure: "ui-disclosure",
3450
+ Editable: "ui-editable",
3451
+ Tabs: "ui-tabs",
3452
+ Dialog: "ui-dialog",
3453
+ Popover: "ui-popover",
3454
+ Menu: "ui-menu",
3455
+ MenuItem: "ui-menu-item",
3456
+ ContextMenu: "ui-context-menu",
3457
+ AffordanceScope: "ui-affordance-scope",
3458
+ Button: "ui-button",
3459
+ IconButton: "ui-icon-button",
3460
+ Input: "ui-input",
3461
+ Select: "ui-select",
3462
+ Textarea: "ui-textarea",
3463
+ FormField: "ui-form-field",
3464
+ Tooltip: "ui-tooltip",
3465
+ ToastRegion: "ui-toast-region",
3466
+ Checkbox: "ui-checkbox",
3467
+ Switch: "ui-switch",
3468
+ RadioGroup: "ui-radio-group",
3469
+ Radio: "ui-radio",
3470
+ Badge: "ui-badge",
3471
+ Chip: "ui-chip",
3472
+ Callout: "ui-callout",
3473
+ Avatar: "ui-avatar",
3474
+ AvatarGroup: "ui-avatar-group",
3475
+ FloatingActionButton: "ui-floating-action-button",
3476
+ SearchShell: "ui-search-shell",
3477
+ SearchResultRow: "ui-search-result-row",
3478
+ TopBar: "ui-top-bar",
3479
+ Tree: "ui-tree",
3480
+ TreeItem: "ui-tree-item"
3481
+ };
3482
+ var VUE_ADAPTER_NOTE = "Native-root adapter: attrs, slots, props, methods, and events project the framework-neutral Looma declarative contract into Vue.";
3483
+
3484
+ export {
3485
+ toHTMLElement,
3486
+ createAdapterComponent,
3487
+ UiEditorInsertTableGrid_default,
3488
+ UiEditorMentionMenu_default,
3489
+ UiEditorSlashMenu_default,
3490
+ UiEditorTableContextMenu_default,
3491
+ UiEditorTableOverlay_default,
3492
+ UiEditorTableToolbar_default,
3493
+ UiEditorToolbar_default,
3494
+ Combobox2 as Combobox,
3495
+ Stack,
3496
+ Inline,
3497
+ Cluster,
3498
+ Grid,
3499
+ Center,
3500
+ Switcher,
3501
+ Sidebar,
3502
+ Reel,
3503
+ Separator,
3504
+ Disclosure,
3505
+ Editable,
3506
+ Tabs,
3507
+ Dialog,
3508
+ Popover,
3509
+ Menu,
3510
+ MenuItem,
3511
+ ContextMenu,
3512
+ AffordanceScope,
3513
+ Button,
3514
+ IconButton,
3515
+ Input,
3516
+ Select,
3517
+ Textarea,
3518
+ FormField,
3519
+ Tooltip,
3520
+ ToastRegion,
3521
+ Checkbox,
3522
+ Switch,
3523
+ RadioGroup,
3524
+ Radio,
3525
+ Badge,
3526
+ Chip,
3527
+ Callout,
3528
+ Avatar,
3529
+ AvatarGroup,
3530
+ FloatingActionButton,
3531
+ SearchShell,
3532
+ SearchResultRow,
3533
+ TopBar,
3534
+ Tree,
3535
+ TreeItem,
3536
+ ADAPTER_COMPONENT_TAG_MAP,
3537
+ VUE_ADAPTER_NOTE
3538
+ };