solid-ui 3.1.3-13 → 3.1.3-15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (362) hide show
  1. package/README.md +0 -14
  2. package/dist/_virtual/_rolldown/runtime.cjs.js +1 -1
  3. package/dist/acl/access-controller.cjs.js.map +1 -1
  4. package/dist/acl/access-groups.cjs.js +1 -1
  5. package/dist/acl/access-groups.cjs.js.map +1 -1
  6. package/dist/acl/access-groups.esm.js +2 -1
  7. package/dist/acl/access-groups.esm.js.map +1 -1
  8. package/dist/acl/acl.cjs.js.map +1 -1
  9. package/dist/acl/acl.esm.js.map +1 -1
  10. package/dist/chat/bookmarks.esm.js +2 -1
  11. package/dist/chat/bookmarks.esm.js.map +1 -1
  12. package/dist/chat/chatLogic.cjs.js +1 -1
  13. package/dist/chat/chatLogic.cjs.js.map +1 -1
  14. package/dist/chat/chatLogic.esm.js +2 -2
  15. package/dist/chat/chatLogic.esm.js.map +1 -1
  16. package/dist/chat/keys.cjs.js +1 -1
  17. package/dist/chat/keys.cjs.js.map +1 -1
  18. package/dist/chat/keys.d.ts +1 -1
  19. package/dist/chat/keys.d.ts.map +1 -1
  20. package/dist/chat/keys.esm.js +5 -2
  21. package/dist/chat/keys.esm.js.map +1 -1
  22. package/dist/chat/signature.cjs.js +1 -1
  23. package/dist/chat/signature.cjs.js.map +1 -1
  24. package/dist/chat/signature.esm.js +2 -1
  25. package/dist/chat/signature.esm.js.map +1 -1
  26. package/dist/chunks/{DialogProvider-B7wEBrVN.js → DialogProvider-0HIHjONx.js} +11 -11
  27. package/dist/chunks/{DialogProvider-B7wEBrVN.js.map → DialogProvider-0HIHjONx.js.map} +1 -1
  28. package/dist/chunks/{account-DeNlj01m.js → account-Ch8h_zTv.js} +20 -21
  29. package/dist/chunks/{account-DeNlj01m.js.map → account-Ch8h_zTv.js.map} +1 -1
  30. package/dist/chunks/{auth-Knq99zZ9.js → auth-D4NUMSzc.js} +98 -72
  31. package/dist/chunks/auth-D4NUMSzc.js.map +1 -0
  32. package/dist/chunks/{avatar-DgO_p94F.js → avatar-BWtz4RlU.js} +7 -8
  33. package/dist/chunks/{avatar-DgO_p94F.js.map → avatar-BWtz4RlU.js.map} +1 -1
  34. package/dist/chunks/{button-Dvkek1tx.js → button-BJyFKOKO.js} +12 -15
  35. package/dist/chunks/{button-Dvkek1tx.js.map → button-BJyFKOKO.js.map} +1 -1
  36. package/dist/chunks/{chunk.7MPIABXH-DNcYOuE8.js → chunk.64OG2H45-BADxAtEI.js} +97 -50
  37. package/dist/chunks/chunk.64OG2H45-BADxAtEI.js.map +1 -0
  38. package/dist/chunks/{combobox-B5j4LoHY.js → combobox-0NWv9K3D.js} +106 -93
  39. package/dist/chunks/combobox-0NWv9K3D.js.map +1 -0
  40. package/dist/chunks/{combobox-option-C5lKAumO.js → combobox-option-B-twy1Zn.js} +6 -7
  41. package/dist/chunks/{combobox-option-C5lKAumO.js.map → combobox-option-B-twy1Zn.js.map} +1 -1
  42. package/dist/chunks/components-DrP7BOrs.js +1281 -0
  43. package/dist/chunks/components-DrP7BOrs.js.map +1 -0
  44. package/dist/chunks/{dialog-DZgm_Tph.js → dialog-CcMVH-Ut.js} +16 -16
  45. package/dist/chunks/{dialog-DZgm_Tph.js.map → dialog-CcMVH-Ut.js.map} +1 -1
  46. package/dist/chunks/{dialog-content-DY-ROHyi.js → dialog-content-DcD_s3hK.js} +2 -3
  47. package/dist/chunks/{dialog-content-DY-ROHyi.js.map → dialog-content-DcD_s3hK.js.map} +1 -1
  48. package/dist/chunks/{dialog-footer-BAZTjZ8J.js → dialog-footer-CHgSH7G5.js} +2 -3
  49. package/dist/chunks/{dialog-footer-BAZTjZ8J.js.map → dialog-footer-CHgSH7G5.js.map} +1 -1
  50. package/dist/chunks/{dialog-header-COzPcK8F.js → dialog-header-BjellR7_.js} +2 -3
  51. package/dist/chunks/{dialog-header-COzPcK8F.js.map → dialog-header-BjellR7_.js.map} +1 -1
  52. package/dist/chunks/{dialogs-DEuwXC46.js → dialogs-CeHuLUo5.js} +2 -2
  53. package/dist/chunks/{dialogs-DEuwXC46.js.map → dialogs-CeHuLUo5.js.map} +1 -1
  54. package/dist/chunks/{dialogs-root-BYp6fIUE.js → dialogs-root-CvsON-m8.js} +5 -6
  55. package/dist/chunks/{dialogs-root-BYp6fIUE.js.map → dialogs-root-CvsON-m8.js.map} +1 -1
  56. package/dist/chunks/{guard-DI4k0FkM.js → guard-BIesxo_f.js} +7 -8
  57. package/dist/chunks/{guard-DI4k0FkM.js.map → guard-BIesxo_f.js.map} +1 -1
  58. package/dist/chunks/{solid-logic.esm-BrMdCG2_.js → index.esm-CyyOkz04.js} +2663 -2745
  59. package/dist/chunks/index.esm-CyyOkz04.js.map +1 -0
  60. package/dist/chunks/{input-CCpEhtqA.js → input-CFDN76Y5.js} +99 -54
  61. package/dist/chunks/input-CFDN76Y5.js.map +1 -0
  62. package/dist/chunks/{jsonld-B61R4iOL.js → jsonld-52q5nY_t.js} +22 -27
  63. package/dist/chunks/{jsonld-B61R4iOL.js.map → jsonld-52q5nY_t.js.map} +1 -1
  64. package/dist/chunks/{login-button-BafqiKef.js → login-button-BhdKFJ-F.js} +8 -9
  65. package/dist/chunks/{login-button-BafqiKef.js.map → login-button-BhdKFJ-F.js.map} +1 -1
  66. package/dist/chunks/{logout-button-D54NF9EW.js → logout-button-ClbKS9ss.js} +8 -9
  67. package/dist/chunks/{logout-button-D54NF9EW.js.map → logout-button-ClbKS9ss.js.map} +1 -1
  68. package/dist/chunks/{menu-DKxtACGA.js → menu-DVgG-el5.js} +39 -35
  69. package/dist/chunks/menu-DVgG-el5.js.map +1 -0
  70. package/dist/chunks/{menu-item-D9BqJtKZ.js → menu-item-Bj3NgLzB.js} +5 -6
  71. package/dist/chunks/{menu-item-D9BqJtKZ.js.map → menu-item-Bj3NgLzB.js.map} +1 -1
  72. package/dist/chunks/{photo-capture-BoZF621r.js → photo-capture-CVKE0SKx.js} +18 -19
  73. package/dist/chunks/{photo-capture-BoZF621r.js.map → photo-capture-CVKE0SKx.js.map} +1 -1
  74. package/dist/chunks/{photo-capture-modal-BLZtHDj1.js → photo-capture-modal-DARmhHUH.js} +26 -26
  75. package/dist/chunks/{photo-capture-modal-BLZtHDj1.js.map → photo-capture-modal-DARmhHUH.js.map} +1 -1
  76. package/dist/chunks/{provider-Btl6Lnki.js → provider-CBSBzOfP.js} +9 -10
  77. package/dist/chunks/{provider-Btl6Lnki.js.map → provider-CBSBzOfP.js.map} +1 -1
  78. package/dist/chunks/rdf-form-BeuzVBOP.js +339 -0
  79. package/dist/chunks/rdf-form-BeuzVBOP.js.map +1 -0
  80. package/dist/chunks/rdf-input-n73oeSkf.js +440 -0
  81. package/dist/chunks/rdf-input-n73oeSkf.js.map +1 -0
  82. package/dist/chunks/{rolldown-runtime-B1bRi_D7.js → rolldown-runtime-Cb76FRpK.js} +2 -2
  83. package/dist/chunks/{select-XkieYvDm.js → select-BuIxSm1A.js} +9 -10
  84. package/dist/chunks/{select-XkieYvDm.js.map → select-BuIxSm1A.js.map} +1 -1
  85. package/dist/chunks/{select-option-DUg4AWzw.js → select-option-Z8qZsCQo.js} +6 -7
  86. package/dist/chunks/{select-option-DUg4AWzw.js.map → select-option-Z8qZsCQo.js.map} +1 -1
  87. package/dist/chunks/{signup-button-D5wS8_gB.js → signup-button-B-AgjjAK.js} +8 -9
  88. package/dist/chunks/{signup-button-D5wS8_gB.js.map → signup-button-B-AgjjAK.js.map} +1 -1
  89. package/dist/chunks/{solid-emblem-XHk-oomv.js → solid-emblem-D4ItOckU.js} +2 -3
  90. package/dist/chunks/{solid-emblem-XHk-oomv.js.map → solid-emblem-D4ItOckU.js.map} +1 -1
  91. package/dist/chunks/{src-CJICzMIV.js → src-B5SL8UtS.js} +2741 -3207
  92. package/dist/chunks/src-B5SL8UtS.js.map +1 -0
  93. package/dist/chunks/style-CjYxsW7j.js +536 -0
  94. package/dist/chunks/style-CjYxsW7j.js.map +1 -0
  95. package/dist/components/account/Account.cjs.js.map +1 -1
  96. package/dist/components/account.js +1 -1
  97. package/dist/components/all.cjs.js +1 -1
  98. package/dist/components/all.esm.js +2 -1
  99. package/dist/components/avatar/Avatar.cjs.js.map +1 -1
  100. package/dist/components/avatar.js +1 -1
  101. package/dist/components/button/Button.cjs.js +1 -1
  102. package/dist/components/button/Button.cjs.js.map +1 -1
  103. package/dist/components/button/Button.esm.js +1 -3
  104. package/dist/components/button/Button.esm.js.map +1 -1
  105. package/dist/components/button.js +1 -1
  106. package/dist/components/combobox/Combobox.cjs.js +2 -2
  107. package/dist/components/combobox/Combobox.cjs.js.map +1 -1
  108. package/dist/components/combobox/Combobox.d.ts +1 -0
  109. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  110. package/dist/components/combobox/Combobox.esm.js +61 -47
  111. package/dist/components/combobox/Combobox.esm.js.map +1 -1
  112. package/dist/components/combobox-option/ComboboxOption.cjs.js.map +1 -1
  113. package/dist/components/combobox-option.js +1 -1
  114. package/dist/components/combobox.js +1 -1
  115. package/dist/components/dialog/Dialog.cjs.js +4 -4
  116. package/dist/components/dialog/Dialog.cjs.js.map +1 -1
  117. package/dist/components/dialog/Dialog.esm.js +5 -4
  118. package/dist/components/dialog/Dialog.esm.js.map +1 -1
  119. package/dist/components/dialog-content.js +1 -1
  120. package/dist/components/dialog-footer.js +1 -1
  121. package/dist/components/dialog-header.js +1 -1
  122. package/dist/components/dialog-provider/DialogProvider.cjs.js.map +1 -1
  123. package/dist/components/dialog-provider.js +1 -1
  124. package/dist/components/dialog.js +1 -1
  125. package/dist/components/dialogs-root/DialogsRoot.cjs.js.map +1 -1
  126. package/dist/components/dialogs-root.js +1 -1
  127. package/dist/components/guard/Guard.cjs.js.map +1 -1
  128. package/dist/components/guard.js +1 -1
  129. package/dist/components/input/Input.cjs.js +3 -2
  130. package/dist/components/input/Input.cjs.js.map +1 -1
  131. package/dist/components/input/Input.d.ts +3 -0
  132. package/dist/components/input/Input.d.ts.map +1 -1
  133. package/dist/components/input/Input.esm.js +99 -53
  134. package/dist/components/input/Input.esm.js.map +1 -1
  135. package/dist/components/input/Input.styles.cjs.js +1 -1
  136. package/dist/components/input/Input.styles.cjs.js.map +1 -1
  137. package/dist/components/input/Input.styles.esm.js +1 -1
  138. package/dist/components/input/Input.styles.esm.js.map +1 -1
  139. package/dist/components/input.js +1 -1
  140. package/dist/components/login-button/LoginButton.cjs.js.map +1 -1
  141. package/dist/components/login-button.js +1 -1
  142. package/dist/components/login-modal/LoginModal.cjs.js.map +1 -1
  143. package/dist/components/login-modal.js +1 -1
  144. package/dist/components/logout-button/LogoutButton.cjs.js.map +1 -1
  145. package/dist/components/logout-button.js +1 -1
  146. package/dist/components/menu/Menu.cjs.js +1 -1
  147. package/dist/components/menu/Menu.cjs.js.map +1 -1
  148. package/dist/components/menu/Menu.d.ts.map +1 -1
  149. package/dist/components/menu/Menu.esm.js +1 -1
  150. package/dist/components/menu/Menu.esm.js.map +1 -1
  151. package/dist/components/menu/Menu.test.d.ts +1 -0
  152. package/dist/components/menu/Menu.test.d.ts.map +1 -0
  153. package/dist/components/menu-item/MenuItem.cjs.js.map +1 -1
  154. package/dist/components/menu-item.js +1 -1
  155. package/dist/components/menu.js +1 -1
  156. package/dist/components/photo-capture/PhotoCapture.cjs.js.map +1 -1
  157. package/dist/components/photo-capture-modal/PhotoCaptureModal.cjs.js +1 -1
  158. package/dist/components/photo-capture-modal/PhotoCaptureModal.cjs.js.map +1 -1
  159. package/dist/components/photo-capture-modal/PhotoCaptureModal.esm.js +2 -1
  160. package/dist/components/photo-capture-modal/PhotoCaptureModal.esm.js.map +1 -1
  161. package/dist/components/photo-capture-modal.js +1 -1
  162. package/dist/components/photo-capture.js +1 -1
  163. package/dist/components/provider/Provider.cjs.js.map +1 -1
  164. package/dist/components/provider.js +1 -1
  165. package/dist/components/rdf-form/RDFForm.cjs.js +12 -0
  166. package/dist/components/rdf-form/RDFForm.cjs.js.map +1 -0
  167. package/dist/components/rdf-form/RDFForm.d.ts +17 -0
  168. package/dist/components/rdf-form/RDFForm.d.ts.map +1 -0
  169. package/dist/components/rdf-form/RDFForm.esm.js +344 -0
  170. package/dist/components/rdf-form/RDFForm.esm.js.map +1 -0
  171. package/dist/components/rdf-form/RDForm.stories.d.ts +20 -0
  172. package/dist/components/rdf-form/RDForm.stories.d.ts.map +1 -0
  173. package/dist/components/rdf-form/index.cjs.js +2 -0
  174. package/dist/components/rdf-form/index.cjs.js.map +1 -0
  175. package/dist/components/rdf-form/index.d.ts +4 -0
  176. package/dist/components/rdf-form/index.d.ts.map +1 -0
  177. package/dist/components/rdf-form/index.esm.js +7 -0
  178. package/dist/components/rdf-form/index.esm.js.map +1 -0
  179. package/dist/components/rdf-form.js +2 -0
  180. package/dist/components/rdf-input/RDFInput.cjs.js +11 -0
  181. package/dist/components/rdf-input/RDFInput.cjs.js.map +1 -0
  182. package/dist/components/rdf-input/RDFInput.d.ts +24 -0
  183. package/dist/components/rdf-input/RDFInput.d.ts.map +1 -0
  184. package/dist/components/rdf-input/RDFInput.esm.js +349 -0
  185. package/dist/components/rdf-input/RDFInput.esm.js.map +1 -0
  186. package/dist/components/rdf-input/index.cjs.js +2 -0
  187. package/dist/components/rdf-input/index.cjs.js.map +1 -0
  188. package/dist/components/rdf-input/index.d.ts +4 -0
  189. package/dist/components/rdf-input/index.d.ts.map +1 -0
  190. package/dist/components/rdf-input/index.esm.js +7 -0
  191. package/dist/components/rdf-input/index.esm.js.map +1 -0
  192. package/dist/components/rdf-input.js +2 -0
  193. package/dist/components/select/Select.cjs.js.map +1 -1
  194. package/dist/components/select-option/SelectOption.cjs.js.map +1 -1
  195. package/dist/components/select-option.js +1 -1
  196. package/dist/components/select.js +1 -1
  197. package/dist/components/signup-button/SignupButton.cjs.js.map +1 -1
  198. package/dist/components/signup-button.js +1 -1
  199. package/dist/components/solid-emblem.js +1 -1
  200. package/dist/components.js +26 -25
  201. package/dist/index.cjs.js +1 -1
  202. package/dist/index.cjs.js.map +1 -1
  203. package/dist/index.d.ts +1 -0
  204. package/dist/index.d.ts.map +1 -1
  205. package/dist/index.esm.js +3 -2
  206. package/dist/index.esm.js.map +1 -1
  207. package/dist/index.js +8 -7
  208. package/dist/lib/auth/SolidAuth.cjs.js +1 -1
  209. package/dist/lib/auth/SolidAuth.cjs.js.map +1 -1
  210. package/dist/lib/auth/SolidAuth.esm.js +3 -1
  211. package/dist/lib/auth/SolidAuth.esm.js.map +1 -1
  212. package/dist/lib/auth/context.cjs.js.map +1 -1
  213. package/dist/lib/components/dialog-component/DialogComponent.cjs.js.map +1 -1
  214. package/dist/lib/components/form-control-component/FormControlComponent.cjs.js.map +1 -1
  215. package/dist/lib/components/web-component/WebComponent.cjs.js +1 -1
  216. package/dist/lib/components/web-component/WebComponent.cjs.js.map +1 -1
  217. package/dist/lib/components/web-component/WebComponent.esm.js +2 -1
  218. package/dist/lib/components/web-component/WebComponent.esm.js.map +1 -1
  219. package/dist/lib/dialogs/context.cjs.js.map +1 -1
  220. package/dist/lib/file-explorer/context.cjs.js +2 -0
  221. package/dist/lib/file-explorer/context.cjs.js.map +1 -0
  222. package/dist/lib/file-explorer/context.d.ts +22 -0
  223. package/dist/lib/file-explorer/context.d.ts.map +1 -0
  224. package/dist/lib/file-explorer/context.esm.js +7 -0
  225. package/dist/lib/file-explorer/context.esm.js.map +1 -0
  226. package/dist/lib/forms/fieldParams.cjs.js +2 -0
  227. package/dist/lib/forms/fieldParams.cjs.js.map +1 -0
  228. package/dist/lib/forms/fieldParams.d.ts +21 -0
  229. package/dist/lib/forms/fieldParams.d.ts.map +1 -0
  230. package/dist/lib/forms/fieldParams.esm.js +74 -0
  231. package/dist/lib/forms/fieldParams.esm.js.map +1 -0
  232. package/dist/lib/forms/rdfFormsHelper.cjs.js +2 -0
  233. package/dist/lib/forms/rdfFormsHelper.cjs.js.map +1 -0
  234. package/dist/lib/forms/rdfFormsHelper.d.ts +16 -0
  235. package/dist/lib/forms/rdfFormsHelper.d.ts.map +1 -0
  236. package/dist/lib/forms/rdfFormsHelper.esm.js +34 -0
  237. package/dist/lib/forms/rdfFormsHelper.esm.js.map +1 -0
  238. package/dist/lib/forms/store/NoopStore.cjs.js +2 -0
  239. package/dist/lib/forms/store/NoopStore.cjs.js.map +1 -0
  240. package/dist/lib/forms/store/NoopStore.d.ts +6 -0
  241. package/dist/lib/forms/store/NoopStore.d.ts.map +1 -0
  242. package/dist/lib/forms/store/NoopStore.esm.js +10 -0
  243. package/dist/lib/forms/store/NoopStore.esm.js.map +1 -0
  244. package/dist/lib/forms/store/StoreContext.cjs.js +2 -0
  245. package/dist/lib/forms/store/StoreContext.cjs.js.map +1 -0
  246. package/dist/lib/forms/store/StoreContext.d.ts +10 -0
  247. package/dist/lib/forms/store/StoreContext.d.ts.map +1 -0
  248. package/dist/lib/forms/store/StoreContext.esm.js +8 -0
  249. package/dist/lib/forms/store/StoreContext.esm.js.map +1 -0
  250. package/dist/lib/ns.cjs.js.map +1 -1
  251. package/dist/lib/pad.cjs.js +1 -1
  252. package/dist/lib/pad.cjs.js.map +1 -1
  253. package/dist/lib/pad.esm.js +6 -5
  254. package/dist/lib/pad.esm.js.map +1 -1
  255. package/dist/lib/participation.cjs.js +1 -1
  256. package/dist/lib/participation.cjs.js.map +1 -1
  257. package/dist/lib/participation.esm.js +4 -2
  258. package/dist/lib/participation.esm.js.map +1 -1
  259. package/dist/lib/preferences.cjs.js +1 -1
  260. package/dist/lib/preferences.cjs.js.map +1 -1
  261. package/dist/lib/preferences.esm.js +9 -7
  262. package/dist/lib/preferences.esm.js.map +1 -1
  263. package/dist/lib/table.cjs.js +2 -2
  264. package/dist/lib/table.cjs.js.map +1 -1
  265. package/dist/lib/table.esm.js +2 -2
  266. package/dist/lib/table.esm.js.map +1 -1
  267. package/dist/loader.js +8 -7
  268. package/dist/login/login.cjs.js.map +1 -1
  269. package/dist/media/media-capture.esm.js +2 -1
  270. package/dist/media/media-capture.esm.js.map +1 -1
  271. package/dist/solid-ui.js +107 -156
  272. package/dist/solid-ui.min.js +107 -156
  273. package/dist/solid-ui.min.js.map +1 -1
  274. package/dist/storybook/components/StorybookProvider.d.ts +1 -0
  275. package/dist/storybook/components/StorybookProvider.d.ts.map +1 -1
  276. package/dist/storybook/store/StorybookStore.d.ts +6 -0
  277. package/dist/storybook/store/StorybookStore.d.ts.map +1 -0
  278. package/dist/utils/headerFooterHelpers.cjs.js +1 -1
  279. package/dist/utils/headerFooterHelpers.cjs.js.map +1 -1
  280. package/dist/utils/headerFooterHelpers.esm.js +2 -1
  281. package/dist/utils/headerFooterHelpers.esm.js.map +1 -1
  282. package/dist/utils/index.cjs.js +1 -1
  283. package/dist/utils/index.cjs.js.map +1 -1
  284. package/dist/utils/index.esm.js +1 -1
  285. package/dist/utils/index.esm.js.map +1 -1
  286. package/dist/utils/keyHelpers/accessData.cjs.js +1 -1
  287. package/dist/utils/keyHelpers/accessData.cjs.js.map +1 -1
  288. package/dist/utils/keyHelpers/accessData.d.ts +3 -3
  289. package/dist/utils/keyHelpers/accessData.d.ts.map +1 -1
  290. package/dist/utils/keyHelpers/accessData.esm.js +2 -1
  291. package/dist/utils/keyHelpers/accessData.esm.js.map +1 -1
  292. package/dist/utils/keyHelpers/otherHelpers.d.ts +1 -1
  293. package/dist/utils/keyHelpers/otherHelpers.d.ts.map +1 -1
  294. package/dist/widgets/buttons.cjs.js +2 -2
  295. package/dist/widgets/buttons.cjs.js.map +1 -1
  296. package/dist/widgets/buttons.esm.js +10 -5
  297. package/dist/widgets/buttons.esm.js.map +1 -1
  298. package/dist/widgets/dragAndDrop.cjs.js +1 -1
  299. package/dist/widgets/dragAndDrop.cjs.js.map +1 -1
  300. package/dist/widgets/dragAndDrop.esm.js +1 -1
  301. package/dist/widgets/dragAndDrop.esm.js.map +1 -1
  302. package/dist/widgets/forms/autocomplete/autocompleteBar.esm.js +25 -18
  303. package/dist/widgets/forms/autocomplete/autocompleteBar.esm.js.map +1 -1
  304. package/dist/widgets/forms/autocomplete/autocompleteField.cjs.js.map +1 -1
  305. package/dist/widgets/forms/autocomplete/publicData.cjs.js +1 -1
  306. package/dist/widgets/forms/autocomplete/publicData.cjs.js.map +1 -1
  307. package/dist/widgets/forms/autocomplete/publicData.d.ts +3 -3
  308. package/dist/widgets/forms/autocomplete/publicData.d.ts.map +1 -1
  309. package/dist/widgets/forms/autocomplete/publicData.esm.js +6 -4
  310. package/dist/widgets/forms/autocomplete/publicData.esm.js.map +1 -1
  311. package/dist/widgets/forms/basic.cjs.js +1 -1
  312. package/dist/widgets/forms/basic.cjs.js.map +1 -1
  313. package/dist/widgets/forms/basic.esm.js +27 -25
  314. package/dist/widgets/forms/basic.esm.js.map +1 -1
  315. package/dist/widgets/forms/formStyle.cjs.js +1 -1
  316. package/dist/widgets/forms/formStyle.cjs.js.map +1 -1
  317. package/dist/widgets/forms/formStyle.esm.js +4 -4
  318. package/dist/widgets/forms/formStyle.esm.js.map +1 -1
  319. package/dist/widgets/forms.cjs.js +2 -2
  320. package/dist/widgets/forms.cjs.js.map +1 -1
  321. package/dist/widgets/forms.esm.js +10 -8
  322. package/dist/widgets/forms.esm.js.map +1 -1
  323. package/dist/widgets/multiSelect.cjs.js +1 -1
  324. package/dist/widgets/multiSelect.cjs.js.map +1 -1
  325. package/dist/widgets/multiSelect.esm.js +2 -1
  326. package/dist/widgets/multiSelect.esm.js.map +1 -1
  327. package/dist/widgets/peoplePicker.cjs.js.map +1 -1
  328. package/package.json +4 -3
  329. package/dist/chunks/auth-Knq99zZ9.js.map +0 -1
  330. package/dist/chunks/chunk.7MPIABXH-DNcYOuE8.js.map +0 -1
  331. package/dist/chunks/combobox-B5j4LoHY.js.map +0 -1
  332. package/dist/chunks/components-BD458q30.js +0 -758
  333. package/dist/chunks/components-BD458q30.js.map +0 -1
  334. package/dist/chunks/footer-BLSjn5ur.js +0 -144
  335. package/dist/chunks/footer-BLSjn5ur.js.map +0 -1
  336. package/dist/chunks/headerFooterHelpers-CPd5d20q.js +0 -52
  337. package/dist/chunks/headerFooterHelpers-CPd5d20q.js.map +0 -1
  338. package/dist/chunks/input-CCpEhtqA.js.map +0 -1
  339. package/dist/chunks/lit-C4H1jI4q.js +0 -527
  340. package/dist/chunks/lit-C4H1jI4q.js.map +0 -1
  341. package/dist/chunks/menu-DKxtACGA.js.map +0 -1
  342. package/dist/chunks/solid-logic.esm-BrMdCG2_.js.map +0 -1
  343. package/dist/chunks/src-CJICzMIV.js.map +0 -1
  344. package/dist/components/footer/index.cjs.js +0 -1
  345. package/dist/components/footer/index.d.ts +0 -2
  346. package/dist/components/footer/index.d.ts.map +0 -1
  347. package/dist/components/footer/index.esm.js +0 -3
  348. package/dist/components/footer.js +0 -2
  349. package/dist/v2/components/layout/footer/Footer.cjs.js +0 -73
  350. package/dist/v2/components/layout/footer/Footer.cjs.js.map +0 -1
  351. package/dist/v2/components/layout/footer/Footer.d.ts +0 -60
  352. package/dist/v2/components/layout/footer/Footer.d.ts.map +0 -1
  353. package/dist/v2/components/layout/footer/Footer.esm.js +0 -143
  354. package/dist/v2/components/layout/footer/Footer.esm.js.map +0 -1
  355. package/dist/v2/components/layout/footer/Footer.test.d.ts +0 -1
  356. package/dist/v2/components/layout/footer/Footer.test.d.ts.map +0 -1
  357. package/dist/v2/components/layout/footer/index.cjs.js +0 -2
  358. package/dist/v2/components/layout/footer/index.cjs.js.map +0 -1
  359. package/dist/v2/components/layout/footer/index.d.ts +0 -3
  360. package/dist/v2/components/layout/footer/index.d.ts.map +0 -1
  361. package/dist/v2/components/layout/footer/index.esm.js +0 -8
  362. package/dist/v2/components/layout/footer/index.esm.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style-CjYxsW7j.js","names":["TERROR","TWARN","TMESG","TSUCCESS","TINFO","TDEBUG","TALL","LogLevel","_level","_ascending","_dom","document","_window","window","log","str","type","typestr","logArea","getElementById","addendum","createElement","setAttribute","now","Date","innerHTML","getHours","getMinutes","getSeconds","escapeForXML","insertBefore","firstChild","appendChild","console","msg","message","warn","debug","info","error","success","alert","clear","setLevel","level","dumpHTML","body","logAscending","logDescending","replace","setInternals","log","store","ns","rdf","UI","label","thing","initialCap","doCap","slice","toUpperCase","cleanUp","result","i","length","toLowerCase","getWellKnownLabel","value","termType","elements","s","uri","toString","split","map","decodeURIComponent","join","_e","hex","indexOf","String","fromCharCode","parseInt","hash","slash","lastIndexOf","suffix","any","ui","link","vcard","foaf","dct","dc","rss","contact","sym","cal","as","schema","rdfs","log","store","ns","rdf","label","UI","addLoadEvent","AJARImage","ancestor","beep","clearVariableNames","emptyNode","escapeForXML","findPos","genUuid","getAbout","getEyeFocus","getTarget","getTerm","hashColor","include","labelForXML","labelWithOntology","newVariableName","ontologyLabel","predicateLabel","predicateLabelForXML","predParentOf","RDFComparePredicateObject","RDFComparePredicateSubject","shortName","stackString","syncTableToArray","syncTableToArrayReOrdered","nextVariable","audioContext","AudioContext","window","webkitAudioContext","ContextClass","ctx","duration","frequency","type","finishedCallback","osc","createOscillator","value","connect","destination","start","stop","who","uri","hash","x","split","reduce","a","b","charCodeAt","toString","replace","c","r","Math","random","v","table","things","createNewRow","updateExistingRow","foundOne","row","i","children","length","trashMe","g","thing","subject","sameTerm","replacement","parentNode","replaceChild","newRow","appendChild","ele","insertBefore","removeChild","elementMap","toNT","existingRow","before","e","str","stack","lines","toPrint","line","indexOf","charAt","chunks","push","node","nodes","childNodes","len","target","event","srcElement","nodeType","tagName","level","undefined","kb","aa","getAttribute","fromNT","debug","statementTr","st","AJAR_statement","className","predicate","AJAR_inverse","object","nextSibling","document","linkstr","lnk","createElement","setAttribute","func","oldonload","onload","obj","myDocument","ownerDocument","DocBox","documentElement","getBoundingClientRect","box","left","top","element","instantly","isBottom","myWindow","elementPosY","appContext","SolidAppContext","scrollDiff","scroll","totalScroll","scrollY","scrollBy","clientHeight","innerHeight","id","setInterval","scrollAmount","times","clearInterval","src","alt","tt","doc","image","addEventListener","clipboardData","setData","preventDefault","p","slice","namespaces","prefixes","pok","canUse","pp","lastIndexOf","slash","prefixchars","term","s","part","initialCap","t","findTypeURIs","rdfs","inverse","lab","ip","any","owl","self","other","compareTerm","n","previousSibling","nodeName","error","highlightColor","formBorderColor","formHeadingColor","lowProfileLinkColor","formFieldNameBoxWidth","mediaModuleCanvasWidth","mediaModuleCanvasHeight","textInputSize","tabBorderRadius","textInputBackgroundColor","textInputBackgroundColorUneditable","textInputColor","textInputColorPending","defaultErrorBackgroundColor","participationDefaultBackground","basicMaxLength","styleConstants","style","checkboxStyle","checkboxInputStyle","fieldLabelStyle","formSelectStyle","textInputStyle","textInputStyleUneditable","buttonStyle","commentStyle","iconStyle","smallButtonStyle","classIconStyle","confirmPopupStyle","messageBodyStyle","pendingeditModifier","personaBarStyle","searchInputStyle","autocompleteRowStyle","signInAndUpButtonStyle","headerBannerLoginInput","signUpBackground","signInBackground","heading1Style","heading2Style","heading3Style","heading4Style","formHeadingStyle","formTextInput","formGroupStyle","formBorderColor","formFieldLabelStyle","lowProfileLinkColor","formFieldNameBoxStyle","formFieldNameBoxWidth","multilineTextInputStyle","renderAsDivStyle","imageDivStyle","linkDivStyle","aclControlBoxContainer","aclControlBoxHeader","aclControlBoxStatus","aclControlBoxStatusRevealed","aclGroupContent","accessGroupList","accessGroupListItem","defaultsController","defaultsControllerNotice","bigButton","group","group1","group2","group3","group5","group9","group13","trustedAppAddApplicationsTable","trustedAppCancelButton","trustedAppControllerI","temporaryStatusInit","temporaryStatusEnd","headerUserMenuLink","headerUserMenuLinkHover","headerUserMenuTrigger","headerUserMenuTriggerImg","headerUserMenuButton","headerUserMenuButtonHover","headerUserMenuList","headerUserMenuListDisplay","headerUserMenuNavigationMenu","headerUserMenuNavigationMenuNotDisplayed","headerUserMenuListItem","headerUserMenuPhoto","headerBanner","headerBannerLink","headerBannerRightMenu","headerBannerLogin","allChildrenVisible","headerBannerUserMenu","headerBannerHelpMenu","headerBannerIcon","footer","primaryButton","primaryButtonHover","primaryButtonNoBorder","primaryButtonNoBorderHover","secondaryButton","secondaryButtonHover","secondaryButtonNoBorder","secondaryButtonNoBorderHover","controlStyle","mediaModuleCanvasWidth","mediaModuleCanvasHeight","dragEvent","dropEvent","restoreStyle","errorCancelButton","errorMessageBlockStyle","notepadStyle","upstreamStatus","downstreamStatus","baseStyle","headingCore","headingStyle","participantsStyle","participantsBlock","personTableTD","tabsNavElement","tabsRootElement","tabsMainElement","tabContainer","makeNewSlot","ellipsis","setStyle","ele","styleName"],"sources":["../../src/lib/log.ts","../../src/utils/label.ts","../../src/utils/index.js","../../src/lib/styleConstants.js","../../src/lib/style.js"],"sourcesContent":["// /////////////////////// Logging\n//\n// bitmask levels\n// const TNONE = 0\n/** @internal */\nconst TERROR = 1\n/** @internal */\nconst TWARN = 2\n/** @internal */\nconst TMESG = 4\n/** @internal */\nconst TSUCCESS = 8\n/** @internal */\nconst TINFO = 16\n/** @internal */\nconst TDEBUG = 32\n/** @internal */\nconst TALL = 63\n\n/** @internal */\nexport enum LogLevel {\n Error = TERROR,\n Warning = TWARN,\n Message = TMESG,\n Success = TSUCCESS,\n Info = TINFO,\n Debug = TDEBUG,\n All = TALL\n}\n\n/** @internal */\nlet _level: number = TERROR + TWARN + TMESG\n/** @internal */\nlet _ascending: boolean = false\n/** @internal */\nlet _dom: HTMLDocument = document // must be able to override for tests\n/** @internal */\nlet _window: Window = window // must be able to override for tests\n\n/** @internal */\nfunction log (str: string, type: number = TMESG, typestr: string = 'mesg') {\n if (!(_level & type)) return // bitmask\n\n if (typeof _dom !== 'undefined') {\n const logArea = _dom.getElementById('status')\n if (!logArea) return\n\n const addendum = _dom.createElement('span')\n addendum.setAttribute('class', typestr)\n const now = new Date()\n addendum.innerHTML = `${now.getHours()}:${now.getMinutes()}:${now.getSeconds()} [${typestr}] ${escapeForXML(str)}<br/>`\n if (_ascending) {\n logArea.insertBefore(addendum, logArea.firstChild)\n } else {\n logArea.appendChild(addendum)\n }\n } else if (typeof console !== 'undefined') {\n console.log(str)\n }\n}\n\n/**\n * Adds a message to the element with id \"status\". The messages are prepended with\n * time and type of message, in this case [mesg].\n */\nexport function msg (message: string) {\n log(message)\n}\n\n/**\n * Adds a warning message to the element with id \"status\". The messages are\n * prepended with time and type of message, in this case [warn].\n */\nexport function warn (message: string): void {\n log(message, TWARN, 'warn')\n}\n\n/**\n * Adds a debugging message to the element with id \"status\". The messages are\n * prepended with time and type of message, in this case [dbug].\n */\nexport function debug (message: string): void {\n log(message, TDEBUG, 'dbug')\n}\n\n/**\n * Adds a info message to the element with id \"status\". The messages are\n * prepended with time and type of message, in this case [info].\n */\nexport function info (message: string): void {\n log(message, TINFO, 'info')\n}\n\n/**\n * Adds a error to the element with id \"status\". The messages are\n * prepended with time and type of message, in this case [eror].\n */\nexport function error (message: string): void {\n log(message, TERROR, 'eror')\n}\n\n/**\n * Adds a success message to the element with id \"status\". The messages are\n * prepended with time and type of message, in this case [good].\n */\nexport function success (message: string): void {\n log(message, TSUCCESS, 'good')\n}\n\n/**\n * Uses the global alert to send an alert. If global alert is not available, it\n * will output the message using the method [[warning]]s.\n */\nexport function alert (message: string): void {\n if (_window && typeof _window.alert !== 'undefined') {\n _window.alert(message)\n } else {\n warn(message)\n }\n}\n\n/**\n * Will clear the content of the element with id \"status\".\n */\nexport function clear (): void {\n const logArea = _dom?.getElementById('status')\n if (!logArea) return\n logArea.innerHTML = ''\n}\n\n/**\n * Lets you configure which types of messages will be shown. The module uses\n * [bitmask](https://en.wikipedia.org/wiki/Mask_(computing)) to filter which\n * types of messages should be shown. E.g. if you only want warning messages\n * to be shown, pass 2 to the function, if you want warning and success to be\n * shown, pass 10 (2+8). By passing the sum of all, 63, you'll show all\n * types of messages.\n *\n * - Error: 1\n * - Warning: 2\n * - Message: 4\n * - Success: 8\n * - Info: 16\n * - Debug: 32\n */\nexport function setLevel (level: number): void {\n _level = TALL\n debug('Log level is now ' + level)\n _level = level\n}\n\n/**\n * Will dump the current HTML using the [[debug]] method.\n */\nexport function dumpHTML (): void {\n if (!_dom) return\n const level = _level\n _level = TALL\n debug(_dom?.body?.innerHTML || '')\n _level = level\n}\n\n/**\n * Will start prepending messages the list of log messages.\n */\nexport function logAscending () {\n _ascending = true\n}\n\n/**\n * Will start appending messages the list of log messages. (This is default\n * behavior.)\n */\nexport function logDescending () {\n _ascending = false\n}\n\n/** @internal */\nexport function escapeForXML (str: string): string {\n // can be replaced with function utils module when migrating\n return str\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n}\n\n/** @internal */\nexport function setInternals (window, document) {\n _window = window\n _dom = document\n}\n","import * as log from '../lib/log'\nimport { store } from 'solid-logic'\nimport ns from '../lib/ns'\nimport * as rdf from 'rdflib' // pull in first avoid cross-refs\n\nconst UI = { log, ns, rdf }\n\n// This ubiquitous function returns the best label for a thing\n//\n// The hacks in this code make a major difference to the usability\nexport function label (thing, initialCap = false): string {\n function doCap (label: string) {\n if (initialCap) {\n return label.slice(0, 1).toUpperCase() + label.slice(1)\n }\n return label\n }\n function cleanUp (label: string) {\n let result = ''\n if (label.slice(-1) === '/') label = label.slice(0, -1) // chop trailing slash\n for (let i = 0; i < label.length; i++) {\n if (label[i] === '_' || label[i] === '-') {\n result += ' '\n continue\n }\n result += label[i]\n if (\n i + 1 < label.length &&\n label[i].toUpperCase() !== label[i] &&\n label[i + 1].toLowerCase() !== label[i + 1]\n ) {\n result += ' '\n }\n }\n if (result.slice(0, 4) === 'has ') result = result.slice(4)\n return doCap(result)\n }\n\n const label = getWellKnownLabel(thing)\n\n if (label) {\n return doCap(label.value)\n }\n\n // Default to label just generated from the URI\n\n if (thing.termType === 'BlankNode') {\n return '...'\n }\n if (thing.termType === 'Collection') {\n return '(' + thing.elements.length + ')'\n }\n let s = thing.uri\n if (typeof s === 'undefined') return thing.toString() // can't be a symbol\n // s = decodeURI(s) // This can crash is random valid @ signs are presentation\n // The idea was to clean up eg URIs encoded in query strings\n // Also encoded character in what was filenames like @ [] {}\n try {\n s = s\n .split('/')\n .map(decodeURIComponent)\n .join('/') // If it is properly encoded\n } catch (_e) {\n // try individual decoding of ASCII code points\n for (let i = s.length - 3; i > 0; i--) {\n const hex = '0123456789abcefABCDEF' // The while upacks multiple layers of encoding\n while (\n s[i] === '%' &&\n hex.indexOf(s[i + 1]) >= 0 &&\n hex.indexOf(s[i + 2]) >= 0\n ) {\n s =\n s.slice(0, i) +\n String.fromCharCode(parseInt(s.slice(i + 1, i + 3), 16)) +\n s.slice(i + 3)\n }\n }\n }\n\n s = slice(s, '/profile/card#me')\n s = slice(s, '#this')\n s = slice(s, '#me')\n\n const hash = s.indexOf('#')\n if (hash >= 0) return cleanUp(s.slice(hash + 1))\n\n // Eh? Why not do this? e.g. dc:title needs it only trim URIs, not rdfs:labels\n const slash = s.lastIndexOf('/', s.length - 2) // (len-2) excludes trailing slash\n if (slash >= 0 && slash < thing.uri.length) return cleanUp(s.slice(slash + 1))\n\n return doCap(decodeURIComponent(thing.uri))\n}\n\nfunction slice (s: string, suffix: string) {\n const length = suffix.length * -1\n if (s.slice(length) === suffix) {\n return s.slice(0, length)\n }\n return s\n}\n\n// Hard coded known label predicates\n// @@ TBD: Add subproperties of rdfs:label\nfunction getWellKnownLabel (thing) {\n return store.any(thing, UI.ns.ui('label')) || // Prioritize ui:label\n store.any(thing, UI.ns.link('message')) ||\n store.any(thing, UI.ns.vcard('fn')) ||\n store.any(thing, UI.ns.foaf('name')) ||\n store.any(thing, UI.ns.dct('title')) ||\n store.any(thing, UI.ns.dc('title')) ||\n store.any(thing, UI.ns.rss('title')) ||\n store.any(thing, UI.ns.contact('fullName')) ||\n store.any(thing, store.sym('http://www.w3.org/2001/04/roadmap/org#name')) ||\n store.any(thing, UI.ns.cal('summary')) ||\n store.any(thing, UI.ns.foaf('nick')) ||\n store.any(thing, UI.ns.as('name')) ||\n store.any(thing, UI.ns.schema('name')) ||\n store.any(thing, UI.ns.rdfs('label')) ||\n store.any(thing, store.sym('http://www.w3.org/2004/02/skos/core#prefLabel'))\n}\n","// Solid-UI general Utilities\n// ==========================\n//\n// This must load AFTER the rdflib.js and log-ext.js (or log.js).\n//\nimport * as log from '../lib/log'\nimport { store } from 'solid-logic'\nimport ns from '../lib/ns'\nimport * as rdf from 'rdflib' // pull in first avoid cross-refs\nimport { label } from './label'\n\nconst UI = { log, ns, rdf }\n\nexport {\n addLoadEvent, // not used anywhere\n AJARImage,\n ancestor,\n beep,\n clearVariableNames,\n emptyNode,\n escapeForXML,\n findPos,\n genUuid,\n getAbout,\n getEyeFocus,\n getTarget,\n getTerm,\n hashColor,\n include,\n label,\n labelForXML,\n labelWithOntology,\n newVariableName,\n ontologyLabel,\n predicateLabel,\n predicateLabelForXML,\n predParentOf,\n RDFComparePredicateObject,\n RDFComparePredicateSubject,\n shortName,\n stackString,\n syncTableToArray,\n syncTableToArrayReOrdered\n}\n\nlet nextVariable = 0\n\nfunction newVariableName () {\n return 'v' + nextVariable++\n}\n\nfunction clearVariableNames () {\n nextVariable = 0\n}\n\n// http://stackoverflow.com/questions/879152/how-do-i-make-javascript-beep\n// http://www.tsheffler.com/blog/2013/05/14/audiocontext-noteonnoteoff-and-time-units/\n\nlet audioContext\n\nif (typeof AudioContext !== 'undefined') {\n audioContext = AudioContext\n} else if (typeof window !== 'undefined') {\n audioContext = window.AudioContext || window.webkitAudioContext\n}\n\nfunction beep () {\n if (!audioContext) {\n return\n } // Safari 2015\n\n const ContextClass = audioContext\n const ctx = new ContextClass()\n\n return function (duration, frequency, type, finishedCallback) {\n duration = +(duration || 0.3)\n\n // Only 0-4 are valid types.\n type = type || 'sine' // sine, square, sawtooth, triangle\n\n if (typeof finishedCallback !== 'function') {\n finishedCallback = function () {}\n }\n\n const osc = ctx.createOscillator()\n\n osc.type = type\n osc.frequency.value = frequency || 256\n\n osc.connect(ctx.destination)\n osc.start(0)\n osc.stop(duration)\n }\n}\n\n// Make pseudorandom color from a uri\n// NOT USED ANYWHERE\nfunction hashColor (who) {\n who = who.uri || who\n const hash = function (x) {\n return x.split('').reduce(function (a, b) {\n a = (a << 5) - a + b.charCodeAt(0)\n return a & a\n }, 0)\n }\n return '#' + ((hash(who) & 0xffffff) | 0xc0c0c0).toString(16) // c0c0c0 or 808080 forces pale\n}\n\nfunction genUuid () {\n // http://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n const r = (Math.random() * 16) | 0\n const v = c === 'x' ? r : (r & 0x3) | 0x8\n return v.toString(16)\n })\n}\n\n/** Sync a DOM table with an array of things\n *\n * @param {DomElement} table - will have a tr for each thing\n * @param {Array<NamedNode>} things - ORDERED array of NamedNode objects\n * @param {function({NamedNode})} createNewRow(thing) returns a TR table row for a new thing\n * @param {function(DomElement, NamedNode)} updateExistingRow(row, thing) optional hook for refreshing matched rows\n *\n * Tolerates out of order elements but puts new ones in order.\n * Can be used for any element type; does not have to be a table and tr.\n */\nfunction syncTableToArray (table, things, createNewRow, updateExistingRow) {\n let foundOne\n let row\n let i\n\n for (i = 0; i < table.children.length; i++) {\n row = table.children[i]\n row.trashMe = true\n }\n\n for (let g = 0; g < things.length; g++) {\n const thing = things[g]\n foundOne = false\n\n for (i = 0; i < table.children.length; i++) {\n row = table.children[i]\n if (row.subject && row.subject.sameTerm(thing)) {\n if (updateExistingRow) {\n const replacement = updateExistingRow(row, thing)\n if (replacement && replacement !== row) {\n row.parentNode.replaceChild(replacement, row)\n replacement.subject = thing\n row = replacement\n }\n }\n row.trashMe = false\n foundOne = true\n break\n }\n }\n if (!foundOne) {\n const newRow = createNewRow(thing)\n // Insert new row in position g in the table to match array\n if (g >= table.children.length) {\n table.appendChild(newRow)\n } else {\n const ele = table.children[g]\n table.insertBefore(newRow, ele)\n }\n newRow.subject = thing\n } // if not foundOne\n } // loop g\n\n for (i = 0; i < table.children.length; i++) {\n row = table.children[i]\n if (row.trashMe) {\n table.removeChild(row)\n }\n }\n} // syncTableToArray\n\n/** Sync a DOM table with an array of things\n *\n * @param {DomElement} table - will have a tr for each thing\n * @param {Array<NamedNode>} things - ORDERED array of UNIQUE NamedNode objects. No duplicates\n * @param {function({NamedNode})} createNewRow(thing) returns a rendering of a new thing\n *\n * Ensures order matches exacly. We will re-rder existing elements if necessary\n * Can be used for any element type; does not have to be a table and tr.\n * Any RDF node value can only appear ONCE in the array\n */\nfunction syncTableToArrayReOrdered (table, things, createNewRow) {\n const elementMap = {}\n\n for (let i = 0; i < table.children.length; i++) {\n const row = table.children[i]\n elementMap[row.subject.toNT()] = row // More sophisticaed would be to have a bag of duplicates\n }\n\n for (let g = 0; g < things.length; g++) {\n const thing = things[g]\n if (g >= table.children.length) { // table needs extending\n const newRow = createNewRow(thing)\n newRow.subject = thing\n table.appendChild(newRow)\n } else {\n const row = table.children[g]\n if (row.subject.sameTerm(thing)) {\n // ...\n } else {\n const existingRow = elementMap[thing.toNT()]\n if (existingRow) {\n table.removeChild(existingRow)\n table.insertBefore(existingRow, row) // Insert existing row in place of this one\n } else {\n const newRow = createNewRow(thing)\n row.before(newRow) // Insert existing row in place of this one\n newRow.subject = thing\n }\n }\n }\n } // loop g\n // Lop off any we don't need any more:\n while (table.children.length > things.length) {\n table.removeChild(table.children[table.children.length - 1])\n }\n} // syncTableToArrayReOrdered\n\n/* Error stack to string for better diagnotsics\n **\n ** See http://snippets.dzone.com/posts/show/6632\n */\nfunction stackString (e) {\n let str = '' + e + '\\n'\n let i\n if (!e.stack) {\n return str + 'No stack available.\\n'\n }\n const lines = e.stack.toString().split('\\n')\n const toPrint = []\n for (i = 0; i < lines.length; i++) {\n let line = lines[i]\n if (line.indexOf('ecmaunit.js') > -1) {\n // remove useless bit of traceback\n break\n }\n if (line.charAt(0) === '(') {\n line = 'function' + line\n }\n const chunks = line.split('@')\n toPrint.push(chunks)\n }\n // toPrint.reverse(); No - I prefer the latest at the top by the error message -tbl\n\n for (i = 0; i < toPrint.length; i++) {\n str += ' ' + toPrint[i][1] + '\\n ' + toPrint[i][0]\n }\n return str\n}\n\nfunction emptyNode (node) {\n const nodes = node.childNodes\n const len = nodes.length\n for (let i = len - 1; i >= 0; i--) node.removeChild(nodes[i])\n return node\n}\n\nfunction getTarget (e) {\n let target\n e = e || window.event\n if (e.target) target = e.target\n else if (e.srcElement) target = e.srcElement\n if (target.nodeType === 3) {\n // defeat Safari bug [sic]\n target = target.parentNode\n }\n // UI.log.debug(\"Click on: \" + target.tagName)\n return target\n}\n\nfunction ancestor (target, tagName) {\n let level\n for (level = target; level; level = level.parentNode) {\n // UI.log.debug(\"looking for \"+tagName+\" Level: \"+level+\" \"+level.tagName)\n try {\n if (level.tagName === tagName) return level\n } catch (e) {\n // can hit \"TypeError: can't access dead object\" in ffox\n return undefined\n }\n }\n return undefined\n}\n\nfunction getAbout (kb, target) {\n let level, aa\n for (\n level = target;\n level && level.nodeType === 1;\n level = level.parentNode\n ) {\n // UI.log.debug(\"Level \"+level + ' '+level.nodeType + ': '+level.tagName)\n aa = level.getAttribute('about')\n if (aa) {\n // UI.log.debug(\"kb.fromNT(aa) = \" + kb.fromNT(aa))\n return kb.fromNT(aa)\n // } else {\n // if (level.tagName=='TR') return undefined//this is to prevent literals passing through\n }\n }\n UI.log.debug('getAbout: No about found')\n return undefined\n}\n\nfunction getTerm (target) {\n const statementTr = target.parentNode\n const st = statementTr ? statementTr.AJAR_statement : undefined\n\n const className = st ? target.className : '' // if no st then it's necessary to use getAbout\n switch (className) {\n case 'pred':\n case 'pred selected':\n return st.predicate\n case 'obj':\n case 'obj selected':\n if (!statementTr.AJAR_inverse) {\n return st.object\n } else {\n return st.subject\n }\n case '':\n case 'selected': // header TD\n return getAbout(store, target) // kb to be changed\n case 'undetermined selected':\n return target.nextSibling\n ? st.predicate\n : !statementTr.AJAR_inverse\n ? st.object\n : st.subject\n }\n}\n\nfunction include (document, linkstr) {\n const lnk = document.createElement('script')\n lnk.setAttribute('type', 'text/javascript')\n lnk.setAttribute('src', linkstr)\n // TODO:This needs to be fixed or no longer used.\n // document.getElementsByTagName('head')[0].appendChild(lnk)\n return lnk\n}\n\nfunction addLoadEvent (func) {\n const oldonload = window.onload\n if (typeof window.onload !== 'function') {\n window.onload = func\n } else {\n window.onload = function () {\n oldonload()\n func()\n }\n }\n} // addLoadEvent\n\n// Find the position of an object relative to the window\nfunction findPos (obj) {\n // C&P from http://www.quirksmode.org/js/findpos.html\n const myDocument = obj.ownerDocument\n const DocBox = myDocument.documentElement.getBoundingClientRect()\n const box = obj.getBoundingClientRect()\n return [box.left - DocBox.left, box.top - DocBox.top]\n}\n\nfunction getEyeFocus (element, instantly, isBottom, myWindow) {\n if (!myWindow) myWindow = window\n const elementPosY = findPos(element)[1]\n const appContext = window.SolidAppContext || {}\n const scrollDiff = (appContext && appContext.scroll) || 52 // 52 = magic number for web-based version\n const totalScroll = elementPosY - scrollDiff - myWindow.scrollY\n\n if (instantly) {\n if (isBottom) {\n myWindow.scrollBy(\n 0,\n elementPosY +\n element.clientHeight -\n (myWindow.scrollY + myWindow.innerHeight)\n )\n return\n }\n myWindow.scrollBy(0, totalScroll)\n return\n }\n const id = myWindow.setInterval(scrollAmount, 50)\n let times = 0\n function scrollAmount () {\n myWindow.scrollBy(0, totalScroll / 10)\n times++\n if (times === 10) {\n myWindow.clearInterval(id)\n }\n }\n}\n\nfunction AJARImage (src, alt, tt, doc) {\n if (!doc) {\n doc = document\n }\n const image = doc.createElement('img')\n image.setAttribute('src', src)\n image.addEventListener('copy', function (e) {\n e.clipboardData.setData('text/plain', '')\n e.clipboardData.setData('text/html', '')\n e.preventDefault() // We want no title data to be written to the clipboard\n })\n // if (typeof alt != 'undefined') // Messes up cut-and-paste of text\n // image.setAttribute('alt', alt)\n if (typeof tt !== 'undefined') {\n image.setAttribute('title', tt)\n }\n return image\n}\n\n// Make short name for ontology\n\nfunction shortName (uri) {\n let p = uri\n if ('#/'.indexOf(p[p.length - 1]) >= 0) p = p.slice(0, -1)\n const namespaces = []\n for (const ns in this.prefixes) {\n namespaces[this.prefixes[ns]] = ns // reverse index\n }\n let pok\n const canUse = function canUse (pp) {\n // if (!__Serializer.prototype.validPrefix.test(pp)) return false; // bad format\n if (pp === 'ns') return false // boring\n // if (pp in this.namespaces) return false; // already used\n // this.prefixes[uri] = pp;\n // this.namespaces[pp] = uri;\n pok = pp\n return true\n }\n\n let i\n const hash = p.lastIndexOf('#')\n if (hash >= 0) p = p.slice(hash - 1) // lop off localid\n // eslint-disable-next-line no-unreachable-loop\n for (;;) {\n const slash = p.lastIndexOf('/')\n if (slash >= 0) p = p.slice(slash + 1)\n i = 0\n while (i < p.length) {\n if (this.prefixchars.indexOf(p[i])) i++\n else break\n }\n p = p.slice(0, i)\n if (p.length < 6 && canUse(p)) return pok // exact i sbest\n if (canUse(p.slice(0, 3))) return pok\n if (canUse(p.slice(0, 2))) return pok\n if (canUse(p.slice(0, 4))) return pok\n if (canUse(p.slice(0, 1))) return pok\n if (canUse(p.slice(0, 5))) return pok\n for (i = 0; ; i++) if (canUse(p.slice(0, 3) + i)) return pok\n }\n}\n\n// Short name for an ontology\nfunction ontologyLabel (term) {\n if (term.uri === undefined) return '??'\n let s = term.uri\n const namespaces = []\n let i = s.lastIndexOf('#')\n let part\n if (i >= 0) {\n s = s.slice(0, i + 1)\n } else {\n i = s.lastIndexOf('/')\n if (i >= 0) {\n s = s.slice(0, i + 1)\n } else {\n return term.uri + '?!' // strange should have # or /\n }\n }\n for (const ns in UI.ns) {\n namespaces[UI.ns[ns]] = ns // reverse index\n }\n try {\n return namespaces[s]\n } catch (e) {}\n\n s = s.slice(0, -1) // Chop off delimiter ... now have just\n\n while (s) {\n i = s.lastIndexOf('/')\n if (i >= 0) {\n part = s.slice(i + 1)\n s = s.slice(0, i)\n if (part !== 'ns' && '0123456789'.indexOf(part[0]) < 0) {\n return part\n }\n } else {\n return term.uri + '!?' // strange should have a nice part\n }\n }\n}\n\nfunction labelWithOntology (x, initialCap) {\n const t = store.findTypeURIs(x)\n if (t[UI.ns.rdf('Predicate').uri] || t[UI.ns.rdfs('Class').uri]) {\n return label(x, initialCap) + ' (' + ontologyLabel(x) + ')'\n }\n return label(x, initialCap)\n}\n\nfunction escapeForXML (str) {\n return str.replace(/&/g, '&amp;').replace(/</g, '&lt;')\n}\n\n// As above but escaped for XML and chopped of contains a slash\nfunction labelForXML (x) {\n return escapeForXML(label(x))\n}\n\nfunction predicateLabelForXML (p, inverse) {\n return escapeForXML(predicateLabel(p, inverse))\n}\n// As above but for predicate, possibly inverse\nfunction predicateLabel (p, inverse) {\n const lab = label(p)\n if (inverse) {\n // If we know an inverse predicate, use its label\n const ip = store.any(p, UI.ns.owl('inverseOf')) || store.any(undefined, UI.ns.owl('inverseOf'), p)\n if (ip) return label(ip)\n if (lab === 'type') return '...' // Not \"is type of\"\n return 'is ' + lab + ' of'\n }\n return lab\n}\n\n// Not a method. For use in sorts\nfunction RDFComparePredicateObject (self, other) {\n const x = self.predicate.compareTerm(other.predicate)\n if (x !== 0) return x\n return self.object.compareTerm(other.object)\n}\n\nfunction RDFComparePredicateSubject (self, other) {\n const x = self.predicate.compareTerm(other.predicate)\n if (x !== 0) return x\n return self.subject.compareTerm(other.subject)\n}\n// ends\n\nfunction predParentOf (node) {\n let n = node\n while (true) {\n if (n.getAttribute('predTR')) {\n return n\n } else if (n.previousSibling && n.previousSibling.nodeName === 'TR') {\n n = n.previousSibling\n } else {\n UI.log.error('Could not find predParent')\n return node\n }\n }\n}\n\n// makeQueryRow moved to outline mode\n","export default {\n highlightColor: '#7C4DFF', // Solid lavender https://design.inrupt.com/atomic-core/?cat=Core\n\n formBorderColor: '#888888', // Mid-grey\n formHeadingColor: '#888888', // originally was brown; now grey\n lowProfileLinkColor: '#3B5998', // Grey-blue, e.g., for field labels linking to ontology\n formFieldNameBoxWidth: '8em', // The fixed amount to get form fields to line up\n // We put in the latter when switching away from using tables. However, getting\n // alignment between fields in different groups is a hard problem.\n\n mediaModuleCanvasWidth: '640',\n mediaModuleCanvasHeight: '480',\n\n textInputSize: 20, // Rough default text input size, in characters\n tabBorderRadius: '0.2em',\n\n textInputBackgroundColor: '#eef',\n textInputBackgroundColorUneditable: '#fff',\n textInputColor: '#000',\n textInputColorPending: '#888',\n\n defaultErrorBackgroundColor: '#fee',\n\n participationDefaultBackground: 'white',\n\n basicMaxLength: '4096'\n}\n","// Common readable consistent stylesheet\n// to avoid using style sheets which are document-global\n// and make programmable style toggling with selection, drag over, etc easier\n// These must all end with semicolon so they can be appended to.\n\nimport styleConstants from './styleConstants'\n\nexport const style = { // styleModule\n\n checkboxStyle: 'color: black; font-size: 100%; padding-left: 0.5 em; padding-right: 0.5 em;',\n checkboxInputStyle: 'font-size: 150%; height: 1.2em; width: 1.2em; background-color: #eef; border-radius:0.2em; margin: 0.1em;',\n\n fieldLabelStyle: 'color: #3B5998; text-decoration: none;',\n formSelectStyle:\n 'background-color: #eef; padding: 0.5em; border: .05em solid #88c; border-radius:0.2em; font-size: 100%; margin:0.4em;',\n textInputStyle:\n 'background-color: #eef; padding: 0.5em; border: .05em solid #88c; border-radius:0.2em; font-size: 100%; margin:0.4em;',\n textInputStyleUneditable: // Color difference only\n 'background-color: white; padding: 0.5em; border: .05em solid white; border-radius:0.2em; font-size: 100%; margin:0.4em;',\n buttonStyle:\n 'background-color: #fff; padding: 0.7em; border: .01em solid white; border-radius:0.2em; font-size: 100%; margin: 0.3em;', // 'background-color: #eef;\n commentStyle: 'padding: 0.7em; border: none; font-size: 100%; white-space: pre-wrap;',\n iconStyle: 'width: 3em; height: 3em; margin: 0.1em; border-radius: 1em;',\n smallButtonStyle: 'margin: 0.2em; width: 1em; height:1em;',\n classIconStyle: 'width: 3em; height: 3em; margin: 0.1em; border-radius: 0.2em; border: 0.1em solid green; padding: 0.2em; background-color: #efe;', // combine with buttonStyle\n confirmPopupStyle: 'padding: 0.7em; border-radius: 0.2em; border: 0.1em solid orange; background-color: white; box-shadow: 0.5em 0.9em #888;',\n messageBodyStyle:\n 'white-space: pre-wrap; width: 99%; font-size:100%; border: 0.07em solid #eee; border-radius:0.2em; padding: .3em 0.5em; margin: 0.1em;',\n pendingeditModifier: 'color: #bbb;',\n\n // Contacts\n personaBarStyle: 'width: 100%; height: 4em; background-color: #eee; vertical-align: middle;',\n searchInputStyle: 'border: 0.1em solid #444; border-radius: 0.2em; width: 100%; font-size: 100%; padding: 0.1em 0.6em; margin 0.2em;',\n autocompleteRowStyle: 'border: 0.2em solid straw;',\n\n // Login buttons\n signInAndUpButtonStyle: 'padding: 1em; border-radius:0.2em; font-size: 100%;', // was 0.5em radius\n headerBannerLoginInput: 'margin: 0.75em 0 0.75em 0.5em !important; padding: 0.5em !important;',\n signUpBackground: 'background-color: #eef;',\n signInBackground: 'background-color: #efe;',\n\n // Forms\n heading1Style: 'font-size: 180%; font-weight: bold; color: #888888; padding: 0.5em; margin: 0.7em 0.0m;', // originally was brown; now grey\n heading2Style: 'font-size: 130%; font-weight: bold; color: #888888; padding: 0.4em; margin: 0.7em 0.0em;', // originally was brown; now grey\n heading3Style: 'font-size: 120%; font-weight: bold; color: #888888; padding: 0.3em; margin: 0.7em 0.0em;', // For example, in large forms or before a small form\n heading4Style: 'font-size: 110%; font-weight: bold; color: #888888; padding: 0.2em; margin: 0.7em 0.0em;', // Lowest level used by default in small things\n\n formHeadingStyle: 'font-size: 110%; font-weight: bold; color: #888888; padding: 0.2em; margin: 0.7em 0.0em;', // originally was brown; now grey\n formTextInput: 'font-size: 100%; margin: 0.1em; padding: 0.1em;', // originally used this\n formGroupStyle: [`padding-left: 0em; border: 0.0em solid ${styleConstants.formBorderColor}; border-radius: 0.2em;`, // weight 0\n `padding-left: 2em; border: 0.05em solid ${styleConstants.formBorderColor}; border-radius: 0.2em;`,\n `padding-left: 2em; border: 0.1em solid ${styleConstants.formBorderColor}; border-radius: 0.2em;`,\n `padding-left: 2em; border: 0.2em solid ${styleConstants.formBorderColor}; border-radius: 0.2em;` // @@ pink\n ],\n\n formFieldLabelStyle: `color: ${styleConstants.lowProfileLinkColor}; text-decoration: none;`,\n formFieldNameBoxStyle: `padding: 0.3em; vertical-align: middle; width:${styleConstants.formFieldNameBoxWidth};`,\n multilineTextInputStyle: 'font-size:100%; white-space: pre-wrap; background-color: #eef;' +\n ' border: 0.07em solid gray; padding: 1em 0.5em; margin: 1em 1em;',\n\n // Buttons\n renderAsDivStyle: 'display: flex; align-items: center; justify-content: space-between; height: 2.5em; padding: 1em;',\n imageDivStyle: 'width:2.5em; padding:0.5em; height: 2.5em;',\n linkDivStyle: 'width:2em; padding:0.5em; height: 4em;',\n\n // ACL\n aclControlBoxContainer: 'margin: 1em;',\n aclControlBoxHeader: 'font-size: 120%; margin: 0 0 1rem;',\n aclControlBoxStatus: 'display: none; margin: 1rem 0;',\n aclControlBoxStatusRevealed: 'display: block;',\n aclGroupContent: 'maxWidth: 650;',\n accessGroupList: 'display: grid; grid-template-columns: 1fr; margin: 1em; width: 100%;',\n accessGroupListItem: 'display: grid; grid-template-columns: 100px auto 30%;',\n defaultsController: 'display: flex;',\n defaultsControllerNotice: 'color: #888; flexGrow: 1; fontSize: 80%;',\n bigButton: 'background-color: white; color: black; text-wrap: pretty; border: 0.1em solid #888; border-radius: 0.3em; max-width: 50%; padding-bottom: 1em; padding-top: 1em;',\n group: 'color: #888;',\n group1: 'color: green;',\n group2: 'color: #cc0;',\n group3: 'color: orange;',\n group5: 'color: red;',\n group9: 'color: blue;',\n group13: 'color: purple;',\n\n trustedAppAddApplicationsTable: 'background-color: #eee;',\n trustedAppCancelButton: 'float: right;',\n trustedAppControllerI: 'border-color: orange; border-radius: 1em; border-width: 0.1em;',\n temporaryStatusInit: 'background: green;',\n temporaryStatusEnd: 'background: transparent; transition: background 5s linear;',\n\n // header\n headerUserMenuLink: 'background: none; border: 0; color: black; cursor: pointer; display: block; font-family: Arial; font-size: 1em; text-align: left; padding: 1em; width: 100%; text-decoration: none;',\n headerUserMenuLinkHover: 'background: none; border: 0; color: black; cursor: pointer; display: block; font-family: Arial; font-size: 1em; text-align: left; padding: 1em; width: 100%; text-decoration: none; background-image: linear-gradient(to right, #7C4DFF 0%, #18A9E6 50%, #01C9EA 100%);',\n headerUserMenuTrigger: 'background: none; border: 0; cursor: pointer; width: 60px; height: 60px;',\n headerUserMenuTriggerImg: 'border-radius: 50%; height: 56px; width: 28px !important;',\n headerUserMenuButton: 'background: none; border: 0; color: black; cursor: pointer; display: block; font-family: Arial; font-size: 1em; text-align: left; padding: 1em; width: 100%;',\n headerUserMenuButtonHover: 'background: none; border: 0; color: black; cursor: pointer; display: block; font-family: Arial; font-size: 1em; text-align: left; padding: 1em; width: 100%; background-image: linear-gradient(to right, #7C4DFF 0%, #18A9E6 50%, #01C9EA 100%);',\n headerUserMenuList: 'list-style: none; margin: 0; padding: 0;',\n headerUserMenuListDisplay: 'list-style: none; margin: 0; padding: 0; display:true;',\n headerUserMenuNavigationMenu: 'background: white; border: solid 1px #000000; border-right: 0; position: absolute; right: 0; top: 60px; width: 200px; z-index: 1; display: true;',\n headerUserMenuNavigationMenuNotDisplayed: 'background: white; border: solid 1px #000000; border-right: 0; position: absolute; right: 0; top: 60px; width: 200px; z-index: 1; display: none;',\n headerUserMenuListItem: 'border-bottom: solid 1px #000000;',\n headerUserMenuPhoto: 'border-radius: 50%; background-position: center; background-repeat: no-repeat; background-size: cover; height: 50px; width: 50px;',\n headerBanner: 'box-shadow: 0px 1px 4px #000000; display: flex; justify-content: space-between; padding: 0 1.5em; margin-bottom: 4px;',\n headerBannerLink: 'display: block;',\n headerBannerRightMenu: 'display: flex;',\n headerBannerLogin: 'margin-left: auto;',\n allChildrenVisible: 'display:true;',\n headerBannerUserMenu: 'border-left: solid 1px #000000; margin-left: auto;',\n headerBannerHelpMenu: 'border-left: solid 1px #000000; margin-left: auto;',\n headerBannerIcon: 'background-size: 65px 60px !important; height: 60px !important; width: 65px !important;', // may just be 65px round($icon-size * 352 / 322);\n\n // footer\n footer: 'border-top: solid 1px $divider-color; font-size: 0.9em; padding: 0.5em 1.5em;',\n\n // buttons\n primaryButton: 'background-color: #7c4dff; color: #ffffff; font-family: Raleway, Roboto, sans-serif; border-radius: 0.25em; border-color: #7c4dff; border: 1px solid; cursor: pointer; font-size: .8em; text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none;',\n primaryButtonHover: 'background-color: #9f7dff; color: #ffffff; font-family: Raleway, Roboto, sans-serif;border-radius: 0.25em; border-color: #7c4dff; border: 1px solid; cursor: pointer; font-size: .8em; text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none; transition: 0.25s all ease-in-out;',\n primaryButtonNoBorder: 'background-color: #ffffff; color: #7c4dff; font-family: Raleway, Roboto, sans-serif;border-radius: 0.25em; border-color: #7c4dff; border: 1px solid; cursor: pointer; font-size: .8em; text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none;',\n primaryButtonNoBorderHover: 'background-color: #7c4dff; color: #ffffff; font-family: Raleway, Roboto, sans-serif; border-radius: 0.25em; border-color: #7c4dff; border: 1px solid; cursor: pointer; font-size: .8em; text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none; transition: 0.25s all ease-in-out;',\n secondaryButton: 'background-color: #01c9ea; color: #ffffff; font-family: Raleway, Roboto, sans-serif;border-radius: 0.25em; border-color: #01c9ea; border: 1px solid; cursor: pointer; font-size: .8em; text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none;',\n secondaryButtonHover: 'background-color: #37cde6; color: #ffffff; font-family: Raleway, Roboto, sans-serif;border-radius: 0.25em; border-color: #7c4dff; border: 1px solid; cursor: pointer; font-size: .8em; text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none; transition: 0.25s all ease-in-out;',\n secondaryButtonNoBorder: 'background-color: #ffffff; color: #01c9ea; font-family: Raleway, Roboto, sans-serif; border-radius: 0.25em; border-color: #01c9ea; border: 1px solid; cursor: pointer; font-size: .8em; text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none;',\n secondaryButtonNoBorderHover: 'background-color: #01c9ea; color: #ffffff; font-family: Raleway, Roboto, sans-serif; border-radius: 0.25em; border-color: #01c9ea; border: 1px solid; cursor: pointer; font-size: .8em; text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none; transition: 0.25s all ease-in-out;',\n\n // media\n controlStyle: `border-radius: 0.5em; margin: 0.8em; width:${styleConstants.mediaModuleCanvasWidth}; height:${styleConstants.mediaModuleCanvasHeight};`,\n\n // dragAndDrop\n dragEvent: 'background-color: #ccc; border: 0.25em dashed black; border-radius: 0.3em;',\n dropEvent: 'background-color: white; border: 0em solid black;',\n restoreStyle: 'background-color: white;',\n\n // errors\n errorCancelButton: 'width: 2em; height: 2em; align: right;',\n errorMessageBlockStyle: 'margin: 0.1em; padding: 0.5em; border: 0.05em solid gray; color:black;',\n\n // pad\n notepadStyle: 'padding: 1em; overflow: auto; resize: horizontal; min-width: 40em;',\n upstreamStatus: 'width: 50%;',\n downstreamStatus: 'width: 50%;',\n baseStyle: 'font-size: 100%; font-family: monospace; width: 100%; border: none; white-space: pre-wrap;',\n headingCore: 'font-family: sans-serif; font-weight: bold; border: none;',\n headingStyle: [\n 'font-size: 110%; padding-top: 0.5em; padding-bottom: 0.5em; width: 100%;',\n 'font-size: 120%; padding-top: 1em; padding-bottom: 1em; width: 100%;',\n 'font-size: 150%; padding-top: 1em; padding-bottom: 1em; width: 100%;'\n ],\n\n // participation\n participantsStyle: 'margin: 0.8em;',\n participantsBlock: 'height: 1.5em; width: 1.5em; margin: 0.3em; border 0.01em solid #888;',\n personTableTD: 'vertical-align: middle;',\n\n // tabs\n tabsNavElement: 'margin: 0;',\n tabsRootElement: 'display: flex; height: 100%; width: 100%;',\n tabsMainElement: 'margin: 0; width:100%; height: 100%;',\n tabContainer: 'list-style-type: none; display: flex; height: 100%; width: 100%; margin: 0; padding: 0;',\n makeNewSlot: 'background: none; border: none; font: inherit; cursor: pointer;',\n ellipsis: 'position: absolute; right: 0; bottom: 0; width: 20%; background: none; color: inherit; border: none; padding: 0; font: inherit; cursor: pointer; outline: inherit;'\n\n}\n\nstyle.setStyle = function setStyle (ele, styleName) {\n ele.style = style[styleName]\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Account.cjs.js","names":["consume","html","nothing","property","customElement","WebComponent","authContext","DEFAULT_AUTH_CONTEXT","styles","_classDecs","_Account","_Account2","_A","WeakMap","_B","_ref","_menuItemsDecs","type","Array","_authDecs","context","subscribe","_Account3","Account","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_menuItems","_init_auth","_defineProperty","_classPrivateFieldGet","menuItems","v","_classPrivateFieldSet","auth","connectedCallback","unsubscribeSessionUpdated","onSessionUpdated","requestUpdate","disconnectedCallback","render","initialized","account","map","menuItem","href","selected","onSelected","label","e","c","_initClass","_applyDecs","_Class","_identity","initializing","component","loggedIn","default"],"sources":["../../../src/components/account/Account.ts"],"sourcesContent":["import { consume } from '@lit/context'\nimport { html, nothing, TemplateResult } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { customElement, WebComponent } from '@/lib/components'\nimport { authContext, AuthContext, DEFAULT_AUTH_CONTEXT } from '@/lib/auth'\n\nimport '@/components/avatar'\nimport '@/components/button'\nimport '@/components/login-button'\nimport '@/components/logout-button'\nimport '@/components/menu-item'\nimport '@/components/menu'\nimport '@/components/signup-button'\nimport '~icons/lucide/chevron-down'\nimport '~icons/lucide/log-in'\nimport '~icons/lucide/log-out'\nimport '~icons/lucide/user'\nimport '~icons/svg-spinners/180-ring'\n\nimport styles from './Account.styles.css'\n\nexport interface AccountMenuItem {\n label: string | TemplateResult\n href?: string\n selected?: boolean\n onSelected?(): void\n}\n\n@customElement('solid-ui-account')\nexport default class Account extends WebComponent {\n static styles = styles\n static states = {\n initializing: (component: Account) => !component.auth.initialized,\n loggedIn: (component: Account) => !!component.auth.account,\n }\n\n @property({ type: Array })\n accessor menuItems: AccountMenuItem[] = []\n\n @consume({ context: authContext, subscribe: true })\n private accessor auth: AuthContext = DEFAULT_AUTH_CONTEXT\n\n private unsubscribeSessionUpdated?: () => void\n\n connectedCallback () {\n super.connectedCallback()\n\n this.unsubscribeSessionUpdated = this.auth.onSessionUpdated(() => this.requestUpdate())\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.unsubscribeSessionUpdated?.()\n }\n\n protected render () {\n if (!this.auth.initialized) {\n return html`\n <icon-svg-spinners-180-ring></icon-svg-spinners-180-ring>\n `\n }\n\n if (!this.auth.account) {\n return html`\n <solid-ui-login-button>\n <solid-ui-button slot=\"trigger\">\n <icon-lucide-user slot=\"left-icon\"></icon-lucide-user>\n Log In\n </solid-ui-button>\n </solid-ui-login-button>\n <solid-ui-signup-button>\n <solid-ui-button slot=\"trigger\" variant=\"outline\">\n <icon-lucide-log-in slot=\"left-icon\"></icon-lucide-log-in>\n Sign Up\n </solid-ui-button>\n </solid-ui-signup-button>\n `\n }\n\n return html`\n <solid-ui-menu placement=\"bottom-end\">\n <button type=\"button\" slot=\"trigger\">\n <solid-ui-avatar></solid-ui-avatar>\n <icon-lucide-chevron-down slot=\"right-icon\"></icon-lucide-chevron-down>\n </button>\n\n ${this.menuItems.map(menuItem => html`\n <solid-ui-menu-item .href=${menuItem.href ?? nothing} ?selected=${menuItem.selected} @solid-ui-select=${() => menuItem.onSelected?.()}>\n ${menuItem.label}\n </solid-ui-menu-item>\n `)}\n <solid-ui-logout-button>\n <solid-ui-menu-item slot=\"trigger\">\n <icon-lucide-log-out slot=\"left-icon\"></icon-lucide-log-out>\n Sign out\n </solid-ui-menu-item>\n </solid-ui-logout-button>\n </solid-ui-menu>\n `\n }\n}\n"],"mappings":"s+JAmByCS,EAAA,CASxCL,EAAAA,cAAc,kBAAkB,CAAC,EAAA,IAAAM,EAAA,IAAAC,GAAAC,EAAA,IAAAC,QAAAC,EAAA,IAAAD,QAAAE,GAAAC,GAAAA,EAAAA,EAAAA,SAAAA,CAQtB,CAAEC,KAAMC,KAAM,CAAC,EAACC,GAAAA,EAAAA,EAAAA,QAAAA,CAGjB,CAAEC,QAASd,EAAAA,YAAae,UAAW,EAAK,CAAC,EAAC,aAAAC,EAXrD,cACqCjB,EAAAA,OAAa,CAAAmB,YAAA,GAAAC,EAAA,CAAA,MAAA,GAAAA,CAAA,EAAAC,EAAA,KAAAd,GAAAe,EAAA,IAAA,EAAAC,EAAA,KAQR,CAAA,CAAE,EAAA,EAAAF,EAAA,KAAAZ,EAAAe,EAAA,KAGLtB,EAAAA,oBAAoB,CAAA,EAAAuB,EAAA,KAAA,4BAAA,IAAA,EAAA,CAAA,CAAA,IAAAf,IAAA,CAAA,OAAAgB,EAAAnB,EAAA,IAAA,CAAA,CAAA,IAHhDoB,UAASC,EAAA,CAAAC,EAAAtB,EAAA,KAAAqB,CAAA,CAAA,CAAA,IAGDE,MAAI,CAAA,OAAAJ,EAAAjB,EAAA,IAAA,CAAA,CAAA,IAAJqB,KAAIF,EAAA,CAAAC,EAAApB,EAAA,KAAAmB,CAAA,CAAA,CAIrBG,mBAAqB,CACnB,MAAMA,kBAAkB,EAExB,KAAKC,0BAA4B,KAAKF,KAAKG,qBAAuB,KAAKC,cAAc,CAAC,CACxF,CAEAC,sBAAwB,CACtB,MAAMA,qBAAqB,EAE3B,KAAKH,4BAA4B,CACnC,CAEUI,QAAU,CAwBlB,OAvBK,KAAKN,KAAKO,YAMV,KAAKP,KAAKQ,QAiBR1C,EAAAA,IAAI;;;;;;;cAOD,KAAK+B,UAAUY,IAAIC,GAAY5C,EAAAA,IAAI;4CACL4C,EAASC,MAAQ5C,EAAAA,QAAO,aAAc2C,EAASE,SAAQ,wBAA2BF,EAASG,aAAa,EAAC;sBAC/HH,EAASI,MAAK;;aAEvB,EAAC;;;;;;;;MA3BDhD,EAAAA,IAAI;;;;;;;;;;;;;QANJA,EAAAA,IAAI;;OA0Cf,CACF,EAAC,CAAAiD,EAAA,CAAAtB,EAAAC,EAAAF,GAAAwB,EAAA,CAAAzC,EAAA0C,IAAAC,EAAA/B,EAAA,CAAA,CAAAN,EAAA,EAAA,WAAA,EAAA,CAAAG,EAAA,EAAA,MAAA,CAAA,EAAAV,EAAA,EAAA,IAAA,GAxEoCJ,EAAAA,OAAY,EAAAiB,GAAAgC,EAAA,cAAAC,CAAA,CAAA/B,aAAA,CAAA,MAAAd,CAAA,EAAAoB,EAAA,KAAA,SAC/BtB,EAAAA,OAAM,EAAAsB,EAAA,KAAA,SACN,CACd0B,aAAeC,GAAuB,CAACA,EAAUtB,KAAKO,YACtDgB,SAAWD,GAAuB,CAAC,CAACA,EAAUtB,KAAKQ,OACrD,CAAC,EAAAS,EAAA,CAAA,CAAA,EAAAtB,EAAAwB,EAAA3C,EAAA,IAAA,EAAA,EAAA2C"}
1
+ {"version":3,"file":"Account.cjs.js","names":["consume","html","nothing","property","customElement","WebComponent","authContext","DEFAULT_AUTH_CONTEXT","styles","_classDecs","_Account","_Account2","_A","WeakMap","_B","_ref","_menuItemsDecs","type","Array","_authDecs","context","subscribe","_Account3","Account","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_menuItems","_init_auth","_defineProperty","_classPrivateFieldGet","menuItems","v","_classPrivateFieldSet","auth","connectedCallback","unsubscribeSessionUpdated","onSessionUpdated","requestUpdate","disconnectedCallback","render","initialized","account","map","menuItem","href","selected","onSelected","label","e","c","_initClass","_applyDecs","_Class","_identity","initializing","component","loggedIn","default"],"sources":["../../../src/components/account/Account.ts"],"sourcesContent":["import { consume } from '@lit/context'\nimport { html, nothing, TemplateResult } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { customElement, WebComponent } from '@/lib/components'\nimport { authContext, AuthContext, DEFAULT_AUTH_CONTEXT } from '@/lib/auth'\n\nimport '@/components/avatar'\nimport '@/components/button'\nimport '@/components/login-button'\nimport '@/components/logout-button'\nimport '@/components/menu-item'\nimport '@/components/menu'\nimport '@/components/signup-button'\nimport '~icons/lucide/chevron-down'\nimport '~icons/lucide/log-in'\nimport '~icons/lucide/log-out'\nimport '~icons/lucide/user'\nimport '~icons/svg-spinners/180-ring'\n\nimport styles from './Account.styles.css'\n\nexport interface AccountMenuItem {\n label: string | TemplateResult\n href?: string\n selected?: boolean\n onSelected?(): void\n}\n\n@customElement('solid-ui-account')\nexport default class Account extends WebComponent {\n static styles = styles\n static states = {\n initializing: (component: Account) => !component.auth.initialized,\n loggedIn: (component: Account) => !!component.auth.account,\n }\n\n @property({ type: Array })\n accessor menuItems: AccountMenuItem[] = []\n\n @consume({ context: authContext, subscribe: true })\n private accessor auth: AuthContext = DEFAULT_AUTH_CONTEXT\n\n private unsubscribeSessionUpdated?: () => void\n\n connectedCallback () {\n super.connectedCallback()\n\n this.unsubscribeSessionUpdated = this.auth.onSessionUpdated(() => this.requestUpdate())\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.unsubscribeSessionUpdated?.()\n }\n\n protected render () {\n if (!this.auth.initialized) {\n return html`\n <icon-svg-spinners-180-ring></icon-svg-spinners-180-ring>\n `\n }\n\n if (!this.auth.account) {\n return html`\n <solid-ui-login-button>\n <solid-ui-button slot=\"trigger\">\n <icon-lucide-user slot=\"left-icon\"></icon-lucide-user>\n Log In\n </solid-ui-button>\n </solid-ui-login-button>\n <solid-ui-signup-button>\n <solid-ui-button slot=\"trigger\" variant=\"outline\">\n <icon-lucide-log-in slot=\"left-icon\"></icon-lucide-log-in>\n Sign Up\n </solid-ui-button>\n </solid-ui-signup-button>\n `\n }\n\n return html`\n <solid-ui-menu placement=\"bottom-end\">\n <button type=\"button\" slot=\"trigger\">\n <solid-ui-avatar></solid-ui-avatar>\n <icon-lucide-chevron-down slot=\"right-icon\"></icon-lucide-chevron-down>\n </button>\n\n ${this.menuItems.map(menuItem => html`\n <solid-ui-menu-item .href=${menuItem.href ?? nothing} ?selected=${menuItem.selected} @solid-ui-select=${() => menuItem.onSelected?.()}>\n ${menuItem.label}\n </solid-ui-menu-item>\n `)}\n <solid-ui-logout-button>\n <solid-ui-menu-item slot=\"trigger\">\n <icon-lucide-log-out slot=\"left-icon\"></icon-lucide-log-out>\n Sign out\n </solid-ui-menu-item>\n </solid-ui-logout-button>\n </solid-ui-menu>\n `\n }\n}\n"],"mappings":"s+JAmByCS,EAAA,CASxCL,EAAAA,cAAc,kBAAkB,CAAC,EAAA,IAAAM,EAAA,IAAAC,GAAAC,EAAA,IAAAC,QAAAC,EAAA,IAAAD,QAAAE,GAAAC,GAAAA,EAQ/Bb,EAAAA,SAAAA,CAAS,CAAEc,KAAMC,KAAM,CAAC,EAACC,GAAAA,EAGzBnB,EAAAA,QAAAA,CAAQ,CAAEoB,QAASd,EAAAA,YAAae,UAAW,EAAK,CAAC,EAAC,aAAAC,EAXrD,cACqCjB,EAAAA,OAAa,CAAAmB,YAAA,GAAAC,EAAA,CAAA,MAAA,GAAAA,CAAA,EAAAC,EAAA,KAAAd,GAAAe,EAAA,IAAA,EAAAC,EAAA,KAQR,CAAA,CAAE,EAAA,EAAAF,EAAA,KAAAZ,EAAAe,EAAA,KAGLtB,EAAAA,oBAAoB,CAAA,EAAAuB,EAAA,KAAA,4BAAA,IAAA,EAAA,CAAA,CAAA,IAAAf,IAAA,CAAA,OAAAgB,EAAAnB,EAAA,IAAA,CAAA,CAAA,IAHhDoB,UAASC,EAAA,CAAAC,EAAAtB,EAAA,KAAAqB,CAAA,CAAA,CAAA,IAGDE,MAAI,CAAA,OAAAJ,EAAAjB,EAAA,IAAA,CAAA,CAAA,IAAJqB,KAAIF,EAAA,CAAAC,EAAApB,EAAA,KAAAmB,CAAA,CAAA,CAIrBG,mBAAqB,CACnB,MAAMA,kBAAkB,EAExB,KAAKC,0BAA4B,KAAKF,KAAKG,qBAAuB,KAAKC,cAAc,CAAC,CACxF,CAEAC,sBAAwB,CACtB,MAAMA,qBAAqB,EAE3B,KAAKH,4BAA4B,CACnC,CAEUI,QAAU,CAwBlB,OAvBK,KAAKN,KAAKO,YAMV,KAAKP,KAAKQ,QAiBR1C,EAAAA,IAAI;;;;;;;cAOD,KAAK+B,UAAUY,IAAIC,GAAY5C,EAAAA,IAAI;4CACL4C,EAASC,MAAQ5C,EAAAA,QAAO,aAAc2C,EAASE,SAAQ,wBAA2BF,EAASG,aAAa,EAAC;sBAC/HH,EAASI,MAAK;;aAEvB,EAAC;;;;;;;;MA3BDhD,EAAAA,IAAI;;;;;;;;;;;;;QANJA,EAAAA,IAAI;;OA0Cf,CACF,EAAC,CAAAiD,EAAA,CAAAtB,EAAAC,EAAAF,GAAAwB,EAAA,CAAAzC,EAAA0C,IAAAC,EAAA/B,EAAA,CAAA,CAAAN,EAAA,EAAA,WAAA,EAAA,CAAAG,EAAA,EAAA,MAAA,CAAA,EAAAV,EAAA,EAAA,IAAA,GAxEoCJ,EAAAA,OAAY,EAAAiB,GAAAgC,EAAA,cAAAC,CAAA,CAAA/B,aAAA,CAAA,MAAAd,CAAA,EAAAoB,EAAA,KAAA,SAC/BtB,EAAAA,OAAM,EAAAsB,EAAA,KAAA,SACN,CACd0B,aAAeC,GAAuB,CAACA,EAAUtB,KAAKO,YACtDgB,SAAWD,GAAuB,CAAC,CAACA,EAAUtB,KAAKQ,OACrD,CAAC,EAAAS,EAAA,CAAA,CAAA,EAAAtB,EAAAwB,EAAA3C,EAAA,IAAA,EAAA,EAAA2C"}
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "../chunks/account-DeNlj01m.js";
1
+ import { n as e, t } from "../chunks/account-Ch8h_zTv.js";
2
2
  export { e as Account, t as default };
@@ -1 +1 @@
1
- require("./dialog-header/index.cjs.js"),require("./button/index.cjs.js"),require("./dialog/index.cjs.js"),require("./dialog-content/index.cjs.js"),require("./dialog-footer/index.cjs.js"),require("./combobox/index.cjs.js"),require("./combobox-option/index.cjs.js"),require("./login-modal/index.cjs.js"),require("./dialogs-root/index.cjs.js"),require("./avatar/index.cjs.js"),require("./login-button/index.cjs.js"),require("./logout-button/index.cjs.js"),require("./menu-item/index.cjs.js"),require("./menu/index.cjs.js"),require("./signup-button/index.cjs.js"),require("./account/index.cjs.js"),require("./dialog-provider/index.cjs.js"),require("./footer/index.cjs.js"),require("./guard/index.cjs.js"),require("./input/index.cjs.js"),require("./photo-capture-modal/index.cjs.js"),require("./photo-capture/index.cjs.js"),require("./select/index.cjs.js"),require("./select-option/index.cjs.js"),require("./solid-emblem/index.cjs.js");
1
+ require("./dialog-header/index.cjs.js"),require("./button/index.cjs.js"),require("./dialog/index.cjs.js"),require("./dialog-content/index.cjs.js"),require("./dialog-footer/index.cjs.js"),require("./combobox/index.cjs.js"),require("./combobox-option/index.cjs.js"),require("./login-modal/index.cjs.js"),require("./dialogs-root/index.cjs.js"),require("./avatar/index.cjs.js"),require("./login-button/index.cjs.js"),require("./logout-button/index.cjs.js"),require("./menu-item/index.cjs.js"),require("./menu/index.cjs.js"),require("./signup-button/index.cjs.js"),require("./account/index.cjs.js"),require("./dialog-provider/index.cjs.js"),require("./guard/index.cjs.js"),require("./input/index.cjs.js"),require("./photo-capture-modal/index.cjs.js"),require("./photo-capture/index.cjs.js"),require("./rdf-input/index.cjs.js"),require("./rdf-form/index.cjs.js"),require("./select/index.cjs.js"),require("./select-option/index.cjs.js"),require("./solid-emblem/index.cjs.js");
@@ -15,11 +15,12 @@ import "./menu/index.esm.js";
15
15
  import "./signup-button/index.esm.js";
16
16
  import "./account/index.esm.js";
17
17
  import "./dialog-provider/index.esm.js";
18
- import "./footer/index.esm.js";
19
18
  import "./guard/index.esm.js";
20
19
  import "./input/index.esm.js";
21
20
  import "./photo-capture-modal/index.esm.js";
22
21
  import "./photo-capture/index.esm.js";
22
+ import "./rdf-input/index.esm.js";
23
+ import "./rdf-form/index.esm.js";
23
24
  import "./select/index.esm.js";
24
25
  import "./select-option/index.esm.js";
25
26
  import "./solid-emblem/index.esm.js";
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.cjs.js","names":["customElement","WebComponent","consume","html","authContext","DEFAULT_AUTH_CONTEXT","styles","_classDecs","_Avatar","_Avatar2","_A","WeakMap","_ref","_authDecs","context","subscribe","_Avatar3","Avatar","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_auth","_defineProperty","_classPrivateFieldGet","auth","v","_classPrivateFieldSet","connectedCallback","loadProfile","unsubscribeSessionUpdated","onSessionUpdated","requestUpdate","disconnectedCallback","render","account","avatarUrl","e","c","_initClass","_applyDecs","_Class","_identity","fallback","component","default"],"sources":["../../../src/components/avatar/Avatar.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { consume } from '@lit/context'\nimport { html } from 'lit'\nimport { authContext, AuthContext, DEFAULT_AUTH_CONTEXT } from '@/lib/auth'\n\nimport '~icons/lucide/circle-user'\n\nimport styles from './Avatar.styles.css'\n\n@customElement('solid-ui-avatar')\nexport default class Avatar extends WebComponent {\n static styles = styles\n static states = {\n fallback: (component: Avatar) => !component.auth.account?.avatarUrl,\n }\n\n @consume({ context: authContext, subscribe: true })\n private accessor auth: AuthContext = DEFAULT_AUTH_CONTEXT\n\n private unsubscribeSessionUpdated?: () => void\n\n connectedCallback () {\n super.connectedCallback()\n\n this.auth.loadProfile?.()\n\n this.unsubscribeSessionUpdated = this.auth.onSessionUpdated(() => {\n this.auth.loadProfile?.()\n this.requestUpdate()\n })\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.unsubscribeSessionUpdated?.()\n }\n\n protected render () {\n if (!this.auth.account?.avatarUrl) {\n return html`\n <icon-lucide-circle-user></icon-lucide-circle-user>\n `\n }\n\n return html`\n <img src=\"${this.auth.account?.avatarUrl}\" alt=\"\" />\n `\n }\n}\n"],"mappings":"69IAOwCO,EAAA,CAEvCP,EAAAA,cAAc,iBAAiB,CAAC,EAAA,IAAAQ,EAAA,IAAAC,GAAAC,EAAA,IAAAC,QAAAC,GAAAC,GAAAA,EAAAA,EAAAA,QAAAA,CAOtB,CAAEC,QAASV,EAAAA,YAAaW,UAAW,EAAK,CAAC,EAAC,QAAAC,EAPrD,cACoCf,EAAAA,OAAa,CAAAiB,YAAA,GAAAC,EAAA,CAAA,MAAA,GAAAA,CAAA,EAAAC,EAAA,KAAAV,GAAAW,EAAA,IAAA,EAAAC,EAAA,KAOVjB,EAAAA,oBAAoB,EAAA,EAAAkB,EAAA,KAAA,4BAAA,IAAA,EAAA,CAAA,CAAA,IAAAX,IAAA,CAAA,OAAAY,EAAAd,EAAA,IAAA,CAAA,CAAA,IAAxCe,KAAIC,EAAA,CAAAC,EAAAjB,EAAA,KAAAgB,CAAA,CAAA,CAIrBE,mBAAqB,CACnB,MAAMA,kBAAkB,EAExB,KAAKH,KAAKI,cAAc,EAExB,KAAKC,0BAA4B,KAAKL,KAAKM,qBAAuB,CAChE,KAAKN,KAAKI,cAAc,EACxB,KAAKG,cAAc,CACrB,CAAC,CACH,CAEAC,sBAAwB,CACtB,MAAMA,qBAAqB,EAE3B,KAAKH,4BAA4B,CACnC,CAEUI,QAAU,CAOlB,OANK,KAAKT,KAAKU,SAASC,UAMjBjC,EAAAA,IAAI;oBACK,KAAKsB,KAAKU,SAASC,UAAS;MANnCjC,EAAAA,IAAI;;OAQf,CACF,EAAC,CAAAkC,EAAA,CAAAf,EAAAD,GAAAiB,EAAA,CAAA9B,EAAA+B,IAAAC,EAAAxB,EAAA,CAAA,CAAAH,EAAA,EAAA,MAAA,CAAA,EAAAN,EAAA,EAAA,IAAA,GAvCmCN,EAAAA,OAAY,EAAAe,GAAAyB,EAAA,cAAAC,CAAA,CAAAxB,aAAA,CAAA,MAAAV,CAAA,EAAAe,EAAA,KAAA,SAC9BjB,EAAAA,OAAM,EAAAiB,EAAA,KAAA,SACN,CACdoB,SAAWC,GAAsB,CAACA,EAAUnB,KAAKU,SAASC,SAC5D,CAAC,EAAAG,EAAA,CAAA,CAAA,EAAAhB,EAAAkB,EAAAhC,EAAA,IAAA,EAAA,EAAAgC"}
1
+ {"version":3,"file":"Avatar.cjs.js","names":["customElement","WebComponent","consume","html","authContext","DEFAULT_AUTH_CONTEXT","styles","_classDecs","_Avatar","_Avatar2","_A","WeakMap","_ref","_authDecs","context","subscribe","_Avatar3","Avatar","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_auth","_defineProperty","_classPrivateFieldGet","auth","v","_classPrivateFieldSet","connectedCallback","loadProfile","unsubscribeSessionUpdated","onSessionUpdated","requestUpdate","disconnectedCallback","render","account","avatarUrl","e","c","_initClass","_applyDecs","_Class","_identity","fallback","component","default"],"sources":["../../../src/components/avatar/Avatar.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { consume } from '@lit/context'\nimport { html } from 'lit'\nimport { authContext, AuthContext, DEFAULT_AUTH_CONTEXT } from '@/lib/auth'\n\nimport '~icons/lucide/circle-user'\n\nimport styles from './Avatar.styles.css'\n\n@customElement('solid-ui-avatar')\nexport default class Avatar extends WebComponent {\n static styles = styles\n static states = {\n fallback: (component: Avatar) => !component.auth.account?.avatarUrl,\n }\n\n @consume({ context: authContext, subscribe: true })\n private accessor auth: AuthContext = DEFAULT_AUTH_CONTEXT\n\n private unsubscribeSessionUpdated?: () => void\n\n connectedCallback () {\n super.connectedCallback()\n\n this.auth.loadProfile?.()\n\n this.unsubscribeSessionUpdated = this.auth.onSessionUpdated(() => {\n this.auth.loadProfile?.()\n this.requestUpdate()\n })\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.unsubscribeSessionUpdated?.()\n }\n\n protected render () {\n if (!this.auth.account?.avatarUrl) {\n return html`\n <icon-lucide-circle-user></icon-lucide-circle-user>\n `\n }\n\n return html`\n <img src=\"${this.auth.account?.avatarUrl}\" alt=\"\" />\n `\n }\n}\n"],"mappings":"69IAOwCO,EAAA,CAEvCP,EAAAA,cAAc,iBAAiB,CAAC,EAAA,IAAAQ,EAAA,IAAAC,GAAAC,EAAA,IAAAC,QAAAC,GAAAC,GAAAA,EAO9BX,EAAAA,QAAAA,CAAQ,CAAEY,QAASV,EAAAA,YAAaW,UAAW,EAAK,CAAC,EAAC,QAAAC,EAPrD,cACoCf,EAAAA,OAAa,CAAAiB,YAAA,GAAAC,EAAA,CAAA,MAAA,GAAAA,CAAA,EAAAC,EAAA,KAAAV,GAAAW,EAAA,IAAA,EAAAC,EAAA,KAOVjB,EAAAA,oBAAoB,EAAA,EAAAkB,EAAA,KAAA,4BAAA,IAAA,EAAA,CAAA,CAAA,IAAAX,IAAA,CAAA,OAAAY,EAAAd,EAAA,IAAA,CAAA,CAAA,IAAxCe,KAAIC,EAAA,CAAAC,EAAAjB,EAAA,KAAAgB,CAAA,CAAA,CAIrBE,mBAAqB,CACnB,MAAMA,kBAAkB,EAExB,KAAKH,KAAKI,cAAc,EAExB,KAAKC,0BAA4B,KAAKL,KAAKM,qBAAuB,CAChE,KAAKN,KAAKI,cAAc,EACxB,KAAKG,cAAc,CACrB,CAAC,CACH,CAEAC,sBAAwB,CACtB,MAAMA,qBAAqB,EAE3B,KAAKH,4BAA4B,CACnC,CAEUI,QAAU,CAOlB,OANK,KAAKT,KAAKU,SAASC,UAMjBjC,EAAAA,IAAI;oBACK,KAAKsB,KAAKU,SAASC,UAAS;MANnCjC,EAAAA,IAAI;;OAQf,CACF,EAAC,CAAAkC,EAAA,CAAAf,EAAAD,GAAAiB,EAAA,CAAA9B,EAAA+B,IAAAC,EAAAxB,EAAA,CAAA,CAAAH,EAAA,EAAA,MAAA,CAAA,EAAAN,EAAA,EAAA,IAAA,GAvCmCN,EAAAA,OAAY,EAAAe,GAAAyB,EAAA,cAAAC,CAAA,CAAAxB,aAAA,CAAA,MAAAV,CAAA,EAAAe,EAAA,KAAA,SAC9BjB,EAAAA,OAAM,EAAAiB,EAAA,KAAA,SACN,CACdoB,SAAWC,GAAsB,CAACA,EAAUnB,KAAKU,SAASC,SAC5D,CAAC,EAAAG,EAAA,CAAA,CAAA,EAAAhB,EAAAkB,EAAAhC,EAAA,IAAA,EAAA,EAAAgC"}
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "../chunks/avatar-DgO_p94F.js";
1
+ import { n as e, t } from "../chunks/avatar-BWtz4RlU.js";
2
2
  export { e as Avatar, t as default };
@@ -6,5 +6,5 @@ const e=require("../../lib/components/decorators.cjs.js"),t=require("../../lib/c
6
6
  <slot></slot>
7
7
  <slot name="right-icon"></slot>
8
8
  </button>
9
- `}onIconSlotChange(e){let t=e.target;this.toggleAttribute(`data-has-icon-slot`,t.assignedElements().length>0)}onClick(){switch(this.type){case`submit`:this.getInternals().form?.requestSubmit();break;case`reset`:this.getInternals().form?.reset();break}}},{e:[h,_,y,x,d],c:[L,f]}=A(o,[[m,1,`variant`],[g,1,`type`],[v,1,`disabled`],[b,1,`loading`]],p,0,void 0,t.default),o),a=class extends F{constructor(){super(L),k(this,`styles`,n.default),k(this,`formAssociated`,!0),f()}},k(a,S,void 0),a),exports.BUTTON_VARIANTS=I,Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return L}});
9
+ `}onIconSlotChange(e){let t=e.target;this.toggleAttribute(`data-has-icon-slot`,t.assignedElements().length>0)}onClick(){switch(this.type){case`submit`:this.getInternals().form?.requestSubmit();break;case`reset`:this.getInternals().form?.reset()}}},{e:[h,_,y,x,d],c:[L,f]}=A(o,[[m,1,`variant`],[g,1,`type`],[v,1,`disabled`],[b,1,`loading`]],p,0,void 0,t.default),o),a=class extends F{constructor(){super(L),k(this,`styles`,n.default),k(this,`formAssociated`,!0),f()}},k(a,S,void 0),a),exports.BUTTON_VARIANTS=I,Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return L}});
10
10
  //# sourceMappingURL=Button.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button.cjs.js","names":["customElement","WebComponent","html","nothing","property","styles","BUTTON_VARIANTS","_classDecs","_Button","_Button2","_A","WeakMap","_B","_C","_D","_ref","_variantDecs","type","String","reflect","_typeDecs","_disabledDecs","Boolean","_loadingDecs","_Button3","Button","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_variant","_init_type","_init_disabled","undefined","_init_loading","_classPrivateFieldGet","variant","v","_classPrivateFieldSet","disabled","loading","render","onClick","onIconSlotChange","e","slot","target","toggleAttribute","assignedElements","length","getInternals","form","requestSubmit","reset","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","default"],"sources":["../../../src/components/button/Button.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { html, nothing } from 'lit'\nimport { property } from 'lit/decorators.js'\n\nimport '~icons/svg-spinners/180-ring'\n\nimport styles from './Button.styles.css'\n\nexport const BUTTON_VARIANTS = ['primary', 'secondary', 'tertiary', 'outline', 'ghost'] as const\nexport type ButtonVariant = typeof BUTTON_VARIANTS[number]\n\n@customElement('solid-ui-button')\nexport default class Button extends WebComponent {\n static styles = styles\n static formAssociated = true\n\n @property({ type: String, reflect: true })\n accessor variant: ButtonVariant = 'primary'\n\n @property({ type: String, reflect: true })\n accessor type = 'button'\n\n @property({ type: Boolean })\n accessor disabled: boolean | undefined = undefined\n\n @property({ type: Boolean })\n accessor loading = false\n\n render () {\n const disabled = this.disabled ?? this.loading\n\n return html`\n <button type=${this.type} ?disabled=${disabled} @click=${this.onClick}>\n ${this.loading ? html`<icon-svg-spinners-180-ring></icon-svg-spinners-180-ring>` : nothing}\n <slot name=\"left-icon\"></slot>\n <slot @slotchange=${this.onIconSlotChange} name=\"icon\"></slot>\n <slot></slot>\n <slot name=\"right-icon\"></slot>\n </button>\n `\n }\n\n private onIconSlotChange (e: Event) {\n const slot = e.target as HTMLSlotElement\n\n this.toggleAttribute('data-has-icon-slot', slot.assignedElements().length > 0)\n }\n\n private onClick () {\n switch (this.type) {\n case 'submit':\n this.getInternals().form?.requestSubmit()\n break\n case 'reset':\n this.getInternals().form?.reset()\n break\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Button.cjs.js","names":["customElement","WebComponent","html","nothing","property","styles","BUTTON_VARIANTS","_classDecs","_Button","_Button2","_A","WeakMap","_B","_C","_D","_ref","_variantDecs","type","String","reflect","_typeDecs","_disabledDecs","Boolean","_loadingDecs","_Button3","Button","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_variant","_init_type","_init_disabled","undefined","_init_loading","_classPrivateFieldGet","variant","v","_classPrivateFieldSet","disabled","loading","render","onClick","onIconSlotChange","e","slot","target","toggleAttribute","assignedElements","length","getInternals","form","requestSubmit","reset","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","default"],"sources":["../../../src/components/button/Button.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { html, nothing } from 'lit'\nimport { property } from 'lit/decorators.js'\n\nimport '~icons/svg-spinners/180-ring'\n\nimport styles from './Button.styles.css'\n\nexport const BUTTON_VARIANTS = ['primary', 'secondary', 'tertiary', 'outline', 'ghost'] as const\nexport type ButtonVariant = typeof BUTTON_VARIANTS[number]\n\n@customElement('solid-ui-button')\nexport default class Button extends WebComponent {\n static styles = styles\n static formAssociated = true\n\n @property({ type: String, reflect: true })\n accessor variant: ButtonVariant = 'primary'\n\n @property({ type: String, reflect: true })\n accessor type = 'button'\n\n @property({ type: Boolean })\n accessor disabled: boolean | undefined = undefined\n\n @property({ type: Boolean })\n accessor loading = false\n\n render () {\n const disabled = this.disabled ?? this.loading\n\n return html`\n <button type=${this.type} ?disabled=${disabled} @click=${this.onClick}>\n ${this.loading ? html`<icon-svg-spinners-180-ring></icon-svg-spinners-180-ring>` : nothing}\n <slot name=\"left-icon\"></slot>\n <slot @slotchange=${this.onIconSlotChange} name=\"icon\"></slot>\n <slot></slot>\n <slot name=\"right-icon\"></slot>\n </button>\n `\n }\n\n private onIconSlotChange (e: Event) {\n const slot = e.target as HTMLSlotElement\n\n this.toggleAttribute('data-has-icon-slot', slot.assignedElements().length > 0)\n }\n\n private onClick () {\n switch (this.type) {\n case 'submit':\n this.getInternals().form?.requestSubmit()\n break\n case 'reset':\n this.getInternals().form?.reset()\n break\n }\n }\n}\n"],"mappings":"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"}
@@ -242,9 +242,7 @@ new (C = (c = /*#__PURE__*/ new WeakMap(), l = /*#__PURE__*/ new WeakMap(), u =
242
242
  case "submit":
243
243
  this.getInternals().form?.requestSubmit();
244
244
  break;
245
- case "reset":
246
- this.getInternals().form?.reset();
247
- break;
245
+ case "reset": this.getInternals().form?.reset();
248
246
  }
249
247
  }
250
248
  }, {e: [g, v, b, S, f], c: [R, p]} = j(s, [
@@ -1 +1 @@
1
- {"version":3,"file":"Button.esm.js","names":["customElement","WebComponent","html","nothing","property","styles","BUTTON_VARIANTS","_classDecs","_Button","_Button2","_A","WeakMap","_B","_C","_D","_ref","_variantDecs","type","String","reflect","_typeDecs","_disabledDecs","Boolean","_loadingDecs","_Button3","Button","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_variant","_init_type","_init_disabled","undefined","_init_loading","_classPrivateFieldGet","variant","v","_classPrivateFieldSet","disabled","loading","render","onClick","onIconSlotChange","e","slot","target","toggleAttribute","assignedElements","length","getInternals","form","requestSubmit","reset","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","default"],"sources":["../../../src/components/button/Button.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { html, nothing } from 'lit'\nimport { property } from 'lit/decorators.js'\n\nimport '~icons/svg-spinners/180-ring'\n\nimport styles from './Button.styles.css'\n\nexport const BUTTON_VARIANTS = ['primary', 'secondary', 'tertiary', 'outline', 'ghost'] as const\nexport type ButtonVariant = typeof BUTTON_VARIANTS[number]\n\n@customElement('solid-ui-button')\nexport default class Button extends WebComponent {\n static styles = styles\n static formAssociated = true\n\n @property({ type: String, reflect: true })\n accessor variant: ButtonVariant = 'primary'\n\n @property({ type: String, reflect: true })\n accessor type = 'button'\n\n @property({ type: Boolean })\n accessor disabled: boolean | undefined = undefined\n\n @property({ type: Boolean })\n accessor loading = false\n\n render () {\n const disabled = this.disabled ?? this.loading\n\n return html`\n <button type=${this.type} ?disabled=${disabled} @click=${this.onClick}>\n ${this.loading ? html`<icon-svg-spinners-180-ring></icon-svg-spinners-180-ring>` : nothing}\n <slot name=\"left-icon\"></slot>\n <slot @slotchange=${this.onIconSlotChange} name=\"icon\"></slot>\n <slot></slot>\n <slot name=\"right-icon\"></slot>\n </button>\n `\n }\n\n private onIconSlotChange (e: Event) {\n const slot = e.target as HTMLSlotElement\n\n this.toggleAttribute('data-has-icon-slot', slot.assignedElements().length > 0)\n }\n\n private onClick () {\n switch (this.type) {\n case 'submit':\n this.getInternals().form?.requestSubmit()\n break\n case 'reset':\n this.getInternals().form?.reset()\n break\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,IAAaM,IAAkB;CAAC;CAAW;CAAa;CAAY;CAAW;AAAO;AAAUC,IAAA,CAG/FP,EAAc,iBAAiB,CAAC;AAAA,IAAAQ;AAAA,KAAAC,KAAAC,kBAAA,IAAAC,QAAA,GAAAC,kBAAA,IAAAD,QAAA,GAAAE,kBAAA,IAAAF,QAAA,GAAAG,kBAAA,IAAAH,QAAA,GAAAI,KAAAC,IAK9BZ,EAAS;CAAEa,MAAMC;CAAQC,SAAS;AAAK,CAAC,GAACC,IAGzChB,EAAS;CAAEa,MAAMC;CAAQC,SAAS;AAAK,CAAC,GAACE,IAGzCjB,EAAS,EAAEa,MAAMK,QAAQ,CAAC,GAACC,IAG3BnB,EAAS,EAAEa,MAAMK,QAAQ,CAAC,GAAC,YAAAE,IAd9B,cACoCvB,EAAa;CAAAyB,YAAA,GAAAC,GAAA;EAWGC,AAXH,MAAA,GAAAD,CAAA,GAAAC,EAAA,MAAAlB,IAAAmB,EAAA,IAAA,GAAAC,EAAA,MAKb,SAAS,EAAA,GAAAF,EAAA,MAAAhB,GAAAmB,EAAA,MAG3B,QAAQ,CAAA,GAAAH,EAAA,MAAAf,GAAAmB,EAAA,MAGiBC,KAAAA,CAAS,CAAA,GAAAL,EAAA,MAAAd,GAAAoB,EAAA,MAG/B,EAAK,CAAA;CAAA;CAAA,KAAAnB,KAAA;EAAA,OAAAoB,EAAAzB,GAAA,IAAA;CAAA;CAAA,IATf0B,QAAOC,GAAA;EAAAC,EAAA5B,GAAA,MAAA2B,CAAA;CAAA;CAAA,IAGPpB,OAAI;EAAA,OAAAkB,EAAAvB,GAAA,IAAA;CAAA;CAAA,IAAJK,KAAIoB,GAAA;EAAAC,EAAA1B,GAAA,MAAAyB,CAAA;CAAA;CAAA,IAGJE,WAAQ;EAAA,OAAAJ,EAAAtB,GAAA,IAAA;CAAA;CAAA,IAAR0B,SAAQF,GAAA;EAAAC,EAAAzB,GAAA,MAAAwB,CAAA;CAAA;CAAA,IAGRG,UAAO;EAAA,OAAAL,EAAArB,GAAA,IAAA;CAAA;CAAA,IAAP0B,QAAOH,GAAA;EAAAC,EAAAxB,GAAA,MAAAuB,CAAA;CAAA;CAEhBI,SAAU;EACR,IAAMF,IAAW,KAAKA,YAAY,KAAKC;EAEvC,OAAOtC,CAAI;uBACQ,KAAKe,KAAI,aAAcsB,EAAQ,UAAW,KAAKG,QAAO;cAC/D,KAAKF,UAAUtC,CAAI,8DAA8DC,EAAO;;gCAEtE,KAAKwC,iBAAgB;;;;;CAKnD;CAEQA,iBAAkBC,GAAU;EAClC,IAAMC,IAAOD,EAAEE;EAEf,KAAKC,gBAAgB,sBAAsBF,EAAKG,iBAAiB,CAAC,CAACC,SAAS,CAAC;CAC/E;CAEQP,UAAW;EACjB,QAAQ,KAAKzB,MAAb;GACE,KAAK;IACH,KAAKiC,aAAa,CAAC,CAACC,MAAMC,cAAc;IACxC;GACF,KAAK;IACH,KAAKF,aAAa,CAAC,CAACC,MAAME,MAAM;IAChC;EACJ;CACF;AACF,GAAC,CAAAT,GAAA,CAAAd,GAAAC,GAAAC,GAAAE,GAAAL,IAAAyB,GAAA,CAAA9C,GAAA+C,MAAAC,EAAAhC,GAAA;CAAA;EAAAR;EAAA;EAAA;CAAA;CAAA;EAAAI;EAAA;EAAA;CAAA;CAAA;EAAAC;EAAA;EAAA;CAAA;CAAA;EAAAE;EAAA;EAAA;CAAA;AAAA,GAAAhB,GAAA,GAAA,KAAA,GA9CmCN,CAAY,GAAAuB,IAAAiC,IAAA,cAAAC,EAAA;CAAAhC,cAAA;EAAA,MAAAlB,CAAA,GAAAmD,EAAA,MAAA,UAC9BtD,CAAM,GAAAsD,EAAA,MAAA,kBACE,EAAI,GAAAJ,EAAA;CAAA;AAAA,GAAAI,EAAAF,GAAAhD,GAAA,KAAA,CAAA,GAAAgD,GAAA"}
1
+ {"version":3,"file":"Button.esm.js","names":["customElement","WebComponent","html","nothing","property","styles","BUTTON_VARIANTS","_classDecs","_Button","_Button2","_A","WeakMap","_B","_C","_D","_ref","_variantDecs","type","String","reflect","_typeDecs","_disabledDecs","Boolean","_loadingDecs","_Button3","Button","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_variant","_init_type","_init_disabled","undefined","_init_loading","_classPrivateFieldGet","variant","v","_classPrivateFieldSet","disabled","loading","render","onClick","onIconSlotChange","e","slot","target","toggleAttribute","assignedElements","length","getInternals","form","requestSubmit","reset","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","default"],"sources":["../../../src/components/button/Button.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { html, nothing } from 'lit'\nimport { property } from 'lit/decorators.js'\n\nimport '~icons/svg-spinners/180-ring'\n\nimport styles from './Button.styles.css'\n\nexport const BUTTON_VARIANTS = ['primary', 'secondary', 'tertiary', 'outline', 'ghost'] as const\nexport type ButtonVariant = typeof BUTTON_VARIANTS[number]\n\n@customElement('solid-ui-button')\nexport default class Button extends WebComponent {\n static styles = styles\n static formAssociated = true\n\n @property({ type: String, reflect: true })\n accessor variant: ButtonVariant = 'primary'\n\n @property({ type: String, reflect: true })\n accessor type = 'button'\n\n @property({ type: Boolean })\n accessor disabled: boolean | undefined = undefined\n\n @property({ type: Boolean })\n accessor loading = false\n\n render () {\n const disabled = this.disabled ?? this.loading\n\n return html`\n <button type=${this.type} ?disabled=${disabled} @click=${this.onClick}>\n ${this.loading ? html`<icon-svg-spinners-180-ring></icon-svg-spinners-180-ring>` : nothing}\n <slot name=\"left-icon\"></slot>\n <slot @slotchange=${this.onIconSlotChange} name=\"icon\"></slot>\n <slot></slot>\n <slot name=\"right-icon\"></slot>\n </button>\n `\n }\n\n private onIconSlotChange (e: Event) {\n const slot = e.target as HTMLSlotElement\n\n this.toggleAttribute('data-has-icon-slot', slot.assignedElements().length > 0)\n }\n\n private onClick () {\n switch (this.type) {\n case 'submit':\n this.getInternals().form?.requestSubmit()\n break\n case 'reset':\n this.getInternals().form?.reset()\n break\n }\n }\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { n as e, r as t, t as n } from "../chunks/button-Dvkek1tx.js";
1
+ import { n as e, r as t, t as n } from "../chunks/button-BJyFKOKO.js";
2
2
  export { e as BUTTON_VARIANTS, t as Button, n as default };
@@ -1,4 +1,4 @@
1
- const e=require("../../lib/components/decorators.cjs.js"),t=require("../../lib/components/form-control-component/FormControlComponent.cjs.js");require("../../lib/components/index.cjs.js"),require("../../_virtual/~icons/lucide/chevron-down.cjs.js");const n=require("../../lib/timing.cjs.js");require("../../_virtual/~icons/svg-spinners/3-dots-fade.cjs.js");const r=require("./Combobox.styles.cjs.js");let i=require("lit"),a=require("lit/decorators.js"),o=require("@lit/task");require("@awesome.me/webawesome/dist/components/popup/popup.js");var s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,A,j,ee,M,N,P,F,te,ne,I,L,R,z,B,V,H,U,W,G,K;function q(e,t,n){re(e,t),t.set(e,n)}function re(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}function J(e,t,n){return e.set(X(e,t),n),n}function Y(e,t){return e.get(X(e,t))}function X(e,t,n){if(typeof e==`function`?e===t:e.has(t))return arguments.length<3?t:n;throw TypeError(`Private element is not present on this object`)}function Z(e,t,n){return(t=ae(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ie(e,t,n,r,i,a){function o(e,t,n){return function(r,i){return n&&n(r),e[t].call(r,i)}}function s(e,t){for(var n=0;n<e.length;n++)e[n].call(t);return t}function c(e,t,n,r){if(typeof e!=`function`&&(r||e!==void 0))throw TypeError(t+` must `+(n||`be`)+` a function`+(r?``:` or undefined`));return e}function l(e,t,n,r,i,a,s,l,u,d,f,p,m){function h(e){if(!m(e))throw TypeError(`Attempted to access private element on non-instance`)}var g,_=t[0],v=t[3],y=!l;if(!y){n||Array.isArray(_)||(_=[_]);var b={},x=[],S=i===3?`get`:i===4||p?`set`:`value`;d?(f||p?b={get:se(function(){return v(this)},r,`get`),set:function(e){t[4](this,e)}}:b[S]=v,f||se(b[S],r,i===2?``:S)):f||(b=Object.getOwnPropertyDescriptor(e,r))}for(var C=e,w=_.length-1;w>=0;w-=n?2:1){var T=_[w],E=n?_[w-1]:void 0,D={},O={kind:[`field`,`accessor`,`method`,`getter`,`setter`,`class`][i],name:r,metadata:a,addInitializer:function(e,t){if(e.v)throw Error(`attempted to call addInitializer after decoration was finished`);c(t,`An initializer`,`be`,!0),s.push(t)}.bind(null,D)};try{if(y)(g=c(T.call(E,C,O),`class decorators`,`return`))&&(C=g);else{var k,A;O.static=u,O.private=d,d?i===2?k=function(e){return h(e),b.value}:(i<4&&(k=o(b,`get`,h)),i!==3&&(A=o(b,`set`,h))):(k=function(e){return e[r]},(i<2||i===4)&&(A=function(e,t){e[r]=t}));var j=O.access={has:d?m.bind():function(e){return r in e}};if(k&&(j.get=k),A&&(j.set=A),C=T.call(E,p?{get:b.get,set:b.set}:b[S],O),p){if(typeof C==`object`&&C)(g=c(C.get,`accessor.get`))&&(b.get=g),(g=c(C.set,`accessor.set`))&&(b.set=g),(g=c(C.init,`accessor.init`))&&x.push(g);else if(C!==void 0)throw TypeError(`accessor decorators must return an object with get, set, or init properties or void 0`)}else c(C,(f?`field`:`method`)+` decorators`,`return`)&&(f?x.push(C):b[S]=C)}}finally{D.v=!0}}return(f||p)&&l.push(function(e,t){for(var n=x.length-1;n>=0;n--)t=x[n].call(e,t);return t}),f||y||(d?p?l.push(o(b,`get`),o(b,`set`)):l.push(i===2?b[S]:o.call.bind(b[S])):Object.defineProperty(e,r,b)),C}function u(e,t){return Object.defineProperty(e,Symbol.metadata||Symbol.for(`Symbol.metadata`),{configurable:!0,enumerable:!0,value:t})}if(arguments.length>=6)var d=a[Symbol.metadata||Symbol.for(`Symbol.metadata`)];var f=Object.create(d??null),p=function(e,t,n,r){var i,a,o=[],c=function(t){return ce(t)===e},u=new Map;function d(e){e&&o.push(s.bind(null,e))}for(var f=0;f<t.length;f++){var p=t[f];if(Array.isArray(p)){var m=p[1],h=p[2],g=p.length>3,_=16&m,v=!!(8&m),y=(m&=7)==0,b=h+`/`+v;if(!y&&!g){var x=u.get(b);if(!0===x||x===3&&m!==4||x===4&&m!==3)throw Error(`Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: `+h);u.set(b,!(m>2)||m)}l(v?e:e.prototype,p,_,g?`#`+h:ae(h),m,r,v?a||=[]:i||=[],o,v,g,y,m===1,v&&g?c:n)}}return d(i),d(a),o}(e,t,i,f);return n.length||u(e,f),{e:p,get c(){var t=[];return n.length&&[u(l(e,[n],r,e.name,5,f,t),f),s.bind(null,t,e)]}}}function ae(e){var t=oe(e,`string`);return typeof t==`symbol`?t:t+``}function oe(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function se(e,t,n){typeof t==`symbol`&&(t=(t=t.description)?`[`+t+`]`:``);try{Object.defineProperty(e,"name",{configurable:!0,value:n?n+` `+t:t})}catch{}return e}function ce(e){if(Object(e)!==e)throw TypeError(`right-hand side of 'in' should be an object, got `+(e===null?`null`:typeof e));return e}function le(e){return e}var Q=class extends Error{};function ue(e){return e}C=[e.customElement(`solid-ui-combobox`)];var $;new(G=(l=new WeakMap,u=new WeakMap,d=new WeakMap,f=new WeakMap,p=new WeakMap,m=new WeakMap,h=new WeakMap,g=new WeakMap,_=new WeakMap,v=new WeakMap,y=new WeakMap,b=new WeakMap,K=(w=(0,a.property)({type:Boolean,reflect:!0,attribute:`select-only`}),E=(0,a.property)({type:String,attribute:`async-options-url`}),O=(0,a.property)({type:String,attribute:`async-options-results-field`}),A=(0,a.property)({type:String,attribute:`async-options-label-field`}),ee=(0,a.property)({type:String,attribute:`async-options-value-field`}),N=(0,a.property)({type:Function}),F=(0,a.property)({type:Array}),ne=(0,a.query)(`input`),L=(0,a.state)(),z=(0,a.state)(),V=(0,a.state)(),U=(0,a.state)(),`selectOnly`),c=class extends t.default{get[K](){return Y(l,this)}set selectOnly(e){J(l,this,e)}get asyncOptionsUrl(){return Y(u,this)}set asyncOptionsUrl(e){J(u,this,e)}get asyncOptionsResultsField(){return Y(d,this)}set asyncOptionsResultsField(e){J(d,this,e)}get asyncOptionsLabelField(){return Y(f,this)}set asyncOptionsLabelField(e){J(f,this,e)}get asyncOptionsValueField(){return Y(p,this)}set asyncOptionsValueField(e){J(p,this,e)}get asyncOptionsProvider(){return Y(m,this)}set asyncOptionsProvider(e){J(m,this,e)}get optionsFallback(){return Y(h,this)}set optionsFallback(e){J(h,this,e)}get controlElement(){return Y(g,this)}set controlElement(e){J(g,this,e)}get filter(){return Y(_,this)}set filter(e){J(_,this,e)}get displayValue(){return Y(v,this)}set displayValue(e){J(v,this,e)}get open(){return Y(y,this)}set open(e){J(y,this,e)}get activeIndex(){return Y(b,this)}set activeIndex(e){J(b,this,e)}constructor(){super(),q(this,l,(x(this),T(this,!1))),q(this,u,D(this,``)),q(this,d,k(this,``)),q(this,f,j(this,``)),q(this,p,M(this,``)),q(this,m,P(this,null)),q(this,h,te(this,null)),q(this,g,I(this,null)),q(this,_,R(this,``)),q(this,v,B(this,``)),q(this,y,H(this,!1)),q(this,b,W(this,-1)),Z(this,`openListenersAttached`,!1),Z(this,`updateDebouncedFilter`,n.debounce(300,e=>this.filter=e)),Z(this,`asyncOptionsTask`,void 0),Z(this,`_selectedOption`,void 0),Z(this,`listboxId`,void 0),Z(this,`handleDocumentFocusIn`,e=>{e.composedPath().includes(this)||this.hide()}),Z(this,`handleDocumentMouseDown`,e=>{e.composedPath().includes(this)||this.hide()}),this.listboxId=`listbox-${this.controlTrait.controlId}`}get selectedOption(){return this._selectedOption}disconnectedCallback(){super.disconnectedCallback(),this.removeOpenListeners()}willUpdate(e){if(super.willUpdate(e),(e.has(`asyncOptionsUrl`)||e.has(`asyncOptionsProvider`))&&this.updateAsyncOptionsTask(),e.has(`value`)){let e=this.getFilteredOptions(),t=e.find(e=>e.selectable!==!1&&e.value===this.value)??this.optionsFallback?.find(e=>e.value===this.value),n=t?.selectable!==!1&&t?.label;this.updateDisplayValue(n||this.value),this.open&&(this.activeIndex=this.getInitialActiveIndex(e)),this._selectedOption&&this._selectedOption.value!==this.value&&(this._selectedOption=void 0)}}render(){let e=this.getFilteredOptions(),t=(this.open&&this.activeIndex>=0?e[this.activeIndex]:void 0)===void 0?void 0:this.getOptionId(this.activeIndex),n=this.placeholder||`Combobox`;return i.html`
1
+ const e=require("../../lib/components/decorators.cjs.js"),t=require("../../lib/components/form-control-component/FormControlComponent.cjs.js");require("../../lib/components/index.cjs.js"),require("../../_virtual/~icons/lucide/chevron-down.cjs.js");const n=require("../../lib/timing.cjs.js");require("../../_virtual/~icons/svg-spinners/3-dots-fade.cjs.js");const r=require("./Combobox.styles.cjs.js");let i=require("lit"),a=require("lit/decorators.js"),o=require("@lit/task");require("@awesome.me/webawesome/dist/components/popup/popup.js");var s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,A,j,M,ee,te,ne,re,ie,ae,N,P,F,I,L,R,z,B,V,H,U,W,G,K;function q(e,t,n){oe(e,t),t.set(e,n)}function oe(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}function J(e,t,n){return e.set(se(e,t),n),n}function Y(e,t){return e.get(se(e,t))}function se(e,t,n){if(typeof e==`function`?e===t:e.has(t))return arguments.length<3?t:n;throw TypeError(`Private element is not present on this object`)}function X(e,t,n){return(t=Z(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ce(e,t,n,r,i,a){function o(e,t,n){return function(r,i){return n&&n(r),e[t].call(r,i)}}function s(e,t){for(var n=0;n<e.length;n++)e[n].call(t);return t}function c(e,t,n,r){if(typeof e!=`function`&&(r||e!==void 0))throw TypeError(t+` must `+(n||`be`)+` a function`+(r?``:` or undefined`));return e}function l(e,t,n,r,i,a,s,l,u,d,f,p,m){function h(e){if(!m(e))throw TypeError(`Attempted to access private element on non-instance`)}var g,_=t[0],v=t[3],y=!l;if(!y){n||Array.isArray(_)||(_=[_]);var b={},x=[],S=i===3?`get`:i===4||p?`set`:`value`;d?(f||p?b={get:ue(function(){return v(this)},r,`get`),set:function(e){t[4](this,e)}}:b[S]=v,f||ue(b[S],r,i===2?``:S)):f||(b=Object.getOwnPropertyDescriptor(e,r))}for(var C=e,w=_.length-1;w>=0;w-=n?2:1){var T=_[w],E=n?_[w-1]:void 0,D={},O={kind:[`field`,`accessor`,`method`,`getter`,`setter`,`class`][i],name:r,metadata:a,addInitializer:function(e,t){if(e.v)throw Error(`attempted to call addInitializer after decoration was finished`);c(t,`An initializer`,`be`,!0),s.push(t)}.bind(null,D)};try{if(y)(g=c(T.call(E,C,O),`class decorators`,`return`))&&(C=g);else{var k,A;O.static=u,O.private=d,d?i===2?k=function(e){return h(e),b.value}:(i<4&&(k=o(b,`get`,h)),i!==3&&(A=o(b,`set`,h))):(k=function(e){return e[r]},(i<2||i===4)&&(A=function(e,t){e[r]=t}));var j=O.access={has:d?m.bind():function(e){return r in e}};if(k&&(j.get=k),A&&(j.set=A),C=T.call(E,p?{get:b.get,set:b.set}:b[S],O),p){if(typeof C==`object`&&C)(g=c(C.get,`accessor.get`))&&(b.get=g),(g=c(C.set,`accessor.set`))&&(b.set=g),(g=c(C.init,`accessor.init`))&&x.push(g);else if(C!==void 0)throw TypeError(`accessor decorators must return an object with get, set, or init properties or void 0`)}else c(C,(f?`field`:`method`)+` decorators`,`return`)&&(f?x.push(C):b[S]=C)}}finally{D.v=!0}}return(f||p)&&l.push(function(e,t){for(var n=x.length-1;n>=0;n--)t=x[n].call(e,t);return t}),f||y||(d?p?l.push(o(b,`get`),o(b,`set`)):l.push(i===2?b[S]:o.call.bind(b[S])):Object.defineProperty(e,r,b)),C}function u(e,t){return Object.defineProperty(e,Symbol.metadata||Symbol.for(`Symbol.metadata`),{configurable:!0,enumerable:!0,value:t})}if(arguments.length>=6)var d=a[Symbol.metadata||Symbol.for(`Symbol.metadata`)];var f=Object.create(d??null),p=function(e,t,n,r){var i,a,o=[],c=function(t){return de(t)===e},u=new Map;function d(e){e&&o.push(s.bind(null,e))}for(var f=0;f<t.length;f++){var p=t[f];if(Array.isArray(p)){var m=p[1],h=p[2],g=p.length>3,_=16&m,v=!!(8&m),y=(m&=7)==0,b=h+`/`+v;if(!y&&!g){var x=u.get(b);if(!0===x||x===3&&m!==4||x===4&&m!==3)throw Error(`Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: `+h);u.set(b,!(m>2)||m)}l(v?e:e.prototype,p,_,g?`#`+h:Z(h),m,r,v?a||=[]:i||=[],o,v,g,y,m===1,v&&g?c:n)}}return d(i),d(a),o}(e,t,i,f);return n.length||u(e,f),{e:p,get c(){var t=[];return n.length&&[u(l(e,[n],r,e.name,5,f,t),f),s.bind(null,t,e)]}}}function Z(e){var t=le(e,`string`);return typeof t==`symbol`?t:t+``}function le(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function ue(e,t,n){typeof t==`symbol`&&(t=(t=t.description)?`[`+t+`]`:``);try{Object.defineProperty(e,"name",{configurable:!0,value:n?n+` `+t:t})}catch{}return e}function de(e){if(Object(e)!==e)throw TypeError(`right-hand side of 'in' should be an object, got `+(e===null?`null`:typeof e));return e}function fe(e){return e}var Q=class extends Error{};function pe(e){return e}w=[e.customElement(`solid-ui-combobox`)];var $;new(G=(l=new WeakMap,u=new WeakMap,d=new WeakMap,f=new WeakMap,p=new WeakMap,m=new WeakMap,h=new WeakMap,g=new WeakMap,_=new WeakMap,v=new WeakMap,y=new WeakMap,b=new WeakMap,x=new WeakMap,K=(T=(0,a.property)({type:Boolean,reflect:!0,attribute:`select-only`}),D=(0,a.property)({type:String,attribute:`async-options-url`}),k=(0,a.property)({type:String,attribute:`async-options-results-field`}),j=(0,a.property)({type:String,attribute:`async-options-label-field`}),ee=(0,a.property)({type:String,attribute:`async-options-value-field`}),ne=(0,a.property)({type:Function}),ie=(0,a.property)({type:Array}),N=(0,a.query)(`input`),F=(0,a.property)({type:Boolean,reflect:!0}),L=(0,a.state)(),z=(0,a.state)(),V=(0,a.state)(),U=(0,a.state)(),`selectOnly`),c=class extends t.default{get[K](){return Y(l,this)}set selectOnly(e){J(l,this,e)}get asyncOptionsUrl(){return Y(u,this)}set asyncOptionsUrl(e){J(u,this,e)}get asyncOptionsResultsField(){return Y(d,this)}set asyncOptionsResultsField(e){J(d,this,e)}get asyncOptionsLabelField(){return Y(f,this)}set asyncOptionsLabelField(e){J(f,this,e)}get asyncOptionsValueField(){return Y(p,this)}set asyncOptionsValueField(e){J(p,this,e)}get asyncOptionsProvider(){return Y(m,this)}set asyncOptionsProvider(e){J(m,this,e)}get optionsFallback(){return Y(h,this)}set optionsFallback(e){J(h,this,e)}get controlElement(){return Y(g,this)}set controlElement(e){J(g,this,e)}get readonly(){return Y(_,this)}set readonly(e){J(_,this,e)}get filter(){return Y(v,this)}set filter(e){J(v,this,e)}get displayValue(){return Y(y,this)}set displayValue(e){J(y,this,e)}get open(){return Y(b,this)}set open(e){J(b,this,e)}get activeIndex(){return Y(x,this)}set activeIndex(e){J(x,this,e)}constructor(){super(),q(this,l,(S(this),E(this,!1))),q(this,u,O(this,``)),q(this,d,A(this,``)),q(this,f,M(this,``)),q(this,p,te(this,``)),q(this,m,re(this,null)),q(this,h,ae(this,null)),q(this,g,P(this,null)),q(this,_,I(this,!1)),q(this,v,R(this,``)),q(this,y,B(this,``)),q(this,b,H(this,!1)),q(this,x,W(this,-1)),X(this,`openListenersAttached`,!1),X(this,`updateDebouncedFilter`,n.debounce(300,e=>this.filter=e)),X(this,`asyncOptionsTask`,void 0),X(this,`_selectedOption`,void 0),X(this,`listboxId`,void 0),X(this,`handleDocumentFocusIn`,e=>{e.composedPath().includes(this)||this.hide()}),X(this,`handleDocumentMouseDown`,e=>{e.composedPath().includes(this)||this.hide()}),this.listboxId=`listbox-${this.controlTrait.controlId}`}get selectedOption(){return this._selectedOption}disconnectedCallback(){super.disconnectedCallback(),this.removeOpenListeners()}willUpdate(e){if(super.willUpdate(e),(e.has(`asyncOptionsUrl`)||e.has(`asyncOptionsProvider`))&&this.updateAsyncOptionsTask(),e.has(`value`)){let e=this.getFilteredOptions(),t=e.find(e=>e.selectable!==!1&&e.value===this.value)??this.optionsFallback?.find(e=>e.value===this.value),n=t?.selectable!==!1&&t?.label;this.updateDisplayValue(n||this.value),this.open&&(this.activeIndex=this.getInitialActiveIndex(e)),this._selectedOption&&this._selectedOption.value!==this.value&&(this._selectedOption=void 0)}}render(){let e=this.getFilteredOptions(),t=(this.open&&this.activeIndex>=0?e[this.activeIndex]:void 0)===void 0?void 0:this.getOptionId(this.activeIndex),n=this.placeholder||`Combobox`;return i.html`
2
2
  ${this.controlTrait.renderLabel()}
3
3
  <wa-popup
4
4
  placement="bottom"
@@ -55,5 +55,5 @@ const e=require("../../lib/components/decorators.cjs.js"),t=require("../../lib/c
55
55
  </div>`)}
56
56
  </div>
57
57
  </wa-popup>
58
- `}getFilteredOptions(){return this.asyncOptionsTask?this.asyncOptionsTask.render({initial:()=>this.optionsFallback??[],complete:e=>e,pending:()=>[{value:``,label:`Loading...`,template:i.html`<icon-svg-spinners-3-dots-fade></icon-svg-spinners-3-dots-fade>`,selectable:!1}],error:e=>{let t=!(e instanceof Q),n=Object(e).message??`Something went wrong`;return[{value:``,label:n,template:i.html`<span class="message message--${t?`error`:`info`}">${n}</span>`,selectable:!1}]}}):this.getOptionsFromDOM().filter(e=>String(e.label).toLowerCase().includes(this.filter))}getOptionsFromDOM(){let e=this.querySelectorAll(`solid-ui-combobox-option`);return Array.from(e).map(e=>({value:e.value,label:e.textContent??``}))}getOptionId(e){return`${this.listboxId}-option-${e}`}getInitialActiveIndex(e){let t=e.findIndex(e=>e.value===this.value);return t>=0?t:e.length>0?0:-1}getNextIndex(e,t,n){return t.length===0?-1:(e+n+t.length)%t.length}setActiveIndex(e){this.activeIndex=e}updateDisplayValue(e){if(this.displayValue=e?String(e):``,this.open){let e=this.displayValue.toLowerCase();this.asyncOptionsTask?this.updateDebouncedFilter(e):this.filter=e}}updateAsyncOptionsTask(){if(!this.asyncOptionsUrl&&!this.asyncOptionsProvider){this.asyncOptionsTask=void 0;return}this.asyncOptionsTask??=new o.Task(this,async([e])=>{if(this.asyncOptionsProvider){let t=await this.asyncOptionsProvider(e);if(t.length===0)throw new Q(`No results found`);return t}let t=await(await fetch(this.asyncOptionsUrl.replace(`%search%`,encodeURIComponent(e)))).json(),n=Array.from(this.asyncOptionsResultsField?t[this.asyncOptionsResultsField]:t);if(n.length===0)throw new Q(`No results found`);let r=this.asyncOptionsLabelField||`label`,i=this.asyncOptionsValueField||`value`;return n.map(e=>({label:String(Object(e)[r]),value:Object(e)[i]}))},()=>[this.filter])}show(e){if(this.open)return;let t=this.getFilteredOptions();t.length!==0&&(this.open=!0,this.activeIndex=e?.focusLast?t.length-1:this.getInitialActiveIndex(t),this.addOpenListeners(),requestAnimationFrame(()=>this.scrollActiveOptionIntoView()))}hide(){this.open&&(this.filter=``,this.open=!1,this.activeIndex=-1,this.removeOpenListeners(),this.updateDebouncedFilter.cancel())}selectOption(e){let t=this.value;this._selectedOption=e,this.hide(),this.controlTrait.setValue(e.value),this.controlElement?.focus({preventScroll:!0}),this.dispatchEvent(new CustomEvent(`change`,{bubbles:!0,composed:!0,detail:{option:e}})),t===this.value&&this.updateDisplayValue(e.label)}scrollActiveOptionIntoView(){this.activeIndex<0||this.shadowRoot?.querySelector(`#${this.getOptionId(this.activeIndex)}`)?.scrollIntoView({block:`nearest`})}addOpenListeners(){if(this.openListenersAttached)return;document.addEventListener(`focusin`,this.handleDocumentFocusIn),document.addEventListener(`mousedown`,this.handleDocumentMouseDown);let e=this.getRootNode();e!==document&&e.addEventListener(`focusin`,this.handleDocumentFocusIn),this.openListenersAttached=!0}removeOpenListeners(){if(!this.openListenersAttached)return;document.removeEventListener(`focusin`,this.handleDocumentFocusIn),document.removeEventListener(`mousedown`,this.handleDocumentMouseDown);let e=this.getRootNode();e!==document&&e.removeEventListener(`focusin`,this.handleDocumentFocusIn),this.openListenersAttached=!1}onAnchorMouseDown(e){e.target!==this.controlElement&&(e.preventDefault(),this.controlElement?.focus({preventScroll:!0}))}onInputFocus(){this.show()}openPopupFromKey(e){this.open||this.show({focusLast:e})}onInputKeyDown(e){let t=this.getFilteredOptions();switch(e.key){case`ArrowDown`:e.preventDefault(),this.open?(this.activeIndex=this.getNextIndex(this.activeIndex,t,1),this.scrollActiveOptionIntoView()):this.openPopupFromKey(!1);break;case`ArrowUp`:e.preventDefault(),this.open?(this.activeIndex=this.getNextIndex(this.activeIndex,t,-1),this.scrollActiveOptionIntoView()):this.openPopupFromKey(!0);break;case`Enter`:this.open&&this.activeIndex>=0&&t[this.activeIndex]?(e.preventDefault(),this.selectOption(t[this.activeIndex])):this.open||(e.preventDefault(),this.controlTrait.onSubmit());break;case`Escape`:this.open&&(e.preventDefault(),e.stopPropagation(),this.hide(),this.controlElement?.focus({preventScroll:!0}));break;case`Tab`:this.hide();break;default:this.open||this.show()}}onListboxMouseDown(e){if(e.preventDefault(),!(e.target instanceof HTMLElement))return;let t=e.target.closest(`[role="option"]`);if(!t)return;let n=t.id,r=Number.parseInt(n.replace(`${this.listboxId}-option-`,``),10),i=this.getFilteredOptions()[r];i&&this.selectOption(i)}},{e:[T,D,k,j,M,P,te,I,R,B,H,W,x],c:[$,S]}=ie(c,[[w,1,`selectOnly`],[E,1,`asyncOptionsUrl`],[O,1,`asyncOptionsResultsField`],[A,1,`asyncOptionsLabelField`],[ee,1,`asyncOptionsValueField`],[N,1,`asyncOptionsProvider`],[F,1,`optionsFallback`],[ne,1,`controlElement`],[L,1,`filter`],[z,1,`displayValue`],[V,1,`open`],[U,1,`activeIndex`]],C,0,void 0,t.default),c),s=class extends le{constructor(){super($),Z(this,`styles`,r.default),S()}},Z(s,G,void 0),s),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return $}}),exports.defineAsyncComboboxOptionsProvider=ue;
58
+ `}getFilteredOptions(){return this.asyncOptionsTask?this.asyncOptionsTask.render({initial:()=>this.optionsFallback??[],complete:e=>e,pending:()=>[{value:``,label:`Loading...`,template:i.html`<icon-svg-spinners-3-dots-fade></icon-svg-spinners-3-dots-fade>`,selectable:!1}],error:e=>{let t=!(e instanceof Q),n=Object(e).message??`Something went wrong`;return[{value:``,label:n,template:i.html`<span class="message message--${t?`error`:`info`}">${n}</span>`,selectable:!1}]}}):this.getOptionsFromDOM().filter(e=>String(e.label).toLowerCase().includes(this.filter))}getOptionsFromDOM(){let e=this.querySelectorAll(`solid-ui-combobox-option`);return Array.from(e).map(e=>({value:e.value,label:e.textContent??``}))}getOptionId(e){return`${this.listboxId}-option-${e}`}getInitialActiveIndex(e){let t=e.findIndex(e=>e.value===this.value);return t>=0?t:e.length>0?0:-1}getNextIndex(e,t,n){return t.length===0?-1:(e+n+t.length)%t.length}setActiveIndex(e){this.activeIndex=e}updateDisplayValue(e){if(this.displayValue=e?String(e):``,this.open){let e=this.displayValue.toLowerCase();this.asyncOptionsTask?this.updateDebouncedFilter(e):this.filter=e}}updateAsyncOptionsTask(){if(!this.asyncOptionsUrl&&!this.asyncOptionsProvider){this.asyncOptionsTask=void 0;return}this.asyncOptionsTask??=new o.Task(this,async([e])=>{if(this.asyncOptionsProvider){let t=await this.asyncOptionsProvider(e);if(t.length===0)throw new Q(`No results found`);return t}let t=await(await fetch(this.asyncOptionsUrl.replace(`%search%`,encodeURIComponent(e)))).json(),n=Array.from(this.asyncOptionsResultsField?t[this.asyncOptionsResultsField]:t);if(n.length===0)throw new Q(`No results found`);let r=this.asyncOptionsLabelField||`label`,i=this.asyncOptionsValueField||`value`;return n.map(e=>({label:String(Object(e)[r]),value:Object(e)[i]}))},()=>[this.filter])}show(e){if(this.open)return;let t=this.getFilteredOptions();t.length!==0&&(this.open=!0,this.activeIndex=e?.focusLast?t.length-1:this.getInitialActiveIndex(t),this.addOpenListeners(),requestAnimationFrame(()=>this.scrollActiveOptionIntoView()))}hide(){this.open&&(this.filter=``,this.open=!1,this.activeIndex=-1,this.removeOpenListeners(),this.updateDebouncedFilter.cancel())}selectOption(e){let t=this.value;this._selectedOption=e,this.hide(),this.controlTrait.setValue(e.value),this.controlElement?.focus({preventScroll:!0}),this.dispatchEvent(new CustomEvent(`change`,{bubbles:!0,composed:!0,detail:{option:e}})),t===this.value&&this.updateDisplayValue(e.label)}scrollActiveOptionIntoView(){this.activeIndex<0||this.shadowRoot?.querySelector(`#${this.getOptionId(this.activeIndex)}`)?.scrollIntoView({block:`nearest`})}addOpenListeners(){if(this.openListenersAttached)return;document.addEventListener(`focusin`,this.handleDocumentFocusIn),document.addEventListener(`mousedown`,this.handleDocumentMouseDown);let e=this.getRootNode();e!==document&&e.addEventListener(`focusin`,this.handleDocumentFocusIn),this.openListenersAttached=!0}removeOpenListeners(){if(!this.openListenersAttached)return;document.removeEventListener(`focusin`,this.handleDocumentFocusIn),document.removeEventListener(`mousedown`,this.handleDocumentMouseDown);let e=this.getRootNode();e!==document&&e.removeEventListener(`focusin`,this.handleDocumentFocusIn),this.openListenersAttached=!1}onAnchorMouseDown(e){e.target!==this.controlElement&&(e.preventDefault(),this.controlElement?.focus({preventScroll:!0}))}onInputFocus(){this.show()}openPopupFromKey(e){this.open||this.show({focusLast:e})}onInputKeyDown(e){let t=this.getFilteredOptions();switch(e.key){case`ArrowDown`:e.preventDefault(),this.open?(this.activeIndex=this.getNextIndex(this.activeIndex,t,1),this.scrollActiveOptionIntoView()):this.openPopupFromKey(!1);break;case`ArrowUp`:e.preventDefault(),this.open?(this.activeIndex=this.getNextIndex(this.activeIndex,t,-1),this.scrollActiveOptionIntoView()):this.openPopupFromKey(!0);break;case`Enter`:this.open&&this.activeIndex>=0&&t[this.activeIndex]?(e.preventDefault(),this.selectOption(t[this.activeIndex])):this.open||(e.preventDefault(),this.controlTrait.onSubmit());break;case`Escape`:this.open&&(e.preventDefault(),e.stopPropagation(),this.hide(),this.controlElement?.focus({preventScroll:!0}));break;case`Tab`:this.hide();break;default:this.open||this.show()}}onListboxMouseDown(e){if(e.preventDefault(),!(e.target instanceof HTMLElement))return;let t=e.target.closest(`[role="option"]`);if(!t)return;let n=t.id,r=Number.parseInt(n.replace(`${this.listboxId}-option-`,``),10),i=this.getFilteredOptions()[r];i&&this.selectOption(i)}},{e:[E,O,A,M,te,re,ae,P,I,R,B,H,W,S],c:[$,C]}=ce(c,[[T,1,`selectOnly`],[D,1,`asyncOptionsUrl`],[k,1,`asyncOptionsResultsField`],[j,1,`asyncOptionsLabelField`],[ee,1,`asyncOptionsValueField`],[ne,1,`asyncOptionsProvider`],[ie,1,`optionsFallback`],[N,1,`controlElement`],[F,1,`readonly`],[L,1,`filter`],[z,1,`displayValue`],[V,1,`open`],[U,1,`activeIndex`]],w,0,void 0,t.default),c),s=class extends fe{constructor(){super($),X(this,`styles`,r.default),C()}},X(s,G,void 0),s),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return $}}),exports.defineAsyncComboboxOptionsProvider=pe;
59
59
  //# sourceMappingURL=Combobox.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Combobox.cjs.js","names":["customElement","FormControlComponent","Task","html","nothing","property","query","state","debounce","styles","AsyncOptionsInfo","Error","defineAsyncComboboxOptionsProvider","provider","_classDecs","_Combobox","_Combobox2","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_ref","_selectOnlyDecs","type","Boolean","reflect","attribute","_asyncOptionsUrlDecs","String","_asyncOptionsResultsFieldDecs","_asyncOptionsLabelFieldDecs","_asyncOptionsValueFieldDecs","_asyncOptionsProviderDecs","Function","_optionsFallbackDecs","Array","_controlElementDecs","_filterDecs","_displayValueDecs","_openDecs","_activeIndexDecs","_Combobox3","Combobox","_classPrivateFieldGet","selectOnly","v","_classPrivateFieldSet","asyncOptionsUrl","asyncOptionsResultsField","asyncOptionsLabelField","asyncOptionsValueField","asyncOptionsProvider","optionsFallback","controlElement","filter","displayValue","open","activeIndex","constructor","_classPrivateFieldInitSpec","_initProto","_init_selectOnly","_init_asyncOptionsUrl","_init_asyncOptionsResultsField","_init_asyncOptionsLabelField","_init_asyncOptionsValueField","_init_asyncOptionsProvider","_init_optionsFallback","_init_controlElement","_init_filter","_init_displayValue","_init_open","_init_activeIndex","_defineProperty","value","event","path","composedPath","includes","hide","listboxId","controlTrait","controlId","selectedOption","_selectedOption","disconnectedCallback","removeOpenListeners","willUpdate","changedProperties","has","updateAsyncOptionsTask","options","getFilteredOptions","option","find","selectable","optionLabel","label","updateDisplayValue","getInitialActiveIndex","undefined","render","activeOption","activeDescendant","getOptionId","accessibleName","placeholder","renderLabel","onAnchorMouseDown","name","labelId","required","onInputKeyDown","onInputFocus","onInput","onListboxMouseDown","map","index","setActiveIndex","template","asyncOptionsTask","initial","complete","pending","error","isError","message","Object","getOptionsFromDOM","toLowerCase","querySelectorAll","from","textContent","selectedIndex","findIndex","length","getNextIndex","currentIndex","direction","updateDebouncedFilter","results","response","fetch","replace","encodeURIComponent","data","json","labelField","valueField","result","show","filteredOptions","focusLast","addOpenListeners","requestAnimationFrame","scrollActiveOptionIntoView","cancel","selectOption","previousValue","setValue","focus","preventScroll","dispatchEvent","CustomEvent","bubbles","composed","detail","shadowRoot","querySelector","scrollIntoView","block","openListenersAttached","document","addEventListener","handleDocumentFocusIn","handleDocumentMouseDown","root","getRootNode","removeEventListener","target","preventDefault","openPopupFromKey","key","onSubmit","stopPropagation","HTMLElement","optionElement","closest","optionId","id","Number","parseInt","e","c","_initClass","_applyDecs","_Class","_identity","default"],"sources":["../../../src/components/combobox/Combobox.ts"],"sourcesContent":["import { customElement, FormControlComponent, FormControlValue } from '@/lib/components'\nimport { Task } from '@lit/task'\nimport { html, nothing, TemplateResult, type PropertyValues } from 'lit'\nimport { property, query, state } from 'lit/decorators.js'\nimport { debounce } from '@/lib/timing'\nimport type ComboboxOption from '@/components/combobox-option/ComboboxOption'\n\nimport '~icons/lucide/chevron-down'\nimport '~icons/svg-spinners/3-dots-fade'\nimport '@awesome.me/webawesome/dist/components/popup/popup.js'\n\nimport styles from './Combobox.styles.css'\n\nclass AsyncOptionsInfo extends Error {}\n\nexport type ComboboxOptionData = {\n value: FormControlValue;\n label: string;\n template?: TemplateResult;\n selectable?: boolean;\n}\n\nexport type ComboboxChangeEvent = CustomEvent<{ option: ComboboxOptionData }>\n\nexport type AsyncComboboxOptionsProvider = (query: string) => Promise<ComboboxOptionData[]>\n\nexport function defineAsyncComboboxOptionsProvider<T extends AsyncComboboxOptionsProvider> (provider: T): T {\n return provider\n}\n\n@customElement('solid-ui-combobox')\nexport default class Combobox extends FormControlComponent {\n static styles = styles\n\n @property({ type: Boolean, reflect: true, attribute: 'select-only' })\n accessor selectOnly = false\n\n @property({ type: String, attribute: 'async-options-url' })\n accessor asyncOptionsUrl = ''\n\n @property({ type: String, attribute: 'async-options-results-field' })\n accessor asyncOptionsResultsField = ''\n\n @property({ type: String, attribute: 'async-options-label-field' })\n accessor asyncOptionsLabelField = ''\n\n @property({ type: String, attribute: 'async-options-value-field' })\n accessor asyncOptionsValueField = ''\n\n @property({ type: Function })\n accessor asyncOptionsProvider: AsyncComboboxOptionsProvider | null = null\n\n @property({ type: Array })\n accessor optionsFallback: ComboboxOptionData[] | null = null\n\n @query('input')\n protected accessor controlElement: HTMLInputElement | null = null\n\n @state()\n private accessor filter = ''\n\n @state()\n private accessor displayValue = ''\n\n @state()\n private accessor open = false\n\n @state()\n private accessor activeIndex = -1\n\n private openListenersAttached = false\n private updateDebouncedFilter = debounce(300, (value) => (this.filter = value))\n private asyncOptionsTask?: Task<readonly [string], ComboboxOptionData[]>\n private _selectedOption: ComboboxOptionData | undefined\n private readonly listboxId: string\n\n constructor () {\n super()\n\n this.listboxId = `listbox-${this.controlTrait.controlId}`\n }\n\n get selectedOption (): ComboboxOptionData | undefined {\n return this._selectedOption\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.removeOpenListeners()\n }\n\n protected willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n\n if (changedProperties.has('asyncOptionsUrl') || changedProperties.has('asyncOptionsProvider')) {\n this.updateAsyncOptionsTask()\n }\n\n if (changedProperties.has('value')) {\n const options = this.getFilteredOptions()\n const option = options.find((option) => option.selectable !== false && option.value === this.value) ??\n this.optionsFallback?.find((option) => option.value === this.value)\n const optionLabel = option?.selectable !== false && option?.label\n\n this.updateDisplayValue(optionLabel || this.value)\n\n if (this.open) {\n this.activeIndex = this.getInitialActiveIndex(options)\n }\n\n if (this._selectedOption && this._selectedOption.value !== this.value) {\n this._selectedOption = undefined\n }\n }\n }\n\n protected render () {\n const options = this.getFilteredOptions()\n const activeOption =\n this.open && this.activeIndex >= 0 ? options[this.activeIndex] : undefined\n const activeDescendant =\n activeOption !== undefined ? this.getOptionId(this.activeIndex) : undefined\n const accessibleName = this.placeholder || 'Combobox'\n\n return html`\n ${this.controlTrait.renderLabel()}\n <wa-popup\n placement=\"bottom\"\n flip\n shift\n sync=\"width\"\n auto-size=\"vertical\"\n auto-size-padding=\"10\"\n ?active=${this.open}\n >\n <div class=\"input-wrapper\" slot=\"anchor\" @mousedown=${this.onAnchorMouseDown}>\n <input\n id=\"${this.controlTrait.controlId}\"\n type=\"text\"\n name=${this.name}\n placeholder=${this.placeholder}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-controls=${this.listboxId}\n aria-activedescendant=${activeDescendant ?? nothing}\n aria-labelledby=${this.label ? this.controlTrait.labelId : nothing}\n aria-label=${this.label ? nothing : accessibleName}\n aria-required=${this.required ? 'true' : nothing}\n autocomplete=\"off\"\n spellcheck=\"false\"\n ?required=${this.required}\n .value=${this.displayValue}\n @keydown=${this.onInputKeyDown}\n @focus=${this.onInputFocus}\n @input=${() => this.selectOnly ? this.updateDisplayValue(this.controlElement?.value ?? '') : this.controlTrait.onInput()}\n />\n <icon-lucide-chevron-down></icon-lucide-chevron-down>\n </div>\n <div\n id=${this.listboxId}\n class=\"listbox\"\n role=\"listbox\"\n aria-orientation=\"vertical\"\n aria-labelledby=${this.label ? this.controlTrait.labelId : nothing}\n aria-label=${this.label ? nothing : accessibleName}\n ?hidden=${!this.open}\n @mousedown=${this.onListboxMouseDown}\n >\n ${options.map((option, index) => {\n return option.selectable !== false\n ? html`<div\n id=${this.getOptionId(index)}\n role=\"option\"\n aria-selected=${option.value === this.value ? 'true' : 'false'}\n data-active=${index === this.activeIndex || nothing}\n @mousemove=${() => this.setActiveIndex(index)}\n >\n ${option.template ?? option.label}\n </div>`\n : html`<div class=\"non-selectable-option\">${option.template ?? option.label}</div>`\n })}\n </div>\n </wa-popup>\n `\n }\n\n private getFilteredOptions (): ComboboxOptionData[] {\n if (this.asyncOptionsTask) {\n return this.asyncOptionsTask.render({\n initial: () => this.optionsFallback ?? [],\n complete: (options) => options,\n pending: () => [\n {\n value: '',\n label: 'Loading...',\n template: html`<icon-svg-spinners-3-dots-fade></icon-svg-spinners-3-dots-fade>`,\n selectable: false\n } as const,\n ],\n error: (error) => {\n const isError = !(error instanceof AsyncOptionsInfo)\n const message = Object(error).message ?? 'Something went wrong'\n\n return [\n {\n value: '',\n label: message,\n template: html`<span class=\"message message--${isError ? 'error' : 'info'}\">${message}</span>`,\n selectable: false\n } as const,\n ]\n },\n })\n }\n\n return this.getOptionsFromDOM().filter((option) =>\n String(option.label).toLowerCase().includes(this.filter)\n )\n }\n\n private getOptionsFromDOM (): ComboboxOptionData[] {\n const options = this.querySelectorAll<ComboboxOption>(\n 'solid-ui-combobox-option'\n )\n\n return Array.from(options).map((option) => ({\n value: option.value,\n label: option.textContent ?? '',\n }))\n }\n\n private getOptionId (index: number): string {\n return `${this.listboxId}-option-${index}`\n }\n\n private getInitialActiveIndex (options: ComboboxOptionData[]): number {\n const selectedIndex = options.findIndex((option) => option.value === this.value)\n\n if (selectedIndex >= 0) {\n return selectedIndex\n }\n\n return options.length > 0 ? 0 : -1\n }\n\n private getNextIndex (\n currentIndex: number,\n options: ComboboxOptionData[],\n direction: 1 | -1\n ): number {\n if (options.length === 0) {\n return -1\n }\n\n return (currentIndex + direction + options.length) % options.length\n }\n\n private setActiveIndex (index: number) {\n this.activeIndex = index\n }\n\n private updateDisplayValue (value: unknown) {\n this.displayValue = value ? String(value) : ''\n\n if (this.open) {\n const filter = this.displayValue.toLowerCase()\n\n if (this.asyncOptionsTask) {\n this.updateDebouncedFilter(filter)\n } else {\n this.filter = filter\n }\n }\n }\n\n private updateAsyncOptionsTask () {\n if (!this.asyncOptionsUrl && !this.asyncOptionsProvider) {\n this.asyncOptionsTask = undefined\n\n return\n }\n\n this.asyncOptionsTask ??= new Task(\n this,\n async ([filter]) => {\n if (this.asyncOptionsProvider) {\n const results = await this.asyncOptionsProvider(filter)\n\n if (results.length === 0) {\n throw new AsyncOptionsInfo('No results found')\n }\n\n return results\n }\n\n const response = await fetch(\n this.asyncOptionsUrl.replace('%search%', encodeURIComponent(filter))\n )\n const data = await response.json()\n const results = Array.from(\n this.asyncOptionsResultsField\n ? data[this.asyncOptionsResultsField]\n : data\n )\n\n if (results.length === 0) {\n throw new AsyncOptionsInfo('No results found')\n }\n\n const labelField = this.asyncOptionsLabelField || 'label'\n const valueField = this.asyncOptionsValueField || 'value'\n\n return results.map((result) => ({\n label: String(Object(result)[labelField]),\n value: Object(result)[valueField],\n }))\n },\n () => [this.filter]\n )\n }\n\n private show (options?: { focusLast?: boolean }) {\n if (this.open) {\n return\n }\n\n const filteredOptions = this.getFilteredOptions()\n\n if (filteredOptions.length === 0) {\n return\n }\n\n this.open = true\n this.activeIndex = options?.focusLast\n ? filteredOptions.length - 1\n : this.getInitialActiveIndex(filteredOptions)\n this.addOpenListeners()\n\n requestAnimationFrame(() => this.scrollActiveOptionIntoView())\n }\n\n private hide () {\n if (!this.open) {\n return\n }\n\n this.filter = ''\n this.open = false\n this.activeIndex = -1\n this.removeOpenListeners()\n this.updateDebouncedFilter.cancel()\n }\n\n private selectOption (option: ComboboxOptionData) {\n const previousValue = this.value\n\n this._selectedOption = option\n\n this.hide()\n this.controlTrait.setValue(option.value)\n this.controlElement?.focus({ preventScroll: true })\n this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true, detail: { option } }))\n\n if (previousValue === this.value) {\n this.updateDisplayValue(option.label)\n }\n }\n\n private scrollActiveOptionIntoView () {\n if (this.activeIndex < 0) {\n return\n }\n\n this.shadowRoot\n ?.querySelector(`#${this.getOptionId(this.activeIndex)}`)\n ?.scrollIntoView({ block: 'nearest' })\n }\n\n private addOpenListeners () {\n if (this.openListenersAttached) {\n return\n }\n\n document.addEventListener('focusin', this.handleDocumentFocusIn)\n document.addEventListener('mousedown', this.handleDocumentMouseDown)\n\n const root = this.getRootNode()\n\n if (root !== document) {\n root.addEventListener('focusin', this.handleDocumentFocusIn)\n }\n\n this.openListenersAttached = true\n }\n\n private removeOpenListeners () {\n if (!this.openListenersAttached) {\n return\n }\n\n document.removeEventListener('focusin', this.handleDocumentFocusIn)\n document.removeEventListener('mousedown', this.handleDocumentMouseDown)\n\n const root = this.getRootNode()\n\n if (root !== document) {\n root.removeEventListener('focusin', this.handleDocumentFocusIn)\n }\n\n this.openListenersAttached = false\n }\n\n private handleDocumentFocusIn = (event: Event) => {\n const path = event.composedPath()\n\n if (!path.includes(this)) {\n this.hide()\n }\n }\n\n private handleDocumentMouseDown = (event: MouseEvent) => {\n const path = event.composedPath()\n\n if (!path.includes(this)) {\n this.hide()\n }\n }\n\n private onAnchorMouseDown (event: MouseEvent) {\n if (event.target === this.controlElement) {\n return\n }\n\n event.preventDefault()\n this.controlElement?.focus({ preventScroll: true })\n }\n\n private onInputFocus () {\n this.show()\n }\n\n private openPopupFromKey (focusLast: boolean) {\n if (!this.open) {\n this.show({ focusLast })\n }\n }\n\n private onInputKeyDown (event: KeyboardEvent) {\n const options = this.getFilteredOptions()\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault()\n\n if (!this.open) {\n this.openPopupFromKey(false)\n } else {\n this.activeIndex = this.getNextIndex(this.activeIndex, options, 1)\n this.scrollActiveOptionIntoView()\n }\n break\n case 'ArrowUp':\n event.preventDefault()\n\n if (!this.open) {\n this.openPopupFromKey(true)\n } else {\n this.activeIndex = this.getNextIndex(this.activeIndex, options, -1)\n this.scrollActiveOptionIntoView()\n }\n break\n case 'Enter':\n if (this.open && this.activeIndex >= 0 && options[this.activeIndex]) {\n event.preventDefault()\n this.selectOption(options[this.activeIndex])\n } else if (!this.open) {\n event.preventDefault()\n this.controlTrait.onSubmit()\n }\n break\n case 'Escape':\n if (this.open) {\n event.preventDefault()\n event.stopPropagation()\n this.hide()\n this.controlElement?.focus({ preventScroll: true })\n }\n break\n case 'Tab':\n this.hide()\n break\n default:\n if (!this.open) {\n this.show()\n }\n }\n }\n\n private onListboxMouseDown (event: MouseEvent) {\n event.preventDefault()\n\n if (!(event.target instanceof HTMLElement)) {\n return\n }\n\n const optionElement = event.target.closest('[role=\"option\"]')\n\n if (!optionElement) {\n return\n }\n\n const optionId = optionElement.id\n const index = Number.parseInt(optionId.replace(`${this.listboxId}-option-`, ''), 10)\n const option = this.getFilteredOptions()[index]\n\n if (option) {\n this.selectOption(option)\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Combobox.cjs.js","names":["customElement","FormControlComponent","Task","html","nothing","property","query","state","debounce","styles","AsyncOptionsInfo","Error","defineAsyncComboboxOptionsProvider","provider","_classDecs","_Combobox","_Combobox2","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_ref","_selectOnlyDecs","type","Boolean","reflect","attribute","_asyncOptionsUrlDecs","String","_asyncOptionsResultsFieldDecs","_asyncOptionsLabelFieldDecs","_asyncOptionsValueFieldDecs","_asyncOptionsProviderDecs","Function","_optionsFallbackDecs","Array","_controlElementDecs","_readonlyDecs","_filterDecs","_displayValueDecs","_openDecs","_activeIndexDecs","_Combobox3","Combobox","_classPrivateFieldGet","selectOnly","v","_classPrivateFieldSet","asyncOptionsUrl","asyncOptionsResultsField","asyncOptionsLabelField","asyncOptionsValueField","asyncOptionsProvider","optionsFallback","controlElement","readonly","filter","displayValue","open","activeIndex","constructor","_classPrivateFieldInitSpec","_initProto","_init_selectOnly","_init_asyncOptionsUrl","_init_asyncOptionsResultsField","_init_asyncOptionsLabelField","_init_asyncOptionsValueField","_init_asyncOptionsProvider","_init_optionsFallback","_init_controlElement","_init_readonly","_init_filter","_init_displayValue","_init_open","_init_activeIndex","_defineProperty","value","event","path","composedPath","includes","hide","listboxId","controlTrait","controlId","selectedOption","_selectedOption","disconnectedCallback","removeOpenListeners","willUpdate","changedProperties","has","updateAsyncOptionsTask","options","getFilteredOptions","option","find","selectable","optionLabel","label","updateDisplayValue","getInitialActiveIndex","undefined","render","activeOption","activeDescendant","getOptionId","accessibleName","placeholder","renderLabel","onAnchorMouseDown","name","labelId","required","onInputKeyDown","onInputFocus","onInput","onListboxMouseDown","map","index","setActiveIndex","template","asyncOptionsTask","initial","complete","pending","error","isError","message","Object","getOptionsFromDOM","toLowerCase","querySelectorAll","from","textContent","selectedIndex","findIndex","length","getNextIndex","currentIndex","direction","updateDebouncedFilter","results","response","fetch","replace","encodeURIComponent","data","json","labelField","valueField","result","show","filteredOptions","focusLast","addOpenListeners","requestAnimationFrame","scrollActiveOptionIntoView","cancel","selectOption","previousValue","setValue","focus","preventScroll","dispatchEvent","CustomEvent","bubbles","composed","detail","shadowRoot","querySelector","scrollIntoView","block","openListenersAttached","document","addEventListener","handleDocumentFocusIn","handleDocumentMouseDown","root","getRootNode","removeEventListener","target","preventDefault","openPopupFromKey","key","onSubmit","stopPropagation","HTMLElement","optionElement","closest","optionId","id","Number","parseInt","e","c","_initClass","_applyDecs","_Class","_identity","default"],"sources":["../../../src/components/combobox/Combobox.ts"],"sourcesContent":["import { customElement, FormControlComponent, FormControlValue } from '@/lib/components'\nimport { Task } from '@lit/task'\nimport { html, nothing, TemplateResult, type PropertyValues } from 'lit'\nimport { property, query, state } from 'lit/decorators.js'\nimport { debounce } from '@/lib/timing'\nimport type ComboboxOption from '@/components/combobox-option/ComboboxOption'\n\nimport '~icons/lucide/chevron-down'\nimport '~icons/svg-spinners/3-dots-fade'\nimport '@awesome.me/webawesome/dist/components/popup/popup.js'\n\nimport styles from './Combobox.styles.css'\n\nclass AsyncOptionsInfo extends Error {}\n\nexport type ComboboxOptionData = {\n value: FormControlValue;\n label: string;\n template?: TemplateResult;\n selectable?: boolean;\n}\n\nexport type ComboboxChangeEvent = CustomEvent<{ option: ComboboxOptionData }>\n\nexport type AsyncComboboxOptionsProvider = (query: string) => Promise<ComboboxOptionData[]>\n\nexport function defineAsyncComboboxOptionsProvider<T extends AsyncComboboxOptionsProvider> (provider: T): T {\n return provider\n}\n\n@customElement('solid-ui-combobox')\nexport default class Combobox extends FormControlComponent {\n static styles = styles\n\n @property({ type: Boolean, reflect: true, attribute: 'select-only' })\n accessor selectOnly = false\n\n @property({ type: String, attribute: 'async-options-url' })\n accessor asyncOptionsUrl = ''\n\n @property({ type: String, attribute: 'async-options-results-field' })\n accessor asyncOptionsResultsField = ''\n\n @property({ type: String, attribute: 'async-options-label-field' })\n accessor asyncOptionsLabelField = ''\n\n @property({ type: String, attribute: 'async-options-value-field' })\n accessor asyncOptionsValueField = ''\n\n @property({ type: Function })\n accessor asyncOptionsProvider: AsyncComboboxOptionsProvider | null = null\n\n @property({ type: Array })\n accessor optionsFallback: ComboboxOptionData[] | null = null\n\n @query('input')\n protected accessor controlElement: HTMLInputElement | null = null\n\n @property({ type: Boolean, reflect: true })\n accessor readonly = false\n\n @state()\n private accessor filter = ''\n\n @state()\n private accessor displayValue = ''\n\n @state()\n private accessor open = false\n\n @state()\n private accessor activeIndex = -1\n\n private openListenersAttached = false\n private updateDebouncedFilter = debounce(300, (value) => (this.filter = value))\n private asyncOptionsTask?: Task<readonly [string], ComboboxOptionData[]>\n private _selectedOption: ComboboxOptionData | undefined\n private readonly listboxId: string\n\n constructor () {\n super()\n\n this.listboxId = `listbox-${this.controlTrait.controlId}`\n }\n\n get selectedOption (): ComboboxOptionData | undefined {\n return this._selectedOption\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.removeOpenListeners()\n }\n\n protected willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n\n if (changedProperties.has('asyncOptionsUrl') || changedProperties.has('asyncOptionsProvider')) {\n this.updateAsyncOptionsTask()\n }\n\n if (changedProperties.has('value')) {\n const options = this.getFilteredOptions()\n const option = options.find((option) => option.selectable !== false && option.value === this.value) ??\n this.optionsFallback?.find((option) => option.value === this.value)\n const optionLabel = option?.selectable !== false && option?.label\n\n this.updateDisplayValue(optionLabel || this.value)\n\n if (this.open) {\n this.activeIndex = this.getInitialActiveIndex(options)\n }\n\n if (this._selectedOption && this._selectedOption.value !== this.value) {\n this._selectedOption = undefined\n }\n }\n }\n\n protected render () {\n const options = this.getFilteredOptions()\n const activeOption =\n this.open && this.activeIndex >= 0 ? options[this.activeIndex] : undefined\n const activeDescendant =\n activeOption !== undefined ? this.getOptionId(this.activeIndex) : undefined\n const accessibleName = this.placeholder || 'Combobox'\n\n return html`\n ${this.controlTrait.renderLabel()}\n <wa-popup\n placement=\"bottom\"\n flip\n shift\n sync=\"width\"\n auto-size=\"vertical\"\n auto-size-padding=\"10\"\n ?active=${this.open}\n >\n <div class=\"input-wrapper\" slot=\"anchor\" @mousedown=${this.onAnchorMouseDown}>\n <input\n id=\"${this.controlTrait.controlId}\"\n type=\"text\"\n name=${this.name}\n placeholder=${this.placeholder}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-controls=${this.listboxId}\n aria-activedescendant=${activeDescendant ?? nothing}\n aria-labelledby=${this.label ? this.controlTrait.labelId : nothing}\n aria-label=${this.label ? nothing : accessibleName}\n aria-required=${this.required ? 'true' : nothing}\n autocomplete=\"off\"\n spellcheck=\"false\"\n ?required=${this.required}\n .value=${this.displayValue}\n @keydown=${this.onInputKeyDown}\n @focus=${this.onInputFocus}\n @input=${() => this.selectOnly ? this.updateDisplayValue(this.controlElement?.value ?? '') : this.controlTrait.onInput()}\n />\n <icon-lucide-chevron-down></icon-lucide-chevron-down>\n </div>\n <div\n id=${this.listboxId}\n class=\"listbox\"\n role=\"listbox\"\n aria-orientation=\"vertical\"\n aria-labelledby=${this.label ? this.controlTrait.labelId : nothing}\n aria-label=${this.label ? nothing : accessibleName}\n ?hidden=${!this.open}\n @mousedown=${this.onListboxMouseDown}\n >\n ${options.map((option, index) => {\n return option.selectable !== false\n ? html`<div\n id=${this.getOptionId(index)}\n role=\"option\"\n aria-selected=${option.value === this.value ? 'true' : 'false'}\n data-active=${index === this.activeIndex || nothing}\n @mousemove=${() => this.setActiveIndex(index)}\n >\n ${option.template ?? option.label}\n </div>`\n : html`<div class=\"non-selectable-option\">${option.template ?? option.label}</div>`\n })}\n </div>\n </wa-popup>\n `\n }\n\n private getFilteredOptions (): ComboboxOptionData[] {\n if (this.asyncOptionsTask) {\n return this.asyncOptionsTask.render({\n initial: () => this.optionsFallback ?? [],\n complete: (options) => options,\n pending: () => [\n {\n value: '',\n label: 'Loading...',\n template: html`<icon-svg-spinners-3-dots-fade></icon-svg-spinners-3-dots-fade>`,\n selectable: false\n } as const,\n ],\n error: (error) => {\n const isError = !(error instanceof AsyncOptionsInfo)\n const message = Object(error).message ?? 'Something went wrong'\n\n return [\n {\n value: '',\n label: message,\n template: html`<span class=\"message message--${isError ? 'error' : 'info'}\">${message}</span>`,\n selectable: false\n } as const,\n ]\n },\n })\n }\n\n return this.getOptionsFromDOM().filter((option) =>\n String(option.label).toLowerCase().includes(this.filter)\n )\n }\n\n private getOptionsFromDOM (): ComboboxOptionData[] {\n const options = this.querySelectorAll<ComboboxOption>(\n 'solid-ui-combobox-option'\n )\n\n return Array.from(options).map((option) => ({\n value: option.value,\n label: option.textContent ?? '',\n }))\n }\n\n private getOptionId (index: number): string {\n return `${this.listboxId}-option-${index}`\n }\n\n private getInitialActiveIndex (options: ComboboxOptionData[]): number {\n const selectedIndex = options.findIndex((option) => option.value === this.value)\n\n if (selectedIndex >= 0) {\n return selectedIndex\n }\n\n return options.length > 0 ? 0 : -1\n }\n\n private getNextIndex (\n currentIndex: number,\n options: ComboboxOptionData[],\n direction: 1 | -1\n ): number {\n if (options.length === 0) {\n return -1\n }\n\n return (currentIndex + direction + options.length) % options.length\n }\n\n private setActiveIndex (index: number) {\n this.activeIndex = index\n }\n\n private updateDisplayValue (value: unknown) {\n this.displayValue = value ? String(value) : ''\n\n if (this.open) {\n const filter = this.displayValue.toLowerCase()\n\n if (this.asyncOptionsTask) {\n this.updateDebouncedFilter(filter)\n } else {\n this.filter = filter\n }\n }\n }\n\n private updateAsyncOptionsTask () {\n if (!this.asyncOptionsUrl && !this.asyncOptionsProvider) {\n this.asyncOptionsTask = undefined\n\n return\n }\n\n this.asyncOptionsTask ??= new Task(\n this,\n async ([filter]) => {\n if (this.asyncOptionsProvider) {\n const results = await this.asyncOptionsProvider(filter)\n\n if (results.length === 0) {\n throw new AsyncOptionsInfo('No results found')\n }\n\n return results\n }\n\n const response = await fetch(\n this.asyncOptionsUrl.replace('%search%', encodeURIComponent(filter))\n )\n const data = await response.json()\n const results = Array.from(\n this.asyncOptionsResultsField\n ? data[this.asyncOptionsResultsField]\n : data\n )\n\n if (results.length === 0) {\n throw new AsyncOptionsInfo('No results found')\n }\n\n const labelField = this.asyncOptionsLabelField || 'label'\n const valueField = this.asyncOptionsValueField || 'value'\n\n return results.map((result) => ({\n label: String(Object(result)[labelField]),\n value: Object(result)[valueField],\n }))\n },\n () => [this.filter]\n )\n }\n\n private show (options?: { focusLast?: boolean }) {\n if (this.open) {\n return\n }\n\n const filteredOptions = this.getFilteredOptions()\n\n if (filteredOptions.length === 0) {\n return\n }\n\n this.open = true\n this.activeIndex = options?.focusLast\n ? filteredOptions.length - 1\n : this.getInitialActiveIndex(filteredOptions)\n this.addOpenListeners()\n\n requestAnimationFrame(() => this.scrollActiveOptionIntoView())\n }\n\n private hide () {\n if (!this.open) {\n return\n }\n\n this.filter = ''\n this.open = false\n this.activeIndex = -1\n this.removeOpenListeners()\n this.updateDebouncedFilter.cancel()\n }\n\n private selectOption (option: ComboboxOptionData) {\n const previousValue = this.value\n\n this._selectedOption = option\n\n this.hide()\n this.controlTrait.setValue(option.value)\n this.controlElement?.focus({ preventScroll: true })\n this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true, detail: { option } }))\n\n if (previousValue === this.value) {\n this.updateDisplayValue(option.label)\n }\n }\n\n private scrollActiveOptionIntoView () {\n if (this.activeIndex < 0) {\n return\n }\n\n this.shadowRoot\n ?.querySelector(`#${this.getOptionId(this.activeIndex)}`)\n ?.scrollIntoView({ block: 'nearest' })\n }\n\n private addOpenListeners () {\n if (this.openListenersAttached) {\n return\n }\n\n document.addEventListener('focusin', this.handleDocumentFocusIn)\n document.addEventListener('mousedown', this.handleDocumentMouseDown)\n\n const root = this.getRootNode()\n\n if (root !== document) {\n root.addEventListener('focusin', this.handleDocumentFocusIn)\n }\n\n this.openListenersAttached = true\n }\n\n private removeOpenListeners () {\n if (!this.openListenersAttached) {\n return\n }\n\n document.removeEventListener('focusin', this.handleDocumentFocusIn)\n document.removeEventListener('mousedown', this.handleDocumentMouseDown)\n\n const root = this.getRootNode()\n\n if (root !== document) {\n root.removeEventListener('focusin', this.handleDocumentFocusIn)\n }\n\n this.openListenersAttached = false\n }\n\n private handleDocumentFocusIn = (event: Event) => {\n const path = event.composedPath()\n\n if (!path.includes(this)) {\n this.hide()\n }\n }\n\n private handleDocumentMouseDown = (event: MouseEvent) => {\n const path = event.composedPath()\n\n if (!path.includes(this)) {\n this.hide()\n }\n }\n\n private onAnchorMouseDown (event: MouseEvent) {\n if (event.target === this.controlElement) {\n return\n }\n\n event.preventDefault()\n this.controlElement?.focus({ preventScroll: true })\n }\n\n private onInputFocus () {\n this.show()\n }\n\n private openPopupFromKey (focusLast: boolean) {\n if (!this.open) {\n this.show({ focusLast })\n }\n }\n\n private onInputKeyDown (event: KeyboardEvent) {\n const options = this.getFilteredOptions()\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault()\n\n if (!this.open) {\n this.openPopupFromKey(false)\n } else {\n this.activeIndex = this.getNextIndex(this.activeIndex, options, 1)\n this.scrollActiveOptionIntoView()\n }\n break\n case 'ArrowUp':\n event.preventDefault()\n\n if (!this.open) {\n this.openPopupFromKey(true)\n } else {\n this.activeIndex = this.getNextIndex(this.activeIndex, options, -1)\n this.scrollActiveOptionIntoView()\n }\n break\n case 'Enter':\n if (this.open && this.activeIndex >= 0 && options[this.activeIndex]) {\n event.preventDefault()\n this.selectOption(options[this.activeIndex])\n } else if (!this.open) {\n event.preventDefault()\n this.controlTrait.onSubmit()\n }\n break\n case 'Escape':\n if (this.open) {\n event.preventDefault()\n event.stopPropagation()\n this.hide()\n this.controlElement?.focus({ preventScroll: true })\n }\n break\n case 'Tab':\n this.hide()\n break\n default:\n if (!this.open) {\n this.show()\n }\n }\n }\n\n private onListboxMouseDown (event: MouseEvent) {\n event.preventDefault()\n\n if (!(event.target instanceof HTMLElement)) {\n return\n }\n\n const optionElement = event.target.closest('[role=\"option\"]')\n\n if (!optionElement) {\n return\n }\n\n const optionId = optionElement.id\n const index = Number.parseInt(optionId.replace(`${this.listboxId}-option-`, ''), 10)\n const option = this.getFilteredOptions()[index]\n\n if (option) {\n this.selectOption(option)\n }\n }\n}\n"],"mappings":"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"}
@@ -21,6 +21,7 @@ export default class Combobox extends FormControlComponent {
21
21
  accessor asyncOptionsProvider: AsyncComboboxOptionsProvider | null;
22
22
  accessor optionsFallback: ComboboxOptionData[] | null;
23
23
  protected accessor controlElement: HTMLInputElement | null;
24
+ accessor readonly: boolean;
24
25
  private accessor filter;
25
26
  private accessor displayValue;
26
27
  private accessor open;