@unidy.io/sdk 1.2.0-alpha9 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (715) hide show
  1. package/dist/cjs/_commonjsHelpers-CFO10eej.js +10 -0
  2. package/dist/cjs/_commonjsHelpers-CFO10eej.js.map +1 -0
  3. package/dist/cjs/app-globals-C-Wl5lPS.js +10 -0
  4. package/dist/cjs/app-globals-C-Wl5lPS.js.map +1 -0
  5. package/dist/cjs/{auth-store-DPmGKHZ2.js → auth-store-0vv3uOib.js} +4 -4
  6. package/dist/cjs/{auth-store-DPmGKHZ2.js.map → auth-store-0vv3uOib.js.map} +1 -1
  7. package/dist/cjs/component-DLxnZCW6.js +34 -0
  8. package/dist/cjs/component-DLxnZCW6.js.map +1 -0
  9. package/dist/cjs/component-utils-XXctnOM9.js +38 -0
  10. package/dist/cjs/component-utils-XXctnOM9.js.map +1 -0
  11. package/dist/cjs/de-BWF6Glzg.js +704 -0
  12. package/dist/cjs/de-BWF6Glzg.js.map +1 -0
  13. package/dist/cjs/en-GB-DhD5mdQw.js +119 -0
  14. package/dist/cjs/en-GB-DhD5mdQw.js.map +1 -0
  15. package/dist/cjs/{flash-store-gbSYhPAV.js → flash-store-CR6Umh1O.js} +3 -3
  16. package/dist/cjs/{flash-store-gbSYhPAV.js.map → flash-store-CR6Umh1O.js.map} +1 -1
  17. package/dist/cjs/fr-j2wwoj-A.js +577 -0
  18. package/dist/cjs/fr-j2wwoj-A.js.map +1 -0
  19. package/dist/cjs/has-slot-content-CfJbU4t-.js +37 -0
  20. package/dist/cjs/has-slot-content-CfJbU4t-.js.map +1 -0
  21. package/dist/cjs/{i18n-D5j_Zl-4.js → i18n-ClWrNmGh.js} +100 -4
  22. package/dist/cjs/{i18n-D5j_Zl-4.js.map → i18n-ClWrNmGh.js.map} +1 -1
  23. package/dist/cjs/{index-B325yXfO.js → index-2Fz3r5o0.js} +5 -41
  24. package/dist/cjs/index-2Fz3r5o0.js.map +1 -0
  25. package/dist/cjs/{index-yaeiYlfa.js → index-C6ZBKFYr.js} +3 -3
  26. package/dist/cjs/{index-yaeiYlfa.js.map → index-C6ZBKFYr.js.map} +1 -1
  27. package/dist/cjs/{index-BzPYBLYC.js → index-CpPKy1CZ.js} +1170 -1087
  28. package/dist/cjs/index-CpPKy1CZ.js.map +1 -0
  29. package/dist/cjs/index.cjs.js +24 -11
  30. package/dist/cjs/index.cjs.js.map +1 -1
  31. package/dist/cjs/loader.cjs.js +3 -3
  32. package/dist/cjs/{newsletter-helpers-hdDC5X-V.js → newsletter-helpers-BHvOI8M4.js} +46 -9
  33. package/dist/cjs/newsletter-helpers-BHvOI8M4.js.map +1 -0
  34. package/dist/cjs/{newsletter-store-CupsLgO9.js → newsletter-store-22Jswiqe.js} +5 -3
  35. package/dist/cjs/newsletter-store-22Jswiqe.js.map +1 -0
  36. package/dist/cjs/nl-BE-yKvOp1-G.js +542 -0
  37. package/dist/cjs/nl-BE-yKvOp1-G.js.map +1 -0
  38. package/dist/cjs/{profile-helpers-Bprrm-Xl.js → profile-helpers-BBpAqHjK.js} +4 -4
  39. package/dist/cjs/{profile-helpers-Bprrm-Xl.js.map → profile-helpers-BBpAqHjK.js.map} +1 -1
  40. package/dist/cjs/{profile-store-C_q-TuA_.js → profile-store-CQEQhPQD.js} +4 -4
  41. package/dist/cjs/{profile-store-C_q-TuA_.js.map → profile-store-CQEQhPQD.js.map} +1 -1
  42. package/dist/cjs/redirect-with-token-wupYX97S.js +37 -0
  43. package/dist/cjs/redirect-with-token-wupYX97S.js.map +1 -0
  44. package/dist/cjs/ro-CXq9d1lv.js +578 -0
  45. package/dist/cjs/ro-CXq9d1lv.js.map +1 -0
  46. package/dist/cjs/sdk.cjs.js +3 -3
  47. package/dist/cjs/sv-CMln4V33.js +597 -0
  48. package/dist/cjs/sv-CMln4V33.js.map +1 -0
  49. package/dist/cjs/u-conditional-render.cjs.entry.js +14 -14
  50. package/dist/cjs/u-conditional-render.entry.cjs.js.map +1 -1
  51. package/dist/cjs/u-config.cjs.entry.js +24 -11
  52. package/dist/cjs/u-config.entry.cjs.js.map +1 -1
  53. package/dist/cjs/u-email-field.cjs.entry.js +7 -7
  54. package/dist/cjs/u-error-message.cjs.entry.js +49 -22
  55. package/dist/cjs/u-error-message.entry.cjs.js.map +1 -1
  56. package/dist/cjs/u-field.u-raw-field.entry.cjs.js.map +1 -1
  57. package/dist/cjs/u-field_2.cjs.entry.js +124 -12
  58. package/dist/cjs/u-flash-message.cjs.entry.js +3 -3
  59. package/dist/cjs/u-full-profile.cjs.entry.js +6 -6
  60. package/dist/cjs/u-jump-to-service.cjs.entry.js +23 -44
  61. package/dist/cjs/u-jump-to-service.entry.cjs.js.map +1 -1
  62. package/dist/cjs/u-jump-to-unidy.cjs.entry.js +22 -43
  63. package/dist/cjs/u-jump-to-unidy.entry.cjs.js.map +1 -1
  64. package/dist/cjs/u-logout-button.u-signed-in.entry.cjs.js.map +1 -1
  65. package/dist/cjs/u-logout-button_2.cjs.entry.js +15 -22
  66. package/dist/cjs/u-magic-code-field.cjs.entry.js +8 -9
  67. package/dist/cjs/u-magic-code-field.entry.cjs.js.map +1 -1
  68. package/dist/cjs/u-missing-field.cjs.entry.js +6 -5
  69. package/dist/cjs/u-missing-field.entry.cjs.js.map +1 -1
  70. package/dist/cjs/u-missing-fields-submit-button.cjs.entry.js +16 -14
  71. package/dist/cjs/u-missing-fields-submit-button.entry.cjs.js.map +1 -1
  72. package/dist/cjs/u-newsletter-checkbox.cjs.entry.js +11 -12
  73. package/dist/cjs/u-newsletter-checkbox.entry.cjs.js.map +1 -1
  74. package/dist/cjs/u-newsletter-consent-checkbox.cjs.entry.js +4 -4
  75. package/dist/cjs/u-newsletter-logout-button.cjs.entry.js +15 -20
  76. package/dist/cjs/u-newsletter-logout-button.entry.cjs.js.map +1 -1
  77. package/dist/cjs/u-newsletter-preference-checkbox.cjs.entry.js +11 -12
  78. package/dist/cjs/u-newsletter-preference-checkbox.entry.cjs.js.map +1 -1
  79. package/dist/cjs/u-newsletter-resend-doi-button.cjs.entry.js +10 -11
  80. package/dist/cjs/u-newsletter-resend-doi-button.entry.cjs.js.map +1 -1
  81. package/dist/cjs/u-newsletter-root.cjs.entry.js +45 -22
  82. package/dist/cjs/u-newsletter-root.entry.cjs.js.map +1 -1
  83. package/dist/cjs/u-newsletter-toggle-subscription-button.cjs.entry.js +11 -12
  84. package/dist/cjs/u-newsletter-toggle-subscription-button.entry.cjs.js.map +1 -1
  85. package/dist/cjs/u-pagination-button.cjs.entry.js +4 -4
  86. package/dist/cjs/u-pagination-button.entry.cjs.js.map +1 -1
  87. package/dist/cjs/u-pagination-page.cjs.entry.js +4 -4
  88. package/dist/cjs/u-pagination-page.entry.cjs.js.map +1 -1
  89. package/dist/cjs/u-passkey.cjs.entry.js +8 -9
  90. package/dist/cjs/u-passkey.entry.cjs.js.map +1 -1
  91. package/dist/cjs/u-password-field.cjs.entry.js +5 -5
  92. package/dist/cjs/u-profile.u-submit-button.entry.cjs.js.map +1 -1
  93. package/dist/cjs/u-profile_2.cjs.entry.js +31 -33
  94. package/dist/cjs/u-registration-button.cjs.entry.js +5 -5
  95. package/dist/cjs/u-reset-password-button.cjs.entry.js +12 -15
  96. package/dist/cjs/u-reset-password-button.entry.cjs.js.map +1 -1
  97. package/dist/cjs/u-send-magic-code-button.cjs.entry.js +8 -9
  98. package/dist/cjs/u-send-magic-code-button.entry.cjs.js.map +1 -1
  99. package/dist/cjs/u-signin-root.cjs.entry.js +6 -8
  100. package/dist/cjs/u-signin-root.entry.cjs.js.map +1 -1
  101. package/dist/cjs/u-signin-step.cjs.entry.js +17 -21
  102. package/dist/cjs/u-signin-step.entry.cjs.js.map +1 -1
  103. package/dist/cjs/u-social-login-button.cjs.entry.js +16 -15
  104. package/dist/cjs/u-social-login-button.entry.cjs.js.map +1 -1
  105. package/dist/cjs/u-spinner.cjs.entry.js +3 -3
  106. package/dist/cjs/u-spinner.entry.cjs.js.map +1 -1
  107. package/dist/cjs/u-ticketable-export.cjs.entry.js +76 -0
  108. package/dist/cjs/u-ticketable-export.entry.cjs.js.map +1 -0
  109. package/dist/cjs/u-ticketable-list-D3M8iA-g.js +3991 -0
  110. package/dist/cjs/u-ticketable-list-D3M8iA-g.js.map +1 -0
  111. package/dist/cjs/u-ticketable-list.cjs.entry.js +11 -6118
  112. package/dist/cjs/u-ticketable-list.entry.cjs.js.map +1 -1
  113. package/dist/cjs/{unidy-store-BGnWn9pc.js → unidy-store-Bvnl24i9.js} +3 -3
  114. package/dist/cjs/{unidy-store-BGnWn9pc.js.map → unidy-store-Bvnl24i9.js.map} +1 -1
  115. package/dist/collection/api/base-service.js.map +1 -1
  116. package/dist/collection/api/client.js.map +1 -1
  117. package/dist/collection/api/index.js +6 -6
  118. package/dist/collection/api/index.js.map +1 -1
  119. package/dist/collection/api/standalone.js +88 -39
  120. package/dist/collection/api/standalone.js.map +1 -1
  121. package/dist/collection/auth/api/auth.js.map +1 -1
  122. package/dist/collection/auth/api/schemas.js +5 -5
  123. package/dist/collection/auth/api/schemas.js.map +1 -1
  124. package/dist/collection/auth/auth-helpers.js +7 -8
  125. package/dist/collection/auth/auth-helpers.js.map +1 -1
  126. package/dist/collection/auth/auth.js +1 -0
  127. package/dist/collection/auth/auth.js.map +1 -1
  128. package/dist/collection/auth/components/jump-to-service/jump-to-service.js +20 -40
  129. package/dist/collection/auth/components/jump-to-service/jump-to-service.js.map +1 -1
  130. package/dist/collection/auth/components/jump-to-unidy/jump-to-unidy.js +20 -39
  131. package/dist/collection/auth/components/jump-to-unidy/jump-to-unidy.js.map +1 -1
  132. package/dist/collection/auth/components/logout-button/logout-button.js +7 -11
  133. package/dist/collection/auth/components/logout-button/logout-button.js.map +1 -1
  134. package/dist/collection/auth/components/missing-field/missing-field.js +25 -1
  135. package/dist/collection/auth/components/missing-field/missing-field.js.map +1 -1
  136. package/dist/collection/auth/components/missing-fields-submit-button/missing-fields-submit-button.js +33 -7
  137. package/dist/collection/auth/components/missing-fields-submit-button/missing-fields-submit-button.js.map +1 -1
  138. package/dist/collection/auth/components/password-field/password-field.js +1 -1
  139. package/dist/collection/auth/components/reset-pass-button/reset-pass-button.js +6 -8
  140. package/dist/collection/auth/components/reset-pass-button/reset-pass-button.js.map +1 -1
  141. package/dist/collection/auth/components/signed-in/signed-in.js +2 -5
  142. package/dist/collection/auth/components/signed-in/signed-in.js.map +1 -1
  143. package/dist/collection/auth/components/signin-root/signin-root.js +2 -5
  144. package/dist/collection/auth/components/signin-root/signin-root.js.map +1 -1
  145. package/dist/collection/auth/components/signin-step/signin-step.js +9 -13
  146. package/dist/collection/auth/components/signin-step/signin-step.js.map +1 -1
  147. package/dist/collection/auth/components/social-logins/social-login-button.css +1 -1
  148. package/dist/collection/auth/components/social-logins/social-login-button.js +11 -12
  149. package/dist/collection/auth/components/social-logins/social-login-button.js.map +1 -1
  150. package/dist/collection/auth/components/submit-button/auth-submit-button.js +10 -0
  151. package/dist/collection/auth/components/submit-button/auth-submit-button.js.map +1 -1
  152. package/dist/collection/collection-manifest.json +1 -0
  153. package/dist/collection/locales/de.json +16 -0
  154. package/dist/collection/locales/en.json +16 -0
  155. package/dist/collection/locales/fr.json +16 -0
  156. package/dist/collection/locales/it.json +16 -0
  157. package/dist/collection/locales/nl_be.json +16 -0
  158. package/dist/collection/locales/ro.json +16 -0
  159. package/dist/collection/logger.js +0 -37
  160. package/dist/collection/logger.js.map +1 -1
  161. package/dist/collection/newsletter/api/newsletters.js +19 -18
  162. package/dist/collection/newsletter/api/newsletters.js.map +1 -1
  163. package/dist/collection/newsletter/components/consent-checkbox/consent-checkbox.js +1 -1
  164. package/dist/collection/newsletter/components/logout-button/logout-button.js +6 -10
  165. package/dist/collection/newsletter/components/logout-button/logout-button.js.map +1 -1
  166. package/dist/collection/newsletter/components/newsletter-checkbox/newsletter-checkbox.js +1 -1
  167. package/dist/collection/newsletter/components/newsletter-root/newsletter-root.js +65 -10
  168. package/dist/collection/newsletter/components/newsletter-root/newsletter-root.js.map +1 -1
  169. package/dist/collection/newsletter/components/preference-checkbox/preference-checkbox.js +1 -1
  170. package/dist/collection/newsletter/components/toggle-subscription-button/toggle-subscription-button.js +1 -1
  171. package/dist/collection/newsletter/newsletter-helpers.js +39 -2
  172. package/dist/collection/newsletter/newsletter-helpers.js.map +1 -1
  173. package/dist/collection/newsletter/store/newsletter-store.js +2 -0
  174. package/dist/collection/newsletter/store/newsletter-store.js.map +1 -1
  175. package/dist/collection/profile/api/profile.js.map +1 -1
  176. package/dist/collection/profile/api/schemas.js +1 -1
  177. package/dist/collection/profile/api/schemas.js.map +1 -1
  178. package/dist/collection/profile/components/field/field.js +3 -1
  179. package/dist/collection/profile/components/field/field.js.map +1 -1
  180. package/dist/collection/profile/components/full-profile/full-profile.js +1 -1
  181. package/dist/collection/profile/components/raw-field/raw-field.js +40 -7
  182. package/dist/collection/profile/components/raw-field/raw-field.js.map +1 -1
  183. package/dist/collection/profile/store/profile-store.js +1 -1
  184. package/dist/collection/profile/store/profile-store.js.map +1 -1
  185. package/dist/collection/shared/base/component.js +28 -0
  186. package/dist/collection/shared/base/component.js.map +1 -0
  187. package/dist/collection/shared/base/has-slot-content.js +31 -0
  188. package/dist/collection/shared/base/has-slot-content.js.map +1 -0
  189. package/dist/collection/shared/component-utils.js +23 -27
  190. package/dist/collection/shared/component-utils.js.map +1 -1
  191. package/dist/collection/shared/components/conditional-render/conditional-render.js +4 -5
  192. package/dist/collection/shared/components/conditional-render/conditional-render.js.map +1 -1
  193. package/dist/collection/shared/components/config/config.js +18 -5
  194. package/dist/collection/shared/components/config/config.js.map +1 -1
  195. package/dist/collection/shared/components/email-field/email-field.js +1 -1
  196. package/dist/collection/shared/components/error-message/error-message.css +1 -1
  197. package/dist/collection/shared/components/error-message/error-message.js +44 -17
  198. package/dist/collection/shared/components/error-message/error-message.js.map +1 -1
  199. package/dist/collection/shared/components/spinner/spinner.css +1 -1
  200. package/dist/collection/shared/components/spinner/spinner.js +1 -1
  201. package/dist/collection/shared/components/submit-button/submit-button.css +1 -1
  202. package/dist/collection/shared/components/submit-button/submit-button.js +12 -23
  203. package/dist/collection/shared/components/submit-button/submit-button.js.map +1 -1
  204. package/dist/collection/shared/context-utils.js +96 -0
  205. package/dist/collection/shared/context-utils.js.map +1 -0
  206. package/dist/collection/shared/utils/redirect-with-token.js +30 -0
  207. package/dist/collection/shared/utils/redirect-with-token.js.map +1 -0
  208. package/dist/collection/shared/utils/url-utils.js +25 -0
  209. package/dist/collection/shared/utils/url-utils.js.map +1 -0
  210. package/dist/collection/ticketable/api/schemas.js +10 -2
  211. package/dist/collection/ticketable/api/schemas.js.map +1 -1
  212. package/dist/collection/ticketable/api/subscriptions.js +22 -1
  213. package/dist/collection/ticketable/api/subscriptions.js.map +1 -1
  214. package/dist/collection/ticketable/api/tickets.js +22 -1
  215. package/dist/collection/ticketable/api/tickets.js.map +1 -1
  216. package/dist/collection/ticketable/components/pagination/pagination-button.js +3 -5
  217. package/dist/collection/ticketable/components/pagination/pagination-button.js.map +1 -1
  218. package/dist/collection/ticketable/components/pagination/pagination-page.js +3 -5
  219. package/dist/collection/ticketable/components/pagination/pagination-page.js.map +1 -1
  220. package/dist/collection/ticketable/components/ticketable-export/ticketable-export.js +175 -0
  221. package/dist/collection/ticketable/components/ticketable-export/ticketable-export.js.map +1 -0
  222. package/dist/collection/ticketable/components/ticketable-list/ticketable-list.js +163 -25
  223. package/dist/collection/ticketable/components/ticketable-list/ticketable-list.js.map +1 -1
  224. package/dist/collection/ticketable/index.js +1 -0
  225. package/dist/collection/ticketable/index.js.map +1 -1
  226. package/dist/components/_commonjsHelpers.js +8 -0
  227. package/dist/components/_commonjsHelpers.js.map +1 -0
  228. package/dist/components/component-utils.js +25 -28
  229. package/dist/components/component-utils.js.map +1 -1
  230. package/dist/components/component.js +33 -0
  231. package/dist/components/component.js.map +1 -0
  232. package/dist/components/de.js +702 -0
  233. package/dist/components/de.js.map +1 -0
  234. package/dist/components/en-GB.js +117 -0
  235. package/dist/components/en-GB.js.map +1 -0
  236. package/dist/components/field.js +3 -1
  237. package/dist/components/field.js.map +1 -1
  238. package/dist/components/fr.js +575 -0
  239. package/dist/components/fr.js.map +1 -0
  240. package/dist/components/has-slot-content.js +35 -0
  241. package/dist/components/has-slot-content.js.map +1 -0
  242. package/dist/components/i18n.js +96 -0
  243. package/dist/components/i18n.js.map +1 -1
  244. package/dist/components/index.js +11 -3
  245. package/dist/components/index.js.map +1 -1
  246. package/dist/components/index2.js +1158 -1083
  247. package/dist/components/index2.js.map +1 -1
  248. package/dist/components/logger.js +1 -39
  249. package/dist/components/logger.js.map +1 -1
  250. package/dist/components/newsletter-helpers.js +39 -2
  251. package/dist/components/newsletter-helpers.js.map +1 -1
  252. package/dist/components/newsletter-store.js +2 -0
  253. package/dist/components/newsletter-store.js.map +1 -1
  254. package/dist/components/nl-BE.js +540 -0
  255. package/dist/components/nl-BE.js.map +1 -0
  256. package/dist/components/profile-store.js +1 -1
  257. package/dist/components/profile-store.js.map +1 -1
  258. package/dist/components/raw-field.js +116 -7
  259. package/dist/components/raw-field.js.map +1 -1
  260. package/dist/components/redirect-with-token.js +35 -0
  261. package/dist/components/redirect-with-token.js.map +1 -0
  262. package/dist/components/ro.js +576 -0
  263. package/dist/components/ro.js.map +1 -0
  264. package/dist/components/spinner.js +2 -2
  265. package/dist/components/spinner.js.map +1 -1
  266. package/dist/components/submit-button.js +21 -24
  267. package/dist/components/submit-button.js.map +1 -1
  268. package/dist/components/sv.js +595 -0
  269. package/dist/components/sv.js.map +1 -0
  270. package/dist/components/u-conditional-render.js +5 -6
  271. package/dist/components/u-conditional-render.js.map +1 -1
  272. package/dist/components/u-config.js +16 -3
  273. package/dist/components/u-config.js.map +1 -1
  274. package/dist/components/u-email-field.js +1 -1
  275. package/dist/components/u-error-message.js +44 -19
  276. package/dist/components/u-error-message.js.map +1 -1
  277. package/dist/components/u-full-profile.js +1 -1
  278. package/dist/components/u-jump-to-service.js +16 -38
  279. package/dist/components/u-jump-to-service.js.map +1 -1
  280. package/dist/components/u-jump-to-unidy.js +16 -37
  281. package/dist/components/u-jump-to-unidy.js.map +1 -1
  282. package/dist/components/u-logout-button.js +5 -11
  283. package/dist/components/u-logout-button.js.map +1 -1
  284. package/dist/components/u-missing-field.js +5 -2
  285. package/dist/components/u-missing-field.js.map +1 -1
  286. package/dist/components/u-missing-fields-submit-button.js +10 -8
  287. package/dist/components/u-missing-fields-submit-button.js.map +1 -1
  288. package/dist/components/u-newsletter-checkbox.js +1 -1
  289. package/dist/components/u-newsletter-consent-checkbox.js +1 -1
  290. package/dist/components/u-newsletter-logout-button.js +6 -12
  291. package/dist/components/u-newsletter-logout-button.js.map +1 -1
  292. package/dist/components/u-newsletter-preference-checkbox.js +1 -1
  293. package/dist/components/u-newsletter-root.js +35 -12
  294. package/dist/components/u-newsletter-root.js.map +1 -1
  295. package/dist/components/u-newsletter-toggle-subscription-button.js +1 -1
  296. package/dist/components/u-pagination-button.js +3 -4
  297. package/dist/components/u-pagination-button.js.map +1 -1
  298. package/dist/components/u-pagination-page.js +3 -4
  299. package/dist/components/u-pagination-page.js.map +1 -1
  300. package/dist/components/u-reset-password-button.js +4 -8
  301. package/dist/components/u-reset-password-button.js.map +1 -1
  302. package/dist/components/u-signed-in.js +3 -6
  303. package/dist/components/u-signed-in.js.map +1 -1
  304. package/dist/components/u-signin-root.js +3 -6
  305. package/dist/components/u-signin-root.js.map +1 -1
  306. package/dist/components/u-signin-step.js +10 -14
  307. package/dist/components/u-signin-step.js.map +1 -1
  308. package/dist/components/u-social-login-button.js +13 -14
  309. package/dist/components/u-social-login-button.js.map +1 -1
  310. package/dist/components/u-ticketable-export.d.ts +11 -0
  311. package/dist/components/u-ticketable-export.js +93 -0
  312. package/dist/components/u-ticketable-export.js.map +1 -0
  313. package/dist/components/u-ticketable-list.js +256 -2396
  314. package/dist/components/u-ticketable-list.js.map +1 -1
  315. package/dist/esm/_commonjsHelpers-B85MJLTf.js +8 -0
  316. package/dist/esm/_commonjsHelpers-B85MJLTf.js.map +1 -0
  317. package/dist/esm/app-globals-J743qnJf.js +8 -0
  318. package/dist/esm/app-globals-J743qnJf.js.map +1 -0
  319. package/dist/esm/{auth-store-DBlGNGhq.js → auth-store-CSpEdi46.js} +4 -4
  320. package/dist/esm/{auth-store-DBlGNGhq.js.map → auth-store-CSpEdi46.js.map} +1 -1
  321. package/dist/esm/component-qfegGRWr.js +32 -0
  322. package/dist/esm/component-qfegGRWr.js.map +1 -0
  323. package/dist/esm/component-utils-WEof9bTg.js +36 -0
  324. package/dist/esm/component-utils-WEof9bTg.js.map +1 -0
  325. package/dist/esm/de-C6AnCqsA.js +702 -0
  326. package/dist/esm/de-C6AnCqsA.js.map +1 -0
  327. package/dist/esm/en-GB-DO63WPxt.js +117 -0
  328. package/dist/esm/en-GB-DO63WPxt.js.map +1 -0
  329. package/dist/esm/{flash-store-Df2YkLTB.js → flash-store-Dn1Bava8.js} +3 -3
  330. package/dist/esm/{flash-store-Df2YkLTB.js.map → flash-store-Dn1Bava8.js.map} +1 -1
  331. package/dist/esm/fr-C0oU6-EJ.js +575 -0
  332. package/dist/esm/fr-C0oU6-EJ.js.map +1 -0
  333. package/dist/esm/has-slot-content-DSMkJu9G.js +35 -0
  334. package/dist/esm/has-slot-content-DSMkJu9G.js.map +1 -0
  335. package/dist/esm/{i18n-Da7S9Oqf.js → i18n-ioyZxWsT.js} +100 -4
  336. package/dist/esm/{i18n-Da7S9Oqf.js.map → i18n-ioyZxWsT.js.map} +1 -1
  337. package/dist/esm/{index-FTKB5a1d.js → index-BsJDptgj.js} +4 -40
  338. package/dist/esm/index-BsJDptgj.js.map +1 -0
  339. package/dist/esm/{index-BnAYOYR5.js → index-C8kmD3tu.js} +3 -3
  340. package/dist/esm/{index-BnAYOYR5.js.map → index-C8kmD3tu.js.map} +1 -1
  341. package/dist/esm/{index-BVlbCQEX.js → index-kgGjfc-n.js} +1163 -1088
  342. package/dist/esm/index-kgGjfc-n.js.map +1 -0
  343. package/dist/esm/index.js +18 -12
  344. package/dist/esm/index.js.map +1 -1
  345. package/dist/esm/loader.js +4 -4
  346. package/dist/esm/{newsletter-helpers-fCpxzovf.js → newsletter-helpers-DoKGN_Kq.js} +46 -9
  347. package/dist/esm/newsletter-helpers-DoKGN_Kq.js.map +1 -0
  348. package/dist/esm/{newsletter-store-BB618FgS.js → newsletter-store-DpR85vaC.js} +5 -3
  349. package/dist/esm/newsletter-store-DpR85vaC.js.map +1 -0
  350. package/dist/esm/nl-BE-C8uPYb_H.js +540 -0
  351. package/dist/esm/nl-BE-C8uPYb_H.js.map +1 -0
  352. package/dist/esm/{profile-helpers-CXK2X6Ts.js → profile-helpers-BMJy0ei_.js} +4 -4
  353. package/dist/esm/{profile-helpers-CXK2X6Ts.js.map → profile-helpers-BMJy0ei_.js.map} +1 -1
  354. package/dist/esm/{profile-store-CHlSKuTY.js → profile-store-7wBS3gBH.js} +4 -4
  355. package/dist/esm/{profile-store-CHlSKuTY.js.map → profile-store-7wBS3gBH.js.map} +1 -1
  356. package/dist/esm/redirect-with-token-StCLJlSp.js +35 -0
  357. package/dist/esm/redirect-with-token-StCLJlSp.js.map +1 -0
  358. package/dist/esm/ro-BlDHz7d-.js +576 -0
  359. package/dist/esm/ro-BlDHz7d-.js.map +1 -0
  360. package/dist/esm/sdk.js +4 -4
  361. package/dist/esm/sv-B_Gq29K0.js +595 -0
  362. package/dist/esm/sv-B_Gq29K0.js.map +1 -0
  363. package/dist/esm/u-conditional-render.entry.js +14 -14
  364. package/dist/esm/u-conditional-render.entry.js.map +1 -1
  365. package/dist/esm/u-config.entry.js +24 -11
  366. package/dist/esm/u-config.entry.js.map +1 -1
  367. package/dist/esm/u-email-field.entry.js +7 -7
  368. package/dist/esm/u-error-message.entry.js +49 -22
  369. package/dist/esm/u-error-message.entry.js.map +1 -1
  370. package/dist/esm/u-field.u-raw-field.entry.js.map +1 -1
  371. package/dist/esm/u-field_2.entry.js +124 -12
  372. package/dist/esm/u-flash-message.entry.js +3 -3
  373. package/dist/esm/u-full-profile.entry.js +6 -6
  374. package/dist/esm/u-jump-to-service.entry.js +23 -44
  375. package/dist/esm/u-jump-to-service.entry.js.map +1 -1
  376. package/dist/esm/u-jump-to-unidy.entry.js +22 -43
  377. package/dist/esm/u-jump-to-unidy.entry.js.map +1 -1
  378. package/dist/esm/u-logout-button.u-signed-in.entry.js.map +1 -1
  379. package/dist/esm/u-logout-button_2.entry.js +15 -22
  380. package/dist/esm/u-magic-code-field.entry.js +8 -9
  381. package/dist/esm/u-magic-code-field.entry.js.map +1 -1
  382. package/dist/esm/u-missing-field.entry.js +6 -5
  383. package/dist/esm/u-missing-field.entry.js.map +1 -1
  384. package/dist/esm/u-missing-fields-submit-button.entry.js +16 -14
  385. package/dist/esm/u-missing-fields-submit-button.entry.js.map +1 -1
  386. package/dist/esm/u-newsletter-checkbox.entry.js +11 -12
  387. package/dist/esm/u-newsletter-checkbox.entry.js.map +1 -1
  388. package/dist/esm/u-newsletter-consent-checkbox.entry.js +4 -4
  389. package/dist/esm/u-newsletter-logout-button.entry.js +15 -20
  390. package/dist/esm/u-newsletter-logout-button.entry.js.map +1 -1
  391. package/dist/esm/u-newsletter-preference-checkbox.entry.js +11 -12
  392. package/dist/esm/u-newsletter-preference-checkbox.entry.js.map +1 -1
  393. package/dist/esm/u-newsletter-resend-doi-button.entry.js +10 -11
  394. package/dist/esm/u-newsletter-resend-doi-button.entry.js.map +1 -1
  395. package/dist/esm/u-newsletter-root.entry.js +42 -19
  396. package/dist/esm/u-newsletter-root.entry.js.map +1 -1
  397. package/dist/esm/u-newsletter-toggle-subscription-button.entry.js +11 -12
  398. package/dist/esm/u-newsletter-toggle-subscription-button.entry.js.map +1 -1
  399. package/dist/esm/u-pagination-button.entry.js +4 -4
  400. package/dist/esm/u-pagination-button.entry.js.map +1 -1
  401. package/dist/esm/u-pagination-page.entry.js +4 -4
  402. package/dist/esm/u-pagination-page.entry.js.map +1 -1
  403. package/dist/esm/u-passkey.entry.js +8 -9
  404. package/dist/esm/u-passkey.entry.js.map +1 -1
  405. package/dist/esm/u-password-field.entry.js +5 -5
  406. package/dist/esm/u-profile.u-submit-button.entry.js.map +1 -1
  407. package/dist/esm/u-profile_2.entry.js +31 -33
  408. package/dist/esm/u-registration-button.entry.js +5 -5
  409. package/dist/esm/u-reset-password-button.entry.js +12 -15
  410. package/dist/esm/u-reset-password-button.entry.js.map +1 -1
  411. package/dist/esm/u-send-magic-code-button.entry.js +8 -9
  412. package/dist/esm/u-send-magic-code-button.entry.js.map +1 -1
  413. package/dist/esm/u-signin-root.entry.js +6 -8
  414. package/dist/esm/u-signin-root.entry.js.map +1 -1
  415. package/dist/esm/u-signin-step.entry.js +17 -21
  416. package/dist/esm/u-signin-step.entry.js.map +1 -1
  417. package/dist/esm/u-social-login-button.entry.js +16 -15
  418. package/dist/esm/u-social-login-button.entry.js.map +1 -1
  419. package/dist/esm/u-spinner.entry.js +3 -3
  420. package/dist/esm/u-spinner.entry.js.map +1 -1
  421. package/dist/esm/u-ticketable-export.entry.js +74 -0
  422. package/dist/esm/u-ticketable-export.entry.js.map +1 -0
  423. package/dist/esm/u-ticketable-list-D2p21JjR.js +3981 -0
  424. package/dist/esm/u-ticketable-list-D2p21JjR.js.map +1 -0
  425. package/dist/esm/u-ticketable-list.entry.js +10 -6121
  426. package/dist/esm/u-ticketable-list.entry.js.map +1 -1
  427. package/dist/esm/{unidy-store-Bg7IaIMd.js → unidy-store-B5Bf4Vit.js} +3 -3
  428. package/dist/esm/{unidy-store-Bg7IaIMd.js.map → unidy-store-B5Bf4Vit.js.map} +1 -1
  429. package/dist/sdk/index.esm.js +1 -1
  430. package/dist/sdk/index.esm.js.map +1 -1
  431. package/dist/sdk/locales/de.json +16 -0
  432. package/dist/sdk/locales/en.json +16 -0
  433. package/dist/sdk/locales/fr.json +16 -0
  434. package/dist/sdk/locales/it.json +16 -0
  435. package/dist/sdk/locales/nl_be.json +16 -0
  436. package/dist/sdk/locales/ro.json +16 -0
  437. package/dist/sdk/p-02dce5da.entry.js +2 -0
  438. package/dist/sdk/p-02dce5da.entry.js.map +1 -0
  439. package/dist/sdk/p-043c7643.entry.js +2 -0
  440. package/dist/sdk/p-043c7643.entry.js.map +1 -0
  441. package/dist/sdk/p-18c17747.entry.js +2 -0
  442. package/dist/sdk/p-18c17747.entry.js.map +1 -0
  443. package/dist/sdk/p-1a1c1af0.entry.js +2 -0
  444. package/dist/sdk/p-1a1c1af0.entry.js.map +1 -0
  445. package/dist/sdk/p-271781c7.entry.js +2 -0
  446. package/dist/sdk/{p-1a8973a6.entry.js.map → p-271781c7.entry.js.map} +1 -1
  447. package/dist/sdk/p-29473a55.entry.js +2 -0
  448. package/dist/sdk/p-29473a55.entry.js.map +1 -0
  449. package/dist/sdk/p-2a25d62e.entry.js +2 -0
  450. package/dist/sdk/p-2a25d62e.entry.js.map +1 -0
  451. package/dist/sdk/{p-C8lRzJEX.js → p-2bKltz_F.js} +2 -2
  452. package/dist/sdk/{p-C8lRzJEX.js.map → p-2bKltz_F.js.map} +1 -1
  453. package/dist/sdk/p-2cc3a00d.entry.js +2 -0
  454. package/dist/sdk/p-2cc3a00d.entry.js.map +1 -0
  455. package/dist/sdk/p-2f49e0cb.entry.js +2 -0
  456. package/dist/sdk/p-2f49e0cb.entry.js.map +1 -0
  457. package/dist/sdk/p-34f5d201.entry.js +2 -0
  458. package/dist/sdk/p-34f5d201.entry.js.map +1 -0
  459. package/dist/sdk/p-52c4bdd9.entry.js +2 -0
  460. package/dist/sdk/p-52c4bdd9.entry.js.map +1 -0
  461. package/dist/sdk/p-585a0efa.entry.js +2 -0
  462. package/dist/sdk/p-585a0efa.entry.js.map +1 -0
  463. package/dist/sdk/p-60675019.entry.js +2 -0
  464. package/dist/sdk/p-60675019.entry.js.map +1 -0
  465. package/dist/sdk/p-79ef9a70.entry.js +2 -0
  466. package/dist/sdk/p-79ef9a70.entry.js.map +1 -0
  467. package/dist/sdk/p-7d88e21c.entry.js +2 -0
  468. package/dist/sdk/p-7d88e21c.entry.js.map +1 -0
  469. package/dist/sdk/p-7eaf3468.entry.js +2 -0
  470. package/dist/sdk/p-7eaf3468.entry.js.map +1 -0
  471. package/dist/sdk/{p-88beb872.entry.js → p-8412762c.entry.js} +2 -2
  472. package/dist/sdk/p-8ea70c08.entry.js +2 -0
  473. package/dist/sdk/p-8ea70c08.entry.js.map +1 -0
  474. package/dist/sdk/p-946cdb0a.entry.js +2 -0
  475. package/dist/sdk/p-946cdb0a.entry.js.map +1 -0
  476. package/dist/sdk/p-94bb0217.entry.js +2 -0
  477. package/dist/sdk/p-94bb0217.entry.js.map +1 -0
  478. package/dist/sdk/{p-bcca06f1.entry.js → p-96860b09.entry.js} +2 -2
  479. package/dist/sdk/p-B1A6Nu24.js +2 -0
  480. package/dist/sdk/p-B1A6Nu24.js.map +1 -0
  481. package/dist/sdk/p-B85MJLTf.js +2 -0
  482. package/dist/sdk/p-B85MJLTf.js.map +1 -0
  483. package/dist/sdk/p-B8N6Bwsa.js +2 -0
  484. package/dist/sdk/{p-DCG3L43i.js.map → p-B8N6Bwsa.js.map} +1 -1
  485. package/dist/sdk/p-Ba5szISo.js +2 -0
  486. package/dist/sdk/p-Ba5szISo.js.map +1 -0
  487. package/dist/sdk/p-BsJDptgj.js +14 -0
  488. package/dist/sdk/p-BsJDptgj.js.map +1 -0
  489. package/dist/sdk/{p-bpXpOZY_.js → p-C0Mo15qt.js} +2 -2
  490. package/dist/sdk/{p-bpXpOZY_.js.map → p-C0Mo15qt.js.map} +1 -1
  491. package/dist/sdk/p-C10MAuCE.js +2 -0
  492. package/dist/sdk/p-C10MAuCE.js.map +1 -0
  493. package/dist/sdk/p-CTy6pQSg.js +2 -0
  494. package/dist/sdk/p-CTy6pQSg.js.map +1 -0
  495. package/dist/sdk/p-CW6kGAuQ.js +2 -0
  496. package/dist/sdk/p-CW6kGAuQ.js.map +1 -0
  497. package/dist/sdk/{p-DdMKVWx8.js → p-CbSP8My1.js} +2 -2
  498. package/dist/sdk/{p-DdMKVWx8.js.map → p-CbSP8My1.js.map} +1 -1
  499. package/dist/sdk/p-CbzzI4uW.js +2 -0
  500. package/dist/sdk/p-CbzzI4uW.js.map +1 -0
  501. package/dist/sdk/p-CgT6fZjb.js +2 -0
  502. package/dist/sdk/p-CgT6fZjb.js.map +1 -0
  503. package/dist/sdk/p-CuHZ3IkE.js +2 -0
  504. package/dist/sdk/p-CuHZ3IkE.js.map +1 -0
  505. package/dist/sdk/p-Cysk_vik.js +2 -0
  506. package/dist/sdk/p-Cysk_vik.js.map +1 -0
  507. package/dist/sdk/p-D0ut3waq.js +2 -0
  508. package/dist/sdk/p-D0ut3waq.js.map +1 -0
  509. package/dist/sdk/{p-BigbTrKk.js → p-D2Rf-QGm.js} +2 -2
  510. package/dist/sdk/{p-BigbTrKk.js.map → p-D2Rf-QGm.js.map} +1 -1
  511. package/dist/sdk/{p-6rqGeAfT.js → p-D9yFO_ID.js} +2 -2
  512. package/dist/sdk/{p-6rqGeAfT.js.map → p-D9yFO_ID.js.map} +1 -1
  513. package/dist/sdk/p-DD_5soRi.js +2 -0
  514. package/dist/sdk/p-DD_5soRi.js.map +1 -0
  515. package/dist/sdk/p-DHuvvagO.js +2 -0
  516. package/dist/sdk/p-DHuvvagO.js.map +1 -0
  517. package/dist/sdk/p-DSMkJu9G.js +2 -0
  518. package/dist/sdk/p-DSMkJu9G.js.map +1 -0
  519. package/dist/sdk/p-DcirMfca.js +2 -0
  520. package/dist/sdk/p-DcirMfca.js.map +1 -0
  521. package/dist/sdk/p-J0cv5IOA.js +2 -0
  522. package/dist/sdk/p-J0cv5IOA.js.map +1 -0
  523. package/dist/sdk/p-_5evboqW.js +2 -0
  524. package/dist/sdk/{p-DSktNM_k.js.map → p-_5evboqW.js.map} +1 -1
  525. package/dist/sdk/{p-7ee2f2ab.entry.js → p-ac3a6bbf.entry.js} +2 -2
  526. package/dist/sdk/p-b498bcdd.entry.js +2 -0
  527. package/dist/sdk/p-b498bcdd.entry.js.map +1 -0
  528. package/dist/sdk/p-b5dd5b4c.entry.js +2 -0
  529. package/dist/sdk/p-b5dd5b4c.entry.js.map +1 -0
  530. package/dist/sdk/{p-6b061b18.entry.js → p-b99588a8.entry.js} +2 -2
  531. package/dist/sdk/p-bf9c27a8.entry.js +2 -0
  532. package/dist/sdk/p-bf9c27a8.entry.js.map +1 -0
  533. package/dist/sdk/p-c10d9b8e.entry.js +2 -0
  534. package/dist/sdk/p-c10d9b8e.entry.js.map +1 -0
  535. package/dist/sdk/{p-10e20afd.entry.js → p-c2634439.entry.js} +2 -2
  536. package/dist/sdk/p-d6777395.entry.js +2 -0
  537. package/dist/sdk/p-d6777395.entry.js.map +1 -0
  538. package/dist/sdk/p-dbfe7b29.entry.js +2 -0
  539. package/dist/sdk/p-dbfe7b29.entry.js.map +1 -0
  540. package/dist/sdk/p-def4e874.entry.js +2 -0
  541. package/dist/sdk/p-def4e874.entry.js.map +1 -0
  542. package/dist/sdk/p-e872a012.entry.js +2 -0
  543. package/dist/sdk/p-e872a012.entry.js.map +1 -0
  544. package/dist/sdk/p-eaaf3989.entry.js +2 -0
  545. package/dist/sdk/p-eaaf3989.entry.js.map +1 -0
  546. package/dist/sdk/p-fd46b459.entry.js +2 -0
  547. package/dist/sdk/{p-830778eb.entry.js.map → p-fd46b459.entry.js.map} +1 -1
  548. package/dist/sdk/sdk.esm.js +1 -1
  549. package/dist/sdk/u-conditional-render.entry.esm.js.map +1 -1
  550. package/dist/sdk/u-config.entry.esm.js.map +1 -1
  551. package/dist/sdk/u-error-message.entry.esm.js.map +1 -1
  552. package/dist/sdk/u-field.u-raw-field.entry.esm.js.map +1 -1
  553. package/dist/sdk/u-jump-to-service.entry.esm.js.map +1 -1
  554. package/dist/sdk/u-jump-to-unidy.entry.esm.js.map +1 -1
  555. package/dist/sdk/u-logout-button.u-signed-in.entry.esm.js.map +1 -1
  556. package/dist/sdk/u-magic-code-field.entry.esm.js.map +1 -1
  557. package/dist/sdk/u-missing-field.entry.esm.js.map +1 -1
  558. package/dist/sdk/u-missing-fields-submit-button.entry.esm.js.map +1 -1
  559. package/dist/sdk/u-newsletter-checkbox.entry.esm.js.map +1 -1
  560. package/dist/sdk/u-newsletter-logout-button.entry.esm.js.map +1 -1
  561. package/dist/sdk/u-newsletter-preference-checkbox.entry.esm.js.map +1 -1
  562. package/dist/sdk/u-newsletter-resend-doi-button.entry.esm.js.map +1 -1
  563. package/dist/sdk/u-newsletter-root.entry.esm.js.map +1 -1
  564. package/dist/sdk/u-newsletter-toggle-subscription-button.entry.esm.js.map +1 -1
  565. package/dist/sdk/u-pagination-button.entry.esm.js.map +1 -1
  566. package/dist/sdk/u-pagination-page.entry.esm.js.map +1 -1
  567. package/dist/sdk/u-passkey.entry.esm.js.map +1 -1
  568. package/dist/sdk/u-profile.u-submit-button.entry.esm.js.map +1 -1
  569. package/dist/sdk/u-reset-password-button.entry.esm.js.map +1 -1
  570. package/dist/sdk/u-send-magic-code-button.entry.esm.js.map +1 -1
  571. package/dist/sdk/u-signin-root.entry.esm.js.map +1 -1
  572. package/dist/sdk/u-signin-step.entry.esm.js.map +1 -1
  573. package/dist/sdk/u-social-login-button.entry.esm.js.map +1 -1
  574. package/dist/sdk/u-spinner.entry.esm.js.map +1 -1
  575. package/dist/sdk/u-ticketable-export.entry.esm.js.map +1 -0
  576. package/dist/sdk/u-ticketable-list.entry.esm.js.map +1 -1
  577. package/dist/types/api/client.d.ts +1 -1
  578. package/dist/types/api/index.d.ts +4 -4
  579. package/dist/types/api/standalone.d.ts +9 -9
  580. package/dist/types/auth/api/auth.d.ts +2 -3
  581. package/dist/types/auth/api/schemas.d.ts +19 -19
  582. package/dist/types/auth/auth-helpers.d.ts +1 -0
  583. package/dist/types/auth/components/jump-to-service/jump-to-service.d.ts +13 -5
  584. package/dist/types/auth/components/jump-to-unidy/jump-to-unidy.d.ts +13 -9
  585. package/dist/types/auth/components/logout-button/logout-button.d.ts +13 -4
  586. package/dist/types/auth/components/missing-field/missing-field.d.ts +1 -0
  587. package/dist/types/auth/components/missing-fields-submit-button/missing-fields-submit-button.d.ts +14 -2
  588. package/dist/types/auth/components/reset-pass-button/reset-pass-button.d.ts +13 -4
  589. package/dist/types/auth/components/social-logins/social-login-button.d.ts +11 -7
  590. package/dist/types/components.d.ts +73 -0
  591. package/dist/types/logger.d.ts +0 -34
  592. package/dist/types/newsletter/components/logout-button/logout-button.d.ts +13 -4
  593. package/dist/types/newsletter/components/newsletter-root/newsletter-root.d.ts +16 -2
  594. package/dist/types/newsletter/newsletter-helpers.d.ts +8 -2
  595. package/dist/types/newsletter/store/newsletter-store.d.ts +8 -1
  596. package/dist/types/profile/api/profile.d.ts +2 -2
  597. package/dist/types/profile/api/schemas.d.ts +21 -21
  598. package/dist/types/profile/components/raw-field/raw-field.d.ts +14 -2
  599. package/dist/types/shared/base/component.d.ts +46 -0
  600. package/dist/types/shared/base/has-slot-content.d.ts +10 -0
  601. package/dist/types/shared/component-utils.d.ts +20 -12
  602. package/dist/types/shared/components/conditional-render/conditional-render.d.ts +7 -2
  603. package/dist/types/shared/components/config/config.d.ts +7 -2
  604. package/dist/types/shared/components/error-message/error-message.d.ts +14 -2
  605. package/dist/types/shared/components/submit-button/submit-button.d.ts +13 -4
  606. package/dist/types/shared/context-utils.d.ts +73 -0
  607. package/dist/types/shared/utils/redirect-with-token.d.ts +21 -0
  608. package/dist/types/shared/utils/url-utils.d.ts +16 -0
  609. package/dist/types/ticketable/api/schemas.d.ts +16 -2
  610. package/dist/types/ticketable/api/subscriptions.d.ts +8 -3
  611. package/dist/types/ticketable/api/tickets.d.ts +8 -3
  612. package/dist/types/ticketable/components/pagination/pagination-button.d.ts +8 -4
  613. package/dist/types/ticketable/components/pagination/pagination-page.d.ts +8 -4
  614. package/dist/types/ticketable/components/ticketable-export/ticketable-export.d.ts +24 -0
  615. package/dist/types/ticketable/components/ticketable-list/ticketable-list.d.ts +10 -4
  616. package/dist/types/ticketable/index.d.ts +1 -0
  617. package/package.json +6 -2
  618. package/readme.md +248 -27
  619. package/dist/cjs/app-globals-hdkLqF51.js +0 -10
  620. package/dist/cjs/app-globals-hdkLqF51.js.map +0 -1
  621. package/dist/cjs/component-utils-bu3SY4dE.js +0 -42
  622. package/dist/cjs/component-utils-bu3SY4dE.js.map +0 -1
  623. package/dist/cjs/index-B325yXfO.js.map +0 -1
  624. package/dist/cjs/index-BzPYBLYC.js.map +0 -1
  625. package/dist/cjs/newsletter-helpers-hdDC5X-V.js.map +0 -1
  626. package/dist/cjs/newsletter-store-CupsLgO9.js.map +0 -1
  627. package/dist/cjs/pagination-store-zo48QpTm.js +0 -16
  628. package/dist/cjs/pagination-store-zo48QpTm.js.map +0 -1
  629. package/dist/components/pagination-store.js +0 -14
  630. package/dist/components/pagination-store.js.map +0 -1
  631. package/dist/esm/app-globals-iHhGdwBB.js +0 -8
  632. package/dist/esm/app-globals-iHhGdwBB.js.map +0 -1
  633. package/dist/esm/component-utils-BGq0leDV.js +0 -39
  634. package/dist/esm/component-utils-BGq0leDV.js.map +0 -1
  635. package/dist/esm/index-BVlbCQEX.js.map +0 -1
  636. package/dist/esm/index-FTKB5a1d.js.map +0 -1
  637. package/dist/esm/newsletter-helpers-fCpxzovf.js.map +0 -1
  638. package/dist/esm/newsletter-store-BB618FgS.js.map +0 -1
  639. package/dist/esm/pagination-store-DxmcQH8R.js +0 -14
  640. package/dist/esm/pagination-store-DxmcQH8R.js.map +0 -1
  641. package/dist/sdk/p-1a8973a6.entry.js +0 -2
  642. package/dist/sdk/p-35ad60ab.entry.js +0 -2
  643. package/dist/sdk/p-35ad60ab.entry.js.map +0 -1
  644. package/dist/sdk/p-3f352f38.entry.js +0 -2
  645. package/dist/sdk/p-3f352f38.entry.js.map +0 -1
  646. package/dist/sdk/p-468aaf62.entry.js +0 -2
  647. package/dist/sdk/p-468aaf62.entry.js.map +0 -1
  648. package/dist/sdk/p-4e2e6a13.entry.js +0 -2
  649. package/dist/sdk/p-4e2e6a13.entry.js.map +0 -1
  650. package/dist/sdk/p-57c8dc68.entry.js +0 -2
  651. package/dist/sdk/p-57c8dc68.entry.js.map +0 -1
  652. package/dist/sdk/p-594aec0c.entry.js +0 -2
  653. package/dist/sdk/p-594aec0c.entry.js.map +0 -1
  654. package/dist/sdk/p-60c8be64.entry.js +0 -2
  655. package/dist/sdk/p-60c8be64.entry.js.map +0 -1
  656. package/dist/sdk/p-760718d3.entry.js +0 -2
  657. package/dist/sdk/p-760718d3.entry.js.map +0 -1
  658. package/dist/sdk/p-77f541f3.entry.js +0 -2
  659. package/dist/sdk/p-77f541f3.entry.js.map +0 -1
  660. package/dist/sdk/p-830778eb.entry.js +0 -2
  661. package/dist/sdk/p-8839648e.entry.js +0 -2
  662. package/dist/sdk/p-8839648e.entry.js.map +0 -1
  663. package/dist/sdk/p-B6MYe-dh.js +0 -2
  664. package/dist/sdk/p-B6MYe-dh.js.map +0 -1
  665. package/dist/sdk/p-BGq0leDV.js +0 -2
  666. package/dist/sdk/p-BGq0leDV.js.map +0 -1
  667. package/dist/sdk/p-C_UZBwdm.js +0 -2
  668. package/dist/sdk/p-C_UZBwdm.js.map +0 -1
  669. package/dist/sdk/p-CbazSxaZ.js +0 -2
  670. package/dist/sdk/p-CbazSxaZ.js.map +0 -1
  671. package/dist/sdk/p-DCG3L43i.js +0 -2
  672. package/dist/sdk/p-DEUPZOH-.js +0 -2
  673. package/dist/sdk/p-DEUPZOH-.js.map +0 -1
  674. package/dist/sdk/p-DSktNM_k.js +0 -2
  675. package/dist/sdk/p-FTKB5a1d.js +0 -14
  676. package/dist/sdk/p-FTKB5a1d.js.map +0 -1
  677. package/dist/sdk/p-a7ffcff9.entry.js +0 -2
  678. package/dist/sdk/p-a7ffcff9.entry.js.map +0 -1
  679. package/dist/sdk/p-acaba1d5.entry.js +0 -2
  680. package/dist/sdk/p-acaba1d5.entry.js.map +0 -1
  681. package/dist/sdk/p-ae47a7a3.entry.js +0 -2
  682. package/dist/sdk/p-ae47a7a3.entry.js.map +0 -1
  683. package/dist/sdk/p-aec580e4.entry.js +0 -2
  684. package/dist/sdk/p-aec580e4.entry.js.map +0 -1
  685. package/dist/sdk/p-b63438ff.entry.js +0 -2
  686. package/dist/sdk/p-b63438ff.entry.js.map +0 -1
  687. package/dist/sdk/p-baaaa7f5.entry.js +0 -2
  688. package/dist/sdk/p-baaaa7f5.entry.js.map +0 -1
  689. package/dist/sdk/p-bba2da84.entry.js +0 -2
  690. package/dist/sdk/p-bba2da84.entry.js.map +0 -1
  691. package/dist/sdk/p-bc47f42b.entry.js +0 -2
  692. package/dist/sdk/p-bc47f42b.entry.js.map +0 -1
  693. package/dist/sdk/p-bd51e26f.entry.js +0 -2
  694. package/dist/sdk/p-bd51e26f.entry.js.map +0 -1
  695. package/dist/sdk/p-c3552f75.entry.js +0 -2
  696. package/dist/sdk/p-c3552f75.entry.js.map +0 -1
  697. package/dist/sdk/p-d9900482.entry.js +0 -2
  698. package/dist/sdk/p-d9900482.entry.js.map +0 -1
  699. package/dist/sdk/p-e6796c38.entry.js +0 -2
  700. package/dist/sdk/p-e6796c38.entry.js.map +0 -1
  701. package/dist/sdk/p-f272eb38.entry.js +0 -2
  702. package/dist/sdk/p-f272eb38.entry.js.map +0 -1
  703. package/dist/sdk/p-f4a47ef8.entry.js +0 -2
  704. package/dist/sdk/p-f4a47ef8.entry.js.map +0 -1
  705. package/dist/sdk/p-f608e64a.entry.js +0 -2
  706. package/dist/sdk/p-f608e64a.entry.js.map +0 -1
  707. package/dist/sdk/p-f762ac70.entry.js +0 -2
  708. package/dist/sdk/p-f762ac70.entry.js.map +0 -1
  709. package/dist/sdk/p-l6NinBiD.js +0 -2
  710. package/dist/sdk/p-l6NinBiD.js.map +0 -1
  711. /package/dist/sdk/{p-88beb872.entry.js.map → p-8412762c.entry.js.map} +0 -0
  712. /package/dist/sdk/{p-bcca06f1.entry.js.map → p-96860b09.entry.js.map} +0 -0
  713. /package/dist/sdk/{p-7ee2f2ab.entry.js.map → p-ac3a6bbf.entry.js.map} +0 -0
  714. /package/dist/sdk/{p-6b061b18.entry.js.map → p-b99588a8.entry.js.map} +0 -0
  715. /package/dist/sdk/{p-10e20afd.entry.js.map → p-c2634439.entry.js.map} +0 -0
@@ -1,18 +1,21 @@
1
- import { r as registerInstance, g as getElement, i as forceUpdate, h } from './index-FTKB5a1d.js';
2
- import { i as Auth, g as getUnidyClient } from './index-BVlbCQEX.js';
3
- import { b as authStoreOnChange, s as state } from './auth-store-DBlGNGhq.js';
4
- import { u as unidyState } from './unidy-store-Bg7IaIMd.js';
5
- import { t } from './i18n-Da7S9Oqf.js';
6
- import './profile-store-CHlSKuTY.js';
7
- import './index-BnAYOYR5.js';
8
- import './component-utils-BGq0leDV.js';
9
- import './flash-store-Df2YkLTB.js';
1
+ import { r as registerInstance, h } from './index-BsJDptgj.js';
2
+ import { i as Auth, g as getUnidyClient } from './index-kgGjfc-n.js';
3
+ import { t } from './i18n-ioyZxWsT.js';
4
+ import { U as UnidyComponent } from './component-qfegGRWr.js';
5
+ import { H as HasSlotContent } from './has-slot-content-DSMkJu9G.js';
6
+ import { s as slotFallbackText } from './component-utils-WEof9bTg.js';
7
+ import { r as redirectWithToken } from './redirect-with-token-StCLJlSp.js';
8
+ import { s as state } from './auth-store-CSpEdi46.js';
9
+ import './profile-store-7wBS3gBH.js';
10
+ import './index-C8kmD3tu.js';
11
+ import './unidy-store-B5Bf4Vit.js';
12
+ import './flash-store-Dn1Bava8.js';
10
13
 
11
- const JumpToService = class {
14
+ const JumpToService = class extends UnidyComponent(HasSlotContent) {
12
15
  constructor(hostRef) {
16
+ super();
13
17
  registerInstance(this, hostRef);
14
18
  }
15
- get el() { return getElement(this); }
16
19
  /**
17
20
  * The OAuth Application ID (service ID) to jump to.
18
21
  * @example "2"
@@ -42,18 +45,6 @@ const JumpToService = class {
42
45
  */
43
46
  skipOauthAuthorization = false;
44
47
  loading = false;
45
- // TODO: Figure out a way to share this across components
46
- unsubscribe;
47
- connectedCallback() {
48
- this.unsubscribe = authStoreOnChange("authenticated", () => {
49
- forceUpdate(this);
50
- });
51
- }
52
- disconnectedCallback() {
53
- if (this.unsubscribe) {
54
- this.unsubscribe();
55
- }
56
- }
57
48
  handleClick = async (event) => {
58
49
  event.preventDefault();
59
50
  if (!this.serviceId) {
@@ -61,21 +52,19 @@ const JumpToService = class {
61
52
  return;
62
53
  }
63
54
  const auth = await Auth.getInstance();
64
- const isAuthenticated = await auth.isAuthenticated();
65
- if (!isAuthenticated) {
55
+ if (!(await auth.isAuthenticated())) {
66
56
  console.error("[u-jump-to-service] User is not authenticated. Please log in first.");
67
57
  return;
68
58
  }
69
59
  const userData = await auth.userData();
70
- if (!userData || !userData.email) {
60
+ if (!userData?.email) {
71
61
  console.error("Failed to get user email from authentication token");
72
62
  return;
73
63
  }
74
64
  this.loading = true;
75
65
  try {
76
66
  const client = getUnidyClient();
77
- // Parse scopes if provided
78
- const scopesArray = this.scopes ? this.scopes.split(",").map((s) => s.trim()) : undefined;
67
+ const scopesArray = this.scopes?.split(",").map((s) => s.trim());
79
68
  const [error, token] = await client.auth.jumpToService(this.serviceId, {
80
69
  email: userData.email,
81
70
  redirect_uri: this.redirectUri,
@@ -84,22 +73,13 @@ const JumpToService = class {
84
73
  });
85
74
  if (error) {
86
75
  console.error("Failed to get jump token:", error);
87
- this.loading = false;
88
76
  return;
89
77
  }
90
- const redirectUrl = new URL("/one_time_login", unidyState.baseUrl);
91
- // @ts-expect-error - TOKEN IS A STRING, BUT we need to enable strict for it to work
92
- redirectUrl.searchParams.set("token", token);
93
- if (this.redirectUri) {
94
- redirectUrl.searchParams.set("redirect_uri", this.redirectUri);
95
- }
96
- const finalUrl = redirectUrl.toString();
97
- if (this.newtab) {
98
- window.open(finalUrl, "_blank");
99
- }
100
- else {
101
- window.location.href = finalUrl;
102
- }
78
+ redirectWithToken({
79
+ token: token,
80
+ newTab: this.newtab,
81
+ extraParams: this.redirectUri ? { redirect_uri: this.redirectUri } : undefined,
82
+ });
103
83
  }
104
84
  catch (error) {
105
85
  console.error("Error jumping to service:", error);
@@ -112,8 +92,7 @@ const JumpToService = class {
112
92
  return !state.authenticated || this.loading || !this.serviceId;
113
93
  }
114
94
  render() {
115
- const hasSlot = this.el.childNodes.length > 0;
116
- return (h("button", { key: '3f0526c3a12b73cada7b044dfe55fd74757031cf', type: "button", disabled: this.isDisabled(), class: this.componentClassName, onClick: this.handleClick, "aria-live": "polite" }, this.loading ? h("u-spinner", null) : hasSlot ? h("slot", null) : t("buttons.jump_to_service")));
95
+ return (h("button", { key: 'dc593d260c7b74bbfa108c1201b02c1ed7a414c0', type: "button", disabled: this.isDisabled(), class: this.componentClassName, onClick: this.handleClick, "aria-live": "polite" }, slotFallbackText(t("buttons.jump_to_service"), { hasSlot: this.hasSlot, loading: this.loading })));
117
96
  }
118
97
  };
119
98
 
@@ -1 +1 @@
1
- {"version":3,"file":"u-jump-to-service.entry.js","sources":["src/auth/components/jump-to-service/jump-to-service.tsx"],"sourcesContent":["import { Component, h, Prop, State, forceUpdate, Element } from \"@stencil/core\";\nimport { Auth } from \"../../auth\";\nimport { authState, onChange } from \"../../store/auth-store\";\nimport { getUnidyClient } from \"../../../api\";\nimport { unidyState } from \"../../../shared/store/unidy-store\";\nimport { t } from \"../../../i18n\";\n\n@Component({\n tag: \"u-jump-to-service\",\n shadow: false,\n})\nexport class JumpToService {\n @Element() el!: HTMLElement;\n\n /**\n * The OAuth Application ID (service ID) to jump to.\n * @example \"2\"\n */\n @Prop({ attribute: \"service-id\" }) serviceId!: string;\n\n /**\n * If true, opens the URL in a new tab. Defaults to false.\n */\n @Prop() newtab = false;\n\n /**\n * Custom CSS class name(s) to apply to the button element.\n */\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n\n /**\n * Optional redirect URI for the OAuth flow.\n * Must match one of the application's allowed redirect URIs.\n */\n @Prop({ attribute: \"redirect-uri\" }) redirectUri?: string;\n\n /**\n * Comma-separated list of OAuth scopes to request.\n * Defaults to [\"openid\"] if not provided.\n * @example \"openid,profile\"\n */\n @Prop() scopes?: string;\n\n /**\n * If true, skips the OAuth authorization step (if already authorized once). Defaults to false.\n */\n @Prop({ attribute: \"skip-oauth-authorization\" }) skipOauthAuthorization = false;\n\n @State() loading = false;\n\n // TODO: Figure out a way to share this across components\n private unsubscribe?: () => void;\n\n connectedCallback() {\n this.unsubscribe = onChange(\"authenticated\", () => {\n forceUpdate(this);\n });\n }\n\n disconnectedCallback() {\n if (this.unsubscribe) {\n this.unsubscribe();\n }\n }\n\n private handleClick = async (event: Event) => {\n event.preventDefault();\n\n if (!this.serviceId) {\n console.error(\"[u-jump-to-service] service-id is required\");\n return;\n }\n\n const auth = await Auth.getInstance();\n const isAuthenticated = await auth.isAuthenticated();\n\n if (!isAuthenticated) {\n console.error(\"[u-jump-to-service] User is not authenticated. Please log in first.\");\n return;\n }\n\n const userData = await auth.userData();\n if (!userData || !userData.email) {\n console.error(\"Failed to get user email from authentication token\");\n return;\n }\n\n this.loading = true;\n\n try {\n const client = getUnidyClient();\n\n // Parse scopes if provided\n const scopesArray = this.scopes ? this.scopes.split(\",\").map((s) => s.trim()) : undefined;\n\n const [error, token] = await client.auth.jumpToService(this.serviceId, {\n email: userData.email,\n redirect_uri: this.redirectUri,\n scopes: scopesArray,\n skip_oauth_authorization: this.skipOauthAuthorization,\n });\n\n if (error) {\n console.error(\"Failed to get jump token:\", error);\n this.loading = false;\n return;\n }\n\n const redirectUrl = new URL(\"/one_time_login\", unidyState.baseUrl);\n // @ts-expect-error - TOKEN IS A STRING, BUT we need to enable strict for it to work\n redirectUrl.searchParams.set(\"token\", token);\n if (this.redirectUri) {\n redirectUrl.searchParams.set(\"redirect_uri\", this.redirectUri);\n }\n\n const finalUrl = redirectUrl.toString();\n\n if (this.newtab) {\n window.open(finalUrl, \"_blank\");\n } else {\n window.location.href = finalUrl;\n }\n } catch (error) {\n console.error(\"Error jumping to service:\", error);\n } finally {\n this.loading = false;\n }\n };\n\n private isDisabled(): boolean {\n return !authState.authenticated || this.loading || !this.serviceId;\n }\n\n render() {\n const hasSlot = this.el.childNodes.length > 0;\n return (\n <button type=\"button\" disabled={this.isDisabled()} class={this.componentClassName} onClick={this.handleClick} aria-live=\"polite\">\n {this.loading ? <u-spinner /> : hasSlot ? <slot /> : t(\"buttons.jump_to_service\")}\n </button>\n );\n }\n}\n"],"names":["onChange","authState"],"mappings":"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"}
1
+ {"version":3,"file":"u-jump-to-service.entry.js","sources":["src/auth/components/jump-to-service/jump-to-service.tsx"],"sourcesContent":["import { Component, h, Prop, State } from \"@stencil/core\";\nimport { getUnidyClient } from \"../../../api\";\nimport { t } from \"../../../i18n\";\nimport { UnidyComponent } from \"../../../shared/base/component\";\nimport { HasSlotContent } from \"../../../shared/base/has-slot-content\";\nimport { slotFallbackText } from \"../../../shared/component-utils\";\nimport { redirectWithToken } from \"../../../shared/utils/redirect-with-token\";\nimport { Auth } from \"../../auth\";\nimport { authState } from \"../../store/auth-store\";\n\n@Component({\n tag: \"u-jump-to-service\",\n shadow: false,\n})\nexport class JumpToService extends UnidyComponent(HasSlotContent) {\n /**\n * The OAuth Application ID (service ID) to jump to.\n * @example \"2\"\n */\n @Prop({ attribute: \"service-id\" }) serviceId!: string;\n\n /**\n * If true, opens the URL in a new tab. Defaults to false.\n */\n @Prop() newtab = false;\n\n /**\n * Custom CSS class name(s) to apply to the button element.\n */\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n\n /**\n * Optional redirect URI for the OAuth flow.\n * Must match one of the application's allowed redirect URIs.\n */\n @Prop({ attribute: \"redirect-uri\" }) redirectUri?: string;\n\n /**\n * Comma-separated list of OAuth scopes to request.\n * Defaults to [\"openid\"] if not provided.\n * @example \"openid,profile\"\n */\n @Prop() scopes?: string;\n\n /**\n * If true, skips the OAuth authorization step (if already authorized once). Defaults to false.\n */\n @Prop({ attribute: \"skip-oauth-authorization\" }) skipOauthAuthorization = false;\n\n @State() loading = false;\n\n private handleClick = async (event: Event) => {\n event.preventDefault();\n\n if (!this.serviceId) {\n console.error(\"[u-jump-to-service] service-id is required\");\n return;\n }\n\n const auth = await Auth.getInstance();\n if (!(await auth.isAuthenticated())) {\n console.error(\"[u-jump-to-service] User is not authenticated. Please log in first.\");\n return;\n }\n\n const userData = await auth.userData();\n if (!userData?.email) {\n console.error(\"Failed to get user email from authentication token\");\n return;\n }\n\n this.loading = true;\n\n try {\n const client = getUnidyClient();\n const scopesArray = this.scopes?.split(\",\").map((s) => s.trim());\n\n const [error, token] = await client.auth.jumpToService(this.serviceId, {\n email: userData.email,\n redirect_uri: this.redirectUri,\n scopes: scopesArray,\n skip_oauth_authorization: this.skipOauthAuthorization,\n });\n\n if (error) {\n console.error(\"Failed to get jump token:\", error);\n return;\n }\n\n redirectWithToken({\n token: token as string,\n newTab: this.newtab,\n extraParams: this.redirectUri ? { redirect_uri: this.redirectUri } : undefined,\n });\n } catch (error) {\n console.error(\"Error jumping to service:\", error);\n } finally {\n this.loading = false;\n }\n };\n\n private isDisabled(): boolean {\n return !authState.authenticated || this.loading || !this.serviceId;\n }\n\n render() {\n return (\n <button type=\"button\" disabled={this.isDisabled()} class={this.componentClassName} onClick={this.handleClick} aria-live=\"polite\">\n {slotFallbackText(t(\"buttons.jump_to_service\"), { hasSlot: this.hasSlot, loading: this.loading })}\n </button>\n );\n }\n}\n"],"names":["authState"],"mappings":";;;;;;;;;;;;;AAca,MAAA,aAAc,GAAA,cAAQ,cAAc,CAAC,cAAc,CAAC,CAAA;;;;;AAC/D;;;AAGG;AACgC,IAAA,SAAS;AAE5C;;AAEG;IACK,MAAM,GAAG,KAAK;AAEtB;;AAEG;IACgC,kBAAkB,GAAG,EAAE;AAE1D;;;AAGG;AACkC,IAAA,WAAW;AAEhD;;;;AAIG;AACK,IAAA,MAAM;AAEd;;AAEG;IAC8C,sBAAsB,GAAG,KAAK;IAEtE,OAAO,GAAG,KAAK;AAEhB,IAAA,WAAW,GAAG,OAAO,KAAY,KAAI;QAC3C,KAAK,CAAC,cAAc,EAAE;AAEtB,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC;YAC3D;;AAGF,QAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE;QACrC,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACnC,YAAA,OAAO,CAAC,KAAK,CAAC,qEAAqE,CAAC;YACpF;;AAGF,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE;AACtC,QAAA,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE;AACpB,YAAA,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC;YACnE;;AAGF,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AAEnB,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,GAAG,cAAc,EAAE;YAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;AAEhE,YAAA,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE;gBACrE,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,YAAY,EAAE,IAAI,CAAC,WAAW;AAC9B,gBAAA,MAAM,EAAE,WAAW;gBACnB,wBAAwB,EAAE,IAAI,CAAC,sBAAsB;AACtD,aAAA,CAAC;YAEF,IAAI,KAAK,EAAE;AACT,gBAAA,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC;gBACjD;;AAGF,YAAA,iBAAiB,CAAC;AAChB,gBAAA,KAAK,EAAE,KAAe;gBACtB,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,gBAAA,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,EAAE,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,GAAG,SAAS;AAC/E,aAAA,CAAC;;QACF,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC;;gBACzC;AACR,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK;;AAExB,KAAC;IAEO,UAAU,GAAA;AAChB,QAAA,OAAO,CAACA,KAAS,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS;;IAGpE,MAAM,GAAA;AACJ,QAAA,QACE,+DAAQ,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAA,WAAA,EAAY,QAAQ,EAC7H,EAAA,gBAAgB,CAAC,CAAC,CAAC,yBAAyB,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAC1F;;;;;;"}
@@ -1,18 +1,21 @@
1
- import { r as registerInstance, g as getElement, i as forceUpdate, h } from './index-FTKB5a1d.js';
2
- import { i as Auth, g as getUnidyClient } from './index-BVlbCQEX.js';
3
- import { b as authStoreOnChange, s as state } from './auth-store-DBlGNGhq.js';
4
- import { u as unidyState } from './unidy-store-Bg7IaIMd.js';
5
- import { t } from './i18n-Da7S9Oqf.js';
6
- import './profile-store-CHlSKuTY.js';
7
- import './index-BnAYOYR5.js';
8
- import './component-utils-BGq0leDV.js';
9
- import './flash-store-Df2YkLTB.js';
1
+ import { r as registerInstance, h } from './index-BsJDptgj.js';
2
+ import { i as Auth, g as getUnidyClient } from './index-kgGjfc-n.js';
3
+ import { t } from './i18n-ioyZxWsT.js';
4
+ import { U as UnidyComponent } from './component-qfegGRWr.js';
5
+ import { H as HasSlotContent } from './has-slot-content-DSMkJu9G.js';
6
+ import { s as slotFallbackText } from './component-utils-WEof9bTg.js';
7
+ import { u as unidyState } from './unidy-store-B5Bf4Vit.js';
8
+ import { r as redirectWithToken } from './redirect-with-token-StCLJlSp.js';
9
+ import { s as state } from './auth-store-CSpEdi46.js';
10
+ import './profile-store-7wBS3gBH.js';
11
+ import './index-C8kmD3tu.js';
12
+ import './flash-store-Dn1Bava8.js';
10
13
 
11
- const JumpToUnidy = class {
14
+ const JumpToUnidy = class extends UnidyComponent(HasSlotContent) {
12
15
  constructor(hostRef) {
16
+ super();
13
17
  registerInstance(this, hostRef);
14
18
  }
15
- get el() { return getElement(this); }
16
19
  /**
17
20
  * The Unidy path to redirect to. Must start with "/".
18
21
  * @example "/subscriptions"
@@ -33,11 +36,6 @@ const JumpToUnidy = class {
33
36
  */
34
37
  componentClassName = "";
35
38
  loading = false;
36
- unsubscribe;
37
- /**
38
- * Validates that the path prop is valid (not empty and starts with "/").
39
- * @returns true if path is valid, false otherwise
40
- */
41
39
  isValidPath() {
42
40
  return !!this.path && this.path.startsWith("/");
43
41
  }
@@ -46,17 +44,6 @@ const JumpToUnidy = class {
46
44
  console.error(`[u-jump-to-unidy] Invalid path prop: "${this.path}". Path must be provided and start with "/".`);
47
45
  }
48
46
  }
49
- // TODO: Figure out a way to share this across components
50
- connectedCallback() {
51
- this.unsubscribe = authStoreOnChange("authenticated", () => {
52
- forceUpdate(this);
53
- });
54
- }
55
- disconnectedCallback() {
56
- if (this.unsubscribe) {
57
- this.unsubscribe();
58
- }
59
- }
60
47
  handleClick = async (event) => {
61
48
  event.preventDefault();
62
49
  if (!this.isValidPath()) {
@@ -75,13 +62,12 @@ const JumpToUnidy = class {
75
62
  return;
76
63
  }
77
64
  const auth = await Auth.getInstance();
78
- const isAuthenticated = await auth.isAuthenticated();
79
- if (!isAuthenticated) {
65
+ if (!(await auth.isAuthenticated())) {
80
66
  console.error("[u-jump-to-unidy] User is not authenticated. Please log in first.");
81
67
  return;
82
68
  }
83
69
  const userData = await auth.userData();
84
- if (!userData || !userData.email) {
70
+ if (!userData?.email) {
85
71
  console.error("Failed to get user email from authentication token");
86
72
  return;
87
73
  }
@@ -94,19 +80,13 @@ const JumpToUnidy = class {
94
80
  });
95
81
  if (error) {
96
82
  console.error("Failed to get jump token:", error);
97
- this.loading = false;
98
83
  return;
99
84
  }
100
- const redirectUrl = new URL("/one_time_login", unidyState.baseUrl);
101
- // @ts-expect-error - TOKEN IS A STRING, BUT we need to enable strict for it to work
102
- redirectUrl.searchParams.set("token", token);
103
- const finalUrl = redirectUrl.toString();
104
- if (this.newtab) {
105
- window.open(finalUrl, "_blank");
106
- }
107
- else {
108
- window.location.href = finalUrl;
109
- }
85
+ redirectWithToken({
86
+ // @ts-expect-error - TOKEN IS A STRING, BUT we need to enable strict for it to work
87
+ token,
88
+ newTab: this.newtab,
89
+ });
110
90
  }
111
91
  catch (error) {
112
92
  console.error("Error jumping to Unidy:", error);
@@ -122,8 +102,7 @@ const JumpToUnidy = class {
122
102
  return !state.authenticated || this.loading || !this.isValidPath();
123
103
  }
124
104
  render() {
125
- const hasSlot = this.el.childNodes.length > 0;
126
- return (h("button", { key: 'bcf35a95e8ea304da27320e6f4406dd57e94aaf7', type: "button", disabled: this.isDisabled(), class: this.componentClassName, onClick: this.handleClick, "aria-live": "polite" }, this.loading ? h("u-spinner", null) : hasSlot ? h("slot", null) : t("buttons.jump_to_unidy")));
105
+ return (h("button", { key: 'b5747e752d731be9281f82ca0487841ee7baf2d3', type: "button", disabled: this.isDisabled(), class: this.componentClassName, onClick: this.handleClick, "aria-live": "polite" }, slotFallbackText(t("buttons.jump_to_unidy"), { hasSlot: this.hasSlot, loading: this.loading })));
127
106
  }
128
107
  };
129
108
 
@@ -1 +1 @@
1
- {"version":3,"file":"u-jump-to-unidy.entry.js","sources":["src/auth/components/jump-to-unidy/jump-to-unidy.tsx"],"sourcesContent":["import { Component, h, Prop, State, forceUpdate, Element } from \"@stencil/core\";\nimport { Auth } from \"../../auth\";\nimport { authState, onChange } from \"../../store/auth-store\";\nimport { getUnidyClient } from \"../../../api\";\nimport { unidyState } from \"../../../shared/store/unidy-store\";\nimport { t } from \"../../../i18n\";\n\n@Component({\n tag: \"u-jump-to-unidy\",\n shadow: false,\n})\nexport class JumpToUnidy {\n @Element() el!: HTMLElement;\n\n /**\n * The Unidy path to redirect to. Must start with \"/\".\n * @example \"/subscriptions\"\n * @example \"/tickets\"\n */\n @Prop() path!: string;\n\n /**\n * If true, opens the URL in a new tab. Defaults to false.\n */\n @Prop() newtab = false;\n\n /**\n * If true, skips authentication and redirects directly to the Unidy path.\n * Useful for public pages like terms of service.\n */\n @Prop({ attribute: \"no-auth\" }) noAuth = false;\n\n /**\n * Custom CSS class name(s) to apply to the button element.\n */\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n\n @State() loading = false;\n private unsubscribe?: () => void;\n\n /**\n * Validates that the path prop is valid (not empty and starts with \"/\").\n * @returns true if path is valid, false otherwise\n */\n private isValidPath(): boolean {\n return !!this.path && this.path.startsWith(\"/\");\n }\n\n componentWillLoad() {\n if (!this.isValidPath()) {\n console.error(`[u-jump-to-unidy] Invalid path prop: \"${this.path}\". Path must be provided and start with \"/\".`);\n }\n }\n\n // TODO: Figure out a way to share this across components\n connectedCallback() {\n this.unsubscribe = onChange(\"authenticated\", () => {\n forceUpdate(this);\n });\n }\n\n disconnectedCallback() {\n if (this.unsubscribe) {\n this.unsubscribe();\n }\n }\n\n private handleClick = async (event: Event) => {\n event.preventDefault();\n\n if (!this.isValidPath()) {\n console.error(`[u-jump-to-unidy] Invalid path: \"${this.path}\". Path must be provided and start with \"/\".`);\n return;\n }\n\n // If no-auth mode, redirect directly to the path without authentication\n if (this.noAuth) {\n const finalUrl = new URL(this.path, unidyState.baseUrl).toString();\n if (this.newtab) {\n window.open(finalUrl, \"_blank\");\n } else {\n window.location.href = finalUrl;\n }\n return;\n }\n\n const auth = await Auth.getInstance();\n const isAuthenticated = await auth.isAuthenticated();\n\n if (!isAuthenticated) {\n console.error(\"[u-jump-to-unidy] User is not authenticated. Please log in first.\");\n return;\n }\n\n const userData = await auth.userData();\n if (!userData || !userData.email) {\n console.error(\"Failed to get user email from authentication token\");\n return;\n }\n\n this.loading = true;\n\n try {\n const client = getUnidyClient();\n\n const [error, token] = await client.auth.jumpToUnidy({\n email: userData.email,\n path: this.path,\n });\n\n if (error) {\n console.error(\"Failed to get jump token:\", error);\n this.loading = false;\n return;\n }\n\n const redirectUrl = new URL(\"/one_time_login\", unidyState.baseUrl);\n // @ts-expect-error - TOKEN IS A STRING, BUT we need to enable strict for it to work\n redirectUrl.searchParams.set(\"token\", token);\n\n const finalUrl = redirectUrl.toString();\n\n if (this.newtab) {\n window.open(finalUrl, \"_blank\");\n } else {\n window.location.href = finalUrl;\n }\n } catch (error) {\n console.error(\"Error jumping to Unidy:\", error);\n } finally {\n this.loading = false;\n }\n };\n\n private isDisabled(): boolean {\n if (this.noAuth) {\n return this.loading || !this.isValidPath();\n }\n return !authState.authenticated || this.loading || !this.isValidPath();\n }\n\n render() {\n const hasSlot = this.el.childNodes.length > 0;\n return (\n <button type=\"button\" disabled={this.isDisabled()} class={this.componentClassName} onClick={this.handleClick} aria-live=\"polite\">\n {this.loading ? <u-spinner /> : hasSlot ? <slot /> : t(\"buttons.jump_to_unidy\")}\n </button>\n );\n }\n}\n"],"names":["onChange","authState"],"mappings":"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"}
1
+ {"version":3,"file":"u-jump-to-unidy.entry.js","sources":["src/auth/components/jump-to-unidy/jump-to-unidy.tsx"],"sourcesContent":["import { Component, h, Prop, State } from \"@stencil/core\";\nimport { getUnidyClient } from \"../../../api\";\nimport { t } from \"../../../i18n\";\nimport { UnidyComponent } from \"../../../shared/base/component\";\nimport { HasSlotContent } from \"../../../shared/base/has-slot-content\";\nimport { slotFallbackText } from \"../../../shared/component-utils\";\nimport { unidyState } from \"../../../shared/store/unidy-store\";\nimport { redirectWithToken } from \"../../../shared/utils/redirect-with-token\";\nimport { Auth } from \"../../auth\";\nimport { authState } from \"../../store/auth-store\";\n\n@Component({\n tag: \"u-jump-to-unidy\",\n shadow: false,\n})\nexport class JumpToUnidy extends UnidyComponent(HasSlotContent) {\n /**\n * The Unidy path to redirect to. Must start with \"/\".\n * @example \"/subscriptions\"\n * @example \"/tickets\"\n */\n @Prop() path!: string;\n\n /**\n * If true, opens the URL in a new tab. Defaults to false.\n */\n @Prop() newtab = false;\n\n /**\n * If true, skips authentication and redirects directly to the Unidy path.\n * Useful for public pages like terms of service.\n */\n @Prop({ attribute: \"no-auth\" }) noAuth = false;\n\n /**\n * Custom CSS class name(s) to apply to the button element.\n */\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n\n @State() loading = false;\n\n private isValidPath(): boolean {\n return !!this.path && this.path.startsWith(\"/\");\n }\n\n componentWillLoad() {\n if (!this.isValidPath()) {\n console.error(`[u-jump-to-unidy] Invalid path prop: \"${this.path}\". Path must be provided and start with \"/\".`);\n }\n }\n\n private handleClick = async (event: Event) => {\n event.preventDefault();\n\n if (!this.isValidPath()) {\n console.error(`[u-jump-to-unidy] Invalid path: \"${this.path}\". Path must be provided and start with \"/\".`);\n return;\n }\n\n // If no-auth mode, redirect directly to the path without authentication\n if (this.noAuth) {\n const finalUrl = new URL(this.path, unidyState.baseUrl).toString();\n if (this.newtab) {\n window.open(finalUrl, \"_blank\");\n } else {\n window.location.href = finalUrl;\n }\n return;\n }\n\n const auth = await Auth.getInstance();\n if (!(await auth.isAuthenticated())) {\n console.error(\"[u-jump-to-unidy] User is not authenticated. Please log in first.\");\n return;\n }\n\n const userData = await auth.userData();\n if (!userData?.email) {\n console.error(\"Failed to get user email from authentication token\");\n return;\n }\n\n this.loading = true;\n\n try {\n const client = getUnidyClient();\n const [error, token] = await client.auth.jumpToUnidy({\n email: userData.email,\n path: this.path,\n });\n\n if (error) {\n console.error(\"Failed to get jump token:\", error);\n return;\n }\n\n redirectWithToken({\n // @ts-expect-error - TOKEN IS A STRING, BUT we need to enable strict for it to work\n token,\n newTab: this.newtab,\n });\n } catch (error) {\n console.error(\"Error jumping to Unidy:\", error);\n } finally {\n this.loading = false;\n }\n };\n\n private isDisabled(): boolean {\n if (this.noAuth) {\n return this.loading || !this.isValidPath();\n }\n return !authState.authenticated || this.loading || !this.isValidPath();\n }\n\n render() {\n return (\n <button type=\"button\" disabled={this.isDisabled()} class={this.componentClassName} onClick={this.handleClick} aria-live=\"polite\">\n {slotFallbackText(t(\"buttons.jump_to_unidy\"), { hasSlot: this.hasSlot, loading: this.loading })}\n </button>\n );\n }\n}\n"],"names":["authState"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"u-logout-button.u-signed-in.entry.js","sources":["src/auth/components/logout-button/logout-button.tsx","src/auth/components/signed-in/signed-in.tsx"],"sourcesContent":["import { Component, Element, Event, type EventEmitter, h, Prop } from \"@stencil/core\";\nimport { t } from \"../../../i18n\";\nimport { hasSlotContent } from \"../../../shared/component-utils\";\nimport { Auth } from \"../../auth\";\n\n@Component({\n tag: \"u-logout-button\",\n shadow: false,\n})\nexport class LogoutButton {\n @Element() el!: HTMLElement;\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n @Prop() reloadOnSuccess = true;\n\n @Event() logout!: EventEmitter<void>;\n\n private hasSlot = false;\n\n async componentWillLoad() {\n // this needs to be evaluated on load, bc doing it on render will evaluate the generated dom for \"shadow: false\"\n // components and always return true on re-render\n this.hasSlot = hasSlotContent(this.el);\n }\n\n private handleLogout = async () => {\n const authInstance = await Auth.getInstance();\n\n const result = await authInstance.logout();\n\n if (result === true) {\n this.logout.emit();\n\n if (this.reloadOnSuccess) {\n window.location.reload();\n }\n }\n };\n\n render() {\n return (\n <button type=\"button\" class={this.componentClassName} onClick={this.handleLogout} aria-live=\"polite\">\n {this.hasSlot ? <slot /> : t(\"buttons.logout\")}\n </button>\n );\n }\n}\n","import { Component, Host, h, Prop } from \"@stencil/core\";\nimport { authStore } from \"../../store/auth-store\";\n\n@Component({\n tag: \"u-signed-in\",\n shadow: true,\n})\nexport class SignedIn {\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n @Prop() not = false;\n\n render() {\n if (this.not ? authStore.state.authenticated : !authStore.state.authenticated) {\n return null;\n }\n\n return (\n <Host class={this.componentClassName}>\n <slot />\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;MASa,YAAY,GAAA,MAAA;;;;;;IAEY,kBAAkB,GAAG,EAAE;IAClD,eAAe,GAAG,IAAI;AAErB,IAAA,MAAM;IAEP,OAAO,GAAG,KAAK;AAEvB,IAAA,MAAM,iBAAiB,GAAA;;;QAGrB,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;;IAGhC,YAAY,GAAG,YAAW;AAChC,QAAA,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE;AAE7C,QAAA,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE;AAE1C,QAAA,IAAI,MAAM,KAAK,IAAI,EAAE;AACnB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAElB,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,gBAAA,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;;;AAG9B,KAAC;IAED,MAAM,GAAA;QACJ,QACE,CAAQ,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAA,WAAA,EAAY,QAAQ,EAAA,EACjG,IAAI,CAAC,OAAO,GAAG,CAAQ,CAAA,MAAA,EAAA,IAAA,CAAA,GAAG,CAAC,CAAC,gBAAgB,CAAC,CACvC;;;;MCnCF,QAAQ,GAAA,MAAA;;;;IACgB,kBAAkB,GAAG,EAAE;IAClD,GAAG,GAAG,KAAK;IAEnB,MAAM,GAAA;QACJ,IAAI,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,EAAE;AAC7E,YAAA,OAAO,IAAI;;QAGb,QACE,EAAC,IAAI,EAAA,EAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAA,EAClC,CAAQ,CAAA,MAAA,EAAA,IAAA,CAAA,CACH;;;;;;;;"}
1
+ {"version":3,"file":"u-logout-button.u-signed-in.entry.js","sources":["src/auth/components/logout-button/logout-button.tsx","src/auth/components/signed-in/signed-in.tsx"],"sourcesContent":["import { Component, Event, type EventEmitter, h, Prop } from \"@stencil/core\";\nimport { t } from \"../../../i18n\";\nimport { UnidyComponent } from \"../../../shared/base/component\";\nimport { HasSlotContent } from \"../../../shared/base/has-slot-content\";\nimport { Auth } from \"../../auth\";\n\n@Component({\n tag: \"u-logout-button\",\n shadow: false,\n})\nexport class LogoutButton extends UnidyComponent(HasSlotContent) {\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n @Prop() reloadOnSuccess = true;\n\n @Event() logout!: EventEmitter<void>;\n\n private handleLogout = async () => {\n const authInstance = await Auth.getInstance();\n\n const result = await authInstance.logout();\n\n if (result === true) {\n this.logout.emit();\n\n if (this.reloadOnSuccess) {\n window.location.reload();\n }\n }\n };\n\n render() {\n return (\n <button type=\"button\" class={this.componentClassName} onClick={this.handleLogout} aria-live=\"polite\">\n {this.hasSlot ? <slot /> : t(\"buttons.logout\")}\n </button>\n );\n }\n}\n","import { Component, Host, h, Prop } from \"@stencil/core\";\nimport { authStore } from \"../../store/auth-store\";\n\n@Component({\n tag: \"u-signed-in\",\n shadow: false,\n})\nexport class SignedIn {\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n @Prop() not = false;\n\n render() {\n const shouldShow = this.not ? !authStore.state.authenticated : authStore.state.authenticated;\n\n return (\n <Host\n class={this.componentClassName}\n hidden={!shouldShow}\n style={{ display: shouldShow ? undefined : \"none\" }}\n aria-hidden={!shouldShow ? \"true\" : null}\n aria-live=\"polite\"\n >\n <slot />\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAUa,MAAA,YAAa,GAAA,cAAQ,cAAc,CAAC,cAAc,CAAC,CAAA;;;;;;IAC3B,kBAAkB,GAAG,EAAE;IAClD,eAAe,GAAG,IAAI;AAErB,IAAA,MAAM;IAEP,YAAY,GAAG,YAAW;AAChC,QAAA,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE;AAE7C,QAAA,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE;AAE1C,QAAA,IAAI,MAAM,KAAK,IAAI,EAAE;AACnB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAElB,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,gBAAA,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;;;AAG9B,KAAC;IAED,MAAM,GAAA;QACJ,QACE,CAAQ,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAA,WAAA,EAAY,QAAQ,EAAA,EACjG,IAAI,CAAC,OAAO,GAAG,CAAQ,CAAA,MAAA,EAAA,IAAA,CAAA,GAAG,CAAC,CAAC,gBAAgB,CAAC,CACvC;;;;MC3BF,QAAQ,GAAA,MAAA;;;;IACgB,kBAAkB,GAAG,EAAE;IAClD,GAAG,GAAG,KAAK;IAEnB,MAAM,GAAA;QACJ,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,aAAa;AAE5F,QAAA,QACE,CAAC,CAAA,IAAI,qDACH,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAC9B,MAAM,EAAE,CAAC,UAAU,EACnB,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,EAAE,EACtC,aAAA,EAAA,CAAC,UAAU,GAAG,MAAM,GAAG,IAAI,eAC9B,QAAQ,EAAA,EAElB,CAAQ,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACH;;;;;;;;"}
@@ -1,28 +1,23 @@
1
- import { r as registerInstance, d as createEvent, g as getElement, h, e as Host } from './index-FTKB5a1d.js';
2
- import { t } from './i18n-Da7S9Oqf.js';
3
- import { h as hasSlotContent } from './component-utils-BGq0leDV.js';
4
- import { i as Auth } from './index-BVlbCQEX.js';
5
- import { a as authStore } from './auth-store-DBlGNGhq.js';
6
- import './unidy-store-Bg7IaIMd.js';
7
- import './index-BnAYOYR5.js';
8
- import './profile-store-CHlSKuTY.js';
9
- import './flash-store-Df2YkLTB.js';
1
+ import { r as registerInstance, d as createEvent, h, e as Host } from './index-BsJDptgj.js';
2
+ import { t } from './i18n-ioyZxWsT.js';
3
+ import { U as UnidyComponent } from './component-qfegGRWr.js';
4
+ import { H as HasSlotContent } from './has-slot-content-DSMkJu9G.js';
5
+ import { i as Auth } from './index-kgGjfc-n.js';
6
+ import { a as authStore } from './auth-store-CSpEdi46.js';
7
+ import './unidy-store-B5Bf4Vit.js';
8
+ import './index-C8kmD3tu.js';
9
+ import './profile-store-7wBS3gBH.js';
10
+ import './flash-store-Dn1Bava8.js';
10
11
 
11
- const LogoutButton = class {
12
+ const LogoutButton = class extends UnidyComponent(HasSlotContent) {
12
13
  constructor(hostRef) {
14
+ super();
13
15
  registerInstance(this, hostRef);
14
16
  this.logout = createEvent(this, "logout", 7);
15
17
  }
16
- get el() { return getElement(this); }
17
18
  componentClassName = "";
18
19
  reloadOnSuccess = true;
19
20
  logout;
20
- hasSlot = false;
21
- async componentWillLoad() {
22
- // this needs to be evaluated on load, bc doing it on render will evaluate the generated dom for "shadow: false"
23
- // components and always return true on re-render
24
- this.hasSlot = hasSlotContent(this.el);
25
- }
26
21
  handleLogout = async () => {
27
22
  const authInstance = await Auth.getInstance();
28
23
  const result = await authInstance.logout();
@@ -34,7 +29,7 @@ const LogoutButton = class {
34
29
  }
35
30
  };
36
31
  render() {
37
- return (h("button", { key: '6b5f92f7ab2b5e9de1d58ea42cd05e3b15f1d75f', type: "button", class: this.componentClassName, onClick: this.handleLogout, "aria-live": "polite" }, this.hasSlot ? h("slot", null) : t("buttons.logout")));
32
+ return (h("button", { key: '07163c43a269a3f25dcc84451cbd6d52ecb28b0b', type: "button", class: this.componentClassName, onClick: this.handleLogout, "aria-live": "polite" }, this.hasSlot ? h("slot", null) : t("buttons.logout")));
38
33
  }
39
34
  };
40
35
 
@@ -45,10 +40,8 @@ const SignedIn = class {
45
40
  componentClassName = "";
46
41
  not = false;
47
42
  render() {
48
- if (this.not ? authStore.state.authenticated : !authStore.state.authenticated) {
49
- return null;
50
- }
51
- return (h(Host, { class: this.componentClassName }, h("slot", null)));
43
+ const shouldShow = this.not ? !authStore.state.authenticated : authStore.state.authenticated;
44
+ return (h(Host, { key: "678665a8b0b36eb84be4374c20a6036424675d0c", class: this.componentClassName, hidden: !shouldShow, style: { display: shouldShow ? undefined : "none" }, "aria-hidden": !shouldShow ? "true" : null, "aria-live": "polite" }, h("slot", { key: "cad91fa9ea14bf4f51e3635814cbca82db529620" })));
52
45
  }
53
46
  };
54
47
 
@@ -1,12 +1,11 @@
1
- import { r as registerInstance, h } from './index-FTKB5a1d.js';
2
- import { i as Auth } from './index-BVlbCQEX.js';
3
- import { s as state } from './auth-store-DBlGNGhq.js';
4
- import './unidy-store-Bg7IaIMd.js';
5
- import './index-BnAYOYR5.js';
6
- import './profile-store-CHlSKuTY.js';
7
- import './i18n-Da7S9Oqf.js';
8
- import './component-utils-BGq0leDV.js';
9
- import './flash-store-Df2YkLTB.js';
1
+ import { r as registerInstance, h } from './index-BsJDptgj.js';
2
+ import { i as Auth } from './index-kgGjfc-n.js';
3
+ import { s as state } from './auth-store-CSpEdi46.js';
4
+ import './profile-store-7wBS3gBH.js';
5
+ import './index-C8kmD3tu.js';
6
+ import './unidy-store-B5Bf4Vit.js';
7
+ import './i18n-ioyZxWsT.js';
8
+ import './flash-store-Dn1Bava8.js';
10
9
 
11
10
  const magicCodeFieldCss = "/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-ring-offset-width:0px;--tw-border-style:solid;--tw-duration:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:host,:root{--u-font-sans:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--u-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--u-color-slate-200:oklch(92.9% .013 255.508);--u-spacing:.25rem;--u-text-lg:1.125rem;--u-text-lg--line-height:1.55556;--u-radius-lg:.5rem;--u-default-transition-duration:.15s;--u-default-transition-timing-function:cubic-bezier(.4,0,.2,1);--u-default-font-family:var(--u-font-sans);--u-default-mono-font-family:var(--u-font-mono);--font-sans:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{border:0 solid;box-sizing:border-box;margin:0;padding:0}::file-selector-button{appearance:button;background-color:#0000;border:0 solid;border-radius:0;box-sizing:border-box;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;margin:0;margin-inline-end:4px;opacity:1;padding:0}:host,html{font-family:var(--u-default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:var(--u-default-font-feature-settings,normal);font-variation-settings:var(--u-default-font-variation-settings,normal);-webkit-text-size-adjust:100%;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);tab-size:4;-webkit-tap-highlight-color:transparent;line-height:1.5}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--u-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:var(--u-default-mono-font-feature-settings,normal);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-size:1em;font-variation-settings:var(--u-default-mono-font-variation-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}button,input,optgroup,select,textarea{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:currentColor;color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex;padding-block:0}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.u\\:flex{display:flex}.u\\:h-\\[50px\\]{height:50px}.u\\:w-\\[50px\\]{width:50px}.u\\:w-full{width:100%}.u\\:justify-center{justify-content:center}.u\\:gap-0\\.5{gap:calc(var(--u-spacing)*.5)}.u\\:rounded-lg{border-radius:var(--u-radius-lg)}.u\\:border-2{border-style:var(--tw-border-style);border-width:2px}.u\\:border-solid{--tw-border-style:solid;border-style:solid}.u\\:border-slate-200{border-color:var(--u-color-slate-200)}.u\\:text-center{text-align:center}.u\\:text-lg{font-size:var(--u-text-lg);line-height:var(--tw-leading,var(--u-text-lg--line-height))}.u\\:transition-colors{transition-duration:var(--tw-duration,var(--u-default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--u-default-transition-timing-function))}.u\\:duration-200{--tw-duration:.2s;transition-duration:.2s}.u\\:outline-none{--tw-outline-style:none;outline-style:none}.fixed{position:fixed}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}} /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer components;@layer utilities{}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-duration{syntax:\"*\";inherits:false}";
12
11
 
@@ -1 +1 @@
1
- {"version":3,"file":"u-magic-code-field.entry.js","sources":["src/auth/components/magic-code-field/magic-code-field.css?tag=u-magic-code-field","src/auth/components/magic-code-field/magic-code-field.tsx"],"sourcesContent":["","import { Component, h, Prop, State } from \"@stencil/core\";\nimport { Auth } from \"../../auth\";\nimport { authState } from \"../../store/auth-store\";\n\n@Component({\n tag: \"u-magic-code-field\",\n styleUrl: \"magic-code-field.css\",\n shadow: false,\n})\nexport class MagicCodeField {\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n\n @State() codeDigits: string[] = [\"\", \"\", \"\", \"\"];\n\n private inputRefs: HTMLInputElement[] = [];\n\n private handleInput = (event: Event, index: number) => {\n const target = event.target as HTMLInputElement;\n const value = target.value.replace(/[^0-9]/g, \"\");\n const sanitizedDigit = value.slice(-1);\n target.value = sanitizedDigit;\n\n const newDigits = [...this.codeDigits];\n newDigits[index] = sanitizedDigit;\n this.codeDigits = newDigits;\n\n const fullCode = newDigits.join(\"\");\n\n if (value && index < 3) {\n const nextInput = this.inputRefs[index + 1];\n if (nextInput) {\n nextInput.focus();\n }\n }\n\n if (fullCode.length === 4) {\n this.authenticateWithCode(fullCode);\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent, index: number) => {\n if (event.key === \"Backspace\" && !this.codeDigits[index] && index > 0) {\n const prevInput = this.inputRefs[index - 1];\n if (prevInput) {\n prevInput.focus();\n }\n }\n };\n\n private handlePaste = (event: ClipboardEvent) => {\n event.preventDefault();\n const pastedData = event.clipboardData?.getData(\"text\") || \"\";\n const digits = pastedData\n .replace(/[^0-9]/g, \"\")\n .slice(0, 4)\n .split(\"\");\n\n while (digits.length < 4) {\n digits.push(\"\");\n }\n\n this.codeDigits = digits;\n\n const firstEmptyIndex = digits.findIndex((digit) => !digit);\n const targetIndex = firstEmptyIndex !== -1 ? firstEmptyIndex : 3;\n if (this.inputRefs[targetIndex]) {\n this.inputRefs[targetIndex].focus();\n }\n\n const fullCode = digits.join(\"\");\n if (fullCode.length === 4) {\n this.authenticateWithCode(fullCode);\n }\n };\n\n private authenticateWithCode = async (code: string) => {\n const authInstance = await Auth.getInstance();\n\n await authInstance.helpers.authenticateWithMagicCode(code);\n };\n render() {\n if (authState.step !== \"magic-code\") {\n return null;\n }\n\n return (\n <div class={`u:flex u:gap-0.5 u:w-full u:justify-center ${this.componentClassName}`}>\n {this.codeDigits.map((digit, index) => (\n <input\n // biome-ignore lint/suspicious/noArrayIndexKey: digits are fixed position inputs\n key={index}\n ref={(el) => {\n if (el) this.inputRefs[index] = el;\n }}\n id={`digit-input-${index + 1}`}\n type=\"text\"\n inputmode=\"numeric\"\n maxlength=\"1\"\n value={digit}\n disabled={authState.loading}\n onInput={(event) => this.handleInput(event, index)}\n onKeyDown={(event) => this.handleKeyDown(event, index)}\n onPaste={index === 0 ? this.handlePaste : undefined}\n aria-label={`Digit ${index + 1} of ${this.codeDigits.length}`}\n class=\"u:w-[50px] u:h-[50px] u:text-center u:text-lg u:border-2 u:border-solid u:border-slate-200 u:rounded-lg u:outline-none u:transition-colors u:duration-200\"\n part=\"digit-input\"\n />\n ))}\n </div>\n );\n }\n}\n"],"names":["authState"],"mappings":"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"}
1
+ {"version":3,"file":"u-magic-code-field.entry.js","sources":["src/auth/components/magic-code-field/magic-code-field.css?tag=u-magic-code-field","src/auth/components/magic-code-field/magic-code-field.tsx"],"sourcesContent":["","import { Component, h, Prop, State } from \"@stencil/core\";\nimport { Auth } from \"../../auth\";\nimport { authState } from \"../../store/auth-store\";\n\n@Component({\n tag: \"u-magic-code-field\",\n styleUrl: \"magic-code-field.css\",\n shadow: false,\n})\nexport class MagicCodeField {\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n\n @State() codeDigits: string[] = [\"\", \"\", \"\", \"\"];\n\n private inputRefs: HTMLInputElement[] = [];\n\n private handleInput = (event: Event, index: number) => {\n const target = event.target as HTMLInputElement;\n const value = target.value.replace(/[^0-9]/g, \"\");\n const sanitizedDigit = value.slice(-1);\n target.value = sanitizedDigit;\n\n const newDigits = [...this.codeDigits];\n newDigits[index] = sanitizedDigit;\n this.codeDigits = newDigits;\n\n const fullCode = newDigits.join(\"\");\n\n if (value && index < 3) {\n const nextInput = this.inputRefs[index + 1];\n if (nextInput) {\n nextInput.focus();\n }\n }\n\n if (fullCode.length === 4) {\n this.authenticateWithCode(fullCode);\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent, index: number) => {\n if (event.key === \"Backspace\" && !this.codeDigits[index] && index > 0) {\n const prevInput = this.inputRefs[index - 1];\n if (prevInput) {\n prevInput.focus();\n }\n }\n };\n\n private handlePaste = (event: ClipboardEvent) => {\n event.preventDefault();\n const pastedData = event.clipboardData?.getData(\"text\") || \"\";\n const digits = pastedData\n .replace(/[^0-9]/g, \"\")\n .slice(0, 4)\n .split(\"\");\n\n while (digits.length < 4) {\n digits.push(\"\");\n }\n\n this.codeDigits = digits;\n\n const firstEmptyIndex = digits.findIndex((digit) => !digit);\n const targetIndex = firstEmptyIndex !== -1 ? firstEmptyIndex : 3;\n if (this.inputRefs[targetIndex]) {\n this.inputRefs[targetIndex].focus();\n }\n\n const fullCode = digits.join(\"\");\n if (fullCode.length === 4) {\n this.authenticateWithCode(fullCode);\n }\n };\n\n private authenticateWithCode = async (code: string) => {\n const authInstance = await Auth.getInstance();\n\n await authInstance.helpers.authenticateWithMagicCode(code);\n };\n render() {\n if (authState.step !== \"magic-code\") {\n return null;\n }\n\n return (\n <div class={`u:flex u:gap-0.5 u:w-full u:justify-center ${this.componentClassName}`}>\n {this.codeDigits.map((digit, index) => (\n <input\n // biome-ignore lint/suspicious/noArrayIndexKey: digits are fixed position inputs\n key={index}\n ref={(el) => {\n if (el) this.inputRefs[index] = el;\n }}\n id={`digit-input-${index + 1}`}\n type=\"text\"\n inputmode=\"numeric\"\n maxlength=\"1\"\n value={digit}\n disabled={authState.loading}\n onInput={(event) => this.handleInput(event, index)}\n onKeyDown={(event) => this.handleKeyDown(event, index)}\n onPaste={index === 0 ? this.handlePaste : undefined}\n aria-label={`Digit ${index + 1} of ${this.codeDigits.length}`}\n class=\"u:w-[50px] u:h-[50px] u:text-center u:text-lg u:border-2 u:border-solid u:border-slate-200 u:rounded-lg u:outline-none u:transition-colors u:duration-200\"\n part=\"digit-input\"\n />\n ))}\n </div>\n );\n }\n}\n"],"names":["authState"],"mappings":"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"}
@@ -1,18 +1,19 @@
1
- import { r as registerInstance, g as getElement, h } from './index-FTKB5a1d.js';
2
- import { s as state, m as missingFieldNames } from './auth-store-DBlGNGhq.js';
3
- import './index-BnAYOYR5.js';
4
- import './unidy-store-Bg7IaIMd.js';
1
+ import { r as registerInstance, g as getElement, h } from './index-BsJDptgj.js';
2
+ import { s as state, m as missingFieldNames } from './auth-store-CSpEdi46.js';
3
+ import './index-C8kmD3tu.js';
4
+ import './unidy-store-B5Bf4Vit.js';
5
5
 
6
6
  const MissingField = class {
7
7
  constructor(hostRef) {
8
8
  registerInstance(this, hostRef);
9
9
  }
10
10
  get el() { return getElement(this); }
11
+ componentClassName;
11
12
  render() {
12
13
  if (state.step !== "missing-fields")
13
14
  return null;
14
15
  const fieldNames = missingFieldNames();
15
- return (h("div", { class: "missing-fields" }, h("form", null, fieldNames.map((fieldName) => (h("u-field", { key: fieldName, field: fieldName, renderDefaultLabel: true }))))));
16
+ return (h("div", { class: "missing-fields" }, h("form", null, fieldNames.map((fieldName) => (h("u-field", { key: fieldName, field: fieldName, renderDefaultLabel: true, "class-name": this.componentClassName }))))));
16
17
  }
17
18
  };
18
19
 
@@ -1 +1 @@
1
- {"version":3,"file":"u-missing-field.entry.js","sources":["src/auth/components/missing-field/missing-field.tsx"],"sourcesContent":["import { Component, Element, h } from \"@stencil/core\";\nimport { authState, missingFieldNames } from \"../../store/auth-store\";\n\n@Component({\n tag: \"u-missing-field\",\n shadow: false,\n})\nexport class MissingField {\n @Element() el!: HTMLElement;\n\n render() {\n if (authState.step !== \"missing-fields\") return null;\n\n const fieldNames = missingFieldNames();\n\n return (\n <div class=\"missing-fields\">\n <form>\n {fieldNames.map((fieldName) => (\n <u-field key={fieldName} field={fieldName} renderDefaultLabel={true} />\n ))}\n </form>\n </div>\n );\n }\n}\n"],"names":["authState"],"mappings":";;;;;MAOa,YAAY,GAAA,MAAA;;;;;IAGvB,MAAM,GAAA;AACJ,QAAA,IAAIA,KAAS,CAAC,IAAI,KAAK,gBAAgB;AAAE,YAAA,OAAO,IAAI;AAEpD,QAAA,MAAM,UAAU,GAAG,iBAAiB,EAAE;QAEtC,QACE,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,gBAAgB,EAAA,EACzB,CAAA,CAAA,MAAA,EAAA,IAAA,EACG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,MACxB,CAAS,CAAA,SAAA,EAAA,EAAA,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,IAAI,EAAI,CAAA,CACxE,CAAC,CACG,CACH;;;;;;"}
1
+ {"version":3,"file":"u-missing-field.entry.js","sources":["src/auth/components/missing-field/missing-field.tsx"],"sourcesContent":["import { Component, Element, h, Prop } from \"@stencil/core\";\nimport { authState, missingFieldNames } from \"../../store/auth-store\";\n\n@Component({\n tag: \"u-missing-field\",\n shadow: false,\n})\nexport class MissingField {\n @Element() el!: HTMLElement;\n @Prop({ attribute: \"class-name\" }) componentClassName?: string;\n\n render() {\n if (authState.step !== \"missing-fields\") return null;\n\n const fieldNames = missingFieldNames();\n\n return (\n <div class=\"missing-fields\">\n <form>\n {fieldNames.map((fieldName) => (\n <u-field key={fieldName} field={fieldName} renderDefaultLabel={true} class-name={this.componentClassName} />\n ))}\n </form>\n </div>\n );\n }\n}\n"],"names":["authState"],"mappings":";;;;;MAOa,YAAY,GAAA,MAAA;;;;;AAEY,IAAA,kBAAkB;IAErD,MAAM,GAAA;AACJ,QAAA,IAAIA,KAAS,CAAC,IAAI,KAAK,gBAAgB;AAAE,YAAA,OAAO,IAAI;AAEpD,QAAA,MAAM,UAAU,GAAG,iBAAiB,EAAE;QAEtC,QACE,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,gBAAgB,EAAA,EACzB,CAAA,CAAA,MAAA,EAAA,IAAA,EACG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,MACxB,CAAA,CAAA,SAAA,EAAA,EAAS,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,IAAI,gBAAc,IAAI,CAAC,kBAAkB,EAAA,CAAI,CAC7G,CAAC,CACG,CACH;;;;;;"}
@@ -1,19 +1,21 @@
1
- import { r as registerInstance, g as getElement, h } from './index-FTKB5a1d.js';
2
- import { g as getUnidyClient } from './index-BVlbCQEX.js';
3
- import { t } from './i18n-Da7S9Oqf.js';
4
- import { v as validateRequiredFieldsUnchanged, b as buildPayload } from './profile-helpers-CXK2X6Ts.js';
5
- import { s as state } from './profile-store-CHlSKuTY.js';
6
- import { h as hasSlotContent } from './component-utils-BGq0leDV.js';
7
- import { s as state$1, a as authStore } from './auth-store-DBlGNGhq.js';
8
- import './unidy-store-Bg7IaIMd.js';
9
- import './index-BnAYOYR5.js';
10
- import './flash-store-Df2YkLTB.js';
1
+ import { r as registerInstance, h } from './index-BsJDptgj.js';
2
+ import { g as getUnidyClient } from './index-kgGjfc-n.js';
3
+ import { t } from './i18n-ioyZxWsT.js';
4
+ import { v as validateRequiredFieldsUnchanged, b as buildPayload } from './profile-helpers-BMJy0ei_.js';
5
+ import { s as state } from './profile-store-7wBS3gBH.js';
6
+ import { U as UnidyComponent } from './component-qfegGRWr.js';
7
+ import { H as HasSlotContent } from './has-slot-content-DSMkJu9G.js';
8
+ import { s as state$1, a as authStore } from './auth-store-CSpEdi46.js';
9
+ import './unidy-store-B5Bf4Vit.js';
10
+ import './index-C8kmD3tu.js';
11
+ import './flash-store-Dn1Bava8.js';
11
12
 
12
- const MissingFieldsSubmitButton = class {
13
+ const MissingFieldsSubmitButton = class extends UnidyComponent(HasSlotContent) {
13
14
  constructor(hostRef) {
15
+ super();
14
16
  registerInstance(this, hostRef);
15
17
  }
16
- get el() { return getElement(this); }
18
+ componentClassName = "";
17
19
  async onSubmit() {
18
20
  state.loading = true;
19
21
  const { configuration, ...stateWithoutConfig } = state;
@@ -35,12 +37,12 @@ const MissingFieldsSubmitButton = class {
35
37
  state.loading = false;
36
38
  authStore.setToken(jwt);
37
39
  // Emit authEvent to allow modal-based logins to close after successful submission
38
- this.el.dispatchEvent(new CustomEvent("authEvent", { detail: { jwt }, bubbles: true, composed: true }));
40
+ this.element.dispatchEvent(new CustomEvent("authEvent", { detail: { jwt }, bubbles: true, composed: true }));
39
41
  }
40
42
  render() {
41
43
  if (state$1.step !== "missing-fields")
42
44
  return null;
43
- return (h("div", null, h("button", { type: "button", onClick: () => this.onSubmit(), part: "button", disabled: (state.errors && Object.keys(state.errors).length > 0) || state.phoneValid === false, "aria-live": "polite" }, state.loading ? h("u-spinner", null) : hasSlotContent(this.el) ? h("slot", null) : t("buttons.submit"))));
45
+ return (h("div", null, h("button", { type: "button", onClick: () => this.onSubmit(), part: "button", class: this.componentClassName, disabled: (state.errors && Object.keys(state.errors).length > 0) || state.phoneValid === false, "aria-live": "polite" }, state.loading ? h("u-spinner", null) : this.hasSlot ? h("slot", null) : t("buttons.submit"))));
44
46
  }
45
47
  };
46
48
 
@@ -1 +1 @@
1
- {"version":3,"file":"u-missing-fields-submit-button.entry.js","sources":["src/auth/components/missing-fields-submit-button/missing-fields-submit-button.tsx"],"sourcesContent":["import { Component, Element, h } from \"@stencil/core\";\nimport { getUnidyClient } from \"../../../api\";\nimport { t } from \"../../../i18n\";\nimport { buildPayload, validateRequiredFieldsUnchanged } from \"../../../profile/profile-helpers\";\nimport { state as profileState } from \"../../../profile/store/profile-store\";\nimport { hasSlotContent } from \"../../../shared/component-utils\";\nimport type { TokenResponse } from \"../../api/auth\";\nimport { authState, authStore } from \"../../store/auth-store\";\n\n@Component({\n tag: \"u-missing-fields-submit-button\",\n shadow: true,\n})\nexport class MissingFieldsSubmitButton {\n @Element() el!: HTMLElement;\n\n private async onSubmit() {\n profileState.loading = true;\n\n const { configuration, ...stateWithoutConfig } = profileState;\n\n if (!validateRequiredFieldsUnchanged(stateWithoutConfig.data)) {\n profileState.loading = false;\n return;\n }\n\n const updatedProfileData = buildPayload(stateWithoutConfig.data);\n const sid = authState.sid as string;\n\n const [error, response] = await getUnidyClient().auth.updateMissingFields({\n signInId: sid,\n payload: { user: updatedProfileData },\n });\n\n if (error) {\n profileState.loading = false;\n return;\n }\n\n const { jwt } = response as TokenResponse;\n profileState.loading = false;\n authStore.setToken(jwt);\n\n // Emit authEvent to allow modal-based logins to close after successful submission\n this.el.dispatchEvent(new CustomEvent(\"authEvent\", { detail: { jwt }, bubbles: true, composed: true }));\n }\n\n render() {\n if (authState.step !== \"missing-fields\") return null;\n\n return (\n <div>\n <button\n type=\"button\"\n onClick={() => this.onSubmit()}\n part=\"button\"\n disabled={(profileState.errors && Object.keys(profileState.errors).length > 0) || profileState.phoneValid === false}\n aria-live=\"polite\"\n >\n {profileState.loading ? <u-spinner /> : hasSlotContent(this.el) ? <slot /> : t(\"buttons.submit\")}\n </button>\n </div>\n );\n }\n}\n"],"names":["profileState","authState"],"mappings":";;;;;;;;;;;MAaa,yBAAyB,GAAA,MAAA;;;;;AAG5B,IAAA,MAAM,QAAQ,GAAA;AACpB,QAAAA,KAAY,CAAC,OAAO,GAAG,IAAI;QAE3B,MAAM,EAAE,aAAa,EAAE,GAAG,kBAAkB,EAAE,GAAGA,KAAY;QAE7D,IAAI,CAAC,+BAA+B,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE;AAC7D,YAAAA,KAAY,CAAC,OAAO,GAAG,KAAK;YAC5B;;QAGF,MAAM,kBAAkB,GAAG,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC;AAChE,QAAA,MAAM,GAAG,GAAGC,OAAS,CAAC,GAAa;AAEnC,QAAA,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,MAAM,cAAc,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC;AACxE,YAAA,QAAQ,EAAE,GAAG;AACb,YAAA,OAAO,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE;AACtC,SAAA,CAAC;QAEF,IAAI,KAAK,EAAE;AACT,YAAAD,KAAY,CAAC,OAAO,GAAG,KAAK;YAC5B;;AAGF,QAAA,MAAM,EAAE,GAAG,EAAE,GAAG,QAAyB;AACzC,QAAAA,KAAY,CAAC,OAAO,GAAG,KAAK;AAC5B,QAAA,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;;QAGvB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;;IAGzG,MAAM,GAAA;AACJ,QAAA,IAAIC,OAAS,CAAC,IAAI,KAAK,gBAAgB;AAAE,YAAA,OAAO,IAAI;QAEpD,QACE,CAAA,CAAA,KAAA,EAAA,IAAA,EACE,CAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,EAC9B,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAACD,KAAY,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAACA,KAAY,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,KAAKA,KAAY,CAAC,UAAU,KAAK,KAAK,EAAA,WAAA,EACzG,QAAQ,EAEjB,EAAAA,KAAY,CAAC,OAAO,GAAG,CAAa,CAAA,WAAA,EAAA,IAAA,CAAA,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAQ,CAAA,MAAA,EAAA,IAAA,CAAA,GAAG,CAAC,CAAC,gBAAgB,CAAC,CACzF,CACL;;;;;;"}
1
+ {"version":3,"file":"u-missing-fields-submit-button.entry.js","sources":["src/auth/components/missing-fields-submit-button/missing-fields-submit-button.tsx"],"sourcesContent":["import { Component, h, Prop } from \"@stencil/core\";\nimport { getUnidyClient } from \"../../../api\";\nimport { t } from \"../../../i18n\";\nimport { buildPayload, validateRequiredFieldsUnchanged } from \"../../../profile/profile-helpers\";\nimport { state as profileState } from \"../../../profile/store/profile-store\";\nimport { UnidyComponent } from \"../../../shared/base/component\";\nimport { HasSlotContent } from \"../../../shared/base/has-slot-content\";\nimport type { TokenResponse } from \"../../api/auth\";\nimport { authState, authStore } from \"../../store/auth-store\";\n\n@Component({\n tag: \"u-missing-fields-submit-button\",\n shadow: false,\n})\nexport class MissingFieldsSubmitButton extends UnidyComponent(HasSlotContent) {\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n\n private async onSubmit() {\n profileState.loading = true;\n\n const { configuration, ...stateWithoutConfig } = profileState;\n\n if (!validateRequiredFieldsUnchanged(stateWithoutConfig.data)) {\n profileState.loading = false;\n return;\n }\n\n const updatedProfileData = buildPayload(stateWithoutConfig.data);\n const sid = authState.sid as string;\n\n const [error, response] = await getUnidyClient().auth.updateMissingFields({\n signInId: sid,\n payload: { user: updatedProfileData },\n });\n\n if (error) {\n profileState.loading = false;\n return;\n }\n\n const { jwt } = response as TokenResponse;\n profileState.loading = false;\n authStore.setToken(jwt);\n\n // Emit authEvent to allow modal-based logins to close after successful submission\n this.element.dispatchEvent(new CustomEvent(\"authEvent\", { detail: { jwt }, bubbles: true, composed: true }));\n }\n\n render() {\n if (authState.step !== \"missing-fields\") return null;\n\n return (\n <div>\n <button\n type=\"button\"\n onClick={() => this.onSubmit()}\n part=\"button\"\n class={this.componentClassName}\n disabled={(profileState.errors && Object.keys(profileState.errors).length > 0) || profileState.phoneValid === false}\n aria-live=\"polite\"\n >\n {profileState.loading ? <u-spinner /> : this.hasSlot ? <slot /> : t(\"buttons.submit\")}\n </button>\n </div>\n );\n }\n}\n"],"names":["profileState","authState"],"mappings":";;;;;;;;;;;;AAca,MAAA,yBAA0B,GAAA,cAAQ,cAAc,CAAC,cAAc,CAAC,CAAA;;;;;IACxC,kBAAkB,GAAG,EAAE;AAElD,IAAA,MAAM,QAAQ,GAAA;AACpB,QAAAA,KAAY,CAAC,OAAO,GAAG,IAAI;QAE3B,MAAM,EAAE,aAAa,EAAE,GAAG,kBAAkB,EAAE,GAAGA,KAAY;QAE7D,IAAI,CAAC,+BAA+B,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE;AAC7D,YAAAA,KAAY,CAAC,OAAO,GAAG,KAAK;YAC5B;;QAGF,MAAM,kBAAkB,GAAG,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC;AAChE,QAAA,MAAM,GAAG,GAAGC,OAAS,CAAC,GAAa;AAEnC,QAAA,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,MAAM,cAAc,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC;AACxE,YAAA,QAAQ,EAAE,GAAG;AACb,YAAA,OAAO,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE;AACtC,SAAA,CAAC;QAEF,IAAI,KAAK,EAAE;AACT,YAAAD,KAAY,CAAC,OAAO,GAAG,KAAK;YAC5B;;AAGF,QAAA,MAAM,EAAE,GAAG,EAAE,GAAG,QAAyB;AACzC,QAAAA,KAAY,CAAC,OAAO,GAAG,KAAK;AAC5B,QAAA,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;;QAGvB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;;IAG9G,MAAM,GAAA;AACJ,QAAA,IAAIC,OAAS,CAAC,IAAI,KAAK,gBAAgB;AAAE,YAAA,OAAO,IAAI;QAEpD,QACE,CAAA,CAAA,KAAA,EAAA,IAAA,EACE,CAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,EAC9B,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAC9B,QAAQ,EAAE,CAACD,KAAY,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAACA,KAAY,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,KAAKA,KAAY,CAAC,UAAU,KAAK,KAAK,EACzG,WAAA,EAAA,QAAQ,IAEjBA,KAAY,CAAC,OAAO,GAAG,CAAa,CAAA,WAAA,EAAA,IAAA,CAAA,GAAG,IAAI,CAAC,OAAO,GAAG,CAAQ,CAAA,MAAA,EAAA,IAAA,CAAA,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAC9E,CACL;;;;;;"}