@threadlabs/looma 0.1.22 → 0.1.24

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 (326) hide show
  1. package/dist/chunk-HNFCGIBP.js +8 -0
  2. package/dist/{chunk-NIPNHZ5W.js → chunk-IMHSPETJ.js} +65 -31
  3. package/dist/chunk-NB6DBRXQ.js +323 -0
  4. package/dist/{chunk-SZJQ3NPX.js → chunk-TL4FIE7X.js} +4 -8
  5. package/dist/cjs/controlled-state-BFya8rAX.js +9 -0
  6. package/dist/cjs/icons-BAdjrnhS.js +680 -0
  7. package/dist/cjs/{index-D07f6BOw.js → index-BHG9Rpil.js} +33 -0
  8. package/dist/cjs/loader.cjs.js +2 -2
  9. package/dist/cjs/looma.cjs.js +2 -2
  10. package/dist/cjs/{manager-C9j3HZay.js → manager-Ce25WRtl.js} +6 -7
  11. package/dist/cjs/ui-affordance-scope.cjs.entry.js +2 -2
  12. package/dist/cjs/ui-avatar-group.cjs.entry.js +10 -18
  13. package/dist/cjs/ui-avatar.cjs.entry.js +3 -3
  14. package/dist/cjs/ui-badge.cjs.entry.js +3 -3
  15. package/dist/cjs/ui-button.cjs.entry.js +16 -5
  16. package/dist/cjs/ui-callout.cjs.entry.js +27 -0
  17. package/dist/cjs/ui-checkbox.cjs.entry.js +14 -8
  18. package/dist/cjs/ui-chip.cjs.entry.js +19 -0
  19. package/dist/cjs/ui-combobox.cjs.entry.js +541 -0
  20. package/dist/cjs/ui-context-menu.cjs.entry.js +3 -3
  21. package/dist/cjs/ui-dialog.cjs.entry.js +46 -10
  22. package/dist/cjs/ui-disclosure.cjs.entry.js +10 -7
  23. package/dist/cjs/ui-floating-action-button.cjs.entry.js +2 -2
  24. package/dist/cjs/ui-form-field.cjs.entry.js +61 -6
  25. package/dist/cjs/ui-icon-button.cjs.entry.js +2 -2
  26. package/dist/cjs/ui-input.cjs.entry.js +11 -6
  27. package/dist/cjs/ui-menu-item.cjs.entry.js +3 -3
  28. package/dist/cjs/ui-menu.cjs.entry.js +16 -11
  29. package/dist/cjs/ui-popover.cjs.entry.js +12 -9
  30. package/dist/cjs/ui-radio-group.cjs.entry.js +2 -2
  31. package/dist/cjs/ui-radio.cjs.entry.js +18 -9
  32. package/dist/cjs/ui-search-result-row.cjs.entry.js +2 -2
  33. package/dist/cjs/ui-search-shell.cjs.entry.js +2 -2
  34. package/dist/cjs/ui-select.cjs.entry.js +15 -7
  35. package/dist/cjs/ui-switch.cjs.entry.js +20 -11
  36. package/dist/cjs/ui-tabs.cjs.entry.js +11 -10
  37. package/dist/cjs/ui-textarea.cjs.entry.js +10 -6
  38. package/dist/cjs/ui-toast-region.cjs.entry.js +31 -20
  39. package/dist/cjs/ui-tooltip.cjs.entry.js +63 -23
  40. package/dist/cjs/ui-top-bar.cjs.entry.js +2 -2
  41. package/dist/cjs/ui-tree-item.cjs.entry.js +57 -616
  42. package/dist/cjs/ui-tree.cjs.entry.js +198 -14
  43. package/dist/collection/collection-manifest.json +3 -0
  44. package/dist/collection/components/ui-affordance-scope/ui-affordance-scope.js +1 -1
  45. package/dist/collection/components/ui-avatar/ui-avatar.css +4 -4
  46. package/dist/collection/components/ui-avatar/ui-avatar.js +1 -1
  47. package/dist/collection/components/ui-avatar-group/ui-avatar-group.css +2 -2
  48. package/dist/collection/components/ui-avatar-group/ui-avatar-group.js +8 -16
  49. package/dist/collection/components/ui-badge/ui-badge.css +64 -48
  50. package/dist/collection/components/ui-badge/ui-badge.js +1 -1
  51. package/dist/collection/components/ui-button/ui-button.css +36 -26
  52. package/dist/collection/components/ui-button/ui-button.js +14 -3
  53. package/dist/collection/components/ui-callout/ui-callout.css +74 -0
  54. package/dist/collection/components/ui-callout/ui-callout.js +59 -0
  55. package/dist/collection/components/ui-checkbox/ui-checkbox.js +16 -11
  56. package/dist/collection/components/ui-chip/ui-chip.css +43 -0
  57. package/dist/collection/components/ui-chip/ui-chip.js +45 -0
  58. package/dist/collection/components/ui-combobox/ui-combobox.css +24 -0
  59. package/dist/collection/components/ui-combobox/ui-combobox.js +973 -0
  60. package/dist/collection/components/ui-context-menu/ui-context-menu.js +1 -1
  61. package/dist/collection/components/ui-dialog/ui-dialog.js +49 -13
  62. package/dist/collection/components/ui-disclosure/ui-disclosure.js +12 -10
  63. package/dist/collection/components/ui-floating-action-button/ui-floating-action-button.js +1 -1
  64. package/dist/collection/components/ui-form-field/ui-form-field.css +4 -0
  65. package/dist/collection/components/ui-form-field/ui-form-field.js +59 -4
  66. package/dist/collection/components/ui-icon-button/ui-icon-button.js +1 -1
  67. package/dist/collection/components/ui-input/ui-input.css +8 -6
  68. package/dist/collection/components/ui-input/ui-input.js +11 -7
  69. package/dist/collection/components/ui-menu/ui-menu.css +12 -23
  70. package/dist/collection/components/ui-menu/ui-menu.js +16 -12
  71. package/dist/collection/components/ui-menu-item/ui-menu-item.css +9 -3
  72. package/dist/collection/components/ui-menu-item/ui-menu-item.js +1 -1
  73. package/dist/collection/components/ui-popover/ui-popover.css +14 -5
  74. package/dist/collection/components/ui-popover/ui-popover.js +12 -10
  75. package/dist/collection/components/ui-radio/ui-radio.js +25 -12
  76. package/dist/collection/components/ui-radio-group/ui-radio-group.js +1 -1
  77. package/dist/collection/components/ui-search-result-row/ui-search-result-row.js +1 -1
  78. package/dist/collection/components/ui-search-shell/ui-search-shell.js +1 -1
  79. package/dist/collection/components/ui-select/ui-select.css +8 -6
  80. package/dist/collection/components/ui-select/ui-select.js +17 -11
  81. package/dist/collection/components/ui-switch/ui-switch.js +22 -14
  82. package/dist/collection/components/ui-tabs/ui-tabs.js +13 -13
  83. package/dist/collection/components/ui-textarea/ui-textarea.css +7 -6
  84. package/dist/collection/components/ui-textarea/ui-textarea.js +10 -7
  85. package/dist/collection/components/ui-toast-region/ui-toast-region.js +30 -19
  86. package/dist/collection/components/ui-tooltip/ui-tooltip.css +16 -7
  87. package/dist/collection/components/ui-tooltip/ui-tooltip.js +115 -25
  88. package/dist/collection/components/ui-top-bar/ui-top-bar.js +1 -1
  89. package/dist/collection/components/ui-tree/ui-tree.css +2 -1
  90. package/dist/collection/components/ui-tree/ui-tree.js +216 -12
  91. package/dist/collection/components/ui-tree-item/ui-tree-item.js +84 -25
  92. package/dist/collection/field/combobox.js +4 -0
  93. package/dist/collection/field/valibot.js +5 -0
  94. package/dist/collection/field/validation.js +62 -0
  95. package/dist/collection/icons.js +6 -1
  96. package/dist/collection/overlay/manager.js +6 -7
  97. package/dist/collection/utils/controlled-state.js +4 -0
  98. package/dist/components/index.d.ts +6 -0
  99. package/dist/components/index.js +1 -1
  100. package/dist/components/p-Bh_1GxOD.js +1 -0
  101. package/dist/components/p-Bk55QiUK.js +1 -0
  102. package/dist/components/p-BnGhGgTH.js +1 -0
  103. package/dist/components/p-C-0syqXZ.js +1 -0
  104. package/dist/components/p-CoFximGM.js +13 -0
  105. package/dist/components/p-DIGcRYAW.js +1 -0
  106. package/dist/components/ui-affordance-scope.js +1 -1
  107. package/dist/components/ui-avatar-group.js +1 -1
  108. package/dist/components/ui-avatar.js +1 -1
  109. package/dist/components/ui-badge.js +1 -1
  110. package/dist/components/ui-button.js +1 -1
  111. package/dist/components/ui-callout.d.ts +11 -0
  112. package/dist/components/ui-callout.js +1 -0
  113. package/dist/components/ui-checkbox.js +1 -1
  114. package/dist/components/ui-chip.d.ts +11 -0
  115. package/dist/components/ui-chip.js +1 -0
  116. package/dist/components/ui-combobox.d.ts +11 -0
  117. package/dist/components/ui-combobox.js +1 -0
  118. package/dist/components/ui-context-menu.js +1 -1
  119. package/dist/components/ui-dialog.js +1 -1
  120. package/dist/components/ui-disclosure.js +1 -1
  121. package/dist/components/ui-floating-action-button.js +1 -1
  122. package/dist/components/ui-form-field.js +1 -1
  123. package/dist/components/ui-icon-button.js +1 -1
  124. package/dist/components/ui-input.js +1 -1
  125. package/dist/components/ui-menu-item.js +1 -1
  126. package/dist/components/ui-menu.js +1 -1
  127. package/dist/components/ui-popover.js +1 -1
  128. package/dist/components/ui-radio-group.js +1 -1
  129. package/dist/components/ui-radio.js +1 -1
  130. package/dist/components/ui-search-result-row.js +1 -1
  131. package/dist/components/ui-search-shell.js +1 -1
  132. package/dist/components/ui-select.js +1 -1
  133. package/dist/components/ui-switch.js +1 -1
  134. package/dist/components/ui-tabs.js +1 -1
  135. package/dist/components/ui-textarea.js +1 -1
  136. package/dist/components/ui-toast-region.js +1 -1
  137. package/dist/components/ui-tooltip.js +1 -1
  138. package/dist/components/ui-top-bar.js +1 -1
  139. package/dist/components/ui-tree-item.js +1 -13
  140. package/dist/components/ui-tree.js +1 -1
  141. package/dist/esm/controlled-state-BnGhGgTH.js +6 -0
  142. package/dist/esm/icons-CoFximGM.js +678 -0
  143. package/dist/esm/{index-CEeiinfk.js → index-8BGiMGQ0.js} +33 -1
  144. package/dist/esm/loader.js +3 -3
  145. package/dist/esm/looma.js +3 -3
  146. package/dist/esm/{manager-PM9a74r7.js → manager-C-0syqXZ.js} +6 -7
  147. package/dist/esm/ui-affordance-scope.entry.js +2 -2
  148. package/dist/esm/ui-avatar-group.entry.js +10 -18
  149. package/dist/esm/ui-avatar.entry.js +3 -3
  150. package/dist/esm/ui-badge.entry.js +3 -3
  151. package/dist/esm/ui-button.entry.js +16 -5
  152. package/dist/esm/ui-callout.entry.js +25 -0
  153. package/dist/esm/ui-checkbox.entry.js +14 -8
  154. package/dist/esm/ui-chip.entry.js +17 -0
  155. package/dist/esm/ui-combobox.entry.js +539 -0
  156. package/dist/esm/ui-context-menu.entry.js +3 -3
  157. package/dist/esm/ui-dialog.entry.js +46 -10
  158. package/dist/esm/ui-disclosure.entry.js +10 -7
  159. package/dist/esm/ui-floating-action-button.entry.js +2 -2
  160. package/dist/esm/ui-form-field.entry.js +61 -6
  161. package/dist/esm/ui-icon-button.entry.js +2 -2
  162. package/dist/esm/ui-input.entry.js +11 -6
  163. package/dist/esm/ui-menu-item.entry.js +3 -3
  164. package/dist/esm/ui-menu.entry.js +16 -11
  165. package/dist/esm/ui-popover.entry.js +12 -9
  166. package/dist/esm/ui-radio-group.entry.js +2 -2
  167. package/dist/esm/ui-radio.entry.js +18 -9
  168. package/dist/esm/ui-search-result-row.entry.js +2 -2
  169. package/dist/esm/ui-search-shell.entry.js +2 -2
  170. package/dist/esm/ui-select.entry.js +15 -7
  171. package/dist/esm/ui-switch.entry.js +20 -11
  172. package/dist/esm/ui-tabs.entry.js +11 -10
  173. package/dist/esm/ui-textarea.entry.js +10 -6
  174. package/dist/esm/ui-toast-region.entry.js +31 -20
  175. package/dist/esm/ui-tooltip.entry.js +63 -23
  176. package/dist/esm/ui-top-bar.entry.js +2 -2
  177. package/dist/esm/ui-tree-item.entry.js +57 -616
  178. package/dist/esm/ui-tree.entry.js +198 -14
  179. package/dist/index.cjs +2012 -870
  180. package/dist/index.d.cts +109 -1
  181. package/dist/index.d.ts +109 -1
  182. package/dist/index.js +72 -8
  183. package/dist/looma/looma.esm.js +1 -1
  184. package/dist/looma/p-03f44c45.entry.js +1 -0
  185. package/dist/looma/p-08f80207.entry.js +1 -0
  186. package/dist/looma/p-13f8195a.entry.js +1 -0
  187. package/dist/looma/{p-d273b857.entry.js → p-25e18ad6.entry.js} +1 -1
  188. package/dist/looma/p-2c03fa73.entry.js +1 -0
  189. package/dist/looma/p-314d5c7c.entry.js +1 -0
  190. package/dist/looma/{p-2ed7e241.entry.js → p-3ef2a21b.entry.js} +1 -1
  191. package/dist/looma/{p-063f5a89.entry.js → p-5a900d89.entry.js} +1 -1
  192. package/dist/looma/p-5fdcee1d.entry.js +1 -0
  193. package/dist/looma/{p-0198bb21.entry.js → p-672e3d16.entry.js} +1 -1
  194. package/dist/looma/p-68430534.entry.js +1 -0
  195. package/dist/looma/{p-2e6f791e.entry.js → p-72338f53.entry.js} +1 -1
  196. package/dist/looma/p-7ab661ec.entry.js +1 -0
  197. package/dist/looma/p-7c4a225f.entry.js +1 -0
  198. package/dist/looma/p-82f2fa3d.entry.js +1 -0
  199. package/dist/looma/p-839faf55.entry.js +1 -0
  200. package/dist/looma/p-8BGiMGQ0.js +2 -0
  201. package/dist/looma/p-8e254bc4.entry.js +1 -0
  202. package/dist/looma/p-8e6b1001.entry.js +1 -0
  203. package/dist/looma/p-920656cf.entry.js +1 -0
  204. package/dist/looma/p-97e8cb0e.entry.js +1 -0
  205. package/dist/looma/p-9d2662ca.entry.js +1 -0
  206. package/dist/looma/p-9e1c4020.entry.js +1 -0
  207. package/dist/looma/p-BnGhGgTH.js +1 -0
  208. package/dist/looma/p-C-0syqXZ.js +1 -0
  209. package/dist/looma/p-CoFximGM.js +13 -0
  210. package/dist/looma/{p-051f578c.entry.js → p-a63e2561.entry.js} +1 -1
  211. package/dist/looma/p-add67e4c.entry.js +1 -0
  212. package/dist/looma/p-b63f6d4f.entry.js +1 -0
  213. package/dist/looma/p-bd00d4e8.entry.js +1 -0
  214. package/dist/looma/p-cc915913.entry.js +1 -0
  215. package/dist/looma/p-cfba8f7c.entry.js +1 -0
  216. package/dist/looma/p-d56571a2.entry.js +1 -0
  217. package/dist/looma/{p-7e94d90d.entry.js → p-e0f241ab.entry.js} +1 -1
  218. package/dist/looma/p-f1750fd7.entry.js +1 -0
  219. package/dist/looma/p-fd1e4d22.entry.js +1 -0
  220. package/dist/types/components/ui-avatar-group/ui-avatar-group.d.ts +1 -2
  221. package/dist/types/components/ui-callout/ui-callout.d.ts +6 -0
  222. package/dist/types/components/ui-checkbox/ui-checkbox.d.ts +2 -1
  223. package/dist/types/components/ui-chip/ui-chip.d.ts +6 -0
  224. package/dist/types/components/ui-combobox/ui-combobox.d.ts +93 -0
  225. package/dist/types/components/ui-dialog/ui-dialog.d.ts +7 -1
  226. package/dist/types/components/ui-disclosure/ui-disclosure.d.ts +2 -1
  227. package/dist/types/components/ui-form-field/ui-form-field.d.ts +8 -0
  228. package/dist/types/components/ui-input/ui-input.d.ts +1 -1
  229. package/dist/types/components/ui-menu/ui-menu.d.ts +2 -1
  230. package/dist/types/components/ui-popover/ui-popover.d.ts +2 -1
  231. package/dist/types/components/ui-radio/ui-radio.d.ts +4 -1
  232. package/dist/types/components/ui-select/ui-select.d.ts +3 -2
  233. package/dist/types/components/ui-switch/ui-switch.d.ts +2 -1
  234. package/dist/types/components/ui-tabs/ui-tabs.d.ts +2 -1
  235. package/dist/types/components/ui-textarea/ui-textarea.d.ts +1 -1
  236. package/dist/types/components/ui-toast-region/ui-toast-region.d.ts +3 -1
  237. package/dist/types/components/ui-tooltip/ui-tooltip.d.ts +20 -2
  238. package/dist/types/components/ui-tree/ui-tree.d.ts +21 -1
  239. package/dist/types/components/ui-tree-item/ui-tree-item.d.ts +13 -5
  240. package/dist/types/components.d.ts +366 -71
  241. package/dist/types/field/combobox.d.ts +46 -0
  242. package/dist/types/field/valibot.d.ts +7 -0
  243. package/dist/types/field/validation.d.ts +56 -0
  244. package/dist/types/icons.d.ts +5 -0
  245. package/dist/types/utils/controlled-state.d.ts +4 -0
  246. package/dist/{ui-affordance-scope.entry-L533MECG.js → ui-affordance-scope.entry-3TUZ6GLW.js} +2 -2
  247. package/dist/ui-avatar-group.entry-XGJKN25W.js +51 -0
  248. package/dist/{ui-avatar.entry-3INAY3XP.js → ui-avatar.entry-SN3G44HW.js} +3 -3
  249. package/dist/ui-badge.entry-B6WDCWJX.js +22 -0
  250. package/dist/ui-button.entry-AZYUELLV.js +80 -0
  251. package/dist/ui-callout.entry-QRPWRMPC.js +32 -0
  252. package/dist/{ui-checkbox.entry-2PTBHSCQ.js → ui-checkbox.entry-OB6GFC4M.js} +17 -8
  253. package/dist/ui-chip.entry-XSNPJXX3.js +22 -0
  254. package/dist/ui-combobox.entry-IIMMUJF7.js +553 -0
  255. package/dist/{ui-context-menu.entry-AYDDCIZS.js → ui-context-menu.entry-AIULIE5Y.js} +3 -3
  256. package/dist/{ui-dialog.entry-I2XI3ZTZ.js → ui-dialog.entry-QSYWYHLY.js} +48 -10
  257. package/dist/{ui-disclosure.entry-5LY2BT7B.js → ui-disclosure.entry-3BJEYU3U.js} +13 -7
  258. package/dist/{ui-floating-action-button.entry-EJAMR5AM.js → ui-floating-action-button.entry-JEVNV6FI.js} +2 -2
  259. package/dist/ui-form-field.entry-PKSY7UU4.js +120 -0
  260. package/dist/{ui-icon-button.entry-7SD2LVXE.js → ui-icon-button.entry-TPX7BE7R.js} +2 -2
  261. package/dist/{ui-input.entry-7MM7GEQW.js → ui-input.entry-6NCLNW4E.js} +8 -6
  262. package/dist/ui-menu-item.entry-KA2K3PKV.js +22 -0
  263. package/dist/{ui-menu.entry-R4WK5QSX.js → ui-menu.entry-7GDO5L2T.js} +19 -11
  264. package/dist/{ui-popover.entry-ZRJRTXA7.js → ui-popover.entry-FR6YRNK6.js} +15 -9
  265. package/dist/{ui-radio-group.entry-S6RXHFSN.js → ui-radio-group.entry-7QHXQSNO.js} +2 -2
  266. package/dist/{ui-radio.entry-B73QZK2M.js → ui-radio.entry-YNMXKLDW.js} +21 -9
  267. package/dist/{ui-search-result-row.entry-DR2Y5S7P.js → ui-search-result-row.entry-AHVVAAIO.js} +2 -2
  268. package/dist/{ui-search-shell.entry-ST5IKJBC.js → ui-search-shell.entry-CNBEAMEZ.js} +2 -2
  269. package/dist/{ui-select.entry-7GPRFV67.js → ui-select.entry-TUY6TCTC.js} +13 -7
  270. package/dist/{ui-switch.entry-XQ5IRJRH.js → ui-switch.entry-26LFI7B5.js} +23 -11
  271. package/dist/{ui-tabs.entry-HPW5L5CY.js → ui-tabs.entry-LXB62RJJ.js} +14 -10
  272. package/dist/{ui-textarea.entry-W2PSRYVS.js → ui-textarea.entry-JYGMGPX2.js} +8 -6
  273. package/dist/{ui-toast-region.entry-FJUHFXKZ.js → ui-toast-region.entry-TOW4KZLZ.js} +29 -20
  274. package/dist/{ui-tooltip.entry-G5WHQW7K.js → ui-tooltip.entry-SKFNYXPH.js} +68 -25
  275. package/dist/{ui-top-bar.entry-3NCHFC4Y.js → ui-top-bar.entry-S3YP52EA.js} +2 -2
  276. package/dist/ui-tree-item.entry-LWYIPYLC.js +145 -0
  277. package/dist/{ui-tree.entry-SZW4Q5PY.js → ui-tree.entry-LXKUQFRU.js} +184 -13
  278. package/dist/valibot.d.ts +52 -0
  279. package/dist/valibot.js +7 -0
  280. package/editor/{chunk-QCOYOVQL.js → chunk-B5WVJOPV.js} +113 -97
  281. package/editor/extensions/index.d.ts +14 -6
  282. package/editor/extensions/index.js +1 -1
  283. package/editor/index.js +1 -1
  284. package/editor.css +37 -20
  285. package/package.json +11 -3
  286. package/styles.css +46 -20
  287. package/theme-high-contrast.css +12 -0
  288. package/tokens.css +26 -0
  289. package/vue/{chunk-5KWCMTXB.js → chunk-D4AJULDE.js} +116 -17
  290. package/vue/editor/index.d.ts +5 -15
  291. package/vue/editor/index.js +1 -1
  292. package/vue/index.d.ts +447 -115
  293. package/vue/index.js +7 -1
  294. package/dist/components/p-CEYIKqYc.js +0 -1
  295. package/dist/components/p-CIA4RyEp.js +0 -1
  296. package/dist/components/p-PM9a74r7.js +0 -1
  297. package/dist/looma/p-0584a051.entry.js +0 -1
  298. package/dist/looma/p-078f9fb8.entry.js +0 -1
  299. package/dist/looma/p-0f45c5f0.entry.js +0 -1
  300. package/dist/looma/p-11083743.entry.js +0 -1
  301. package/dist/looma/p-1674cda4.entry.js +0 -1
  302. package/dist/looma/p-1681b218.entry.js +0 -1
  303. package/dist/looma/p-34417499.entry.js +0 -1
  304. package/dist/looma/p-4b422d40.entry.js +0 -1
  305. package/dist/looma/p-54722713.entry.js +0 -13
  306. package/dist/looma/p-54c41576.entry.js +0 -1
  307. package/dist/looma/p-5ba9d496.entry.js +0 -1
  308. package/dist/looma/p-5d4713a6.entry.js +0 -1
  309. package/dist/looma/p-624ba086.entry.js +0 -1
  310. package/dist/looma/p-8d5adb17.entry.js +0 -1
  311. package/dist/looma/p-9194a99d.entry.js +0 -1
  312. package/dist/looma/p-CEeiinfk.js +0 -2
  313. package/dist/looma/p-PM9a74r7.js +0 -1
  314. package/dist/looma/p-a33522a2.entry.js +0 -1
  315. package/dist/looma/p-a5127c7d.entry.js +0 -1
  316. package/dist/looma/p-a9f46811.entry.js +0 -1
  317. package/dist/looma/p-b7aa4488.entry.js +0 -1
  318. package/dist/looma/p-caa8fc7b.entry.js +0 -1
  319. package/dist/looma/p-e3f99a24.entry.js +0 -1
  320. package/dist/looma/p-ed5abf6d.entry.js +0 -1
  321. package/dist/ui-avatar-group.entry-BWS7E2CM.js +0 -59
  322. package/dist/ui-badge.entry-2WOBVOYP.js +0 -22
  323. package/dist/ui-button.entry-VCGSEONK.js +0 -71
  324. package/dist/ui-form-field.entry-SJ6NNFXB.js +0 -67
  325. package/dist/ui-menu-item.entry-V3HIMR75.js +0 -22
  326. package/dist/ui-tree-item.entry-45RR3CMP.js +0 -385
@@ -1,607 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-D07f6BOw.js');
3
+ var index = require('./index-BHG9Rpil.js');
4
4
  var events = require('./events-TcQIzpNv.js');
5
-
6
- /**
7
- * @license lucide v0.554.0 - ISC
8
- *
9
- * This source code is licensed under the ISC license.
10
- * See the LICENSE file in the root directory of this source tree.
11
- */
12
-
13
- const Bold = [
14
- ["path", { d: "M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8" }]
15
- ];
16
-
17
- /**
18
- * @license lucide v0.554.0 - ISC
19
- *
20
- * This source code is licensed under the ISC license.
21
- * See the LICENSE file in the root directory of this source tree.
22
- */
23
-
24
- const Braces = [
25
- ["path", { d: "M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1" }],
26
- ["path", { d: "M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1" }]
27
- ];
28
-
29
- /**
30
- * @license lucide v0.554.0 - ISC
31
- *
32
- * This source code is licensed under the ISC license.
33
- * See the LICENSE file in the root directory of this source tree.
34
- */
35
-
36
- const ChevronDown = [["path", { d: "m6 9 6 6 6-6" }]];
37
-
38
- /**
39
- * @license lucide v0.554.0 - ISC
40
- *
41
- * This source code is licensed under the ISC license.
42
- * See the LICENSE file in the root directory of this source tree.
43
- */
44
-
45
- const ChevronLeft = [["path", { d: "m15 18-6-6 6-6" }]];
46
-
47
- /**
48
- * @license lucide v0.554.0 - ISC
49
- *
50
- * This source code is licensed under the ISC license.
51
- * See the LICENSE file in the root directory of this source tree.
52
- */
53
-
54
- const CodeXml = [
55
- ["path", { d: "m18 16 4-4-4-4" }],
56
- ["path", { d: "m6 8-4 4 4 4" }],
57
- ["path", { d: "m14.5 4-5 16" }]
58
- ];
59
-
60
- /**
61
- * @license lucide v0.554.0 - ISC
62
- *
63
- * This source code is licensed under the ISC license.
64
- * See the LICENSE file in the root directory of this source tree.
65
- */
66
-
67
- const Columns3 = [
68
- ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2" }],
69
- ["path", { d: "M9 3v18" }],
70
- ["path", { d: "M15 3v18" }]
71
- ];
72
-
73
- /**
74
- * @license lucide v0.554.0 - ISC
75
- *
76
- * This source code is licensed under the ISC license.
77
- * See the LICENSE file in the root directory of this source tree.
78
- */
79
-
80
- const Ellipsis = [
81
- ["circle", { cx: "12", cy: "12", r: "1" }],
82
- ["circle", { cx: "19", cy: "12", r: "1" }],
83
- ["circle", { cx: "5", cy: "12", r: "1" }]
84
- ];
85
-
86
- /**
87
- * @license lucide v0.554.0 - ISC
88
- *
89
- * This source code is licensed under the ISC license.
90
- * See the LICENSE file in the root directory of this source tree.
91
- */
92
-
93
- const Eraser = [
94
- [
95
- "path",
96
- {
97
- d: "M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21"
98
- }
99
- ],
100
- ["path", { d: "m5.082 11.09 8.828 8.828" }]
101
- ];
102
-
103
- /**
104
- * @license lucide v0.554.0 - ISC
105
- *
106
- * This source code is licensed under the ISC license.
107
- * See the LICENSE file in the root directory of this source tree.
108
- */
109
-
110
- const GripHorizontal = [
111
- ["circle", { cx: "12", cy: "9", r: "1" }],
112
- ["circle", { cx: "19", cy: "9", r: "1" }],
113
- ["circle", { cx: "5", cy: "9", r: "1" }],
114
- ["circle", { cx: "12", cy: "15", r: "1" }],
115
- ["circle", { cx: "19", cy: "15", r: "1" }],
116
- ["circle", { cx: "5", cy: "15", r: "1" }]
117
- ];
118
-
119
- /**
120
- * @license lucide v0.554.0 - ISC
121
- *
122
- * This source code is licensed under the ISC license.
123
- * See the LICENSE file in the root directory of this source tree.
124
- */
125
-
126
- const GripVertical = [
127
- ["circle", { cx: "9", cy: "12", r: "1" }],
128
- ["circle", { cx: "9", cy: "5", r: "1" }],
129
- ["circle", { cx: "9", cy: "19", r: "1" }],
130
- ["circle", { cx: "15", cy: "12", r: "1" }],
131
- ["circle", { cx: "15", cy: "5", r: "1" }],
132
- ["circle", { cx: "15", cy: "19", r: "1" }]
133
- ];
134
-
135
- /**
136
- * @license lucide v0.554.0 - ISC
137
- *
138
- * This source code is licensed under the ISC license.
139
- * See the LICENSE file in the root directory of this source tree.
140
- */
141
-
142
- const Heading1 = [
143
- ["path", { d: "M4 12h8" }],
144
- ["path", { d: "M4 18V6" }],
145
- ["path", { d: "M12 18V6" }],
146
- ["path", { d: "m17 12 3-2v8" }]
147
- ];
148
-
149
- /**
150
- * @license lucide v0.554.0 - ISC
151
- *
152
- * This source code is licensed under the ISC license.
153
- * See the LICENSE file in the root directory of this source tree.
154
- */
155
-
156
- const Heading2 = [
157
- ["path", { d: "M4 12h8" }],
158
- ["path", { d: "M4 18V6" }],
159
- ["path", { d: "M12 18V6" }],
160
- ["path", { d: "M21 18h-4c0-4 4-3 4-6 0-1.5-2-2.5-4-1" }]
161
- ];
162
-
163
- /**
164
- * @license lucide v0.554.0 - ISC
165
- *
166
- * This source code is licensed under the ISC license.
167
- * See the LICENSE file in the root directory of this source tree.
168
- */
169
-
170
- const Heading3 = [
171
- ["path", { d: "M4 12h8" }],
172
- ["path", { d: "M4 18V6" }],
173
- ["path", { d: "M12 18V6" }],
174
- ["path", { d: "M17.5 10.5c1.7-1 3.5 0 3.5 1.5a2 2 0 0 1-2 2" }],
175
- ["path", { d: "M17 17.5c2 1.5 4 .3 4-1.5a2 2 0 0 0-2-2" }]
176
- ];
177
-
178
- /**
179
- * @license lucide v0.554.0 - ISC
180
- *
181
- * This source code is licensed under the ISC license.
182
- * See the LICENSE file in the root directory of this source tree.
183
- */
184
-
185
- const Highlighter = [
186
- ["path", { d: "m9 11-6 6v3h9l3-3" }],
187
- ["path", { d: "m22 12-4.6 4.6a2 2 0 0 1-2.8 0l-5.2-5.2a2 2 0 0 1 0-2.8L14 4" }]
188
- ];
189
-
190
- /**
191
- * @license lucide v0.554.0 - ISC
192
- *
193
- * This source code is licensed under the ISC license.
194
- * See the LICENSE file in the root directory of this source tree.
195
- */
196
-
197
- const Image = [
198
- ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2" }],
199
- ["circle", { cx: "9", cy: "9", r: "2" }],
200
- ["path", { d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21" }]
201
- ];
202
-
203
- /**
204
- * @license lucide v0.554.0 - ISC
205
- *
206
- * This source code is licensed under the ISC license.
207
- * See the LICENSE file in the root directory of this source tree.
208
- */
209
-
210
- const Italic = [
211
- ["line", { x1: "19", x2: "10", y1: "4", y2: "4" }],
212
- ["line", { x1: "14", x2: "5", y1: "20", y2: "20" }],
213
- ["line", { x1: "15", x2: "9", y1: "4", y2: "20" }]
214
- ];
215
-
216
- /**
217
- * @license lucide v0.554.0 - ISC
218
- *
219
- * This source code is licensed under the ISC license.
220
- * See the LICENSE file in the root directory of this source tree.
221
- */
222
-
223
- const ListOrdered = [
224
- ["path", { d: "M11 5h10" }],
225
- ["path", { d: "M11 12h10" }],
226
- ["path", { d: "M11 19h10" }],
227
- ["path", { d: "M4 4h1v5" }],
228
- ["path", { d: "M4 9h2" }],
229
- ["path", { d: "M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02" }]
230
- ];
231
-
232
- /**
233
- * @license lucide v0.554.0 - ISC
234
- *
235
- * This source code is licensed under the ISC license.
236
- * See the LICENSE file in the root directory of this source tree.
237
- */
238
-
239
- const ListTodo = [
240
- ["path", { d: "M13 5h8" }],
241
- ["path", { d: "M13 12h8" }],
242
- ["path", { d: "M13 19h8" }],
243
- ["path", { d: "m3 17 2 2 4-4" }],
244
- ["rect", { x: "3", y: "4", width: "6", height: "6", rx: "1" }]
245
- ];
246
-
247
- /**
248
- * @license lucide v0.554.0 - ISC
249
- *
250
- * This source code is licensed under the ISC license.
251
- * See the LICENSE file in the root directory of this source tree.
252
- */
253
-
254
- const List = [
255
- ["path", { d: "M3 5h.01" }],
256
- ["path", { d: "M3 12h.01" }],
257
- ["path", { d: "M3 19h.01" }],
258
- ["path", { d: "M8 5h13" }],
259
- ["path", { d: "M8 12h13" }],
260
- ["path", { d: "M8 19h13" }]
261
- ];
262
-
263
- /**
264
- * @license lucide v0.554.0 - ISC
265
- *
266
- * This source code is licensed under the ISC license.
267
- * See the LICENSE file in the root directory of this source tree.
268
- */
269
-
270
- const Merge = [
271
- ["path", { d: "m8 6 4-4 4 4" }],
272
- ["path", { d: "M12 2v10.3a4 4 0 0 1-1.172 2.872L4 22" }],
273
- ["path", { d: "m20 22-5-5" }]
274
- ];
275
-
276
- /**
277
- * @license lucide v0.554.0 - ISC
278
- *
279
- * This source code is licensed under the ISC license.
280
- * See the LICENSE file in the root directory of this source tree.
281
- */
282
-
283
- const Minus = [["path", { d: "M5 12h14" }]];
284
-
285
- /**
286
- * @license lucide v0.554.0 - ISC
287
- *
288
- * This source code is licensed under the ISC license.
289
- * See the LICENSE file in the root directory of this source tree.
290
- */
291
-
292
- const PaintBucket = [
293
- ["path", { d: "m19 11-8-8-8.6 8.6a2 2 0 0 0 0 2.8l5.2 5.2c.8.8 2 .8 2.8 0L19 11Z" }],
294
- ["path", { d: "m5 2 5 5" }],
295
- ["path", { d: "M2 13h15" }],
296
- ["path", { d: "M22 20a2 2 0 1 1-4 0c0-1.6 1.7-2.4 2-4 .3 1.6 2 2.4 2 4Z" }]
297
- ];
298
-
299
- /**
300
- * @license lucide v0.554.0 - ISC
301
- *
302
- * This source code is licensed under the ISC license.
303
- * See the LICENSE file in the root directory of this source tree.
304
- */
305
-
306
- const PanelBottom = [
307
- ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2" }],
308
- ["path", { d: "M3 15h18" }]
309
- ];
310
-
311
- /**
312
- * @license lucide v0.554.0 - ISC
313
- *
314
- * This source code is licensed under the ISC license.
315
- * See the LICENSE file in the root directory of this source tree.
316
- */
317
-
318
- const PanelLeft = [
319
- ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2" }],
320
- ["path", { d: "M9 3v18" }]
321
- ];
322
-
323
- /**
324
- * @license lucide v0.554.0 - ISC
325
- *
326
- * This source code is licensed under the ISC license.
327
- * See the LICENSE file in the root directory of this source tree.
328
- */
329
-
330
- const PanelRight = [
331
- ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2" }],
332
- ["path", { d: "M15 3v18" }]
333
- ];
334
-
335
- /**
336
- * @license lucide v0.554.0 - ISC
337
- *
338
- * This source code is licensed under the ISC license.
339
- * See the LICENSE file in the root directory of this source tree.
340
- */
341
-
342
- const PanelTop = [
343
- ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2" }],
344
- ["path", { d: "M3 9h18" }]
345
- ];
346
-
347
- /**
348
- * @license lucide v0.554.0 - ISC
349
- *
350
- * This source code is licensed under the ISC license.
351
- * See the LICENSE file in the root directory of this source tree.
352
- */
353
-
354
- const Pilcrow = [
355
- ["path", { d: "M13 4v16" }],
356
- ["path", { d: "M17 4v16" }],
357
- ["path", { d: "M19 4H9.5a4.5 4.5 0 0 0 0 9H13" }]
358
- ];
359
-
360
- /**
361
- * @license lucide v0.554.0 - ISC
362
- *
363
- * This source code is licensed under the ISC license.
364
- * See the LICENSE file in the root directory of this source tree.
365
- */
366
-
367
- const Plus = [
368
- ["path", { d: "M5 12h14" }],
369
- ["path", { d: "M12 5v14" }]
370
- ];
371
-
372
- /**
373
- * @license lucide v0.554.0 - ISC
374
- *
375
- * This source code is licensed under the ISC license.
376
- * See the LICENSE file in the root directory of this source tree.
377
- */
378
-
379
- const Quote = [
380
- [
381
- "path",
382
- {
383
- d: "M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z"
384
- }
385
- ],
386
- [
387
- "path",
388
- {
389
- d: "M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z"
390
- }
391
- ]
392
- ];
393
-
394
- /**
395
- * @license lucide v0.554.0 - ISC
396
- *
397
- * This source code is licensed under the ISC license.
398
- * See the LICENSE file in the root directory of this source tree.
399
- */
400
-
401
- const Redo2 = [
402
- ["path", { d: "m15 14 5-5-5-5" }],
403
- ["path", { d: "M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13" }]
404
- ];
405
-
406
- /**
407
- * @license lucide v0.554.0 - ISC
408
- *
409
- * This source code is licensed under the ISC license.
410
- * See the LICENSE file in the root directory of this source tree.
411
- */
412
-
413
- const Rows3 = [
414
- ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2" }],
415
- ["path", { d: "M21 9H3" }],
416
- ["path", { d: "M21 15H3" }]
417
- ];
418
-
419
- /**
420
- * @license lucide v0.554.0 - ISC
421
- *
422
- * This source code is licensed under the ISC license.
423
- * See the LICENSE file in the root directory of this source tree.
424
- */
425
-
426
- const Split = [
427
- ["path", { d: "M16 3h5v5" }],
428
- ["path", { d: "M8 3H3v5" }],
429
- ["path", { d: "M12 22v-8.3a4 4 0 0 0-1.172-2.872L3 3" }],
430
- ["path", { d: "m15 9 6-6" }]
431
- ];
432
-
433
- /**
434
- * @license lucide v0.554.0 - ISC
435
- *
436
- * This source code is licensed under the ISC license.
437
- * See the LICENSE file in the root directory of this source tree.
438
- */
439
-
440
- const Strikethrough = [
441
- ["path", { d: "M16 4H9a3 3 0 0 0-2.83 4" }],
442
- ["path", { d: "M14 12a4 4 0 0 1 0 8H6" }],
443
- ["line", { x1: "4", x2: "20", y1: "12", y2: "12" }]
444
- ];
445
-
446
- /**
447
- * @license lucide v0.554.0 - ISC
448
- *
449
- * This source code is licensed under the ISC license.
450
- * See the LICENSE file in the root directory of this source tree.
451
- */
452
-
453
- const Table2 = [
454
- [
455
- "path",
456
- {
457
- d: "M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18"
458
- }
459
- ]
460
- ];
461
-
462
- /**
463
- * @license lucide v0.554.0 - ISC
464
- *
465
- * This source code is licensed under the ISC license.
466
- * See the LICENSE file in the root directory of this source tree.
467
- */
468
-
469
- const TextAlignCenter = [
470
- ["path", { d: "M21 5H3" }],
471
- ["path", { d: "M17 12H7" }],
472
- ["path", { d: "M19 19H5" }]
473
- ];
474
-
475
- /**
476
- * @license lucide v0.554.0 - ISC
477
- *
478
- * This source code is licensed under the ISC license.
479
- * See the LICENSE file in the root directory of this source tree.
480
- */
481
-
482
- const TextAlignEnd = [
483
- ["path", { d: "M21 5H3" }],
484
- ["path", { d: "M21 12H9" }],
485
- ["path", { d: "M21 19H7" }]
486
- ];
487
-
488
- /**
489
- * @license lucide v0.554.0 - ISC
490
- *
491
- * This source code is licensed under the ISC license.
492
- * See the LICENSE file in the root directory of this source tree.
493
- */
494
-
495
- const TextAlignStart = [
496
- ["path", { d: "M21 5H3" }],
497
- ["path", { d: "M15 12H3" }],
498
- ["path", { d: "M17 19H3" }]
499
- ];
500
-
501
- /**
502
- * @license lucide v0.554.0 - ISC
503
- *
504
- * This source code is licensed under the ISC license.
505
- * See the LICENSE file in the root directory of this source tree.
506
- */
507
-
508
- const Trash2 = [
509
- ["path", { d: "M10 11v6" }],
510
- ["path", { d: "M14 11v6" }],
511
- ["path", { d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6" }],
512
- ["path", { d: "M3 6h18" }],
513
- ["path", { d: "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" }]
514
- ];
515
-
516
- /**
517
- * @license lucide v0.554.0 - ISC
518
- *
519
- * This source code is licensed under the ISC license.
520
- * See the LICENSE file in the root directory of this source tree.
521
- */
522
-
523
- const Underline = [
524
- ["path", { d: "M6 4v6a6 6 0 0 0 12 0V4" }],
525
- ["line", { x1: "4", x2: "20", y1: "20", y2: "20" }]
526
- ];
527
-
528
- /**
529
- * @license lucide v0.554.0 - ISC
530
- *
531
- * This source code is licensed under the ISC license.
532
- * See the LICENSE file in the root directory of this source tree.
533
- */
534
-
535
- const Undo2 = [
536
- ["path", { d: "M9 14 4 9l5-5" }],
537
- ["path", { d: "M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11" }]
538
- ];
539
-
540
- /** The opinionated Lucide set used by Looma's shipped interaction surfaces. */
541
- const LOOMA_ICONS = {
542
- 'align-center': TextAlignCenter,
543
- 'align-left': TextAlignStart,
544
- 'align-right': TextAlignEnd,
545
- bold: Bold,
546
- braces: Braces,
547
- 'chevron-down': ChevronDown,
548
- 'chevron-left': ChevronLeft,
549
- 'code-xml': CodeXml,
550
- columns: Columns3,
551
- ellipsis: Ellipsis,
552
- eraser: Eraser,
553
- 'grip-horizontal': GripHorizontal,
554
- 'grip-vertical': GripVertical,
555
- 'heading-1': Heading1,
556
- 'heading-2': Heading2,
557
- 'heading-3': Heading3,
558
- highlighter: Highlighter,
559
- image: Image,
560
- italic: Italic,
561
- list: List,
562
- 'list-ordered': ListOrdered,
563
- 'list-todo': ListTodo,
564
- merge: Merge,
565
- minus: Minus,
566
- 'paint-bucket': PaintBucket,
567
- 'panel-bottom': PanelBottom,
568
- 'panel-left': PanelLeft,
569
- 'panel-right': PanelRight,
570
- 'panel-top': PanelTop,
571
- pilcrow: Pilcrow,
572
- plus: Plus,
573
- quote: Quote,
574
- redo: Redo2,
575
- rows: Rows3,
576
- split: Split,
577
- strikethrough: Strikethrough,
578
- table: Table2,
579
- trash: Trash2,
580
- underline: Underline,
581
- undo: Undo2,
582
- };
583
- function serializeAttributes(attributes) {
584
- return Object.entries(attributes)
585
- .map(([name, value]) => ` ${name}="${escapeAttribute(value)}"`)
586
- .join('');
587
- }
588
- function escapeAttribute(value) {
589
- return String(value).replaceAll('&', '&').replaceAll('"', '"');
590
- }
591
- function serializeIconNode(node) {
592
- const [tag, attributes] = node;
593
- return `<${tag}${serializeAttributes(attributes)}></${tag}>`;
594
- }
595
- /** Creates consistent, currentColor-driven SVG markup for framework-neutral components. */
596
- function loomaIconMarkup(name, className = 'looma-icon') {
597
- return [
598
- `<svg class="${escapeAttribute(className)}" data-looma-icon="${name}" aria-hidden="true" focusable="false"`,
599
- ' viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"',
600
- ' stroke-linecap="round" stroke-linejoin="round">',
601
- LOOMA_ICONS[name].map(serializeIconNode).join(''),
602
- '</svg>',
603
- ].join('');
604
- }
5
+ var icons = require('./icons-BAdjrnhS.js');
605
6
 
606
7
  const uiTreeItemCss = () => `:host{--ui-tree-indent:16px;--ui-tree-row-min-height:32px;--ui-tree-drop-color:var(--ui-accent-solid);position:relative;display:block;min-inline-size:0;margin-inline-start:calc(var(--ui-tree-item-depth, 0) * var(--ui-tree-indent))}.row{position:relative;display:grid;grid-template-columns:20px auto minmax(0, 1fr) auto;align-items:center;min-block-size:var(--ui-tree-row-min-height);min-inline-size:0;font-size:var(--ui-tree-font-size, var(--ui-font-size-ui, 0.9375rem));border-radius:var(--ui-radius-md);color:var(--ui-text-secondary);transition:background-color var(--ui-motion-fast) var(--ui-motion-ease), color var(--ui-motion-fast) var(--ui-motion-ease), opacity var(--ui-motion-fast) var(--ui-motion-ease), box-shadow var(--ui-motion-fast) var(--ui-motion-ease), min-block-size var(--ui-motion-base) var(--ui-motion-ease)}.row:hover,:host([data-selected]) .row,.row:focus-within{color:var(--ui-text-primary);background:var(--ui-surface-muted)}:host([data-disabled]) .row{opacity:0.55}:host([data-dragging]) .row{opacity:0.42}:host(:focus){outline:none}:host(:focus-visible) .row{box-shadow:0 0 0 2px var(--ui-focus-ring)}:host([data-drop-position='inside']) .row{background:var(--ui-accent-subtle);box-shadow:inset 0 0 0 1px var(--ui-tree-drop-color)}.disclosure,.disclosure-spacer{grid-column:1;grid-row:1;inline-size:20px;block-size:28px}.disclosure{display:grid;place-items:center;padding:0;color:var(--ui-text-muted);background:transparent;border:0;border-radius:var(--ui-radius-sm);cursor:pointer}.disclosure:hover{color:var(--ui-text-primary);background:var(--ui-surface-elevated)}.disclosure-icon{display:block;inline-size:14px;block-size:14px;transform:rotate(-90deg);transition:transform var(--ui-motion-fast) var(--ui-motion-ease)}.disclosure-icon--expanded{transform:rotate(0deg)}.disclosure-icon :is(svg),.drag-handle :is(svg){display:block;inline-size:100%;block-size:100%}.leading{display:none}.leading:has(*){display:inline-grid;place-items:center;grid-column:2;grid-row:1;inline-size:16px;block-size:16px;margin-inline-start:var(--ui-space-1)}.label{grid-column:3;grid-row:1;min-inline-size:0;padding:var(--ui-space-1) var(--ui-space-2)}.actions{grid-column:4;grid-row:1;display:inline-flex;align-items:center;min-inline-size:0}.drag-handle{position:absolute;z-index:2;inset-block-start:50%;inset-inline-start:-22px;inline-size:20px;block-size:32px;display:grid;place-items:center;padding:7px 3px;color:var(--ui-text-muted);background:var(--ui-surface-elevated);border:1px solid transparent;border-radius:var(--ui-radius-sm);cursor:grab;opacity:0;pointer-events:none;transform:translateY(-50%);transition:opacity var(--ui-motion-fast) var(--ui-motion-ease)}.row:hover .drag-handle,.drag-handle:focus-visible,:host([data-dragging]) .drag-handle{opacity:1;pointer-events:auto}.drag-handle:active{cursor:grabbing}.drop-indicator{position:absolute;z-index:3;inset-inline:1px;display:none;block-size:2px;border-radius:999px;background:var(--ui-tree-drop-color);pointer-events:none}.drop-indicator::before,.drop-indicator::after{content:'';position:absolute;inset-block-start:50%;inline-size:7px;block-size:7px;border:2px solid var(--ui-tree-drop-color);border-radius:999px;background:var(--ui-surface-elevated);transform:translateY(-50%)}.drop-indicator::before{inset-inline-start:-1px}.drop-indicator::after{inset-inline-end:-1px}:host([data-drop-position='before']) .row-drop-indicator{display:block;inset-block-start:-1px}:host([data-drop-position='after']) .subtree-drop-indicator{display:block;inset-block-end:-1px}.children[hidden]{display:none}:host-context(html[data-ui-input-modality='touch']){--ui-tree-row-min-height:44px}:host-context(html[data-ui-input-modality='touch']) .drag-handle{display:none}@media (prefers-reduced-motion: reduce){.row,.disclosure-icon,.drag-handle{transition:none}}`;
607
8
 
@@ -614,8 +15,10 @@ const UITreeItem = class {
614
15
  itemId = '';
615
16
  /** Accessible name used by the disclosure and drag handle. */
616
17
  label = '';
617
- /** One-based visual and semantic nesting level. */
618
- depth = 1;
18
+ /** Application hierarchy depth override used for drop constraints. Defaults to structural nesting. */
19
+ dropDepth;
20
+ /** Virtualized-tree descendant-depth override for the tree's max-depth drop constraint. */
21
+ subtreeDepth;
619
22
  /** Whether this item accepts children and exposes disclosure behavior. */
620
23
  container = false;
621
24
  /** Whether this item participates in pointer drag and drop. */
@@ -626,37 +29,74 @@ const UITreeItem = class {
626
29
  dropScope = '';
627
30
  /** Comma-separated drag kinds accepted as children. Empty accepts every kind. */
628
31
  accepts = '';
629
- /** Initial controlled expansion value. */
630
- expanded = false;
32
+ /** Controlled expansion value. When omitted, `default-expanded` initializes uncontrolled state. */
33
+ expanded;
631
34
  /** Initial uncontrolled expansion value. */
632
35
  defaultExpanded = false;
633
36
  selected = false;
634
37
  disabled = false;
635
38
  internalExpanded = false;
39
+ structuralLevel = 1;
40
+ tabStop = false;
636
41
  syncExpandedFromProp() {
637
- this.internalExpanded = this.expanded;
42
+ // A defined prop owns the rendered state; clearing it resumes the current
43
+ // uncontrolled state instead of replaying the initial default.
44
+ if (this.expanded !== undefined)
45
+ this.internalExpanded = this.expanded;
638
46
  }
639
47
  componentWillLoad() {
640
- this.internalExpanded = this.expanded || this.defaultExpanded;
48
+ this.internalExpanded = this.expanded ?? this.defaultExpanded;
49
+ this.updateStructuralLevel();
641
50
  }
642
- componentDidLoad() {
51
+ connectedCallback() {
643
52
  this.host.addEventListener('ui-tree-auto-expand', this.onAutoExpand);
53
+ this.host.addEventListener('ui-tree-structure-sync', this.updateStructuralLevel);
54
+ this.host.addEventListener('ui-tree-roving-tab-stop', this.onRovingTabStop);
55
+ this.host.addEventListener('ui-tree-request-expanded', this.onExpansionRequest);
644
56
  }
645
57
  disconnectedCallback() {
646
58
  this.host.removeEventListener('ui-tree-auto-expand', this.onAutoExpand);
59
+ this.host.removeEventListener('ui-tree-structure-sync', this.updateStructuralLevel);
60
+ this.host.removeEventListener('ui-tree-roving-tab-stop', this.onRovingTabStop);
61
+ this.host.removeEventListener('ui-tree-request-expanded', this.onExpansionRequest);
647
62
  }
63
+ updateStructuralLevel = () => {
64
+ const tree = this.host.closest('ui-tree');
65
+ let ancestor = this.host.parentElement?.closest('ui-tree-item') ?? null;
66
+ let level = 1;
67
+ while (ancestor && tree?.contains(ancestor)) {
68
+ level += 1;
69
+ ancestor = ancestor.parentElement?.closest('ui-tree-item') ?? null;
70
+ }
71
+ if (this.structuralLevel !== level)
72
+ this.structuralLevel = level;
73
+ };
648
74
  setExpanded(expanded, trigger) {
649
- if (!this.container || this.disabled || this.internalExpanded === expanded)
75
+ const current = this.isExpanded();
76
+ if (!this.container || this.disabled || current === expanded)
650
77
  return;
651
- this.internalExpanded = expanded;
78
+ if (this.expanded === undefined)
79
+ this.internalExpanded = expanded;
652
80
  events.dispatchDetail(this.host, 'expand', { id: this.itemId, expanded, trigger });
81
+ this.host.dispatchEvent(new CustomEvent('ui-tree-expansion-change'));
82
+ }
83
+ isExpanded() {
84
+ return this.expanded ?? this.internalExpanded;
653
85
  }
654
86
  onAutoExpand = () => {
655
87
  this.setExpanded(true, 'pointer');
656
88
  };
89
+ onRovingTabStop = (event) => {
90
+ this.tabStop = Boolean(event.detail?.active) && !this.disabled;
91
+ };
92
+ onExpansionRequest = (event) => {
93
+ const detail = event.detail;
94
+ if (typeof detail?.expanded === 'boolean')
95
+ this.setExpanded(detail.expanded, detail.trigger ?? 'keyboard');
96
+ };
657
97
  onDisclosureClick = (event) => {
658
98
  event.stopPropagation();
659
- this.setExpanded(!this.internalExpanded, events.eventToTrigger(event));
99
+ this.setExpanded(!this.isExpanded(), events.eventToTrigger(event));
660
100
  };
661
101
  onDisclosureKeydown = (event) => {
662
102
  if (event.key !== 'ArrowRight' && event.key !== 'ArrowLeft')
@@ -672,16 +112,17 @@ const UITreeItem = class {
672
112
  const interactive = path.some((node) => node instanceof HTMLElement && (node.matches('a, button, input, select, textarea, [role="button"], [role="link"]')
673
113
  || node.getAttribute('slot') === 'actions'));
674
114
  if (!interactive)
675
- this.setExpanded(!this.internalExpanded, events.eventToTrigger(event));
115
+ this.setExpanded(!this.isExpanded(), events.eventToTrigger(event));
676
116
  };
677
117
  render() {
678
- const level = Math.max(1, Math.floor(this.depth));
679
- const disclosureLabel = `${this.internalExpanded ? 'Collapse' : 'Expand'} ${this.label || 'item'}`;
118
+ const level = this.structuralLevel;
119
+ const expanded = this.isExpanded();
120
+ const disclosureLabel = `${expanded ? 'Collapse' : 'Expand'} ${this.label || 'item'}`;
680
121
  const dragLabel = `Drag ${this.label || 'item'} to reorder`;
681
- return (index.h(index.Host, { key: 'ea8ed538aa3883c87257a25614a066965364693f', role: "treeitem", "aria-level": String(level), "aria-expanded": this.container ? String(this.internalExpanded) : undefined, "aria-selected": String(this.selected), "aria-disabled": this.disabled ? 'true' : undefined, "data-container": this.container ? '' : undefined, "data-selected": this.selected ? '' : undefined, "data-disabled": this.disabled ? '' : undefined, "data-drag-type": this.dragType || 'item', "data-drop-scope": this.dropScope || undefined, "data-accepts": this.accepts || undefined, tabIndex: this.disabled ? -1 : 0, style: {
122
+ return (index.h(index.Host, { key: '36ad9eac3e0fe2a606e63294891b1c0697034b46', role: "treeitem", "aria-label": this.label || undefined, "aria-level": String(level), "aria-expanded": this.container ? String(expanded) : undefined, "aria-selected": String(this.selected), "aria-disabled": this.disabled ? 'true' : undefined, "data-container": this.container ? '' : undefined, "data-selected": this.selected ? '' : undefined, "data-disabled": this.disabled ? '' : undefined, "data-drag-type": this.dragType || 'item', "data-drop-scope": this.dropScope || undefined, "data-accepts": this.accepts || undefined, tabIndex: this.disabled || !this.tabStop ? -1 : 0, style: {
682
123
  '--ui-tree-item-depth': String(level - 1),
683
124
  'margin-inline-start': level > 1 ? 'var(--ui-tree-indent, 16px)' : '0px',
684
- } }, index.h("div", { key: '740b93aa47e65d8a1cb899d4b9c966d9ad1d456f', class: "row", part: "row", onClick: this.onRowClick }, this.sortable && !this.disabled ? (index.h("button", { class: "drag-handle", part: "drag-handle", type: "button", draggable: true, "aria-label": dragLabel, title: dragLabel }, index.h("span", { innerHTML: loomaIconMarkup('grip-vertical') }))) : null, this.container ? (index.h("button", { class: "disclosure", part: "disclosure", type: "button", "aria-label": disclosureLabel, "aria-expanded": String(this.internalExpanded), disabled: this.disabled, onClick: this.onDisclosureClick, onKeyDown: this.onDisclosureKeydown }, index.h("span", { class: { 'disclosure-icon': true, 'disclosure-icon--expanded': this.internalExpanded }, innerHTML: loomaIconMarkup('chevron-down') }))) : index.h("span", { class: "disclosure-spacer", "aria-hidden": "true" }), index.h("span", { key: '37e1b7f1cdddf623734becef465ffde83d8b86f2', class: "leading", part: "leading" }, index.h("slot", { key: '0ab3a60c98628f009918d0d720772154912d2709', name: "leading" })), index.h("span", { key: 'defdd343f25a0f4354110e981f3889e1d09c27ee', class: "label", part: "label" }, index.h("slot", { key: 'bde46ccacc1a620348062fc300503c4f1736316b' })), index.h("span", { key: 'caff9ada38c41be90aeb6e331f4c54a51f31d26c', class: "actions", part: "actions" }, index.h("slot", { key: 'e11704d6871445c91eaa29c99302d8b751be69d3', name: "actions" })), index.h("span", { key: '9efc0e95588f1dd4527dade2b7ff9f2774462c2e', class: "drop-indicator row-drop-indicator", part: "drop-indicator", "aria-hidden": "true" })), this.container ? (index.h("div", { class: "children", part: "children", role: "group", hidden: !this.internalExpanded }, index.h("slot", { name: "children" }))) : null, index.h("span", { key: '8893ec2c4082bb8af942ef563055a2910d0d4201', class: "drop-indicator subtree-drop-indicator", part: "drop-indicator", "aria-hidden": "true" })));
125
+ } }, index.h("div", { key: 'e92f5bc73accef3b348559ea144e0b769c98c721', class: "row", part: "row", onClick: this.onRowClick }, this.sortable && !this.disabled ? (index.h("button", { class: "drag-handle", part: "drag-handle", type: "button", draggable: true, "aria-label": dragLabel, title: dragLabel }, index.h("span", { innerHTML: icons.loomaIconMarkup('grip-vertical') }))) : null, this.container ? (index.h("button", { class: "disclosure", part: "disclosure", type: "button", "aria-label": disclosureLabel, "aria-expanded": String(expanded), disabled: this.disabled, onClick: this.onDisclosureClick, onKeyDown: this.onDisclosureKeydown }, index.h("span", { class: { 'disclosure-icon': true, 'disclosure-icon--expanded': expanded }, innerHTML: icons.loomaIconMarkup('chevron-down') }))) : index.h("span", { class: "disclosure-spacer", "aria-hidden": "true" }), index.h("span", { key: 'dd2d0550d6846d0a4f80a4108968bfc32c18658f', class: "leading", part: "leading" }, index.h("slot", { key: '622d449a338dce57bc2e64aaf776471e8d3ce1b4', name: "leading" })), index.h("span", { key: '29c3e6ace4838ab941ada2547356288358faaeb2', class: "label", part: "label" }, index.h("slot", { key: 'f1594c11fa0b9fbe8a3c20df6edce19421cab148' })), index.h("span", { key: 'e4a6408f86b58a325145e713d116fc09322bb0d3', class: "actions", part: "actions" }, index.h("slot", { key: 'ff3afaf1089426e19ee1fc39c6567c3d40ca4272', name: "actions" })), index.h("span", { key: 'efcf23f7aad6c4353fa24bfe2a81001122335f72', class: "drop-indicator row-drop-indicator", part: "drop-indicator", "aria-hidden": "true" })), this.container ? (index.h("div", { class: "children", part: "children", role: "group", hidden: !expanded }, index.h("slot", { name: "children" }))) : null, index.h("span", { key: '21bfc8a6ad6e487cd044b5a3cbd7e8f900f2d1e1', class: "drop-indicator subtree-drop-indicator", part: "drop-indicator", "aria-hidden": "true" })));
685
126
  }
686
127
  static get watchers() { return {
687
128
  "expanded": [{