@threadlabs/looma 0.1.23 → 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 (287) hide show
  1. package/dist/chunk-HNFCGIBP.js +8 -0
  2. package/dist/{chunk-GDMQKT5F.js → chunk-IMHSPETJ.js} +32 -30
  3. package/dist/chunk-NB6DBRXQ.js +323 -0
  4. package/dist/cjs/controlled-state-BFya8rAX.js +9 -0
  5. package/dist/cjs/icons-BAdjrnhS.js +680 -0
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/cjs/looma.cjs.js +1 -1
  8. package/dist/cjs/ui-affordance-scope.cjs.entry.js +1 -1
  9. package/dist/cjs/ui-avatar-group.cjs.entry.js +9 -17
  10. package/dist/cjs/ui-avatar.cjs.entry.js +2 -2
  11. package/dist/cjs/ui-badge.cjs.entry.js +2 -2
  12. package/dist/cjs/ui-button.cjs.entry.js +1 -1
  13. package/dist/cjs/ui-callout.cjs.entry.js +27 -0
  14. package/dist/cjs/ui-checkbox.cjs.entry.js +13 -7
  15. package/dist/cjs/ui-chip.cjs.entry.js +19 -0
  16. package/dist/cjs/ui-combobox.cjs.entry.js +3 -3
  17. package/dist/cjs/ui-context-menu.cjs.entry.js +1 -1
  18. package/dist/cjs/ui-dialog.cjs.entry.js +44 -8
  19. package/dist/cjs/ui-disclosure.cjs.entry.js +9 -6
  20. package/dist/cjs/ui-floating-action-button.cjs.entry.js +1 -1
  21. package/dist/cjs/ui-form-field.cjs.entry.js +59 -4
  22. package/dist/cjs/ui-icon-button.cjs.entry.js +1 -1
  23. package/dist/cjs/ui-input.cjs.entry.js +1 -1
  24. package/dist/cjs/ui-menu-item.cjs.entry.js +2 -2
  25. package/dist/cjs/ui-menu.cjs.entry.js +14 -9
  26. package/dist/cjs/ui-popover.cjs.entry.js +10 -7
  27. package/dist/cjs/ui-radio-group.cjs.entry.js +1 -1
  28. package/dist/cjs/ui-radio.cjs.entry.js +16 -7
  29. package/dist/cjs/ui-search-result-row.cjs.entry.js +1 -1
  30. package/dist/cjs/ui-search-shell.cjs.entry.js +1 -1
  31. package/dist/cjs/ui-select.cjs.entry.js +1 -1
  32. package/dist/cjs/ui-switch.cjs.entry.js +19 -10
  33. package/dist/cjs/ui-tabs.cjs.entry.js +10 -9
  34. package/dist/cjs/ui-textarea.cjs.entry.js +1 -1
  35. package/dist/cjs/ui-toast-region.cjs.entry.js +30 -19
  36. package/dist/cjs/ui-tooltip.cjs.entry.js +12 -8
  37. package/dist/cjs/ui-top-bar.cjs.entry.js +1 -1
  38. package/dist/cjs/ui-tree-item.cjs.entry.js +54 -617
  39. package/dist/cjs/ui-tree.cjs.entry.js +123 -11
  40. package/dist/collection/collection-manifest.json +2 -0
  41. package/dist/collection/components/ui-affordance-scope/ui-affordance-scope.js +1 -1
  42. package/dist/collection/components/ui-avatar/ui-avatar.css +4 -4
  43. package/dist/collection/components/ui-avatar/ui-avatar.js +1 -1
  44. package/dist/collection/components/ui-avatar-group/ui-avatar-group.css +2 -2
  45. package/dist/collection/components/ui-avatar-group/ui-avatar-group.js +8 -16
  46. package/dist/collection/components/ui-badge/ui-badge.css +64 -48
  47. package/dist/collection/components/ui-badge/ui-badge.js +1 -1
  48. package/dist/collection/components/ui-button/ui-button.js +1 -1
  49. package/dist/collection/components/ui-callout/ui-callout.css +74 -0
  50. package/dist/collection/components/ui-callout/ui-callout.js +59 -0
  51. package/dist/collection/components/ui-checkbox/ui-checkbox.js +16 -11
  52. package/dist/collection/components/ui-chip/ui-chip.css +43 -0
  53. package/dist/collection/components/ui-chip/ui-chip.js +45 -0
  54. package/dist/collection/components/ui-combobox/ui-combobox.js +3 -3
  55. package/dist/collection/components/ui-context-menu/ui-context-menu.js +1 -1
  56. package/dist/collection/components/ui-dialog/ui-dialog.js +49 -13
  57. package/dist/collection/components/ui-disclosure/ui-disclosure.js +12 -10
  58. package/dist/collection/components/ui-floating-action-button/ui-floating-action-button.js +1 -1
  59. package/dist/collection/components/ui-form-field/ui-form-field.js +59 -4
  60. package/dist/collection/components/ui-icon-button/ui-icon-button.js +1 -1
  61. package/dist/collection/components/ui-input/ui-input.js +1 -1
  62. package/dist/collection/components/ui-menu/ui-menu.css +12 -23
  63. package/dist/collection/components/ui-menu/ui-menu.js +16 -12
  64. package/dist/collection/components/ui-menu-item/ui-menu-item.css +9 -3
  65. package/dist/collection/components/ui-menu-item/ui-menu-item.js +1 -1
  66. package/dist/collection/components/ui-popover/ui-popover.css +14 -5
  67. package/dist/collection/components/ui-popover/ui-popover.js +12 -10
  68. package/dist/collection/components/ui-radio/ui-radio.js +24 -11
  69. package/dist/collection/components/ui-radio-group/ui-radio-group.js +1 -1
  70. package/dist/collection/components/ui-search-result-row/ui-search-result-row.js +1 -1
  71. package/dist/collection/components/ui-search-shell/ui-search-shell.js +1 -1
  72. package/dist/collection/components/ui-select/ui-select.js +1 -1
  73. package/dist/collection/components/ui-switch/ui-switch.js +22 -14
  74. package/dist/collection/components/ui-tabs/ui-tabs.js +13 -13
  75. package/dist/collection/components/ui-textarea/ui-textarea.js +1 -1
  76. package/dist/collection/components/ui-toast-region/ui-toast-region.js +30 -19
  77. package/dist/collection/components/ui-tooltip/ui-tooltip.css +16 -7
  78. package/dist/collection/components/ui-tooltip/ui-tooltip.js +14 -11
  79. package/dist/collection/components/ui-top-bar/ui-top-bar.js +1 -1
  80. package/dist/collection/components/ui-tree/ui-tree.css +2 -1
  81. package/dist/collection/components/ui-tree/ui-tree.js +122 -10
  82. package/dist/collection/components/ui-tree-item/ui-tree-item.js +61 -44
  83. package/dist/collection/icons.js +6 -1
  84. package/dist/collection/utils/controlled-state.js +4 -0
  85. package/dist/components/index.d.ts +4 -0
  86. package/dist/components/index.js +1 -1
  87. package/dist/components/p-Bk55QiUK.js +1 -0
  88. package/dist/components/p-BnGhGgTH.js +1 -0
  89. package/dist/components/p-CoFximGM.js +13 -0
  90. package/dist/components/p-DIGcRYAW.js +1 -0
  91. package/dist/components/ui-affordance-scope.js +1 -1
  92. package/dist/components/ui-avatar-group.js +1 -1
  93. package/dist/components/ui-avatar.js +1 -1
  94. package/dist/components/ui-badge.js +1 -1
  95. package/dist/components/ui-button.js +1 -1
  96. package/dist/components/ui-callout.d.ts +11 -0
  97. package/dist/components/ui-callout.js +1 -0
  98. package/dist/components/ui-checkbox.js +1 -1
  99. package/dist/components/ui-chip.d.ts +11 -0
  100. package/dist/components/ui-chip.js +1 -0
  101. package/dist/components/ui-combobox.js +1 -1
  102. package/dist/components/ui-context-menu.js +1 -1
  103. package/dist/components/ui-dialog.js +1 -1
  104. package/dist/components/ui-disclosure.js +1 -1
  105. package/dist/components/ui-floating-action-button.js +1 -1
  106. package/dist/components/ui-form-field.js +1 -1
  107. package/dist/components/ui-icon-button.js +1 -1
  108. package/dist/components/ui-input.js +1 -1
  109. package/dist/components/ui-menu-item.js +1 -1
  110. package/dist/components/ui-menu.js +1 -1
  111. package/dist/components/ui-popover.js +1 -1
  112. package/dist/components/ui-radio-group.js +1 -1
  113. package/dist/components/ui-radio.js +1 -1
  114. package/dist/components/ui-search-result-row.js +1 -1
  115. package/dist/components/ui-search-shell.js +1 -1
  116. package/dist/components/ui-select.js +1 -1
  117. package/dist/components/ui-switch.js +1 -1
  118. package/dist/components/ui-tabs.js +1 -1
  119. package/dist/components/ui-textarea.js +1 -1
  120. package/dist/components/ui-toast-region.js +1 -1
  121. package/dist/components/ui-tooltip.js +1 -1
  122. package/dist/components/ui-top-bar.js +1 -1
  123. package/dist/components/ui-tree-item.js +1 -13
  124. package/dist/components/ui-tree.js +1 -1
  125. package/dist/esm/controlled-state-BnGhGgTH.js +6 -0
  126. package/dist/esm/icons-CoFximGM.js +678 -0
  127. package/dist/esm/loader.js +1 -1
  128. package/dist/esm/looma.js +1 -1
  129. package/dist/esm/ui-affordance-scope.entry.js +1 -1
  130. package/dist/esm/ui-avatar-group.entry.js +9 -17
  131. package/dist/esm/ui-avatar.entry.js +2 -2
  132. package/dist/esm/ui-badge.entry.js +2 -2
  133. package/dist/esm/ui-button.entry.js +1 -1
  134. package/dist/esm/ui-callout.entry.js +25 -0
  135. package/dist/esm/ui-checkbox.entry.js +13 -7
  136. package/dist/esm/ui-chip.entry.js +17 -0
  137. package/dist/esm/ui-combobox.entry.js +3 -3
  138. package/dist/esm/ui-context-menu.entry.js +1 -1
  139. package/dist/esm/ui-dialog.entry.js +44 -8
  140. package/dist/esm/ui-disclosure.entry.js +9 -6
  141. package/dist/esm/ui-floating-action-button.entry.js +1 -1
  142. package/dist/esm/ui-form-field.entry.js +59 -4
  143. package/dist/esm/ui-icon-button.entry.js +1 -1
  144. package/dist/esm/ui-input.entry.js +1 -1
  145. package/dist/esm/ui-menu-item.entry.js +2 -2
  146. package/dist/esm/ui-menu.entry.js +14 -9
  147. package/dist/esm/ui-popover.entry.js +10 -7
  148. package/dist/esm/ui-radio-group.entry.js +1 -1
  149. package/dist/esm/ui-radio.entry.js +16 -7
  150. package/dist/esm/ui-search-result-row.entry.js +1 -1
  151. package/dist/esm/ui-search-shell.entry.js +1 -1
  152. package/dist/esm/ui-select.entry.js +1 -1
  153. package/dist/esm/ui-switch.entry.js +19 -10
  154. package/dist/esm/ui-tabs.entry.js +10 -9
  155. package/dist/esm/ui-textarea.entry.js +1 -1
  156. package/dist/esm/ui-toast-region.entry.js +30 -19
  157. package/dist/esm/ui-tooltip.entry.js +12 -8
  158. package/dist/esm/ui-top-bar.entry.js +1 -1
  159. package/dist/esm/ui-tree-item.entry.js +54 -617
  160. package/dist/esm/ui-tree.entry.js +123 -11
  161. package/dist/index.cjs +1224 -842
  162. package/dist/index.d.cts +5 -0
  163. package/dist/index.d.ts +5 -0
  164. package/dist/index.js +12 -2
  165. package/dist/looma/looma.esm.js +1 -1
  166. package/dist/looma/p-03f44c45.entry.js +1 -0
  167. package/dist/looma/p-08f80207.entry.js +1 -0
  168. package/dist/looma/{p-f74e5546.entry.js → p-13f8195a.entry.js} +1 -1
  169. package/dist/looma/{p-5a87b59d.entry.js → p-25e18ad6.entry.js} +1 -1
  170. package/dist/looma/p-2c03fa73.entry.js +1 -0
  171. package/dist/looma/{p-ed368426.entry.js → p-314d5c7c.entry.js} +1 -1
  172. package/dist/looma/{p-5da09f47.entry.js → p-3ef2a21b.entry.js} +1 -1
  173. package/dist/looma/{p-f0487ff3.entry.js → p-5a900d89.entry.js} +1 -1
  174. package/dist/looma/p-5fdcee1d.entry.js +1 -0
  175. package/dist/looma/{p-13347631.entry.js → p-672e3d16.entry.js} +1 -1
  176. package/dist/looma/{p-582973b5.entry.js → p-68430534.entry.js} +1 -1
  177. package/dist/looma/{p-add36e74.entry.js → p-72338f53.entry.js} +1 -1
  178. package/dist/looma/{p-a90d2821.entry.js → p-7ab661ec.entry.js} +1 -1
  179. package/dist/looma/p-7c4a225f.entry.js +1 -0
  180. package/dist/looma/p-82f2fa3d.entry.js +1 -0
  181. package/dist/looma/p-839faf55.entry.js +1 -0
  182. package/dist/looma/{p-7e0bb7f6.entry.js → p-8e254bc4.entry.js} +1 -1
  183. package/dist/looma/p-8e6b1001.entry.js +1 -0
  184. package/dist/looma/p-920656cf.entry.js +1 -0
  185. package/dist/looma/{p-40fe7fee.entry.js → p-97e8cb0e.entry.js} +1 -1
  186. package/dist/looma/p-9d2662ca.entry.js +1 -0
  187. package/dist/looma/p-9e1c4020.entry.js +1 -0
  188. package/dist/looma/p-BnGhGgTH.js +1 -0
  189. package/dist/looma/p-CoFximGM.js +13 -0
  190. package/dist/looma/{p-8b8840b8.entry.js → p-a63e2561.entry.js} +1 -1
  191. package/dist/looma/p-add67e4c.entry.js +1 -0
  192. package/dist/looma/p-b63f6d4f.entry.js +1 -0
  193. package/dist/looma/p-bd00d4e8.entry.js +1 -0
  194. package/dist/looma/p-cc915913.entry.js +1 -0
  195. package/dist/looma/p-cfba8f7c.entry.js +1 -0
  196. package/dist/looma/p-d56571a2.entry.js +1 -0
  197. package/dist/looma/{p-69a5557b.entry.js → p-e0f241ab.entry.js} +1 -1
  198. package/dist/looma/p-f1750fd7.entry.js +1 -0
  199. package/dist/looma/p-fd1e4d22.entry.js +1 -0
  200. package/dist/types/components/ui-avatar-group/ui-avatar-group.d.ts +1 -2
  201. package/dist/types/components/ui-callout/ui-callout.d.ts +6 -0
  202. package/dist/types/components/ui-checkbox/ui-checkbox.d.ts +2 -1
  203. package/dist/types/components/ui-chip/ui-chip.d.ts +6 -0
  204. package/dist/types/components/ui-dialog/ui-dialog.d.ts +7 -1
  205. package/dist/types/components/ui-disclosure/ui-disclosure.d.ts +2 -1
  206. package/dist/types/components/ui-form-field/ui-form-field.d.ts +8 -0
  207. package/dist/types/components/ui-menu/ui-menu.d.ts +2 -1
  208. package/dist/types/components/ui-popover/ui-popover.d.ts +2 -1
  209. package/dist/types/components/ui-radio/ui-radio.d.ts +4 -1
  210. package/dist/types/components/ui-switch/ui-switch.d.ts +2 -1
  211. package/dist/types/components/ui-tabs/ui-tabs.d.ts +2 -1
  212. package/dist/types/components/ui-toast-region/ui-toast-region.d.ts +3 -1
  213. package/dist/types/components/ui-tooltip/ui-tooltip.d.ts +2 -1
  214. package/dist/types/components/ui-tree/ui-tree.d.ts +12 -0
  215. package/dist/types/components/ui-tree-item/ui-tree-item.d.ts +11 -7
  216. package/dist/types/components.d.ts +110 -47
  217. package/dist/types/icons.d.ts +5 -0
  218. package/dist/types/utils/controlled-state.d.ts +4 -0
  219. package/dist/{ui-affordance-scope.entry-VO4C2MZX.js → ui-affordance-scope.entry-3TUZ6GLW.js} +2 -2
  220. package/dist/ui-avatar-group.entry-XGJKN25W.js +51 -0
  221. package/dist/{ui-avatar.entry-T6FU6ZYM.js → ui-avatar.entry-SN3G44HW.js} +3 -3
  222. package/dist/ui-badge.entry-B6WDCWJX.js +22 -0
  223. package/dist/{ui-button.entry-7UXMUGHN.js → ui-button.entry-AZYUELLV.js} +2 -2
  224. package/dist/ui-callout.entry-QRPWRMPC.js +32 -0
  225. package/dist/{ui-checkbox.entry-DMZJB3RE.js → ui-checkbox.entry-OB6GFC4M.js} +17 -8
  226. package/dist/ui-chip.entry-XSNPJXX3.js +22 -0
  227. package/dist/{ui-combobox.entry-ZCTPXEES.js → ui-combobox.entry-IIMMUJF7.js} +5 -5
  228. package/dist/{ui-context-menu.entry-2WMCBGCP.js → ui-context-menu.entry-AIULIE5Y.js} +5 -5
  229. package/dist/{ui-dialog.entry-WO23XOSW.js → ui-dialog.entry-QSYWYHLY.js} +50 -12
  230. package/dist/{ui-disclosure.entry-USX7OUEW.js → ui-disclosure.entry-3BJEYU3U.js} +13 -7
  231. package/dist/{ui-floating-action-button.entry-MXDIN7MV.js → ui-floating-action-button.entry-JEVNV6FI.js} +2 -2
  232. package/dist/ui-form-field.entry-PKSY7UU4.js +120 -0
  233. package/dist/{ui-icon-button.entry-MJUNXHBU.js → ui-icon-button.entry-TPX7BE7R.js} +2 -2
  234. package/dist/{ui-input.entry-AWG63YIG.js → ui-input.entry-6NCLNW4E.js} +2 -2
  235. package/dist/ui-menu-item.entry-KA2K3PKV.js +22 -0
  236. package/dist/{ui-menu.entry-IT3GW5TL.js → ui-menu.entry-7GDO5L2T.js} +22 -14
  237. package/dist/{ui-popover.entry-ZQQB4N6E.js → ui-popover.entry-FR6YRNK6.js} +17 -11
  238. package/dist/{ui-radio-group.entry-V7PCTS7I.js → ui-radio-group.entry-7QHXQSNO.js} +2 -2
  239. package/dist/{ui-radio.entry-JYH6TQBI.js → ui-radio.entry-YNMXKLDW.js} +20 -8
  240. package/dist/{ui-search-result-row.entry-JBNYXXUN.js → ui-search-result-row.entry-AHVVAAIO.js} +2 -2
  241. package/dist/{ui-search-shell.entry-TEAWE76O.js → ui-search-shell.entry-CNBEAMEZ.js} +2 -2
  242. package/dist/{ui-select.entry-F3A6TE2U.js → ui-select.entry-TUY6TCTC.js} +2 -2
  243. package/dist/{ui-switch.entry-MJIICMP2.js → ui-switch.entry-26LFI7B5.js} +23 -11
  244. package/dist/{ui-tabs.entry-6REFIUHV.js → ui-tabs.entry-LXB62RJJ.js} +14 -10
  245. package/dist/{ui-textarea.entry-OJTXCED7.js → ui-textarea.entry-JYGMGPX2.js} +2 -2
  246. package/dist/{ui-toast-region.entry-NOFXLKPS.js → ui-toast-region.entry-TOW4KZLZ.js} +32 -23
  247. package/dist/{ui-tooltip.entry-COWTWVHX.js → ui-tooltip.entry-SKFNYXPH.js} +19 -12
  248. package/dist/{ui-top-bar.entry-PIAWXJNV.js → ui-top-bar.entry-S3YP52EA.js} +2 -2
  249. package/dist/ui-tree-item.entry-LWYIPYLC.js +145 -0
  250. package/dist/{ui-tree.entry-XYI3ZFAZ.js → ui-tree.entry-LXKUQFRU.js} +114 -12
  251. package/editor/{chunk-QCOYOVQL.js → chunk-B5WVJOPV.js} +113 -97
  252. package/editor/extensions/index.d.ts +14 -6
  253. package/editor/extensions/index.js +1 -1
  254. package/editor/index.js +1 -1
  255. package/editor.css +37 -20
  256. package/package.json +1 -1
  257. package/styles.css +10 -0
  258. package/tokens.css +3 -0
  259. package/vue/{chunk-JLW23USW.js → chunk-D4AJULDE.js} +28 -16
  260. package/vue/editor/index.d.ts +5 -15
  261. package/vue/editor/index.js +1 -1
  262. package/vue/index.d.ts +325 -115
  263. package/vue/index.js +5 -1
  264. package/dist/components/p-CaietZcq.js +0 -1
  265. package/dist/components/p-DHd18bK7.js +0 -1
  266. package/dist/looma/p-14c081cf.entry.js +0 -1
  267. package/dist/looma/p-25366205.entry.js +0 -1
  268. package/dist/looma/p-2e3aa869.entry.js +0 -1
  269. package/dist/looma/p-446cda76.entry.js +0 -1
  270. package/dist/looma/p-4fc1b005.entry.js +0 -13
  271. package/dist/looma/p-6a8a4736.entry.js +0 -1
  272. package/dist/looma/p-6bf4038b.entry.js +0 -1
  273. package/dist/looma/p-8204fee6.entry.js +0 -1
  274. package/dist/looma/p-8238e0dc.entry.js +0 -1
  275. package/dist/looma/p-99d88efb.entry.js +0 -1
  276. package/dist/looma/p-a27669b1.entry.js +0 -1
  277. package/dist/looma/p-a6ee76b7.entry.js +0 -1
  278. package/dist/looma/p-b6398a6b.entry.js +0 -1
  279. package/dist/looma/p-d50faaff.entry.js +0 -1
  280. package/dist/looma/p-d77278ce.entry.js +0 -1
  281. package/dist/looma/p-d9ec13b7.entry.js +0 -1
  282. package/dist/looma/p-ecf8005f.entry.js +0 -1
  283. package/dist/ui-avatar-group.entry-TAXJRIIU.js +0 -59
  284. package/dist/ui-badge.entry-MZFYNBMJ.js +0 -22
  285. package/dist/ui-form-field.entry-7ZCMEHPY.js +0 -67
  286. package/dist/ui-menu-item.entry-HFTWG62N.js +0 -22
  287. package/dist/ui-tree-item.entry-BSEWNL2O.js +0 -389
@@ -1 +1 @@
1
- import{r as i,c as t,g as s,h as e,H as a}from"./p-8BGiMGQ0.js";import{a as o}from"./p-Bu0dmLBE.js";import{c as r,o as h}from"./p-C-0syqXZ.js";const n=class{constructor(s){i(this,s),this.queryChange=t(this,"query-change"),this.valueChange=t(this,"value-change"),this.freeEntry=t(this,"free-entry"),this.createEntry=t(this,"create-entry"),this.dependencyInvalidate=t(this,"dependency-invalidate"),this.validationChange=t(this,"validation-change"),this.optionsChange=t(this,"options-change")}get host(){return s(this)}label="";placeholder="";name="";value;defaultValue;query;defaultQuery="";config={};disabled=!1;readOnly=!1;required=!1;size="md";disclosure=!1;clearable=!1;help="";queryChange;valueChange;freeEntry;createEntry;dependencyInvalidate;validationChange;optionsChange;raw="";display="";selected=null;expanded=!1;rows=[];active=-1;loading=!1;helpOpen=!1;lookupError="";validation={status:"pristine",touched:!1,dirty:!1,issues:[]};input;popup;field;surface;lookup;validationRun;lookupTimer;composing=!1;initialRaw="";overlayId=`ui-combobox-${Math.random().toString(36).slice(2)}`;alive=!1;fullSet=!1;knownOptions=new Map;awaitingLabel=null;proposedChange;formattedRaw;formattedWith;componentWillLoad(){this.selected=void 0!==this.value?this.value:this.defaultValue??null,this.raw=this.query??this.defaultQuery,void 0!==this.query||this.raw||null===this.selected||(this.raw=this.config.options?.find((i=>i.value===this.selected))?.label??this.selected),void 0===this.query&&null!==this.selected&&this.raw===this.selected&&(this.awaitingLabel=this.selected),this.display=this.raw,this.initialRaw=this.raw,this.applyServerIssues()}connectedCallback(){this.alive=!0,this.setupSurface()}componentDidLoad(){this.setupSurface()}componentDidUpdate(){this.input&&!this.composing&&this.input.value!==this.display&&(this.input.value=this.display),this.expanded&&this.surface?.refresh()}disconnectedCallback(){this.alive=!1,this.close(),this.validationRun?.abort(),this.surface?.destroy(),this.surface=void 0}setupSurface(){!this.surface&&this.popup&&this.field&&(this.surface=o(this.popup,{anchor:this.field,placement:"bottom-start"}))}syncValue(){if(void 0!==this.value){if(this.selected=this.value,void 0===this.query){const i=this.proposedChange,t=this.config.options?.find((i=>i.value===this.selected))??(null===this.selected?void 0:this.knownOptions.get(this.selected)),s=i?.value===this.selected?i.query:t?.label??this.selected??"";i?.value===this.selected&&s===this.raw||(this.raw=s,this.display=this.raw,this.formattedRaw=void 0),this.awaitingLabel=t||null===this.selected?null:this.selected}this.resetValidation()}}syncQuery(){void 0!==this.query&&this.query!==this.raw&&(void 0===this.value&&this.proposedChange?.query!==this.query&&(this.selected=null),this.awaitingLabel=null,this.formattedRaw=void 0,this.raw=this.query,this.display=this.raw,this.resetValidation(),this.expanded&&this.search("input"))}syncDisabled(){(this.disabled||this.readOnly)&&(this.close(),this.resetValidation())}syncConfig(i,t){if(this.validationRun?.abort(),i.provider===t?.provider&&i.context===t?.context||this.knownOptions.clear(),i.context!==t?.context){this.close();const t=i.invalidation??"retain-query";this.commit("retain"===t?this.selected:null,"clear"===t?"":this.raw,null,"invalidation","programmatic"),this.validation={status:"pristine",touched:!1,dirty:this.raw!==this.initialRaw,issues:[]}}this.applyServerIssues(),this.expanded&&this.search("context")}applyServerIssues(){const i=this.config.issues??[];i.length?this.setValidation({issues:i},this.validation.touched):this.resetValidation()}resetValidation(){this.validationRun?.abort(),this.validation={status:"pristine",touched:this.validation.touched,dirty:this.raw!==this.initialRaw,issues:[]},this.validationChange?.emit(this.validation)}cancelLookup(){clearTimeout(this.lookupTimer),this.lookup?.abort(),this.lookup=void 0,this.loading=!1}close(){this.expanded=!1,this.active=-1,this.cancelLookup(),this.surface?.hide(),r(this.overlayId)}open(i="input"){this.disabled||this.readOnly||(this.expanded=!0,this.popup&&this.field&&(this.popup.style.minWidth=`${this.field.getBoundingClientRect().width}px`),this.surface?.show(),h({id:this.overlayId,element:this.popup,relatedElements:[this.host],modal:!1,requestClose:()=>this.close()}),this.search(i))}search(i){this.cancelLookup(),this.fullSet="disclosure"===i,this.active=-1,this.lookupError="";const t=this.config,s=this.fullSet?"":this.raw,e=new AbortController;this.lookup=e;const a=i=>{if(e.signal.aborted||!this.alive)return;for(const t of i)this.knownOptions.set(t.value,t);const a=null===this.selected?void 0:this.knownOptions.get(this.selected);void 0===this.query&&this.awaitingLabel===this.selected&&a&&(this.raw=a.label,this.display=this.raw,this.awaitingLabel=null,this.formattedRaw=void 0,this.resetValidation());const o=new Set;this.rows=i.filter((i=>!o.has(i.id)&&(o.add(i.id),this.fullSet||(t.filter?t.filter(i,s,t.context):!!t.provider||i.label.toLocaleLowerCase().includes(s.toLocaleLowerCase())))));const r=new Map;for(const i of this.rows){const t=i.group??"";r.has(t)||r.set(t,[]),r.get(t).push(i)}this.rows=[...r.values()].flat(),this.loading=!1,this.optionsChange.emit(this.rows)};t.provider?(this.rows=[],this.loading=!0,this.lookupTimer=setTimeout((async()=>{try{a(await t.provider({query:s,context:t.context,signal:e.signal,reason:i}))}catch(i){if(e.signal.aborted||!this.alive)return;this.loading=!1,this.lookupError=i instanceof Error?i.message:"Unable to load suggestions."}}),"disclosure"===i?0:Math.max(0,t.debounce??200))):a(t.options??[])}get canCreate(){return Boolean(this.config.allowCreate&&this.raw.trim()&&!this.loading&&!this.lookupError&&!this.rows.some((i=>i.label.toLocaleLowerCase()===this.raw.toLocaleLowerCase())))}format(i){if((this.config.formatOn??"blur")!==i||!this.input)return;if(this.formattedRaw===this.raw&&this.formattedWith===this.config.format)return;const t=function(i,t,s){const e={display:i,selection:t};if(!s)return e;let a;try{a=s(i,t)}catch{return e}if(!a)return e;const o=Array.from(i);let r=0;for(const i of a.display)i===o[r]&&(r+=1);return!Number.isInteger(a.selection.start)||!Number.isInteger(a.selection.end)||r!==o.length||a.selection.start<0||a.selection.end<a.selection.start||a.selection.end>a.display.length?e:a}(this.raw,{start:this.input.selectionStart??this.raw.length,end:this.input.selectionEnd??this.raw.length,direction:this.input.selectionDirection??"none"},this.config.format);this.formattedRaw=this.raw,this.formattedWith=this.config.format,this.display=t.display,this.input.value!==t.display&&(this.input.value=t.display,this.input.setSelectionRange(t.selection.start,t.selection.end,t.selection.direction))}onInput=i=>{this.composing||i.isComposing||(this.awaitingLabel=null,this.formattedRaw=void 0,this.raw=this.input.value,this.display=this.raw,this.resetValidation(),this.format("input"),this.queryChange.emit({query:this.raw,display:this.display,trigger:"keyboard"}),null!==this.selected&&this.commit(null,this.raw,null,"clear","keyboard"),this.open(),"input"===this.config.validateOn&&this.validate(),queueMicrotask((()=>{void 0!==this.query&&this.query!==this.raw&&this.syncQuery()})))};commit(i,t,s,e,a){this.awaitingLabel=null;const o=t!==this.raw;void 0===this.value&&(this.selected=i),void 0===this.query&&o&&(this.raw=t,this.display=t,this.formattedRaw=void 0),this.resetValidation();const r={value:i,query:t,option:s,kind:e,trigger:a},h={value:i,query:t};this.proposedChange=h,this.valueChange.emit(r),o&&this.queryChange.emit({query:t,display:t,trigger:a}),"create"===e&&this.createEntry.emit(r),"free-entry"===e&&this.freeEntry.emit(r),"invalidation"===e&&this.dependencyInvalidate.emit(r),queueMicrotask((()=>{this.proposedChange===h&&(void 0!==this.value&&this.value!==h.value&&this.syncValue(),void 0!==this.query&&this.query!==h.query&&(void 0===this.value&&(this.selected=null,this.resetValidation()),this.syncQuery()),this.proposedChange=void 0)}))}choose(i,t){const s=this.rows[i];if(!s?.disabled){if(s)this.commit(s.value,s.label,s,"selection",t);else{if(!this.canCreate||i!==this.rows.length)return;this.commit(null,this.raw,null,"create",t)}this.close(),this.input?.focus(),"submit"!==this.config.validateOn&&queueMicrotask((()=>{this.validate()}))}}move(i){const t=this.rows.flatMap(((i,t)=>i.disabled?[]:[t]));if(this.canCreate&&t.push(this.rows.length),!t.length)return;const s=t.indexOf(this.active),e="Home"===i?0:"End"===i?t.length-1:"ArrowDown"===i?Math.min(s+1,t.length-1):s<0?t.length-1:Math.max(0,s-1);this.active=t[e],requestAnimationFrame((()=>this.host.shadowRoot?.getElementById(`option-${this.active}`)?.scrollIntoView({block:"nearest"})))}onKeydown=i=>{if(!(this.composing||i.isComposing||this.disabled||this.readOnly))return"Escape"===i.key&&this.expanded?(i.preventDefault(),i.stopPropagation(),void this.close()):void("Tab"!==i.key?i.altKey||i.ctrlKey||i.metaKey||i.shiftKey||("ArrowDown"===i.key||"ArrowUp"===i.key?(i.preventDefault(),this.expanded||this.open("disclosure"),this.move(i.key)):("Home"===i.key||"End"===i.key)&&this.expanded&&this.active>=0?(i.preventDefault(),this.move(i.key)):"Enter"===i.key&&this.expanded&&(this.active>=0?(i.preventDefault(),this.choose(this.active,"keyboard")):this.config.allowFreeText&&(i.preventDefault(),this.commit(null,this.raw,null,"free-entry","keyboard"),this.close()))):this.close())};onFocusOut=i=>{i.relatedTarget instanceof Node&&this.host.shadowRoot?.contains(i.relatedTarget)||(this.close(),this.format("blur"),this.validation={...this.validation,touched:!0},this.config.allowFreeText&&null===this.selected&&this.commit(null,this.raw,null,"free-entry","keyboard"),"blur"===(this.config.validateOn??"blur")&&this.validate())};setValidation(i,t=this.validation.touched){const s=i.issues.some((i=>"warning"!==i.severity));this.validation={status:s?"error":i.issues.length?"warning":"valid",touched:t,dirty:this.raw!==this.initialRaw,...i},this.validationChange?.emit(this.validation)}async validate(){this.validationRun?.abort();const i=new AbortController;this.validationRun=i,this.validation={...this.validation,status:"pending",output:void 0},this.validationChange.emit(this.validation);try{const t=await async function(i,t){let s=i.raw,e=[];const a=()=>i.signal.throwIfAborted();try{if(a(),t.parse&&(s=await t.parse(i.raw,i)),a(),t.schema){const i=await t.schema["~standard"].validate(s);a(),i.issues?e=i.issues:"value"in i&&(s=i.value)}if(!e.some((i=>"warning"!==i.severity))&&(t.normalize&&(s=await t.normalize(s,i)),a(),t.validator)){const o=await t.validator(s,i);a(),e=[...e,...o.issues??[]],"output"in o&&(s=o.output)}}catch(i){a(),e=[{message:i instanceof Error?i.message:"Unable to validate this value."}]}return e=[...e,...t.issues??[]],{output:e.some((i=>"warning"!==i.severity))?void 0:s,issues:e}}({raw:this.raw,value:this.selected,context:this.config.context,signal:i.signal},this.config);this.required&&!this.raw.trim()?t.issues=[...t.issues,{message:"A value is required."}]:!this.raw||null!==this.selected||this.config.allowFreeText||this.config.allowCreate||(t.issues=[...t.issues,{message:"Choose a suggestion."}]),t.issues.some((i=>"warning"!==i.severity))&&(t.output=void 0),!i.signal.aborted&&this.alive&&this.setValidation(t)}catch{}return this.validation}render(){const i=[this.helpOpen?"help-text":"",this.validation.issues.length?"validation":""].filter(Boolean).join(" ")||void 0,t=this.loading?"Loading suggestions…":this.lookupError||(this.expanded?`${this.rows.length} suggestions available.`:""),s=[...new Set(this.rows.map((i=>i.group??"")))];return e(a,{key:"2378bfd8473852642fef21898f4a756eb3b092ba","data-size":this.size,"data-validation":this.validation.status,onFocusout:this.onFocusOut},e("label",{key:"7aba65aeb336d490ddeaf5db9bba9db8ab8b9dbb",htmlFor:"input",part:"label"},this.label,this.required?" *":""),e("div",{key:"ee87156259d0fe1e2e56c4b36667e8daf5e1e2c1",class:"field",part:"field",ref:i=>this.field=i},e("input",{key:"35c5b85ff9a4bcba9bddaf85ff1f118a94aa077b",id:"input",ref:i=>this.input=i,role:"combobox","aria-autocomplete":"list","aria-expanded":String(this.expanded),"aria-controls":"listbox","aria-activedescendant":this.expanded&&this.active>=0?`option-${this.active}`:void 0,"aria-describedby":i,"aria-invalid":String("error"===this.validation.status),"aria-busy":String("pending"===this.validation.status),value:this.display,placeholder:this.placeholder,name:this.name||void 0,disabled:this.disabled,readOnly:this.readOnly,required:this.required,autoComplete:"off",part:"input",onInput:this.onInput,onKeyDown:this.onKeydown,onCompositionstart:()=>this.composing=!0,onCompositionend:()=>{this.composing=!1,this.onInput(new InputEvent("input"))}}),this.clearable&&e("button",{key:"74e4f44836b751ab5e9f794a39b480602e0c106d",type:"button",part:"affordance","aria-label":`Clear ${this.label}`,disabled:this.disabled||this.readOnly,onClick:()=>{this.commit(null,"",null,"clear","pointer"),this.close(),this.input?.focus()}},"×"),this.help&&e("button",{key:"c870ced139fb22baa50a1795ab78f14c38647d34",id:"help",type:"button",part:"affordance","aria-label":`Help for ${this.label}`,disabled:this.disabled},e("span",{key:"ba3dc5128c1941b21b53a5ba78a27017b3df5ec8","aria-hidden":"true"},"?")),this.disclosure&&e("button",{key:"eced588e3fa7958dd6185173faaef01219c30243",type:"button",part:"affordance","aria-label":`Suggestions for ${this.label}`,"aria-controls":"listbox","aria-expanded":String(this.expanded),disabled:this.disabled||this.readOnly,onClick:()=>{this.expanded?this.close():this.open("disclosure"),this.input?.focus()}},e("span",{key:"7cb9f7f2bb15246dcdd2348ea0ca656d1d0c8c33","aria-hidden":"true"},"⌄"))),this.help&&e("ui-tooltip",{key:"b1b5d42ca457f9b951758bb5e816c8dbbcd1087d",id:"help-text",for:"help",toggleOnClick:!0,onOpen:()=>this.helpOpen=!0,onClose:()=>this.helpOpen=!1},this.help),e("div",{key:"9eca2df66c72917e6bfda21205c2a4ef97dd91d5",class:"popup",part:"popup",hidden:!this.expanded,ref:i=>this.popup=i},e("div",{key:"641e1f137c9cfef5d08ec99f6178e59487a20bf1",id:"listbox",role:"listbox","aria-label":`${this.label} suggestions`,"aria-busy":String(this.loading)},s.map((i=>e("div",{role:i?"group":"presentation","aria-label":i||void 0},i&&e("div",{class:"group",part:"group"},i),this.rows.map(((t,s)=>(t.group??"")!==i?null:e("div",{id:`option-${s}`,role:"option","aria-selected":String(this.selected===t.value),"aria-disabled":String(Boolean(t.disabled)),"data-active":this.active===s?"":void 0,part:"option",class:"option",onPointerDown:i=>i.preventDefault(),onClick:()=>this.choose(s,"pointer")},e("slot",{name:`option-${t.id}`},e("span",{class:"primary",part:"option-primary"},t.label),t.description&&e("span",{class:"secondary",part:"option-secondary"},t.description)))))))),this.canCreate&&e("div",{key:"38a3aa6b2ffae30e6f81e1f89d10c9966dd31b10",id:`option-${this.rows.length}`,role:"option","aria-selected":"false",class:"option",part:"option","data-active":this.active===this.rows.length?"":void 0,onPointerDown:i=>i.preventDefault(),onClick:()=>this.choose(this.rows.length,"pointer")},e("slot",{key:"dd3e895ef363f6d30a0c25e4b5092a8feacc63e5",name:"create"},"Create “",this.raw,"”"))),this.loading?e("div",{class:"message"},e("slot",{name:"loading"},"Loading suggestions…")):this.lookupError?e("div",{class:"message"},e("slot",{name:"error"},this.lookupError)):this.rows.length||this.canCreate?null:e("div",{class:"message"},e("slot",{name:"empty"},"No suggestions."))),e("div",{key:"9cf12a8fde7d9cfb9e2d2a77669ac4708c7fded6",id:"validation",class:"message",part:"validation",hidden:!this.validation.issues.length},this.validation.issues.map((i=>e("div",null,i.message)))),e("div",{key:"1c7b1d3f658e500cbf5f5004a76a39511cc79c49",class:"sr-only",role:"status","aria-live":"polite","aria-atomic":"true"},t," ","pending"===this.validation.status?"Checking value…":this.validation.issues.map((i=>i.message)).join(" ")))}static get watchers(){return{value:[{syncValue:0}],query:[{syncQuery:0}],disabled:[{syncDisabled:0}],readOnly:[{syncDisabled:0}],config:[{syncConfig:0}]}}};n.style=":host{display:grid;gap:var(--ui-space-1);min-inline-size:0;color:var(--ui-text-primary);font:inherit}label{color:var(--ui-field-label-color, var(--ui-text-primary));font-size:var(--ui-field-label-size, 0.875rem);font-weight:var(--ui-field-label-weight, 500)}.field{display:flex;min-inline-size:0;border:1px solid var(--ui-control-border, var(--ui-border-default));border-radius:var(--ui-radius-2);background:var(--ui-control-surface, var(--ui-surface-default))}.field:focus-within{border-color:var(--ui-control-focus, var(--ui-focus-ring));outline:2px solid var(--ui-control-focus, var(--ui-focus-ring));outline-offset:1px}input{appearance:none;width:100%;min-inline-size:0;min-block-size:var(--ui-control-min-block-size, 2.75rem);box-sizing:border-box;border:0;border-radius:inherit;background:transparent;color:inherit;font:inherit;line-height:var(--ui-line-height-md);padding:var(--ui-space-2) var(--ui-space-3);margin:0;outline:none}:host([data-size='sm']) input{min-block-size:var(--ui-field-compact-size, 2rem);padding:var(--ui-space-1) var(--ui-space-2)}button{appearance:none;border:0;border-radius:var(--ui-radius-2);background:transparent;color:var(--ui-field-affordance-color, var(--ui-text-secondary));font:inherit;font-weight:var(--ui-field-affordance-weight, 400);min-inline-size:2rem;padding:var(--ui-space-1);cursor:pointer}button:hover:enabled{background:var(--ui-surface-muted);color:var(--ui-text-primary)}button:focus-visible{outline:2px solid var(--ui-focus-ring);outline-offset:-3px}input:disabled,button:disabled{color:var(--ui-text-muted);cursor:not-allowed}.field:has(input:disabled){background:var(--ui-control-surface-disabled, var(--ui-surface-muted))}:host([data-validation='error']) .field{border-color:var(--ui-danger-solid, var(--ui-accent-active))}.popup{box-sizing:border-box;min-inline-size:12rem;max-inline-size:calc(100vw - 1rem);max-block-size:var(--ui-combobox-max-block-size, 18rem);overflow:auto;margin:0;padding:var(--ui-space-1);border:1px solid var(--ui-border-default);border-radius:var(--ui-radius-2);background:var(--ui-surface-elevated);color:var(--ui-text-primary);box-shadow:var(--ui-shadow-md)}[hidden]{display:none !important}.option{padding:var(--ui-space-2) var(--ui-space-3);border-radius:var(--ui-radius-1);cursor:pointer;overflow-wrap:anywhere}.option:hover,.option[data-active]{background:var(--ui-surface-muted);outline:1px solid var(--ui-focus-ring);outline-offset:-1px}.option[aria-disabled='true']{color:var(--ui-text-muted);cursor:not-allowed}.primary{display:block;color:var(--ui-option-primary-color, var(--ui-text-primary));font-weight:var(--ui-option-primary-weight, 500)}.secondary{display:block;color:var(--ui-option-secondary-color, var(--ui-text-secondary));font-weight:var(--ui-option-secondary-weight, 400);font-size:var(--ui-font-size-sm)}.message,.group{color:var(--ui-field-message-color, var(--ui-text-secondary));font-weight:var(--ui-field-message-weight, 400);font-size:var(--ui-font-size-sm);line-height:var(--ui-line-height-md);overflow-wrap:anywhere}.group,.popup .message{padding:var(--ui-space-2) var(--ui-space-3)}.sr-only{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media (pointer: coarse){button{min-inline-size:2.75rem;min-block-size:2.75rem}}@media (forced-colors: active){.field,.popup{border-color:CanvasText}.option[data-active]{outline-color:Highlight}}";export{n as ui_combobox}
1
+ import{r as i,c as t,g as s,h as e,H as a}from"./p-8BGiMGQ0.js";import{a as o}from"./p-Bu0dmLBE.js";import{c as r,o as h}from"./p-C-0syqXZ.js";const n=class{constructor(s){i(this,s),this.queryChange=t(this,"query-change"),this.valueChange=t(this,"value-change"),this.freeEntry=t(this,"free-entry"),this.createEntry=t(this,"create-entry"),this.dependencyInvalidate=t(this,"dependency-invalidate"),this.validationChange=t(this,"validation-change"),this.optionsChange=t(this,"options-change")}get host(){return s(this)}label="";placeholder="";name="";value;defaultValue;query;defaultQuery="";config={};disabled=!1;readOnly=!1;required=!1;size="md";disclosure=!1;clearable=!1;help="";queryChange;valueChange;freeEntry;createEntry;dependencyInvalidate;validationChange;optionsChange;raw="";display="";selected=null;expanded=!1;rows=[];active=-1;loading=!1;helpOpen=!1;lookupError="";validation={status:"pristine",touched:!1,dirty:!1,issues:[]};input;popup;field;surface;lookup;validationRun;lookupTimer;composing=!1;initialRaw="";overlayId=`ui-combobox-${Math.random().toString(36).slice(2)}`;alive=!1;fullSet=!1;knownOptions=new Map;awaitingLabel=null;proposedChange;formattedRaw;formattedWith;componentWillLoad(){this.selected=void 0!==this.value?this.value:this.defaultValue??null,this.raw=this.query??this.defaultQuery,void 0!==this.query||this.raw||null===this.selected||(this.raw=this.config.options?.find((i=>i.value===this.selected))?.label??this.selected),void 0===this.query&&null!==this.selected&&this.raw===this.selected&&(this.awaitingLabel=this.selected),this.display=this.raw,this.initialRaw=this.raw,this.applyServerIssues()}connectedCallback(){this.alive=!0,this.setupSurface()}componentDidLoad(){this.setupSurface()}componentDidUpdate(){this.input&&!this.composing&&this.input.value!==this.display&&(this.input.value=this.display),this.expanded&&this.surface?.refresh()}disconnectedCallback(){this.alive=!1,this.close(),this.validationRun?.abort(),this.surface?.destroy(),this.surface=void 0}setupSurface(){!this.surface&&this.popup&&this.field&&(this.surface=o(this.popup,{anchor:this.field,placement:"bottom-start"}))}syncValue(){if(void 0!==this.value){if(this.selected=this.value,void 0===this.query){const i=this.proposedChange,t=this.config.options?.find((i=>i.value===this.selected))??(null===this.selected?void 0:this.knownOptions.get(this.selected)),s=i?.value===this.selected?i.query:t?.label??this.selected??"";i?.value===this.selected&&s===this.raw||(this.raw=s,this.display=this.raw,this.formattedRaw=void 0),this.awaitingLabel=t||null===this.selected?null:this.selected}this.resetValidation()}}syncQuery(){void 0!==this.query&&this.query!==this.raw&&(void 0===this.value&&this.proposedChange?.query!==this.query&&(this.selected=null),this.awaitingLabel=null,this.formattedRaw=void 0,this.raw=this.query,this.display=this.raw,this.resetValidation(),this.expanded&&this.search("input"))}syncDisabled(){(this.disabled||this.readOnly)&&(this.close(),this.resetValidation())}syncConfig(i,t){if(this.validationRun?.abort(),i.provider===t?.provider&&i.context===t?.context||this.knownOptions.clear(),i.context!==t?.context){this.close();const t=i.invalidation??"retain-query";this.commit("retain"===t?this.selected:null,"clear"===t?"":this.raw,null,"invalidation","programmatic"),this.validation={status:"pristine",touched:!1,dirty:this.raw!==this.initialRaw,issues:[]}}this.applyServerIssues(),this.expanded&&this.search("context")}applyServerIssues(){const i=this.config.issues??[];i.length?this.setValidation({issues:i},this.validation.touched):this.resetValidation()}resetValidation(){this.validationRun?.abort(),this.validation={status:"pristine",touched:this.validation.touched,dirty:this.raw!==this.initialRaw,issues:[]},this.validationChange?.emit(this.validation)}cancelLookup(){clearTimeout(this.lookupTimer),this.lookup?.abort(),this.lookup=void 0,this.loading=!1}close(){this.expanded=!1,this.active=-1,this.cancelLookup(),this.surface?.hide(),r(this.overlayId)}open(i="input"){this.disabled||this.readOnly||(this.expanded=!0,this.popup&&this.field&&(this.popup.style.minWidth=`${this.field.getBoundingClientRect().width}px`),this.surface?.show(),h({id:this.overlayId,element:this.popup,relatedElements:[this.host],modal:!1,requestClose:()=>this.close()}),this.search(i))}search(i){this.cancelLookup(),this.fullSet="disclosure"===i,this.active=-1,this.lookupError="";const t=this.config,s=this.fullSet?"":this.raw,e=new AbortController;this.lookup=e;const a=i=>{if(e.signal.aborted||!this.alive)return;for(const t of i)this.knownOptions.set(t.value,t);const a=null===this.selected?void 0:this.knownOptions.get(this.selected);void 0===this.query&&this.awaitingLabel===this.selected&&a&&(this.raw=a.label,this.display=this.raw,this.awaitingLabel=null,this.formattedRaw=void 0,this.resetValidation());const o=new Set;this.rows=i.filter((i=>!o.has(i.id)&&(o.add(i.id),this.fullSet||(t.filter?t.filter(i,s,t.context):!!t.provider||i.label.toLocaleLowerCase().includes(s.toLocaleLowerCase())))));const r=new Map;for(const i of this.rows){const t=i.group??"";r.has(t)||r.set(t,[]),r.get(t).push(i)}this.rows=[...r.values()].flat(),this.loading=!1,this.optionsChange.emit(this.rows)};t.provider?(this.rows=[],this.loading=!0,this.lookupTimer=setTimeout((async()=>{try{a(await t.provider({query:s,context:t.context,signal:e.signal,reason:i}))}catch(i){if(e.signal.aborted||!this.alive)return;this.loading=!1,this.lookupError=i instanceof Error?i.message:"Unable to load suggestions."}}),"disclosure"===i?0:Math.max(0,t.debounce??200))):a(t.options??[])}get canCreate(){return Boolean(this.config.allowCreate&&this.raw.trim()&&!this.loading&&!this.lookupError&&!this.rows.some((i=>i.label.toLocaleLowerCase()===this.raw.toLocaleLowerCase())))}format(i){if((this.config.formatOn??"blur")!==i||!this.input)return;if(this.formattedRaw===this.raw&&this.formattedWith===this.config.format)return;const t=function(i,t,s){const e={display:i,selection:t};if(!s)return e;let a;try{a=s(i,t)}catch{return e}if(!a)return e;const o=Array.from(i);let r=0;for(const i of a.display)i===o[r]&&(r+=1);return!Number.isInteger(a.selection.start)||!Number.isInteger(a.selection.end)||r!==o.length||a.selection.start<0||a.selection.end<a.selection.start||a.selection.end>a.display.length?e:a}(this.raw,{start:this.input.selectionStart??this.raw.length,end:this.input.selectionEnd??this.raw.length,direction:this.input.selectionDirection??"none"},this.config.format);this.formattedRaw=this.raw,this.formattedWith=this.config.format,this.display=t.display,this.input.value!==t.display&&(this.input.value=t.display,this.input.setSelectionRange(t.selection.start,t.selection.end,t.selection.direction))}onInput=i=>{this.composing||i.isComposing||(this.awaitingLabel=null,this.formattedRaw=void 0,this.raw=this.input.value,this.display=this.raw,this.resetValidation(),this.format("input"),this.queryChange.emit({query:this.raw,display:this.display,trigger:"keyboard"}),null!==this.selected&&this.commit(null,this.raw,null,"clear","keyboard"),this.open(),"input"===this.config.validateOn&&this.validate(),queueMicrotask((()=>{void 0!==this.query&&this.query!==this.raw&&this.syncQuery()})))};commit(i,t,s,e,a){this.awaitingLabel=null;const o=t!==this.raw;void 0===this.value&&(this.selected=i),void 0===this.query&&o&&(this.raw=t,this.display=t,this.formattedRaw=void 0),this.resetValidation();const r={value:i,query:t,option:s,kind:e,trigger:a},h={value:i,query:t};this.proposedChange=h,this.valueChange.emit(r),o&&this.queryChange.emit({query:t,display:t,trigger:a}),"create"===e&&this.createEntry.emit(r),"free-entry"===e&&this.freeEntry.emit(r),"invalidation"===e&&this.dependencyInvalidate.emit(r),queueMicrotask((()=>{this.proposedChange===h&&(void 0!==this.value&&this.value!==h.value&&this.syncValue(),void 0!==this.query&&this.query!==h.query&&(void 0===this.value&&(this.selected=null,this.resetValidation()),this.syncQuery()),this.proposedChange=void 0)}))}choose(i,t){const s=this.rows[i];if(!s?.disabled){if(s)this.commit(s.value,s.label,s,"selection",t);else{if(!this.canCreate||i!==this.rows.length)return;this.commit(null,this.raw,null,"create",t)}this.close(),this.input?.focus(),"submit"!==this.config.validateOn&&queueMicrotask((()=>{this.validate()}))}}move(i){const t=this.rows.flatMap(((i,t)=>i.disabled?[]:[t]));if(this.canCreate&&t.push(this.rows.length),!t.length)return;const s=t.indexOf(this.active),e="Home"===i?0:"End"===i?t.length-1:"ArrowDown"===i?Math.min(s+1,t.length-1):s<0?t.length-1:Math.max(0,s-1);this.active=t[e],requestAnimationFrame((()=>this.host.shadowRoot?.getElementById(`option-${this.active}`)?.scrollIntoView({block:"nearest"})))}onKeydown=i=>{if(!(this.composing||i.isComposing||this.disabled||this.readOnly))return"Escape"===i.key&&this.expanded?(i.preventDefault(),i.stopPropagation(),void this.close()):void("Tab"!==i.key?i.altKey||i.ctrlKey||i.metaKey||i.shiftKey||("ArrowDown"===i.key||"ArrowUp"===i.key?(i.preventDefault(),this.expanded||this.open("disclosure"),this.move(i.key)):("Home"===i.key||"End"===i.key)&&this.expanded&&this.active>=0?(i.preventDefault(),this.move(i.key)):"Enter"===i.key&&this.expanded&&(this.active>=0?(i.preventDefault(),this.choose(this.active,"keyboard")):this.config.allowFreeText&&(i.preventDefault(),this.commit(null,this.raw,null,"free-entry","keyboard"),this.close()))):this.close())};onFocusOut=i=>{i.relatedTarget instanceof Node&&this.host.shadowRoot?.contains(i.relatedTarget)||(this.close(),this.format("blur"),this.validation={...this.validation,touched:!0},this.config.allowFreeText&&null===this.selected&&this.commit(null,this.raw,null,"free-entry","keyboard"),"blur"===(this.config.validateOn??"blur")&&this.validate())};setValidation(i,t=this.validation.touched){const s=i.issues.some((i=>"warning"!==i.severity));this.validation={status:s?"error":i.issues.length?"warning":"valid",touched:t,dirty:this.raw!==this.initialRaw,...i},this.validationChange?.emit(this.validation)}async validate(){this.validationRun?.abort();const i=new AbortController;this.validationRun=i,this.validation={...this.validation,status:"pending",output:void 0},this.validationChange.emit(this.validation);try{const t=await async function(i,t){let s=i.raw,e=[];const a=()=>i.signal.throwIfAborted();try{if(a(),t.parse&&(s=await t.parse(i.raw,i)),a(),t.schema){const i=await t.schema["~standard"].validate(s);a(),i.issues?e=i.issues:"value"in i&&(s=i.value)}if(!e.some((i=>"warning"!==i.severity))&&(t.normalize&&(s=await t.normalize(s,i)),a(),t.validator)){const o=await t.validator(s,i);a(),e=[...e,...o.issues??[]],"output"in o&&(s=o.output)}}catch(i){a(),e=[{message:i instanceof Error?i.message:"Unable to validate this value."}]}return e=[...e,...t.issues??[]],{output:e.some((i=>"warning"!==i.severity))?void 0:s,issues:e}}({raw:this.raw,value:this.selected,context:this.config.context,signal:i.signal},this.config);this.required&&!this.raw.trim()?t.issues=[...t.issues,{message:"A value is required."}]:!this.raw||null!==this.selected||this.config.allowFreeText||this.config.allowCreate||(t.issues=[...t.issues,{message:"Choose a suggestion."}]),t.issues.some((i=>"warning"!==i.severity))&&(t.output=void 0),!i.signal.aborted&&this.alive&&this.setValidation(t)}catch{}return this.validation}render(){const i=[this.helpOpen?"help-text":"",this.validation.issues.length?"validation":""].filter(Boolean).join(" ")||void 0,t=this.loading?"Loading suggestions…":this.lookupError||(this.expanded?`${this.rows.length} suggestions available.`:""),s=[...new Set(this.rows.map((i=>i.group??"")))];return e(a,{key:"b485462943bef9e5cb0a4b42f82888024132ab3a","data-size":this.size,"data-validation":this.validation.status,onFocusout:this.onFocusOut},e("label",{key:"99db32d80b0a250ff4ebea8481dda94be53df2eb",htmlFor:"input",part:"label"},this.label,this.required?" *":""),e("div",{key:"922adddf41c07215d3ec73947e8e3fe801c7ef89",class:"field",part:"field",ref:i=>this.field=i},e("input",{key:"557780297c5afee8112a5085984c5dd4ea1a02be",id:"input",ref:i=>this.input=i,role:"combobox","aria-autocomplete":"list","aria-expanded":String(this.expanded),"aria-controls":"listbox","aria-activedescendant":this.expanded&&this.active>=0?`option-${this.active}`:void 0,"aria-describedby":i,"aria-invalid":String("error"===this.validation.status),"aria-busy":String("pending"===this.validation.status),value:this.display,placeholder:this.placeholder,name:this.name||void 0,disabled:this.disabled,readOnly:this.readOnly,required:this.required,autoComplete:"off",part:"input",onInput:this.onInput,onKeyDown:this.onKeydown,onCompositionstart:()=>this.composing=!0,onCompositionend:()=>{this.composing=!1,this.onInput(new InputEvent("input"))}}),this.clearable&&e("button",{key:"ab180bacc7f5232eb517b7fed9bee0d62a4b1156",type:"button",part:"affordance","aria-label":`Clear ${this.label}`,disabled:this.disabled||this.readOnly,onClick:()=>{this.commit(null,"",null,"clear","pointer"),this.close(),this.input?.focus()}},"×"),this.help&&e("button",{key:"b4ea9b44c9e22eb9ac259fb67b86368eede2b13f",id:"help",type:"button",part:"affordance","aria-label":`Help for ${this.label}`,disabled:this.disabled},e("span",{key:"36222d7a98a4f6abb12f785e9b4f28c2479a4e37","aria-hidden":"true"},"?")),this.disclosure&&e("button",{key:"1d8757b7c817575b6915d0e8c164e20776df83e5",type:"button",part:"affordance","aria-label":`Suggestions for ${this.label}`,"aria-controls":"listbox","aria-expanded":String(this.expanded),disabled:this.disabled||this.readOnly,onClick:()=>{this.expanded?this.close():this.open("disclosure"),this.input?.focus()}},e("span",{key:"cd2dad7694dc24104521a58d4182d6e866f54095","aria-hidden":"true"},"⌄"))),this.help&&e("ui-tooltip",{key:"5e0eecd828a0e82d94b0be5b5f3233cddca4a87b",id:"help-text",for:"help",toggleOnClick:!0,onOpen:()=>this.helpOpen=!0,onClose:()=>this.helpOpen=!1},this.help),e("div",{key:"694902d8c8f58664838a943e0e2c14c856be9a08",class:"popup",part:"popup",hidden:!this.expanded,ref:i=>this.popup=i},e("div",{key:"81b18e296151afde18c47492aa997bdd13d553bc",id:"listbox",role:"listbox","aria-label":`${this.label} suggestions`,"aria-busy":String(this.loading)},s.map((i=>e("div",{role:i?"group":"presentation","aria-label":i||void 0},i&&e("div",{class:"group",part:"group"},i),this.rows.map(((t,s)=>(t.group??"")!==i?null:e("div",{id:`option-${s}`,role:"option","aria-selected":String(this.selected===t.value),"aria-disabled":String(Boolean(t.disabled)),"data-active":this.active===s?"":void 0,part:"option",class:"option",onPointerDown:i=>i.preventDefault(),onClick:()=>this.choose(s,"pointer")},e("slot",{name:`option-${t.id}`},e("span",{class:"primary",part:"option-primary"},t.label),t.description&&e("span",{class:"secondary",part:"option-secondary"},t.description)))))))),this.canCreate&&e("div",{key:"dbf87523b5c6f17aedf15295d9703557f2d31524",id:`option-${this.rows.length}`,role:"option","aria-selected":"false",class:"option",part:"option","data-active":this.active===this.rows.length?"":void 0,onPointerDown:i=>i.preventDefault(),onClick:()=>this.choose(this.rows.length,"pointer")},e("slot",{key:"bd4bdd2b132de7f72c1e5450fb0c0d16254aeedb",name:"create"},"Create “",this.raw,"”"))),this.loading?e("div",{class:"message"},e("slot",{name:"loading"},"Loading suggestions…")):this.lookupError?e("div",{class:"message"},e("slot",{name:"error"},this.lookupError)):this.rows.length||this.canCreate?null:e("div",{class:"message"},e("slot",{name:"empty"},"No suggestions."))),e("div",{key:"0d39fb1acb6d65307fabc3f502785a19710dc4af",id:"validation",class:"message",part:"validation",hidden:!this.validation.issues.length},this.validation.issues.map((i=>e("div",null,i.message)))),e("div",{key:"a83334d72b90ca0f411e6161a8bf5e2e8c2e33a8",class:"sr-only",role:"status","aria-live":"polite","aria-atomic":"true"},t," ","pending"===this.validation.status?"Checking value…":this.validation.issues.map((i=>i.message)).join(" ")))}static get watchers(){return{value:[{syncValue:0}],query:[{syncQuery:0}],disabled:[{syncDisabled:0}],readOnly:[{syncDisabled:0}],config:[{syncConfig:0}]}}};n.style=":host{display:grid;gap:var(--ui-space-1);min-inline-size:0;color:var(--ui-text-primary);font:inherit}label{color:var(--ui-field-label-color, var(--ui-text-primary));font-size:var(--ui-field-label-size, 0.875rem);font-weight:var(--ui-field-label-weight, 500)}.field{display:flex;min-inline-size:0;border:1px solid var(--ui-control-border, var(--ui-border-default));border-radius:var(--ui-radius-2);background:var(--ui-control-surface, var(--ui-surface-default))}.field:focus-within{border-color:var(--ui-control-focus, var(--ui-focus-ring));outline:2px solid var(--ui-control-focus, var(--ui-focus-ring));outline-offset:1px}input{appearance:none;width:100%;min-inline-size:0;min-block-size:var(--ui-control-min-block-size, 2.75rem);box-sizing:border-box;border:0;border-radius:inherit;background:transparent;color:inherit;font:inherit;line-height:var(--ui-line-height-md);padding:var(--ui-space-2) var(--ui-space-3);margin:0;outline:none}:host([data-size='sm']) input{min-block-size:var(--ui-field-compact-size, 2rem);padding:var(--ui-space-1) var(--ui-space-2)}button{appearance:none;border:0;border-radius:var(--ui-radius-2);background:transparent;color:var(--ui-field-affordance-color, var(--ui-text-secondary));font:inherit;font-weight:var(--ui-field-affordance-weight, 400);min-inline-size:2rem;padding:var(--ui-space-1);cursor:pointer}button:hover:enabled{background:var(--ui-surface-muted);color:var(--ui-text-primary)}button:focus-visible{outline:2px solid var(--ui-focus-ring);outline-offset:-3px}input:disabled,button:disabled{color:var(--ui-text-muted);cursor:not-allowed}.field:has(input:disabled){background:var(--ui-control-surface-disabled, var(--ui-surface-muted))}:host([data-validation='error']) .field{border-color:var(--ui-danger-solid, var(--ui-accent-active))}.popup{box-sizing:border-box;min-inline-size:12rem;max-inline-size:calc(100vw - 1rem);max-block-size:var(--ui-combobox-max-block-size, 18rem);overflow:auto;margin:0;padding:var(--ui-space-1);border:1px solid var(--ui-border-default);border-radius:var(--ui-radius-2);background:var(--ui-surface-elevated);color:var(--ui-text-primary);box-shadow:var(--ui-shadow-md)}[hidden]{display:none !important}.option{padding:var(--ui-space-2) var(--ui-space-3);border-radius:var(--ui-radius-1);cursor:pointer;overflow-wrap:anywhere}.option:hover,.option[data-active]{background:var(--ui-surface-muted);outline:1px solid var(--ui-focus-ring);outline-offset:-1px}.option[aria-disabled='true']{color:var(--ui-text-muted);cursor:not-allowed}.primary{display:block;color:var(--ui-option-primary-color, var(--ui-text-primary));font-weight:var(--ui-option-primary-weight, 500)}.secondary{display:block;color:var(--ui-option-secondary-color, var(--ui-text-secondary));font-weight:var(--ui-option-secondary-weight, 400);font-size:var(--ui-font-size-sm)}.message,.group{color:var(--ui-field-message-color, var(--ui-text-secondary));font-weight:var(--ui-field-message-weight, 400);font-size:var(--ui-font-size-sm);line-height:var(--ui-line-height-md);overflow-wrap:anywhere}.group,.popup .message{padding:var(--ui-space-2) var(--ui-space-3)}.sr-only{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media (pointer: coarse){button{min-inline-size:2.75rem;min-block-size:2.75rem}}@media (forced-colors: active){.field,.popup{border-color:CanvasText}.option[data-active]{outline-color:Highlight}}";export{n as ui_combobox}
@@ -0,0 +1 @@
1
+ import{r as t,g as e,h as i,H as s}from"./p-8BGiMGQ0.js";import{d as n,e as c}from"./p-JwSoedEO.js";import{i as o,c as a}from"./p-BnGhGgTH.js";const h=class{constructor(e){t(this,e)}get host(){return e(this)}checked;defaultChecked=!1;disabled=!1;indeterminate=!1;required=!1;value="on";internalChecked=!1;slotRef;syncFromProp(){o(this.checked)&&(this.internalChecked=this.checked)}syncToInput(){const t=this.getInput();t&&(this.host.dataset.disabled=this.disabled?"true":"",this.host.setAttribute("aria-disabled",String(this.disabled)),t.checked=this.internalChecked,t.indeterminate=this.indeterminate,t.disabled=this.disabled,t.required=this.required,t.value=this.value)}componentDidLoad(){this.internalChecked=a(this.checked,this.defaultChecked),this.slotRef?.addEventListener("slotchange",(()=>this.syncToInput())),this.syncToInput();const t=this.getInput();t?.addEventListener("change",this.onInputChange)}disconnectedCallback(){const t=this.getInput();t?.removeEventListener("change",this.onInputChange)}componentDidUpdate(){this.syncToInput()}getInput(){const t=this.host.shadowRoot?.querySelector("slot");return(t?.assignedElements()??Array.from(this.host.children)).find((t=>t instanceof HTMLInputElement&&"checkbox"===t.type))??null}onInputChange=t=>{const e=t.target;if(!e)return;const i=e.checked;o(this.checked)?this.syncToInput():this.internalChecked=i,this.indeterminate=e.indeterminate,n(this.host,"change",{checked:i,value:this.value,trigger:c(t)})};render(){return i(s,{key:"eb46eb41a5ab871058960bd2aa1163a03144bc0f",role:"checkbox","aria-checked":this.indeterminate?"mixed":String(this.internalChecked),"aria-disabled":String(this.disabled),"data-disabled":this.disabled?"":void 0},i("slot",{key:"ce18b1f1b63efebf048cd67b87064641cf4d915c",ref:t=>this.slotRef=t}))}static get watchers(){return{checked:[{syncFromProp:0}],internalChecked:[{syncToInput:0}],indeterminate:[{syncToInput:0}],disabled:[{syncToInput:0}],required:[{syncToInput:0}]}}};h.style=":host{display:inline-flex;align-items:center;gap:var(--ui-space-2);color:var(--ui-text-primary)}:host([aria-disabled='true']),:host([data-disabled='true']){opacity:0.6;cursor:not-allowed}::slotted(input[type='checkbox']){accent-color:var(--ui-accent-solid);width:1.125em;height:1.125em;cursor:pointer}::slotted(input[type='checkbox']:focus-visible){outline:2px solid var(--ui-accent-solid);outline-offset:2px}";export{h as ui_checkbox}
@@ -0,0 +1 @@
1
+ import{r as t,c as i,g as s,h as e,H as r}from"./p-8BGiMGQ0.js";import{o,c as h}from"./p-C-0syqXZ.js";import{d as a}from"./p-JwSoedEO.js";import{i as n,c}from"./p-BnGhGgTH.js";import{a as l}from"./p-Bu0dmLBE.js";const d=class{constructor(s){t(this,s),this.opened=i(this,"open"),this.closed=i(this,"close")}get host(){return s(this)}for="";open;defaultOpen=!1;placement="top-start";showDelay=500;hideDelay=100;toggleOnClick=!1;pinned=!1;focused=!1;opened;closed;internalOpen=!1;overlayId=`ui-tooltip-${Math.random().toString(36).slice(2,11)}`;trigger=null;surface=null;showTimer=null;hideTimer=null;syncFromProp(){this.clearTimers(),n(this.open)&&(this.internalOpen=this.open)}resetSurface(){this.syncTrigger(),this.setupSurface(),this.syncOverlay()}syncOverlay(){this.internalOpen?(this.surface?.show(),o({id:this.overlayId,modal:!1,element:this.host,relatedElements:this.trigger?[this.trigger]:void 0,dismissible:!0,requestClose:(t,i)=>this.handleRequestClose(t,i)})):(this.surface?.hide(),h(this.overlayId))}componentDidLoad(){this.host.id||(this.host.id=this.overlayId),this.internalOpen=c(this.open,this.defaultOpen),this.syncTrigger(),this.setupSurface(),this.host.addEventListener("pointerenter",this.onSurfaceEnter),this.host.addEventListener("pointerleave",this.onTriggerLeave),this.syncOverlay()}componentDidUpdate(){this.syncTrigger()}disconnectedCallback(){this.clearTimers(),this.detachTriggerListeners(),this.surface?.destroy(),this.surface=null,this.host.removeEventListener("pointerenter",this.onSurfaceEnter),this.host.removeEventListener("pointerleave",this.onTriggerLeave),h(this.overlayId)}syncTrigger(){const t=this.for?this.host.getRootNode().getElementById(this.for):this.host.previousElementSibling;t!==this.trigger&&(this.detachTriggerListeners(),this.trigger=t,this.attachTriggerListeners(),this.surface?.setAnchor(t))}setupSurface(){this.surface?.destroy(),this.surface=l(this.host,{anchor:this.trigger,placement:this.placement})}attachTriggerListeners(){if(this.detachTriggerListeners(),!this.trigger)return;const t=new Set((this.trigger.getAttribute("aria-describedby")||"").split(/\s+/).filter(Boolean));t.add(this.host.id),this.trigger.setAttribute("aria-describedby",[...t].join(" ")),this.trigger.addEventListener("click",this.onTriggerClick),this.trigger.addEventListener("keydown",this.onTriggerKeydown),this.trigger.addEventListener("pointerenter",this.onTriggerEnter),this.trigger.addEventListener("pointerleave",this.onTriggerLeave),this.trigger.addEventListener("focusin",this.onTriggerFocusIn),this.trigger.addEventListener("focusout",this.onTriggerFocusOut)}detachTriggerListeners(){if(!this.trigger)return;const t=(this.trigger.getAttribute("aria-describedby")||"").split(/\s+/).filter((t=>t&&t!==this.host.id));t.length?this.trigger.setAttribute("aria-describedby",t.join(" ")):this.trigger.removeAttribute("aria-describedby"),this.trigger.removeEventListener("click",this.onTriggerClick),this.trigger.removeEventListener("keydown",this.onTriggerKeydown),this.trigger.removeEventListener("pointerenter",this.onTriggerEnter),this.trigger.removeEventListener("pointerleave",this.onTriggerLeave),this.trigger.removeEventListener("focusin",this.onTriggerFocusIn),this.trigger.removeEventListener("focusout",this.onTriggerFocusOut)}clearShowTimer(){null!==this.showTimer&&(clearTimeout(this.showTimer),this.showTimer=null)}clearHideTimer(){null!==this.hideTimer&&(clearTimeout(this.hideTimer),this.hideTimer=null)}clearTimers(){this.clearShowTimer(),this.clearHideTimer()}setInteractionOpen(t,i){this.internalOpen!==t&&(n(this.open)||(this.internalOpen=t),a(this.host,t?"open":"close",{open:t,reason:"action",trigger:i}))}onSurfaceEnter=()=>this.clearHideTimer();onTriggerClick=t=>{this.toggleOnClick&&(this.clearTimers(),this.pinned=!this.pinned,this.setInteractionOpen(this.pinned,0===t.detail?"keyboard":"pointer"))};onTriggerKeydown=t=>{"Escape"===t.key&&this.clearTimers()};onTriggerEnter=t=>{"touch"!==t.pointerType&&(this.clearHideTimer(),this.internalOpen||null!==this.showTimer||(this.showTimer=setTimeout((()=>{this.showTimer=null,this.setInteractionOpen(!0,"pointer")}),Math.max(0,this.showDelay))))};onTriggerLeave=()=>{this.clearShowTimer(),this.focused||this.pinned||!this.internalOpen||null!==this.hideTimer||(this.hideTimer=setTimeout((()=>{this.hideTimer=null,this.setInteractionOpen(!1,"pointer")}),Math.max(0,this.hideDelay)))};onTriggerFocusIn=()=>{this.focused=!0,this.clearTimers(),this.setInteractionOpen(!0,"keyboard")};onTriggerFocusOut=t=>{const i=t.relatedTarget;i&&this.host.contains(i)||(this.focused=!1,this.pinned=!1,this.clearTimers(),this.setInteractionOpen(!1,"keyboard"))};handleRequestClose(t,i){("escape"===t||"light-dismiss"===t&&this.toggleOnClick)&&(this.pinned=!1,this.clearTimers(),n(this.open)||(this.internalOpen=!1),a(this.host,"close",{open:!1,reason:t,trigger:i}))}render(){return e(r,{key:"ce34c51bc3a9c9f7f31b7f0d329175df0cee1ab3",role:"tooltip",hidden:!this.internalOpen,"data-open":this.internalOpen?"":void 0},e("div",{key:"e5bb2bcb146fe8ec3b4e9a6abb550961181e3c06",class:"tooltip__surface"},e("slot",{key:"bdb71bfcb0f72c212cbb5c64fb69510fdded4afb"})))}static get watchers(){return{open:[{syncFromProp:0}],for:[{resetSurface:0}],placement:[{resetSurface:0}],internalOpen:[{syncOverlay:0}]}}};d.style=":host{position:fixed;inset:auto;margin:0;display:inline-block;box-sizing:border-box;padding:0;border:0;border-radius:0;background:transparent;opacity:0;transform:translateY(4px);transition:opacity var(--ui-motion-fast) var(--ui-motion-ease), transform var(--ui-motion-fast) var(--ui-motion-ease), display var(--ui-motion-fast) allow-discrete, overlay var(--ui-motion-fast) allow-discrete}.tooltip__surface{box-sizing:border-box;border:1px solid var(--ui-border-default);border-radius:var(--ui-radius-2);background:var(--ui-surface-elevated);color:var(--ui-text-primary);padding:var(--ui-space-2) var(--ui-space-3);font-size:var(--ui-font-size-sm);box-shadow:var(--ui-shadow-md)}:host(:popover-open){opacity:1;transform:translateY(0)}@starting-style{:host(:popover-open){opacity:0;transform:translateY(4px)}}:host([hidden]){display:none !important}@media (prefers-reduced-motion: reduce){:host{transition:none}}";export{d as ui_tooltip}
@@ -0,0 +1 @@
1
+ const o=o=>void 0!==o,i=(o,i)=>void 0===o?i:o;export{i as c,o as i}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @license lucide v0.554.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */
7
+ const a={"align-center":[["path",{d:"M21 5H3"}],["path",{d:"M17 12H7"}],["path",{d:"M19 19H5"}]],"align-left":[["path",{d:"M21 5H3"}],["path",{d:"M15 12H3"}],["path",{d:"M17 19H3"}]],"align-right":[["path",{d:"M21 5H3"}],["path",{d:"M21 12H9"}],["path",{d:"M21 19H7"}]],bold:[["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"}]],braces:[["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"}],["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"}]],"circle-check":[["circle",{cx:"12",cy:"12",r:"10"}],["path",{d:"m9 12 2 2 4-4"}]],"circle-x":[["circle",{cx:"12",cy:"12",r:"10"}],["path",{d:"m15 9-6 6"}],["path",{d:"m9 9 6 6"}]],"chevron-down":[["path",{d:"m6 9 6 6 6-6"}]],"chevron-left":[["path",{d:"m15 18-6-6 6-6"}]],"code-xml":[["path",{d:"m18 16 4-4-4-4"}],["path",{d:"m6 8-4 4 4 4"}],["path",{d:"m14.5 4-5 16"}]],columns:[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2"}],["path",{d:"M9 3v18"}],["path",{d:"M15 3v18"}]],ellipsis:[["circle",{cx:"12",cy:"12",r:"1"}],["circle",{cx:"19",cy:"12",r:"1"}],["circle",{cx:"5",cy:"12",r:"1"}]],eraser:[["path",{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"}],["path",{d:"m5.082 11.09 8.828 8.828"}]],"grip-horizontal":[["circle",{cx:"12",cy:"9",r:"1"}],["circle",{cx:"19",cy:"9",r:"1"}],["circle",{cx:"5",cy:"9",r:"1"}],["circle",{cx:"12",cy:"15",r:"1"}],["circle",{cx:"19",cy:"15",r:"1"}],["circle",{cx:"5",cy:"15",r:"1"}]],"grip-vertical":[["circle",{cx:"9",cy:"12",r:"1"}],["circle",{cx:"9",cy:"5",r:"1"}],["circle",{cx:"9",cy:"19",r:"1"}],["circle",{cx:"15",cy:"12",r:"1"}],["circle",{cx:"15",cy:"5",r:"1"}],["circle",{cx:"15",cy:"19",r:"1"}]],"heading-1":[["path",{d:"M4 12h8"}],["path",{d:"M4 18V6"}],["path",{d:"M12 18V6"}],["path",{d:"m17 12 3-2v8"}]],"heading-2":[["path",{d:"M4 12h8"}],["path",{d:"M4 18V6"}],["path",{d:"M12 18V6"}],["path",{d:"M21 18h-4c0-4 4-3 4-6 0-1.5-2-2.5-4-1"}]],"heading-3":[["path",{d:"M4 12h8"}],["path",{d:"M4 18V6"}],["path",{d:"M12 18V6"}],["path",{d:"M17.5 10.5c1.7-1 3.5 0 3.5 1.5a2 2 0 0 1-2 2"}],["path",{d:"M17 17.5c2 1.5 4 .3 4-1.5a2 2 0 0 0-2-2"}]],highlighter:[["path",{d:"m9 11-6 6v3h9l3-3"}],["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"}]],image:[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2"}],["circle",{cx:"9",cy:"9",r:"2"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"}]],info:[["circle",{cx:"12",cy:"12",r:"10"}],["path",{d:"M12 16v-4"}],["path",{d:"M12 8h.01"}]],italic:[["line",{x1:"19",x2:"10",y1:"4",y2:"4"}],["line",{x1:"14",x2:"5",y1:"20",y2:"20"}],["line",{x1:"15",x2:"9",y1:"4",y2:"20"}]],list:[["path",{d:"M3 5h.01"}],["path",{d:"M3 12h.01"}],["path",{d:"M3 19h.01"}],["path",{d:"M8 5h13"}],["path",{d:"M8 12h13"}],["path",{d:"M8 19h13"}]],"list-ordered":[["path",{d:"M11 5h10"}],["path",{d:"M11 12h10"}],["path",{d:"M11 19h10"}],["path",{d:"M4 4h1v5"}],["path",{d:"M4 9h2"}],["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"}]],"list-todo":[["path",{d:"M13 5h8"}],["path",{d:"M13 12h8"}],["path",{d:"M13 19h8"}],["path",{d:"m3 17 2 2 4-4"}],["rect",{x:"3",y:"4",width:"6",height:"6",rx:"1"}]],merge:[["path",{d:"m8 6 4-4 4 4"}],["path",{d:"M12 2v10.3a4 4 0 0 1-1.172 2.872L4 22"}],["path",{d:"m20 22-5-5"}]],"notebook-pen":[["path",{d:"M13.4 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7.4"}],["path",{d:"M2 6h4"}],["path",{d:"M2 10h4"}],["path",{d:"M2 14h4"}],["path",{d:"M2 18h4"}],["path",{d:"M21.378 5.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z"}]],minus:[["path",{d:"M5 12h14"}]],"paint-bucket":[["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"}],["path",{d:"m5 2 5 5"}],["path",{d:"M2 13h15"}],["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"}]],"panel-bottom":[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2"}],["path",{d:"M3 15h18"}]],"panel-left":[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2"}],["path",{d:"M9 3v18"}]],"panel-right":[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2"}],["path",{d:"M15 3v18"}]],"panel-top":[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2"}],["path",{d:"M3 9h18"}]],pilcrow:[["path",{d:"M13 4v16"}],["path",{d:"M17 4v16"}],["path",{d:"M19 4H9.5a4.5 4.5 0 0 0 0 9H13"}]],plus:[["path",{d:"M5 12h14"}],["path",{d:"M12 5v14"}]],quote:[["path",{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"}],["path",{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"}]],redo:[["path",{d:"m15 14 5-5-5-5"}],["path",{d:"M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13"}]],rows:[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2"}],["path",{d:"M21 9H3"}],["path",{d:"M21 15H3"}]],split:[["path",{d:"M16 3h5v5"}],["path",{d:"M8 3H3v5"}],["path",{d:"M12 22v-8.3a4 4 0 0 0-1.172-2.872L3 3"}],["path",{d:"m15 9 6-6"}]],strikethrough:[["path",{d:"M16 4H9a3 3 0 0 0-2.83 4"}],["path",{d:"M14 12a4 4 0 0 1 0 8H6"}],["line",{x1:"4",x2:"20",y1:"12",y2:"12"}]],table:[["path",{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"}]],trash:[["path",{d:"M10 11v6"}],["path",{d:"M14 11v6"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6"}],["path",{d:"M3 6h18"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"}]],"triangle-alert":[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"}],["path",{d:"M12 9v4"}],["path",{d:"M12 17h.01"}]],underline:[["path",{d:"M6 4v6a6 6 0 0 0 12 0V4"}],["line",{x1:"4",x2:"20",y1:"20",y2:"20"}]],undo:[["path",{d:"M9 14 4 9l5-5"}],["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"}]]};
8
+ /**
9
+ * @license lucide v0.554.0 - ISC
10
+ *
11
+ * This source code is licensed under the ISC license.
12
+ * See the LICENSE file in the root directory of this source tree.
13
+ */function h(a){return String(a).replaceAll("&","&amp;").replaceAll('"',"&quot;")}function t(a){const[t,d]=a;return`<${t}${function(a){return Object.entries(a).map((([a,t])=>` ${a}="${h(t)}"`)).join("")}(d)}></${t}>`}function d(d,c="looma-icon"){return[`<svg class="${h(c)}" data-looma-icon="${d}" aria-hidden="true" focusable="false"`,' viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"',' stroke-linecap="round" stroke-linejoin="round">',a[d].map(t).join(""),"</svg>"].join("")}export{d as l}
@@ -1 +1 @@
1
- import{r as i,h as o,H as t}from"./p-8BGiMGQ0.js";const a=class{constructor(o){i(this,o)}disabled=!1;mobileOnly=!1;label="";render(){return o(t,{key:"c9a7d8c9b6d6608566b21621a73d939f372c830d","data-disabled":this.disabled?"":void 0},o("button",{key:"8eddccaf6be2f028bc02df967038843120045b84",type:"button","aria-label":this.label||void 0,disabled:this.disabled},o("slot",{key:"0ea12efb9cb8ecec06238066827a734fb3b01e1e"})))}};a.style=":host{position:fixed;inset-block-end:calc( var(--ui-floating-action-button-bottom, var(--ui-space-6, 1.5rem)) + env(safe-area-inset-bottom) );inset-inline-end:max( var(--ui-floating-action-button-inline-end, var(--ui-space-5, 1.25rem)), env(safe-area-inset-right) );inline-size:var(--ui-floating-action-button-size, 56px);block-size:var(--ui-floating-action-button-size, 56px);display:inline-flex;z-index:var(--ui-floating-action-button-z-index, 100)}button{appearance:none;inline-size:100%;block-size:100%;border:none;border-radius:999px;margin:0;padding:0;display:inline-flex;align-items:center;justify-content:center;background:var(--ui-floating-action-button-bg, var(--ui-accent-solid));color:var(--ui-floating-action-button-color, var(--ui-text-on-accent));box-shadow:var( --ui-floating-action-button-shadow, 0 4px 12px color-mix(in srgb, var(--ui-accent-solid) 40%, transparent) );cursor:pointer;transition:background-color var(--ui-motion-fast, 160ms) var(--ui-motion-ease, ease), transform var(--ui-motion-fast, 160ms) var(--ui-motion-ease, ease), box-shadow var(--ui-motion-fast, 160ms) var(--ui-motion-ease, ease)}button:hover:enabled{background:var(--ui-floating-action-button-hover-bg, var(--ui-accent-hover));box-shadow:var( --ui-floating-action-button-hover-shadow, 0 6px 16px color-mix(in srgb, var(--ui-accent-solid) 50%, transparent) )}button:active:enabled{transform:scale(var(--ui-floating-action-button-active-scale, 0.94))}button:focus-visible{outline:2px solid var(--ui-focus-ring);outline-offset:2px}button:disabled,:host([disabled]){opacity:0.6;cursor:not-allowed}::slotted(svg){inline-size:var(--ui-floating-action-button-icon-size, 24px);block-size:var(--ui-floating-action-button-icon-size, 24px);flex-shrink:0}@media (min-width: 768px){:host([mobile-only]){display:none}}";export{a as ui_floating_action_button}
1
+ import{r as i,h as o,H as a}from"./p-8BGiMGQ0.js";const t=class{constructor(o){i(this,o)}disabled=!1;mobileOnly=!1;label="";render(){return o(a,{key:"b41f0aaabbcd23cb79ac06245e69fd8ecb9c9912","data-disabled":this.disabled?"":void 0},o("button",{key:"36a023bd66d38845f1116874380d7a28bb46b5a2",type:"button","aria-label":this.label||void 0,disabled:this.disabled},o("slot",{key:"412c41e4732cc230f84e7758bfc7faab7e0802e2"})))}};t.style=":host{position:fixed;inset-block-end:calc( var(--ui-floating-action-button-bottom, var(--ui-space-6, 1.5rem)) + env(safe-area-inset-bottom) );inset-inline-end:max( var(--ui-floating-action-button-inline-end, var(--ui-space-5, 1.25rem)), env(safe-area-inset-right) );inline-size:var(--ui-floating-action-button-size, 56px);block-size:var(--ui-floating-action-button-size, 56px);display:inline-flex;z-index:var(--ui-floating-action-button-z-index, 100)}button{appearance:none;inline-size:100%;block-size:100%;border:none;border-radius:999px;margin:0;padding:0;display:inline-flex;align-items:center;justify-content:center;background:var(--ui-floating-action-button-bg, var(--ui-accent-solid));color:var(--ui-floating-action-button-color, var(--ui-text-on-accent));box-shadow:var( --ui-floating-action-button-shadow, 0 4px 12px color-mix(in srgb, var(--ui-accent-solid) 40%, transparent) );cursor:pointer;transition:background-color var(--ui-motion-fast, 160ms) var(--ui-motion-ease, ease), transform var(--ui-motion-fast, 160ms) var(--ui-motion-ease, ease), box-shadow var(--ui-motion-fast, 160ms) var(--ui-motion-ease, ease)}button:hover:enabled{background:var(--ui-floating-action-button-hover-bg, var(--ui-accent-hover));box-shadow:var( --ui-floating-action-button-hover-shadow, 0 6px 16px color-mix(in srgb, var(--ui-accent-solid) 50%, transparent) )}button:active:enabled{transform:scale(var(--ui-floating-action-button-active-scale, 0.94))}button:focus-visible{outline:2px solid var(--ui-focus-ring);outline-offset:2px}button:disabled,:host([disabled]){opacity:0.6;cursor:not-allowed}::slotted(svg){inline-size:var(--ui-floating-action-button-icon-size, 24px);block-size:var(--ui-floating-action-button-icon-size, 24px);flex-shrink:0}@media (min-width: 768px){:host([mobile-only]){display:none}}";export{t as ui_floating_action_button}
@@ -0,0 +1 @@
1
+ import{r as a,h as i,H as o}from"./p-8BGiMGQ0.js";import{l}from"./p-CoFximGM.js";const r={info:"info",note:"notebook-pen",warning:"triangle-alert",success:"circle-check",error:"circle-x"},u=class{constructor(i){a(this,i)}tone="info";render(){return i(o,{key:"94bae6fbb688e5c8da979a3bebc12c51b8689c8a",role:"note","data-tone":this.tone},i("div",{key:"8fe1a3dae5b7cd3679d187cef018fa0cd810fb76",class:"callout__surface"},i("span",{key:"ed62ad8e29c30489e075631d83f1732d7a53a378",class:"icon","aria-hidden":"true",innerHTML:l(r[this.tone]??r.info)}),i("div",{key:"97638d28e3979f71913c17b2501a90e3a9251f0f",class:"content"},i("slot",{key:"6a91a0d3f189eae28aabbe278924ba7f89015f34"}))))}};u.style=":host{--ui-callout-surface:var(--ui-info-soft);--ui-callout-text:var(--ui-text-primary);--ui-callout-border:var(--ui-info-solid);--ui-callout-icon:var(--ui-info-solid);--ui-callout-padding-block:var(--ui-space-2);--ui-callout-padding-inline:var(--ui-space-3);--ui-callout-icon-column:1rem;--ui-callout-gap:var(--ui-space-2);--ui-callout-icon-size:1rem;--ui-callout-border-width:1px;--ui-callout-leading-border-width:4px;display:block;max-width:100%}.callout__surface{display:grid;grid-template-columns:var(--ui-callout-icon-column) minmax(0, 1fr);gap:var(--ui-callout-gap);align-items:start;padding:var(--ui-callout-padding-block) var(--ui-callout-padding-inline);border:var(--ui-callout-border-width) solid color-mix(in srgb, var(--ui-callout-border) 35%, transparent);border-inline-start:var(--ui-callout-leading-border-width) solid var(--ui-callout-border);border-radius:var(--ui-radius-2);background:var(--ui-callout-surface);color:var(--ui-callout-text);font-family:var(--ui-font-family-sans);font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-normal);line-height:var(--ui-line-height-md)}.icon{display:grid;place-items:center;inline-size:var(--ui-callout-icon-column);block-size:var(--ui-callout-icon-column);color:var(--ui-callout-icon)}.icon svg{inline-size:var(--ui-callout-icon-size);block-size:var(--ui-callout-icon-size)}.content{min-inline-size:0}:host([data-tone='note']){--ui-callout-surface:var(--ui-surface-muted);--ui-callout-border:var(--ui-border-strong);--ui-callout-icon:var(--ui-text-secondary)}:host([data-tone='warning']){--ui-callout-surface:var(--ui-warning-soft);--ui-callout-border:var(--ui-warning-solid);--ui-callout-icon:var(--ui-warning-solid)}:host([data-tone='success']){--ui-callout-surface:var(--ui-success-soft);--ui-callout-border:var(--ui-success-solid);--ui-callout-icon:var(--ui-success-solid)}:host([data-tone='error']){--ui-callout-surface:var(--ui-danger-soft);--ui-callout-border:var(--ui-danger-solid);--ui-callout-icon:var(--ui-danger-solid)}";export{u as ui_callout}
@@ -0,0 +1 @@
1
+ import{r as t,g as i,h as e,H as s}from"./p-8BGiMGQ0.js";import{c as r}from"./p-hgBUJRDa.js";const a=class{constructor(i){t(this,i)}get host(){return i(this)}invalid=!1;disabled=!1;required=!1;observer=null;activeInput=null;ownedDescriptionIds=new Set;wireQueued=!1;componentDidLoad(){this.observer=new MutationObserver(this.scheduleWire),this.observer.observe(this.host,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["aria-describedby","data-slot","id","role"]}),this.wire()}componentDidUpdate(){this.scheduleWire()}disconnectedCallback(){this.observer?.disconnect(),this.observer=null,this.removeOwnedDescriptions(this.activeInput),this.activeInput=null,this.ownedDescriptionIds.clear()}descriptionIds(t){return Array.from(new Set((t.getAttribute("aria-describedby")??"").split(/\s+/).filter(Boolean)))}removeOwnedDescriptions(t){if(!t||0===this.ownedDescriptionIds.size)return;const i=this.descriptionIds(t).filter((t=>!this.ownedDescriptionIds.has(t)));i.length>0?t.setAttribute("aria-describedby",i.join(" ")):t.removeAttribute("aria-describedby")}scheduleWire=()=>{this.wireQueued||(this.wireQueued=!0,queueMicrotask((()=>{this.wireQueued=!1,this.wire()})))};wire(){const t=this.host.querySelector("label"),i=this.host.querySelector("input, textarea, select"),e=this.host.querySelector('[data-slot="help"]'),s=this.host.querySelector('[data-slot="error"], [role="alert"]');if(i!==this.activeInput&&(this.removeOwnedDescriptions(this.activeInput),this.activeInput=i,this.ownedDescriptionIds.clear()),!i)return;i.id||(i.id=r("form-field-input")),t&&!t.getAttribute("for")&&t.setAttribute("for",i.id);const a=this.ownedDescriptionIds,o=this.descriptionIds(i).filter((t=>!a.has(t))),d=[];e&&(e.id||(e.id=r("form-field-help")),d.push(e.id)),s&&(s.id||(s.id=r("form-field-error")),d.push(s.id));const l=d.filter((t=>!o.includes(t))),n=Array.from(new Set([...o,...d])).join(" ");i.getAttribute("aria-describedby")!==n&&(n?i.setAttribute("aria-describedby",n):i.removeAttribute("aria-describedby")),this.ownedDescriptionIds=new Set(l),i.disabled=this.disabled,i.required=this.required,i.setAttribute("aria-invalid",this.invalid?"true":"false")}render(){return e(s,{key:"0b8fd5608631b5f9159fdf99d6eba918cc6587e4","data-invalid":this.invalid?"":void 0,"data-disabled":this.disabled?"":void 0,"data-required":this.required?"":void 0},e("slot",{key:"4ed78782bcc8b6699a40d8402994b486d71d730a",onSlotchange:this.scheduleWire}))}};a.style=":host{display:grid;gap:var(--ui-space-2);min-inline-size:0;align-content:start;color:var(--ui-text-primary)}::slotted(label){color:var(--ui-text-secondary);font-size:0.95rem}::slotted([data-slot='help']){min-block-size:var(--ui-form-field-help-min-block-size, 0);color:var(--ui-text-muted);font-size:0.875rem;line-height:var(--ui-line-height-md)}::slotted([data-slot='error']),::slotted([role='alert']){color:var(--ui-accent-active);font-size:0.875rem}";export{a as ui_form_field}
@@ -0,0 +1 @@
1
+ import{r as e,g as t,h as i,H as r}from"./p-8BGiMGQ0.js";import{d as o}from"./p-JwSoedEO.js";import{i as a,c as s}from"./p-BnGhGgTH.js";const c=class{constructor(t){e(this,t)}get host(){return t(this)}checked;defaultChecked=!1;disabled=!1;required=!1;value="on";internalChecked=!1;syncFromProp(){a(this.checked)&&(this.internalChecked=this.checked)}componentDidLoad(){this.internalChecked=s(this.checked,this.defaultChecked)}toggle=e=>{if(this.disabled)return;const t=!this.internalChecked;a(this.checked)||(this.internalChecked=t),o(this.host,"change",{checked:t,value:this.value,trigger:e})};onKeydown=e=>{" "!==e.key||this.disabled||(e.preventDefault(),this.toggle("keyboard"))};onClick=e=>{e.target!==this.host?.shadowRoot?.querySelector("input")&&this.toggle("pointer")};render(){return i(r,{key:"e11500e37da6a52c0cb4e143254363f85911aac1",role:"switch","aria-checked":String(this.internalChecked),"aria-disabled":String(this.disabled),"data-disabled":this.disabled?"":void 0,tabIndex:this.disabled?-1:0,onKeyDown:this.onKeydown,onClick:this.onClick},i("input",{key:"777310a90b66f67e6a8eb0f77da5274e32f10db0",type:"checkbox",checked:this.internalChecked,disabled:this.disabled,required:this.required,value:this.value,"aria-hidden":"true",tabIndex:-1,onChange:e=>{const t=e.target,i=t.checked;a(this.checked)||(this.internalChecked=i),o(this.host,"change",{checked:i,value:this.value,trigger:"pointer"}),a(this.checked)&&(t.checked=this.internalChecked)}}),i("slot",{key:"7d72db5b720c0af0c4561b485ca558de61e1ce6e"}))}static get watchers(){return{checked:[{syncFromProp:0}]}}};c.style=":host{display:inline-flex;align-items:center;gap:var(--ui-space-2);color:var(--ui-text-primary)}:host([aria-disabled='true']),:host([data-disabled='true']){opacity:0.6;cursor:not-allowed}:host([role='switch']){cursor:pointer}:host input[type='checkbox']{appearance:none;-webkit-appearance:none;display:block;position:relative;width:2.25rem;height:1.25rem;padding:0;border:1px solid var(--ui-border-default);border-radius:999px;background:var(--ui-surface-muted);cursor:pointer;transition:background-color var(--ui-motion-fast) var(--ui-motion-ease), border-color var(--ui-motion-fast) var(--ui-motion-ease);margin:0}:host input[type='checkbox']::after{content:'';position:absolute;top:2px;left:2px;width:0.875rem;height:0.875rem;border-radius:999px;background:var(--ui-surface-default);border:1px solid var(--ui-border-default);transition:transform var(--ui-motion-fast) var(--ui-motion-ease)}:host input[type='checkbox']:checked{background:var(--ui-accent-solid);border-color:var(--ui-accent-solid)}:host input[type='checkbox']:checked::after{transform:translateX(calc(2.25rem - 0.875rem - 4px));background:var(--ui-text-on-accent);border-color:var(--ui-text-on-accent)}:host input[type='checkbox']:focus-visible{outline:2px solid var(--ui-accent-solid);outline-offset:2px}";export{c as ui_switch}
@@ -0,0 +1 @@
1
+ import{r as i,g as e,h as t,H as a}from"./p-8BGiMGQ0.js";import{d as r,e as o}from"./p-JwSoedEO.js";import{l as s}from"./p-CoFximGM.js";const n=class{constructor(e){i(this,e)}get host(){return e(this)}itemId="";label="";dropDepth;subtreeDepth;container=!1;sortable=!1;dragType="item";dropScope="";accepts="";expanded;defaultExpanded=!1;selected=!1;disabled=!1;internalExpanded=!1;structuralLevel=1;tabStop=!1;syncExpandedFromProp(){void 0!==this.expanded&&(this.internalExpanded=this.expanded)}componentWillLoad(){this.internalExpanded=this.expanded??this.defaultExpanded,this.updateStructuralLevel()}connectedCallback(){this.host.addEventListener("ui-tree-auto-expand",this.onAutoExpand),this.host.addEventListener("ui-tree-structure-sync",this.updateStructuralLevel),this.host.addEventListener("ui-tree-roving-tab-stop",this.onRovingTabStop),this.host.addEventListener("ui-tree-request-expanded",this.onExpansionRequest)}disconnectedCallback(){this.host.removeEventListener("ui-tree-auto-expand",this.onAutoExpand),this.host.removeEventListener("ui-tree-structure-sync",this.updateStructuralLevel),this.host.removeEventListener("ui-tree-roving-tab-stop",this.onRovingTabStop),this.host.removeEventListener("ui-tree-request-expanded",this.onExpansionRequest)}updateStructuralLevel=()=>{const i=this.host.closest("ui-tree");let e=this.host.parentElement?.closest("ui-tree-item")??null,t=1;for(;e&&i?.contains(e);)t+=1,e=e.parentElement?.closest("ui-tree-item")??null;this.structuralLevel!==t&&(this.structuralLevel=t)};setExpanded(i,e){const t=this.isExpanded();this.container&&!this.disabled&&t!==i&&(void 0===this.expanded&&(this.internalExpanded=i),r(this.host,"expand",{id:this.itemId,expanded:i,trigger:e}),this.host.dispatchEvent(new CustomEvent("ui-tree-expansion-change")))}isExpanded(){return this.expanded??this.internalExpanded}onAutoExpand=()=>{this.setExpanded(!0,"pointer")};onRovingTabStop=i=>{this.tabStop=Boolean(i.detail?.active)&&!this.disabled};onExpansionRequest=i=>{const e=i.detail;"boolean"==typeof e?.expanded&&this.setExpanded(e.expanded,e.trigger??"keyboard")};onDisclosureClick=i=>{i.stopPropagation(),this.setExpanded(!this.isExpanded(),o(i))};onDisclosureKeydown=i=>{"ArrowRight"!==i.key&&"ArrowLeft"!==i.key||(i.preventDefault(),i.stopPropagation(),this.setExpanded("ArrowRight"===i.key,"keyboard"))};onRowClick=i=>{this.container&&!this.disabled&&(i.composedPath().some((i=>i instanceof HTMLElement&&(i.matches('a, button, input, select, textarea, [role="button"], [role="link"]')||"actions"===i.getAttribute("slot"))))||this.setExpanded(!this.isExpanded(),o(i)))};render(){const i=this.structuralLevel,e=this.isExpanded(),r=`${e?"Collapse":"Expand"} ${this.label||"item"}`,o=`Drag ${this.label||"item"} to reorder`;return t(a,{key:"36ad9eac3e0fe2a606e63294891b1c0697034b46",role:"treeitem","aria-label":this.label||void 0,"aria-level":String(i),"aria-expanded":this.container?String(e):void 0,"aria-selected":String(this.selected),"aria-disabled":this.disabled?"true":void 0,"data-container":this.container?"":void 0,"data-selected":this.selected?"":void 0,"data-disabled":this.disabled?"":void 0,"data-drag-type":this.dragType||"item","data-drop-scope":this.dropScope||void 0,"data-accepts":this.accepts||void 0,tabIndex:this.disabled||!this.tabStop?-1:0,style:{"--ui-tree-item-depth":String(i-1),"margin-inline-start":i>1?"var(--ui-tree-indent, 16px)":"0px"}},t("div",{key:"e92f5bc73accef3b348559ea144e0b769c98c721",class:"row",part:"row",onClick:this.onRowClick},this.sortable&&!this.disabled?t("button",{class:"drag-handle",part:"drag-handle",type:"button",draggable:!0,"aria-label":o,title:o},t("span",{innerHTML:s("grip-vertical")})):null,this.container?t("button",{class:"disclosure",part:"disclosure",type:"button","aria-label":r,"aria-expanded":String(e),disabled:this.disabled,onClick:this.onDisclosureClick,onKeyDown:this.onDisclosureKeydown},t("span",{class:{"disclosure-icon":!0,"disclosure-icon--expanded":e},innerHTML:s("chevron-down")})):t("span",{class:"disclosure-spacer","aria-hidden":"true"}),t("span",{key:"dd2d0550d6846d0a4f80a4108968bfc32c18658f",class:"leading",part:"leading"},t("slot",{key:"622d449a338dce57bc2e64aaf776471e8d3ce1b4",name:"leading"})),t("span",{key:"29c3e6ace4838ab941ada2547356288358faaeb2",class:"label",part:"label"},t("slot",{key:"f1594c11fa0b9fbe8a3c20df6edce19421cab148"})),t("span",{key:"e4a6408f86b58a325145e713d116fc09322bb0d3",class:"actions",part:"actions"},t("slot",{key:"ff3afaf1089426e19ee1fc39c6567c3d40ca4272",name:"actions"})),t("span",{key:"efcf23f7aad6c4353fa24bfe2a81001122335f72",class:"drop-indicator row-drop-indicator",part:"drop-indicator","aria-hidden":"true"})),this.container?t("div",{class:"children",part:"children",role:"group",hidden:!e},t("slot",{name:"children"})):null,t("span",{key:"21bfc8a6ad6e487cd044b5a3cbd7e8f900f2d1e1",class:"drop-indicator subtree-drop-indicator",part:"drop-indicator","aria-hidden":"true"}))}static get watchers(){return{expanded:[{syncExpandedFromProp:0}]}}};n.style=":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}}";export{n as ui_tree_item}
@@ -0,0 +1 @@
1
+ import{r as e,g as o,h as t,H as s}from"./p-8BGiMGQ0.js";import{o as r,c as i,r as a}from"./p-C-0syqXZ.js";import{d as n}from"./p-JwSoedEO.js";import{i as p,c as h}from"./p-BnGhGgTH.js";import{a as d}from"./p-Bu0dmLBE.js";const c=class{constructor(o){e(this,o)}get host(){return o(this)}open;defaultOpen=!1;for;placement="bottom-start";internalOpen=!1;overlayId=`ui-popover-${Math.random().toString(36).slice(2,11)}`;anchor=null;surface=null;syncFromProp(){p(this.open)&&(this.internalOpen=this.open)}onOpenChange(){this.syncOverlay(),this.internalOpen?n(this.host,"open",{open:!0,reason:"programmatic",trigger:"programmatic"}):n(this.host,"close",{open:!1,reason:"programmatic",trigger:"programmatic"})}resetSurface(){this.setupSurface(),this.syncSurface()}setupSurface(){this.surface?.destroy(),this.surface=null,this.anchor=this.for?this.host.ownerDocument.getElementById(this.for):null,this.anchor&&(this.surface=d(this.host,{anchor:this.anchor,placement:this.placement}))}syncSurface(){this.surface&&(this.internalOpen?this.surface.show():this.surface.hide())}syncOverlay(){this.syncSurface(),this.internalOpen?r({id:this.overlayId,modal:!1,element:this.host,relatedElements:this.anchor?[this.anchor]:void 0,dismissible:!0,requestClose:(e,o)=>this.handleRequestClose(e,o)}):i(this.overlayId)}componentDidLoad(){this.internalOpen=h(this.open,this.defaultOpen),this.host.addEventListener("keydown",this.onKeydown),this.setupSurface(),this.syncOverlay()}disconnectedCallback(){this.host.removeEventListener("keydown",this.onKeydown),this.surface?.destroy(),this.surface=null,i(this.overlayId)}componentDidUpdate(){this.syncOverlay()}handleRequestClose(e,o){p(this.open)||(this.internalOpen=!1),n(this.host,"close",{open:!1,reason:e,trigger:o})}onKeydown=e=>{"Escape"===e.key&&a("escape","keyboard")};render(){return t(s,{key:"6a38873f2e4d085f733fa116057b1f55418e23ed","data-open":this.internalOpen?"":void 0,onKeyDown:this.onKeydown},t("div",{key:"6fef6e37921e8c52994617719f1ebb6d9bd54ee2",class:"popover__surface"},t("slot",{key:"5ee4269592219035a3185f8f06fd71ecb12e4e71"})))}static get watchers(){return{open:[{syncFromProp:0}],internalOpen:[{onOpenChange:0}],for:[{resetSurface:0}],placement:[{resetSurface:0}]}}};c.style=":host{--ui-popover-viewport-gap:var(--ui-space-2, 0.5rem);box-sizing:border-box;max-inline-size:min( 20rem, calc(100vw - (var(--ui-popover-viewport-gap) * 2)) );max-block-size:calc(100dvh - (var(--ui-popover-viewport-gap) * 2));overflow:auto;padding:0;border:0;border-radius:0;background:transparent;box-shadow:var(--ui-shadow-lg)}.popover__surface{box-sizing:border-box;padding:var(--ui-space-3);background:var(--ui-surface-elevated);border:1px solid var(--ui-border-default);border-radius:var(--ui-radius-3)}:host(:not([data-open])){display:none}:host([popover]){position:fixed;inset:auto;margin:0;opacity:0;transform:translateY(-4px) scale(0.99);transition:opacity var(--ui-motion-fast) var(--ui-motion-ease), transform var(--ui-motion-fast) var(--ui-motion-ease), display var(--ui-motion-fast) allow-discrete, overlay var(--ui-motion-fast) allow-discrete}:host([popover]:popover-open){opacity:1;transform:translateY(0) scale(1)}@starting-style{:host([popover]:popover-open){opacity:0;transform:translateY(-4px) scale(0.99)}}:host([hidden]){display:none !important}@media (prefers-reduced-motion: reduce){:host([popover]){transition:none}}";export{c as ui_popover}
@@ -0,0 +1 @@
1
+ import{r as e,g as t,h as r,H as i}from"./p-8BGiMGQ0.js";const a=class{constructor(t){e(this,t)}get host(){return t(this)}max=5;label="People";overflowCount=0;syncOverflow(){this.updateOverflow()}componentDidLoad(){this.updateOverflow()}visibleLimit(){return Number.isFinite(this.max)?Math.max(0,Math.floor(this.max)):0}updateOverflow(){const e=Array.from(this.host.children).length,t=this.visibleLimit(),r=e>t?e-t:0;this.overflowCount!==r&&(this.overflowCount=r)}render(){return r(i,{key:"9ba6693cabc379bbbe6f5698160481f27fe02f31",role:"group","aria-label":this.label||void 0},r("style",{key:"ed231fe96c16a3cdd5a66d4828664c75c6959a9e"},`::slotted(:nth-child(n + ${this.visibleLimit()+1})) { display: none !important; }`),r("slot",{key:"463005a7f3c498c80c768151ab32c873ff1abf86",onSlotchange:()=>this.updateOverflow()}),this.overflowCount>0&&r("span",{key:"dc1ba88fd97ca461e6518d223f00a93416e6d0f0",class:"overflow",role:"img","aria-label":`${this.overflowCount} more ${1===this.overflowCount?"person":"people"}`,"data-ui-avatar-group-overflow":!0},"+",this.overflowCount))}static get watchers(){return{max:[{syncOverflow:0}]}}};a.style=":host{display:flex;align-items:center;flex-direction:row-reverse;gap:0}::slotted(*){margin-inline-end:-0.5rem;flex-shrink:0}::slotted(*:last-of-type){margin-inline-end:0}.overflow{margin-inline-end:-0.5rem;display:inline-flex;align-items:center;justify-content:center;inline-size:2.5rem;block-size:2.5rem;border-radius:999px;border:1px solid var(--ui-border-default);background:var(--ui-surface-muted);color:var(--ui-text-secondary);font:inherit;font-size:0.75rem;font-weight:600;flex-shrink:0}";export{a as ui_avatar_group}
@@ -1 +1 @@
1
- import{r as t,g as i,h as a,H as e}from"./p-8BGiMGQ0.js";import{d as s,e as o}from"./p-JwSoedEO.js";const r=class{constructor(i){t(this,i)}get host(){return i(this)}value="";name="";orientation="horizontal";disabled=!1;required=!1;internalValue="";syncFromProp(){this.internalValue=this.value}syncToRadios(){this.getRadios().forEach((t=>{t.checked=(t.getAttribute("value")??"")===this.internalValue,t.name=this.name||this.groupId,this.disabled?(t.setAttribute("aria-disabled","true"),t.setAttribute("data-disabled","true")):(t.removeAttribute("aria-disabled"),t.removeAttribute("data-disabled"))})),this.updateRovingTabindex()}groupId=`ui-radio-group-${Math.random().toString(36).slice(2,9)}`;componentDidLoad(){this.syncFromProp(),this.syncToRadios(),this.host.addEventListener("change",this.onRadioChange),this.host.addEventListener("keydown",this.onKeydown)}disconnectedCallback(){this.host.removeEventListener("change",this.onRadioChange),this.host.removeEventListener("keydown",this.onKeydown)}componentDidUpdate(){this.syncToRadios()}getRadios(){return Array.from(this.host.querySelectorAll("ui-radio"))}updateRovingTabindex(){const t=this.getRadios(),i=t.findIndex((t=>(t.getAttribute("value")??"")===this.internalValue));t.forEach(((t,a)=>{const e=t.querySelector('input[type="radio"]');e&&(e.tabIndex=a===(i>=0?i:0)?0:-1)}))}setValue(t,i){const a=this.internalValue;this.internalValue=t,this.syncToRadios(),s(this.host,"select",{value:t,previousValue:a,trigger:i}),s(this.host,"change",{checked:!0,value:t,trigger:i})}onRadioChange=t=>{const i=t.target.closest?.("ui-radio");if(!i||i.getRootNode()!==this.host.getRootNode())return;const a=i.getAttribute("value")??"";a&&a!==this.internalValue&&this.setValue(a,o(t))};onKeydown=t=>{const i=this.getRadios();if(0===i.length)return;const a=i.findIndex((t=>(t.getAttribute("value")??"")===this.internalValue)),e="vertical"===this.orientation?"vertical":"horizontal",s="horizontal"===e?"ArrowRight"===t.key:"ArrowDown"===t.key;if(!("horizontal"===e?"ArrowLeft"===t.key:"ArrowUp"===t.key)&&!s)return;let o;t.preventDefault(),o=s?a<0?0:Math.min(a+1,i.length-1):a<=0?i.length-1:a-1;const r=i[o],n=r?.getAttribute("value")??"";n&&(this.setValue(n,"keyboard"),r?.querySelector('input[type="radio"]')?.focus())};render(){return a(e,{key:"e80e01600d499d1b8e3410060433dac2bb8cf38a",role:"radiogroup","aria-orientation":this.orientation,"data-orientation":this.orientation,"data-disabled":this.disabled?"":void 0},a("slot",{key:"e60dcfa1b174b1a4c9092567e6ec4d9f5bcd9ffe"}))}static get watchers(){return{value:[{syncFromProp:0}],internalValue:[{syncToRadios:0}],name:[{syncToRadios:0}],orientation:[{syncToRadios:0}],disabled:[{syncToRadios:0}]}}};r.style=":host{display:inline-flex;align-items:center;gap:var(--ui-space-2)}:host([data-orientation='vertical']){display:inline-grid;justify-items:start}";export{r as ui_radio_group}
1
+ import{r as t,g as i,h as a,H as s}from"./p-8BGiMGQ0.js";import{d as e,e as o}from"./p-JwSoedEO.js";const r=class{constructor(i){t(this,i)}get host(){return i(this)}value="";name="";orientation="horizontal";disabled=!1;required=!1;internalValue="";syncFromProp(){this.internalValue=this.value}syncToRadios(){this.getRadios().forEach((t=>{t.checked=(t.getAttribute("value")??"")===this.internalValue,t.name=this.name||this.groupId,this.disabled?(t.setAttribute("aria-disabled","true"),t.setAttribute("data-disabled","true")):(t.removeAttribute("aria-disabled"),t.removeAttribute("data-disabled"))})),this.updateRovingTabindex()}groupId=`ui-radio-group-${Math.random().toString(36).slice(2,9)}`;componentDidLoad(){this.syncFromProp(),this.syncToRadios(),this.host.addEventListener("change",this.onRadioChange),this.host.addEventListener("keydown",this.onKeydown)}disconnectedCallback(){this.host.removeEventListener("change",this.onRadioChange),this.host.removeEventListener("keydown",this.onKeydown)}componentDidUpdate(){this.syncToRadios()}getRadios(){return Array.from(this.host.querySelectorAll("ui-radio"))}updateRovingTabindex(){const t=this.getRadios(),i=t.findIndex((t=>(t.getAttribute("value")??"")===this.internalValue));t.forEach(((t,a)=>{const s=t.querySelector('input[type="radio"]');s&&(s.tabIndex=a===(i>=0?i:0)?0:-1)}))}setValue(t,i){const a=this.internalValue;this.internalValue=t,this.syncToRadios(),e(this.host,"select",{value:t,previousValue:a,trigger:i}),e(this.host,"change",{checked:!0,value:t,trigger:i})}onRadioChange=t=>{const i=t.target.closest?.("ui-radio");if(!i||i.getRootNode()!==this.host.getRootNode())return;const a=i.getAttribute("value")??"";a&&a!==this.internalValue&&this.setValue(a,o(t))};onKeydown=t=>{const i=this.getRadios();if(0===i.length)return;const a=i.findIndex((t=>(t.getAttribute("value")??"")===this.internalValue)),s="vertical"===this.orientation?"vertical":"horizontal",e="horizontal"===s?"ArrowRight"===t.key:"ArrowDown"===t.key;if(!("horizontal"===s?"ArrowLeft"===t.key:"ArrowUp"===t.key)&&!e)return;let o;t.preventDefault(),o=e?a<0?0:Math.min(a+1,i.length-1):a<=0?i.length-1:a-1;const r=i[o],n=r?.getAttribute("value")??"";n&&(this.setValue(n,"keyboard"),r?.querySelector('input[type="radio"]')?.focus())};render(){return a(s,{key:"28c6eb6cc9520b570f40d2193d0c64a7a6c7db01",role:"radiogroup","aria-orientation":this.orientation,"data-orientation":this.orientation,"data-disabled":this.disabled?"":void 0},a("slot",{key:"97814378181be78bfac6090ff173459e1f539728"}))}static get watchers(){return{value:[{syncFromProp:0}],internalValue:[{syncToRadios:0}],name:[{syncToRadios:0}],orientation:[{syncToRadios:0}],disabled:[{syncToRadios:0}]}}};r.style=":host{display:inline-flex;align-items:center;gap:var(--ui-space-2)}:host([data-orientation='vertical']){display:inline-grid;justify-items:start}";export{r as ui_radio_group}
@@ -0,0 +1 @@
1
+ import{r as t,g as s,h as i,H as a}from"./p-8BGiMGQ0.js";import{d as r,e}from"./p-JwSoedEO.js";import{b as o}from"./p-Bu0dmLBE.js";const n=class{constructor(s){t(this,s)}get host(){return s(this)}open=!0;internalOpen=!1;surface=null;contentObserver=null;pendingDismiss=null;syncFromProp(){this.syncContents()}syncSurface(){this.internalOpen?this.surface?.show():this.surface?.hide()}componentDidLoad(){this.surface=o(this.host),this.contentObserver=new MutationObserver(this.syncContents),this.contentObserver.observe(this.host,{childList:!0,subtree:!0}),this.syncContents(),this.syncSurface(),this.host.addEventListener("click",this.onClick)}disconnectedCallback(){this.host.removeEventListener("click",this.onClick),this.contentObserver?.disconnect(),this.contentObserver=null,this.surface?.destroy(),this.surface=null}getToasts(){return Array.from(this.host.querySelectorAll("[data-ui-toast]"))}syncContents=()=>{const t=this.open&&this.getToasts().length>0,s=this.internalOpen,i=this.pendingDismiss&&!this.host.contains(this.pendingDismiss.toast)?this.pendingDismiss:null;this.internalOpen=t,s&&!t&&i&&r(this.host,"close",{open:!1,reason:"action",trigger:i.trigger}),!i&&this.open||(this.pendingDismiss=null)};onClick=t=>{const s=t.target.closest?.("[data-ui-toast-dismiss]");if(!s)return;const i=s.closest?.("[data-ui-toast]");if(!i)return;const a=i.id??"",o=e(t);this.pendingDismiss={toast:i,trigger:o},r(this.host,"dismiss",{id:a,reason:"action",trigger:o})};render(){return i(a,{key:"b4430aceacb7a66202c6a43ad7b0bbe31c51eb94",role:"region","aria-label":"Notifications","aria-live":"polite","data-open":this.internalOpen?"":void 0},i("slot",{key:"8bfb02d38366fab29a1668a53b7834ccd1a9aa65"}))}static get watchers(){return{open:[{syncFromProp:0}],internalOpen:[{syncSurface:0}]}}};n.style=":host{position:fixed;top:calc(var(--ui-space-4) + env(safe-area-inset-top));left:50%;transform:translateX(-50%);z-index:9999;display:grid;gap:var(--ui-space-2);inline-size:min(24rem, calc(100vw - (var(--ui-space-4) * 2)));max-inline-size:100%;pointer-events:none}:host([popover]){right:auto;bottom:auto;margin:0}:host>*{pointer-events:auto}::slotted([data-ui-toast]){display:grid;grid-template-columns:1fr auto;gap:var(--ui-space-2);align-items:start;border:1px solid var(--ui-border-default);border-radius:var(--ui-radius-3);padding:var(--ui-space-3) var(--ui-space-4);background:var(--ui-surface-elevated);color:var(--ui-text-primary);box-shadow:var(--ui-shadow-lg);animation:ui-toast-enter 0.25s var(--ui-motion-ease) forwards}@keyframes ui-toast-enter{from{opacity:0;transform:translateY(-0.5rem)}to{opacity:1;transform:translateY(0)}}::slotted([data-ui-toast][aria-hidden='true']){display:none}::slotted([data-ui-toast-dismiss]){border:0;background:transparent;color:var(--ui-text-secondary);cursor:pointer;font:inherit}";export{n as ui_toast_region}
@@ -0,0 +1 @@
1
+ import{r as i,g as a,h as o,H as e}from"./p-8BGiMGQ0.js";import{o as t,c as s,r}from"./p-C-0syqXZ.js";import{d as n}from"./p-JwSoedEO.js";import{i as l,c as d}from"./p-BnGhGgTH.js";const c=class{constructor(a){i(this,a)}get host(){return a(this)}open;defaultOpen=!1;modal=!0;dismissible=!0;label;internalOpen=!1;accessibleLabel="Dialog";overlayId=`ui-dialog-${Math.random().toString(36).slice(2,11)}`;dialogRef;contentObserver=null;syncFromProp(){l(this.open)&&(this.internalOpen=this.open)}syncLabelFromProp(){this.syncAccessibleLabel()}componentWillLoad(){this.syncAccessibleLabel()}syncOpen(){this.dialogRef&&(this.internalOpen?(this.dialogRef.showModal(),t({id:this.overlayId,modal:this.modal,element:this.host,dismissible:this.dismissible,requestClose:(i,a)=>this.handleRequestClose(i,a)})):(this.dialogRef.close(),s(this.overlayId)))}componentDidLoad(){this.contentObserver=new MutationObserver(this.syncAccessibleLabel),this.contentObserver.observe(this.host,{childList:!0,subtree:!0,characterData:!0}),this.internalOpen=d(this.open,this.defaultOpen),this.dialogRef?.addEventListener("close",this.onDialogClose),this.syncAccessibleLabel(),this.syncOpen()}disconnectedCallback(){this.dialogRef?.removeEventListener("close",this.onDialogClose),this.contentObserver?.disconnect(),this.contentObserver=null,s(this.overlayId)}componentDidUpdate(){this.syncOpen()}handleRequestClose(i,a){l(this.open)||(this.internalOpen=!1),n(this.host,"close",{open:!1,reason:i,trigger:a})}onDialogClose=()=>{this.internalOpen&&(l(this.open)?requestAnimationFrame((()=>this.syncOpen())):(this.internalOpen=!1,s(this.overlayId)),n(this.host,"close",{open:!1,reason:"programmatic",trigger:"programmatic"}))};onKeydown=i=>{"Escape"===i.key&&r("escape","keyboard")};syncAccessibleLabel=()=>{const i=this.label?.trim(),a=this.host.querySelector('[slot="heading"], [data-ui-dialog-title], h1, h2, h3, h4, h5, h6'),o=a?.textContent?.trim(),e=i||o||"Dialog";this.accessibleLabel!==e&&(this.accessibleLabel=e)};render(){return o(e,{key:"b7aa33e24a74527a58718b3fa2218f5a09e9e439","data-open":this.internalOpen?"":void 0,onKeyDown:this.onKeydown},o("dialog",{key:"f24455edc404581b5040c9c0090bf64141f9e296",ref:i=>this.dialogRef=i,open:this.internalOpen,"aria-label":this.accessibleLabel},o("slot",{key:"bad318e44b9c80dc0aae04ea5cdbb7b2ab472c35"})))}static get watchers(){return{open:[{syncFromProp:0}],label:[{syncLabelFromProp:0}],internalOpen:[{syncOpen:0}]}}};c.style=":host{display:block}:host:not([data-open]){display:none}:host dialog{--ui-dialog-duration:var(--ui-motion-base);--ui-dialog-viewport-gap:var(--ui-space-4, 1rem);position:fixed;inset:0;inline-size:min( calc(100% - (var(--ui-dialog-viewport-gap) * 2)), var(--ui-dialog-max-width, 440px) );max-inline-size:none;max-block-size:calc(100dvh - (var(--ui-dialog-viewport-gap) * 2));margin:auto;padding:var(--ui-space-4);overflow:auto;background:var(--ui-surface-elevated);border:1px solid var(--ui-border-default);border-radius:var(--ui-radius-dialog);box-shadow:var(--ui-shadow-dialog);visibility:hidden;pointer-events:none;opacity:0;transform:scale(0.96);transition:opacity var(--ui-dialog-duration) var(--ui-motion-ease), transform var(--ui-dialog-duration) var(--ui-motion-ease), visibility var(--ui-dialog-duration), display var(--ui-dialog-duration) var(--ui-motion-ease) allow-discrete, overlay var(--ui-dialog-duration) var(--ui-motion-ease) allow-discrete}:host dialog[open]{visibility:visible;pointer-events:auto;opacity:1;transform:scale(1);animation:ui-dialog-enter var(--ui-dialog-duration) var(--ui-motion-ease)}@keyframes ui-dialog-enter{from{opacity:0;transform:scale(0.96)}}:host dialog::backdrop{background-color:transparent;transition:background-color var(--ui-dialog-duration) var(--ui-motion-ease), display var(--ui-dialog-duration) var(--ui-motion-ease) allow-discrete, overlay var(--ui-dialog-duration) var(--ui-motion-ease) allow-discrete}:host dialog[open]::backdrop{background-color:var(--ui-overlay-backdrop);animation:ui-dialog-backdrop-enter var(--ui-dialog-duration) var(--ui-motion-ease)}@keyframes ui-dialog-backdrop-enter{from{background-color:transparent}}";export{c as ui_dialog}
@@ -3,10 +3,9 @@ export declare class UIAvatarGroup {
3
3
  max: number;
4
4
  label: string;
5
5
  overflowCount: number;
6
- private slotRef?;
7
6
  syncOverflow(): void;
8
7
  componentDidLoad(): void;
9
- componentDidUpdate(): void;
8
+ private visibleLimit;
10
9
  private updateOverflow;
11
10
  render(): any;
12
11
  }
@@ -0,0 +1,6 @@
1
+ export type CalloutTone = 'info' | 'note' | 'warning' | 'success' | 'error';
2
+ /** A static semantic message with a tone-specific icon. */
3
+ export declare class UICallout {
4
+ tone: CalloutTone;
5
+ render(): any;
6
+ }
@@ -1,6 +1,7 @@
1
1
  export declare class UICheckbox {
2
2
  host: HTMLElement;
3
- checked: boolean;
3
+ /** Controlled checked state. Omit it to use defaultChecked and local interaction state. */
4
+ checked?: boolean;
4
5
  defaultChecked: boolean;
5
6
  disabled: boolean;
6
7
  indeterminate: boolean;
@@ -0,0 +1,6 @@
1
+ /** A compact, non-interactive metadata label. */
2
+ export declare class UIChip {
3
+ /** `tag` has a square leading edge and an angled trailing edge; `pill` is fully rounded. */
4
+ appearance: 'tag' | 'pill';
5
+ render(): any;
6
+ }
@@ -1,15 +1,20 @@
1
1
  export declare class UIDialog {
2
2
  host: HTMLElement;
3
- open: boolean;
3
+ /** Controlled open state. Omit it to use defaultOpen and local interaction state. */
4
+ open?: boolean;
4
5
  defaultOpen: boolean;
5
6
  modal: boolean;
6
7
  dismissible: boolean;
7
8
  /** Accessible name forwarded to the native dialog surface. */
8
9
  label?: string;
9
10
  internalOpen: boolean;
11
+ accessibleLabel: string;
10
12
  private overlayId;
11
13
  private dialogRef?;
14
+ private contentObserver;
12
15
  syncFromProp(): void;
16
+ syncLabelFromProp(): void;
17
+ componentWillLoad(): void;
13
18
  syncOpen(): void;
14
19
  componentDidLoad(): void;
15
20
  disconnectedCallback(): void;
@@ -17,5 +22,6 @@ export declare class UIDialog {
17
22
  private handleRequestClose;
18
23
  private onDialogClose;
19
24
  private onKeydown;
25
+ private syncAccessibleLabel;
20
26
  render(): any;
21
27
  }
@@ -1,6 +1,7 @@
1
1
  export declare class UIDisclosure {
2
2
  host: HTMLElement;
3
- open: boolean;
3
+ /** Controlled open state. Omit it to use defaultOpen and local interaction state. */
4
+ open?: boolean;
4
5
  defaultOpen: boolean;
5
6
  disabled: boolean;
6
7
  internalOpen: boolean;
@@ -3,8 +3,16 @@ export declare class UIFormField {
3
3
  invalid: boolean;
4
4
  disabled: boolean;
5
5
  required: boolean;
6
+ private observer;
7
+ private activeInput;
8
+ private ownedDescriptionIds;
9
+ private wireQueued;
6
10
  componentDidLoad(): void;
7
11
  componentDidUpdate(): void;
12
+ disconnectedCallback(): void;
13
+ private descriptionIds;
14
+ private removeOwnedDescriptions;
15
+ private scheduleWire;
8
16
  private wire;
9
17
  render(): any;
10
18
  }
@@ -1,7 +1,8 @@
1
1
  import { type AnchoredPlacement } from '../../overlay/positioning';
2
2
  export declare class UIMenu {
3
3
  host: HTMLElement;
4
- open: boolean;
4
+ /** Controlled open state. Omit it to use defaultOpen and local interaction state. */
5
+ open?: boolean;
5
6
  defaultOpen: boolean;
6
7
  /** Id of the control that anchors this menu in the top layer. */
7
8
  for?: string;
@@ -1,7 +1,8 @@
1
1
  import { type AnchoredPlacement } from '../../overlay/positioning';
2
2
  export declare class UIPopover {
3
3
  host: HTMLElement;
4
- open: boolean;
4
+ /** Controlled open state. Omit it to use defaultOpen and local interaction state. */
5
+ open?: boolean;
5
6
  defaultOpen: boolean;
6
7
  /** Optional id of the element this popover follows in the top layer. */
7
8
  for?: string;
@@ -1,12 +1,15 @@
1
1
  export declare class UIRadio {
2
2
  host: HTMLElement;
3
- checked: boolean;
3
+ /** Controlled checked state. Omit it to use defaultChecked and local interaction state. */
4
+ checked?: boolean;
4
5
  defaultChecked: boolean;
5
6
  disabled: boolean;
6
7
  name: string;
7
8
  required: boolean;
8
9
  value: string;
10
+ internalChecked: boolean;
9
11
  private slotRef?;
12
+ syncFromProp(): void;
10
13
  syncToInput(): void;
11
14
  componentDidLoad(): void;
12
15
  disconnectedCallback(): void;
@@ -1,6 +1,7 @@
1
1
  export declare class UISwitch {
2
2
  host: HTMLElement;
3
- checked: boolean;
3
+ /** Controlled checked state. Omit it to use defaultChecked and local interaction state. */
4
+ checked?: boolean;
4
5
  defaultChecked: boolean;
5
6
  disabled: boolean;
6
7
  required: boolean;
@@ -1,6 +1,7 @@
1
1
  export declare class UITabs {
2
2
  host: HTMLElement;
3
- value: string;
3
+ /** Controlled selected tab value. Omit it to use defaultValue and local interaction state. */
4
+ value?: string;
4
5
  defaultValue: string;
5
6
  orientation: 'horizontal' | 'vertical';
6
7
  internalValue: string;
@@ -3,12 +3,14 @@ export declare class UIToastRegion {
3
3
  open: boolean;
4
4
  internalOpen: boolean;
5
5
  private surface;
6
+ private contentObserver;
7
+ private pendingDismiss;
6
8
  syncFromProp(): void;
7
9
  syncSurface(): void;
8
10
  componentDidLoad(): void;
9
11
  disconnectedCallback(): void;
10
12
  private getToasts;
11
- private updateOpenState;
13
+ private syncContents;
12
14
  private onClick;
13
15
  render(): any;
14
16
  }
@@ -3,7 +3,8 @@ import { type AnchoredPlacement } from '../../overlay/positioning';
3
3
  export declare class UITooltip {
4
4
  host: HTMLElement;
5
5
  for: string;
6
- open: boolean;
6
+ /** Controlled open state. Omit it to use defaultOpen and local interaction state. */
7
+ open?: boolean;
7
8
  defaultOpen: boolean;
8
9
  placement: AnchoredPlacement;
9
10
  /** Pointer hover intent delay in milliseconds. Keyboard focus is immediate. */
@@ -11,9 +11,14 @@ export declare class UITree {
11
11
  private rejectedPosition;
12
12
  private rejection;
13
13
  private hoverIntent;
14
+ private structureObserver;
15
+ private tabStop;
14
16
  componentDidLoad(): void;
15
17
  disconnectedCallback(): void;
18
+ private syncStructuralLevels;
19
+ private syncTabStop;
16
20
  private itemFromEvent;
21
+ private eventTargetsInteractiveContent;
17
22
  private itemId;
18
23
  private rowFor;
19
24
  private itemAtPoint;
@@ -21,6 +26,7 @@ export declare class UITree {
21
26
  private acceptsChildren;
22
27
  private itemMetadata;
23
28
  private constraintDepth;
29
+ private subtreeDepth;
24
30
  private dropRejection;
25
31
  private clearTarget;
26
32
  private clearRejection;
@@ -36,6 +42,12 @@ export declare class UITree {
36
42
  private onDrop;
37
43
  private onDragEnd;
38
44
  private visibleItems;
45
+ private parentItem;
46
+ private firstVisibleChild;
47
+ private focusItem;
48
+ private requestExpansion;
49
+ private onFocusIn;
50
+ private onExpansionChange;
39
51
  private onKeyDown;
40
52
  render(): any;
41
53
  }
@@ -4,11 +4,9 @@ export declare class UITreeItem {
4
4
  itemId: string;
5
5
  /** Accessible name used by the disclosure and drag handle. */
6
6
  label: string;
7
- /** One-based visual and semantic nesting level. */
8
- depth: number;
9
- /** Application hierarchy depth used for drop constraints. Defaults to visual depth. */
7
+ /** Application hierarchy depth override used for drop constraints. Defaults to structural nesting. */
10
8
  dropDepth?: number;
11
- /** Deepest descendant distance, used with the tree's max-depth drop constraint. */
9
+ /** Virtualized-tree descendant-depth override for the tree's max-depth drop constraint. */
12
10
  subtreeDepth?: number;
13
11
  /** Whether this item accepts children and exposes disclosure behavior. */
14
12
  container: boolean;
@@ -20,19 +18,25 @@ export declare class UITreeItem {
20
18
  dropScope: string;
21
19
  /** Comma-separated drag kinds accepted as children. Empty accepts every kind. */
22
20
  accepts: string;
23
- /** Initial controlled expansion value. */
24
- expanded: boolean;
21
+ /** Controlled expansion value. When omitted, `default-expanded` initializes uncontrolled state. */
22
+ expanded?: boolean;
25
23
  /** Initial uncontrolled expansion value. */
26
24
  defaultExpanded: boolean;
27
25
  selected: boolean;
28
26
  disabled: boolean;
29
27
  internalExpanded: boolean;
28
+ structuralLevel: number;
29
+ tabStop: boolean;
30
30
  syncExpandedFromProp(): void;
31
31
  componentWillLoad(): void;
32
- componentDidLoad(): void;
32
+ connectedCallback(): void;
33
33
  disconnectedCallback(): void;
34
+ private updateStructuralLevel;
34
35
  private setExpanded;
36
+ private isExpanded;
35
37
  private onAutoExpand;
38
+ private onRovingTabStop;
39
+ private onExpansionRequest;
36
40
  private onDisclosureClick;
37
41
  private onDisclosureKeydown;
38
42
  private onRowClick;