solid-ui 5.0.0-1 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (454) hide show
  1. package/dist/_virtual/~icons/app/solid-emblem.cjs.js.map +1 -1
  2. package/dist/_virtual/~icons/app/solid-emblem.esm.js.map +1 -1
  3. package/dist/_virtual/~icons/lucide/chevron-down.cjs.js.map +1 -1
  4. package/dist/_virtual/~icons/lucide/chevron-down.esm.js.map +1 -1
  5. package/dist/_virtual/~icons/lucide/circle-user.cjs.js.map +1 -1
  6. package/dist/_virtual/~icons/lucide/circle-user.esm.js.map +1 -1
  7. package/dist/_virtual/~icons/lucide/log-in.cjs.js.map +1 -1
  8. package/dist/_virtual/~icons/lucide/log-in.esm.js.map +1 -1
  9. package/dist/_virtual/~icons/lucide/log-out.cjs.js.map +1 -1
  10. package/dist/_virtual/~icons/lucide/log-out.esm.js.map +1 -1
  11. package/dist/_virtual/~icons/lucide/user.cjs.js.map +1 -1
  12. package/dist/_virtual/~icons/lucide/user.esm.js.map +1 -1
  13. package/dist/_virtual/~icons/lucide/x.cjs.js.map +1 -1
  14. package/dist/_virtual/~icons/lucide/x.esm.js.map +1 -1
  15. package/dist/_virtual/~icons/svg-spinners/180-ring.cjs.js.map +1 -1
  16. package/dist/_virtual/~icons/svg-spinners/180-ring.esm.js.map +1 -1
  17. package/dist/_virtual/~icons/svg-spinners/3-dots-fade.cjs.js.map +1 -1
  18. package/dist/_virtual/~icons/svg-spinners/3-dots-fade.esm.js.map +1 -1
  19. package/dist/acl/access-controller.cjs.js.map +1 -1
  20. package/dist/acl/access-controller.esm.js.map +1 -1
  21. package/dist/acl/access-groups.cjs.js.map +1 -1
  22. package/dist/acl/access-groups.esm.js.map +1 -1
  23. package/dist/acl/acl-control.cjs.js.map +1 -1
  24. package/dist/acl/acl-control.esm.js.map +1 -1
  25. package/dist/acl/acl.cjs.js.map +1 -1
  26. package/dist/acl/acl.esm.js.map +1 -1
  27. package/dist/acl/add-agent-buttons.cjs.js.map +1 -1
  28. package/dist/acl/add-agent-buttons.esm.js.map +1 -1
  29. package/dist/acl/index.cjs.js.map +1 -1
  30. package/dist/acl/index.esm.js.map +1 -1
  31. package/dist/chat/bookmarks.cjs.js.map +1 -1
  32. package/dist/chat/bookmarks.esm.js.map +1 -1
  33. package/dist/chat/chatLogic.cjs.js.map +1 -1
  34. package/dist/chat/chatLogic.esm.js.map +1 -1
  35. package/dist/chat/dateFolder.cjs.js.map +1 -1
  36. package/dist/chat/dateFolder.esm.js.map +1 -1
  37. package/dist/chat/infinite.cjs.js.map +1 -1
  38. package/dist/chat/infinite.esm.js.map +1 -1
  39. package/dist/chat/keys.cjs.js.map +1 -1
  40. package/dist/chat/keys.esm.js.map +1 -1
  41. package/dist/chat/message.cjs.js.map +1 -1
  42. package/dist/chat/message.esm.js.map +1 -1
  43. package/dist/chat/messageTools.cjs.js.map +1 -1
  44. package/dist/chat/messageTools.esm.js.map +1 -1
  45. package/dist/chat/signature.cjs.js.map +1 -1
  46. package/dist/chat/signature.esm.js.map +1 -1
  47. package/dist/chunks/DialogProvider-BFllJFfq.js.map +1 -1
  48. package/dist/chunks/{account-CSKDoS_I.js → account-BawgTPEQ.js} +7 -7
  49. package/dist/chunks/account-BawgTPEQ.js.map +1 -0
  50. package/dist/chunks/{auth-YsyyEh_c.js → auth-DrN7Ex4E.js} +85 -81
  51. package/dist/chunks/auth-DrN7Ex4E.js.map +1 -0
  52. package/dist/chunks/{avatar-BXaBs_3q.js → avatar-CoxEa3ul.js} +2 -2
  53. package/dist/chunks/avatar-CoxEa3ul.js.map +1 -0
  54. package/dist/chunks/button-CnmrOsEf.js.map +1 -1
  55. package/dist/chunks/chevron-down-ujxRg3MD.js.map +1 -1
  56. package/dist/chunks/{chunk.64OG2H45-BFgXEuP7.js → chunk.UEBQI7VV-1WRlPl6u.js} +20 -3
  57. package/dist/chunks/chunk.UEBQI7VV-1WRlPl6u.js.map +1 -0
  58. package/dist/chunks/{combobox-D3eGdicW.js → combobox-B0TqOl9L.js} +3 -3
  59. package/dist/chunks/combobox-B0TqOl9L.js.map +1 -0
  60. package/dist/chunks/combobox-option-BcXpUnWu.js.map +1 -1
  61. package/dist/chunks/components-BHoVP7zE.js.map +1 -1
  62. package/dist/chunks/dialog-D9Ellvjx.js.map +1 -1
  63. package/dist/chunks/dialog-content-B2FmmQvH.js.map +1 -1
  64. package/dist/chunks/dialog-footer-CxjoqQJF.js.map +1 -1
  65. package/dist/chunks/dialog-header-0dobhr5C.js.map +1 -1
  66. package/dist/chunks/dialogs-D2n-R0lI.js.map +1 -1
  67. package/dist/chunks/dialogs-root-ngPW2Q6K.js.map +1 -1
  68. package/dist/chunks/{guard-BTbfcRR6.js → guard-BtHmPAJt.js} +2 -2
  69. package/dist/chunks/guard-BtHmPAJt.js.map +1 -0
  70. package/dist/chunks/{index.esm-C63HBmfn.js → index.esm-AZPmKqjU.js} +1535 -1188
  71. package/dist/chunks/index.esm-AZPmKqjU.js.map +1 -0
  72. package/dist/chunks/input-BIhn_8nf.js.map +1 -1
  73. package/dist/chunks/{jsonld-DrQpMD8o.js → jsonld-CDR2WyN_.js} +4 -4
  74. package/dist/chunks/jsonld-CDR2WyN_.js.map +1 -0
  75. package/dist/chunks/{login-button-DZb_CXCo.js → login-button-DAzbhvKk.js} +2 -2
  76. package/dist/chunks/login-button-DAzbhvKk.js.map +1 -0
  77. package/dist/chunks/{logout-button-CaD4ESfx.js → logout-button-lGJtt7lq.js} +2 -2
  78. package/dist/chunks/logout-button-lGJtt7lq.js.map +1 -0
  79. package/dist/chunks/{menu-BiqIAf-j.js → menu-BLZREG4_.js} +21 -13
  80. package/dist/chunks/menu-BLZREG4_.js.map +1 -0
  81. package/dist/chunks/menu-item-BdCkmJol.js.map +1 -1
  82. package/dist/chunks/photo-capture-Bvixtxsq.js.map +1 -1
  83. package/dist/chunks/photo-capture-modal-BhmL3kYD.js.map +1 -1
  84. package/dist/chunks/{provider-BZsO0FFR.js → provider-D5r57fK1.js} +2 -2
  85. package/dist/chunks/provider-D5r57fK1.js.map +1 -0
  86. package/dist/chunks/query-BYu9q8lA.js.map +1 -1
  87. package/dist/chunks/{rdf-form-C2zcf1F0.js → rdf-form-B2zTR8Qv.js} +21 -21
  88. package/dist/chunks/rdf-form-B2zTR8Qv.js.map +1 -0
  89. package/dist/chunks/{rdf-input-CiQNdkKK.js → rdf-input-DeDhyQ3p.js} +38 -38
  90. package/dist/chunks/rdf-input-DeDhyQ3p.js.map +1 -0
  91. package/dist/chunks/select-BcC-ICqO.js.map +1 -1
  92. package/dist/chunks/select-option-B0uXcj2O.js.map +1 -1
  93. package/dist/chunks/show-dialog-eEW5yRBv.js.map +1 -1
  94. package/dist/chunks/{signup-button-DufShSEV.js → signup-button-DnPnUTTm.js} +2 -2
  95. package/dist/chunks/signup-button-DnPnUTTm.js.map +1 -0
  96. package/dist/chunks/solid-emblem-CcQOqRX0.js.map +1 -1
  97. package/dist/chunks/{src-CbkVtLGQ.js → src-BWY65mD0.js} +5757 -5686
  98. package/dist/chunks/src-BWY65mD0.js.map +1 -0
  99. package/dist/chunks/{style-DI3buiHt.js → style-Dpwrc8CC.js} +4 -4
  100. package/dist/chunks/style-Dpwrc8CC.js.map +1 -0
  101. package/dist/components/account/Account.cjs.js.map +1 -1
  102. package/dist/components/account/Account.esm.js.map +1 -1
  103. package/dist/components/account/Account.styles.cjs.js.map +1 -1
  104. package/dist/components/account/Account.styles.esm.js.map +1 -1
  105. package/dist/components/account/index.cjs.js.map +1 -1
  106. package/dist/components/account/index.esm.js.map +1 -1
  107. package/dist/components/account.js +1 -1
  108. package/dist/components/avatar/Avatar.cjs.js.map +1 -1
  109. package/dist/components/avatar/Avatar.esm.js.map +1 -1
  110. package/dist/components/avatar/Avatar.styles.cjs.js.map +1 -1
  111. package/dist/components/avatar/Avatar.styles.esm.js.map +1 -1
  112. package/dist/components/avatar/index.cjs.js.map +1 -1
  113. package/dist/components/avatar/index.esm.js.map +1 -1
  114. package/dist/components/avatar.js +1 -1
  115. package/dist/components/button/Button.cjs.js.map +1 -1
  116. package/dist/components/button/Button.esm.js.map +1 -1
  117. package/dist/components/button/Button.styles.cjs.js.map +1 -1
  118. package/dist/components/button/Button.styles.esm.js.map +1 -1
  119. package/dist/components/button/index.cjs.js.map +1 -1
  120. package/dist/components/button/index.esm.js.map +1 -1
  121. package/dist/components/combobox/Combobox.cjs.js.map +1 -1
  122. package/dist/components/combobox/Combobox.esm.js.map +1 -1
  123. package/dist/components/combobox/Combobox.styles.cjs.js +1 -1
  124. package/dist/components/combobox/Combobox.styles.cjs.js.map +1 -1
  125. package/dist/components/combobox/Combobox.styles.esm.js +1 -1
  126. package/dist/components/combobox/Combobox.styles.esm.js.map +1 -1
  127. package/dist/components/combobox/index.cjs.js.map +1 -1
  128. package/dist/components/combobox/index.esm.js.map +1 -1
  129. package/dist/components/combobox-option/ComboboxOption.cjs.js.map +1 -1
  130. package/dist/components/combobox-option/ComboboxOption.esm.js.map +1 -1
  131. package/dist/components/combobox-option/index.cjs.js.map +1 -1
  132. package/dist/components/combobox-option/index.esm.js.map +1 -1
  133. package/dist/components/combobox.js +1 -1
  134. package/dist/components/dialog/Dialog.cjs.js.map +1 -1
  135. package/dist/components/dialog/Dialog.esm.js.map +1 -1
  136. package/dist/components/dialog/Dialog.styles.cjs.js.map +1 -1
  137. package/dist/components/dialog/Dialog.styles.esm.js.map +1 -1
  138. package/dist/components/dialog/index.cjs.js.map +1 -1
  139. package/dist/components/dialog/index.esm.js.map +1 -1
  140. package/dist/components/dialog-content/DialogContent.cjs.js.map +1 -1
  141. package/dist/components/dialog-content/DialogContent.esm.js.map +1 -1
  142. package/dist/components/dialog-content/DialogContent.styles.cjs.js.map +1 -1
  143. package/dist/components/dialog-content/DialogContent.styles.esm.js.map +1 -1
  144. package/dist/components/dialog-content/index.cjs.js.map +1 -1
  145. package/dist/components/dialog-content/index.esm.js.map +1 -1
  146. package/dist/components/dialog-footer/DialogFooter.cjs.js.map +1 -1
  147. package/dist/components/dialog-footer/DialogFooter.esm.js.map +1 -1
  148. package/dist/components/dialog-footer/DialogFooter.styles.cjs.js.map +1 -1
  149. package/dist/components/dialog-footer/DialogFooter.styles.esm.js.map +1 -1
  150. package/dist/components/dialog-footer/index.cjs.js.map +1 -1
  151. package/dist/components/dialog-footer/index.esm.js.map +1 -1
  152. package/dist/components/dialog-header/DialogHeader.cjs.js.map +1 -1
  153. package/dist/components/dialog-header/DialogHeader.esm.js.map +1 -1
  154. package/dist/components/dialog-header/DialogHeader.styles.cjs.js.map +1 -1
  155. package/dist/components/dialog-header/DialogHeader.styles.esm.js.map +1 -1
  156. package/dist/components/dialog-header/index.cjs.js.map +1 -1
  157. package/dist/components/dialog-header/index.esm.js.map +1 -1
  158. package/dist/components/dialog-provider/DialogProvider.cjs.js.map +1 -1
  159. package/dist/components/dialog-provider/DialogProvider.esm.js.map +1 -1
  160. package/dist/components/dialog-provider/index.cjs.js.map +1 -1
  161. package/dist/components/dialog-provider/index.esm.js.map +1 -1
  162. package/dist/components/dialog-provider.js.map +1 -1
  163. package/dist/components/dialogs-root/DialogsRoot.cjs.js.map +1 -1
  164. package/dist/components/dialogs-root/DialogsRoot.esm.js.map +1 -1
  165. package/dist/components/dialogs-root/index.cjs.js.map +1 -1
  166. package/dist/components/dialogs-root/index.esm.js.map +1 -1
  167. package/dist/components/guard/Guard.cjs.js.map +1 -1
  168. package/dist/components/guard/Guard.esm.js.map +1 -1
  169. package/dist/components/guard/index.cjs.js.map +1 -1
  170. package/dist/components/guard/index.esm.js.map +1 -1
  171. package/dist/components/guard.js +1 -1
  172. package/dist/components/input/Input.cjs.js.map +1 -1
  173. package/dist/components/input/Input.esm.js.map +1 -1
  174. package/dist/components/input/Input.styles.cjs.js.map +1 -1
  175. package/dist/components/input/Input.styles.esm.js.map +1 -1
  176. package/dist/components/input/index.cjs.js.map +1 -1
  177. package/dist/components/input/index.esm.js.map +1 -1
  178. package/dist/components/login-button/LoginButton.cjs.js.map +1 -1
  179. package/dist/components/login-button/LoginButton.esm.js.map +1 -1
  180. package/dist/components/login-button/index.cjs.js.map +1 -1
  181. package/dist/components/login-button/index.esm.js.map +1 -1
  182. package/dist/components/login-button.js +1 -1
  183. package/dist/components/login-modal/LoginModal.cjs.js +1 -1
  184. package/dist/components/login-modal/LoginModal.cjs.js.map +1 -1
  185. package/dist/components/login-modal/LoginModal.d.ts.map +1 -1
  186. package/dist/components/login-modal/LoginModal.esm.js +1 -1
  187. package/dist/components/login-modal/LoginModal.esm.js.map +1 -1
  188. package/dist/components/login-modal/LoginModal.styles.cjs.js.map +1 -1
  189. package/dist/components/login-modal/LoginModal.styles.esm.js.map +1 -1
  190. package/dist/components/login-modal/index.cjs.js.map +1 -1
  191. package/dist/components/login-modal/index.esm.js.map +1 -1
  192. package/dist/components/login-modal.js +1 -1
  193. package/dist/components/logout-button/LogoutButton.cjs.js.map +1 -1
  194. package/dist/components/logout-button/LogoutButton.esm.js.map +1 -1
  195. package/dist/components/logout-button/index.cjs.js.map +1 -1
  196. package/dist/components/logout-button/index.esm.js.map +1 -1
  197. package/dist/components/logout-button.js +1 -1
  198. package/dist/components/menu/Menu.cjs.js +1 -1
  199. package/dist/components/menu/Menu.cjs.js.map +1 -1
  200. package/dist/components/menu/Menu.esm.js +1 -1
  201. package/dist/components/menu/Menu.esm.js.map +1 -1
  202. package/dist/components/menu/Menu.styles.cjs.js.map +1 -1
  203. package/dist/components/menu/Menu.styles.esm.js.map +1 -1
  204. package/dist/components/menu/index.cjs.js.map +1 -1
  205. package/dist/components/menu/index.esm.js.map +1 -1
  206. package/dist/components/menu-item/MenuItem.cjs.js.map +1 -1
  207. package/dist/components/menu-item/MenuItem.esm.js.map +1 -1
  208. package/dist/components/menu-item/MenuItem.styles.cjs.js.map +1 -1
  209. package/dist/components/menu-item/MenuItem.styles.esm.js.map +1 -1
  210. package/dist/components/menu-item/index.cjs.js.map +1 -1
  211. package/dist/components/menu-item/index.esm.js.map +1 -1
  212. package/dist/components/menu.js +1 -1
  213. package/dist/components/photo-capture/PhotoCapture.cjs.js.map +1 -1
  214. package/dist/components/photo-capture/PhotoCapture.esm.js.map +1 -1
  215. package/dist/components/photo-capture/index.cjs.js.map +1 -1
  216. package/dist/components/photo-capture/index.esm.js.map +1 -1
  217. package/dist/components/photo-capture-modal/PhotoCaptureModal.cjs.js.map +1 -1
  218. package/dist/components/photo-capture-modal/PhotoCaptureModal.esm.js.map +1 -1
  219. package/dist/components/photo-capture-modal/PhotoCaptureModal.styles.cjs.js.map +1 -1
  220. package/dist/components/photo-capture-modal/PhotoCaptureModal.styles.esm.js.map +1 -1
  221. package/dist/components/photo-capture-modal/index.cjs.js.map +1 -1
  222. package/dist/components/photo-capture-modal/index.esm.js.map +1 -1
  223. package/dist/components/provider/Provider.cjs.js.map +1 -1
  224. package/dist/components/provider/Provider.esm.js.map +1 -1
  225. package/dist/components/provider/index.cjs.js.map +1 -1
  226. package/dist/components/provider/index.esm.js.map +1 -1
  227. package/dist/components/provider.js +1 -1
  228. package/dist/components/rdf-form/RDFForm.cjs.js +1 -1
  229. package/dist/components/rdf-form/RDFForm.cjs.js.map +1 -1
  230. package/dist/components/rdf-form/RDFForm.esm.js +1 -1
  231. package/dist/components/rdf-form/RDFForm.esm.js.map +1 -1
  232. package/dist/components/rdf-form/index.cjs.js.map +1 -1
  233. package/dist/components/rdf-form/index.esm.js.map +1 -1
  234. package/dist/components/rdf-form.js +1 -1
  235. package/dist/components/rdf-input/RDFInput.cjs.js.map +1 -1
  236. package/dist/components/rdf-input/RDFInput.esm.js.map +1 -1
  237. package/dist/components/rdf-input/index.cjs.js.map +1 -1
  238. package/dist/components/rdf-input/index.esm.js.map +1 -1
  239. package/dist/components/rdf-input.js +1 -1
  240. package/dist/components/select/Select.cjs.js.map +1 -1
  241. package/dist/components/select/Select.esm.js.map +1 -1
  242. package/dist/components/select/Select.styles.cjs.js.map +1 -1
  243. package/dist/components/select/Select.styles.esm.js.map +1 -1
  244. package/dist/components/select/index.cjs.js.map +1 -1
  245. package/dist/components/select/index.esm.js.map +1 -1
  246. package/dist/components/select-option/SelectOption.cjs.js.map +1 -1
  247. package/dist/components/select-option/SelectOption.esm.js.map +1 -1
  248. package/dist/components/select-option/index.cjs.js.map +1 -1
  249. package/dist/components/select-option/index.esm.js.map +1 -1
  250. package/dist/components/signup-button/SignupButton.cjs.js.map +1 -1
  251. package/dist/components/signup-button/SignupButton.esm.js.map +1 -1
  252. package/dist/components/signup-button/index.cjs.js.map +1 -1
  253. package/dist/components/signup-button/index.esm.js.map +1 -1
  254. package/dist/components/signup-button.js +1 -1
  255. package/dist/components/solid-emblem/SolidEmblem.cjs.js.map +1 -1
  256. package/dist/components/solid-emblem/SolidEmblem.esm.js.map +1 -1
  257. package/dist/components/solid-emblem/SolidEmblem.styles.cjs.js.map +1 -1
  258. package/dist/components/solid-emblem/SolidEmblem.styles.esm.js.map +1 -1
  259. package/dist/components/solid-emblem/index.cjs.js.map +1 -1
  260. package/dist/components/solid-emblem/index.esm.js.map +1 -1
  261. package/dist/components.js +12 -12
  262. package/dist/create/create.cjs.js.map +1 -1
  263. package/dist/create/create.esm.js.map +1 -1
  264. package/dist/create/index.cjs.js.map +1 -1
  265. package/dist/create/index.esm.js.map +1 -1
  266. package/dist/create/types.cjs.js.map +1 -1
  267. package/dist/create/types.esm.js.map +1 -1
  268. package/dist/footer/index.cjs.js.map +1 -1
  269. package/dist/footer/index.esm.js.map +1 -1
  270. package/dist/header/empty-profile.cjs.js.map +1 -1
  271. package/dist/header/empty-profile.esm.js.map +1 -1
  272. package/dist/header/index.cjs.js.map +1 -1
  273. package/dist/header/index.esm.js.map +1 -1
  274. package/dist/index.cjs.js.map +1 -1
  275. package/dist/index.esm.js.map +1 -1
  276. package/dist/index.js +4 -4
  277. package/dist/lib/auth/Account.cjs.js.map +1 -1
  278. package/dist/lib/auth/Account.esm.js.map +1 -1
  279. package/dist/lib/auth/NoopAuth.cjs.js.map +1 -1
  280. package/dist/lib/auth/NoopAuth.esm.js.map +1 -1
  281. package/dist/lib/auth/SolidAuth.cjs.js +1 -1
  282. package/dist/lib/auth/SolidAuth.cjs.js.map +1 -1
  283. package/dist/lib/auth/SolidAuth.d.ts.map +1 -1
  284. package/dist/lib/auth/SolidAuth.esm.js +15 -11
  285. package/dist/lib/auth/SolidAuth.esm.js.map +1 -1
  286. package/dist/lib/auth/context.cjs.js.map +1 -1
  287. package/dist/lib/auth/context.esm.js.map +1 -1
  288. package/dist/lib/code-editor/CodeEditor.cjs.js.map +1 -1
  289. package/dist/lib/code-editor/CodeEditor.esm.js.map +1 -1
  290. package/dist/lib/components/decorators.cjs.js.map +1 -1
  291. package/dist/lib/components/decorators.esm.js.map +1 -1
  292. package/dist/lib/components/dialog-component/DialogComponent.cjs.js.map +1 -1
  293. package/dist/lib/components/dialog-component/DialogComponent.esm.js.map +1 -1
  294. package/dist/lib/components/form-control-component/FormControlComponent.cjs.js.map +1 -1
  295. package/dist/lib/components/form-control-component/FormControlComponent.esm.js.map +1 -1
  296. package/dist/lib/components/ids.cjs.js.map +1 -1
  297. package/dist/lib/components/ids.esm.js.map +1 -1
  298. package/dist/lib/components/traits/DialogTrait.cjs.js.map +1 -1
  299. package/dist/lib/components/traits/DialogTrait.esm.js.map +1 -1
  300. package/dist/lib/components/traits/FormControlTrait.cjs.js.map +1 -1
  301. package/dist/lib/components/traits/FormControlTrait.esm.js.map +1 -1
  302. package/dist/lib/components/web-component/WebComponent.cjs.js.map +1 -1
  303. package/dist/lib/components/web-component/WebComponent.esm.js.map +1 -1
  304. package/dist/lib/components/web-component/WebComponent.styles.cjs.js.map +1 -1
  305. package/dist/lib/components/web-component/WebComponent.styles.esm.js.map +1 -1
  306. package/dist/lib/debug.cjs.js.map +1 -1
  307. package/dist/lib/debug.esm.js.map +1 -1
  308. package/dist/lib/dialogs/Dialog.cjs.js.map +1 -1
  309. package/dist/lib/dialogs/Dialog.esm.js.map +1 -1
  310. package/dist/lib/dialogs/context.cjs.js.map +1 -1
  311. package/dist/lib/dialogs/context.esm.js.map +1 -1
  312. package/dist/lib/dialogs/events/close-dialog.cjs.js.map +1 -1
  313. package/dist/lib/dialogs/events/close-dialog.esm.js.map +1 -1
  314. package/dist/lib/dialogs/events/show-dialog.cjs.js.map +1 -1
  315. package/dist/lib/dialogs/events/show-dialog.esm.js.map +1 -1
  316. package/dist/lib/dialogs/helpers.cjs.js.map +1 -1
  317. package/dist/lib/dialogs/helpers.esm.js.map +1 -1
  318. package/dist/lib/file-explorer/context.cjs.js.map +1 -1
  319. package/dist/lib/file-explorer/context.esm.js.map +1 -1
  320. package/dist/lib/forms/fieldParams.cjs.js.map +1 -1
  321. package/dist/lib/forms/fieldParams.esm.js.map +1 -1
  322. package/dist/lib/forms/rdfFormsHelper.cjs.js.map +1 -1
  323. package/dist/lib/forms/rdfFormsHelper.esm.js.map +1 -1
  324. package/dist/lib/forms/store/NoopStore.cjs.js.map +1 -1
  325. package/dist/lib/forms/store/NoopStore.esm.js.map +1 -1
  326. package/dist/lib/forms/store/StoreContext.cjs.js.map +1 -1
  327. package/dist/lib/forms/store/StoreContext.esm.js.map +1 -1
  328. package/dist/lib/iconBase.cjs.js.map +1 -1
  329. package/dist/lib/iconBase.esm.js.map +1 -1
  330. package/dist/lib/log.cjs.js.map +1 -1
  331. package/dist/lib/log.esm.js.map +1 -1
  332. package/dist/lib/messageArea.cjs.js.map +1 -1
  333. package/dist/lib/messageArea.esm.js.map +1 -1
  334. package/dist/lib/newperson.cjs.js.map +1 -1
  335. package/dist/lib/newperson.esm.js.map +1 -1
  336. package/dist/lib/ns.cjs.js.map +1 -1
  337. package/dist/lib/ns.esm.js.map +1 -1
  338. package/dist/lib/pad.cjs.js.map +1 -1
  339. package/dist/lib/pad.esm.js.map +1 -1
  340. package/dist/lib/participation.cjs.js.map +1 -1
  341. package/dist/lib/participation.esm.js.map +1 -1
  342. package/dist/lib/preferences.cjs.js.map +1 -1
  343. package/dist/lib/preferences.esm.js.map +1 -1
  344. package/dist/lib/style.cjs.js.map +1 -1
  345. package/dist/lib/style.esm.js.map +1 -1
  346. package/dist/lib/styleConstants.cjs.js.map +1 -1
  347. package/dist/lib/styleConstants.esm.js.map +1 -1
  348. package/dist/lib/style_multiSelect.cjs.js.map +1 -1
  349. package/dist/lib/style_multiSelect.esm.js.map +1 -1
  350. package/dist/lib/table.cjs.js +1 -1
  351. package/dist/lib/table.cjs.js.map +1 -1
  352. package/dist/lib/table.esm.js +2 -2
  353. package/dist/lib/table.esm.js.map +1 -1
  354. package/dist/lib/tabs.cjs.js +1 -1
  355. package/dist/lib/tabs.cjs.js.map +1 -1
  356. package/dist/lib/tabs.esm.js +1 -1
  357. package/dist/lib/tabs.esm.js.map +1 -1
  358. package/dist/lib/timing.cjs.js.map +1 -1
  359. package/dist/lib/timing.esm.js.map +1 -1
  360. package/dist/lib/values.cjs.js.map +1 -1
  361. package/dist/lib/values.esm.js.map +1 -1
  362. package/dist/loader.js +4 -4
  363. package/dist/login/login.cjs.js +1 -1
  364. package/dist/login/login.cjs.js.map +1 -1
  365. package/dist/login/login.esm.js +1 -1
  366. package/dist/login/login.esm.js.map +1 -1
  367. package/dist/matrix/index.cjs.js.map +1 -1
  368. package/dist/matrix/index.esm.js.map +1 -1
  369. package/dist/matrix/matrix.cjs.js.map +1 -1
  370. package/dist/matrix/matrix.esm.js.map +1 -1
  371. package/dist/media/index.cjs.js.map +1 -1
  372. package/dist/media/index.esm.js.map +1 -1
  373. package/dist/media/media-capture.cjs.js.map +1 -1
  374. package/dist/media/media-capture.esm.js.map +1 -1
  375. package/dist/signup/config-default.cjs.js.map +1 -1
  376. package/dist/signup/config-default.esm.js.map +1 -1
  377. package/dist/signup/signup.cjs.js.map +1 -1
  378. package/dist/signup/signup.esm.js.map +1 -1
  379. package/dist/solid-ui.js +50 -50
  380. package/dist/solid-ui.min.js +50 -50
  381. package/dist/solid-ui.min.js.map +1 -1
  382. package/dist/utils/headerFooterHelpers.cjs.js.map +1 -1
  383. package/dist/utils/headerFooterHelpers.esm.js.map +1 -1
  384. package/dist/utils/index.cjs.js +1 -1
  385. package/dist/utils/index.cjs.js.map +1 -1
  386. package/dist/utils/index.esm.js +2 -2
  387. package/dist/utils/index.esm.js.map +1 -1
  388. package/dist/utils/keyHelpers/accessData.cjs.js.map +1 -1
  389. package/dist/utils/keyHelpers/accessData.esm.js.map +1 -1
  390. package/dist/utils/keyHelpers/acl.cjs.js.map +1 -1
  391. package/dist/utils/keyHelpers/acl.esm.js.map +1 -1
  392. package/dist/utils/keyHelpers/otherHelpers.cjs.js.map +1 -1
  393. package/dist/utils/keyHelpers/otherHelpers.esm.js.map +1 -1
  394. package/dist/utils/label.cjs.js.map +1 -1
  395. package/dist/utils/label.esm.js.map +1 -1
  396. package/dist/v2/components/auth/loginButton/LoginButton.d.ts.map +1 -1
  397. package/dist/widgets/buttons/iconLinks.cjs.js.map +1 -1
  398. package/dist/widgets/buttons/iconLinks.esm.js.map +1 -1
  399. package/dist/widgets/buttons.cjs.js.map +1 -1
  400. package/dist/widgets/buttons.esm.js.map +1 -1
  401. package/dist/widgets/dragAndDrop.cjs.js +1 -1
  402. package/dist/widgets/dragAndDrop.cjs.js.map +1 -1
  403. package/dist/widgets/dragAndDrop.esm.js +22 -18
  404. package/dist/widgets/dragAndDrop.esm.js.map +1 -1
  405. package/dist/widgets/error.cjs.js.map +1 -1
  406. package/dist/widgets/error.esm.js.map +1 -1
  407. package/dist/widgets/forms/autocomplete/autocompleteBar.cjs.js.map +1 -1
  408. package/dist/widgets/forms/autocomplete/autocompleteBar.esm.js.map +1 -1
  409. package/dist/widgets/forms/autocomplete/autocompleteField.cjs.js.map +1 -1
  410. package/dist/widgets/forms/autocomplete/autocompleteField.esm.js.map +1 -1
  411. package/dist/widgets/forms/autocomplete/autocompletePicker.cjs.js.map +1 -1
  412. package/dist/widgets/forms/autocomplete/autocompletePicker.esm.js.map +1 -1
  413. package/dist/widgets/forms/autocomplete/language.cjs.js.map +1 -1
  414. package/dist/widgets/forms/autocomplete/language.esm.js.map +1 -1
  415. package/dist/widgets/forms/autocomplete/publicData.cjs.js.map +1 -1
  416. package/dist/widgets/forms/autocomplete/publicData.esm.js.map +1 -1
  417. package/dist/widgets/forms/basic.cjs.js.map +1 -1
  418. package/dist/widgets/forms/basic.esm.js.map +1 -1
  419. package/dist/widgets/forms/fieldFunction.cjs.js.map +1 -1
  420. package/dist/widgets/forms/fieldFunction.esm.js.map +1 -1
  421. package/dist/widgets/forms/fieldParams.cjs.js.map +1 -1
  422. package/dist/widgets/forms/fieldParams.esm.js.map +1 -1
  423. package/dist/widgets/forms/formStyle.cjs.js.map +1 -1
  424. package/dist/widgets/forms/formStyle.esm.js.map +1 -1
  425. package/dist/widgets/forms.cjs.js +2 -2
  426. package/dist/widgets/forms.cjs.js.map +1 -1
  427. package/dist/widgets/forms.esm.js +4 -4
  428. package/dist/widgets/forms.esm.js.map +1 -1
  429. package/dist/widgets/index.cjs.js.map +1 -1
  430. package/dist/widgets/index.esm.js.map +1 -1
  431. package/dist/widgets/multiSelect.cjs.js.map +1 -1
  432. package/dist/widgets/multiSelect.esm.js.map +1 -1
  433. package/dist/widgets/peoplePicker.cjs.js.map +1 -1
  434. package/dist/widgets/peoplePicker.esm.js.map +1 -1
  435. package/dist/widgets/widgetHelpers.cjs.js.map +1 -1
  436. package/dist/widgets/widgetHelpers.esm.js.map +1 -1
  437. package/package.json +4 -4
  438. package/dist/chunks/account-CSKDoS_I.js.map +0 -1
  439. package/dist/chunks/auth-YsyyEh_c.js.map +0 -1
  440. package/dist/chunks/avatar-BXaBs_3q.js.map +0 -1
  441. package/dist/chunks/chunk.64OG2H45-BFgXEuP7.js.map +0 -1
  442. package/dist/chunks/combobox-D3eGdicW.js.map +0 -1
  443. package/dist/chunks/guard-BTbfcRR6.js.map +0 -1
  444. package/dist/chunks/index.esm-C63HBmfn.js.map +0 -1
  445. package/dist/chunks/jsonld-DrQpMD8o.js.map +0 -1
  446. package/dist/chunks/login-button-DZb_CXCo.js.map +0 -1
  447. package/dist/chunks/logout-button-CaD4ESfx.js.map +0 -1
  448. package/dist/chunks/menu-BiqIAf-j.js.map +0 -1
  449. package/dist/chunks/provider-BZsO0FFR.js.map +0 -1
  450. package/dist/chunks/rdf-form-C2zcf1F0.js.map +0 -1
  451. package/dist/chunks/rdf-input-CiQNdkKK.js.map +0 -1
  452. package/dist/chunks/signup-button-DufShSEV.js.map +0 -1
  453. package/dist/chunks/src-CbkVtLGQ.js.map +0 -1
  454. package/dist/chunks/style-DI3buiHt.js.map +0 -1
@@ -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","customElement","property","state","DialogComponent","nothing","styles","require_decorators","require_DialogComponent","require_PhotoCaptureModal_styles","lit","lit_decorators_js","_Class","_PhotoCaptureModal3","_A","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_initProto","_initClass","_classDecs","_nameDecs","_init_name","_headingDecs","_init_heading","_captureLabelDecs","_init_captureLabel","_confirmLabelDecs","_init_confirmLabel","_retakeLabelDecs","_init_retakeLabel","_cancelLabelDecs","_init_cancelLabel","_fileNamePrefixDecs","_init_fileNamePrefix","_mediaConstraintsDecs","_init_mediaConstraints","_constraintsDecs","_init_constraints","_captureFormatDecs","_init_captureFormat","_captureQualityDecs","_init_captureQuality","_showCancelButtonDecs","_init_showCancelButton","_facingModeDecs","_init_facingMode","_errorMessageDecs","_init_errorMessage","_previewUrlDecs","_init_previewUrl","_startingPreviewDecs","_init_startingPreview","_valueDecs","_init_value","_PhotoCaptureModal2","_ref","_classPrivateFieldInitSpec","_checkPrivateRedeclaration","a","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_defineProperty","_toPropertyKey","t","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","f","p","_setFunctionName","P","j","D","I","F","l","N","_checkInRHS","_toPrimitive","e","_identity","_PhotoCaptureModal","args","changed","normalizedValue","video","contents","width","height","canvas","context","blob","resolve","contentType","extension","safePrefix","mimeType","track","file","stream","error"],"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 +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","styles","DialogComponent","PhotoCaptureModal_styles_default","_Class","_PhotoCaptureModal3","_A","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_initProto","_initClass","_classDecs","_nameDecs","_init_name","_headingDecs","_init_heading","_captureLabelDecs","_init_captureLabel","_confirmLabelDecs","_init_confirmLabel","_retakeLabelDecs","_init_retakeLabel","_cancelLabelDecs","_init_cancelLabel","_fileNamePrefixDecs","_init_fileNamePrefix","_mediaConstraintsDecs","_init_mediaConstraints","_constraintsDecs","_init_constraints","_captureFormatDecs","_init_captureFormat","_captureQualityDecs","_init_captureQuality","_showCancelButtonDecs","_init_showCancelButton","_facingModeDecs","_init_facingMode","_errorMessageDecs","_init_errorMessage","_previewUrlDecs","_init_previewUrl","_startingPreviewDecs","_init_startingPreview","_valueDecs","_init_value","_PhotoCaptureModal2","_ref","_classPrivateFieldInitSpec","a","_checkPrivateRedeclaration","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_defineProperty","_toPropertyKey","t","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","p","_setFunctionName","P","j","D","I","F","l","f","N","_checkInRHS","_toPrimitive","e","_identity","customElement","_PhotoCaptureModal","property","state","args","changed","normalizedValue","video","nothing","contents","width","height","canvas","context","blob","resolve","contentType","extension","safePrefix","mimeType","track","file","stream","error"],"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 +1 @@
1
- {"version":3,"file":"PhotoCaptureModal.styles.cjs.js","names":[],"sources":["../../../src/components/photo-capture-modal/PhotoCaptureModal.styles.css"],"sourcesContent":[".viewport {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-height: 200px;\n border-radius: 0.5rem;\n overflow: hidden;\n background: color-mix(in srgb, #ffffff 92%, #000 8%);\n}\n\n.viewport video,\n.viewport img {\n display: block;\n width: 100%;\n max-width: 260px;\n height: auto;\n border-radius: 0.5rem;\n margin: 0 auto;\n object-fit: cover;\n}\n\n.status {\n width: 100%;\n text-align: center;\n color: var(--photo-capture-muted-text);\n font-size: 0.875rem;\n}\n\n.status.error {\n color: var(--color-error, #b00020);\n}\n"],"mappings":""}
1
+ {"version":3,"file":"PhotoCaptureModal.styles.cjs.js","names":["PhotoCaptureModal_styles_default"],"sources":["../../../src/components/photo-capture-modal/PhotoCaptureModal.styles.css"],"sourcesContent":[".viewport {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-height: 200px;\n border-radius: 0.5rem;\n overflow: hidden;\n background: color-mix(in srgb, #ffffff 92%, #000 8%);\n}\n\n.viewport video,\n.viewport img {\n display: block;\n width: 100%;\n max-width: 260px;\n height: auto;\n border-radius: 0.5rem;\n margin: 0 auto;\n object-fit: cover;\n}\n\n.status {\n width: 100%;\n text-align: center;\n color: var(--photo-capture-muted-text);\n font-size: 0.875rem;\n}\n\n.status.error {\n color: var(--color-error, #b00020);\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"PhotoCaptureModal.styles.esm.js","names":[],"sources":["../../../src/components/photo-capture-modal/PhotoCaptureModal.styles.css"],"sourcesContent":[".viewport {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-height: 200px;\n border-radius: 0.5rem;\n overflow: hidden;\n background: color-mix(in srgb, #ffffff 92%, #000 8%);\n}\n\n.viewport video,\n.viewport img {\n display: block;\n width: 100%;\n max-width: 260px;\n height: auto;\n border-radius: 0.5rem;\n margin: 0 auto;\n object-fit: cover;\n}\n\n.status {\n width: 100%;\n text-align: center;\n color: var(--photo-capture-muted-text);\n font-size: 0.875rem;\n}\n\n.status.error {\n color: var(--color-error, #b00020);\n}\n"],"mappings":""}
1
+ {"version":3,"file":"PhotoCaptureModal.styles.esm.js","names":["PhotoCaptureModal_styles_default"],"sources":["../../../src/components/photo-capture-modal/PhotoCaptureModal.styles.css"],"sourcesContent":[".viewport {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-height: 200px;\n border-radius: 0.5rem;\n overflow: hidden;\n background: color-mix(in srgb, #ffffff 92%, #000 8%);\n}\n\n.viewport video,\n.viewport img {\n display: block;\n width: 100%;\n max-width: 260px;\n height: auto;\n border-radius: 0.5rem;\n margin: 0 auto;\n object-fit: cover;\n}\n\n.status {\n width: 100%;\n text-align: center;\n color: var(--photo-capture-muted-text);\n font-size: 0.875rem;\n}\n\n.status.error {\n color: var(--color-error, #b00020);\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","names":["PhotoCaptureModal"],"sources":["../../../src/components/photo-capture-modal/index.ts"],"sourcesContent":["import PhotoCaptureModal from './PhotoCaptureModal'\n\nexport { PhotoCaptureModal }\nexport default PhotoCaptureModal\n"],"mappings":"6IAGA,IAAA,EAAeA,EAAAA"}
1
+ {"version":3,"file":"index.cjs.js","names":["PhotoCaptureModal","PhotoCaptureModal","require_PhotoCaptureModal","photo_capture_modal_default"],"sources":["../../../src/components/photo-capture-modal/index.ts"],"sourcesContent":["import PhotoCaptureModal from './PhotoCaptureModal'\n\nexport { PhotoCaptureModal }\nexport default PhotoCaptureModal\n"],"mappings":"6IAGA,IAAAG,EAAeH,EAAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","names":["PhotoCaptureModal"],"sources":["../../../src/components/photo-capture-modal/index.ts"],"sourcesContent":["import PhotoCaptureModal from './PhotoCaptureModal'\n\nexport { PhotoCaptureModal }\nexport default PhotoCaptureModal\n"],"mappings":";;AAGA,IAAA,IAAeA"}
1
+ {"version":3,"file":"index.esm.js","names":["PhotoCaptureModal","PhotoCaptureModal","_PhotoCaptureModal","photo_capture_modal_default"],"sources":["../../../src/components/photo-capture-modal/index.ts"],"sourcesContent":["import PhotoCaptureModal from './PhotoCaptureModal'\n\nexport { PhotoCaptureModal }\nexport default PhotoCaptureModal\n"],"mappings":";;AAGA,IAAAG,IAAeH"}
@@ -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,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
+ {"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","customElement","property","provide","authContext","WebComponent","SolidAuth","require_context","require_decorators","require_WebComponent","require_SolidAuth","_lit_context","lit","lit_decorators_js","_Provider2","_initProto","_initClass","_classDecs","_signupUrlDecs","_init_signupUrl","_authDecs","_init_auth","_ref","_classPrivateFieldInitSpec","_checkPrivateRedeclaration","a","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","f","p","_setFunctionName","P","j","D","E","I","O","k","F","l","N","_checkInRHS","_toPropertyKey","_toPrimitive","t","e","_Provider","_A","_B","args","changedProperties"],"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 +1 @@
1
- {"version":3,"file":"Provider.esm.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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOkCQ,IAAA,CAEjCR,EAAc,mBAAmB,CAAC;AAAA,IAAAS,GAAAC,kBAAA,IAAAC,QAAA,GAAAC,kBAAA,IAAAD,QAAA;AAAAE,KAAAC,IAEhCV,EAAS;CAAEW,MAAMC;CAAQC,SAAS;AAAK,CAAC,GAACC,IAGzChB,EAAQ,EAAEiB,SAASd,EAAY,CAAC,GAAC,cAuBnCiC,IAAAlB,cA3BqCnB,EAAa;CAAAoB,YAAA,GAAAC,GAAA;EAAAC,AAAA,MAAA,GAAAD,CAAA,GAAAC,EAAA,MAAAb,IAAAc,EAAA,IAAA,GAAAC,EAAA,IAAA,EAAA,GAAAF,EAAA,MAAAX,GAAAc,EAAA,MAKzB,IAAIpB,EAAU,CAAC,CAAA;CAAA;CAAA,KAAAO,KAAA;EAAA,OAAAc,EAAAjB,GAAA,IAAA;CAAA;CAAA,IAH9BkB,UAASC,GAAA;EAAAC,EAAApB,GAAA,MAAAmB,CAAA;CAAA;CAAA,IAGDE,OAAI;EAAA,OAAAJ,EAAAf,GAAA,IAAA;CAAA;CAAA,IAAJmB,KAAIF,GAAA;EAAAC,EAAAlB,GAAA,MAAAiB,CAAA;CAAA;CAErB,MAAMG,oBAAqB;EAGzB,AAFA,MAAMA,kBAAkB,GAExB,MAAM,KAAKD,KAAKE,WAAW;CAC7B;CAEUC,WAAYC,GAAyC;EAG7D,AAFA,MAAMD,WAAWC,CAAiB,GAE9BA,EAAkBC,IAAI,WAAW,MACnC,KAAKL,KAAKH,YAAY,KAAKA,aAAAA;CAE/B;CAEUS,SAAU;EAClB,OAAOlC,CAAI;;;;CAIb;AACF,GAAC,CAAAoC,GAAA,CAAAd,GAAAC,GAAAF,IAAAgB,GAAA,CAAA/B,GAAAgC,MAAAC,EAAAJ,GAAA,CAAA;CAAAxB;CAAA;CAAA;AAAA,GAAA;CAAAI;CAAA;CAAA;AAAA,CAAA,GAAAV,GAAA,GAAA,KAAA,GA3BqCP,CAAY,GAAAwC,EAAA"}
1
+ {"version":3,"file":"Provider.esm.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","WebComponent","SolidAuth","_Provider2","_initProto","_initClass","_classDecs","_signupUrlDecs","_init_signupUrl","_authDecs","_init_auth","_ref","_classPrivateFieldInitSpec","a","_checkPrivateRedeclaration","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","p","_setFunctionName","P","j","D","E","I","O","k","F","l","f","N","_checkInRHS","_toPropertyKey","_toPrimitive","t","e","customElement","_Provider","_A","_B","property","provide","authContext","args","changedProperties"],"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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOkCQ,IAAA,CAEjCR,EAAc,mBAAmB,CAAC;AAAA,IAAAS,GAAAC,kBAAA,IAAAC,QAAA,GAAAC,kBAAA,IAAAD,QAAA;AAAAE,KAAAC,IAEhCV,EAAS;CAAEW,MAAMC;CAAQC,SAAS;AAAK,CAAC,GAACC,IAGzChB,EAAQ,EAAEiB,SAASd,EAAY,CAAC,GAAC,cAuBnCiC,IAAAlB,cA3BqCnB,EAAa;CAAAoB,YAAA,GAAAC,GAAA;EAAAC,AAAA,MAAA,GAAAD,CAAA,GAAAC,EAAA,MAAAb,IAAAc,EAAA,IAAA,GAAAC,EAAA,IAAA,EAAA,GAAAF,EAAA,MAAAX,GAAAc,EAAA,MAKzB,IAAIpB,EAAU,CAAC,CAAA;CAAA;CAAA,KAAAO,KAAA;EAAA,OAAAc,EAAAjB,GAAA,IAAA;CAAA;CAAA,IAH9BkB,UAASC,GAAA;EAAAC,EAAApB,GAAA,MAAAmB,CAAA;CAAA;CAAA,IAGDE,OAAI;EAAA,OAAAJ,EAAAf,GAAA,IAAA;CAAA;CAAA,IAAJmB,KAAIF,GAAA;EAAAC,EAAAlB,GAAA,MAAAiB,CAAA;CAAA;CAErB,MAAMG,oBAAqB;EAGzB,AAFA,MAAMA,kBAAkB,GAExB,MAAM,KAAKD,KAAKE,WAAW;CAC7B;CAEUC,WAAYC,GAAyC;EAG7D,AAFA,MAAMD,WAAWC,CAAiB,GAE9BA,EAAkBC,IAAI,WAAW,MACnC,KAAKL,KAAKH,YAAY,KAAKA,aAAAA;CAE/B;CAEUS,SAAU;EAClB,OAAOlC,CAAI;;;;CAIb;AACF,GAAC,CAAAoC,GAAA,CAAAd,GAAAC,GAAAF,IAAAgB,GAAA,CAAA/B,GAAAgC,MAAAC,EAAAJ,GAAA,CAAA;CAAAxB;CAAA;CAAA;AAAA,GAAA;CAAAI;CAAA;CAAA;AAAA,CAAA,GAAAV,GAAA,GAAA,KAAA,GA3BqCP,CAAY,GAAAwC,EAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","names":["Provider"],"sources":["../../../src/components/provider/index.ts"],"sourcesContent":["import Provider from './Provider'\n\nexport { Provider }\nexport default Provider\n"],"mappings":"oIAGA,IAAA,EAAeA,EAAAA"}
1
+ {"version":3,"file":"index.cjs.js","names":["Provider","Provider","require_Provider","provider_default"],"sources":["../../../src/components/provider/index.ts"],"sourcesContent":["import Provider from './Provider'\n\nexport { Provider }\nexport default Provider\n"],"mappings":"oIAGA,IAAAG,EAAeH,EAAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","names":["Provider"],"sources":["../../../src/components/provider/index.ts"],"sourcesContent":["import Provider from './Provider'\n\nexport { Provider }\nexport default Provider\n"],"mappings":";;AAGA,IAAA,IAAeA"}
1
+ {"version":3,"file":"index.esm.js","names":["Provider","Provider","_Provider","provider_default"],"sources":["../../../src/components/provider/index.ts"],"sourcesContent":["import Provider from './Provider'\n\nexport { Provider }\nexport default Provider\n"],"mappings":";;AAGA,IAAAG,IAAeH"}
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "../chunks/provider-BZsO0FFR.js";
1
+ import { n as e, t } from "../chunks/provider-D5r57fK1.js";
2
2
  export { e as Provider, t as default };
@@ -8,5 +8,5 @@ const e=require("../../lib/ns.cjs.js"),t=require("../../lib/components/decorator
8
8
  ></solid-ui-rdf-input>
9
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
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}});
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
12
  //# sourceMappingURL=RDFForm.cjs.js.map
@@ -1 +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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"}
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","customElement","consume","storeContext","property","state","WebComponent","DEFAULT_STORE","findForm","sym","ns","sortBySequence","fetchData","require_ns","require_decorators","require_WebComponent","require_rdfFormsHelper","require_StoreContext","rdflib","_lit_context","lit_decorators_js","lit_html_js","_RDFForm2","_initProto","_initClass","_classDecs","_storeContextDecs","_init_storeContext","_passedInStoreDecs","_init_passedInStore","_entireDataIsReadonlyDecs","_init_entireDataIsReadonly","_loadVersionDecs","_init__loadVersion","_documentsLoadedDecs","_init__documentsLoaded","_formUrlDecs","_init_formUrl","_subjectUrlDecs","_init_subjectUrl","_ref","_classPrivateFieldInitSpec","_checkPrivateRedeclaration","a","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","f","p","_setFunctionName","P","j","D","I","F","l","N","_checkInRHS","_toPropertyKey","_toPrimitive","t","e","urlConverter","value","hrefFromUrlValue","_RDFForm","_A","_B","_C","_D","_E","_F","_G","args","store","subjectUrl","formRoot","formDocument","parts","uiFields","item","typeNode","hashIndex","part","changedProperties","formUrl","error"],"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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"}
@@ -295,7 +295,7 @@ j = (_ = l({
295
295
  }
296
296
  async loadDocumentsIfNeeded() {
297
297
  let e = this.currentStore, t = U(this.formUrl), n = U(this.subjectUrl);
298
- if (!(!t || !n)) try {
298
+ if (t && n) try {
299
299
  await r(e, t), await r(e, n), this._loadVersion += 1, this._documentsLoaded = !0;
300
300
  } catch (e) {
301
301
  console.error("Failed to load RDF documents", e);
@@ -1 +1 @@
1
- {"version":3,"file":"RDFForm.esm.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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"}
1
+ {"version":3,"file":"RDFForm.esm.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","ns","ns_default","WebComponent","_RDFForm2","_initProto","_initClass","_classDecs","_storeContextDecs","_init_storeContext","_passedInStoreDecs","_init_passedInStore","_entireDataIsReadonlyDecs","_init_entireDataIsReadonly","_loadVersionDecs","_init__loadVersion","_documentsLoadedDecs","_init__documentsLoaded","_formUrlDecs","_init_formUrl","_subjectUrlDecs","_init_subjectUrl","_ref","_classPrivateFieldInitSpec","a","_checkPrivateRedeclaration","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","p","_setFunctionName","P","j","D","I","F","l","f","N","_checkInRHS","_toPropertyKey","_toPrimitive","t","e","urlConverter","value","hrefFromUrlValue","customElement","_RDFForm","_A","_B","_C","_D","_E","_F","_G","consume","storeContext","property","state","args","DEFAULT_STORE","store","subjectUrl","formRoot","findForm","formDocument","sym","parts","uiFields","sortBySequence","item","typeNode","hashIndex","part","changedProperties","formUrl","fetchData","error"],"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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","names":["RDFForm"],"sources":["../../../src/components/rdf-form/index.ts"],"sourcesContent":["import RDFForm from './RDFForm'\n\nexport { RDFForm }\nexport default RDFForm\n"],"mappings":"mIAGA,IAAA,EAAeA,EAAAA"}
1
+ {"version":3,"file":"index.cjs.js","names":["RDFForm","RDFForm","require_RDFForm","rdf_form_default"],"sources":["../../../src/components/rdf-form/index.ts"],"sourcesContent":["import RDFForm from './RDFForm'\n\nexport { RDFForm }\nexport default RDFForm\n"],"mappings":"mIAGA,IAAAG,EAAeH,EAAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","names":["RDFForm"],"sources":["../../../src/components/rdf-form/index.ts"],"sourcesContent":["import RDFForm from './RDFForm'\n\nexport { RDFForm }\nexport default RDFForm\n"],"mappings":";;AAGA,IAAA,IAAeA"}
1
+ {"version":3,"file":"index.esm.js","names":["RDFForm","RDFForm","_RDFForm","rdf_form_default"],"sources":["../../../src/components/rdf-form/index.ts"],"sourcesContent":["import RDFForm from './RDFForm'\n\nexport { RDFForm }\nexport default RDFForm\n"],"mappings":";;AAGA,IAAAG,IAAeH"}
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "../chunks/rdf-form-C2zcf1F0.js";
1
+ import { n as e, t } from "../chunks/rdf-form-B2zTR8Qv.js";
2
2
  export { e as RDFForm, t as default };