solid-ui 3.1.3-13 → 3.1.3-15

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 (362) hide show
  1. package/README.md +0 -14
  2. package/dist/_virtual/_rolldown/runtime.cjs.js +1 -1
  3. package/dist/acl/access-controller.cjs.js.map +1 -1
  4. package/dist/acl/access-groups.cjs.js +1 -1
  5. package/dist/acl/access-groups.cjs.js.map +1 -1
  6. package/dist/acl/access-groups.esm.js +2 -1
  7. package/dist/acl/access-groups.esm.js.map +1 -1
  8. package/dist/acl/acl.cjs.js.map +1 -1
  9. package/dist/acl/acl.esm.js.map +1 -1
  10. package/dist/chat/bookmarks.esm.js +2 -1
  11. package/dist/chat/bookmarks.esm.js.map +1 -1
  12. package/dist/chat/chatLogic.cjs.js +1 -1
  13. package/dist/chat/chatLogic.cjs.js.map +1 -1
  14. package/dist/chat/chatLogic.esm.js +2 -2
  15. package/dist/chat/chatLogic.esm.js.map +1 -1
  16. package/dist/chat/keys.cjs.js +1 -1
  17. package/dist/chat/keys.cjs.js.map +1 -1
  18. package/dist/chat/keys.d.ts +1 -1
  19. package/dist/chat/keys.d.ts.map +1 -1
  20. package/dist/chat/keys.esm.js +5 -2
  21. package/dist/chat/keys.esm.js.map +1 -1
  22. package/dist/chat/signature.cjs.js +1 -1
  23. package/dist/chat/signature.cjs.js.map +1 -1
  24. package/dist/chat/signature.esm.js +2 -1
  25. package/dist/chat/signature.esm.js.map +1 -1
  26. package/dist/chunks/{DialogProvider-B7wEBrVN.js → DialogProvider-0HIHjONx.js} +11 -11
  27. package/dist/chunks/{DialogProvider-B7wEBrVN.js.map → DialogProvider-0HIHjONx.js.map} +1 -1
  28. package/dist/chunks/{account-DeNlj01m.js → account-Ch8h_zTv.js} +20 -21
  29. package/dist/chunks/{account-DeNlj01m.js.map → account-Ch8h_zTv.js.map} +1 -1
  30. package/dist/chunks/{auth-Knq99zZ9.js → auth-D4NUMSzc.js} +98 -72
  31. package/dist/chunks/auth-D4NUMSzc.js.map +1 -0
  32. package/dist/chunks/{avatar-DgO_p94F.js → avatar-BWtz4RlU.js} +7 -8
  33. package/dist/chunks/{avatar-DgO_p94F.js.map → avatar-BWtz4RlU.js.map} +1 -1
  34. package/dist/chunks/{button-Dvkek1tx.js → button-BJyFKOKO.js} +12 -15
  35. package/dist/chunks/{button-Dvkek1tx.js.map → button-BJyFKOKO.js.map} +1 -1
  36. package/dist/chunks/{chunk.7MPIABXH-DNcYOuE8.js → chunk.64OG2H45-BADxAtEI.js} +97 -50
  37. package/dist/chunks/chunk.64OG2H45-BADxAtEI.js.map +1 -0
  38. package/dist/chunks/{combobox-B5j4LoHY.js → combobox-0NWv9K3D.js} +106 -93
  39. package/dist/chunks/combobox-0NWv9K3D.js.map +1 -0
  40. package/dist/chunks/{combobox-option-C5lKAumO.js → combobox-option-B-twy1Zn.js} +6 -7
  41. package/dist/chunks/{combobox-option-C5lKAumO.js.map → combobox-option-B-twy1Zn.js.map} +1 -1
  42. package/dist/chunks/components-DrP7BOrs.js +1281 -0
  43. package/dist/chunks/components-DrP7BOrs.js.map +1 -0
  44. package/dist/chunks/{dialog-DZgm_Tph.js → dialog-CcMVH-Ut.js} +16 -16
  45. package/dist/chunks/{dialog-DZgm_Tph.js.map → dialog-CcMVH-Ut.js.map} +1 -1
  46. package/dist/chunks/{dialog-content-DY-ROHyi.js → dialog-content-DcD_s3hK.js} +2 -3
  47. package/dist/chunks/{dialog-content-DY-ROHyi.js.map → dialog-content-DcD_s3hK.js.map} +1 -1
  48. package/dist/chunks/{dialog-footer-BAZTjZ8J.js → dialog-footer-CHgSH7G5.js} +2 -3
  49. package/dist/chunks/{dialog-footer-BAZTjZ8J.js.map → dialog-footer-CHgSH7G5.js.map} +1 -1
  50. package/dist/chunks/{dialog-header-COzPcK8F.js → dialog-header-BjellR7_.js} +2 -3
  51. package/dist/chunks/{dialog-header-COzPcK8F.js.map → dialog-header-BjellR7_.js.map} +1 -1
  52. package/dist/chunks/{dialogs-DEuwXC46.js → dialogs-CeHuLUo5.js} +2 -2
  53. package/dist/chunks/{dialogs-DEuwXC46.js.map → dialogs-CeHuLUo5.js.map} +1 -1
  54. package/dist/chunks/{dialogs-root-BYp6fIUE.js → dialogs-root-CvsON-m8.js} +5 -6
  55. package/dist/chunks/{dialogs-root-BYp6fIUE.js.map → dialogs-root-CvsON-m8.js.map} +1 -1
  56. package/dist/chunks/{guard-DI4k0FkM.js → guard-BIesxo_f.js} +7 -8
  57. package/dist/chunks/{guard-DI4k0FkM.js.map → guard-BIesxo_f.js.map} +1 -1
  58. package/dist/chunks/{solid-logic.esm-BrMdCG2_.js → index.esm-CyyOkz04.js} +2663 -2745
  59. package/dist/chunks/index.esm-CyyOkz04.js.map +1 -0
  60. package/dist/chunks/{input-CCpEhtqA.js → input-CFDN76Y5.js} +99 -54
  61. package/dist/chunks/input-CFDN76Y5.js.map +1 -0
  62. package/dist/chunks/{jsonld-B61R4iOL.js → jsonld-52q5nY_t.js} +22 -27
  63. package/dist/chunks/{jsonld-B61R4iOL.js.map → jsonld-52q5nY_t.js.map} +1 -1
  64. package/dist/chunks/{login-button-BafqiKef.js → login-button-BhdKFJ-F.js} +8 -9
  65. package/dist/chunks/{login-button-BafqiKef.js.map → login-button-BhdKFJ-F.js.map} +1 -1
  66. package/dist/chunks/{logout-button-D54NF9EW.js → logout-button-ClbKS9ss.js} +8 -9
  67. package/dist/chunks/{logout-button-D54NF9EW.js.map → logout-button-ClbKS9ss.js.map} +1 -1
  68. package/dist/chunks/{menu-DKxtACGA.js → menu-DVgG-el5.js} +39 -35
  69. package/dist/chunks/menu-DVgG-el5.js.map +1 -0
  70. package/dist/chunks/{menu-item-D9BqJtKZ.js → menu-item-Bj3NgLzB.js} +5 -6
  71. package/dist/chunks/{menu-item-D9BqJtKZ.js.map → menu-item-Bj3NgLzB.js.map} +1 -1
  72. package/dist/chunks/{photo-capture-BoZF621r.js → photo-capture-CVKE0SKx.js} +18 -19
  73. package/dist/chunks/{photo-capture-BoZF621r.js.map → photo-capture-CVKE0SKx.js.map} +1 -1
  74. package/dist/chunks/{photo-capture-modal-BLZtHDj1.js → photo-capture-modal-DARmhHUH.js} +26 -26
  75. package/dist/chunks/{photo-capture-modal-BLZtHDj1.js.map → photo-capture-modal-DARmhHUH.js.map} +1 -1
  76. package/dist/chunks/{provider-Btl6Lnki.js → provider-CBSBzOfP.js} +9 -10
  77. package/dist/chunks/{provider-Btl6Lnki.js.map → provider-CBSBzOfP.js.map} +1 -1
  78. package/dist/chunks/rdf-form-BeuzVBOP.js +339 -0
  79. package/dist/chunks/rdf-form-BeuzVBOP.js.map +1 -0
  80. package/dist/chunks/rdf-input-n73oeSkf.js +440 -0
  81. package/dist/chunks/rdf-input-n73oeSkf.js.map +1 -0
  82. package/dist/chunks/{rolldown-runtime-B1bRi_D7.js → rolldown-runtime-Cb76FRpK.js} +2 -2
  83. package/dist/chunks/{select-XkieYvDm.js → select-BuIxSm1A.js} +9 -10
  84. package/dist/chunks/{select-XkieYvDm.js.map → select-BuIxSm1A.js.map} +1 -1
  85. package/dist/chunks/{select-option-DUg4AWzw.js → select-option-Z8qZsCQo.js} +6 -7
  86. package/dist/chunks/{select-option-DUg4AWzw.js.map → select-option-Z8qZsCQo.js.map} +1 -1
  87. package/dist/chunks/{signup-button-D5wS8_gB.js → signup-button-B-AgjjAK.js} +8 -9
  88. package/dist/chunks/{signup-button-D5wS8_gB.js.map → signup-button-B-AgjjAK.js.map} +1 -1
  89. package/dist/chunks/{solid-emblem-XHk-oomv.js → solid-emblem-D4ItOckU.js} +2 -3
  90. package/dist/chunks/{solid-emblem-XHk-oomv.js.map → solid-emblem-D4ItOckU.js.map} +1 -1
  91. package/dist/chunks/{src-CJICzMIV.js → src-B5SL8UtS.js} +2741 -3207
  92. package/dist/chunks/src-B5SL8UtS.js.map +1 -0
  93. package/dist/chunks/style-CjYxsW7j.js +536 -0
  94. package/dist/chunks/style-CjYxsW7j.js.map +1 -0
  95. package/dist/components/account/Account.cjs.js.map +1 -1
  96. package/dist/components/account.js +1 -1
  97. package/dist/components/all.cjs.js +1 -1
  98. package/dist/components/all.esm.js +2 -1
  99. package/dist/components/avatar/Avatar.cjs.js.map +1 -1
  100. package/dist/components/avatar.js +1 -1
  101. package/dist/components/button/Button.cjs.js +1 -1
  102. package/dist/components/button/Button.cjs.js.map +1 -1
  103. package/dist/components/button/Button.esm.js +1 -3
  104. package/dist/components/button/Button.esm.js.map +1 -1
  105. package/dist/components/button.js +1 -1
  106. package/dist/components/combobox/Combobox.cjs.js +2 -2
  107. package/dist/components/combobox/Combobox.cjs.js.map +1 -1
  108. package/dist/components/combobox/Combobox.d.ts +1 -0
  109. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  110. package/dist/components/combobox/Combobox.esm.js +61 -47
  111. package/dist/components/combobox/Combobox.esm.js.map +1 -1
  112. package/dist/components/combobox-option/ComboboxOption.cjs.js.map +1 -1
  113. package/dist/components/combobox-option.js +1 -1
  114. package/dist/components/combobox.js +1 -1
  115. package/dist/components/dialog/Dialog.cjs.js +4 -4
  116. package/dist/components/dialog/Dialog.cjs.js.map +1 -1
  117. package/dist/components/dialog/Dialog.esm.js +5 -4
  118. package/dist/components/dialog/Dialog.esm.js.map +1 -1
  119. package/dist/components/dialog-content.js +1 -1
  120. package/dist/components/dialog-footer.js +1 -1
  121. package/dist/components/dialog-header.js +1 -1
  122. package/dist/components/dialog-provider/DialogProvider.cjs.js.map +1 -1
  123. package/dist/components/dialog-provider.js +1 -1
  124. package/dist/components/dialog.js +1 -1
  125. package/dist/components/dialogs-root/DialogsRoot.cjs.js.map +1 -1
  126. package/dist/components/dialogs-root.js +1 -1
  127. package/dist/components/guard/Guard.cjs.js.map +1 -1
  128. package/dist/components/guard.js +1 -1
  129. package/dist/components/input/Input.cjs.js +3 -2
  130. package/dist/components/input/Input.cjs.js.map +1 -1
  131. package/dist/components/input/Input.d.ts +3 -0
  132. package/dist/components/input/Input.d.ts.map +1 -1
  133. package/dist/components/input/Input.esm.js +99 -53
  134. package/dist/components/input/Input.esm.js.map +1 -1
  135. package/dist/components/input/Input.styles.cjs.js +1 -1
  136. package/dist/components/input/Input.styles.cjs.js.map +1 -1
  137. package/dist/components/input/Input.styles.esm.js +1 -1
  138. package/dist/components/input/Input.styles.esm.js.map +1 -1
  139. package/dist/components/input.js +1 -1
  140. package/dist/components/login-button/LoginButton.cjs.js.map +1 -1
  141. package/dist/components/login-button.js +1 -1
  142. package/dist/components/login-modal/LoginModal.cjs.js.map +1 -1
  143. package/dist/components/login-modal.js +1 -1
  144. package/dist/components/logout-button/LogoutButton.cjs.js.map +1 -1
  145. package/dist/components/logout-button.js +1 -1
  146. package/dist/components/menu/Menu.cjs.js +1 -1
  147. package/dist/components/menu/Menu.cjs.js.map +1 -1
  148. package/dist/components/menu/Menu.d.ts.map +1 -1
  149. package/dist/components/menu/Menu.esm.js +1 -1
  150. package/dist/components/menu/Menu.esm.js.map +1 -1
  151. package/dist/components/menu/Menu.test.d.ts +1 -0
  152. package/dist/components/menu/Menu.test.d.ts.map +1 -0
  153. package/dist/components/menu-item/MenuItem.cjs.js.map +1 -1
  154. package/dist/components/menu-item.js +1 -1
  155. package/dist/components/menu.js +1 -1
  156. package/dist/components/photo-capture/PhotoCapture.cjs.js.map +1 -1
  157. package/dist/components/photo-capture-modal/PhotoCaptureModal.cjs.js +1 -1
  158. package/dist/components/photo-capture-modal/PhotoCaptureModal.cjs.js.map +1 -1
  159. package/dist/components/photo-capture-modal/PhotoCaptureModal.esm.js +2 -1
  160. package/dist/components/photo-capture-modal/PhotoCaptureModal.esm.js.map +1 -1
  161. package/dist/components/photo-capture-modal.js +1 -1
  162. package/dist/components/photo-capture.js +1 -1
  163. package/dist/components/provider/Provider.cjs.js.map +1 -1
  164. package/dist/components/provider.js +1 -1
  165. package/dist/components/rdf-form/RDFForm.cjs.js +12 -0
  166. package/dist/components/rdf-form/RDFForm.cjs.js.map +1 -0
  167. package/dist/components/rdf-form/RDFForm.d.ts +17 -0
  168. package/dist/components/rdf-form/RDFForm.d.ts.map +1 -0
  169. package/dist/components/rdf-form/RDFForm.esm.js +344 -0
  170. package/dist/components/rdf-form/RDFForm.esm.js.map +1 -0
  171. package/dist/components/rdf-form/RDForm.stories.d.ts +20 -0
  172. package/dist/components/rdf-form/RDForm.stories.d.ts.map +1 -0
  173. package/dist/components/rdf-form/index.cjs.js +2 -0
  174. package/dist/components/rdf-form/index.cjs.js.map +1 -0
  175. package/dist/components/rdf-form/index.d.ts +4 -0
  176. package/dist/components/rdf-form/index.d.ts.map +1 -0
  177. package/dist/components/rdf-form/index.esm.js +7 -0
  178. package/dist/components/rdf-form/index.esm.js.map +1 -0
  179. package/dist/components/rdf-form.js +2 -0
  180. package/dist/components/rdf-input/RDFInput.cjs.js +11 -0
  181. package/dist/components/rdf-input/RDFInput.cjs.js.map +1 -0
  182. package/dist/components/rdf-input/RDFInput.d.ts +24 -0
  183. package/dist/components/rdf-input/RDFInput.d.ts.map +1 -0
  184. package/dist/components/rdf-input/RDFInput.esm.js +349 -0
  185. package/dist/components/rdf-input/RDFInput.esm.js.map +1 -0
  186. package/dist/components/rdf-input/index.cjs.js +2 -0
  187. package/dist/components/rdf-input/index.cjs.js.map +1 -0
  188. package/dist/components/rdf-input/index.d.ts +4 -0
  189. package/dist/components/rdf-input/index.d.ts.map +1 -0
  190. package/dist/components/rdf-input/index.esm.js +7 -0
  191. package/dist/components/rdf-input/index.esm.js.map +1 -0
  192. package/dist/components/rdf-input.js +2 -0
  193. package/dist/components/select/Select.cjs.js.map +1 -1
  194. package/dist/components/select-option/SelectOption.cjs.js.map +1 -1
  195. package/dist/components/select-option.js +1 -1
  196. package/dist/components/select.js +1 -1
  197. package/dist/components/signup-button/SignupButton.cjs.js.map +1 -1
  198. package/dist/components/signup-button.js +1 -1
  199. package/dist/components/solid-emblem.js +1 -1
  200. package/dist/components.js +26 -25
  201. package/dist/index.cjs.js +1 -1
  202. package/dist/index.cjs.js.map +1 -1
  203. package/dist/index.d.ts +1 -0
  204. package/dist/index.d.ts.map +1 -1
  205. package/dist/index.esm.js +3 -2
  206. package/dist/index.esm.js.map +1 -1
  207. package/dist/index.js +8 -7
  208. package/dist/lib/auth/SolidAuth.cjs.js +1 -1
  209. package/dist/lib/auth/SolidAuth.cjs.js.map +1 -1
  210. package/dist/lib/auth/SolidAuth.esm.js +3 -1
  211. package/dist/lib/auth/SolidAuth.esm.js.map +1 -1
  212. package/dist/lib/auth/context.cjs.js.map +1 -1
  213. package/dist/lib/components/dialog-component/DialogComponent.cjs.js.map +1 -1
  214. package/dist/lib/components/form-control-component/FormControlComponent.cjs.js.map +1 -1
  215. package/dist/lib/components/web-component/WebComponent.cjs.js +1 -1
  216. package/dist/lib/components/web-component/WebComponent.cjs.js.map +1 -1
  217. package/dist/lib/components/web-component/WebComponent.esm.js +2 -1
  218. package/dist/lib/components/web-component/WebComponent.esm.js.map +1 -1
  219. package/dist/lib/dialogs/context.cjs.js.map +1 -1
  220. package/dist/lib/file-explorer/context.cjs.js +2 -0
  221. package/dist/lib/file-explorer/context.cjs.js.map +1 -0
  222. package/dist/lib/file-explorer/context.d.ts +22 -0
  223. package/dist/lib/file-explorer/context.d.ts.map +1 -0
  224. package/dist/lib/file-explorer/context.esm.js +7 -0
  225. package/dist/lib/file-explorer/context.esm.js.map +1 -0
  226. package/dist/lib/forms/fieldParams.cjs.js +2 -0
  227. package/dist/lib/forms/fieldParams.cjs.js.map +1 -0
  228. package/dist/lib/forms/fieldParams.d.ts +21 -0
  229. package/dist/lib/forms/fieldParams.d.ts.map +1 -0
  230. package/dist/lib/forms/fieldParams.esm.js +74 -0
  231. package/dist/lib/forms/fieldParams.esm.js.map +1 -0
  232. package/dist/lib/forms/rdfFormsHelper.cjs.js +2 -0
  233. package/dist/lib/forms/rdfFormsHelper.cjs.js.map +1 -0
  234. package/dist/lib/forms/rdfFormsHelper.d.ts +16 -0
  235. package/dist/lib/forms/rdfFormsHelper.d.ts.map +1 -0
  236. package/dist/lib/forms/rdfFormsHelper.esm.js +34 -0
  237. package/dist/lib/forms/rdfFormsHelper.esm.js.map +1 -0
  238. package/dist/lib/forms/store/NoopStore.cjs.js +2 -0
  239. package/dist/lib/forms/store/NoopStore.cjs.js.map +1 -0
  240. package/dist/lib/forms/store/NoopStore.d.ts +6 -0
  241. package/dist/lib/forms/store/NoopStore.d.ts.map +1 -0
  242. package/dist/lib/forms/store/NoopStore.esm.js +10 -0
  243. package/dist/lib/forms/store/NoopStore.esm.js.map +1 -0
  244. package/dist/lib/forms/store/StoreContext.cjs.js +2 -0
  245. package/dist/lib/forms/store/StoreContext.cjs.js.map +1 -0
  246. package/dist/lib/forms/store/StoreContext.d.ts +10 -0
  247. package/dist/lib/forms/store/StoreContext.d.ts.map +1 -0
  248. package/dist/lib/forms/store/StoreContext.esm.js +8 -0
  249. package/dist/lib/forms/store/StoreContext.esm.js.map +1 -0
  250. package/dist/lib/ns.cjs.js.map +1 -1
  251. package/dist/lib/pad.cjs.js +1 -1
  252. package/dist/lib/pad.cjs.js.map +1 -1
  253. package/dist/lib/pad.esm.js +6 -5
  254. package/dist/lib/pad.esm.js.map +1 -1
  255. package/dist/lib/participation.cjs.js +1 -1
  256. package/dist/lib/participation.cjs.js.map +1 -1
  257. package/dist/lib/participation.esm.js +4 -2
  258. package/dist/lib/participation.esm.js.map +1 -1
  259. package/dist/lib/preferences.cjs.js +1 -1
  260. package/dist/lib/preferences.cjs.js.map +1 -1
  261. package/dist/lib/preferences.esm.js +9 -7
  262. package/dist/lib/preferences.esm.js.map +1 -1
  263. package/dist/lib/table.cjs.js +2 -2
  264. package/dist/lib/table.cjs.js.map +1 -1
  265. package/dist/lib/table.esm.js +2 -2
  266. package/dist/lib/table.esm.js.map +1 -1
  267. package/dist/loader.js +8 -7
  268. package/dist/login/login.cjs.js.map +1 -1
  269. package/dist/media/media-capture.esm.js +2 -1
  270. package/dist/media/media-capture.esm.js.map +1 -1
  271. package/dist/solid-ui.js +107 -156
  272. package/dist/solid-ui.min.js +107 -156
  273. package/dist/solid-ui.min.js.map +1 -1
  274. package/dist/storybook/components/StorybookProvider.d.ts +1 -0
  275. package/dist/storybook/components/StorybookProvider.d.ts.map +1 -1
  276. package/dist/storybook/store/StorybookStore.d.ts +6 -0
  277. package/dist/storybook/store/StorybookStore.d.ts.map +1 -0
  278. package/dist/utils/headerFooterHelpers.cjs.js +1 -1
  279. package/dist/utils/headerFooterHelpers.cjs.js.map +1 -1
  280. package/dist/utils/headerFooterHelpers.esm.js +2 -1
  281. package/dist/utils/headerFooterHelpers.esm.js.map +1 -1
  282. package/dist/utils/index.cjs.js +1 -1
  283. package/dist/utils/index.cjs.js.map +1 -1
  284. package/dist/utils/index.esm.js +1 -1
  285. package/dist/utils/index.esm.js.map +1 -1
  286. package/dist/utils/keyHelpers/accessData.cjs.js +1 -1
  287. package/dist/utils/keyHelpers/accessData.cjs.js.map +1 -1
  288. package/dist/utils/keyHelpers/accessData.d.ts +3 -3
  289. package/dist/utils/keyHelpers/accessData.d.ts.map +1 -1
  290. package/dist/utils/keyHelpers/accessData.esm.js +2 -1
  291. package/dist/utils/keyHelpers/accessData.esm.js.map +1 -1
  292. package/dist/utils/keyHelpers/otherHelpers.d.ts +1 -1
  293. package/dist/utils/keyHelpers/otherHelpers.d.ts.map +1 -1
  294. package/dist/widgets/buttons.cjs.js +2 -2
  295. package/dist/widgets/buttons.cjs.js.map +1 -1
  296. package/dist/widgets/buttons.esm.js +10 -5
  297. package/dist/widgets/buttons.esm.js.map +1 -1
  298. package/dist/widgets/dragAndDrop.cjs.js +1 -1
  299. package/dist/widgets/dragAndDrop.cjs.js.map +1 -1
  300. package/dist/widgets/dragAndDrop.esm.js +1 -1
  301. package/dist/widgets/dragAndDrop.esm.js.map +1 -1
  302. package/dist/widgets/forms/autocomplete/autocompleteBar.esm.js +25 -18
  303. package/dist/widgets/forms/autocomplete/autocompleteBar.esm.js.map +1 -1
  304. package/dist/widgets/forms/autocomplete/autocompleteField.cjs.js.map +1 -1
  305. package/dist/widgets/forms/autocomplete/publicData.cjs.js +1 -1
  306. package/dist/widgets/forms/autocomplete/publicData.cjs.js.map +1 -1
  307. package/dist/widgets/forms/autocomplete/publicData.d.ts +3 -3
  308. package/dist/widgets/forms/autocomplete/publicData.d.ts.map +1 -1
  309. package/dist/widgets/forms/autocomplete/publicData.esm.js +6 -4
  310. package/dist/widgets/forms/autocomplete/publicData.esm.js.map +1 -1
  311. package/dist/widgets/forms/basic.cjs.js +1 -1
  312. package/dist/widgets/forms/basic.cjs.js.map +1 -1
  313. package/dist/widgets/forms/basic.esm.js +27 -25
  314. package/dist/widgets/forms/basic.esm.js.map +1 -1
  315. package/dist/widgets/forms/formStyle.cjs.js +1 -1
  316. package/dist/widgets/forms/formStyle.cjs.js.map +1 -1
  317. package/dist/widgets/forms/formStyle.esm.js +4 -4
  318. package/dist/widgets/forms/formStyle.esm.js.map +1 -1
  319. package/dist/widgets/forms.cjs.js +2 -2
  320. package/dist/widgets/forms.cjs.js.map +1 -1
  321. package/dist/widgets/forms.esm.js +10 -8
  322. package/dist/widgets/forms.esm.js.map +1 -1
  323. package/dist/widgets/multiSelect.cjs.js +1 -1
  324. package/dist/widgets/multiSelect.cjs.js.map +1 -1
  325. package/dist/widgets/multiSelect.esm.js +2 -1
  326. package/dist/widgets/multiSelect.esm.js.map +1 -1
  327. package/dist/widgets/peoplePicker.cjs.js.map +1 -1
  328. package/package.json +4 -3
  329. package/dist/chunks/auth-Knq99zZ9.js.map +0 -1
  330. package/dist/chunks/chunk.7MPIABXH-DNcYOuE8.js.map +0 -1
  331. package/dist/chunks/combobox-B5j4LoHY.js.map +0 -1
  332. package/dist/chunks/components-BD458q30.js +0 -758
  333. package/dist/chunks/components-BD458q30.js.map +0 -1
  334. package/dist/chunks/footer-BLSjn5ur.js +0 -144
  335. package/dist/chunks/footer-BLSjn5ur.js.map +0 -1
  336. package/dist/chunks/headerFooterHelpers-CPd5d20q.js +0 -52
  337. package/dist/chunks/headerFooterHelpers-CPd5d20q.js.map +0 -1
  338. package/dist/chunks/input-CCpEhtqA.js.map +0 -1
  339. package/dist/chunks/lit-C4H1jI4q.js +0 -527
  340. package/dist/chunks/lit-C4H1jI4q.js.map +0 -1
  341. package/dist/chunks/menu-DKxtACGA.js.map +0 -1
  342. package/dist/chunks/solid-logic.esm-BrMdCG2_.js.map +0 -1
  343. package/dist/chunks/src-CJICzMIV.js.map +0 -1
  344. package/dist/components/footer/index.cjs.js +0 -1
  345. package/dist/components/footer/index.d.ts +0 -2
  346. package/dist/components/footer/index.d.ts.map +0 -1
  347. package/dist/components/footer/index.esm.js +0 -3
  348. package/dist/components/footer.js +0 -2
  349. package/dist/v2/components/layout/footer/Footer.cjs.js +0 -73
  350. package/dist/v2/components/layout/footer/Footer.cjs.js.map +0 -1
  351. package/dist/v2/components/layout/footer/Footer.d.ts +0 -60
  352. package/dist/v2/components/layout/footer/Footer.d.ts.map +0 -1
  353. package/dist/v2/components/layout/footer/Footer.esm.js +0 -143
  354. package/dist/v2/components/layout/footer/Footer.esm.js.map +0 -1
  355. package/dist/v2/components/layout/footer/Footer.test.d.ts +0 -1
  356. package/dist/v2/components/layout/footer/Footer.test.d.ts.map +0 -1
  357. package/dist/v2/components/layout/footer/index.cjs.js +0 -2
  358. package/dist/v2/components/layout/footer/index.cjs.js.map +0 -1
  359. package/dist/v2/components/layout/footer/index.d.ts +0 -3
  360. package/dist/v2/components/layout/footer/index.d.ts.map +0 -1
  361. package/dist/v2/components/layout/footer/index.esm.js +0 -8
  362. package/dist/v2/components/layout/footer/index.esm.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.cjs.js","names":["customElement","WebComponent","html","property","query","state","styles","_classDecs","_Menu","_Menu2","_A","WeakMap","_B","_C","_D","_ref","_placementDecs","type","String","reflect","_distanceDecs","Number","_dropdownDecs","_itemsDecs","_Menu3","Menu","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_placement","_init_distance","_init_dropdown","_init_items","_defineProperty","MutationObserver","syncItems","_classPrivateFieldGet","placement","v","_classPrivateFieldSet","distance","dropdown","items","connectedCallback","observer","observe","childList","disconnectedCallback","disconnect","render","onWaSelect","map","item","onItemClick","slot","Array","from","children","filter","child","hasAttribute","index","slotName","getAttribute","setAttribute","event","waItem","currentTarget","stopPropagation","disabled","selectedEvent","dispatchSelectEvent","defaultPrevented","open","detail","preventDefault","querySelector","click","CustomEvent","bubbles","composed","cancelable","dispatchEvent","e","c","_initClass","_applyDecs","_Class","_identity","default"],"sources":["../../../src/components/menu/Menu.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { html } from 'lit'\nimport { property, query, state } from 'lit/decorators.js'\nimport type WaDropdown from '@awesome.me/webawesome/dist/components/dropdown/dropdown.js'\nimport type WaDropdownItem from '@awesome.me/webawesome/dist/components/dropdown-item/dropdown-item.js'\nimport type { WaDropdownSelectEvent } from '@awesome.me/webawesome'\n\nimport '@awesome.me/webawesome/dist/components/dropdown/dropdown.js'\nimport '@awesome.me/webawesome/dist/components/dropdown-item/dropdown-item.js'\n\nimport styles from './Menu.styles.css'\n\n@customElement('solid-ui-menu')\nexport default class Menu extends WebComponent {\n static styles = styles\n\n @property({ type: String, reflect: true })\n accessor placement: WaDropdown['placement'] = 'bottom-start';\n\n @property({ type: Number, reflect: true })\n accessor distance: number = 5;\n\n @query('wa-dropdown')\n private accessor dropdown: WaDropdown | null = null;\n\n @state()\n private accessor items: { slot: string; }[] = []\n\n private observer: MutationObserver = new MutationObserver(() => this.syncItems())\n\n connectedCallback () {\n super.connectedCallback()\n\n this.syncItems()\n this.observer.observe(this, { childList: true })\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.observer.disconnect()\n }\n\n protected render () {\n return html`\n <wa-dropdown\n placement=${this.placement}\n distance=${this.distance}\n @wa-select=${this.onWaSelect}\n >\n <slot name=\"trigger\" slot=\"trigger\"></slot>\n\n ${this.items.map(\n (item) =>\n html`<wa-dropdown-item @click=${this.onItemClick}>\n <slot name=${item.slot}></slot>\n </wa-dropdown-item>`\n )}\n </wa-dropdown>\n `\n }\n\n private syncItems (): void {\n const items = Array.from(this.children).filter(\n (child) => !child.hasAttribute('slot')\n )\n\n this.items = items.map((item, index) => {\n const slotName = `menu-item-${index}`\n\n if (item.getAttribute('slot') !== slotName) {\n item.setAttribute('slot', slotName)\n }\n\n return { slot: slotName }\n })\n }\n\n private onItemClick (event: Event) {\n const waItem = event.currentTarget as WaDropdownItem\n\n event.stopPropagation()\n\n if (waItem.disabled) {\n return\n }\n\n const selectedEvent = this.dispatchSelectEvent(waItem)\n\n if (selectedEvent.defaultPrevented || !this.dropdown) {\n return\n }\n\n this.dropdown.open = false\n }\n\n private onWaSelect (event: WaDropdownSelectEvent) {\n const selectedEvent = this.dispatchSelectEvent(event.detail.item)\n\n if (selectedEvent.defaultPrevented) {\n event.preventDefault()\n\n return\n }\n\n const slotName = event.detail.item.children[0].getAttribute('name')\n const item = this.querySelector<{ click?: () => void } & Element>(`[slot=\"${slotName}\"]`)\n\n item?.click?.()\n }\n\n private dispatchSelectEvent (waItem: WaDropdownItem) {\n const slotName = waItem.children[0].getAttribute('name')\n const item = this.querySelector(`[slot=\"${slotName}\"]`)\n const event = new CustomEvent('solid-ui-select', {\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n\n item?.dispatchEvent(event)\n\n return event\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Menu.cjs.js","names":["customElement","WebComponent","html","property","query","state","styles","_classDecs","_Menu","_Menu2","_A","WeakMap","_B","_C","_D","_ref","_placementDecs","type","String","reflect","_distanceDecs","Number","_dropdownDecs","_itemsDecs","_Menu3","Menu","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_placement","_init_distance","_init_dropdown","_init_items","_defineProperty","MutationObserver","syncItems","_classPrivateFieldGet","placement","v","_classPrivateFieldSet","distance","dropdown","items","connectedCallback","observer","observe","childList","disconnectedCallback","disconnect","render","onWaSelect","map","item","onItemClick","slot","Array","from","children","filter","child","getAttribute","index","slotName","setAttribute","event","waItem","currentTarget","stopPropagation","disabled","selectedEvent","dispatchSelectEvent","defaultPrevented","open","detail","preventDefault","querySelector","click","CustomEvent","bubbles","composed","cancelable","dispatchEvent","e","c","_initClass","_applyDecs","_Class","_identity","default"],"sources":["../../../src/components/menu/Menu.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { html } from 'lit'\nimport { property, query, state } from 'lit/decorators.js'\nimport type WaDropdown from '@awesome.me/webawesome/dist/components/dropdown/dropdown.js'\nimport type WaDropdownItem from '@awesome.me/webawesome/dist/components/dropdown-item/dropdown-item.js'\nimport type { WaDropdownSelectEvent } from '@awesome.me/webawesome'\n\nimport '@awesome.me/webawesome/dist/components/dropdown/dropdown.js'\nimport '@awesome.me/webawesome/dist/components/dropdown-item/dropdown-item.js'\n\nimport styles from './Menu.styles.css'\n\n@customElement('solid-ui-menu')\nexport default class Menu extends WebComponent {\n static styles = styles\n\n @property({ type: String, reflect: true })\n accessor placement: WaDropdown['placement'] = 'bottom-start';\n\n @property({ type: Number, reflect: true })\n accessor distance: number = 5;\n\n @query('wa-dropdown')\n private accessor dropdown: WaDropdown | null = null;\n\n @state()\n private accessor items: { slot: string; }[] = []\n\n private observer: MutationObserver = new MutationObserver(() => this.syncItems())\n\n connectedCallback () {\n super.connectedCallback()\n\n this.syncItems()\n this.observer.observe(this, { childList: true })\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.observer.disconnect()\n }\n\n protected render () {\n return html`\n <wa-dropdown\n placement=${this.placement}\n distance=${this.distance}\n @wa-select=${this.onWaSelect}\n >\n <slot name=\"trigger\" slot=\"trigger\"></slot>\n\n ${this.items.map(\n (item) =>\n html`<wa-dropdown-item @click=${this.onItemClick}>\n <slot name=${item.slot}></slot>\n </wa-dropdown-item>`\n )}\n </wa-dropdown>\n `\n }\n\n private syncItems (): void {\n // Exclude only the trigger element; include all other children\n // regardless of whether they already have a slot assigned.\n const items = Array.from(this.children).filter(\n (child) => child.getAttribute('slot') !== 'trigger'\n )\n\n this.items = items.map((item, index) => {\n const slotName = `menu-item-${index}`\n\n if (item.getAttribute('slot') !== slotName) {\n item.setAttribute('slot', slotName)\n }\n\n return { slot: slotName }\n })\n }\n\n private onItemClick (event: Event) {\n const waItem = event.currentTarget as WaDropdownItem\n\n event.stopPropagation()\n\n if (waItem.disabled) {\n return\n }\n\n const selectedEvent = this.dispatchSelectEvent(waItem)\n\n if (selectedEvent.defaultPrevented || !this.dropdown) {\n return\n }\n\n this.dropdown.open = false\n }\n\n private onWaSelect (event: WaDropdownSelectEvent) {\n const selectedEvent = this.dispatchSelectEvent(event.detail.item)\n\n if (selectedEvent.defaultPrevented) {\n event.preventDefault()\n\n return\n }\n\n const slotName = event.detail.item.children[0].getAttribute('name')\n const item = this.querySelector<{ click?: () => void } & Element>(`[slot=\"${slotName}\"]`)\n\n item?.click?.()\n }\n\n private dispatchSelectEvent (waItem: WaDropdownItem) {\n const slotName = waItem.children[0].getAttribute('name')\n const item = this.querySelector(`[slot=\"${slotName}\"]`)\n const event = new CustomEvent('solid-ui-select', {\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n\n item?.dispatchEvent(event)\n\n return event\n }\n}\n"],"mappings":"6/IAUsCO,EAAA,CAErCP,EAAAA,cAAc,eAAe,CAAC,EAAA,IAAAQ,EAAA,IAAAC,GAAAC,EAAA,IAAAC,QAAAC,EAAA,IAAAD,QAAAE,EAAA,IAAAF,QAAAG,EAAA,IAAAH,QAAAI,GAAAC,GAAAA,EAI5Bb,EAAAA,SAAAA,CAAS,CAAEc,KAAMC,OAAQC,QAAS,EAAK,CAAC,EAACC,GAAAA,EAGzCjB,EAAAA,SAAAA,CAAS,CAAEc,KAAMI,OAAQF,QAAS,EAAK,CAAC,EAACG,GAAAA,EAGzClB,EAAAA,MAAAA,CAAM,aAAa,EAACmB,GAAAA,EAGpBlB,EAAAA,MAAAA,CAAM,EAAC,aAAAmB,EAbV,cACkCvB,EAAAA,OAAa,CAAAyB,YAAA,GAAAC,EAAA,CAAA,MAAA,GAAAA,CAAA,EAAAC,EAAA,KAAAlB,GAAAmB,EAAA,IAAA,EAAAC,EAAA,KAIC,cAAc,EAAA,EAAAF,EAAA,KAAAhB,EAAAmB,EAAA,KAGhC,CAAC,CAAA,EAAAH,EAAA,KAAAf,EAAAmB,EAAA,KAGkB,IAAI,CAAA,EAAAJ,EAAA,KAAAd,EAAAmB,EAAA,KAGL,CAAA,CAAE,CAAA,EAAAC,EAAA,KAAA,WAEX,IAAIC,qBAAuB,KAAKC,UAAU,CAAC,CAAC,CAAA,CAAA,IAAArB,IAAA,CAAA,OAAAsB,EAAA3B,EAAA,IAAA,CAAA,CAAA,IAXxE4B,UAASC,EAAA,CAAAC,EAAA9B,EAAA,KAAA6B,CAAA,CAAA,CAAA,IAGTE,UAAQ,CAAA,OAAAJ,EAAAzB,EAAA,IAAA,CAAA,CAAA,IAAR6B,SAAQF,EAAA,CAAAC,EAAA5B,EAAA,KAAA2B,CAAA,CAAA,CAAA,IAGAG,UAAQ,CAAA,OAAAL,EAAAxB,EAAA,IAAA,CAAA,CAAA,IAAR6B,SAAQH,EAAA,CAAAC,EAAA3B,EAAA,KAAA0B,CAAA,CAAA,CAAA,IAGRI,OAAK,CAAA,OAAAN,EAAAvB,EAAA,IAAA,CAAA,CAAA,IAAL6B,MAAKJ,EAAA,CAAAC,EAAA1B,EAAA,KAAAyB,CAAA,CAAA,CAItBK,mBAAqB,CACnB,MAAMA,kBAAkB,EAExB,KAAKR,UAAU,EACf,KAAKS,SAASC,QAAQ,KAAM,CAAEC,UAAW,EAAK,CAAC,CACjD,CAEAC,sBAAwB,CACtB,MAAMA,qBAAqB,EAE3B,KAAKH,SAASI,WAAW,CAC3B,CAEUC,QAAU,CAClB,MAAOhD,GAAAA,IAAI;;oBAEK,KAAKoC,UAAS;mBACf,KAAKG,SAAQ;qBACX,KAAKU,WAAU;;;;UAI1B,KAAKR,MAAMS,IACVC,GACCnD,EAAAA,IAAI,4BAA4B,KAAKoD,YAAW;6BAC/BD,EAAKE,KAAI;gCAE9B,EAAC;;KAGP,CAEQnB,WAAmB,CAGzB,IAAMO,EAAQa,MAAMC,KAAK,KAAKC,QAAQ,CAAC,CAACC,OACrCC,GAAUA,EAAMC,aAAa,MAAM,IAAM,SAC5C,EAEA,KAAKlB,MAAQA,EAAMS,KAAKC,EAAMS,IAAU,CACtC,IAAMC,EAAW,aAAaD,IAM9B,OAJIT,EAAKQ,aAAa,MAAM,IAAME,GAChCV,EAAKW,aAAa,OAAQD,CAAQ,EAG7B,CAAER,KAAMQ,CAAS,CAC1B,CAAC,CACH,CAEQT,YAAaW,EAAc,CACjC,IAAMC,EAASD,EAAME,cAErBF,EAAMG,gBAAgB,EAElBF,GAAOG,WAIW,KAAKE,oBAAoBL,CAE3CI,CAAAA,CAAcE,kBAAoB,CAAC,KAAK9B,WAI5C,KAAKA,SAAS+B,KAAO,IACvB,CAEQtB,WAAYc,EAA8B,CAGhD,GAFsB,KAAKM,oBAAoBN,EAAMS,OAAOrB,IAExDiB,CAAAA,CAAcE,iBAAkB,CAClCP,EAAMU,eAAe,EAErB,MACF,CAEA,IAAMZ,EAAWE,EAAMS,OAAOrB,KAAKK,SAAS,EAAE,CAACG,aAAa,MAAM,EAGlER,KAFkBuB,cAAgD,UAAUb,EAAQ,GAEpFV,CAAAA,EAAMwB,QAAQ,CAChB,CAEQN,oBAAqBL,EAAwB,CACnD,IAAMH,EAAWG,EAAOR,SAAS,EAAE,CAACG,aAAa,MAAM,EACjDR,EAAO,KAAKuB,cAAc,UAAUb,EAAQ,GAAI,EAChDE,EAAQ,IAAIa,YAAY,kBAAmB,CAC/CC,QAAS,GACTC,SAAU,GACVC,WAAY,EACd,CAAC,EAID,OAFA5B,GAAM6B,cAAcjB,CAAK,EAElBA,CACT,CACF,EAAC,CAAAkB,EAAA,CAAArD,EAAAC,EAAAC,EAAAC,EAAAJ,GAAAuD,EAAA,CAAA5E,EAAA6E,IAAAC,EAAA9D,EAAA,CAAA,CAAAR,EAAA,EAAA,WAAA,EAAA,CAAAI,EAAA,EAAA,UAAA,EAAA,CAAAE,EAAA,EAAA,UAAA,EAAA,CAAAC,EAAA,EAAA,OAAA,CAAA,EAAAhB,EAAA,EAAA,IAAA,GAjHiCN,EAAAA,OAAY,EAAAuB,GAAA+D,EAAA,cAAAC,CAAA,CAAA9D,aAAA,CAAA,MAAAlB,CAAA,EAAA0B,EAAA,KAAA,SAC5B5B,EAAAA,OAAM,EAAA+E,EAAA,CAAA,CAAA,EAAAnD,EAAAqD,EAAA9E,EAAA,IAAA,EAAA,EAAA8E"}
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../../src/components/menu/Menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAG9D,OAAO,KAAK,UAAU,MAAM,6DAA6D,CAAA;AAIzF,OAAO,6DAA6D,CAAA;AACpE,OAAO,uEAAuE,CAAA;AAK9E,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,YAAY;IAC5C,MAAM,CAAC,MAAM,0BAAS;IAGtB,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAkB;IAG7D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAK;IAG9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2B;IAGpD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;IAEhD,OAAO,CAAC,QAAQ,CAAiE;IAEjF,iBAAiB;IAOjB,oBAAoB;IAMpB,SAAS,CAAC,MAAM;IAmBhB,OAAO,CAAC,SAAS;IAgBjB,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,mBAAmB;CAa5B"}
1
+ {"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../../src/components/menu/Menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAG9D,OAAO,KAAK,UAAU,MAAM,6DAA6D,CAAA;AAIzF,OAAO,6DAA6D,CAAA;AACpE,OAAO,uEAAuE,CAAA;AAK9E,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,YAAY;IAC5C,MAAM,CAAC,MAAM,0BAAS;IAGtB,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAkB;IAG7D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAK;IAG9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2B;IAGpD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;IAEhD,OAAO,CAAC,QAAQ,CAAiE;IAEjF,iBAAiB;IAOjB,oBAAoB;IAMpB,SAAS,CAAC,MAAM;IAmBhB,OAAO,CAAC,SAAS;IAkBjB,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,mBAAmB;CAa5B"}
@@ -237,7 +237,7 @@ new (w = (l = /*#__PURE__*/ new WeakMap(), u = /*#__PURE__*/ new WeakMap(), d =
237
237
  `;
238
238
  }
239
239
  syncItems() {
240
- let e = Array.from(this.children).filter((e) => !e.hasAttribute("slot"));
240
+ let e = Array.from(this.children).filter((e) => e.getAttribute("slot") !== "trigger");
241
241
  this.items = e.map((e, t) => {
242
242
  let n = `menu-item-${t}`;
243
243
  return e.getAttribute("slot") !== n && e.setAttribute("slot", n), { slot: n };
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.esm.js","names":["customElement","WebComponent","html","property","query","state","styles","_classDecs","_Menu","_Menu2","_A","WeakMap","_B","_C","_D","_ref","_placementDecs","type","String","reflect","_distanceDecs","Number","_dropdownDecs","_itemsDecs","_Menu3","Menu","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_placement","_init_distance","_init_dropdown","_init_items","_defineProperty","MutationObserver","syncItems","_classPrivateFieldGet","placement","v","_classPrivateFieldSet","distance","dropdown","items","connectedCallback","observer","observe","childList","disconnectedCallback","disconnect","render","onWaSelect","map","item","onItemClick","slot","Array","from","children","filter","child","hasAttribute","index","slotName","getAttribute","setAttribute","event","waItem","currentTarget","stopPropagation","disabled","selectedEvent","dispatchSelectEvent","defaultPrevented","open","detail","preventDefault","querySelector","click","CustomEvent","bubbles","composed","cancelable","dispatchEvent","e","c","_initClass","_applyDecs","_Class","_identity","default"],"sources":["../../../src/components/menu/Menu.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { html } from 'lit'\nimport { property, query, state } from 'lit/decorators.js'\nimport type WaDropdown from '@awesome.me/webawesome/dist/components/dropdown/dropdown.js'\nimport type WaDropdownItem from '@awesome.me/webawesome/dist/components/dropdown-item/dropdown-item.js'\nimport type { WaDropdownSelectEvent } from '@awesome.me/webawesome'\n\nimport '@awesome.me/webawesome/dist/components/dropdown/dropdown.js'\nimport '@awesome.me/webawesome/dist/components/dropdown-item/dropdown-item.js'\n\nimport styles from './Menu.styles.css'\n\n@customElement('solid-ui-menu')\nexport default class Menu extends WebComponent {\n static styles = styles\n\n @property({ type: String, reflect: true })\n accessor placement: WaDropdown['placement'] = 'bottom-start';\n\n @property({ type: Number, reflect: true })\n accessor distance: number = 5;\n\n @query('wa-dropdown')\n private accessor dropdown: WaDropdown | null = null;\n\n @state()\n private accessor items: { slot: string; }[] = []\n\n private observer: MutationObserver = new MutationObserver(() => this.syncItems())\n\n connectedCallback () {\n super.connectedCallback()\n\n this.syncItems()\n this.observer.observe(this, { childList: true })\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.observer.disconnect()\n }\n\n protected render () {\n return html`\n <wa-dropdown\n placement=${this.placement}\n distance=${this.distance}\n @wa-select=${this.onWaSelect}\n >\n <slot name=\"trigger\" slot=\"trigger\"></slot>\n\n ${this.items.map(\n (item) =>\n html`<wa-dropdown-item @click=${this.onItemClick}>\n <slot name=${item.slot}></slot>\n </wa-dropdown-item>`\n )}\n </wa-dropdown>\n `\n }\n\n private syncItems (): void {\n const items = Array.from(this.children).filter(\n (child) => !child.hasAttribute('slot')\n )\n\n this.items = items.map((item, index) => {\n const slotName = `menu-item-${index}`\n\n if (item.getAttribute('slot') !== slotName) {\n item.setAttribute('slot', slotName)\n }\n\n return { slot: slotName }\n })\n }\n\n private onItemClick (event: Event) {\n const waItem = event.currentTarget as WaDropdownItem\n\n event.stopPropagation()\n\n if (waItem.disabled) {\n return\n }\n\n const selectedEvent = this.dispatchSelectEvent(waItem)\n\n if (selectedEvent.defaultPrevented || !this.dropdown) {\n return\n }\n\n this.dropdown.open = false\n }\n\n private onWaSelect (event: WaDropdownSelectEvent) {\n const selectedEvent = this.dispatchSelectEvent(event.detail.item)\n\n if (selectedEvent.defaultPrevented) {\n event.preventDefault()\n\n return\n }\n\n const slotName = event.detail.item.children[0].getAttribute('name')\n const item = this.querySelector<{ click?: () => void } & Element>(`[slot=\"${slotName}\"]`)\n\n item?.click?.()\n }\n\n private dispatchSelectEvent (waItem: WaDropdownItem) {\n const slotName = waItem.children[0].getAttribute('name')\n const item = this.querySelector(`[slot=\"${slotName}\"]`)\n const event = new CustomEvent('solid-ui-select', {\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n\n item?.dispatchEvent(event)\n\n return event\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUsCO,IAAA,CAErCP,EAAc,eAAe,CAAC;AAAA,IAAAQ;AAAA,KAAAC,KAAAC,kBAAA,IAAAC,QAAA,GAAAC,kBAAA,IAAAD,QAAA,GAAAE,kBAAA,IAAAF,QAAA,GAAAG,kBAAA,IAAAH,QAAA,GAAAI,KAAAC,IAI5Bb,EAAS;CAAEc,MAAMC;CAAQC,SAAS;AAAK,CAAC,GAACC,IAGzCjB,EAAS;CAAEc,MAAMI;CAAQF,SAAS;AAAK,CAAC,GAACG,IAGzClB,EAAM,aAAa,GAACmB,IAGpBlB,EAAM,GAAC,cAAAmB,IAbV,cACkCvB,EAAa;CAAAyB,YAAA,GAAAC,GAAA;EAaGO,AAbH,MAAA,GAAAP,CAAA,GAAAC,EAAA,MAAAlB,IAAAmB,EAAA,IAAA,GAAAC,EAAA,MAIC,cAAc,EAAA,GAAAF,EAAA,MAAAhB,GAAAmB,EAAA,MAGhC,CAAC,CAAA,GAAAH,EAAA,MAAAf,GAAAmB,EAAA,MAGkB,IAAI,CAAA,GAAAJ,EAAA,MAAAd,GAAAmB,EAAA,MAGL,CAAA,CAAE,CAAA,GAAAC,EAAA,MAAA,YAEX,IAAIC,uBAAuB,KAAKC,UAAU,CAAC,CAAC;CAAA;CAAA,KAAArB,KAAA;EAAA,OAAAsB,EAAA3B,GAAA,IAAA;CAAA;CAAA,IAXxE4B,UAASC,GAAA;EAAAC,EAAA9B,GAAA,MAAA6B,CAAA;CAAA;CAAA,IAGTE,WAAQ;EAAA,OAAAJ,EAAAzB,GAAA,IAAA;CAAA;CAAA,IAAR6B,SAAQF,GAAA;EAAAC,EAAA5B,GAAA,MAAA2B,CAAA;CAAA;CAAA,IAGAG,WAAQ;EAAA,OAAAL,EAAAxB,GAAA,IAAA;CAAA;CAAA,IAAR6B,SAAQH,GAAA;EAAAC,EAAA3B,GAAA,MAAA0B,CAAA;CAAA;CAAA,IAGRI,QAAK;EAAA,OAAAN,EAAAvB,GAAA,IAAA;CAAA;CAAA,IAAL6B,MAAKJ,GAAA;EAAAC,EAAA1B,GAAA,MAAAyB,CAAA;CAAA;CAItBK,oBAAqB;EAInB,AAHA,MAAMA,kBAAkB,GAExB,KAAKR,UAAU,GACf,KAAKS,SAASC,QAAQ,MAAM,EAAEC,WAAW,GAAK,CAAC;CACjD;CAEAC,uBAAwB;EAGtB,AAFA,MAAMA,qBAAqB,GAE3B,KAAKH,SAASI,WAAW;CAC3B;CAEUC,SAAU;EAClB,OAAOhD,CAAI;;oBAEK,KAAKoC,UAAS;mBACf,KAAKG,SAAQ;qBACX,KAAKU,WAAU;;;;UAI1B,KAAKR,MAAMS,KACVC,MACCnD,CAAI,4BAA4B,KAAKoD,YAAW;6BAC/BD,EAAKE,KAAI;gCAE9B,EAAC;;;CAGP;CAEQnB,YAAmB;EACzB,IAAMO,IAAQa,MAAMC,KAAK,KAAKC,QAAQ,CAAC,CAACC,QACrCC,MAAU,CAACA,EAAMC,aAAa,MAAM,CACvC;EAEA,KAAKlB,QAAQA,EAAMS,KAAKC,GAAMS,MAAU;GACtC,IAAMC,IAAW,aAAaD;GAM9B,OAJIT,EAAKW,aAAa,MAAM,MAAMD,KAChCV,EAAKY,aAAa,QAAQF,CAAQ,GAG7B,EAAER,MAAMQ,EAAS;EAC1B,CAAC;CACH;CAEQT,YAAaY,GAAc;EACjC,IAAMC,IAASD,EAAME;EAErBF,EAAMG,gBAAgB,GAElBF,GAAOG,aAIW,KAAKE,oBAAoBL,CAE3CI,CAAAA,CAAcE,oBAAoB,CAAC,KAAK/B,aAI5C,KAAKA,SAASgC,OAAO;CACvB;CAEQvB,WAAYe,GAA8B;EAGhD,IAFsB,KAAKM,oBAAoBN,EAAMS,OAAOtB,IAExDkB,CAAAA,CAAcE,kBAAkB;GAClCP,EAAMU,eAAe;GAErB;EACF;EAEA,IAAMb,IAAWG,EAAMS,OAAOtB,KAAKK,SAAS,EAAE,CAACM,aAAa,MAAM;EAGlEX,KAFkBwB,cAAgD,UAAUd,EAAQ,GAEpFV,CAAAA,EAAMyB,QAAQ;CAChB;CAEQN,oBAAqBL,GAAwB;EACnD,IAAMJ,IAAWI,EAAOT,SAAS,EAAE,CAACM,aAAa,MAAM,GACjDX,IAAO,KAAKwB,cAAc,UAAUd,EAAQ,GAAI,GAChDG,IAAQ,IAAIa,YAAY,mBAAmB;GAC/CC,SAAS;GACTC,UAAU;GACVC,YAAY;EACd,CAAC;EAID,OAFA7B,GAAM8B,cAAcjB,CAAK,GAElBA;CACT;AACF,GAAC,CAAAkB,GAAA,CAAAtD,GAAAC,GAAAC,GAAAC,GAAAJ,IAAAwD,GAAA,CAAA7E,GAAA8E,MAAAC,EAAA/D,GAAA;CAAA;EAAAR;EAAA;EAAA;CAAA;CAAA;EAAAI;EAAA;EAAA;CAAA;CAAA;EAAAE;EAAA;EAAA;CAAA;CAAA;EAAAC;EAAA;EAAA;CAAA;AAAA,GAAAhB,GAAA,GAAA,KAAA,GA/GiCN,CAAY,GAAAuB,IAAAgE,IAAA,cAAAC,EAAA;CAAA/D,cAAA;EAAA,MAAAlB,CAAA,GAAA0B,EAAA,MAAA,UAC5B5B,CAAM,GAAAgF,EAAA;CAAA;AAAA,GAAApD,EAAAsD,GAAA/E,GAAA,KAAA,CAAA,GAAA+E,GAAA"}
1
+ {"version":3,"file":"Menu.esm.js","names":["customElement","WebComponent","html","property","query","state","styles","_classDecs","_Menu","_Menu2","_A","WeakMap","_B","_C","_D","_ref","_placementDecs","type","String","reflect","_distanceDecs","Number","_dropdownDecs","_itemsDecs","_Menu3","Menu","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_placement","_init_distance","_init_dropdown","_init_items","_defineProperty","MutationObserver","syncItems","_classPrivateFieldGet","placement","v","_classPrivateFieldSet","distance","dropdown","items","connectedCallback","observer","observe","childList","disconnectedCallback","disconnect","render","onWaSelect","map","item","onItemClick","slot","Array","from","children","filter","child","getAttribute","index","slotName","setAttribute","event","waItem","currentTarget","stopPropagation","disabled","selectedEvent","dispatchSelectEvent","defaultPrevented","open","detail","preventDefault","querySelector","click","CustomEvent","bubbles","composed","cancelable","dispatchEvent","e","c","_initClass","_applyDecs","_Class","_identity","default"],"sources":["../../../src/components/menu/Menu.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { html } from 'lit'\nimport { property, query, state } from 'lit/decorators.js'\nimport type WaDropdown from '@awesome.me/webawesome/dist/components/dropdown/dropdown.js'\nimport type WaDropdownItem from '@awesome.me/webawesome/dist/components/dropdown-item/dropdown-item.js'\nimport type { WaDropdownSelectEvent } from '@awesome.me/webawesome'\n\nimport '@awesome.me/webawesome/dist/components/dropdown/dropdown.js'\nimport '@awesome.me/webawesome/dist/components/dropdown-item/dropdown-item.js'\n\nimport styles from './Menu.styles.css'\n\n@customElement('solid-ui-menu')\nexport default class Menu extends WebComponent {\n static styles = styles\n\n @property({ type: String, reflect: true })\n accessor placement: WaDropdown['placement'] = 'bottom-start';\n\n @property({ type: Number, reflect: true })\n accessor distance: number = 5;\n\n @query('wa-dropdown')\n private accessor dropdown: WaDropdown | null = null;\n\n @state()\n private accessor items: { slot: string; }[] = []\n\n private observer: MutationObserver = new MutationObserver(() => this.syncItems())\n\n connectedCallback () {\n super.connectedCallback()\n\n this.syncItems()\n this.observer.observe(this, { childList: true })\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.observer.disconnect()\n }\n\n protected render () {\n return html`\n <wa-dropdown\n placement=${this.placement}\n distance=${this.distance}\n @wa-select=${this.onWaSelect}\n >\n <slot name=\"trigger\" slot=\"trigger\"></slot>\n\n ${this.items.map(\n (item) =>\n html`<wa-dropdown-item @click=${this.onItemClick}>\n <slot name=${item.slot}></slot>\n </wa-dropdown-item>`\n )}\n </wa-dropdown>\n `\n }\n\n private syncItems (): void {\n // Exclude only the trigger element; include all other children\n // regardless of whether they already have a slot assigned.\n const items = Array.from(this.children).filter(\n (child) => child.getAttribute('slot') !== 'trigger'\n )\n\n this.items = items.map((item, index) => {\n const slotName = `menu-item-${index}`\n\n if (item.getAttribute('slot') !== slotName) {\n item.setAttribute('slot', slotName)\n }\n\n return { slot: slotName }\n })\n }\n\n private onItemClick (event: Event) {\n const waItem = event.currentTarget as WaDropdownItem\n\n event.stopPropagation()\n\n if (waItem.disabled) {\n return\n }\n\n const selectedEvent = this.dispatchSelectEvent(waItem)\n\n if (selectedEvent.defaultPrevented || !this.dropdown) {\n return\n }\n\n this.dropdown.open = false\n }\n\n private onWaSelect (event: WaDropdownSelectEvent) {\n const selectedEvent = this.dispatchSelectEvent(event.detail.item)\n\n if (selectedEvent.defaultPrevented) {\n event.preventDefault()\n\n return\n }\n\n const slotName = event.detail.item.children[0].getAttribute('name')\n const item = this.querySelector<{ click?: () => void } & Element>(`[slot=\"${slotName}\"]`)\n\n item?.click?.()\n }\n\n private dispatchSelectEvent (waItem: WaDropdownItem) {\n const slotName = waItem.children[0].getAttribute('name')\n const item = this.querySelector(`[slot=\"${slotName}\"]`)\n const event = new CustomEvent('solid-ui-select', {\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n\n item?.dispatchEvent(event)\n\n return event\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=Menu.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Menu.test.d.ts","sourceRoot":"","sources":["../../../src/components/menu/Menu.test.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItem.cjs.js","names":["customElement","WebComponent","property","query","html","styles","_classDecs","_MenuItem","_MenuItem2","_A","WeakMap","_B","_C","_ref","_hrefDecs","type","String","reflect","_selectedDecs","Boolean","_anchorDecs","_MenuItem3","MenuItem","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_href","_init_selected","_init_anchor","_classPrivateFieldGet","href","v","_classPrivateFieldSet","selected","anchor","render","click","e","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","default"],"sources":["../../../src/components/menu-item/MenuItem.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { property, query } from 'lit/decorators.js'\nimport { html } from 'lit'\n\nimport styles from './MenuItem.styles.css'\n\n@customElement('solid-ui-menu-item')\nexport default class MenuItem extends WebComponent {\n static styles = styles\n\n @property({ type: String, reflect: true })\n accessor href: string | undefined\n\n @property({ type: Boolean, reflect: true })\n accessor selected: boolean = false\n\n @query('a')\n private accessor anchor: HTMLAnchorElement | null = null\n\n render () {\n if (this.href) {\n return html`\n <a href=\"${this.href}\" target=\"_blank\" rel=\"noopener noreferrer\" ?data-selected=${this.selected}>\n <slot name=\"left-icon\"></slot>\n <slot></slot>\n <slot name=\"right-icon\"></slot>\n </a>\n `\n }\n\n return html`\n <div ?data-selected=${this.selected}>\n <slot name=\"left-icon\"></slot>\n <slot></slot>\n <slot name=\"right-icon\"></slot>\n </div>\n `\n }\n\n click () {\n this.anchor?.click()\n }\n}\n"],"mappings":"m2IAI0CM,EAAA,CAEzCN,EAAAA,cAAc,oBAAoB,CAAC,EAAA,IAAAO,EAAA,IAAAC,GAAAC,EAAA,IAAAC,QAAAC,EAAA,IAAAD,QAAAE,EAAA,IAAAF,QAAAG,GAAAC,GAAAA,EAAAA,EAAAA,SAAAA,CAIxB,CAAEC,KAAMC,OAAQC,QAAS,EAAK,CAAC,EAACC,GAAAA,EAAAA,EAAAA,SAAAA,CAGhC,CAAEH,KAAMI,QAASF,QAAS,EAAK,CAAC,EAACG,GAAAA,EAAAA,EAAAA,MAAAA,CAGpC,GAAG,EAAC,QAAAC,EAVb,cACsCpB,EAAAA,OAAa,CAAAsB,YAAA,GAAAC,EAAA,CAAA,MAAA,GAAAA,CAAA,EAAAC,EAAA,KAAAhB,GAAAiB,EAAA,IAAA,EAAAC,EAAA,IAAA,EAAA,EAAAF,EAAA,KAAAd,EAAAiB,EAAA,KAOpB,EAAK,CAAA,EAAAH,EAAA,KAAAb,EAAAiB,EAAA,KAGkB,IAAI,CAAA,CAAA,CAAA,IAAAhB,IAAA,CAAA,OAAAiB,EAAArB,EAAA,IAAA,CAAA,CAAA,IAN/CsB,KAAIC,EAAA,CAAAC,EAAAxB,EAAA,KAAAuB,CAAA,CAAA,CAAA,IAGJE,UAAQ,CAAA,OAAAJ,EAAAnB,EAAA,IAAA,CAAA,CAAA,IAARuB,SAAQF,EAAA,CAAAC,EAAAtB,EAAA,KAAAqB,CAAA,CAAA,CAAA,IAGAG,QAAM,CAAA,OAAAL,EAAAlB,EAAA,IAAA,CAAA,CAAA,IAANuB,OAAMH,EAAA,CAAAC,EAAArB,EAAA,KAAAoB,CAAA,CAAA,CAEvBI,QAAU,CAWR,OAVI,KAAKL,KACA3B,EAAAA,IAAI;mBACE,KAAK2B,KAAI,6DAA8D,KAAKG,SAAQ;;;;;QAQ5F9B,EAAAA,IAAI;8BACe,KAAK8B,SAAQ;;;;;KAMzC,CAEAG,OAAS,CACP,KAAKF,QAAQE,MAAM,CACrB,CACF,EAAC,CAAAC,EAAA,CAAAX,EAAAC,EAAAC,EAAAH,GAAAa,EAAA,CAAAhC,EAAAiC,IAAAC,EAAApB,EAAA,CAAA,CAAAP,EAAA,EAAA,MAAA,EAAA,CAAAI,EAAA,EAAA,UAAA,EAAA,CAAAE,EAAA,EAAA,QAAA,CAAA,EAAAd,EAAA,EAAA,IAAA,GAnCqCL,EAAAA,OAAY,EAAAoB,GAAAqB,EAAA,cAAAC,CAAA,CAAApB,aAAA,CAAA,MAAAhB,CAAA,EAAAqC,EAAA,KAAA,SAChCvC,EAAAA,OAAM,EAAAmC,EAAA,CAAA,CAAA,EAAAI,EAAAF,EAAAlC,EAAA,IAAA,EAAA,EAAAkC"}
1
+ {"version":3,"file":"MenuItem.cjs.js","names":["customElement","WebComponent","property","query","html","styles","_classDecs","_MenuItem","_MenuItem2","_A","WeakMap","_B","_C","_ref","_hrefDecs","type","String","reflect","_selectedDecs","Boolean","_anchorDecs","_MenuItem3","MenuItem","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_href","_init_selected","_init_anchor","_classPrivateFieldGet","href","v","_classPrivateFieldSet","selected","anchor","render","click","e","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","default"],"sources":["../../../src/components/menu-item/MenuItem.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { property, query } from 'lit/decorators.js'\nimport { html } from 'lit'\n\nimport styles from './MenuItem.styles.css'\n\n@customElement('solid-ui-menu-item')\nexport default class MenuItem extends WebComponent {\n static styles = styles\n\n @property({ type: String, reflect: true })\n accessor href: string | undefined\n\n @property({ type: Boolean, reflect: true })\n accessor selected: boolean = false\n\n @query('a')\n private accessor anchor: HTMLAnchorElement | null = null\n\n render () {\n if (this.href) {\n return html`\n <a href=\"${this.href}\" target=\"_blank\" rel=\"noopener noreferrer\" ?data-selected=${this.selected}>\n <slot name=\"left-icon\"></slot>\n <slot></slot>\n <slot name=\"right-icon\"></slot>\n </a>\n `\n }\n\n return html`\n <div ?data-selected=${this.selected}>\n <slot name=\"left-icon\"></slot>\n <slot></slot>\n <slot name=\"right-icon\"></slot>\n </div>\n `\n }\n\n click () {\n this.anchor?.click()\n }\n}\n"],"mappings":"m2IAI0CM,EAAA,CAEzCN,EAAAA,cAAc,oBAAoB,CAAC,EAAA,IAAAO,EAAA,IAAAC,GAAAC,EAAA,IAAAC,QAAAC,EAAA,IAAAD,QAAAE,EAAA,IAAAF,QAAAG,GAAAC,GAAAA,EAIjCZ,EAAAA,SAAAA,CAAS,CAAEa,KAAMC,OAAQC,QAAS,EAAK,CAAC,EAACC,GAAAA,EAGzChB,EAAAA,SAAAA,CAAS,CAAEa,KAAMI,QAASF,QAAS,EAAK,CAAC,EAACG,GAAAA,EAG1CjB,EAAAA,MAAAA,CAAM,GAAG,EAAC,QAAAkB,EAVb,cACsCpB,EAAAA,OAAa,CAAAsB,YAAA,GAAAC,EAAA,CAAA,MAAA,GAAAA,CAAA,EAAAC,EAAA,KAAAhB,GAAAiB,EAAA,IAAA,EAAAC,EAAA,IAAA,EAAA,EAAAF,EAAA,KAAAd,EAAAiB,EAAA,KAOpB,EAAK,CAAA,EAAAH,EAAA,KAAAb,EAAAiB,EAAA,KAGkB,IAAI,CAAA,CAAA,CAAA,IAAAhB,IAAA,CAAA,OAAAiB,EAAArB,EAAA,IAAA,CAAA,CAAA,IAN/CsB,KAAIC,EAAA,CAAAC,EAAAxB,EAAA,KAAAuB,CAAA,CAAA,CAAA,IAGJE,UAAQ,CAAA,OAAAJ,EAAAnB,EAAA,IAAA,CAAA,CAAA,IAARuB,SAAQF,EAAA,CAAAC,EAAAtB,EAAA,KAAAqB,CAAA,CAAA,CAAA,IAGAG,QAAM,CAAA,OAAAL,EAAAlB,EAAA,IAAA,CAAA,CAAA,IAANuB,OAAMH,EAAA,CAAAC,EAAArB,EAAA,KAAAoB,CAAA,CAAA,CAEvBI,QAAU,CAWR,OAVI,KAAKL,KACA3B,EAAAA,IAAI;mBACE,KAAK2B,KAAI,6DAA8D,KAAKG,SAAQ;;;;;QAQ5F9B,EAAAA,IAAI;8BACe,KAAK8B,SAAQ;;;;;KAMzC,CAEAG,OAAS,CACP,KAAKF,QAAQE,MAAM,CACrB,CACF,EAAC,CAAAC,EAAA,CAAAX,EAAAC,EAAAC,EAAAH,GAAAa,EAAA,CAAAhC,EAAAiC,IAAAC,EAAApB,EAAA,CAAA,CAAAP,EAAA,EAAA,MAAA,EAAA,CAAAI,EAAA,EAAA,UAAA,EAAA,CAAAE,EAAA,EAAA,QAAA,CAAA,EAAAd,EAAA,EAAA,IAAA,GAnCqCL,EAAAA,OAAY,EAAAoB,GAAAqB,EAAA,cAAAC,CAAA,CAAApB,aAAA,CAAA,MAAAhB,CAAA,EAAAqC,EAAA,KAAA,SAChCvC,EAAAA,OAAM,EAAAmC,EAAA,CAAA,CAAA,EAAAI,EAAAF,EAAAlC,EAAA,IAAA,EAAA,EAAAkC"}
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "../chunks/menu-item-D9BqJtKZ.js";
1
+ import { n as e, t } from "../chunks/menu-item-Bj3NgLzB.js";
2
2
  export { e as MenuItem, t as default };
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "../chunks/menu-DKxtACGA.js";
1
+ import { n as e, t } from "../chunks/menu-DVgG-el5.js";
2
2
  export { e as Menu, t as default };
@@ -1 +1 @@
1
- {"version":3,"file":"PhotoCapture.cjs.js","names":["html","property","customElement","FormControlComponent","showDialog","PhotoCaptureModal","_classDecs","_PhotoCapture","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_ref","_labelDecs","type","String","reflect","_headingDecs","_captureLabelDecs","attribute","_confirmLabelDecs","_retakeLabelDecs","_cancelLabelDecs","_facingModeDecs","_constraintsDecs","_captureFormatDecs","_captureQualityDecs","Number","_showCancelButtonDecs","Boolean","_fileNamePrefixDecs","_mediaConstraintsDecs","PhotoCapture","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_label","_init_heading","_init_captureLabel","_init_confirmLabel","_init_retakeLabel","_init_cancelLabel","_init_facingMode","_init_constraints","_init_captureFormat","_init_captureQuality","undefined","_init_showCancelButton","_init_fileNamePrefix","_init_mediaConstraints","_defineProperty","_classPrivateFieldGet","label","v","_classPrivateFieldSet","heading","captureLabel","confirmLabel","retakeLabel","cancelLabel","facingMode","constraints","captureFormat","captureQuality","showCancelButton","fileNamePrefix","mediaConstraints","render","onClick","disabled","props","name","onClose","value","controlTrait","setValue","_PhotoCapture2","e","c","_initClass","_applyDecs","default"],"sources":["../../../src/components/photo-capture/PhotoCapture.ts"],"sourcesContent":["import { html } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { customElement, FormControlComponent } from '@/lib/components'\nimport { showDialog } from '@/lib/dialogs'\n\nimport PhotoCaptureModal from '@/components/photo-capture-modal'\n\n@customElement('solid-ui-photo-capture')\nexport default class PhotoCapture extends FormControlComponent<File> {\n @property({ type: String, reflect: true })\n accessor label = 'Take Photo'\n\n @property({ type: String, reflect: true })\n accessor heading = 'Take a photo'\n\n @property({ type: String, attribute: 'capture-label', reflect: true })\n accessor captureLabel = 'Take Photo'\n\n @property({ type: String, attribute: 'confirm-label', reflect: true })\n accessor confirmLabel = 'Use Photo'\n\n @property({ type: String, attribute: 'retake-label', reflect: true })\n accessor retakeLabel = 'Retake'\n\n @property({ type: String, attribute: 'cancel-label', reflect: true })\n accessor cancelLabel = 'Cancel'\n\n @property({ type: String, attribute: 'facing-mode', reflect: true })\n accessor facingMode = 'user'\n\n @property({ type: String, reflect: true })\n accessor constraints = ''\n\n @property({ type: String, attribute: 'capture-format', reflect: true })\n accessor captureFormat = 'image/png'\n\n @property({ type: Number, attribute: 'capture-quality' })\n accessor captureQuality: number | undefined = undefined\n\n @property({ type: Boolean, attribute: 'show-cancel-button', reflect: true })\n accessor showCancelButton = true\n\n @property({ type: String, attribute: 'file-name-prefix', reflect: true })\n accessor fileNamePrefix = ''\n\n @property({ attribute: false })\n accessor mediaConstraints: MediaStreamConstraints | undefined = undefined\n\n protected controlElement = null\n\n protected render () {\n return html`\n <slot name=\"trigger\" @click=${this.onClick}>\n <solid-ui-button ?disabled=\"${this.disabled}\">${this.label}</solid-ui-button>\n </slot>\n `\n }\n\n private onClick () {\n showDialog(PhotoCaptureModal, {\n props: {\n name: this.name,\n heading: this.heading,\n captureLabel: this.captureLabel,\n confirmLabel: this.confirmLabel,\n retakeLabel: this.retakeLabel,\n cancelLabel: this.cancelLabel,\n fileNamePrefix: this.fileNamePrefix,\n mediaConstraints: this.mediaConstraints,\n constraints: this.constraints,\n captureFormat: this.captureFormat,\n captureQuality: this.captureQuality,\n showCancelButton: this.showCancelButton,\n facingMode: this.facingMode,\n },\n onClose: value => this.controlTrait.setValue(value ?? null)\n })\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"PhotoCapture.cjs.js","names":["html","property","customElement","FormControlComponent","showDialog","PhotoCaptureModal","_classDecs","_PhotoCapture","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_ref","_labelDecs","type","String","reflect","_headingDecs","_captureLabelDecs","attribute","_confirmLabelDecs","_retakeLabelDecs","_cancelLabelDecs","_facingModeDecs","_constraintsDecs","_captureFormatDecs","_captureQualityDecs","Number","_showCancelButtonDecs","Boolean","_fileNamePrefixDecs","_mediaConstraintsDecs","PhotoCapture","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_label","_init_heading","_init_captureLabel","_init_confirmLabel","_init_retakeLabel","_init_cancelLabel","_init_facingMode","_init_constraints","_init_captureFormat","_init_captureQuality","undefined","_init_showCancelButton","_init_fileNamePrefix","_init_mediaConstraints","_defineProperty","_classPrivateFieldGet","label","v","_classPrivateFieldSet","heading","captureLabel","confirmLabel","retakeLabel","cancelLabel","facingMode","constraints","captureFormat","captureQuality","showCancelButton","fileNamePrefix","mediaConstraints","render","onClick","disabled","props","name","onClose","value","controlTrait","setValue","_PhotoCapture2","e","c","_initClass","_applyDecs","default"],"sources":["../../../src/components/photo-capture/PhotoCapture.ts"],"sourcesContent":["import { html } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { customElement, FormControlComponent } from '@/lib/components'\nimport { showDialog } from '@/lib/dialogs'\n\nimport PhotoCaptureModal from '@/components/photo-capture-modal'\n\n@customElement('solid-ui-photo-capture')\nexport default class PhotoCapture extends FormControlComponent<File> {\n @property({ type: String, reflect: true })\n accessor label = 'Take Photo'\n\n @property({ type: String, reflect: true })\n accessor heading = 'Take a photo'\n\n @property({ type: String, attribute: 'capture-label', reflect: true })\n accessor captureLabel = 'Take Photo'\n\n @property({ type: String, attribute: 'confirm-label', reflect: true })\n accessor confirmLabel = 'Use Photo'\n\n @property({ type: String, attribute: 'retake-label', reflect: true })\n accessor retakeLabel = 'Retake'\n\n @property({ type: String, attribute: 'cancel-label', reflect: true })\n accessor cancelLabel = 'Cancel'\n\n @property({ type: String, attribute: 'facing-mode', reflect: true })\n accessor facingMode = 'user'\n\n @property({ type: String, reflect: true })\n accessor constraints = ''\n\n @property({ type: String, attribute: 'capture-format', reflect: true })\n accessor captureFormat = 'image/png'\n\n @property({ type: Number, attribute: 'capture-quality' })\n accessor captureQuality: number | undefined = undefined\n\n @property({ type: Boolean, attribute: 'show-cancel-button', reflect: true })\n accessor showCancelButton = true\n\n @property({ type: String, attribute: 'file-name-prefix', reflect: true })\n accessor fileNamePrefix = ''\n\n @property({ attribute: false })\n accessor mediaConstraints: MediaStreamConstraints | undefined = undefined\n\n protected controlElement = null\n\n protected render () {\n return html`\n <slot name=\"trigger\" @click=${this.onClick}>\n <solid-ui-button ?disabled=\"${this.disabled}\">${this.label}</solid-ui-button>\n </slot>\n `\n }\n\n private onClick () {\n showDialog(PhotoCaptureModal, {\n props: {\n name: this.name,\n heading: this.heading,\n captureLabel: this.captureLabel,\n confirmLabel: this.confirmLabel,\n retakeLabel: this.retakeLabel,\n cancelLabel: this.cancelLabel,\n fileNamePrefix: this.fileNamePrefix,\n mediaConstraints: this.mediaConstraints,\n constraints: this.constraints,\n captureFormat: this.captureFormat,\n captureQuality: this.captureQuality,\n showCancelButton: this.showCancelButton,\n facingMode: this.facingMode,\n },\n onClose: value => this.controlTrait.setValue(value ?? null)\n })\n }\n}\n"],"mappings":"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"}
@@ -20,5 +20,5 @@ const e=require("../../lib/components/decorators.cjs.js"),t=require("../../lib/c
20
20
  `}
21
21
  </solid-ui-dialog-footer>
22
22
  </solid-ui-dialog>
23
- `}renderViewport(){return r.html`<div class="viewport">${this.previewUrl?r.html`<img src="${this.previewUrl}" alt="Captured photo preview" />`:r.html`<video autoplay playsinline muted></video>`}</div>`}renderStatus(){return this.errorMessage?r.html`<div class="status error">${this.errorMessage}</div>`:this.startingPreview?r.html`<div class="status">Opening camera…</div>`:this.value?r.html`<div class="status">Review the photo before confirming it.</div>`:r.html`<div class="status">Preview the camera and take a photo when ready.</div>`}onRetake(){this.clearValue(),this.queuePreviewStart()}onConfirm(){this.value&&this.close(this.value)}async onCapture(){let e=this.shadowRoot?.querySelector(`video`);if(!e)return;let t=e.videoWidth||e.clientWidth||640,n=e.videoHeight||e.clientHeight||480,r=document.createElement(`canvas`);r.width=t,r.height=n;let i=r.getContext(`2d`);if(!i){this.errorMessage=`Unable to capture a photo in this browser`;return}i.drawImage(e,0,0,t,n);let a=await new Promise(e=>{r.toBlob(e,this.captureFormat,this.captureQuality)});if(!a){this.errorMessage=`Unable to create an image from the current camera frame`;return}this.value=this.createFileFromBlob(a),this.errorMessage=``}createFileFromBlob(e){let t=e.type||this.captureFormat,n=this.fileExtensionForMimeType(t),r=(this.fileNamePrefix||this.name||`photo`).trim()||`photo`;return new File([e],`${r}-${Date.now()}.${n}`,{type:t})}fileExtensionForMimeType(e){switch(e){case`image/jpeg`:return`jpg`;case`image/webp`:return`webp`;case`image/gif`:return`gif`;default:return`png`}}queuePreviewStart(){this.startPreview().catch(()=>void 0)}stopStream(){if(!this.stream)return;this.stream.getTracks().forEach(e=>e.stop()),this.stream=null;let e=this.shadowRoot?.querySelector(`video`);e&&(e.srcObject=null)}syncPreviewFromValue(e){this.revokePreviewUrl(),e&&(this.stopStream(),this.previewUrl=URL.createObjectURL(e))}clearValue(){this.value=null,this.errorMessage=``}revokePreviewUrl(){this.previewUrl&&URL.revokeObjectURL(this.previewUrl),this.previewUrl=``}async startPreview(){if(!(this.value||this.startingPreview)){if(!navigator.mediaDevices?.getUserMedia){this.errorMessage=`Camera access is not available in this browser`;return}this.startingPreview=!0,this.errorMessage=``;try{let e=await navigator.mediaDevices.getUserMedia(this.resolveMediaConstraints());this.stream=e,this.requestUpdate(),await this.updateComplete;let t=this.shadowRoot?.querySelector(`video`);t&&(t.srcObject=e,await t.play?.().catch(()=>void 0))}catch(e){this.errorMessage=e?.message||`Unable to start the camera preview`}finally{this.startingPreview=!1}}}resolveMediaConstraints(){if(this.mediaConstraints)return this.mediaConstraints;if(this.constraints)try{return JSON.parse(this.constraints)}catch(e){throw Error(`Invalid constraints JSON: ${e.message}`)}return{video:!this.facingMode||{facingMode:{ideal:this.facingMode}}}}},{e:[O,A,ee,ne,ie,M,P,I,R,B,H,W,K,oe,ce,ue,fe,w],c:[$,T]}=_e(o,[[D,1,`name`],[k,1,`heading`],[j,1,`captureLabel`],[te,1,`confirmLabel`],[re,1,`retakeLabel`],[ae,1,`cancelLabel`],[N,1,`fileNamePrefix`],[F,1,`mediaConstraints`],[L,1,`constraints`],[z,1,`captureFormat`],[V,1,`captureQuality`],[U,1,`showCancelButton`],[G,1,`facingMode`],[q,1,`errorMessage`],[se,1,`previewUrl`],[le,1,`startingPreview`],[de,1,`value`]],E,0,void 0,t.default),o),a=class extends xe{constructor(){super($),Z(this,`styles`,n.default),T()}},Z(a,pe,void 0),a),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return $}});
23
+ `}renderViewport(){let e=this.previewUrl?r.html`<img src="${this.previewUrl}" alt="Captured photo preview" />`:r.html`<video autoplay playsinline muted></video>`;return r.html`<div class="viewport">${e}</div>`}renderStatus(){return this.errorMessage?r.html`<div class="status error">${this.errorMessage}</div>`:this.startingPreview?r.html`<div class="status">Opening camera…</div>`:this.value?r.html`<div class="status">Review the photo before confirming it.</div>`:r.html`<div class="status">Preview the camera and take a photo when ready.</div>`}onRetake(){this.clearValue(),this.queuePreviewStart()}onConfirm(){this.value&&this.close(this.value)}async onCapture(){let e=this.shadowRoot?.querySelector(`video`);if(!e)return;let t=e.videoWidth||e.clientWidth||640,n=e.videoHeight||e.clientHeight||480,r=document.createElement(`canvas`);r.width=t,r.height=n;let i=r.getContext(`2d`);if(!i){this.errorMessage=`Unable to capture a photo in this browser`;return}i.drawImage(e,0,0,t,n);let a=await new Promise(e=>{r.toBlob(e,this.captureFormat,this.captureQuality)});if(!a){this.errorMessage=`Unable to create an image from the current camera frame`;return}this.value=this.createFileFromBlob(a),this.errorMessage=``}createFileFromBlob(e){let t=e.type||this.captureFormat,n=this.fileExtensionForMimeType(t),r=(this.fileNamePrefix||this.name||`photo`).trim()||`photo`;return new File([e],`${r}-${Date.now()}.${n}`,{type:t})}fileExtensionForMimeType(e){switch(e){case`image/jpeg`:return`jpg`;case`image/webp`:return`webp`;case`image/gif`:return`gif`;default:return`png`}}queuePreviewStart(){this.startPreview().catch(()=>void 0)}stopStream(){if(!this.stream)return;this.stream.getTracks().forEach(e=>e.stop()),this.stream=null;let e=this.shadowRoot?.querySelector(`video`);e&&(e.srcObject=null)}syncPreviewFromValue(e){this.revokePreviewUrl(),e&&(this.stopStream(),this.previewUrl=URL.createObjectURL(e))}clearValue(){this.value=null,this.errorMessage=``}revokePreviewUrl(){this.previewUrl&&URL.revokeObjectURL(this.previewUrl),this.previewUrl=``}async startPreview(){if(!(this.value||this.startingPreview)){if(!navigator.mediaDevices?.getUserMedia){this.errorMessage=`Camera access is not available in this browser`;return}this.startingPreview=!0,this.errorMessage=``;try{let e=await navigator.mediaDevices.getUserMedia(this.resolveMediaConstraints());this.stream=e,this.requestUpdate(),await this.updateComplete;let t=this.shadowRoot?.querySelector(`video`);t&&(t.srcObject=e,await t.play?.().catch(()=>void 0))}catch(e){this.errorMessage=e?.message||`Unable to start the camera preview`}finally{this.startingPreview=!1}}}resolveMediaConstraints(){if(this.mediaConstraints)return this.mediaConstraints;if(this.constraints)try{return JSON.parse(this.constraints)}catch(e){throw Error(`Invalid constraints JSON: ${e.message}`)}return{video:!this.facingMode||{facingMode:{ideal:this.facingMode}}}}},{e:[O,A,ee,ne,ie,M,P,I,R,B,H,W,K,oe,ce,ue,fe,w],c:[$,T]}=_e(o,[[D,1,`name`],[k,1,`heading`],[j,1,`captureLabel`],[te,1,`confirmLabel`],[re,1,`retakeLabel`],[ae,1,`cancelLabel`],[N,1,`fileNamePrefix`],[F,1,`mediaConstraints`],[L,1,`constraints`],[z,1,`captureFormat`],[V,1,`captureQuality`],[U,1,`showCancelButton`],[G,1,`facingMode`],[q,1,`errorMessage`],[se,1,`previewUrl`],[le,1,`startingPreview`],[de,1,`value`]],E,0,void 0,t.default),o),a=class extends xe{constructor(){super($),Z(this,`styles`,n.default),T()}},Z(a,pe,void 0),a),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return $}});
24
24
  //# sourceMappingURL=PhotoCaptureModal.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PhotoCaptureModal.cjs.js","names":["customElement","DialogComponent","html","nothing","property","state","styles","_classDecs","_PhotoCaptureModal","_PhotoCaptureModal2","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_ref","_nameDecs","type","String","reflect","_headingDecs","_captureLabelDecs","_confirmLabelDecs","_retakeLabelDecs","_cancelLabelDecs","attribute","_fileNamePrefixDecs","_mediaConstraintsDecs","_constraintsDecs","_captureFormatDecs","_captureQualityDecs","Number","_showCancelButtonDecs","Boolean","_facingModeDecs","_errorMessageDecs","_previewUrlDecs","_startingPreviewDecs","_valueDecs","_PhotoCaptureModal3","PhotoCaptureModal","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_name","_init_heading","_init_captureLabel","_init_confirmLabel","_init_retakeLabel","_init_cancelLabel","_init_fileNamePrefix","_init_mediaConstraints","undefined","_init_constraints","_init_captureFormat","_init_captureQuality","_init_showCancelButton","_init_facingMode","_init_errorMessage","_init_previewUrl","_init_startingPreview","_init_value","_defineProperty","_classPrivateFieldGet","name","v","_classPrivateFieldSet","heading","captureLabel","confirmLabel","retakeLabel","cancelLabel","fileNamePrefix","mediaConstraints","constraints","captureFormat","captureQuality","showCancelButton","facingMode","errorMessage","previewUrl","startingPreview","value","disconnectedCallback","stopStream","revokePreviewUrl","willUpdate","changed","has","normalizedValue","File","syncPreviewFromValue","updated","stream","queuePreviewStart","video","shadowRoot","querySelector","srcObject","render","renderViewport","renderStatus","close","onRetake","onConfirm","onCapture","contents","clearValue","width","videoWidth","clientWidth","height","videoHeight","clientHeight","canvas","document","createElement","context","getContext","drawImage","blob","Promise","resolve","toBlob","createFileFromBlob","contentType","extension","fileExtensionForMimeType","safePrefix","trim","Date","now","mimeType","startPreview","catch","getTracks","forEach","track","stop","file","URL","createObjectURL","revokeObjectURL","navigator","mediaDevices","getUserMedia","resolveMediaConstraints","requestUpdate","updateComplete","play","error","message","JSON","parse","Error","ideal","e","c","_initClass","_applyDecs","_Class","_identity","default"],"sources":["../../../src/components/photo-capture-modal/PhotoCaptureModal.ts"],"sourcesContent":["import { customElement, DialogComponent } from '@/lib/components'\nimport { html, PropertyValues, nothing } from 'lit'\nimport { property, state } from 'lit/decorators.js'\n\nimport '@/components/button'\nimport '@/components/dialog'\nimport '@/components/dialog-content'\nimport '@/components/dialog-footer'\n\nimport styles from './PhotoCaptureModal.styles.css'\n\n@customElement('solid-ui-photo-capture-modal')\nexport default class PhotoCaptureModal extends DialogComponent<File> {\n static styles = styles\n\n @property({ type: String, reflect: true })\n accessor name = ''\n\n @property({ type: String, reflect: true })\n accessor heading = 'Take a photo'\n\n @property({ type: String, reflect: true })\n accessor captureLabel = 'Take Photo'\n\n @property({ type: String, reflect: true })\n accessor confirmLabel = 'Use Photo'\n\n @property({ type: String, reflect: true })\n accessor retakeLabel = 'Retake'\n\n @property({ type: String, attribute: 'cancel-label', reflect: true })\n accessor cancelLabel = 'Cancel'\n\n @property({ type: String, attribute: 'file-name-prefix', reflect: true })\n accessor fileNamePrefix = ''\n\n @property({ attribute: false })\n accessor mediaConstraints: MediaStreamConstraints | undefined = undefined\n\n @property({ type: String, reflect: true })\n accessor constraints = ''\n\n @property({ type: String, attribute: 'capture-format', reflect: true })\n accessor captureFormat = 'image/png'\n\n @property({ type: Number, attribute: 'capture-quality' })\n accessor captureQuality: number | undefined = undefined\n\n @property({ type: Boolean, attribute: 'show-cancel-button', reflect: true })\n accessor showCancelButton = true\n\n @property({ type: String, attribute: 'facing-mode', reflect: true })\n accessor facingMode = 'user'\n\n @state()\n accessor errorMessage = ''\n\n @state()\n accessor previewUrl = ''\n\n @state()\n accessor startingPreview = false\n\n @state()\n accessor value: File | null = null\n\n private stream: MediaStream | null = null\n\n disconnectedCallback () {\n this.stopStream()\n this.revokePreviewUrl()\n super.disconnectedCallback()\n }\n\n protected willUpdate (changed: PropertyValues<this>) {\n super.willUpdate(changed)\n\n if (changed.has('value')) {\n const normalizedValue = this.value instanceof File ? this.value : null\n\n if (normalizedValue !== this.value) {\n this.value = normalizedValue\n\n return\n }\n\n this.syncPreviewFromValue(normalizedValue)\n }\n }\n\n protected updated (changed: PropertyValues<this>) {\n if (\n !this.value &&\n !this.stream &&\n !this.startingPreview &&\n (changed.has('previewUrl') || changed.has('value'))\n ) {\n this.queuePreviewStart()\n }\n\n if (this.stream) {\n const video = this.shadowRoot?.querySelector<HTMLVideoElement>('video')\n\n if (video && video.srcObject !== this.stream) {\n video.srcObject = this.stream\n }\n }\n }\n\n protected render () {\n return html`\n <solid-ui-dialog title=${this.heading}>\n <solid-ui-dialog-content>\n ${this.renderViewport()}\n ${this.renderStatus()}\n </solid-ui-dialog-content>\n <solid-ui-dialog-footer>\n ${this.showCancelButton\n ? html`<solid-ui-button variant=\"secondary\" @click=${() => this.close()}>${this.cancelLabel}</solid-ui-button>`\n : nothing\n }\n\n ${this.value\n ? html`\n <solid-ui-button @click=${this.onRetake}>${this.retakeLabel}</solid-ui-button>\n <solid-ui-button @click=${this.onConfirm}>${this.confirmLabel}</solid-ui-button>\n `\n : html`\n <solid-ui-button\n ?disabled=${this.startingPreview || !this.stream}\n @click=${this.onCapture}\n >\n ${this.captureLabel}\n </solid-ui-button>\n `\n }\n </solid-ui-dialog-footer>\n </solid-ui-dialog>\n `\n }\n\n private renderViewport () {\n const contents = this.previewUrl\n ? html`<img src=\"${this.previewUrl}\" alt=\"Captured photo preview\" />`\n : html`<video autoplay playsinline muted></video>`\n\n return html`<div class=\"viewport\">${contents}</div>`\n }\n\n private renderStatus () {\n if (this.errorMessage) {\n return html`<div class=\"status error\">${this.errorMessage}</div>`\n }\n\n if (this.startingPreview) {\n return html`<div class=\"status\">Opening camera…</div>`\n }\n\n if (!this.value) {\n return html`<div class=\"status\">Preview the camera and take a photo when ready.</div>`\n }\n\n return html`<div class=\"status\">Review the photo before confirming it.</div>`\n }\n\n private onRetake () {\n this.clearValue()\n this.queuePreviewStart()\n }\n\n private onConfirm () {\n if (!this.value) {\n return\n }\n\n this.close(this.value)\n }\n\n private async onCapture () {\n const video = this.shadowRoot?.querySelector<HTMLVideoElement>('video')\n\n if (!video) {\n return\n }\n\n const width = video.videoWidth || video.clientWidth || 640\n const height = video.videoHeight || video.clientHeight || 480\n const canvas = document.createElement('canvas')\n canvas.width = width\n canvas.height = height\n\n const context = canvas.getContext('2d')\n\n if (!context) {\n this.errorMessage = 'Unable to capture a photo in this browser'\n\n return\n }\n\n context.drawImage(video, 0, 0, width, height)\n\n const blob = await new Promise<Blob | null>(resolve => {\n canvas.toBlob(resolve, this.captureFormat, this.captureQuality)\n })\n\n if (!blob) {\n this.errorMessage = 'Unable to create an image from the current camera frame'\n\n return\n }\n\n this.value = this.createFileFromBlob(blob)\n this.errorMessage = ''\n }\n\n private createFileFromBlob (blob: Blob): File {\n const contentType = blob.type || this.captureFormat\n const extension = this.fileExtensionForMimeType(contentType)\n const safePrefix = (this.fileNamePrefix || this.name || 'photo').trim() || 'photo'\n\n return new File([blob], `${safePrefix}-${Date.now()}.${extension}`, { type: contentType })\n }\n\n private fileExtensionForMimeType (mimeType: string): string {\n switch (mimeType) {\n case 'image/jpeg':\n return 'jpg'\n case 'image/webp':\n return 'webp'\n case 'image/gif':\n return 'gif'\n default:\n return 'png'\n }\n }\n\n private queuePreviewStart () {\n this.startPreview().catch(() => undefined)\n }\n\n private stopStream () {\n if (!this.stream) {\n return\n }\n\n this.stream.getTracks().forEach(track => track.stop())\n this.stream = null\n\n const video = this.shadowRoot?.querySelector<HTMLVideoElement>('video')\n\n if (video) {\n video.srcObject = null\n }\n }\n\n private syncPreviewFromValue (file: File | null) {\n this.revokePreviewUrl()\n\n if (!file) {\n return\n }\n\n this.stopStream()\n this.previewUrl = URL.createObjectURL(file)\n }\n\n private clearValue () {\n this.value = null\n this.errorMessage = ''\n }\n\n private revokePreviewUrl () {\n if (this.previewUrl) {\n URL.revokeObjectURL(this.previewUrl)\n }\n\n this.previewUrl = ''\n }\n\n private async startPreview () {\n if (this.value || this.startingPreview) {\n return\n }\n\n if (!navigator.mediaDevices?.getUserMedia) {\n this.errorMessage = 'Camera access is not available in this browser'\n\n return\n }\n\n this.startingPreview = true\n this.errorMessage = ''\n\n try {\n const stream = await navigator.mediaDevices.getUserMedia(this.resolveMediaConstraints())\n\n this.stream = stream\n this.requestUpdate()\n\n await this.updateComplete\n\n const video = this.shadowRoot?.querySelector<HTMLVideoElement>('video')\n\n if (video) {\n video.srcObject = stream\n\n await video.play?.().catch(() => undefined)\n }\n } catch (error) {\n this.errorMessage = (error as Error)?.message || 'Unable to start the camera preview'\n } finally {\n this.startingPreview = false\n }\n }\n\n private resolveMediaConstraints (): MediaStreamConstraints {\n if (this.mediaConstraints) {\n return this.mediaConstraints\n }\n\n if (this.constraints) {\n try {\n return JSON.parse(this.constraints) as MediaStreamConstraints\n } catch (error) {\n throw new Error(`Invalid constraints JSON: ${(error as Error).message}`)\n }\n }\n\n return {\n video: this.facingMode\n ? { facingMode: { ideal: this.facingMode } }\n : true\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"PhotoCaptureModal.cjs.js","names":["customElement","DialogComponent","html","nothing","property","state","styles","_classDecs","_PhotoCaptureModal","_PhotoCaptureModal2","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_ref","_nameDecs","type","String","reflect","_headingDecs","_captureLabelDecs","_confirmLabelDecs","_retakeLabelDecs","_cancelLabelDecs","attribute","_fileNamePrefixDecs","_mediaConstraintsDecs","_constraintsDecs","_captureFormatDecs","_captureQualityDecs","Number","_showCancelButtonDecs","Boolean","_facingModeDecs","_errorMessageDecs","_previewUrlDecs","_startingPreviewDecs","_valueDecs","_PhotoCaptureModal3","PhotoCaptureModal","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_name","_init_heading","_init_captureLabel","_init_confirmLabel","_init_retakeLabel","_init_cancelLabel","_init_fileNamePrefix","_init_mediaConstraints","undefined","_init_constraints","_init_captureFormat","_init_captureQuality","_init_showCancelButton","_init_facingMode","_init_errorMessage","_init_previewUrl","_init_startingPreview","_init_value","_defineProperty","_classPrivateFieldGet","name","v","_classPrivateFieldSet","heading","captureLabel","confirmLabel","retakeLabel","cancelLabel","fileNamePrefix","mediaConstraints","constraints","captureFormat","captureQuality","showCancelButton","facingMode","errorMessage","previewUrl","startingPreview","value","disconnectedCallback","stopStream","revokePreviewUrl","willUpdate","changed","has","normalizedValue","File","syncPreviewFromValue","updated","stream","queuePreviewStart","video","shadowRoot","querySelector","srcObject","render","renderViewport","renderStatus","close","onRetake","onConfirm","onCapture","contents","clearValue","width","videoWidth","clientWidth","height","videoHeight","clientHeight","canvas","document","createElement","context","getContext","drawImage","blob","Promise","resolve","toBlob","createFileFromBlob","contentType","extension","fileExtensionForMimeType","safePrefix","trim","Date","now","mimeType","startPreview","catch","getTracks","forEach","track","stop","file","URL","createObjectURL","revokeObjectURL","navigator","mediaDevices","getUserMedia","resolveMediaConstraints","requestUpdate","updateComplete","play","error","message","JSON","parse","Error","ideal","e","c","_initClass","_applyDecs","_Class","_identity","default"],"sources":["../../../src/components/photo-capture-modal/PhotoCaptureModal.ts"],"sourcesContent":["import { customElement, DialogComponent } from '@/lib/components'\nimport { html, PropertyValues, nothing } from 'lit'\nimport { property, state } from 'lit/decorators.js'\n\nimport '@/components/button'\nimport '@/components/dialog'\nimport '@/components/dialog-content'\nimport '@/components/dialog-footer'\n\nimport styles from './PhotoCaptureModal.styles.css'\n\n@customElement('solid-ui-photo-capture-modal')\nexport default class PhotoCaptureModal extends DialogComponent<File> {\n static styles = styles\n\n @property({ type: String, reflect: true })\n accessor name = ''\n\n @property({ type: String, reflect: true })\n accessor heading = 'Take a photo'\n\n @property({ type: String, reflect: true })\n accessor captureLabel = 'Take Photo'\n\n @property({ type: String, reflect: true })\n accessor confirmLabel = 'Use Photo'\n\n @property({ type: String, reflect: true })\n accessor retakeLabel = 'Retake'\n\n @property({ type: String, attribute: 'cancel-label', reflect: true })\n accessor cancelLabel = 'Cancel'\n\n @property({ type: String, attribute: 'file-name-prefix', reflect: true })\n accessor fileNamePrefix = ''\n\n @property({ attribute: false })\n accessor mediaConstraints: MediaStreamConstraints | undefined = undefined\n\n @property({ type: String, reflect: true })\n accessor constraints = ''\n\n @property({ type: String, attribute: 'capture-format', reflect: true })\n accessor captureFormat = 'image/png'\n\n @property({ type: Number, attribute: 'capture-quality' })\n accessor captureQuality: number | undefined = undefined\n\n @property({ type: Boolean, attribute: 'show-cancel-button', reflect: true })\n accessor showCancelButton = true\n\n @property({ type: String, attribute: 'facing-mode', reflect: true })\n accessor facingMode = 'user'\n\n @state()\n accessor errorMessage = ''\n\n @state()\n accessor previewUrl = ''\n\n @state()\n accessor startingPreview = false\n\n @state()\n accessor value: File | null = null\n\n private stream: MediaStream | null = null\n\n disconnectedCallback () {\n this.stopStream()\n this.revokePreviewUrl()\n super.disconnectedCallback()\n }\n\n protected willUpdate (changed: PropertyValues<this>) {\n super.willUpdate(changed)\n\n if (changed.has('value')) {\n const normalizedValue = this.value instanceof File ? this.value : null\n\n if (normalizedValue !== this.value) {\n this.value = normalizedValue\n\n return\n }\n\n this.syncPreviewFromValue(normalizedValue)\n }\n }\n\n protected updated (changed: PropertyValues<this>) {\n if (\n !this.value &&\n !this.stream &&\n !this.startingPreview &&\n (changed.has('previewUrl') || changed.has('value'))\n ) {\n this.queuePreviewStart()\n }\n\n if (this.stream) {\n const video = this.shadowRoot?.querySelector<HTMLVideoElement>('video')\n\n if (video && video.srcObject !== this.stream) {\n video.srcObject = this.stream\n }\n }\n }\n\n protected render () {\n return html`\n <solid-ui-dialog title=${this.heading}>\n <solid-ui-dialog-content>\n ${this.renderViewport()}\n ${this.renderStatus()}\n </solid-ui-dialog-content>\n <solid-ui-dialog-footer>\n ${this.showCancelButton\n ? html`<solid-ui-button variant=\"secondary\" @click=${() => this.close()}>${this.cancelLabel}</solid-ui-button>`\n : nothing\n }\n\n ${this.value\n ? html`\n <solid-ui-button @click=${this.onRetake}>${this.retakeLabel}</solid-ui-button>\n <solid-ui-button @click=${this.onConfirm}>${this.confirmLabel}</solid-ui-button>\n `\n : html`\n <solid-ui-button\n ?disabled=${this.startingPreview || !this.stream}\n @click=${this.onCapture}\n >\n ${this.captureLabel}\n </solid-ui-button>\n `\n }\n </solid-ui-dialog-footer>\n </solid-ui-dialog>\n `\n }\n\n private renderViewport () {\n const contents = this.previewUrl\n ? html`<img src=\"${this.previewUrl}\" alt=\"Captured photo preview\" />`\n : html`<video autoplay playsinline muted></video>`\n\n return html`<div class=\"viewport\">${contents}</div>`\n }\n\n private renderStatus () {\n if (this.errorMessage) {\n return html`<div class=\"status error\">${this.errorMessage}</div>`\n }\n\n if (this.startingPreview) {\n return html`<div class=\"status\">Opening camera…</div>`\n }\n\n if (!this.value) {\n return html`<div class=\"status\">Preview the camera and take a photo when ready.</div>`\n }\n\n return html`<div class=\"status\">Review the photo before confirming it.</div>`\n }\n\n private onRetake () {\n this.clearValue()\n this.queuePreviewStart()\n }\n\n private onConfirm () {\n if (!this.value) {\n return\n }\n\n this.close(this.value)\n }\n\n private async onCapture () {\n const video = this.shadowRoot?.querySelector<HTMLVideoElement>('video')\n\n if (!video) {\n return\n }\n\n const width = video.videoWidth || video.clientWidth || 640\n const height = video.videoHeight || video.clientHeight || 480\n const canvas = document.createElement('canvas')\n canvas.width = width\n canvas.height = height\n\n const context = canvas.getContext('2d')\n\n if (!context) {\n this.errorMessage = 'Unable to capture a photo in this browser'\n\n return\n }\n\n context.drawImage(video, 0, 0, width, height)\n\n const blob = await new Promise<Blob | null>(resolve => {\n canvas.toBlob(resolve, this.captureFormat, this.captureQuality)\n })\n\n if (!blob) {\n this.errorMessage = 'Unable to create an image from the current camera frame'\n\n return\n }\n\n this.value = this.createFileFromBlob(blob)\n this.errorMessage = ''\n }\n\n private createFileFromBlob (blob: Blob): File {\n const contentType = blob.type || this.captureFormat\n const extension = this.fileExtensionForMimeType(contentType)\n const safePrefix = (this.fileNamePrefix || this.name || 'photo').trim() || 'photo'\n\n return new File([blob], `${safePrefix}-${Date.now()}.${extension}`, { type: contentType })\n }\n\n private fileExtensionForMimeType (mimeType: string): string {\n switch (mimeType) {\n case 'image/jpeg':\n return 'jpg'\n case 'image/webp':\n return 'webp'\n case 'image/gif':\n return 'gif'\n default:\n return 'png'\n }\n }\n\n private queuePreviewStart () {\n this.startPreview().catch(() => undefined)\n }\n\n private stopStream () {\n if (!this.stream) {\n return\n }\n\n this.stream.getTracks().forEach(track => track.stop())\n this.stream = null\n\n const video = this.shadowRoot?.querySelector<HTMLVideoElement>('video')\n\n if (video) {\n video.srcObject = null\n }\n }\n\n private syncPreviewFromValue (file: File | null) {\n this.revokePreviewUrl()\n\n if (!file) {\n return\n }\n\n this.stopStream()\n this.previewUrl = URL.createObjectURL(file)\n }\n\n private clearValue () {\n this.value = null\n this.errorMessage = ''\n }\n\n private revokePreviewUrl () {\n if (this.previewUrl) {\n URL.revokeObjectURL(this.previewUrl)\n }\n\n this.previewUrl = ''\n }\n\n private async startPreview () {\n if (this.value || this.startingPreview) {\n return\n }\n\n if (!navigator.mediaDevices?.getUserMedia) {\n this.errorMessage = 'Camera access is not available in this browser'\n\n return\n }\n\n this.startingPreview = true\n this.errorMessage = ''\n\n try {\n const stream = await navigator.mediaDevices.getUserMedia(this.resolveMediaConstraints())\n\n this.stream = stream\n this.requestUpdate()\n\n await this.updateComplete\n\n const video = this.shadowRoot?.querySelector<HTMLVideoElement>('video')\n\n if (video) {\n video.srcObject = stream\n\n await video.play?.().catch(() => undefined)\n }\n } catch (error) {\n this.errorMessage = (error as Error)?.message || 'Unable to start the camera preview'\n } finally {\n this.startingPreview = false\n }\n }\n\n private resolveMediaConstraints (): MediaStreamConstraints {\n if (this.mediaConstraints) {\n return this.mediaConstraints\n }\n\n if (this.constraints) {\n try {\n return JSON.parse(this.constraints) as MediaStreamConstraints\n } catch (error) {\n throw new Error(`Invalid constraints JSON: ${(error as Error).message}`)\n }\n }\n\n return {\n video: this.facingMode\n ? { facingMode: { ideal: this.facingMode } }\n : true\n }\n }\n}\n"],"mappings":"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"}
@@ -375,7 +375,8 @@ new (me = (l = /*#__PURE__*/ new WeakMap(), u = /*#__PURE__*/ new WeakMap(), d =
375
375
  `;
376
376
  }
377
377
  renderViewport() {
378
- return r`<div class="viewport">${this.previewUrl ? r`<img src="${this.previewUrl}" alt="Captured photo preview" />` : r`<video autoplay playsinline muted></video>`}</div>`;
378
+ let e = this.previewUrl ? r`<img src="${this.previewUrl}" alt="Captured photo preview" />` : r`<video autoplay playsinline muted></video>`;
379
+ return r`<div class="viewport">${e}</div>`;
379
380
  }
380
381
  renderStatus() {
381
382
  return this.errorMessage ? r`<div class="status error">${this.errorMessage}</div>` : this.startingPreview ? r`<div class="status">Opening camera…</div>` : this.value ? r`<div class="status">Review the photo before confirming it.</div>` : r`<div class="status">Preview the camera and take a photo when ready.</div>`;
@@ -1 +1 @@
1
- {"version":3,"file":"PhotoCaptureModal.esm.js","names":["customElement","DialogComponent","html","nothing","property","state","styles","_classDecs","_PhotoCaptureModal","_PhotoCaptureModal2","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_ref","_nameDecs","type","String","reflect","_headingDecs","_captureLabelDecs","_confirmLabelDecs","_retakeLabelDecs","_cancelLabelDecs","attribute","_fileNamePrefixDecs","_mediaConstraintsDecs","_constraintsDecs","_captureFormatDecs","_captureQualityDecs","Number","_showCancelButtonDecs","Boolean","_facingModeDecs","_errorMessageDecs","_previewUrlDecs","_startingPreviewDecs","_valueDecs","_PhotoCaptureModal3","PhotoCaptureModal","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_name","_init_heading","_init_captureLabel","_init_confirmLabel","_init_retakeLabel","_init_cancelLabel","_init_fileNamePrefix","_init_mediaConstraints","undefined","_init_constraints","_init_captureFormat","_init_captureQuality","_init_showCancelButton","_init_facingMode","_init_errorMessage","_init_previewUrl","_init_startingPreview","_init_value","_defineProperty","_classPrivateFieldGet","name","v","_classPrivateFieldSet","heading","captureLabel","confirmLabel","retakeLabel","cancelLabel","fileNamePrefix","mediaConstraints","constraints","captureFormat","captureQuality","showCancelButton","facingMode","errorMessage","previewUrl","startingPreview","value","disconnectedCallback","stopStream","revokePreviewUrl","willUpdate","changed","has","normalizedValue","File","syncPreviewFromValue","updated","stream","queuePreviewStart","video","shadowRoot","querySelector","srcObject","render","renderViewport","renderStatus","close","onRetake","onConfirm","onCapture","contents","clearValue","width","videoWidth","clientWidth","height","videoHeight","clientHeight","canvas","document","createElement","context","getContext","drawImage","blob","Promise","resolve","toBlob","createFileFromBlob","contentType","extension","fileExtensionForMimeType","safePrefix","trim","Date","now","mimeType","startPreview","catch","getTracks","forEach","track","stop","file","URL","createObjectURL","revokeObjectURL","navigator","mediaDevices","getUserMedia","resolveMediaConstraints","requestUpdate","updateComplete","play","error","message","JSON","parse","Error","ideal","e","c","_initClass","_applyDecs","_Class","_identity","default"],"sources":["../../../src/components/photo-capture-modal/PhotoCaptureModal.ts"],"sourcesContent":["import { customElement, DialogComponent } from '@/lib/components'\nimport { html, PropertyValues, nothing } from 'lit'\nimport { property, state } from 'lit/decorators.js'\n\nimport '@/components/button'\nimport '@/components/dialog'\nimport '@/components/dialog-content'\nimport '@/components/dialog-footer'\n\nimport styles from './PhotoCaptureModal.styles.css'\n\n@customElement('solid-ui-photo-capture-modal')\nexport default class PhotoCaptureModal extends DialogComponent<File> {\n static styles = styles\n\n @property({ type: String, reflect: true })\n accessor name = ''\n\n @property({ type: String, reflect: true })\n accessor heading = 'Take a photo'\n\n @property({ type: String, reflect: true })\n accessor captureLabel = 'Take Photo'\n\n @property({ type: String, reflect: true })\n accessor confirmLabel = 'Use Photo'\n\n @property({ type: String, reflect: true })\n accessor retakeLabel = 'Retake'\n\n @property({ type: String, attribute: 'cancel-label', reflect: true })\n accessor cancelLabel = 'Cancel'\n\n @property({ type: String, attribute: 'file-name-prefix', reflect: true })\n accessor fileNamePrefix = ''\n\n @property({ attribute: false })\n accessor mediaConstraints: MediaStreamConstraints | undefined = undefined\n\n @property({ type: String, reflect: true })\n accessor constraints = ''\n\n @property({ type: String, attribute: 'capture-format', reflect: true })\n accessor captureFormat = 'image/png'\n\n @property({ type: Number, attribute: 'capture-quality' })\n accessor captureQuality: number | undefined = undefined\n\n @property({ type: Boolean, attribute: 'show-cancel-button', reflect: true })\n accessor showCancelButton = true\n\n @property({ type: String, attribute: 'facing-mode', reflect: true })\n accessor facingMode = 'user'\n\n @state()\n accessor errorMessage = ''\n\n @state()\n accessor previewUrl = ''\n\n @state()\n accessor startingPreview = false\n\n @state()\n accessor value: File | null = null\n\n private stream: MediaStream | null = null\n\n disconnectedCallback () {\n this.stopStream()\n this.revokePreviewUrl()\n super.disconnectedCallback()\n }\n\n protected willUpdate (changed: PropertyValues<this>) {\n super.willUpdate(changed)\n\n if (changed.has('value')) {\n const normalizedValue = this.value instanceof File ? this.value : null\n\n if (normalizedValue !== this.value) {\n this.value = normalizedValue\n\n return\n }\n\n this.syncPreviewFromValue(normalizedValue)\n }\n }\n\n protected updated (changed: PropertyValues<this>) {\n if (\n !this.value &&\n !this.stream &&\n !this.startingPreview &&\n (changed.has('previewUrl') || changed.has('value'))\n ) {\n this.queuePreviewStart()\n }\n\n if (this.stream) {\n const video = this.shadowRoot?.querySelector<HTMLVideoElement>('video')\n\n if (video && video.srcObject !== this.stream) {\n video.srcObject = this.stream\n }\n }\n }\n\n protected render () {\n return html`\n <solid-ui-dialog title=${this.heading}>\n <solid-ui-dialog-content>\n ${this.renderViewport()}\n ${this.renderStatus()}\n </solid-ui-dialog-content>\n <solid-ui-dialog-footer>\n ${this.showCancelButton\n ? html`<solid-ui-button variant=\"secondary\" @click=${() => this.close()}>${this.cancelLabel}</solid-ui-button>`\n : nothing\n }\n\n ${this.value\n ? html`\n <solid-ui-button @click=${this.onRetake}>${this.retakeLabel}</solid-ui-button>\n <solid-ui-button @click=${this.onConfirm}>${this.confirmLabel}</solid-ui-button>\n `\n : html`\n <solid-ui-button\n ?disabled=${this.startingPreview || !this.stream}\n @click=${this.onCapture}\n >\n ${this.captureLabel}\n </solid-ui-button>\n `\n }\n </solid-ui-dialog-footer>\n </solid-ui-dialog>\n `\n }\n\n private renderViewport () {\n const contents = this.previewUrl\n ? html`<img src=\"${this.previewUrl}\" alt=\"Captured photo preview\" />`\n : html`<video autoplay playsinline muted></video>`\n\n return html`<div class=\"viewport\">${contents}</div>`\n }\n\n private renderStatus () {\n if (this.errorMessage) {\n return html`<div class=\"status error\">${this.errorMessage}</div>`\n }\n\n if (this.startingPreview) {\n return html`<div class=\"status\">Opening camera…</div>`\n }\n\n if (!this.value) {\n return html`<div class=\"status\">Preview the camera and take a photo when ready.</div>`\n }\n\n return html`<div class=\"status\">Review the photo before confirming it.</div>`\n }\n\n private onRetake () {\n this.clearValue()\n this.queuePreviewStart()\n }\n\n private onConfirm () {\n if (!this.value) {\n return\n }\n\n this.close(this.value)\n }\n\n private async onCapture () {\n const video = this.shadowRoot?.querySelector<HTMLVideoElement>('video')\n\n if (!video) {\n return\n }\n\n const width = video.videoWidth || video.clientWidth || 640\n const height = video.videoHeight || video.clientHeight || 480\n const canvas = document.createElement('canvas')\n canvas.width = width\n canvas.height = height\n\n const context = canvas.getContext('2d')\n\n if (!context) {\n this.errorMessage = 'Unable to capture a photo in this browser'\n\n return\n }\n\n context.drawImage(video, 0, 0, width, height)\n\n const blob = await new Promise<Blob | null>(resolve => {\n canvas.toBlob(resolve, this.captureFormat, this.captureQuality)\n })\n\n if (!blob) {\n this.errorMessage = 'Unable to create an image from the current camera frame'\n\n return\n }\n\n this.value = this.createFileFromBlob(blob)\n this.errorMessage = ''\n }\n\n private createFileFromBlob (blob: Blob): File {\n const contentType = blob.type || this.captureFormat\n const extension = this.fileExtensionForMimeType(contentType)\n const safePrefix = (this.fileNamePrefix || this.name || 'photo').trim() || 'photo'\n\n return new File([blob], `${safePrefix}-${Date.now()}.${extension}`, { type: contentType })\n }\n\n private fileExtensionForMimeType (mimeType: string): string {\n switch (mimeType) {\n case 'image/jpeg':\n return 'jpg'\n case 'image/webp':\n return 'webp'\n case 'image/gif':\n return 'gif'\n default:\n return 'png'\n }\n }\n\n private queuePreviewStart () {\n this.startPreview().catch(() => undefined)\n }\n\n private stopStream () {\n if (!this.stream) {\n return\n }\n\n this.stream.getTracks().forEach(track => track.stop())\n this.stream = null\n\n const video = this.shadowRoot?.querySelector<HTMLVideoElement>('video')\n\n if (video) {\n video.srcObject = null\n }\n }\n\n private syncPreviewFromValue (file: File | null) {\n this.revokePreviewUrl()\n\n if (!file) {\n return\n }\n\n this.stopStream()\n this.previewUrl = URL.createObjectURL(file)\n }\n\n private clearValue () {\n this.value = null\n this.errorMessage = ''\n }\n\n private revokePreviewUrl () {\n if (this.previewUrl) {\n URL.revokeObjectURL(this.previewUrl)\n }\n\n this.previewUrl = ''\n }\n\n private async startPreview () {\n if (this.value || this.startingPreview) {\n return\n }\n\n if (!navigator.mediaDevices?.getUserMedia) {\n this.errorMessage = 'Camera access is not available in this browser'\n\n return\n }\n\n this.startingPreview = true\n this.errorMessage = ''\n\n try {\n const stream = await navigator.mediaDevices.getUserMedia(this.resolveMediaConstraints())\n\n this.stream = stream\n this.requestUpdate()\n\n await this.updateComplete\n\n const video = this.shadowRoot?.querySelector<HTMLVideoElement>('video')\n\n if (video) {\n video.srcObject = stream\n\n await video.play?.().catch(() => undefined)\n }\n } catch (error) {\n this.errorMessage = (error as Error)?.message || 'Unable to start the camera preview'\n } finally {\n this.startingPreview = false\n }\n }\n\n private resolveMediaConstraints (): MediaStreamConstraints {\n if (this.mediaConstraints) {\n return this.mediaConstraints\n }\n\n if (this.constraints) {\n try {\n return JSON.parse(this.constraints) as MediaStreamConstraints\n } catch (error) {\n throw new Error(`Invalid constraints JSON: ${(error as Error).message}`)\n }\n }\n\n return {\n video: this.facingMode\n ? { facingMode: { ideal: this.facingMode } }\n : true\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"PhotoCaptureModal.esm.js","names":["customElement","DialogComponent","html","nothing","property","state","styles","_classDecs","_PhotoCaptureModal","_PhotoCaptureModal2","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_ref","_nameDecs","type","String","reflect","_headingDecs","_captureLabelDecs","_confirmLabelDecs","_retakeLabelDecs","_cancelLabelDecs","attribute","_fileNamePrefixDecs","_mediaConstraintsDecs","_constraintsDecs","_captureFormatDecs","_captureQualityDecs","Number","_showCancelButtonDecs","Boolean","_facingModeDecs","_errorMessageDecs","_previewUrlDecs","_startingPreviewDecs","_valueDecs","_PhotoCaptureModal3","PhotoCaptureModal","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_name","_init_heading","_init_captureLabel","_init_confirmLabel","_init_retakeLabel","_init_cancelLabel","_init_fileNamePrefix","_init_mediaConstraints","undefined","_init_constraints","_init_captureFormat","_init_captureQuality","_init_showCancelButton","_init_facingMode","_init_errorMessage","_init_previewUrl","_init_startingPreview","_init_value","_defineProperty","_classPrivateFieldGet","name","v","_classPrivateFieldSet","heading","captureLabel","confirmLabel","retakeLabel","cancelLabel","fileNamePrefix","mediaConstraints","constraints","captureFormat","captureQuality","showCancelButton","facingMode","errorMessage","previewUrl","startingPreview","value","disconnectedCallback","stopStream","revokePreviewUrl","willUpdate","changed","has","normalizedValue","File","syncPreviewFromValue","updated","stream","queuePreviewStart","video","shadowRoot","querySelector","srcObject","render","renderViewport","renderStatus","close","onRetake","onConfirm","onCapture","contents","clearValue","width","videoWidth","clientWidth","height","videoHeight","clientHeight","canvas","document","createElement","context","getContext","drawImage","blob","Promise","resolve","toBlob","createFileFromBlob","contentType","extension","fileExtensionForMimeType","safePrefix","trim","Date","now","mimeType","startPreview","catch","getTracks","forEach","track","stop","file","URL","createObjectURL","revokeObjectURL","navigator","mediaDevices","getUserMedia","resolveMediaConstraints","requestUpdate","updateComplete","play","error","message","JSON","parse","Error","ideal","e","c","_initClass","_applyDecs","_Class","_identity","default"],"sources":["../../../src/components/photo-capture-modal/PhotoCaptureModal.ts"],"sourcesContent":["import { customElement, DialogComponent } from '@/lib/components'\nimport { html, PropertyValues, nothing } from 'lit'\nimport { property, state } from 'lit/decorators.js'\n\nimport '@/components/button'\nimport '@/components/dialog'\nimport '@/components/dialog-content'\nimport '@/components/dialog-footer'\n\nimport styles from './PhotoCaptureModal.styles.css'\n\n@customElement('solid-ui-photo-capture-modal')\nexport default class PhotoCaptureModal extends DialogComponent<File> {\n static styles = styles\n\n @property({ type: String, reflect: true })\n accessor name = ''\n\n @property({ type: String, reflect: true })\n accessor heading = 'Take a photo'\n\n @property({ type: String, reflect: true })\n accessor captureLabel = 'Take Photo'\n\n @property({ type: String, reflect: true })\n accessor confirmLabel = 'Use Photo'\n\n @property({ type: String, reflect: true })\n accessor retakeLabel = 'Retake'\n\n @property({ type: String, attribute: 'cancel-label', reflect: true })\n accessor cancelLabel = 'Cancel'\n\n @property({ type: String, attribute: 'file-name-prefix', reflect: true })\n accessor fileNamePrefix = ''\n\n @property({ attribute: false })\n accessor mediaConstraints: MediaStreamConstraints | undefined = undefined\n\n @property({ type: String, reflect: true })\n accessor constraints = ''\n\n @property({ type: String, attribute: 'capture-format', reflect: true })\n accessor captureFormat = 'image/png'\n\n @property({ type: Number, attribute: 'capture-quality' })\n accessor captureQuality: number | undefined = undefined\n\n @property({ type: Boolean, attribute: 'show-cancel-button', reflect: true })\n accessor showCancelButton = true\n\n @property({ type: String, attribute: 'facing-mode', reflect: true })\n accessor facingMode = 'user'\n\n @state()\n accessor errorMessage = ''\n\n @state()\n accessor previewUrl = ''\n\n @state()\n accessor startingPreview = false\n\n @state()\n accessor value: File | null = null\n\n private stream: MediaStream | null = null\n\n disconnectedCallback () {\n this.stopStream()\n this.revokePreviewUrl()\n super.disconnectedCallback()\n }\n\n protected willUpdate (changed: PropertyValues<this>) {\n super.willUpdate(changed)\n\n if (changed.has('value')) {\n const normalizedValue = this.value instanceof File ? this.value : null\n\n if (normalizedValue !== this.value) {\n this.value = normalizedValue\n\n return\n }\n\n this.syncPreviewFromValue(normalizedValue)\n }\n }\n\n protected updated (changed: PropertyValues<this>) {\n if (\n !this.value &&\n !this.stream &&\n !this.startingPreview &&\n (changed.has('previewUrl') || changed.has('value'))\n ) {\n this.queuePreviewStart()\n }\n\n if (this.stream) {\n const video = this.shadowRoot?.querySelector<HTMLVideoElement>('video')\n\n if (video && video.srcObject !== this.stream) {\n video.srcObject = this.stream\n }\n }\n }\n\n protected render () {\n return html`\n <solid-ui-dialog title=${this.heading}>\n <solid-ui-dialog-content>\n ${this.renderViewport()}\n ${this.renderStatus()}\n </solid-ui-dialog-content>\n <solid-ui-dialog-footer>\n ${this.showCancelButton\n ? html`<solid-ui-button variant=\"secondary\" @click=${() => this.close()}>${this.cancelLabel}</solid-ui-button>`\n : nothing\n }\n\n ${this.value\n ? html`\n <solid-ui-button @click=${this.onRetake}>${this.retakeLabel}</solid-ui-button>\n <solid-ui-button @click=${this.onConfirm}>${this.confirmLabel}</solid-ui-button>\n `\n : html`\n <solid-ui-button\n ?disabled=${this.startingPreview || !this.stream}\n @click=${this.onCapture}\n >\n ${this.captureLabel}\n </solid-ui-button>\n `\n }\n </solid-ui-dialog-footer>\n </solid-ui-dialog>\n `\n }\n\n private renderViewport () {\n const contents = this.previewUrl\n ? html`<img src=\"${this.previewUrl}\" alt=\"Captured photo preview\" />`\n : html`<video autoplay playsinline muted></video>`\n\n return html`<div class=\"viewport\">${contents}</div>`\n }\n\n private renderStatus () {\n if (this.errorMessage) {\n return html`<div class=\"status error\">${this.errorMessage}</div>`\n }\n\n if (this.startingPreview) {\n return html`<div class=\"status\">Opening camera…</div>`\n }\n\n if (!this.value) {\n return html`<div class=\"status\">Preview the camera and take a photo when ready.</div>`\n }\n\n return html`<div class=\"status\">Review the photo before confirming it.</div>`\n }\n\n private onRetake () {\n this.clearValue()\n this.queuePreviewStart()\n }\n\n private onConfirm () {\n if (!this.value) {\n return\n }\n\n this.close(this.value)\n }\n\n private async onCapture () {\n const video = this.shadowRoot?.querySelector<HTMLVideoElement>('video')\n\n if (!video) {\n return\n }\n\n const width = video.videoWidth || video.clientWidth || 640\n const height = video.videoHeight || video.clientHeight || 480\n const canvas = document.createElement('canvas')\n canvas.width = width\n canvas.height = height\n\n const context = canvas.getContext('2d')\n\n if (!context) {\n this.errorMessage = 'Unable to capture a photo in this browser'\n\n return\n }\n\n context.drawImage(video, 0, 0, width, height)\n\n const blob = await new Promise<Blob | null>(resolve => {\n canvas.toBlob(resolve, this.captureFormat, this.captureQuality)\n })\n\n if (!blob) {\n this.errorMessage = 'Unable to create an image from the current camera frame'\n\n return\n }\n\n this.value = this.createFileFromBlob(blob)\n this.errorMessage = ''\n }\n\n private createFileFromBlob (blob: Blob): File {\n const contentType = blob.type || this.captureFormat\n const extension = this.fileExtensionForMimeType(contentType)\n const safePrefix = (this.fileNamePrefix || this.name || 'photo').trim() || 'photo'\n\n return new File([blob], `${safePrefix}-${Date.now()}.${extension}`, { type: contentType })\n }\n\n private fileExtensionForMimeType (mimeType: string): string {\n switch (mimeType) {\n case 'image/jpeg':\n return 'jpg'\n case 'image/webp':\n return 'webp'\n case 'image/gif':\n return 'gif'\n default:\n return 'png'\n }\n }\n\n private queuePreviewStart () {\n this.startPreview().catch(() => undefined)\n }\n\n private stopStream () {\n if (!this.stream) {\n return\n }\n\n this.stream.getTracks().forEach(track => track.stop())\n this.stream = null\n\n const video = this.shadowRoot?.querySelector<HTMLVideoElement>('video')\n\n if (video) {\n video.srcObject = null\n }\n }\n\n private syncPreviewFromValue (file: File | null) {\n this.revokePreviewUrl()\n\n if (!file) {\n return\n }\n\n this.stopStream()\n this.previewUrl = URL.createObjectURL(file)\n }\n\n private clearValue () {\n this.value = null\n this.errorMessage = ''\n }\n\n private revokePreviewUrl () {\n if (this.previewUrl) {\n URL.revokeObjectURL(this.previewUrl)\n }\n\n this.previewUrl = ''\n }\n\n private async startPreview () {\n if (this.value || this.startingPreview) {\n return\n }\n\n if (!navigator.mediaDevices?.getUserMedia) {\n this.errorMessage = 'Camera access is not available in this browser'\n\n return\n }\n\n this.startingPreview = true\n this.errorMessage = ''\n\n try {\n const stream = await navigator.mediaDevices.getUserMedia(this.resolveMediaConstraints())\n\n this.stream = stream\n this.requestUpdate()\n\n await this.updateComplete\n\n const video = this.shadowRoot?.querySelector<HTMLVideoElement>('video')\n\n if (video) {\n video.srcObject = stream\n\n await video.play?.().catch(() => undefined)\n }\n } catch (error) {\n this.errorMessage = (error as Error)?.message || 'Unable to start the camera preview'\n } finally {\n this.startingPreview = false\n }\n }\n\n private resolveMediaConstraints (): MediaStreamConstraints {\n if (this.mediaConstraints) {\n return this.mediaConstraints\n }\n\n if (this.constraints) {\n try {\n return JSON.parse(this.constraints) as MediaStreamConstraints\n } catch (error) {\n throw new Error(`Invalid constraints JSON: ${(error as Error).message}`)\n }\n }\n\n return {\n video: this.facingMode\n ? { facingMode: { ideal: this.facingMode } }\n : true\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASmDO,IAAA,CAElDP,EAAc,8BAA8B,CAAC;AAAA,IAAAQ;AAAA,KAAAC,MAAAC,kBAAA,IAAAC,QAAA,GAAAC,kBAAA,IAAAD,QAAA,GAAAE,kBAAA,IAAAF,QAAA,GAAAG,kBAAA,IAAAH,QAAA,GAAAI,kBAAA,IAAAJ,QAAA,GAAAK,kBAAA,IAAAL,QAAA,GAAAM,kBAAA,IAAAN,QAAA,GAAAO,kBAAA,IAAAP,QAAA,GAAAQ,kBAAA,IAAAR,QAAA,GAAAS,kBAAA,IAAAT,QAAA,GAAAU,kBAAA,IAAAV,QAAA,GAAAW,kBAAA,IAAAX,QAAA,GAAAY,kBAAA,IAAAZ,QAAA,GAAAa,kBAAA,IAAAb,QAAA,GAAAc,kBAAA,IAAAd,QAAA,GAAAe,kBAAA,IAAAf,QAAA,GAAAgB,kBAAA,IAAAhB,QAAA,GAAAiB,MAAAC,IAI3CzB,EAAS;CAAE0B,MAAMC;CAAQC,SAAS;AAAK,CAAC,GAACC,IAGzC7B,EAAS;CAAE0B,MAAMC;CAAQC,SAAS;AAAK,CAAC,GAACE,KAGzC9B,EAAS;CAAE0B,MAAMC;CAAQC,SAAS;AAAK,CAAC,GAACG,KAGzC/B,EAAS;CAAE0B,MAAMC;CAAQC,SAAS;AAAK,CAAC,GAACI,KAGzChC,EAAS;CAAE0B,MAAMC;CAAQC,SAAS;AAAK,CAAC,GAACK,IAGzCjC,EAAS;CAAE0B,MAAMC;CAAQO,WAAW;CAAgBN,SAAS;AAAK,CAAC,GAACO,IAGpEnC,EAAS;CAAE0B,MAAMC;CAAQO,WAAW;CAAoBN,SAAS;AAAK,CAAC,GAACQ,IAGxEpC,EAAS,EAAEkC,WAAW,GAAM,CAAC,GAACG,IAG9BrC,EAAS;CAAE0B,MAAMC;CAAQC,SAAS;AAAK,CAAC,GAACU,IAGzCtC,EAAS;CAAE0B,MAAMC;CAAQO,WAAW;CAAkBN,SAAS;AAAK,CAAC,GAACW,IAGtEvC,EAAS;CAAE0B,MAAMc;CAAQN,WAAW;AAAkB,CAAC,GAACO,IAGxDzC,EAAS;CAAE0B,MAAMgB;CAASR,WAAW;CAAsBN,SAAS;AAAK,CAAC,GAACe,IAG3E3C,EAAS;CAAE0B,MAAMC;CAAQO,WAAW;CAAeN,SAAS;AAAK,CAAC,GAACgB,KAGnE3C,EAAM,GAAC4C,KAGP5C,EAAM,GAAC6C,KAGP7C,EAAM,GAAC8C,KAGP9C,EAAM,GAAC,SAAA+C,IApDV,cAC+CnD,EAAsB;CAAAqD,YAAA,GAAAC,GAAA;EAoDjCqB,AApDiC,MAAA,GAAArB,CAAA,GAAAC,EAAA,MAAA9C,IAAA+C,EAAA,IAAA,GAAAC,EAAA,MAInD,EAAE,EAAA,GAAAF,EAAA,MAAA5C,GAAA+C,GAAA,MAGC,cAAc,CAAA,GAAAH,EAAA,MAAA3C,GAAA+C,GAAA,MAGT,YAAY,CAAA,GAAAJ,EAAA,MAAA1C,GAAA+C,EAAA,MAGZ,WAAW,CAAA,GAAAL,EAAA,MAAAzC,GAAA+C,GAAA,MAGZ,QAAQ,CAAA,GAAAN,EAAA,MAAAxC,GAAA+C,EAAA,MAGR,QAAQ,CAAA,GAAAP,EAAA,MAAAvC,GAAA+C,EAAA,MAGL,EAAE,CAAA,GAAAR,EAAA,MAAAtC,GAAA+C,EAAA,MAGoCC,KAAAA,CAAS,CAAA,GAAAV,EAAA,MAAArC,GAAAgD,EAAA,MAGlD,EAAE,CAAA,GAAAX,EAAA,MAAApC,GAAAgD,EAAA,MAGA,WAAW,CAAA,GAAAZ,EAAA,MAAAnC,GAAAgD,EAAA,MAGUH,KAAAA,CAAS,CAAA,GAAAV,EAAA,MAAAlC,GAAAgD,EAAA,MAG3B,EAAI,CAAA,GAAAd,EAAA,MAAAjC,GAAAgD,EAAA,MAGV,MAAM,CAAA,GAAAf,EAAA,MAAAhC,GAAAgD,GAAA,MAGJ,EAAE,CAAA,GAAAhB,EAAA,MAAA/B,GAAAgD,GAAA,MAGJ,EAAE,CAAA,GAAAjB,EAAA,MAAA9B,GAAAgD,GAAA,MAGG,EAAK,CAAA,GAAAlB,EAAA,MAAA7B,GAAAgD,GAAA,MAGF,IAAI,CAAA,GAAAC,EAAA,MAAA,UAEG,IAAI;CAAA;CAAA,KAAAhD,MAAA;EAAA,OAAAiD,EAAAnE,GAAA,IAAA;CAAA;CAAA,IAlDhCoE,KAAIC,GAAA;EAAAC,EAAAtE,GAAA,MAAAqE,CAAA;CAAA;CAAA,IAGJE,UAAO;EAAA,OAAAJ,EAAAjE,GAAA,IAAA;CAAA;CAAA,IAAPqE,QAAOF,GAAA;EAAAC,EAAApE,GAAA,MAAAmE,CAAA;CAAA;CAAA,IAGPG,eAAY;EAAA,OAAAL,EAAAhE,GAAA,IAAA;CAAA;CAAA,IAAZqE,aAAYH,GAAA;EAAAC,EAAAnE,GAAA,MAAAkE,CAAA;CAAA;CAAA,IAGZI,eAAY;EAAA,OAAAN,EAAA/D,GAAA,IAAA;CAAA;CAAA,IAAZqE,aAAYJ,GAAA;EAAAC,EAAAlE,GAAA,MAAAiE,CAAA;CAAA;CAAA,IAGZK,cAAW;EAAA,OAAAP,EAAA9D,GAAA,IAAA;CAAA;CAAA,IAAXqE,YAAWL,GAAA;EAAAC,EAAAjE,GAAA,MAAAgE,CAAA;CAAA;CAAA,IAGXM,cAAW;EAAA,OAAAR,EAAA7D,GAAA,IAAA;CAAA;CAAA,IAAXqE,YAAWN,GAAA;EAAAC,EAAAhE,GAAA,MAAA+D,CAAA;CAAA;CAAA,IAGXO,iBAAc;EAAA,OAAAT,EAAA5D,GAAA,IAAA;CAAA;CAAA,IAAdqE,eAAcP,GAAA;EAAAC,EAAA/D,GAAA,MAAA8D,CAAA;CAAA;CAAA,IAGdQ,mBAAgB;EAAA,OAAAV,EAAA3D,GAAA,IAAA;CAAA;CAAA,IAAhBqE,iBAAgBR,GAAA;EAAAC,EAAA9D,GAAA,MAAA6D,CAAA;CAAA;CAAA,IAGhBS,cAAW;EAAA,OAAAX,EAAA1D,GAAA,IAAA;CAAA;CAAA,IAAXqE,YAAWT,GAAA;EAAAC,EAAA7D,GAAA,MAAA4D,CAAA;CAAA;CAAA,IAGXU,gBAAa;EAAA,OAAAZ,EAAAzD,GAAA,IAAA;CAAA;CAAA,IAAbqE,cAAaV,GAAA;EAAAC,EAAA5D,GAAA,MAAA2D,CAAA;CAAA;CAAA,IAGbW,iBAAc;EAAA,OAAAb,EAAAxD,GAAA,IAAA;CAAA;CAAA,IAAdqE,eAAcX,GAAA;EAAAC,EAAA3D,GAAA,MAAA0D,CAAA;CAAA;CAAA,IAGdY,mBAAgB;EAAA,OAAAd,EAAAvD,GAAA,IAAA;CAAA;CAAA,IAAhBqE,iBAAgBZ,GAAA;EAAAC,EAAA1D,GAAA,MAAAyD,CAAA;CAAA;CAAA,IAGhBa,aAAU;EAAA,OAAAf,EAAAtD,GAAA,IAAA;CAAA;CAAA,IAAVqE,WAAUb,GAAA;EAAAC,EAAAzD,GAAA,MAAAwD,CAAA;CAAA;CAAA,IAGVc,eAAY;EAAA,OAAAhB,EAAArD,GAAA,IAAA;CAAA;CAAA,IAAZqE,aAAYd,GAAA;EAAAC,EAAAxD,GAAA,MAAAuD,CAAA;CAAA;CAAA,IAGZe,aAAU;EAAA,OAAAjB,EAAApD,GAAA,IAAA;CAAA;CAAA,IAAVqE,WAAUf,GAAA;EAAAC,EAAAvD,GAAA,MAAAsD,CAAA;CAAA;CAAA,IAGVgB,kBAAe;EAAA,OAAAlB,EAAAnD,GAAA,IAAA;CAAA;CAAA,IAAfqE,gBAAehB,GAAA;EAAAC,EAAAtD,GAAA,MAAAqD,CAAA;CAAA;CAAA,IAGfiB,QAAK;EAAA,OAAAnB,EAAAlD,GAAA,IAAA;CAAA;CAAA,IAALqE,MAAKjB,GAAA;EAAAC,EAAArD,GAAA,MAAAoD,CAAA;CAAA;CAIdkB,uBAAwB;EAGtB,AAFA,KAAKC,WAAW,GAChB,KAAKC,iBAAiB,GACtB,MAAMF,qBAAqB;CAC7B;CAEUG,WAAYC,GAA+B;EAGnD,IAFA,MAAMD,WAAWC,CAAO,GAEpBA,EAAQC,IAAI,OAAO,GAAG;GACxB,IAAMC,IAAkB,KAAKP,iBAAiBQ,OAAO,KAAKR,QAAQ;GAElE,IAAIO,MAAoB,KAAKP,OAAO;IAClC,KAAKA,QAAQO;IAEb;GACF;GAEA,KAAKE,qBAAqBF,CAAe;EAC3C;CACF;CAEUG,QAASL,GAA+B;EAUhD,IARE,CAAC,KAAKL,SACN,CAAC,KAAKW,UACN,CAAC,KAAKZ,oBACLM,EAAQC,IAAI,YAAY,KAAKD,EAAQC,IAAI,OAAO,MAEjD,KAAKM,kBAAkB,GAGrB,KAAKD,QAAQ;GACf,IAAME,IAAQ,KAAKC,YAAYC,cAAgC,OAAO;GAEtE,AAAIF,KAASA,EAAMG,cAAc,KAAKL,WACpCE,EAAMG,YAAY,KAAKL;EAE3B;CACF;CAEUM,SAAU;EAClB,OAAO/G,CAAI;iCACkB,KAAK+E,QAAO;;kBAE3B,KAAKiC,eAAe,EAAC;kBACrB,KAAKC,aAAa,EAAC;;;kBAGnB,KAAKxB,mBACDzF,CAAI,qDAAqD,KAAKkH,MAAM,EAAC,GAAI,KAAK/B,YAAW,sBACzFlF,EAAO;;kBAGX,KAAK6F,QACH9F,CAAI;8CACsB,KAAKmH,SAAQ,GAAI,KAAKjC,YAAW;8CACjC,KAAKkC,UAAS,GAAI,KAAKnC,aAAY;sBAE7DjF,CAAI;;oCAEY,KAAK6F,mBAAmB,CAAC,KAAKY,OAAM;iCACvC,KAAKY,UAAS;;0BAErB,KAAKrC,aAAY;;oBAExB;;;;CAKjB;CAEQgC,iBAAkB;EACxB,IAAMM,IAAW,KAAK1B,aAClB5F,CAAI,aAAa,KAAK4F,WAAU,qCAChC5F,CAAI;EAER,OAAOA,CAAI,yBAAyBsH,EAAQ;CAC9C;CAEQL,eAAgB;EAatB,OAZI,KAAKtB,eACA3F,CAAI,6BAA6B,KAAK2F,aAAY,UAGvD,KAAKE,kBACA7F,CAAI,8CAGR,KAAK8F,QAIH9F,CAAI,qEAHFA,CAAI;CAIf;CAEQmH,WAAY;EAElB,AADA,KAAKI,WAAW,GAChB,KAAKb,kBAAkB;CACzB;CAEQU,YAAa;EACd,KAAKtB,SAIV,KAAKoB,MAAM,KAAKpB,KAAK;CACvB;CAEA,MAAcuB,YAAa;EACzB,IAAMV,IAAQ,KAAKC,YAAYC,cAAgC,OAAO;EAEtE,IAAI,CAACF,GACH;EAGF,IAAMa,IAAQb,EAAMc,cAAcd,EAAMe,eAAe,KACjDC,IAAShB,EAAMiB,eAAejB,EAAMkB,gBAAgB,KACpDC,IAASC,SAASC,cAAc,QAAQ;EAE9CF,AADAA,EAAON,QAAQA,GACfM,EAAOH,SAASA;EAEhB,IAAMM,IAAUH,EAAOI,WAAW,IAAI;EAEtC,IAAI,CAACD,GAAS;GACZ,KAAKtC,eAAe;GAEpB;EACF;EAEAsC,EAAQE,UAAUxB,GAAO,GAAG,GAAGa,GAAOG,CAAM;EAE5C,IAAMS,IAAO,MAAM,IAAIC,SAAqBC,MAAW;GACrDR,EAAOS,OAAOD,GAAS,KAAK/C,eAAe,KAAKC,cAAc;EAChE,CAAC;EAED,IAAI,CAAC4C,GAAM;GACT,KAAKzC,eAAe;GAEpB;EACF;EAGA,AADA,KAAKG,QAAQ,KAAK0C,mBAAmBJ,CAAI,GACzC,KAAKzC,eAAe;CACtB;CAEQ6C,mBAAoBJ,GAAkB;EAC5C,IAAMK,IAAcL,EAAKxG,QAAQ,KAAK2D,eAChCmD,IAAY,KAAKC,yBAAyBF,CAAW,GACrDG,KAAc,KAAKxD,kBAAkB,KAAKR,QAAQ,QAAA,CAASiE,KAAK,KAAK;EAE3E,OAAO,IAAIvC,KAAK,CAAC8B,CAAI,GAAG,GAAGQ,EAAU,GAAIE,KAAKC,IAAI,EAAC,GAAIL,KAAa,EAAE9G,MAAM6G,EAAY,CAAC;CAC3F;CAEQE,yBAA0BK,GAA0B;EAC1D,QAAQA,GAAR;GACE,KAAK,cACH,OAAO;GACT,KAAK,cACH,OAAO;GACT,KAAK,aACH,OAAO;GACT,SACE,OAAO;EACX;CACF;CAEQtC,oBAAqB;EAC3B,KAAKuC,aAAa,CAAC,CAACC,YAAYlF,KAAAA,CAAS;CAC3C;CAEQgC,aAAc;EACpB,IAAI,CAAC,KAAKS,QACR;EAIF,AADA,KAAKA,OAAO0C,UAAU,CAAC,CAACC,SAAQC,MAASA,EAAMC,KAAK,CAAC,GACrD,KAAK7C,SAAS;EAEd,IAAME,IAAQ,KAAKC,YAAYC,cAAgC,OAAO;EAEtE,AAAIF,MACFA,EAAMG,YAAY;CAEtB;CAEQP,qBAAsBgD,GAAmB;EAC/C,KAAKtD,iBAAiB,GAEjBsD,MAIL,KAAKvD,WAAW,GAChB,KAAKJ,aAAa4D,IAAIC,gBAAgBF,CAAI;CAC5C;CAEQhC,aAAc;EAEpB,AADA,KAAKzB,QAAQ,MACb,KAAKH,eAAe;CACtB;CAEQM,mBAAoB;EAK1B,AAJI,KAAKL,cACP4D,IAAIE,gBAAgB,KAAK9D,UAAU,GAGrC,KAAKA,aAAa;CACpB;CAEA,MAAcqD,eAAgB;EACxB,WAAKnD,SAAS,KAAKD,kBAIvB;OAAI,CAAC8D,UAAUC,cAAcC,cAAc;IACzC,KAAKlE,eAAe;IAEpB;GACF;GAGA,AADA,KAAKE,kBAAkB,IACvB,KAAKF,eAAe;GAEpB,IAAI;IACF,IAAMc,IAAS,MAAMkD,UAAUC,aAAaC,aAAa,KAAKC,wBAAwB,CAAC;IAKvF,AAHA,KAAKrD,SAASA,GACd,KAAKsD,cAAc,GAEnB,MAAM,KAAKC;IAEX,IAAMrD,IAAQ,KAAKC,YAAYC,cAAgC,OAAO;IAEtE,AAAIF,MACFA,EAAMG,YAAYL,GAElB,MAAME,EAAMsD,OAAO,CAAC,CAACf,YAAYlF,KAAAA,CAAS;GAE9C,SAASkG,GAAO;IACd,KAAKvE,eAAgBuE,GAAiBC,WAAW;GACnD,UAAU;IACR,KAAKtE,kBAAkB;GACzB;EAxBA;CAyBF;CAEQiE,0BAAmD;EACzD,IAAI,KAAKzE,kBACP,OAAO,KAAKA;EAGd,IAAI,KAAKC,aACP,IAAI;GACF,OAAO8E,KAAKC,MAAM,KAAK/E,WAAW;EACpC,SAAS4E,GAAO;GACd,MAAUI,MAAM,6BAA8BJ,EAAgBC,SAAS;EACzE;EAGF,OAAO,EACLxD,OAAO,MAAKjB,cACR,EAAEA,YAAY,EAAE6E,OAAO,KAAK7E,WAAW,EAAE,EAE/C;CACF;AACF,GAAC,CAAA8E,GAAA,CAAAhH,GAAAC,IAAAC,IAAAC,GAAAC,IAAAC,GAAAC,GAAAC,GAAAE,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,IAAAC,IAAAC,IAAAC,IAAAlB,IAAAkH,GAAA,CAAAnK,GAAAoK,MAAAC,GAAAzH,GAAA;CAAA;EAAAvB;EAAA;EAAA;CAAA;CAAA;EAAAI;EAAA;EAAA;CAAA;CAAA;EAAAC;EAAA;EAAA;CAAA;CAAA;EAAAC;EAAA;EAAA;CAAA;CAAA;EAAAC;EAAA;EAAA;CAAA;CAAA;EAAAC;EAAA;EAAA;CAAA;CAAA;EAAAE;EAAA;EAAA;CAAA;CAAA;EAAAC;EAAA;EAAA;CAAA;CAAA;EAAAC;EAAA;EAAA;CAAA;CAAA;EAAAC;EAAA;EAAA;CAAA;CAAA;EAAAC;EAAA;EAAA;CAAA;CAAA;EAAAE;EAAA;EAAA;CAAA;CAAA;EAAAE;EAAA;EAAA;CAAA;CAAA;EAAAC;EAAA;EAAA;CAAA;CAAA;EAAAC;EAAA;EAAA;CAAA;CAAA;EAAAC;EAAA;EAAA;CAAA;CAAA;EAAAC;EAAA;EAAA;CAAA;AAAA,GAAA5C,GAAA,GAAA,KAAA,GAlU8CN,CAAe,GAAAmD,IAAA0H,IAAA,cAAAC,GAAA;CAAAzH,cAAA;EAAA,MAAA9C,CAAA,GAAAoE,EAAA,MAAA,UAC5CtE,CAAM,GAAAsK,EAAA;CAAA;AAAA,GAAAhG,EAAAkG,GAAArK,IAAA,KAAA,CAAA,GAAAqK,GAAA"}
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "../chunks/photo-capture-modal-BLZtHDj1.js";
1
+ import { n as e, t } from "../chunks/photo-capture-modal-DARmhHUH.js";
2
2
  export { e as PhotoCaptureModal, t as default };
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "../chunks/photo-capture-BoZF621r.js";
1
+ import { n as e, t } from "../chunks/photo-capture-CVKE0SKx.js";
2
2
  export { e as PhotoCapture, t as default };
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.cjs.js","names":["customElement","WebComponent","provide","html","property","authContext","SolidAuth","DEFAULT_SIGNUP_URL","_classDecs","_Provider","_A","WeakMap","_B","_ref","_signupUrlDecs","type","String","reflect","_authDecs","context","Provider","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_signupUrl","_init_auth","_classPrivateFieldGet","signupUrl","v","_classPrivateFieldSet","auth","connectedCallback","initialize","willUpdate","changedProperties","has","render","_Provider2","e","c","_initClass","_applyDecs","default"],"sources":["../../../src/components/provider/Provider.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { provide } from '@lit/context'\nimport { html, type PropertyValues } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { authContext } from '@/lib/auth'\nimport { SolidAuth, DEFAULT_SIGNUP_URL } from '@/lib/auth'\n\nimport '@/components/dialogs-root'\n\n@customElement('solid-ui-provider')\nexport default class Provider extends WebComponent {\n @property({ type: String, reflect: true })\n accessor signupUrl: string | undefined\n\n @provide({ context: authContext })\n private accessor auth = new SolidAuth()\n\n async connectedCallback () {\n super.connectedCallback()\n\n await this.auth.initialize()\n }\n\n protected willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n\n if (changedProperties.has('signupUrl')) {\n this.auth.signupUrl = this.signupUrl ?? DEFAULT_SIGNUP_URL\n }\n }\n\n protected render () {\n return html`\n <slot></slot>\n <solid-ui-dialogs-root></solid-ui-dialogs-root>\n `\n }\n}\n"],"mappings":"41IAOkCQ,EAAA,CAEjCR,EAAAA,cAAc,mBAAmB,CAAC,EAAA,IAAAS,EAAAC,EAAA,IAAAC,QAAAC,EAAA,IAAAD,QAAAE,GAAAC,GAAAA,EAAAA,EAAAA,SAAAA,CAEvB,CAAEC,KAAMC,OAAQC,QAAS,EAAK,CAAC,EAACC,GAAAA,EAAAA,EAAAA,QAAAA,CAGjC,CAAEC,QAASd,EAAAA,WAAY,CAAC,EAAC,aAuBnCiC,EAAAlB,cA3BqCnB,EAAAA,OAAa,CAAAoB,YAAA,GAAAC,EAAA,CAAA,MAAA,GAAAA,CAAA,EAAAC,EAAA,KAAAb,GAAAc,EAAA,IAAA,EAAAC,EAAA,IAAA,EAAA,EAAAF,EAAA,KAAAX,EAAAc,EAAA,KAKzB,IAAIpB,EAAAA,OAAW,CAAA,CAAA,CAAA,IAAAO,IAAA,CAAA,OAAAc,EAAAjB,EAAA,IAAA,CAAA,CAAA,IAH9BkB,UAASC,EAAA,CAAAC,EAAApB,EAAA,KAAAmB,CAAA,CAAA,CAAA,IAGDE,MAAI,CAAA,OAAAJ,EAAAf,EAAA,IAAA,CAAA,CAAA,IAAJmB,KAAIF,EAAA,CAAAC,EAAAlB,EAAA,KAAAiB,CAAA,CAAA,CAErB,MAAMG,mBAAqB,CACzB,MAAMA,kBAAkB,EAExB,MAAM,KAAKD,KAAKE,WAAW,CAC7B,CAEUC,WAAYC,EAAyC,CAC7D,MAAMD,WAAWC,CAAiB,EAE9BA,EAAkBC,IAAI,WAAW,IACnC,KAAKL,KAAKH,UAAY,KAAKA,WAAAA,qCAE/B,CAEUS,QAAU,CAClB,MAAOlC,GAAAA,IAAI;;;KAIb,CACF,EAAC,CAAAoC,EAAA,CAAAd,EAAAC,EAAAF,GAAAgB,EAAA,CAAA/B,EAAAgC,IAAAC,EAAAJ,EAAA,CAAA,CAAAxB,EAAA,EAAA,WAAA,EAAA,CAAAI,EAAA,EAAA,MAAA,CAAA,EAAAV,EAAA,EAAA,IAAA,GA3BqCP,EAAAA,OAAY,EAAAwC,EAAA"}
1
+ {"version":3,"file":"Provider.cjs.js","names":["customElement","WebComponent","provide","html","property","authContext","SolidAuth","DEFAULT_SIGNUP_URL","_classDecs","_Provider","_A","WeakMap","_B","_ref","_signupUrlDecs","type","String","reflect","_authDecs","context","Provider","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_signupUrl","_init_auth","_classPrivateFieldGet","signupUrl","v","_classPrivateFieldSet","auth","connectedCallback","initialize","willUpdate","changedProperties","has","render","_Provider2","e","c","_initClass","_applyDecs","default"],"sources":["../../../src/components/provider/Provider.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { provide } from '@lit/context'\nimport { html, type PropertyValues } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { authContext } from '@/lib/auth'\nimport { SolidAuth, DEFAULT_SIGNUP_URL } from '@/lib/auth'\n\nimport '@/components/dialogs-root'\n\n@customElement('solid-ui-provider')\nexport default class Provider extends WebComponent {\n @property({ type: String, reflect: true })\n accessor signupUrl: string | undefined\n\n @provide({ context: authContext })\n private accessor auth = new SolidAuth()\n\n async connectedCallback () {\n super.connectedCallback()\n\n await this.auth.initialize()\n }\n\n protected willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n\n if (changedProperties.has('signupUrl')) {\n this.auth.signupUrl = this.signupUrl ?? DEFAULT_SIGNUP_URL\n }\n }\n\n protected render () {\n return html`\n <slot></slot>\n <solid-ui-dialogs-root></solid-ui-dialogs-root>\n `\n }\n}\n"],"mappings":"41IAOkCQ,EAAA,CAEjCR,EAAAA,cAAc,mBAAmB,CAAC,EAAA,IAAAS,EAAAC,EAAA,IAAAC,QAAAC,EAAA,IAAAD,QAAAE,GAAAC,GAAAA,EAEhCV,EAAAA,SAAAA,CAAS,CAAEW,KAAMC,OAAQC,QAAS,EAAK,CAAC,EAACC,GAAAA,EAGzChB,EAAAA,QAAAA,CAAQ,CAAEiB,QAASd,EAAAA,WAAY,CAAC,EAAC,aAuBnCiC,EAAAlB,cA3BqCnB,EAAAA,OAAa,CAAAoB,YAAA,GAAAC,EAAA,CAAA,MAAA,GAAAA,CAAA,EAAAC,EAAA,KAAAb,GAAAc,EAAA,IAAA,EAAAC,EAAA,IAAA,EAAA,EAAAF,EAAA,KAAAX,EAAAc,EAAA,KAKzB,IAAIpB,EAAAA,OAAW,CAAA,CAAA,CAAA,IAAAO,IAAA,CAAA,OAAAc,EAAAjB,EAAA,IAAA,CAAA,CAAA,IAH9BkB,UAASC,EAAA,CAAAC,EAAApB,EAAA,KAAAmB,CAAA,CAAA,CAAA,IAGDE,MAAI,CAAA,OAAAJ,EAAAf,EAAA,IAAA,CAAA,CAAA,IAAJmB,KAAIF,EAAA,CAAAC,EAAAlB,EAAA,KAAAiB,CAAA,CAAA,CAErB,MAAMG,mBAAqB,CACzB,MAAMA,kBAAkB,EAExB,MAAM,KAAKD,KAAKE,WAAW,CAC7B,CAEUC,WAAYC,EAAyC,CAC7D,MAAMD,WAAWC,CAAiB,EAE9BA,EAAkBC,IAAI,WAAW,IACnC,KAAKL,KAAKH,UAAY,KAAKA,WAAAA,qCAE/B,CAEUS,QAAU,CAClB,MAAOlC,GAAAA,IAAI;;;KAIb,CACF,EAAC,CAAAoC,EAAA,CAAAd,EAAAC,EAAAF,GAAAgB,EAAA,CAAA/B,EAAAgC,IAAAC,EAAAJ,EAAA,CAAA,CAAAxB,EAAA,EAAA,WAAA,EAAA,CAAAI,EAAA,EAAA,MAAA,CAAA,EAAAV,EAAA,EAAA,IAAA,GA3BqCP,EAAAA,OAAY,EAAAwC,EAAA"}
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "../chunks/provider-Btl6Lnki.js";
1
+ import { n as e, t } from "../chunks/provider-CBSBzOfP.js";
2
2
  export { e as Provider, t as default };
@@ -0,0 +1,12 @@
1
+ const e=require("../../lib/ns.cjs.js"),t=require("../../lib/components/decorators.cjs.js"),n=require("../../lib/components/web-component/WebComponent.cjs.js");require("../../lib/components/index.cjs.js");const r=require("../../lib/forms/rdfFormsHelper.cjs.js"),i=require("../../lib/forms/store/StoreContext.cjs.js");require("../rdf-input/index.cjs.js");let a=require("rdflib"),o=require("@lit/context"),s=require("lit/decorators.js"),c=require("lit/html.js");var l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D;function O(e,t,n){k(e,t),t.set(e,n)}function k(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}function A(e,t,n){return e.set(M(e,t),n),n}function j(e,t){return e.get(M(e,t))}function M(e,t,n){if(typeof e==`function`?e===t:e.has(t))return arguments.length<3?t:n;throw TypeError(`Private element is not present on this object`)}function N(e,t,n,r,i,a){function o(e,t,n){return function(r,i){return n&&n(r),e[t].call(r,i)}}function s(e,t){for(var n=0;n<e.length;n++)e[n].call(t);return t}function c(e,t,n,r){if(typeof e!=`function`&&(r||e!==void 0))throw TypeError(t+` must `+(n||`be`)+` a function`+(r?``:` or undefined`));return e}function l(e,t,n,r,i,a,s,l,u,d,f,p,m){function h(e){if(!m(e))throw TypeError(`Attempted to access private element on non-instance`)}var g,_=t[0],v=t[3],y=!l;if(!y){n||Array.isArray(_)||(_=[_]);var b={},x=[],S=i===3?`get`:i===4||p?`set`:`value`;d?(f||p?b={get:I(function(){return v(this)},r,`get`),set:function(e){t[4](this,e)}}:b[S]=v,f||I(b[S],r,i===2?``:S)):f||(b=Object.getOwnPropertyDescriptor(e,r))}for(var C=e,w=_.length-1;w>=0;w-=n?2:1){var T=_[w],E=n?_[w-1]:void 0,D={},O={kind:[`field`,`accessor`,`method`,`getter`,`setter`,`class`][i],name:r,metadata:a,addInitializer:function(e,t){if(e.v)throw Error(`attempted to call addInitializer after decoration was finished`);c(t,`An initializer`,`be`,!0),s.push(t)}.bind(null,D)};try{if(y)(g=c(T.call(E,C,O),`class decorators`,`return`))&&(C=g);else{var k,A;O.static=u,O.private=d,d?i===2?k=function(e){return h(e),b.value}:(i<4&&(k=o(b,`get`,h)),i!==3&&(A=o(b,`set`,h))):(k=function(e){return e[r]},(i<2||i===4)&&(A=function(e,t){e[r]=t}));var j=O.access={has:d?m.bind():function(e){return r in e}};if(k&&(j.get=k),A&&(j.set=A),C=T.call(E,p?{get:b.get,set:b.set}:b[S],O),p){if(typeof C==`object`&&C)(g=c(C.get,`accessor.get`))&&(b.get=g),(g=c(C.set,`accessor.set`))&&(b.set=g),(g=c(C.init,`accessor.init`))&&x.push(g);else if(C!==void 0)throw TypeError(`accessor decorators must return an object with get, set, or init properties or void 0`)}else c(C,(f?`field`:`method`)+` decorators`,`return`)&&(f?x.push(C):b[S]=C)}}finally{D.v=!0}}return(f||p)&&l.push(function(e,t){for(var n=x.length-1;n>=0;n--)t=x[n].call(e,t);return t}),f||y||(d?p?l.push(o(b,`get`),o(b,`set`)):l.push(i===2?b[S]:o.call.bind(b[S])):Object.defineProperty(e,r,b)),C}function u(e,t){return Object.defineProperty(e,Symbol.metadata||Symbol.for(`Symbol.metadata`),{configurable:!0,enumerable:!0,value:t})}if(arguments.length>=6)var d=a[Symbol.metadata||Symbol.for(`Symbol.metadata`)];var f=Object.create(d??null),p=function(e,t,n,r){var i,a,o=[],c=function(t){return L(t)===e},u=new Map;function d(e){e&&o.push(s.bind(null,e))}for(var f=0;f<t.length;f++){var p=t[f];if(Array.isArray(p)){var m=p[1],h=p[2],g=p.length>3,_=16&m,v=!!(8&m),y=(m&=7)==0,b=h+`/`+v;if(!y&&!g){var x=u.get(b);if(!0===x||x===3&&m!==4||x===4&&m!==3)throw Error(`Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: `+h);u.set(b,!(m>2)||m)}l(v?e:e.prototype,p,_,g?`#`+h:P(h),m,r,v?a||=[]:i||=[],o,v,g,y,m===1,v&&g?c:n)}}return d(i),d(a),o}(e,t,i,f);return n.length||u(e,f),{e:p,get c(){var t=[];return n.length&&[u(l(e,[n],r,e.name,5,f,t),f),s.bind(null,t,e)]}}}function P(e){var t=F(e,`string`);return typeof t==`symbol`?t:t+``}function F(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function I(e,t,n){typeof t==`symbol`&&(t=(t=t.description)?`[`+t+`]`:``);try{Object.defineProperty(e,"name",{configurable:!0,value:n?n+` `+t:t})}catch{}return e}function L(e){if(Object(e)!==e)throw TypeError(`right-hand side of 'in' should be an object, got `+(e===null?`null`:typeof e));return e}var R={fromAttribute(e){if(!e)return null;try{return new URL(e)}catch{return null}},toAttribute(e){return e||null}},z=e=>e?.href??``;f=[t.customElement(`solid-ui-rdf-form`)];var B,V=new WeakMap,H=new WeakMap,U=new WeakMap,W=new WeakMap,G=new WeakMap,K=new WeakMap,q=new WeakMap;D=(p=(0,o.consume)({context:i.storeContext,subscribe:!0}),h=(0,s.property)({attribute:!1}),_=(0,s.state)(),y=(0,s.state)(),x=(0,s.state)(),C=(0,s.property)({converter:R}),T=(0,s.property)({converter:R}),`storeContext`),l=class extends n.default{constructor(...e){super(...e),O(this,V,(u(this),m(this,i.DEFAULT_STORE))),O(this,H,g(this,null)),O(this,U,v(this,!0)),O(this,W,b(this,0)),O(this,G,S(this,!1)),O(this,K,w(this,null)),O(this,q,E(this,null))}get[D](){return j(V,this)}set storeContext(e){A(V,this,e)}get passedInStore(){return j(H,this)}set passedInStore(e){A(H,this,e)}get currentStore(){return this.passedInStore??this.storeContext.store}get entireDataIsReadonly(){return j(U,this)}set entireDataIsReadonly(e){A(U,this,e)}get _loadVersion(){return j(W,this)}set _loadVersion(e){A(W,this,e)}get _documentsLoaded(){return j(G,this)}set _documentsLoaded(e){A(G,this,e)}get formUrl(){return j(K,this)}set formUrl(e){A(K,this,e)}get subjectUrl(){return j(q,this)}set subjectUrl(e){A(q,this,e)}render(){if(!this._documentsLoaded)return c.html``;let t=this.currentStore,n=z(this.subjectUrl);n&&t.updater?.editable(n)!==void 0&&t.updater?.editable(n)!==!1&&(this.entireDataIsReadonly=!1);let i=r.findForm(this.currentStore,z(this.formUrl));if(!i)throw Error(`No ui:Form found in `+z(this.formUrl));let o=(0,a.sym)(z(this.formUrl)),s=t.each(i,e.default.ui(`parts`),null,o),l=(r.sortBySequence(t,s)||[]).flatMap(e=>e&&typeof e==`object`&&`elements`in e&&Array.isArray(e.elements)?e.elements:[e]).map(n=>{let r=t.each(n,e.default.rdf(`type`),null,o)[0],i=r?r.value||String(r):n.value||String(n),a=i.lastIndexOf(`#`);return{value:n,fieldValue:a>=0?i.slice(a+1):i}});return c.html`
2
+ <form>
3
+ ${l.map(e=>{switch(e.fieldValue){case`PhoneField`:case`EmailField`:case`ColorField`:case`DateField`:case`DateTimeField`:case`TimeField`:case`NumericField`:case`IntegerField`:case`DecimalField`:case`FloatField`:case`TextField`:case`SingleLineTextField`:case`NamedNodeURIField`:return c.html` <solid-ui-rdf-input
4
+ .formSubject=${(0,a.sym)(e.value)}
5
+ .dataSubject=${(0,a.sym)(n)}
6
+ .storeVersion=${this._loadVersion}
7
+ .readonly=${this.entireDataIsReadonly}
8
+ ></solid-ui-rdf-input>
9
+ <br>`;case`MultiLineTextField`:return c.html`<input .rdf=${e}></input>`;case`BooleanField`:return c.html`<input .rdf=${e}></input>`;case`TristateField`:return c.html`<input .rdf=${e}></input>`;case`Classifier`:return c.html`<input .rdf=${e}></input>`;case`Choice`:return c.html`<input .rdf=${e}></input>`;case`Multiple`:return c.html`<input .rdf=${e}></input>`;case`Options`:return c.html`<input .rdf=${e}></input>`;case`AutocompleteField`:return c.html`<input .rdf=${e}></input>`;case`Comment`:case`Heading`:return c.html`<input .rdf=${e}></input>`;default:return c.html`<div>Unknown part type: ${e}</div>`}})}
10
+ </form>
11
+ `}willUpdate(e){super.willUpdate(e),(e.has(`formUrl`)||e.has(`subjectUrl`)||e.has(`passedInStore`))&&this.loadDocumentsIfNeeded()}async loadDocumentsIfNeeded(){let e=this.currentStore,t=z(this.formUrl),n=z(this.subjectUrl);if(!(!t||!n))try{await r.fetchData(e,t),await r.fetchData(e,n),this._loadVersion+=1,this._documentsLoaded=!0}catch(e){console.error(`Failed to load RDF documents`,e)}}},{e:[m,g,v,b,S,w,E,u],c:[B,d]}=N(l,[[p,1,`storeContext`],[h,1,`passedInStore`],[_,1,`entireDataIsReadonly`],[y,1,`_loadVersion`],[x,1,`_documentsLoaded`],[C,1,`formUrl`],[T,1,`subjectUrl`]],f,0,void 0,n.default),d(),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return B}});
12
+ //# sourceMappingURL=RDFForm.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RDFForm.cjs.js","names":["property","state","html","consume","customElement","WebComponent","ns","fetchData","findForm","sortBySequence","sym","DEFAULT_STORE","storeContext","urlConverter","fromAttribute","value","URL","toAttribute","hrefFromUrlValue","href","_classDecs","_RDFForm","_A","WeakMap","_B","_C","_D","_E","_F","_G","_ref","_storeContextDecs","context","subscribe","_passedInStoreDecs","attribute","_entireDataIsReadonlyDecs","_loadVersionDecs","_documentsLoadedDecs","_formUrlDecs","converter","_subjectUrlDecs","RDFForm","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_storeContext","_init_passedInStore","_init_entireDataIsReadonly","_init__loadVersion","_init__documentsLoaded","_init_formUrl","_init_subjectUrl","_classPrivateFieldGet","v","_classPrivateFieldSet","passedInStore","currentStore","store","entireDataIsReadonly","_loadVersion","_documentsLoaded","formUrl","subjectUrl","render","updater","editable","undefined","formRoot","Error","formDocument","parts","each","ui","partsBySequence","partItems","flatMap","item","Array","isArray","elements","uiFields","map","types","rdf","typeNode","String","hashIndex","lastIndexOf","fieldValue","slice","part","willUpdate","changedProperties","has","loadDocumentsIfNeeded","error","console","_RDFForm2","e","c","_initClass","_applyDecs","default"],"sources":["../../../src/components/rdf-form/RDFForm.ts"],"sourcesContent":["import { property, state } from 'lit/decorators.js'\nimport { html } from 'lit/html.js'\nimport type { PropertyValues } from 'lit'\nimport { consume } from '@lit/context'\nimport { customElement, WebComponent } from '@/lib/components'\nimport ns from '../../lib/ns'\nimport { fetchData, findForm, sortBySequence } from '../../lib/forms/rdfFormsHelper'\nimport { sym, LiveStore } from 'rdflib'\nimport '@/components/rdf-input'\nimport { DEFAULT_STORE, storeContext, StoreContext } from '@/lib/forms/store/StoreContext'\n\nconst urlConverter = {\n fromAttribute (value: string | null): URL | null {\n if (!value) return null\n\n try {\n return new URL(value)\n } catch {\n return null\n }\n },\n toAttribute (value: URL | null) {\n if (!value) return null\n return value\n }\n}\n\nconst hrefFromUrlValue = (value: URL | null): string =>\n value?.href ?? ''\n\n@customElement('solid-ui-rdf-form')\nexport default class RDFForm extends WebComponent {\n @consume({ context: storeContext, subscribe: true })\n private accessor storeContext: StoreContext = DEFAULT_STORE\n\n @property({ attribute: false })\n accessor passedInStore: LiveStore | null = null\n\n private get currentStore (): LiveStore {\n return this.passedInStore ?? this.storeContext.store\n }\n\n @state()\n private accessor entireDataIsReadonly: boolean = true // to protect data, we default to not editable\n\n @state()\n private accessor _loadVersion = 0\n\n @state()\n private accessor _documentsLoaded = false\n\n @property({ converter: urlConverter })\n accessor formUrl: URL | null = null\n\n @property({ converter: urlConverter })\n accessor subjectUrl: URL | null = null\n\n render () {\n if (!this._documentsLoaded) {\n return html``\n }\n\n const store = this.currentStore\n\n const subjectUrl = hrefFromUrlValue(this.subjectUrl)\n if (subjectUrl && store.updater?.editable(subjectUrl) !== undefined && store.updater?.editable(subjectUrl) !== false) {\n this.entireDataIsReadonly = false\n }\n\n const formRoot = findForm(this.currentStore, hrefFromUrlValue(this.formUrl)) // If there are more 'a ui:Form' elements in a form file\n if (!formRoot) throw new Error('No ui:Form found in ' + hrefFromUrlValue(this.formUrl))\n\n const formDocument = sym(hrefFromUrlValue(this.formUrl)) // rdflib NamedNode for the document\n const parts = store.each(formRoot, ns.ui('parts'), null, formDocument)\n const partsBySequence = sortBySequence(store, parts)\n const partItems = (partsBySequence || []).flatMap(item => {\n if (item && typeof item === 'object' && 'elements' in item && Array.isArray((item as any).elements)) {\n return (item as any).elements\n }\n return [item]\n })\n const uiFields = partItems.map(item => {\n const types = store.each(item as any, ns.rdf('type'), null, formDocument)\n const typeNode = types[0]\n const value = typeNode ? ((typeNode as any).value || String(typeNode)) : ((item as any).value || String(item))\n const hashIndex = value.lastIndexOf('#')\n return {\n value: item,\n fieldValue: hashIndex >= 0 ? value.slice(hashIndex + 1) : value\n }\n })\n\n return html`\n <form>\n ${uiFields.map(part => {\n switch (part.fieldValue) {\n case 'PhoneField':\n case 'EmailField':\n case 'ColorField':\n case 'DateField':\n case 'DateTimeField':\n case 'TimeField':\n case 'NumericField':\n case 'IntegerField':\n case 'DecimalField':\n case 'FloatField':\n case 'TextField':\n case 'SingleLineTextField':\n case 'NamedNodeURIField': {\n return html` <solid-ui-rdf-input \n .formSubject=${sym(part.value)} \n .dataSubject=${sym(subjectUrl)}\n .storeVersion=${this._loadVersion}\n .readonly=${this.entireDataIsReadonly}\n ></solid-ui-rdf-input>\n <br>`\n }\n case 'MultiLineTextField':\n return html`<input .rdf=${part}></input>`\n case 'BooleanField':\n return html`<input .rdf=${part}></input>`\n case 'TristateField':\n return html`<input .rdf=${part}></input>`\n case 'Classifier':\n return html`<input .rdf=${part}></input>`\n case 'Choice':\n return html`<input .rdf=${part}></input>`\n case 'Multiple':\n return html`<input .rdf=${part}></input>`\n case 'Options':\n return html`<input .rdf=${part}></input>`\n case 'AutocompleteField':\n return html`<input .rdf=${part}></input>`\n case 'Comment':\n case 'Heading':\n return html`<input .rdf=${part}></input>`\n default:\n return html`<div>Unknown part type: ${part}</div>`\n }\n })}\n </form>\n `\n }\n\n protected override willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n if (changedProperties.has('formUrl') ||\n changedProperties.has('subjectUrl') ||\n changedProperties.has('passedInStore')\n ) {\n this.loadDocumentsIfNeeded()\n }\n }\n\n private async loadDocumentsIfNeeded () {\n const store = this.currentStore\n const formUrl = hrefFromUrlValue(this.formUrl)\n const subjectUrl = hrefFromUrlValue(this.subjectUrl)\n\n if (!formUrl || !subjectUrl) return\n\n try {\n await fetchData(store, formUrl)\n await fetchData(store, subjectUrl)\n this._loadVersion += 1\n this._documentsLoaded = true\n } catch (error) {\n console.error('Failed to load RDF documents', error)\n }\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { PropertyValues } from 'lit';
2
+ import { WebComponent } from '../../lib/components';
3
+ import { LiveStore } from 'rdflib';
4
+ export default class RDFForm extends WebComponent {
5
+ private accessor storeContext;
6
+ accessor passedInStore: LiveStore | null;
7
+ private get currentStore();
8
+ private accessor entireDataIsReadonly;
9
+ private accessor _loadVersion;
10
+ private accessor _documentsLoaded;
11
+ accessor formUrl: URL | null;
12
+ accessor subjectUrl: URL | null;
13
+ render(): import('lit-html').TemplateResult<1>;
14
+ protected willUpdate(changedProperties: PropertyValues<this>): void;
15
+ private loadDocumentsIfNeeded;
16
+ }
17
+ //# sourceMappingURL=RDFForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RDFForm.d.ts","sourceRoot":"","sources":["../../../src/components/rdf-form/RDFForm.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAA;AAEzC,OAAO,EAAiB,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAG9D,OAAO,EAAO,SAAS,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,wBAAwB,CAAA;AAuB/B,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,YAAY;IAE7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA8B;IAG3D,QAAQ,CAAC,aAAa,EAAE,SAAS,GAAG,IAAI,CAAO;IAE/C,OAAO,KAAK,YAAY,GAEvB;IAGD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAgB;IAGrD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAI;IAGjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IAGzC,QAAQ,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,CAAO;IAGnC,QAAQ,CAAC,UAAU,EAAE,GAAG,GAAG,IAAI,CAAO;IAEtC,MAAM;cAuFa,UAAU,CAAE,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC;YAUxD,qBAAqB;CAgBtC"}