@unidy.io/sdk 1.1.9 → 1.1.10

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 (518) hide show
  1. package/dist/cjs/app-globals-Pb3mNuRv.js +10 -0
  2. package/dist/cjs/app-globals-Pb3mNuRv.js.map +1 -0
  3. package/dist/cjs/{auth-B83pzi0f.js → auth-ChsE2RD7.js} +45 -13
  4. package/dist/cjs/auth-ChsE2RD7.js.map +1 -0
  5. package/dist/cjs/{auth-store-DPHWWmXf.js → auth-store-BO38Txmj.js} +8 -4
  6. package/dist/cjs/auth-store-BO38Txmj.js.map +1 -0
  7. package/dist/cjs/{component-utils-BpMyeVQo.js → component-utils-bu3SY4dE.js} +9 -2
  8. package/dist/cjs/component-utils-bu3SY4dE.js.map +1 -0
  9. package/dist/cjs/{flash-store-BuIBuQDx.js → flash-store-D5vGuIFc.js} +3 -3
  10. package/dist/cjs/{flash-store-BuIBuQDx.js.map → flash-store-D5vGuIFc.js.map} +1 -1
  11. package/dist/cjs/{i18n-BoDZ8kd2.js → i18n-B2T1e9Mf.js} +432 -596
  12. package/dist/cjs/i18n-B2T1e9Mf.js.map +1 -0
  13. package/dist/cjs/{index-B_N5xKgH.js → index-BzhKFIXk.js} +3416 -735
  14. package/dist/cjs/index-BzhKFIXk.js.map +1 -0
  15. package/dist/cjs/{index-R2MKLaem.js → index-DmDGhWTM.js} +1621 -550
  16. package/dist/cjs/index-DmDGhWTM.js.map +1 -0
  17. package/dist/cjs/{index-DLz3FT7T.js → index-DxENvy7x.js} +92 -23
  18. package/dist/cjs/index-DxENvy7x.js.map +1 -0
  19. package/dist/cjs/index.cjs.js +13 -13
  20. package/dist/cjs/loader.cjs.js +3 -3
  21. package/dist/cjs/{newsletter-helpers-D-V_8kiN.js → newsletter-helpers-B5P7q8Xk.js} +8 -8
  22. package/dist/cjs/{newsletter-helpers-D-V_8kiN.js.map → newsletter-helpers-B5P7q8Xk.js.map} +1 -1
  23. package/dist/cjs/{newsletter-store-BzytX7Qh.js → newsletter-store-f5zhJljn.js} +3 -3
  24. package/dist/cjs/{newsletter-store-BzytX7Qh.js.map → newsletter-store-f5zhJljn.js.map} +1 -1
  25. package/dist/cjs/{pagination-store-BEiW3MQd.js → pagination-store-DjGYEIqm.js} +3 -3
  26. package/dist/cjs/{pagination-store-BEiW3MQd.js.map → pagination-store-DjGYEIqm.js.map} +1 -1
  27. package/dist/cjs/{profile-helpers-B2h2III_.js → profile-helpers-BcLjojeG.js} +4 -4
  28. package/dist/cjs/{profile-helpers-B2h2III_.js.map → profile-helpers-BcLjojeG.js.map} +1 -1
  29. package/dist/cjs/{profile-store-P_BcYkef.js → profile-store-BWJ9qAcg.js} +3 -3
  30. package/dist/cjs/{profile-store-P_BcYkef.js.map → profile-store-BWJ9qAcg.js.map} +1 -1
  31. package/dist/cjs/sdk.cjs.js +31 -4
  32. package/dist/cjs/sdk.cjs.js.map +1 -1
  33. package/dist/cjs/u-conditional-render.cjs.entry.js +12 -12
  34. package/dist/cjs/u-config.cjs.entry.js +18 -14
  35. package/dist/cjs/u-config.entry.cjs.js.map +1 -1
  36. package/dist/cjs/u-email-field.cjs.entry.js +7 -7
  37. package/dist/cjs/u-error-message.cjs.entry.js +7 -7
  38. package/dist/cjs/u-error-message.entry.cjs.js.map +1 -1
  39. package/dist/cjs/u-field.u-raw-field.entry.cjs.js.map +1 -1
  40. package/dist/cjs/u-field_2.cjs.entry.js +17 -21
  41. package/dist/cjs/u-flash-message.cjs.entry.js +4 -4
  42. package/dist/cjs/u-full-profile.cjs.entry.js +6 -6
  43. package/dist/cjs/u-full-profile.entry.cjs.js.map +1 -1
  44. package/dist/cjs/u-logout-button.u-signed-in.entry.cjs.js.map +1 -1
  45. package/dist/cjs/u-logout-button_2.cjs.entry.js +16 -14
  46. package/dist/cjs/u-magic-code-field.cjs.entry.js +11 -11
  47. package/dist/cjs/u-magic-code-field.entry.cjs.js.map +1 -1
  48. package/dist/cjs/u-missing-field.cjs.entry.js +4 -4
  49. package/dist/cjs/u-missing-field.entry.cjs.js.map +1 -1
  50. package/dist/cjs/u-missing-fields-submit-button.cjs.entry.js +9 -9
  51. package/dist/cjs/u-missing-fields-submit-button.entry.cjs.js.map +1 -1
  52. package/dist/cjs/u-newsletter-checkbox.cjs.entry.js +12 -12
  53. package/dist/cjs/u-newsletter-logout-button.cjs.entry.js +19 -14
  54. package/dist/cjs/u-newsletter-logout-button.entry.cjs.js.map +1 -1
  55. package/dist/cjs/u-newsletter-preference-checkbox.cjs.entry.js +13 -13
  56. package/dist/cjs/u-newsletter-preference-checkbox.entry.cjs.js.map +1 -1
  57. package/dist/cjs/u-newsletter-resend-doi-button.cjs.entry.js +13 -13
  58. package/dist/cjs/u-newsletter-root.cjs.entry.js +12 -12
  59. package/dist/cjs/u-newsletter-toggle-subscription-button.cjs.entry.js +13 -13
  60. package/dist/cjs/u-pagination-button.cjs.entry.js +1 -1
  61. package/dist/cjs/u-pagination-button.entry.cjs.js.map +1 -1
  62. package/dist/cjs/u-pagination-page.cjs.entry.js +1 -1
  63. package/dist/cjs/u-pagination-page.entry.cjs.js.map +1 -1
  64. package/dist/cjs/u-passkey.cjs.entry.js +10 -10
  65. package/dist/cjs/u-passkey.entry.cjs.js.map +1 -1
  66. package/dist/cjs/u-password-field.cjs.entry.js +5 -5
  67. package/dist/cjs/u-profile.u-submit-button.entry.cjs.js.map +1 -1
  68. package/dist/cjs/u-profile_2.cjs.entry.js +17 -15
  69. package/dist/cjs/u-registration-button.cjs.entry.js +5 -5
  70. package/dist/cjs/u-registration-button.entry.cjs.js.map +1 -1
  71. package/dist/cjs/u-reset-password-button.cjs.entry.js +10 -10
  72. package/dist/cjs/u-send-magic-code-button.cjs.entry.js +10 -10
  73. package/dist/cjs/u-send-magic-code-button.entry.cjs.js.map +1 -1
  74. package/dist/cjs/u-signin-root.cjs.entry.js +6 -6
  75. package/dist/cjs/u-signin-step.cjs.entry.js +10 -10
  76. package/dist/cjs/u-signin-step.entry.cjs.js.map +1 -1
  77. package/dist/cjs/u-signin-strategy.cjs.entry.js +4 -4
  78. package/dist/cjs/u-social-login-button.cjs.entry.js +11 -11
  79. package/dist/cjs/u-social-login-button.entry.cjs.js.map +1 -1
  80. package/dist/cjs/u-spinner.cjs.entry.js +2 -2
  81. package/dist/cjs/u-spinner.entry.cjs.js.map +1 -1
  82. package/dist/cjs/u-ticketable-list.cjs.entry.js +13 -13
  83. package/dist/cjs/{unidy-store-7AbWnZ6g.js → unidy-store-zhdhlK0a.js} +3 -3
  84. package/dist/cjs/{unidy-store-7AbWnZ6g.js.map → unidy-store-zhdhlK0a.js.map} +1 -1
  85. package/dist/collection/api/client.js.map +1 -1
  86. package/dist/collection/api/index.js +2 -2
  87. package/dist/collection/api/index.js.map +1 -1
  88. package/dist/collection/auth/api/auth.js +12 -2
  89. package/dist/collection/auth/api/auth.js.map +1 -1
  90. package/dist/collection/auth/auth-helpers.js +18 -1
  91. package/dist/collection/auth/auth-helpers.js.map +1 -1
  92. package/dist/collection/auth/auth.js +17 -2
  93. package/dist/collection/auth/auth.js.map +1 -1
  94. package/dist/collection/auth/components/logout-button/logout-button.js +5 -3
  95. package/dist/collection/auth/components/logout-button/logout-button.js.map +1 -1
  96. package/dist/collection/auth/components/magic-code-field/magic-code-field.css +1 -1
  97. package/dist/collection/auth/components/magic-code-field/magic-code-field.js +1 -1
  98. package/dist/collection/auth/components/magic-code-field/magic-code-field.js.map +1 -1
  99. package/dist/collection/auth/components/missing-field/missing-field.js.map +1 -1
  100. package/dist/collection/auth/components/missing-fields-submit-button/missing-fields-submit-button.js +3 -3
  101. package/dist/collection/auth/components/missing-fields-submit-button/missing-fields-submit-button.js.map +1 -1
  102. package/dist/collection/auth/components/passkey/passkey.js +2 -2
  103. package/dist/collection/auth/components/passkey/passkey.js.map +1 -1
  104. package/dist/collection/auth/components/password-field/password-field.js +1 -1
  105. package/dist/collection/auth/components/registration/registration-button.js +2 -2
  106. package/dist/collection/auth/components/registration/registration-button.js.map +1 -1
  107. package/dist/collection/auth/components/send-magic-code-button/send-magic-code-button.js +1 -1
  108. package/dist/collection/auth/components/send-magic-code-button/send-magic-code-button.js.map +1 -1
  109. package/dist/collection/auth/components/signed-in/signed-in.js.map +1 -1
  110. package/dist/collection/auth/components/signin-step/signin-step.js +1 -1
  111. package/dist/collection/auth/components/signin-step/signin-step.js.map +1 -1
  112. package/dist/collection/auth/components/social-logins/social-login-button.css +1 -1
  113. package/dist/collection/auth/components/social-logins/social-login-button.js +4 -4
  114. package/dist/collection/auth/components/social-logins/social-login-button.js.map +1 -1
  115. package/dist/collection/auth/index.js +1 -2
  116. package/dist/collection/auth/index.js.map +1 -1
  117. package/dist/collection/auth/store/auth-store.js +4 -0
  118. package/dist/collection/auth/store/auth-store.js.map +1 -1
  119. package/dist/collection/globalScript.js +1 -1
  120. package/dist/collection/globalScript.js.map +1 -1
  121. package/dist/collection/i18n.js +1 -1
  122. package/dist/collection/i18n.js.map +1 -1
  123. package/dist/collection/index.js +1 -1
  124. package/dist/collection/index.js.map +1 -1
  125. package/dist/collection/logger.js.map +1 -1
  126. package/dist/collection/newsletter/api/newsletters.js +1 -1
  127. package/dist/collection/newsletter/api/newsletters.js.map +1 -1
  128. package/dist/collection/newsletter/components/logout-button/logout-button.js +10 -5
  129. package/dist/collection/newsletter/components/logout-button/logout-button.js.map +1 -1
  130. package/dist/collection/newsletter/components/preference-checkbox/preference-checkbox.js +2 -3
  131. package/dist/collection/newsletter/components/preference-checkbox/preference-checkbox.js.map +1 -1
  132. package/dist/collection/newsletter/components/resend-doi-button/resend-doi-button.css +1 -1
  133. package/dist/collection/newsletter/components/toggle-subscription-button/toggle-subscription-button.css +1 -1
  134. package/dist/collection/profile/components/field/field.css +1 -1
  135. package/dist/collection/profile/components/field/field.js +1 -5
  136. package/dist/collection/profile/components/field/field.js.map +1 -1
  137. package/dist/collection/profile/components/full-profile/full-profile.css +1 -1
  138. package/dist/collection/profile/components/raw-field/raw-field.js +5 -5
  139. package/dist/collection/profile/components/raw-field/raw-field.js.map +1 -1
  140. package/dist/collection/profile/index.js +1 -2
  141. package/dist/collection/profile/index.js.map +1 -1
  142. package/dist/collection/profile/profile-helpers.js +1 -1
  143. package/dist/collection/profile/profile-helpers.js.map +1 -1
  144. package/dist/collection/shared/component-utils.js +7 -0
  145. package/dist/collection/shared/component-utils.js.map +1 -1
  146. package/dist/collection/shared/components/config/config.js +28 -4
  147. package/dist/collection/shared/components/config/config.js.map +1 -1
  148. package/dist/collection/shared/components/email-field/email-field.css +1 -1
  149. package/dist/collection/shared/components/error-message/error-message.js.map +1 -1
  150. package/dist/collection/shared/components/flash-message/flash-message.css +1 -1
  151. package/dist/collection/shared/components/spinner/spinner.css +1 -1
  152. package/dist/collection/shared/components/spinner/spinner.js +1 -1
  153. package/dist/collection/shared/components/spinner/spinner.js.map +1 -1
  154. package/dist/collection/shared/components/submit-button/submit-button.css +1 -1
  155. package/dist/collection/shared/components/submit-button/submit-button.js +2 -0
  156. package/dist/collection/shared/components/submit-button/submit-button.js.map +1 -1
  157. package/dist/collection/ticketable/api/get-with-schema.js.map +1 -1
  158. package/dist/collection/ticketable/api/schemas.js +1 -1
  159. package/dist/collection/ticketable/api/schemas.js.map +1 -1
  160. package/dist/collection/ticketable/api/subscriptions.js +2 -2
  161. package/dist/collection/ticketable/api/subscriptions.js.map +1 -1
  162. package/dist/collection/ticketable/api/tickets.js +2 -2
  163. package/dist/collection/ticketable/api/tickets.js.map +1 -1
  164. package/dist/collection/ticketable/components/pagination/pagination-button.js +1 -1
  165. package/dist/collection/ticketable/components/pagination/pagination-button.js.map +1 -1
  166. package/dist/collection/ticketable/components/pagination/pagination-page.js +1 -1
  167. package/dist/collection/ticketable/components/pagination/pagination-page.js.map +1 -1
  168. package/dist/collection/ticketable/index.js +1 -1
  169. package/dist/collection/ticketable/index.js.map +1 -1
  170. package/dist/components/auth-store.js +4 -0
  171. package/dist/components/auth-store.js.map +1 -1
  172. package/dist/components/auth.js +36 -4
  173. package/dist/components/auth.js.map +1 -1
  174. package/dist/components/component-utils.js +7 -0
  175. package/dist/components/component-utils.js.map +1 -1
  176. package/dist/components/exports.js +260 -104
  177. package/dist/components/exports.js.map +1 -1
  178. package/dist/components/field.js +4 -14
  179. package/dist/components/field.js.map +1 -1
  180. package/dist/components/i18n.js +429 -593
  181. package/dist/components/i18n.js.map +1 -1
  182. package/dist/components/index.js +424 -397
  183. package/dist/components/index.js.map +1 -1
  184. package/dist/components/index2.js +1562 -491
  185. package/dist/components/index2.js.map +1 -1
  186. package/dist/components/index3.js +90 -21
  187. package/dist/components/index3.js.map +1 -1
  188. package/dist/components/logger.js.map +1 -1
  189. package/dist/components/profile-helpers.js +1 -1
  190. package/dist/components/profile-helpers.js.map +1 -1
  191. package/dist/components/profile-store.js +1 -1
  192. package/dist/components/profile.js +3 -3
  193. package/dist/components/raw-field.js +11 -11
  194. package/dist/components/raw-field.js.map +1 -1
  195. package/dist/components/spinner.js +1 -1
  196. package/dist/components/spinner.js.map +1 -1
  197. package/dist/components/submit-button.js +3 -1
  198. package/dist/components/submit-button.js.map +1 -1
  199. package/dist/components/u-conditional-render.js +1 -1
  200. package/dist/components/u-config.js +10 -5
  201. package/dist/components/u-config.js.map +1 -1
  202. package/dist/components/u-email-field.js +1 -1
  203. package/dist/components/u-error-message.js.map +1 -1
  204. package/dist/components/u-flash-message.js +1 -1
  205. package/dist/components/u-full-profile.js +1 -1
  206. package/dist/components/u-full-profile.js.map +1 -1
  207. package/dist/components/u-logout-button.js +5 -3
  208. package/dist/components/u-logout-button.js.map +1 -1
  209. package/dist/components/u-magic-code-field.js +2 -2
  210. package/dist/components/u-magic-code-field.js.map +1 -1
  211. package/dist/components/u-missing-field.js +4 -10
  212. package/dist/components/u-missing-field.js.map +1 -1
  213. package/dist/components/u-missing-fields-submit-button.js +3 -3
  214. package/dist/components/u-missing-fields-submit-button.js.map +1 -1
  215. package/dist/components/u-newsletter-logout-button.js +9 -4
  216. package/dist/components/u-newsletter-logout-button.js.map +1 -1
  217. package/dist/components/u-newsletter-preference-checkbox.js +1 -1
  218. package/dist/components/u-newsletter-preference-checkbox.js.map +1 -1
  219. package/dist/components/u-newsletter-resend-doi-button.js +1 -1
  220. package/dist/components/u-newsletter-toggle-subscription-button.js +1 -1
  221. package/dist/components/u-pagination-button.js.map +1 -1
  222. package/dist/components/u-pagination-page.js.map +1 -1
  223. package/dist/components/u-passkey.js +1 -1
  224. package/dist/components/u-passkey.js.map +1 -1
  225. package/dist/components/u-registration-button.js +2 -2
  226. package/dist/components/u-registration-button.js.map +1 -1
  227. package/dist/components/u-send-magic-code-button.js +1 -1
  228. package/dist/components/u-send-magic-code-button.js.map +1 -1
  229. package/dist/components/u-signed-in.js.map +1 -1
  230. package/dist/components/u-signin-step.js +1 -1
  231. package/dist/components/u-signin-step.js.map +1 -1
  232. package/dist/components/u-social-login-button.js +8 -8
  233. package/dist/components/u-social-login-button.js.map +1 -1
  234. package/dist/components/u-ticketable-list.js +1 -1
  235. package/dist/esm/app-globals-BHWOrMsm.js +8 -0
  236. package/dist/esm/app-globals-BHWOrMsm.js.map +1 -0
  237. package/dist/esm/{auth-B0RIcDM-.js → auth-CAHM6e4m.js} +45 -13
  238. package/dist/esm/auth-CAHM6e4m.js.map +1 -0
  239. package/dist/esm/{auth-store-BGMYm_jK.js → auth-store-ItTnEMlF.js} +8 -4
  240. package/dist/esm/auth-store-ItTnEMlF.js.map +1 -0
  241. package/dist/esm/{component-utils-D1lzXl_Z.js → component-utils-BGq0leDV.js} +9 -2
  242. package/dist/esm/component-utils-BGq0leDV.js.map +1 -0
  243. package/dist/esm/{flash-store-CEvWSG0c.js → flash-store-CMXH65i_.js} +3 -3
  244. package/dist/esm/{flash-store-CEvWSG0c.js.map → flash-store-CMXH65i_.js.map} +1 -1
  245. package/dist/esm/{i18n-CLdWzy5J.js → i18n-OKf8uE5j.js} +432 -596
  246. package/dist/esm/i18n-OKf8uE5j.js.map +1 -0
  247. package/dist/esm/{index-Ci3aTmzp.js → index-COQ27Nb6.js} +3411 -734
  248. package/dist/esm/index-COQ27Nb6.js.map +1 -0
  249. package/dist/esm/{index-Bjp1XO-f.js → index-DVkRTYPC.js} +92 -23
  250. package/dist/esm/index-DVkRTYPC.js.map +1 -0
  251. package/dist/esm/{index-DSDkaHWI.js → index-Du3hUdhU.js} +1622 -551
  252. package/dist/esm/index-Du3hUdhU.js.map +1 -0
  253. package/dist/esm/index.js +11 -11
  254. package/dist/esm/loader.js +4 -4
  255. package/dist/esm/{newsletter-helpers-CONtbKYi.js → newsletter-helpers-ChXON0f4.js} +8 -8
  256. package/dist/esm/{newsletter-helpers-CONtbKYi.js.map → newsletter-helpers-ChXON0f4.js.map} +1 -1
  257. package/dist/esm/{newsletter-store-DBL1A203.js → newsletter-store-CIsyE51r.js} +3 -3
  258. package/dist/esm/{newsletter-store-DBL1A203.js.map → newsletter-store-CIsyE51r.js.map} +1 -1
  259. package/dist/esm/{pagination-store-DzdJOp-n.js → pagination-store-B9lk_lqK.js} +3 -3
  260. package/dist/esm/{pagination-store-DzdJOp-n.js.map → pagination-store-B9lk_lqK.js.map} +1 -1
  261. package/dist/esm/{profile-helpers-CglNd6Nw.js → profile-helpers-Beduxnin.js} +4 -4
  262. package/dist/esm/{profile-helpers-CglNd6Nw.js.map → profile-helpers-Beduxnin.js.map} +1 -1
  263. package/dist/esm/{profile-store-RmZB2PTc.js → profile-store-CsSDT9Tb.js} +4 -4
  264. package/dist/esm/{profile-store-RmZB2PTc.js.map → profile-store-CsSDT9Tb.js.map} +1 -1
  265. package/dist/esm/sdk.js +32 -5
  266. package/dist/esm/sdk.js.map +1 -1
  267. package/dist/esm/u-conditional-render.entry.js +12 -12
  268. package/dist/esm/u-config.entry.js +18 -14
  269. package/dist/esm/u-config.entry.js.map +1 -1
  270. package/dist/esm/u-email-field.entry.js +7 -7
  271. package/dist/esm/u-error-message.entry.js +7 -7
  272. package/dist/esm/u-error-message.entry.js.map +1 -1
  273. package/dist/esm/u-field.u-raw-field.entry.js.map +1 -1
  274. package/dist/esm/u-field_2.entry.js +17 -21
  275. package/dist/esm/u-flash-message.entry.js +4 -4
  276. package/dist/esm/u-full-profile.entry.js +6 -6
  277. package/dist/esm/u-full-profile.entry.js.map +1 -1
  278. package/dist/esm/u-logout-button.u-signed-in.entry.js.map +1 -1
  279. package/dist/esm/u-logout-button_2.entry.js +16 -14
  280. package/dist/esm/u-magic-code-field.entry.js +11 -11
  281. package/dist/esm/u-magic-code-field.entry.js.map +1 -1
  282. package/dist/esm/u-missing-field.entry.js +4 -4
  283. package/dist/esm/u-missing-field.entry.js.map +1 -1
  284. package/dist/esm/u-missing-fields-submit-button.entry.js +9 -9
  285. package/dist/esm/u-missing-fields-submit-button.entry.js.map +1 -1
  286. package/dist/esm/u-newsletter-checkbox.entry.js +12 -12
  287. package/dist/esm/u-newsletter-logout-button.entry.js +19 -14
  288. package/dist/esm/u-newsletter-logout-button.entry.js.map +1 -1
  289. package/dist/esm/u-newsletter-preference-checkbox.entry.js +13 -13
  290. package/dist/esm/u-newsletter-preference-checkbox.entry.js.map +1 -1
  291. package/dist/esm/u-newsletter-resend-doi-button.entry.js +13 -13
  292. package/dist/esm/u-newsletter-root.entry.js +12 -12
  293. package/dist/esm/u-newsletter-toggle-subscription-button.entry.js +13 -13
  294. package/dist/esm/u-pagination-button.entry.js +1 -1
  295. package/dist/esm/u-pagination-button.entry.js.map +1 -1
  296. package/dist/esm/u-pagination-page.entry.js +1 -1
  297. package/dist/esm/u-pagination-page.entry.js.map +1 -1
  298. package/dist/esm/u-passkey.entry.js +10 -10
  299. package/dist/esm/u-passkey.entry.js.map +1 -1
  300. package/dist/esm/u-password-field.entry.js +5 -5
  301. package/dist/esm/u-profile.u-submit-button.entry.js.map +1 -1
  302. package/dist/esm/u-profile_2.entry.js +17 -15
  303. package/dist/esm/u-registration-button.entry.js +5 -5
  304. package/dist/esm/u-registration-button.entry.js.map +1 -1
  305. package/dist/esm/u-reset-password-button.entry.js +10 -10
  306. package/dist/esm/u-send-magic-code-button.entry.js +10 -10
  307. package/dist/esm/u-send-magic-code-button.entry.js.map +1 -1
  308. package/dist/esm/u-signin-root.entry.js +6 -6
  309. package/dist/esm/u-signin-step.entry.js +10 -10
  310. package/dist/esm/u-signin-step.entry.js.map +1 -1
  311. package/dist/esm/u-signin-strategy.entry.js +4 -4
  312. package/dist/esm/u-social-login-button.entry.js +11 -11
  313. package/dist/esm/u-social-login-button.entry.js.map +1 -1
  314. package/dist/esm/u-spinner.entry.js +2 -2
  315. package/dist/esm/u-spinner.entry.js.map +1 -1
  316. package/dist/esm/u-ticketable-list.entry.js +13 -13
  317. package/dist/esm/{unidy-store-BldTAtO0.js → unidy-store-CAcMVdD8.js} +3 -3
  318. package/dist/esm/{unidy-store-BldTAtO0.js.map → unidy-store-CAcMVdD8.js.map} +1 -1
  319. package/dist/sdk/index.esm.js +1 -1
  320. package/dist/sdk/{p-93200fb4.entry.js → p-1bad3fd0.entry.js} +2 -2
  321. package/dist/sdk/{p-22e4d08b.entry.js → p-1d6982cd.entry.js} +2 -2
  322. package/dist/sdk/p-23d8e922.entry.js +2 -0
  323. package/dist/sdk/p-2855d3bb.entry.js +2 -0
  324. package/dist/sdk/p-2855d3bb.entry.js.map +1 -0
  325. package/dist/sdk/{p-339f32c1.entry.js → p-288f37c3.entry.js} +2 -2
  326. package/dist/sdk/{p-339f32c1.entry.js.map → p-288f37c3.entry.js.map} +1 -1
  327. package/dist/sdk/p-32842e98.entry.js +2 -0
  328. package/dist/sdk/p-32842e98.entry.js.map +1 -0
  329. package/dist/sdk/p-34af7470.entry.js +2 -0
  330. package/dist/sdk/p-39126514.entry.js +2 -0
  331. package/dist/sdk/{p-2af8b45f.entry.js.map → p-39126514.entry.js.map} +1 -1
  332. package/dist/sdk/{p-ad796888.entry.js → p-438f62e5.entry.js} +2 -2
  333. package/dist/sdk/{p-ad796888.entry.js.map → p-438f62e5.entry.js.map} +1 -1
  334. package/dist/sdk/{p-bb603b00.entry.js → p-46013b2f.entry.js} +2 -2
  335. package/dist/sdk/{p-08ff2de2.entry.js → p-46cdb255.entry.js} +2 -2
  336. package/dist/sdk/{p-a5db968f.entry.js → p-4d9bde6e.entry.js} +2 -2
  337. package/dist/sdk/{p-b0917777.entry.js → p-5c40c6ea.entry.js} +2 -2
  338. package/dist/sdk/p-5c8b31bd.entry.js +2 -0
  339. package/dist/sdk/p-5c8b31bd.entry.js.map +1 -0
  340. package/dist/sdk/{p-c31dbbb4.entry.js → p-69172b22.entry.js} +2 -2
  341. package/dist/sdk/p-69172b22.entry.js.map +1 -0
  342. package/dist/sdk/p-7381aca7.entry.js +2 -0
  343. package/dist/sdk/{p-6893d167.entry.js.map → p-7381aca7.entry.js.map} +1 -1
  344. package/dist/sdk/{p-D1lzXl_Z.js → p-BGq0leDV.js} +1 -1
  345. package/dist/sdk/p-BGq0leDV.js.map +1 -0
  346. package/dist/sdk/p-BR6L248H.js +2 -0
  347. package/dist/sdk/p-BR6L248H.js.map +1 -0
  348. package/dist/sdk/p-BhrvnKAS.js +2 -0
  349. package/dist/sdk/{p-Ce8zGAi1.js.map → p-BhrvnKAS.js.map} +1 -1
  350. package/dist/sdk/p-CMw6v6sC.js +2 -0
  351. package/dist/sdk/p-CMw6v6sC.js.map +1 -0
  352. package/dist/sdk/p-COQ27Nb6.js +14 -0
  353. package/dist/sdk/p-COQ27Nb6.js.map +1 -0
  354. package/dist/sdk/p-CSLU6kes.js +2 -0
  355. package/dist/sdk/{p-CPPYdoIv.js.map → p-CSLU6kes.js.map} +1 -1
  356. package/dist/sdk/p-Cai8JwlG.js +2 -0
  357. package/dist/sdk/p-Cai8JwlG.js.map +1 -0
  358. package/dist/sdk/{p-DYtgart8.js → p-CpJghKnM.js} +2 -2
  359. package/dist/sdk/{p-DYtgart8.js.map → p-CpJghKnM.js.map} +1 -1
  360. package/dist/sdk/p-DAn4FkxC.js +2 -0
  361. package/dist/sdk/{p-C0feI0p8.js.map → p-DAn4FkxC.js.map} +1 -1
  362. package/dist/sdk/p-FFRhPCmc.js +2 -0
  363. package/dist/sdk/{p-DA84OuuU.js.map → p-FFRhPCmc.js.map} +1 -1
  364. package/dist/sdk/p-Jrp0G45B.js +2 -0
  365. package/dist/sdk/{p-BlOjABPD.js.map → p-Jrp0G45B.js.map} +1 -1
  366. package/dist/sdk/p-MA26cw6g.js +2 -0
  367. package/dist/sdk/p-MA26cw6g.js.map +1 -0
  368. package/dist/sdk/p-P0eZf5rH.js +2 -0
  369. package/dist/sdk/p-P0eZf5rH.js.map +1 -0
  370. package/dist/sdk/{p-S3-2d2Qd.js → p-PSIHL0wP.js} +2 -2
  371. package/dist/sdk/{p-S3-2d2Qd.js.map → p-PSIHL0wP.js.map} +1 -1
  372. package/dist/sdk/p-a341c7f6.entry.js +2 -0
  373. package/dist/sdk/p-a341c7f6.entry.js.map +1 -0
  374. package/dist/sdk/p-a38cd448.entry.js +2 -0
  375. package/dist/sdk/{p-593c6dde.entry.js.map → p-a38cd448.entry.js.map} +1 -1
  376. package/dist/sdk/{p-87d10077.entry.js → p-a45ef398.entry.js} +2 -2
  377. package/dist/sdk/{p-87d10077.entry.js.map → p-a45ef398.entry.js.map} +1 -1
  378. package/dist/sdk/p-b5a6ad01.entry.js +2 -0
  379. package/dist/sdk/p-b5a6ad01.entry.js.map +1 -0
  380. package/dist/sdk/{p-9f59909b.entry.js → p-b93bf91d.entry.js} +2 -2
  381. package/dist/sdk/{p-9f59909b.entry.js.map → p-b93bf91d.entry.js.map} +1 -1
  382. package/dist/sdk/{p-09cd77e6.entry.js → p-baf5dcb7.entry.js} +2 -2
  383. package/dist/sdk/p-c07a43e2.entry.js +2 -0
  384. package/dist/sdk/p-c07a43e2.entry.js.map +1 -0
  385. package/dist/sdk/p-c98ad60d.entry.js +2 -0
  386. package/dist/sdk/p-c98ad60d.entry.js.map +1 -0
  387. package/dist/sdk/{p-f5615938.entry.js → p-d0c0fb6b.entry.js} +2 -2
  388. package/dist/sdk/p-d47aaf26.entry.js +2 -0
  389. package/dist/sdk/p-d47aaf26.entry.js.map +1 -0
  390. package/dist/sdk/p-e5ef30ef.entry.js +2 -0
  391. package/dist/sdk/p-eb348798.entry.js +2 -0
  392. package/dist/sdk/{p-73c2ec89.entry.js.map → p-eb348798.entry.js.map} +1 -1
  393. package/dist/sdk/p-f82f500d.entry.js +2 -0
  394. package/dist/sdk/p-f82f500d.entry.js.map +1 -0
  395. package/dist/sdk/p-f88ed6e8.entry.js +2 -0
  396. package/dist/sdk/p-f88ed6e8.entry.js.map +1 -0
  397. package/dist/sdk/{p-afc65acd.entry.js → p-f9affafe.entry.js} +2 -2
  398. package/dist/sdk/p-jyF1XwDG.js +2 -0
  399. package/dist/sdk/p-jyF1XwDG.js.map +1 -0
  400. package/dist/sdk/sdk.esm.js +1 -1
  401. package/dist/sdk/sdk.esm.js.map +1 -1
  402. package/dist/sdk/u-config.entry.esm.js.map +1 -1
  403. package/dist/sdk/u-error-message.entry.esm.js.map +1 -1
  404. package/dist/sdk/u-field.u-raw-field.entry.esm.js.map +1 -1
  405. package/dist/sdk/u-full-profile.entry.esm.js.map +1 -1
  406. package/dist/sdk/u-logout-button.u-signed-in.entry.esm.js.map +1 -1
  407. package/dist/sdk/u-magic-code-field.entry.esm.js.map +1 -1
  408. package/dist/sdk/u-missing-field.entry.esm.js.map +1 -1
  409. package/dist/sdk/u-missing-fields-submit-button.entry.esm.js.map +1 -1
  410. package/dist/sdk/u-newsletter-logout-button.entry.esm.js.map +1 -1
  411. package/dist/sdk/u-newsletter-preference-checkbox.entry.esm.js.map +1 -1
  412. package/dist/sdk/u-pagination-button.entry.esm.js.map +1 -1
  413. package/dist/sdk/u-pagination-page.entry.esm.js.map +1 -1
  414. package/dist/sdk/u-passkey.entry.esm.js.map +1 -1
  415. package/dist/sdk/u-profile.u-submit-button.entry.esm.js.map +1 -1
  416. package/dist/sdk/u-registration-button.entry.esm.js.map +1 -1
  417. package/dist/sdk/u-send-magic-code-button.entry.esm.js.map +1 -1
  418. package/dist/sdk/u-signin-step.entry.esm.js.map +1 -1
  419. package/dist/sdk/u-social-login-button.entry.esm.js.map +1 -1
  420. package/dist/sdk/u-spinner.entry.esm.js.map +1 -1
  421. package/dist/types/api/index.d.ts +2 -2
  422. package/dist/types/auth/api/auth.d.ts +3 -1
  423. package/dist/types/auth/auth-helpers.d.ts +1 -0
  424. package/dist/types/auth/auth.d.ts +9 -1
  425. package/dist/types/auth/components/logout-button/logout-button.d.ts +1 -1
  426. package/dist/types/auth/index.d.ts +3 -4
  427. package/dist/types/auth/store/auth-store.d.ts +2 -0
  428. package/dist/types/components.d.ts +8 -0
  429. package/dist/types/index.d.ts +2 -2
  430. package/dist/types/logger.d.ts +1 -1
  431. package/dist/types/newsletter/api/newsletters.d.ts +1 -1
  432. package/dist/types/newsletter/components/logout-button/logout-button.d.ts +2 -0
  433. package/dist/types/profile/components/field/field.d.ts +0 -1
  434. package/dist/types/profile/components/raw-field/raw-field.d.ts +2 -2
  435. package/dist/types/profile/index.d.ts +2 -3
  436. package/dist/types/shared/component-utils.d.ts +7 -0
  437. package/dist/types/shared/components/config/config.d.ts +1 -0
  438. package/dist/types/ticketable/api/get-with-schema.d.ts +1 -1
  439. package/dist/types/ticketable/index.d.ts +1 -1
  440. package/package.json +23 -18
  441. package/dist/cjs/app-globals-DSKjcXX_.js +0 -10
  442. package/dist/cjs/app-globals-DSKjcXX_.js.map +0 -1
  443. package/dist/cjs/auth-B83pzi0f.js.map +0 -1
  444. package/dist/cjs/auth-store-DPHWWmXf.js.map +0 -1
  445. package/dist/cjs/component-utils-BpMyeVQo.js.map +0 -1
  446. package/dist/cjs/i18n-BoDZ8kd2.js.map +0 -1
  447. package/dist/cjs/index-B_N5xKgH.js.map +0 -1
  448. package/dist/cjs/index-DLz3FT7T.js.map +0 -1
  449. package/dist/cjs/index-R2MKLaem.js.map +0 -1
  450. package/dist/esm/app-globals-CPU9ZcqZ.js +0 -8
  451. package/dist/esm/app-globals-CPU9ZcqZ.js.map +0 -1
  452. package/dist/esm/auth-B0RIcDM-.js.map +0 -1
  453. package/dist/esm/auth-store-BGMYm_jK.js.map +0 -1
  454. package/dist/esm/component-utils-D1lzXl_Z.js.map +0 -1
  455. package/dist/esm/i18n-CLdWzy5J.js.map +0 -1
  456. package/dist/esm/index-Bjp1XO-f.js.map +0 -1
  457. package/dist/esm/index-Ci3aTmzp.js.map +0 -1
  458. package/dist/esm/index-DSDkaHWI.js.map +0 -1
  459. package/dist/sdk/p-1176c407.entry.js +0 -2
  460. package/dist/sdk/p-1176c407.entry.js.map +0 -1
  461. package/dist/sdk/p-2a65bcbb.entry.js +0 -2
  462. package/dist/sdk/p-2a65bcbb.entry.js.map +0 -1
  463. package/dist/sdk/p-2af8b45f.entry.js +0 -2
  464. package/dist/sdk/p-56abb377.entry.js +0 -2
  465. package/dist/sdk/p-56abb377.entry.js.map +0 -1
  466. package/dist/sdk/p-593c6dde.entry.js +0 -2
  467. package/dist/sdk/p-5b627aea.entry.js +0 -2
  468. package/dist/sdk/p-5b627aea.entry.js.map +0 -1
  469. package/dist/sdk/p-628ccd68.entry.js +0 -2
  470. package/dist/sdk/p-675eb13d.entry.js +0 -2
  471. package/dist/sdk/p-675eb13d.entry.js.map +0 -1
  472. package/dist/sdk/p-6893d167.entry.js +0 -2
  473. package/dist/sdk/p-6a642433.entry.js +0 -2
  474. package/dist/sdk/p-73c2ec89.entry.js +0 -2
  475. package/dist/sdk/p-91bb8b59.entry.js +0 -2
  476. package/dist/sdk/p-91bb8b59.entry.js.map +0 -1
  477. package/dist/sdk/p-BZ1kW_eK.js +0 -2
  478. package/dist/sdk/p-BZ1kW_eK.js.map +0 -1
  479. package/dist/sdk/p-BlAULXyw.js +0 -2
  480. package/dist/sdk/p-BlAULXyw.js.map +0 -1
  481. package/dist/sdk/p-BlOjABPD.js +0 -2
  482. package/dist/sdk/p-C0feI0p8.js +0 -2
  483. package/dist/sdk/p-C3fhudPT.js +0 -2
  484. package/dist/sdk/p-C3fhudPT.js.map +0 -1
  485. package/dist/sdk/p-CFiZLMAA.js +0 -2
  486. package/dist/sdk/p-CFiZLMAA.js.map +0 -1
  487. package/dist/sdk/p-CPPYdoIv.js +0 -2
  488. package/dist/sdk/p-CbRhHGU5.js +0 -2
  489. package/dist/sdk/p-CbRhHGU5.js.map +0 -1
  490. package/dist/sdk/p-Ce8zGAi1.js +0 -2
  491. package/dist/sdk/p-Ci3aTmzp.js +0 -3
  492. package/dist/sdk/p-Ci3aTmzp.js.map +0 -1
  493. package/dist/sdk/p-D1lzXl_Z.js.map +0 -1
  494. package/dist/sdk/p-DA84OuuU.js +0 -2
  495. package/dist/sdk/p-DdUvQelg.js +0 -2
  496. package/dist/sdk/p-DdUvQelg.js.map +0 -1
  497. package/dist/sdk/p-b0728464.entry.js +0 -2
  498. package/dist/sdk/p-b0728464.entry.js.map +0 -1
  499. package/dist/sdk/p-c197fdb3.entry.js +0 -2
  500. package/dist/sdk/p-c197fdb3.entry.js.map +0 -1
  501. package/dist/sdk/p-c31dbbb4.entry.js.map +0 -1
  502. package/dist/sdk/p-c5bffd90.entry.js +0 -2
  503. package/dist/sdk/p-f0598e42.entry.js +0 -2
  504. package/dist/sdk/p-f0598e42.entry.js.map +0 -1
  505. package/dist/sdk/p-ffac964c.entry.js +0 -2
  506. package/dist/sdk/p-ffac964c.entry.js.map +0 -1
  507. /package/dist/sdk/{p-93200fb4.entry.js.map → p-1bad3fd0.entry.js.map} +0 -0
  508. /package/dist/sdk/{p-22e4d08b.entry.js.map → p-1d6982cd.entry.js.map} +0 -0
  509. /package/dist/sdk/{p-6a642433.entry.js.map → p-23d8e922.entry.js.map} +0 -0
  510. /package/dist/sdk/{p-c5bffd90.entry.js.map → p-34af7470.entry.js.map} +0 -0
  511. /package/dist/sdk/{p-bb603b00.entry.js.map → p-46013b2f.entry.js.map} +0 -0
  512. /package/dist/sdk/{p-08ff2de2.entry.js.map → p-46cdb255.entry.js.map} +0 -0
  513. /package/dist/sdk/{p-a5db968f.entry.js.map → p-4d9bde6e.entry.js.map} +0 -0
  514. /package/dist/sdk/{p-b0917777.entry.js.map → p-5c40c6ea.entry.js.map} +0 -0
  515. /package/dist/sdk/{p-09cd77e6.entry.js.map → p-baf5dcb7.entry.js.map} +0 -0
  516. /package/dist/sdk/{p-f5615938.entry.js.map → p-d0c0fb6b.entry.js.map} +0 -0
  517. /package/dist/sdk/{p-628ccd68.entry.js.map → p-e5ef30ef.entry.js.map} +0 -0
  518. /package/dist/sdk/{p-afc65acd.entry.js.map → p-f9affafe.entry.js.map} +0 -0
@@ -1,21 +1,21 @@
1
1
  import { h, proxyCustomElement } from '@stencil/core/internal/client';
2
2
  import { t } from './i18n.js';
3
+ import { U as UnidyComponent } from './logger.js';
3
4
  import { u as unidyState } from './unidy-store.js';
4
5
  import { s as state } from './auth-store.js';
5
- import { U as UnidyComponent } from './logger.js';
6
- import { Y as captureException } from './exports.js';
7
-
8
- const GoogleLogo = ({ className }) => (h("svg", { version: "1.1", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 48 48", style: { display: "block" }, class: className }, h("title", null, "Google Logo"), h("path", { fill: "#EA4335", d: "M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z" }), h("path", { fill: "#4285F4", d: "M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z" }), h("path", { fill: "#FBBC05", d: "M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z" }), h("path", { fill: "#34A853", d: "M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z" }), h("path", { fill: "none", d: "M0 0h48v48H0z" })));
9
-
10
- const LinkedInLogo = ({ className }) => (h("svg", { version: "1.1", id: "Layer_1", xmlns: "http://www.w3.org/2000/svg", x: "0px", y: "0px", viewBox: "0 0 382 382", style: { enableBackground: "new 0 0 382 382" }, class: className }, h("title", null, "LinkedIn Logo"), h("path", { style: { fill: "#0077B7" }, d: "M347.445,0H34.555C15.471,0,0,15.471,0,34.555v312.889C0,366.529,15.471,382,34.555,382h312.889\n \tC366.529,382,382,366.529,382,347.444V34.555C382,15.471,366.529,0,347.445,0z M118.207,329.844c0,5.554-4.502,10.056-10.056,10.056\n \tH65.345c-5.554,0-10.056-4.502-10.056-10.056V150.403c0-5.554,4.502-10.056,10.056-10.056h42.806\n \tc5.554,0,10.056,4.502,10.056,10.056V329.844z M86.748,123.432c-22.459,0-40.666-18.207-40.666-40.666S64.289,42.1,86.748,42.1\n \ts40.666,18.207,40.666,40.666S109.208,123.432,86.748,123.432z M341.91,330.654c0,5.106-4.14,9.246-9.246,9.246H286.73\n \tc-5.106,0-9.246-4.14-9.246-9.246v-84.168c0-12.556,3.683-55.021-32.813-55.021c-28.309,0-34.051,29.066-35.204,42.11v97.079\n \tc0,5.106-4.139,9.246-9.246,9.246h-44.426c-5.106,0-9.246-4.14-9.246-9.246V149.593c0-5.106,4.14-9.246,9.246-9.246h44.426\n \tc5.106,0,9.246,4.14,9.246,9.246v15.655c10.497-15.753,26.097-27.912,59.312-27.912c73.552,0,73.131,68.716,73.131,106.472\n \tL341.91,330.654L341.91,330.654z" })));
6
+ import { _ as captureException } from './exports.js';
11
7
 
12
8
  const AppleLogo = ({ className }) => (h("svg", { xmlns: "http://www.w3.org/2000/svg", x: "0px", y: "0px", viewBox: "0 0 48 48", class: className }, h("title", null, "Apple Logo"), h("path", { d: "M 44.527344 34.75 C 43.449219 37.144531 42.929688 38.214844 41.542969 40.328125 C 39.601563 43.28125 36.863281 46.96875 33.480469 46.992188 C 30.46875 47.019531 29.691406 45.027344 25.601563 45.0625 C 21.515625 45.082031 20.664063 47.03125 17.648438 47 C 14.261719 46.96875 11.671875 43.648438 9.730469 40.699219 C 4.300781 32.429688 3.726563 22.734375 7.082031 17.578125 C 9.457031 13.921875 13.210938 11.773438 16.738281 11.773438 C 20.332031 11.773438 22.589844 13.746094 25.558594 13.746094 C 28.441406 13.746094 30.195313 11.769531 34.351563 11.769531 C 37.492188 11.769531 40.8125 13.480469 43.1875 16.433594 C 35.421875 20.691406 36.683594 31.78125 44.527344 34.75 Z M 31.195313 8.46875 C 32.707031 6.527344 33.855469 3.789063 33.4375 1 C 30.972656 1.167969 28.089844 2.742188 26.40625 4.78125 C 24.878906 6.640625 23.613281 9.398438 24.105469 12.066406 C 26.796875 12.152344 29.582031 10.546875 31.195313 8.46875 Z" })));
13
9
 
10
+ const DiscordLogo = ({ className }) => (h("svg", { viewBox: "0 0 71 55", fill: "none", xmlns: "http://www.w3.org/2000/svg", class: className }, h("title", null, "Discord Logo"), h("g", { "clip-path": "url(#clip0)" }, h("path", { d: "M60.1045 4.8978C55.5792 2.8214 50.7265 1.2916 45.6527 0.41542C45.5603 0.39851 45.468 0.440769 45.4204 0.525289C44.7963 1.6353 44.105 3.0834 43.6209 4.2216C38.1637 3.4046 32.7345 3.4046 27.3892 4.2216C26.905 3.0581 26.1886 1.6353 25.5617 0.525289C25.5141 0.443589 25.4218 0.40133 25.3294 0.41542C20.2584 1.2888 15.4057 2.8186 10.8776 4.8978C10.8384 4.9147 10.8048 4.9429 10.7825 4.9795C1.57795 18.7309 -0.943561 32.1443 0.293408 45.3914C0.299005 45.4562 0.335386 45.5182 0.385761 45.5576C6.45866 50.0174 12.3413 52.7249 18.1147 54.5195C18.2071 54.5477 18.305 54.5139 18.3638 54.4378C19.7295 52.5728 20.9469 50.6063 21.9907 48.5383C22.0523 48.4172 21.9935 48.2735 21.8676 48.2256C19.9366 47.4931 18.0979 46.6 16.3292 45.5858C16.1893 45.5041 16.1781 45.304 16.3068 45.2082C16.679 44.9293 17.0513 44.6391 17.4067 44.3461C17.471 44.2926 17.5606 44.2813 17.6362 44.3151C29.2558 49.6202 41.8354 49.6202 53.3179 44.3151C53.3935 44.2785 53.4831 44.2898 53.5502 44.3433C53.9057 44.6363 54.2779 44.9293 54.6529 45.2082C54.7816 45.304 54.7732 45.5041 54.6333 45.5858C52.8646 46.6197 51.0259 47.4931 49.0921 48.2228C48.9662 48.2707 48.9102 48.4172 48.9718 48.5383C50.038 50.6034 51.2554 52.5699 52.5959 54.435C52.6519 54.5139 52.7526 54.5477 52.845 54.5195C58.6464 52.7249 64.529 50.0174 70.6019 45.5576C70.6551 45.5182 70.6887 45.459 70.6943 45.3942C72.1747 30.0791 68.2147 16.7757 60.1968 4.9823C60.1772 4.9429 60.1437 4.9147 60.1045 4.8978ZM23.7259 37.3253C20.2276 37.3253 17.3451 34.1136 17.3451 30.1693C17.3451 26.225 20.1717 23.0133 23.7259 23.0133C27.308 23.0133 30.1626 26.2532 30.1066 30.1693C30.1066 34.1136 27.28 37.3253 23.7259 37.3253ZM47.3178 37.3253C43.8196 37.3253 40.9371 34.1136 40.9371 30.1693C40.9371 26.225 43.7636 23.0133 47.3178 23.0133C50.9 23.0133 53.7545 26.2532 53.6986 30.1693C53.6986 34.1136 50.9 37.3253 47.3178 37.3253Z", fill: "fill-current" })), h("defs", null, h("clipPath", { id: "clip0" }, h("rect", { width: "71", height: "55", fill: "white" })))));
11
+
14
12
  const FacebookLogo = ({ className }) => (h("svg", { xmlns: "http://www.w3.org/2000/svg", x: "0px", y: "0px", viewBox: "0 0 48 48", class: className }, h("title", null, "Facebook Logo"), h("path", { fill: "#4267b2", d: "M24 5A19 19 0 1 0 24 43A19 19 0 1 0 24 5Z" }), h("path", { fill: "#fff", d: "M26.572,29.036h4.917l0.772-4.995h-5.69v-2.73c0-2.075,0.678-3.915,2.619-3.915h3.119v-4.359c-0.548-0.074-1.707-0.236-3.897-0.236c-4.573,0-7.254,2.415-7.254,7.917v3.323h-4.701v4.995h4.701v13.729C22.089,42.905,23.032,43,24,43c0.875,0,1.729-0.08,2.572-0.194V29.036z" })));
15
13
 
16
- const DiscordLogo = ({ className }) => (h("svg", { viewBox: "0 0 71 55", fill: "none", xmlns: "http://www.w3.org/2000/svg", class: className }, h("title", null, "Discord Logo"), h("g", { "clip-path": "url(#clip0)" }, h("path", { d: "M60.1045 4.8978C55.5792 2.8214 50.7265 1.2916 45.6527 0.41542C45.5603 0.39851 45.468 0.440769 45.4204 0.525289C44.7963 1.6353 44.105 3.0834 43.6209 4.2216C38.1637 3.4046 32.7345 3.4046 27.3892 4.2216C26.905 3.0581 26.1886 1.6353 25.5617 0.525289C25.5141 0.443589 25.4218 0.40133 25.3294 0.41542C20.2584 1.2888 15.4057 2.8186 10.8776 4.8978C10.8384 4.9147 10.8048 4.9429 10.7825 4.9795C1.57795 18.7309 -0.943561 32.1443 0.293408 45.3914C0.299005 45.4562 0.335386 45.5182 0.385761 45.5576C6.45866 50.0174 12.3413 52.7249 18.1147 54.5195C18.2071 54.5477 18.305 54.5139 18.3638 54.4378C19.7295 52.5728 20.9469 50.6063 21.9907 48.5383C22.0523 48.4172 21.9935 48.2735 21.8676 48.2256C19.9366 47.4931 18.0979 46.6 16.3292 45.5858C16.1893 45.5041 16.1781 45.304 16.3068 45.2082C16.679 44.9293 17.0513 44.6391 17.4067 44.3461C17.471 44.2926 17.5606 44.2813 17.6362 44.3151C29.2558 49.6202 41.8354 49.6202 53.3179 44.3151C53.3935 44.2785 53.4831 44.2898 53.5502 44.3433C53.9057 44.6363 54.2779 44.9293 54.6529 45.2082C54.7816 45.304 54.7732 45.5041 54.6333 45.5858C52.8646 46.6197 51.0259 47.4931 49.0921 48.2228C48.9662 48.2707 48.9102 48.4172 48.9718 48.5383C50.038 50.6034 51.2554 52.5699 52.5959 54.435C52.6519 54.5139 52.7526 54.5477 52.845 54.5195C58.6464 52.7249 64.529 50.0174 70.6019 45.5576C70.6551 45.5182 70.6887 45.459 70.6943 45.3942C72.1747 30.0791 68.2147 16.7757 60.1968 4.9823C60.1772 4.9429 60.1437 4.9147 60.1045 4.8978ZM23.7259 37.3253C20.2276 37.3253 17.3451 34.1136 17.3451 30.1693C17.3451 26.225 20.1717 23.0133 23.7259 23.0133C27.308 23.0133 30.1626 26.2532 30.1066 30.1693C30.1066 34.1136 27.28 37.3253 23.7259 37.3253ZM47.3178 37.3253C43.8196 37.3253 40.9371 34.1136 40.9371 30.1693C40.9371 26.225 43.7636 23.0133 47.3178 23.0133C50.9 23.0133 53.7545 26.2532 53.6986 30.1693C53.6986 34.1136 50.9 37.3253 47.3178 37.3253Z", fill: "fill-current" })), h("defs", null, h("clipPath", { id: "clip0" }, h("rect", { width: "71", height: "55", fill: "white" })))));
14
+ const GoogleLogo = ({ className }) => (h("svg", { version: "1.1", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 48 48", style: { display: "block" }, class: className }, h("title", null, "Google Logo"), h("path", { fill: "#EA4335", d: "M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z" }), h("path", { fill: "#4285F4", d: "M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z" }), h("path", { fill: "#FBBC05", d: "M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z" }), h("path", { fill: "#34A853", d: "M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z" }), h("path", { fill: "none", d: "M0 0h48v48H0z" })));
15
+
16
+ const LinkedInLogo = ({ className }) => (h("svg", { version: "1.1", id: "Layer_1", xmlns: "http://www.w3.org/2000/svg", x: "0px", y: "0px", viewBox: "0 0 382 382", style: { enableBackground: "new 0 0 382 382" }, class: className }, h("title", null, "LinkedIn Logo"), h("path", { style: { fill: "#0077B7" }, d: "M347.445,0H34.555C15.471,0,0,15.471,0,34.555v312.889C0,366.529,15.471,382,34.555,382h312.889\n \tC366.529,382,382,366.529,382,347.444V34.555C382,15.471,366.529,0,347.445,0z M118.207,329.844c0,5.554-4.502,10.056-10.056,10.056\n \tH65.345c-5.554,0-10.056-4.502-10.056-10.056V150.403c0-5.554,4.502-10.056,10.056-10.056h42.806\n \tc5.554,0,10.056,4.502,10.056,10.056V329.844z M86.748,123.432c-22.459,0-40.666-18.207-40.666-40.666S64.289,42.1,86.748,42.1\n \ts40.666,18.207,40.666,40.666S109.208,123.432,86.748,123.432z M341.91,330.654c0,5.106-4.14,9.246-9.246,9.246H286.73\n \tc-5.106,0-9.246-4.14-9.246-9.246v-84.168c0-12.556,3.683-55.021-32.813-55.021c-28.309,0-34.051,29.066-35.204,42.11v97.079\n \tc0,5.106-4.139,9.246-9.246,9.246h-44.426c-5.106,0-9.246-4.14-9.246-9.246V149.593c0-5.106,4.14-9.246,9.246-9.246h44.426\n \tc5.106,0,9.246,4.14,9.246,9.246v15.655c10.497-15.753,26.097-27.912,59.312-27.912c73.552,0,73.131,68.716,73.131,106.472\n \tL341.91,330.654L341.91,330.654z" })));
17
17
 
18
- const socialLoginButtonCss = "/*! tailwindcss v4.1.17 | 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-font-weight: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-color-gray-100:oklch(96.7% .003 264.542);--u-color-gray-300:oklch(87.2% .01 258.338);--u-color-gray-600:oklch(44.6% .03 256.802);--u-color-white:#fff;--u-spacing:.25rem;--u-text-base:1rem;--u-text-base--line-height:1.5;--u-font-weight-medium:500;--u-radius-md:.375rem;--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-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\\:sr-only{border-width:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.u\\:ml-4{margin-left:calc(var(--u-spacing)*4)}.u\\:block{display:block}.u\\:flex{display:flex}.u\\:h-5{height:calc(var(--u-spacing)*5)}.u\\:h-6{height:calc(var(--u-spacing)*6)}.u\\:h-10{height:calc(var(--u-spacing)*10)}.u\\:w-5{width:calc(var(--u-spacing)*5)}.u\\:w-6{width:calc(var(--u-spacing)*6)}.u\\:w-full{width:100%}.u\\:cursor-not-allowed{cursor:not-allowed}.u\\:cursor-pointer{cursor:pointer}.u\\:items-center{align-items:center}.u\\:justify-center{justify-content:center}.u\\:rounded-md{border-radius:var(--u-radius-md)}.u\\:border{border-style:var(--tw-border-style);border-width:1px}.u\\:border-solid{--tw-border-style:solid;border-style:solid}.u\\:border-gray-300{border-color:var(--u-color-gray-300)}.u\\:border-gray-600{border-color:var(--u-color-gray-600)}.u\\:bg-\\[\\#131314\\]{background-color:#131314}.u\\:bg-white{background-color:var(--u-color-white)}.u\\:fill-current{fill:currentColor}.u\\:text-base{font-size:var(--u-text-base);line-height:var(--tw-leading,var(--u-text-base--line-height))}.u\\:font-medium{--tw-font-weight:var(--u-font-weight-medium);font-weight:var(--u-font-weight-medium)}.u\\:text-\\[\\#1f1f1f\\]{color:#1f1f1f}.u\\:text-white{color:var(--u-color-white)}.block{display:block}.hidden{display:none}.fill-current{fill:currentColor}.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.17 | MIT License | https://tailwindcss.com */@layer base{}@layer components,utilities; /*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer base{}@layer components,utilities; /*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer base{}@layer components,utilities; /*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer base{}@layer components,utilities; /*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer base{}@layer components,utilities; /*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer components;@layer utilities{}:host{display:block}@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-font-weight{syntax:\"*\";inherits:false}@media (hover:hover){.u\\:hover\\:bg-\\[\\#1f1f20\\]:hover{background-color:#1f1f20}.u\\:hover\\:bg-gray-100:hover{background-color:var(--u-color-gray-100)}}";
18
+ const socialLoginButtonCss = "/*! 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-font-weight: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-color-gray-100:oklch(96.7% .003 264.542);--u-color-gray-300:oklch(87.2% .01 258.338);--u-color-gray-600:oklch(44.6% .03 256.802);--u-color-white:#fff;--u-spacing:.25rem;--u-text-base:1rem;--u-text-base--line-height:1.5;--u-font-weight-medium:500;--u-radius-md:.375rem;--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-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\\:sr-only{border-width:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.u\\:ml-4{margin-left:calc(var(--u-spacing)*4)}.u\\:block{display:block}.u\\:flex{display:flex}.u\\:h-5{height:calc(var(--u-spacing)*5)}.u\\:h-6{height:calc(var(--u-spacing)*6)}.u\\:h-10{height:calc(var(--u-spacing)*10)}.u\\:w-5{width:calc(var(--u-spacing)*5)}.u\\:w-6{width:calc(var(--u-spacing)*6)}.u\\:w-full{width:100%}.u\\:cursor-not-allowed{cursor:not-allowed}.u\\:cursor-pointer{cursor:pointer}.u\\:items-center{align-items:center}.u\\:justify-center{justify-content:center}.u\\:rounded-md{border-radius:var(--u-radius-md)}.u\\:border{border-style:var(--tw-border-style);border-width:1px}.u\\:border-solid{--tw-border-style:solid;border-style:solid}.u\\:border-gray-300{border-color:var(--u-color-gray-300)}.u\\:border-gray-600{border-color:var(--u-color-gray-600)}.u\\:bg-\\[\\#131314\\]{background-color:#131314}.u\\:bg-white{background-color:var(--u-color-white)}.u\\:fill-current{fill:currentColor}.u\\:text-base{font-size:var(--u-text-base);line-height:var(--tw-leading,var(--u-text-base--line-height))}.u\\:font-medium{--tw-font-weight:var(--u-font-weight-medium);font-weight:var(--u-font-weight-medium)}.u\\:text-\\[\\#1f1f1f\\]{color:#1f1f1f}.u\\:text-white{color:var(--u-color-white)}.block{display:block}.hidden{display:none}.fill-current{fill:currentColor}.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 base{}@layer components,utilities; /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer base{}@layer components,utilities; /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer base{}@layer components,utilities; /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer base{}@layer components,utilities; /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer base{}@layer components,utilities; /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer components;@layer utilities{}:host{display:block}@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-font-weight{syntax:\"*\";inherits:false}@media (hover:hover){.u\\:hover\\:bg-\\[\\#1f1f20\\]:hover{background-color:#1f1f20}.u\\:hover\\:bg-gray-100:hover{background-color:var(--u-color-gray-100)}}";
19
19
 
20
20
  const SHARED_ICON_CLASSNAME = "u:w-5 u:h-5 u:block";
21
21
  const ICON_MAP = {
@@ -1 +1 @@
1
- {"file":"u-social-login-button.js","mappings":"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","names":["__stencil_proxyCustomElement","Sentry.captureException","authState"],"sources":["src/auth/components/social-logins/logos/google.tsx","src/auth/components/social-logins/logos/linkedin.tsx","src/auth/components/social-logins/logos/apple.tsx","src/auth/components/social-logins/logos/facebook.tsx","src/auth/components/social-logins/logos/discord.tsx","src/auth/components/social-logins/social-login-button.css?tag=u-social-login-button&encapsulation=shadow","src/auth/components/social-logins/social-login-button.tsx"],"sourcesContent":["import { type FunctionalComponent, h } from \"@stencil/core\";\n\nexport const GoogleLogo: FunctionalComponent<{ className: string }> = ({ className }) => (\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 48\" style={{ display: \"block\" }} class={className}>\n <title>Google Logo</title>\n <path\n fill=\"#EA4335\"\n d=\"M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z\"\n />\n <path\n fill=\"#4285F4\"\n d=\"M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z\"\n />\n <path\n fill=\"#FBBC05\"\n d=\"M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z\"\n />\n <path\n fill=\"#34A853\"\n d=\"M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z\"\n />\n <path fill=\"none\" d=\"M0 0h48v48H0z\" />\n </svg>\n);\n","import { type FunctionalComponent, h } from \"@stencil/core\";\n\nexport const LinkedInLogo: FunctionalComponent<{ className: string }> = ({ className }) => (\n <svg\n version=\"1.1\"\n id=\"Layer_1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 382 382\"\n style={{ enableBackground: \"new 0 0 382 382\" }}\n class={className}\n >\n <title>LinkedIn Logo</title>\n <path\n style={{ fill: \"#0077B7\" }}\n d=\"M347.445,0H34.555C15.471,0,0,15.471,0,34.555v312.889C0,366.529,15.471,382,34.555,382h312.889\n \tC366.529,382,382,366.529,382,347.444V34.555C382,15.471,366.529,0,347.445,0z M118.207,329.844c0,5.554-4.502,10.056-10.056,10.056\n \tH65.345c-5.554,0-10.056-4.502-10.056-10.056V150.403c0-5.554,4.502-10.056,10.056-10.056h42.806\n \tc5.554,0,10.056,4.502,10.056,10.056V329.844z M86.748,123.432c-22.459,0-40.666-18.207-40.666-40.666S64.289,42.1,86.748,42.1\n \ts40.666,18.207,40.666,40.666S109.208,123.432,86.748,123.432z M341.91,330.654c0,5.106-4.14,9.246-9.246,9.246H286.73\n \tc-5.106,0-9.246-4.14-9.246-9.246v-84.168c0-12.556,3.683-55.021-32.813-55.021c-28.309,0-34.051,29.066-35.204,42.11v97.079\n \tc0,5.106-4.139,9.246-9.246,9.246h-44.426c-5.106,0-9.246-4.14-9.246-9.246V149.593c0-5.106,4.14-9.246,9.246-9.246h44.426\n \tc5.106,0,9.246,4.14,9.246,9.246v15.655c10.497-15.753,26.097-27.912,59.312-27.912c73.552,0,73.131,68.716,73.131,106.472\n \tL341.91,330.654L341.91,330.654z\"\n />\n </svg>\n);\n","import { type FunctionalComponent, h } from \"@stencil/core\";\n\nexport const AppleLogo: FunctionalComponent<{ className: string }> = ({ className }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"0 0 48 48\" class={className}>\n <title>Apple Logo</title>\n <path d=\"M 44.527344 34.75 C 43.449219 37.144531 42.929688 38.214844 41.542969 40.328125 C 39.601563 43.28125 36.863281 46.96875 33.480469 46.992188 C 30.46875 47.019531 29.691406 45.027344 25.601563 45.0625 C 21.515625 45.082031 20.664063 47.03125 17.648438 47 C 14.261719 46.96875 11.671875 43.648438 9.730469 40.699219 C 4.300781 32.429688 3.726563 22.734375 7.082031 17.578125 C 9.457031 13.921875 13.210938 11.773438 16.738281 11.773438 C 20.332031 11.773438 22.589844 13.746094 25.558594 13.746094 C 28.441406 13.746094 30.195313 11.769531 34.351563 11.769531 C 37.492188 11.769531 40.8125 13.480469 43.1875 16.433594 C 35.421875 20.691406 36.683594 31.78125 44.527344 34.75 Z M 31.195313 8.46875 C 32.707031 6.527344 33.855469 3.789063 33.4375 1 C 30.972656 1.167969 28.089844 2.742188 26.40625 4.78125 C 24.878906 6.640625 23.613281 9.398438 24.105469 12.066406 C 26.796875 12.152344 29.582031 10.546875 31.195313 8.46875 Z\" />\n </svg>\n);\n","import { type FunctionalComponent, h } from \"@stencil/core\";\n\nexport const FacebookLogo: FunctionalComponent<{ className: string }> = ({ className }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"0 0 48 48\" class={className}>\n <title>Facebook Logo</title>\n <path fill=\"#4267b2\" d=\"M24 5A19 19 0 1 0 24 43A19 19 0 1 0 24 5Z\" />\n <path\n fill=\"#fff\"\n d=\"M26.572,29.036h4.917l0.772-4.995h-5.69v-2.73c0-2.075,0.678-3.915,2.619-3.915h3.119v-4.359c-0.548-0.074-1.707-0.236-3.897-0.236c-4.573,0-7.254,2.415-7.254,7.917v3.323h-4.701v4.995h4.701v13.729C22.089,42.905,23.032,43,24,43c0.875,0,1.729-0.08,2.572-0.194V29.036z\"\n />\n </svg>\n);\n","import { type FunctionalComponent, h } from \"@stencil/core\";\n\nexport const DiscordLogo: FunctionalComponent<{ className: string }> = ({ className }) => (\n <svg viewBox=\"0 0 71 55\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class={className}>\n <title>Discord Logo</title>\n <g clip-path=\"url(#clip0)\">\n <path\n d=\"M60.1045 4.8978C55.5792 2.8214 50.7265 1.2916 45.6527 0.41542C45.5603 0.39851 45.468 0.440769 45.4204 0.525289C44.7963 1.6353 44.105 3.0834 43.6209 4.2216C38.1637 3.4046 32.7345 3.4046 27.3892 4.2216C26.905 3.0581 26.1886 1.6353 25.5617 0.525289C25.5141 0.443589 25.4218 0.40133 25.3294 0.41542C20.2584 1.2888 15.4057 2.8186 10.8776 4.8978C10.8384 4.9147 10.8048 4.9429 10.7825 4.9795C1.57795 18.7309 -0.943561 32.1443 0.293408 45.3914C0.299005 45.4562 0.335386 45.5182 0.385761 45.5576C6.45866 50.0174 12.3413 52.7249 18.1147 54.5195C18.2071 54.5477 18.305 54.5139 18.3638 54.4378C19.7295 52.5728 20.9469 50.6063 21.9907 48.5383C22.0523 48.4172 21.9935 48.2735 21.8676 48.2256C19.9366 47.4931 18.0979 46.6 16.3292 45.5858C16.1893 45.5041 16.1781 45.304 16.3068 45.2082C16.679 44.9293 17.0513 44.6391 17.4067 44.3461C17.471 44.2926 17.5606 44.2813 17.6362 44.3151C29.2558 49.6202 41.8354 49.6202 53.3179 44.3151C53.3935 44.2785 53.4831 44.2898 53.5502 44.3433C53.9057 44.6363 54.2779 44.9293 54.6529 45.2082C54.7816 45.304 54.7732 45.5041 54.6333 45.5858C52.8646 46.6197 51.0259 47.4931 49.0921 48.2228C48.9662 48.2707 48.9102 48.4172 48.9718 48.5383C50.038 50.6034 51.2554 52.5699 52.5959 54.435C52.6519 54.5139 52.7526 54.5477 52.845 54.5195C58.6464 52.7249 64.529 50.0174 70.6019 45.5576C70.6551 45.5182 70.6887 45.459 70.6943 45.3942C72.1747 30.0791 68.2147 16.7757 60.1968 4.9823C60.1772 4.9429 60.1437 4.9147 60.1045 4.8978ZM23.7259 37.3253C20.2276 37.3253 17.3451 34.1136 17.3451 30.1693C17.3451 26.225 20.1717 23.0133 23.7259 23.0133C27.308 23.0133 30.1626 26.2532 30.1066 30.1693C30.1066 34.1136 27.28 37.3253 23.7259 37.3253ZM47.3178 37.3253C43.8196 37.3253 40.9371 34.1136 40.9371 30.1693C40.9371 26.225 43.7636 23.0133 47.3178 23.0133C50.9 23.0133 53.7545 26.2532 53.6986 30.1693C53.6986 34.1136 50.9 37.3253 47.3178 37.3253Z\"\n fill=\"fill-current\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0\">\n <rect width=\"71\" height=\"55\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n);\n",":host {\n display: block;\n}\n","import * as Sentry from \"@sentry/browser\";\nimport { Component, h, Prop } from \"@stencil/core\";\nimport { t } from \"../../../i18n\";\nimport { unidyState } from \"../../../shared/store/unidy-store\";\nimport { authState } from \"../../store/auth-store\";\nimport { GoogleLogo } from \"./logos/google\";\nimport { LinkedInLogo } from \"./logos/linkedin\";\nimport { AppleLogo } from \"./logos/apple\";\nimport { FacebookLogo } from \"./logos/facebook\";\nimport { DiscordLogo } from \"./logos/discord\";\nimport { UnidyComponent } from \"../../../logger\";\n\nconst SHARED_ICON_CLASSNAME = \"u:w-5 u:h-5 u:block\";\n\nconst ICON_MAP = {\n google: <GoogleLogo className={SHARED_ICON_CLASSNAME} />,\n linkedin: <LinkedInLogo className={SHARED_ICON_CLASSNAME} />,\n apple: <AppleLogo className={`${SHARED_ICON_CLASSNAME} u:fill-current`} />,\n discord: <DiscordLogo className={`${SHARED_ICON_CLASSNAME} u:fill-current`} />,\n facebook: <FacebookLogo className=\"u:w-6 u:h-6 u:block\" />,\n} as const;\n\ntype SocialLoginProvider = keyof typeof ICON_MAP | \"unidy\";\n\n@Component({\n tag: \"u-social-login-button\",\n styleUrl: \"social-login-button.css\",\n shadow: true,\n})\nexport class SocialLoginButton extends UnidyComponent {\n @Prop() provider: SocialLoginProvider = \"google\";\n @Prop() redirectUri: string = window.location.href;\n @Prop() iconOnly = false;\n @Prop() theme: \"light\" | \"dark\" = \"light\";\n\n componentWillLoad() {\n if (this.isUnsupportedProvider) {\n Sentry.captureException(`[u-social-login-button] Unsupported provider \"${this.provider}\".`);\n return;\n }\n }\n\n private get isUnsupportedProvider(): boolean {\n return !Object.hasOwn(ICON_MAP, this.provider) && this.provider !== \"unidy\";\n }\n\n private get isProviderEnabled(): boolean {\n if (authState.step !== \"verification\") {\n return true; // TODO: for now we show all providers on the email step since we don't have registration flow in place yet\n }\n\n if (!authState.availableLoginOptions?.social_logins) {\n return false;\n }\n\n return authState.availableLoginOptions.social_logins.some((enabled) => enabled.startsWith(this.provider) || enabled === this.provider);\n }\n\n private getAuthUrl(): string {\n const baseUrl = unidyState.baseUrl;\n const redirectUri = this.redirectUri ? encodeURIComponent(this.redirectUri) : baseUrl;\n\n return `${baseUrl}/api/sdk/v1/sign_ins/auth/omniauth/${this.provider}?sdk_redirect_uri=${redirectUri}`;\n }\n\n private onClick = async () => {\n if (!unidyState.baseUrl) {\n this.logger.error(\"baseUrl is not set. Make sure <u-config> is rendered with a valid base-url.\");\n return;\n }\n\n window.location.href = this.getAuthUrl();\n };\n\n private renderIcon() {\n if (this.isUnsupportedProvider || this.provider === \"unidy\") {\n return null;\n }\n\n return ICON_MAP[this.provider];\n }\n\n private getButtonClasses(): string {\n const baseClasses = \"u:w-full u:h-10 u:border u:border-solid u:rounded-md u:text-base u:font-medium\";\n const cursorClass = this.isUnsupportedProvider ? \"u:cursor-not-allowed\" : \"u:cursor-pointer\";\n const themeClasses =\n this.theme === \"dark\"\n ? \"u:bg-[#131314] u:text-white u:border-gray-600 u:hover:bg-[#1f1f20]\"\n : \"u:bg-white u:text-[#1f1f1f] u:border-gray-300 u:hover:bg-gray-100\";\n\n return `${baseClasses} ${cursorClass} ${themeClasses}`;\n }\n\n render() {\n if (!this.isProviderEnabled) {\n return null;\n }\n\n const providerName = this.provider.charAt(0).toUpperCase() + this.provider.slice(1);\n const text = t(\"auth.socialLogin.button_text\", {\n defaultValue: \"Continue with {{provider}}\",\n provider: providerName,\n });\n\n // TODO: allow users to customize already used providers with custom text and icon\n return (\n <button type=\"button\" class={this.getButtonClasses()} onClick={this.onClick} part=\"social-login-button\">\n <div class=\"u:flex u:items-center u:justify-center\" part=\"social-login-button-content\">\n <slot name=\"icon\">\n <span aria-hidden=\"true\">{this.renderIcon()}</span>\n </slot>\n\n {this.iconOnly ? (\n // Render the hidden text for accessibility.\n <span class=\"u:sr-only\">{text}</span>\n ) : (\n <span class={!this.isUnsupportedProvider ? \"u:ml-4\" : \"\"} part=\"social-login-button-text\">\n {text}\n </span>\n )}\n </div>\n </button>\n );\n }\n}\n"],"version":3}
1
+ {"file":"u-social-login-button.js","mappings":"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","names":["__stencil_proxyCustomElement","Sentry.captureException","authState"],"sources":["src/auth/components/social-logins/logos/apple.tsx","src/auth/components/social-logins/logos/discord.tsx","src/auth/components/social-logins/logos/facebook.tsx","src/auth/components/social-logins/logos/google.tsx","src/auth/components/social-logins/logos/linkedin.tsx","src/auth/components/social-logins/social-login-button.css?tag=u-social-login-button&encapsulation=shadow","src/auth/components/social-logins/social-login-button.tsx"],"sourcesContent":["import { type FunctionalComponent, h } from \"@stencil/core\";\n\nexport const AppleLogo: FunctionalComponent<{ className: string }> = ({ className }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"0 0 48 48\" class={className}>\n <title>Apple Logo</title>\n <path d=\"M 44.527344 34.75 C 43.449219 37.144531 42.929688 38.214844 41.542969 40.328125 C 39.601563 43.28125 36.863281 46.96875 33.480469 46.992188 C 30.46875 47.019531 29.691406 45.027344 25.601563 45.0625 C 21.515625 45.082031 20.664063 47.03125 17.648438 47 C 14.261719 46.96875 11.671875 43.648438 9.730469 40.699219 C 4.300781 32.429688 3.726563 22.734375 7.082031 17.578125 C 9.457031 13.921875 13.210938 11.773438 16.738281 11.773438 C 20.332031 11.773438 22.589844 13.746094 25.558594 13.746094 C 28.441406 13.746094 30.195313 11.769531 34.351563 11.769531 C 37.492188 11.769531 40.8125 13.480469 43.1875 16.433594 C 35.421875 20.691406 36.683594 31.78125 44.527344 34.75 Z M 31.195313 8.46875 C 32.707031 6.527344 33.855469 3.789063 33.4375 1 C 30.972656 1.167969 28.089844 2.742188 26.40625 4.78125 C 24.878906 6.640625 23.613281 9.398438 24.105469 12.066406 C 26.796875 12.152344 29.582031 10.546875 31.195313 8.46875 Z\" />\n </svg>\n);\n","import { type FunctionalComponent, h } from \"@stencil/core\";\n\nexport const DiscordLogo: FunctionalComponent<{ className: string }> = ({ className }) => (\n <svg viewBox=\"0 0 71 55\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class={className}>\n <title>Discord Logo</title>\n <g clip-path=\"url(#clip0)\">\n <path\n d=\"M60.1045 4.8978C55.5792 2.8214 50.7265 1.2916 45.6527 0.41542C45.5603 0.39851 45.468 0.440769 45.4204 0.525289C44.7963 1.6353 44.105 3.0834 43.6209 4.2216C38.1637 3.4046 32.7345 3.4046 27.3892 4.2216C26.905 3.0581 26.1886 1.6353 25.5617 0.525289C25.5141 0.443589 25.4218 0.40133 25.3294 0.41542C20.2584 1.2888 15.4057 2.8186 10.8776 4.8978C10.8384 4.9147 10.8048 4.9429 10.7825 4.9795C1.57795 18.7309 -0.943561 32.1443 0.293408 45.3914C0.299005 45.4562 0.335386 45.5182 0.385761 45.5576C6.45866 50.0174 12.3413 52.7249 18.1147 54.5195C18.2071 54.5477 18.305 54.5139 18.3638 54.4378C19.7295 52.5728 20.9469 50.6063 21.9907 48.5383C22.0523 48.4172 21.9935 48.2735 21.8676 48.2256C19.9366 47.4931 18.0979 46.6 16.3292 45.5858C16.1893 45.5041 16.1781 45.304 16.3068 45.2082C16.679 44.9293 17.0513 44.6391 17.4067 44.3461C17.471 44.2926 17.5606 44.2813 17.6362 44.3151C29.2558 49.6202 41.8354 49.6202 53.3179 44.3151C53.3935 44.2785 53.4831 44.2898 53.5502 44.3433C53.9057 44.6363 54.2779 44.9293 54.6529 45.2082C54.7816 45.304 54.7732 45.5041 54.6333 45.5858C52.8646 46.6197 51.0259 47.4931 49.0921 48.2228C48.9662 48.2707 48.9102 48.4172 48.9718 48.5383C50.038 50.6034 51.2554 52.5699 52.5959 54.435C52.6519 54.5139 52.7526 54.5477 52.845 54.5195C58.6464 52.7249 64.529 50.0174 70.6019 45.5576C70.6551 45.5182 70.6887 45.459 70.6943 45.3942C72.1747 30.0791 68.2147 16.7757 60.1968 4.9823C60.1772 4.9429 60.1437 4.9147 60.1045 4.8978ZM23.7259 37.3253C20.2276 37.3253 17.3451 34.1136 17.3451 30.1693C17.3451 26.225 20.1717 23.0133 23.7259 23.0133C27.308 23.0133 30.1626 26.2532 30.1066 30.1693C30.1066 34.1136 27.28 37.3253 23.7259 37.3253ZM47.3178 37.3253C43.8196 37.3253 40.9371 34.1136 40.9371 30.1693C40.9371 26.225 43.7636 23.0133 47.3178 23.0133C50.9 23.0133 53.7545 26.2532 53.6986 30.1693C53.6986 34.1136 50.9 37.3253 47.3178 37.3253Z\"\n fill=\"fill-current\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0\">\n <rect width=\"71\" height=\"55\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n);\n","import { type FunctionalComponent, h } from \"@stencil/core\";\n\nexport const FacebookLogo: FunctionalComponent<{ className: string }> = ({ className }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"0 0 48 48\" class={className}>\n <title>Facebook Logo</title>\n <path fill=\"#4267b2\" d=\"M24 5A19 19 0 1 0 24 43A19 19 0 1 0 24 5Z\" />\n <path\n fill=\"#fff\"\n d=\"M26.572,29.036h4.917l0.772-4.995h-5.69v-2.73c0-2.075,0.678-3.915,2.619-3.915h3.119v-4.359c-0.548-0.074-1.707-0.236-3.897-0.236c-4.573,0-7.254,2.415-7.254,7.917v3.323h-4.701v4.995h4.701v13.729C22.089,42.905,23.032,43,24,43c0.875,0,1.729-0.08,2.572-0.194V29.036z\"\n />\n </svg>\n);\n","import { type FunctionalComponent, h } from \"@stencil/core\";\n\nexport const GoogleLogo: FunctionalComponent<{ className: string }> = ({ className }) => (\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 48\" style={{ display: \"block\" }} class={className}>\n <title>Google Logo</title>\n <path\n fill=\"#EA4335\"\n d=\"M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z\"\n />\n <path\n fill=\"#4285F4\"\n d=\"M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z\"\n />\n <path\n fill=\"#FBBC05\"\n d=\"M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z\"\n />\n <path\n fill=\"#34A853\"\n d=\"M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z\"\n />\n <path fill=\"none\" d=\"M0 0h48v48H0z\" />\n </svg>\n);\n","import { type FunctionalComponent, h } from \"@stencil/core\";\n\nexport const LinkedInLogo: FunctionalComponent<{ className: string }> = ({ className }) => (\n <svg\n version=\"1.1\"\n id=\"Layer_1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 382 382\"\n style={{ enableBackground: \"new 0 0 382 382\" }}\n class={className}\n >\n <title>LinkedIn Logo</title>\n <path\n style={{ fill: \"#0077B7\" }}\n d=\"M347.445,0H34.555C15.471,0,0,15.471,0,34.555v312.889C0,366.529,15.471,382,34.555,382h312.889\n \tC366.529,382,382,366.529,382,347.444V34.555C382,15.471,366.529,0,347.445,0z M118.207,329.844c0,5.554-4.502,10.056-10.056,10.056\n \tH65.345c-5.554,0-10.056-4.502-10.056-10.056V150.403c0-5.554,4.502-10.056,10.056-10.056h42.806\n \tc5.554,0,10.056,4.502,10.056,10.056V329.844z M86.748,123.432c-22.459,0-40.666-18.207-40.666-40.666S64.289,42.1,86.748,42.1\n \ts40.666,18.207,40.666,40.666S109.208,123.432,86.748,123.432z M341.91,330.654c0,5.106-4.14,9.246-9.246,9.246H286.73\n \tc-5.106,0-9.246-4.14-9.246-9.246v-84.168c0-12.556,3.683-55.021-32.813-55.021c-28.309,0-34.051,29.066-35.204,42.11v97.079\n \tc0,5.106-4.139,9.246-9.246,9.246h-44.426c-5.106,0-9.246-4.14-9.246-9.246V149.593c0-5.106,4.14-9.246,9.246-9.246h44.426\n \tc5.106,0,9.246,4.14,9.246,9.246v15.655c10.497-15.753,26.097-27.912,59.312-27.912c73.552,0,73.131,68.716,73.131,106.472\n \tL341.91,330.654L341.91,330.654z\"\n />\n </svg>\n);\n",":host {\n display: block;\n}\n","import * as Sentry from \"@sentry/browser\";\nimport { Component, h, Prop } from \"@stencil/core\";\nimport { t } from \"../../../i18n\";\nimport { UnidyComponent } from \"../../../logger\";\nimport { unidyState } from \"../../../shared/store/unidy-store\";\nimport { authState } from \"../../store/auth-store\";\nimport { AppleLogo } from \"./logos/apple\";\nimport { DiscordLogo } from \"./logos/discord\";\nimport { FacebookLogo } from \"./logos/facebook\";\nimport { GoogleLogo } from \"./logos/google\";\nimport { LinkedInLogo } from \"./logos/linkedin\";\n\nconst SHARED_ICON_CLASSNAME = \"u:w-5 u:h-5 u:block\";\n\nconst ICON_MAP = {\n google: <GoogleLogo className={SHARED_ICON_CLASSNAME} />,\n linkedin: <LinkedInLogo className={SHARED_ICON_CLASSNAME} />,\n apple: <AppleLogo className={`${SHARED_ICON_CLASSNAME} u:fill-current`} />,\n discord: <DiscordLogo className={`${SHARED_ICON_CLASSNAME} u:fill-current`} />,\n facebook: <FacebookLogo className=\"u:w-6 u:h-6 u:block\" />,\n} as const;\n\ntype SocialLoginProvider = keyof typeof ICON_MAP | \"unidy\";\n\n@Component({\n tag: \"u-social-login-button\",\n styleUrl: \"social-login-button.css\",\n shadow: true,\n})\nexport class SocialLoginButton extends UnidyComponent {\n @Prop() provider: SocialLoginProvider = \"google\";\n @Prop() redirectUri: string = window.location.href;\n @Prop() iconOnly = false;\n @Prop() theme: \"light\" | \"dark\" = \"light\";\n\n componentWillLoad() {\n if (this.isUnsupportedProvider) {\n Sentry.captureException(`[u-social-login-button] Unsupported provider \"${this.provider}\".`);\n return;\n }\n }\n\n private get isUnsupportedProvider(): boolean {\n return !Object.hasOwn(ICON_MAP, this.provider) && this.provider !== \"unidy\";\n }\n\n private get isProviderEnabled(): boolean {\n if (authState.step !== \"verification\") {\n return true; // TODO: for now we show all providers on the email step since we don't have registration flow in place yet\n }\n\n if (!authState.availableLoginOptions?.social_logins) {\n return false;\n }\n\n return authState.availableLoginOptions.social_logins.some((enabled) => enabled.startsWith(this.provider) || enabled === this.provider);\n }\n\n private getAuthUrl(): string {\n const baseUrl = unidyState.baseUrl;\n const redirectUri = this.redirectUri ? encodeURIComponent(this.redirectUri) : baseUrl;\n\n return `${baseUrl}/api/sdk/v1/sign_ins/auth/omniauth/${this.provider}?sdk_redirect_uri=${redirectUri}`;\n }\n\n private onClick = async () => {\n if (!unidyState.baseUrl) {\n this.logger.error(\"baseUrl is not set. Make sure <u-config> is rendered with a valid base-url.\");\n return;\n }\n\n window.location.href = this.getAuthUrl();\n };\n\n private renderIcon() {\n if (this.isUnsupportedProvider || this.provider === \"unidy\") {\n return null;\n }\n\n return ICON_MAP[this.provider];\n }\n\n private getButtonClasses(): string {\n const baseClasses = \"u:w-full u:h-10 u:border u:border-solid u:rounded-md u:text-base u:font-medium\";\n const cursorClass = this.isUnsupportedProvider ? \"u:cursor-not-allowed\" : \"u:cursor-pointer\";\n const themeClasses =\n this.theme === \"dark\"\n ? \"u:bg-[#131314] u:text-white u:border-gray-600 u:hover:bg-[#1f1f20]\"\n : \"u:bg-white u:text-[#1f1f1f] u:border-gray-300 u:hover:bg-gray-100\";\n\n return `${baseClasses} ${cursorClass} ${themeClasses}`;\n }\n\n render() {\n if (!this.isProviderEnabled) {\n return null;\n }\n\n const providerName = this.provider.charAt(0).toUpperCase() + this.provider.slice(1);\n const text = t(\"auth.socialLogin.button_text\", {\n defaultValue: \"Continue with {{provider}}\",\n provider: providerName,\n });\n\n // TODO: allow users to customize already used providers with custom text and icon\n return (\n <button type=\"button\" class={this.getButtonClasses()} onClick={this.onClick} part=\"social-login-button\">\n <div class=\"u:flex u:items-center u:justify-center\" part=\"social-login-button-content\">\n <slot name=\"icon\">\n <span aria-hidden=\"true\">{this.renderIcon()}</span>\n </slot>\n\n {this.iconOnly ? (\n // Render the hidden text for accessibility.\n <span class=\"u:sr-only\">{text}</span>\n ) : (\n <span class={!this.isUnsupportedProvider ? \"u:ml-4\" : \"\"} part=\"social-login-button-text\">\n {text}\n </span>\n )}\n </div>\n </button>\n );\n }\n}\n"],"version":3}
@@ -1,7 +1,7 @@
1
1
  import { proxyCustomElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
2
  import { g as getUnidyClient } from './index2.js';
3
- import './auth-store.js';
4
3
  import { A as Auth } from './auth.js';
4
+ import './auth-store.js';
5
5
  import { t } from './i18n.js';
6
6
  import { U as UnidyComponent } from './logger.js';
7
7
  import { w as waitForConfig, u as unidyState } from './unidy-store.js';
@@ -0,0 +1,8 @@
1
+ import { a as appGlobalScript } from './index-COQ27Nb6.js';
2
+
3
+ const globalScripts = appGlobalScript;
4
+
5
+ export { globalScripts as g };
6
+ //# sourceMappingURL=app-globals-BHWOrMsm.js.map
7
+
8
+ //# sourceMappingURL=app-globals-BHWOrMsm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-globals-BHWOrMsm.js","sources":["@stencil/core/internal/app-globals"],"sourcesContent":["import appGlobalScript from '/Users/bvogel/Development/unidy-sdk/packages/sdk/src/globalScript.ts';\nexport const globalScripts = appGlobalScript;\nexport const globalStyles = \"\";\n"],"names":[],"mappings":";;AACY,MAAC,aAAa,GAAG;;;;"}
@@ -1,11 +1,11 @@
1
- import { g as getUnidyClient } from './index-DSDkaHWI.js';
2
- import { t } from './i18n-CLdWzy5J.js';
3
- import { w as waitForConfig } from './unidy-store-BldTAtO0.js';
4
- import { a as authStore, s as state } from './auth-store-BGMYm_jK.js';
5
- import { e as createLogger, d as captureException } from './index-Ci3aTmzp.js';
6
- import { s as state$1 } from './profile-store-RmZB2PTc.js';
7
- import { c as clearUrlParam } from './component-utils-D1lzXl_Z.js';
8
- import { F as Flash } from './flash-store-CEvWSG0c.js';
1
+ import { g as getUnidyClient } from './index-Du3hUdhU.js';
2
+ import { t } from './i18n-OKf8uE5j.js';
3
+ import { w as waitForConfig } from './unidy-store-CAcMVdD8.js';
4
+ import { a as authStore, s as state } from './auth-store-ItTnEMlF.js';
5
+ import { i as createLogger, f as captureException } from './index-COQ27Nb6.js';
6
+ import { s as state$1 } from './profile-store-CsSDT9Tb.js';
7
+ import { c as clearUrlParam } from './component-utils-BGq0leDV.js';
8
+ import { F as Flash } from './flash-store-CMXH65i_.js';
9
9
 
10
10
  class InvalidTokenError extends Error {
11
11
  }
@@ -246,7 +246,7 @@ class AuthHelpers {
246
246
  return authenticateWithPasskey(this.client, (response) => this.handleAuthSuccess(response));
247
247
  }
248
248
  async logout() {
249
- const [error, _] = await this.client.auth.signOut(state.sid);
249
+ const [error, _] = await this.client.auth.signOut(state.sid, state.backendSignedIn);
250
250
  if (error) {
251
251
  authStore.setGlobalError("auth", error);
252
252
  }
@@ -273,6 +273,23 @@ class AuthHelpers {
273
273
  authStore.setToken(response.jwt);
274
274
  }
275
275
  }
276
+ async checkSignedIn() {
277
+ if (state.authenticated)
278
+ return;
279
+ const [error, response] = await this.client.auth.signedIn();
280
+ if (error) {
281
+ // Silent fail
282
+ return;
283
+ }
284
+ // we only assume that "sso" was used when there isn't an existing sid in the session as setting the sid is the
285
+ // first step in any login flow, and we should not log out users unintentionally
286
+ if (!state.sid) {
287
+ const token = jwtDecode(response.jwt);
288
+ authStore.setSignInId(token.sid);
289
+ authStore.setBackendSignedIn(true);
290
+ }
291
+ this.handleAuthSuccess(response);
292
+ }
276
293
  async sendMagicCode() {
277
294
  if (!state.sid && state.step !== "single-login") {
278
295
  throw new Error(t("errors.no_sign_in_id"));
@@ -457,6 +474,7 @@ class AuthHelpers {
457
474
  }
458
475
  }
459
476
 
477
+ const DEFAULT_TOKEN_EXPIRATION_BUFFER_SECONDS = 10;
460
478
  class Auth {
461
479
  static instance;
462
480
  helpers;
@@ -505,7 +523,18 @@ class Auth {
505
523
  static isInitialized() {
506
524
  return !!Auth.instance;
507
525
  }
508
- isTokenValid(token) {
526
+ /**
527
+ * Checks whether a JWT token is valid and not expired.
528
+ *
529
+ * @param token - The JWT token to validate. Can be a raw JWT string, a decoded TokenPayload, or null.
530
+ * @param expirationBuffer - Number of seconds before actual expiration to consider the token invalid, used to prevent race conditions with preemptive token refresh. Defaults to 10 seconds.
531
+ * @returns `true` if the token is valid and won't expire within the buffer period, `false` otherwise.
532
+ * @throws Error if expirationBuffer is not positive number
533
+ */
534
+ isTokenValid(token, expirationBuffer = DEFAULT_TOKEN_EXPIRATION_BUFFER_SECONDS) {
535
+ if (!Number.isFinite(expirationBuffer) || expirationBuffer <= 0) {
536
+ throw new Error("expirationBuffer must be a positive finite number");
537
+ }
509
538
  try {
510
539
  let decoded;
511
540
  if (typeof token === "string") {
@@ -516,8 +545,11 @@ class Auth {
516
545
  }
517
546
  if (!decoded)
518
547
  return false;
548
+ if (typeof decoded.exp !== "number" || !Number.isFinite(decoded.exp)) {
549
+ return false;
550
+ }
519
551
  const currentTime = Date.now() / 1000;
520
- return decoded.exp > currentTime;
552
+ return decoded.exp > currentTime + expirationBuffer;
521
553
  }
522
554
  catch (error) {
523
555
  captureException(error);
@@ -575,6 +607,6 @@ class Auth {
575
607
  }
576
608
 
577
609
  export { Auth as A };
578
- //# sourceMappingURL=auth-B0RIcDM-.js.map
610
+ //# sourceMappingURL=auth-CAHM6e4m.js.map
579
611
 
580
- //# sourceMappingURL=auth-B0RIcDM-.js.map
612
+ //# sourceMappingURL=auth-CAHM6e4m.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-CAHM6e4m.js","sources":["../../node_modules/jwt-decode/build/esm/index.js","src/auth/passkey-auth.ts","src/auth/auth-helpers.ts","src/auth/auth.ts"],"sourcesContent":["export class InvalidTokenError extends Error {\n}\nInvalidTokenError.prototype.name = \"InvalidTokenError\";\nfunction b64DecodeUnicode(str) {\n return decodeURIComponent(atob(str).replace(/(.)/g, (m, p) => {\n let code = p.charCodeAt(0).toString(16).toUpperCase();\n if (code.length < 2) {\n code = \"0\" + code;\n }\n return \"%\" + code;\n }));\n}\nfunction base64UrlDecode(str) {\n let output = str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += \"==\";\n break;\n case 3:\n output += \"=\";\n break;\n default:\n throw new Error(\"base64 string is not of the correct length\");\n }\n try {\n return b64DecodeUnicode(output);\n }\n catch (err) {\n return atob(output);\n }\n}\nexport function jwtDecode(token, options) {\n if (typeof token !== \"string\") {\n throw new InvalidTokenError(\"Invalid token specified: must be a string\");\n }\n options || (options = {});\n const pos = options.header === true ? 0 : 1;\n const part = token.split(\".\")[pos];\n if (typeof part !== \"string\") {\n throw new InvalidTokenError(`Invalid token specified: missing part #${pos + 1}`);\n }\n let decoded;\n try {\n decoded = base64UrlDecode(part);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid base64 for part #${pos + 1} (${e.message})`);\n }\n try {\n return JSON.parse(decoded);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid json for part #${pos + 1} (${e.message})`);\n }\n}\n","import { jwtDecode } from \"jwt-decode\";\nimport type { PasskeyOptionsResponse, TokenResponse, UnidyClient } from \"../api\";\nimport { createLogger } from \"../logger\";\nimport type { TokenPayload } from \"./auth\";\nimport { authState, authStore } from \"./store/auth-store\";\n\nconst logger = createLogger(\"PasskeyAuth\");\n\nconst PASSKEY_ERRORS: Record<string, string> = {\n NotSupportedError: \"passkey_not_supported\",\n NotAllowedError: \"passkey_cancelled\",\n SecurityError: \"passkey_security_error\",\n InvalidStateError: \"passkey_invalid_state\",\n};\n\nfunction decodeBase64Url(base64url: string): Uint8Array {\n const base64 = base64url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const padded = base64 + \"=\".repeat((4 - (base64.length % 4)) % 4);\n return Uint8Array.from(atob(padded), (c) => c.charCodeAt(0));\n}\n\nfunction buildPublicKeyOptions(options: PasskeyOptionsResponse): PublicKeyCredentialRequestOptions {\n return {\n challenge: Uint8Array.from(atob(options.challenge), (c) => c.charCodeAt(0)),\n timeout: options.timeout || 60000,\n rpId: options.rpId,\n userVerification: (options.userVerification as UserVerificationRequirement) || \"required\",\n allowCredentials: options.allowCredentials?.map((cred) => ({\n ...cred,\n id: decodeBase64Url(cred.id),\n })),\n };\n}\n\nfunction formatCredentialForServer(credential: PublicKeyCredential) {\n const response = credential.response as AuthenticatorAssertionResponse;\n return {\n id: credential.id,\n rawId: btoa(String.fromCharCode(...new Uint8Array(credential.rawId))),\n response: {\n authenticatorData: btoa(String.fromCharCode(...new Uint8Array(response.authenticatorData))),\n clientDataJSON: btoa(String.fromCharCode(...new Uint8Array(response.clientDataJSON))),\n signature: btoa(String.fromCharCode(...new Uint8Array(response.signature))),\n },\n type: credential.type,\n };\n}\n\nfunction extractAndSetSignInId(tokenResponse: TokenResponse) {\n if (tokenResponse.sid) {\n authStore.setSignInId(tokenResponse.sid);\n return;\n }\n\n // Fallback: extract sid from JWT token payload\n try {\n const decoded = jwtDecode<TokenPayload>(tokenResponse.jwt);\n if (decoded.sid) {\n authStore.setSignInId(decoded.sid);\n }\n } catch {\n // Failed to decode JWT token to extract sid, continue without it\n }\n}\n\nfunction handlePasskeyError(error: unknown) {\n logger.error(\"Passkey error:\", error);\n\n let errorMessage = \"passkey_error\";\n if (error instanceof DOMException) {\n errorMessage = PASSKEY_ERRORS[error.name] || \"passkey_error\";\n }\n\n authStore.setFieldError(\"passkey\", errorMessage);\n authStore.setLoading(false);\n}\n\nexport async function authenticateWithPasskey(client: UnidyClient, onSuccess: (response: TokenResponse) => void) {\n authStore.setLoading(true);\n authStore.clearErrors();\n\n if (!window.PublicKeyCredential) {\n authStore.setFieldError(\"passkey\", \"passkey_not_supported\");\n authStore.setLoading(false);\n return;\n }\n\n try {\n const [optionsError, options] = await client.auth.getPasskeyOptions(authState.sid || undefined);\n\n if (optionsError || !options) {\n authStore.setFieldError(\"passkey\", optionsError || \"bad_request\");\n authStore.setLoading(false);\n return;\n }\n\n const publicKeyOptions = buildPublicKeyOptions(options as PasskeyOptionsResponse);\n\n const credential = (await navigator.credentials.get({\n publicKey: publicKeyOptions,\n })) as PublicKeyCredential | null;\n\n if (!credential) {\n authStore.setFieldError(\"passkey\", \"passkey_cancelled\");\n authStore.setLoading(false);\n return;\n }\n\n const formattedCredential = formatCredentialForServer(credential);\n\n const [verifyError, tkResponse] = await client.auth.authenticateWithPasskey(formattedCredential);\n\n const tokenResponse = tkResponse as TokenResponse;\n if (verifyError || !tokenResponse) {\n authStore.setGlobalError(\"auth\", verifyError || \"authentication_failed\");\n authStore.setLoading(false);\n return;\n }\n\n authStore.setToken(tokenResponse.jwt);\n extractAndSetSignInId(tokenResponse);\n onSuccess(tokenResponse);\n } catch (error) {\n handlePasskeyError(error);\n }\n}\n","import { jwtDecode } from \"jwt-decode\";\nimport type { CreateSignInResponse, RequiredFieldsResponse, TokenResponse, UnidyClient } from \"../api\";\nimport { authState, authStore } from \"../auth/store/auth-store\";\nimport { t } from \"../i18n\";\nimport { createLogger } from \"../logger\";\nimport type { ProfileRaw } from \"../profile\";\nimport { state as profileState } from \"../profile/store/profile-store\";\nimport { clearUrlParam } from \"../shared/component-utils\";\nimport { Flash } from \"../shared/store/flash-store\";\nimport type { TokenPayload } from \"./auth\";\nimport { authenticateWithPasskey } from \"./passkey-auth\";\n\nexport class AuthHelpers {\n private client: UnidyClient;\n private logger = createLogger(\"AuthHelpers\");\n\n constructor(client: UnidyClient) {\n this.client = client;\n }\n\n async createSignIn(email: string, password?: string, sendMagicCode?: boolean) {\n if (!email) {\n throw new Error(t(\"errors.required_field\", { field: \"Email\" }));\n }\n\n authStore.setLoading(true);\n authStore.clearErrors();\n\n const [error, response] = await this.client.auth.createSignIn(email, password, sendMagicCode);\n\n if (error) {\n this.handleAuthError(error, response, password ? \"password\" : \"email\");\n return;\n }\n\n if (password) {\n const token = jwtDecode<TokenPayload>((response as TokenResponse).jwt);\n authStore.setSignInId(token.sid);\n authStore.setToken((response as TokenResponse).jwt);\n authStore.setLoading(false);\n authStore.getRootComponentRef()?.onAuth(response as TokenResponse);\n return;\n }\n\n if (sendMagicCode) {\n authStore.setSignInId((response as CreateSignInResponse).sid);\n authStore.setMagicCodeStep(\"sent\");\n authStore.setStep(\"magic-code\");\n authStore.setLoading(false);\n return [error, response] as const;\n }\n const signInResponse = response as CreateSignInResponse;\n authStore.setStep(\"verification\");\n authStore.setEmail(email);\n authStore.setSignInId(signInResponse.sid);\n authStore.setLoginOptions(signInResponse.login_options);\n authStore.setLoading(false);\n }\n\n async authenticateWithPassword(password: string) {\n if (!authState.sid) {\n throw new Error(t(\"errors.no_sign_in_id\"));\n }\n\n if (!password) {\n throw new Error(t(\"errors.required_field\", { field: \"Password\" }));\n }\n\n authStore.setLoading(true);\n authStore.clearErrors();\n\n const [error, response] = await this.client.auth.authenticateWithPassword(authState.sid, password);\n\n if (error) {\n this.handleAuthError(error, response, \"password\");\n } else {\n authStore.setLoading(false);\n this.handleAuthSuccess(response as TokenResponse);\n return;\n }\n }\n\n async authenticateWithMagicCode(code: string) {\n if (!authState.sid) {\n throw new Error(t(\"errors.no_sign_in_id\"));\n }\n\n if (!code) {\n throw new Error(t(\"errors.magic_code_is_missing\"));\n }\n\n authStore.setLoading(true);\n authStore.clearErrors();\n\n const [error, response] = await this.client.auth.authenticateWithMagicCode(authState.sid, code);\n\n if (error) {\n this.handleAuthError(error, response, \"magicCode\");\n return;\n }\n\n this.handleAuthSuccess(response as TokenResponse);\n }\n\n authenticateWithPasskey() {\n return authenticateWithPasskey(this.client, (response) => this.handleAuthSuccess(response));\n }\n\n async logout() {\n const [error, _] = await this.client.auth.signOut(authState.sid as string, authState.backendSignedIn);\n\n if (error) {\n authStore.setGlobalError(\"auth\", error);\n }\n\n return [error, _] as const;\n }\n\n async refreshToken() {\n if (authState.step === \"missing-fields\") {\n return;\n }\n\n const sid = clearUrlParam(\"sid\");\n if (sid) {\n authStore.setSignInId(sid);\n }\n\n if (!authState.sid) {\n this.logger.warn(\"No sign-in ID in the session\");\n return;\n }\n\n const [error, response] = await this.client.auth.refreshToken(authState.sid);\n\n if (error) {\n authStore.reset();\n authStore.setGlobalError(\"auth\", error);\n } else {\n authStore.setToken((response as TokenResponse).jwt);\n }\n }\n\n async checkSignedIn() {\n if (authState.authenticated) return;\n\n const [error, response] = await this.client.auth.signedIn();\n\n if (error) {\n // Silent fail\n return;\n }\n\n // we only assume that \"sso\" was used when there isn't an existing sid in the session as setting the sid is the\n // first step in any login flow, and we should not log out users unintentionally\n if (!authState.sid) {\n const token = jwtDecode<TokenPayload>((response as TokenResponse).jwt);\n authStore.setSignInId(token.sid);\n authStore.setBackendSignedIn(true);\n }\n this.handleAuthSuccess(response as TokenResponse);\n }\n\n async sendMagicCode() {\n if (!authState.sid && authState.step !== \"single-login\") {\n throw new Error(t(\"errors.no_sign_in_id\"));\n }\n\n authStore.setMagicCodeStep(\"requested\");\n authStore.setLoading(true);\n authStore.clearErrors();\n\n if (authState.step === \"single-login\") {\n const [error, response] = await this.createSignIn(authState.email, undefined, true);\n authStore.setLoading(false);\n return [error, response] as const;\n }\n\n const [error, response] = await this.client.auth.sendMagicCode(authState.sid);\n\n authStore.setLoading(false);\n\n authStore.setStep(\"magic-code\");\n\n if (!error) {\n authStore.setMagicCodeStep(\"sent\");\n\n return [null, response] as const;\n }\n\n authStore.setFieldError(\"magicCode\", error);\n\n if (error === \"magic_code_recently_created\") {\n authStore.setMagicCodeStep(\"sent\");\n }\n\n return [error, response] as const;\n }\n\n async sendResetPasswordEmail() {\n if (!authState.sid) {\n throw new Error(t(\"errors.no_sign_in_id\"));\n }\n\n authStore.setLoading(true);\n authStore.setResetPasswordStep(\"requested\");\n\n const [error, _] = await this.client.auth.sendResetPasswordEmail(authState.sid, window.location.href);\n\n if (error) {\n authStore.setFieldError(\"resetPassword\", error);\n } else {\n authStore.setResetPasswordStep(\"sent\");\n authStore.clearErrors();\n }\n\n authStore.setLoading(false);\n }\n\n async resetPassword() {\n if (!authState.resetPassword.token) {\n throw new Error(\"No reset token available\");\n }\n\n if (!authState.resetPassword.newPassword) {\n authStore.setFieldError(\"resetPassword\", \"password_required\");\n return;\n }\n\n if (\n authState.resetPassword.passwordConfirmation &&\n authState.resetPassword.newPassword !== authState.resetPassword.passwordConfirmation\n ) {\n authStore.setFieldError(\"resetPassword\", \"passwords_do_not_match\");\n return;\n }\n\n authStore.setLoading(true);\n authStore.clearErrors();\n\n const [error, response] = await this.client.auth.resetPassword(\n authState.sid as string,\n authState.resetPassword.token,\n authState.resetPassword.newPassword,\n authState.resetPassword.passwordConfirmation,\n );\n\n if (error) {\n authStore.setFieldError(\"resetPassword\", error);\n\n // TODO: add proper password requirements handling --> for now this is fine\n if (error === \"invalid_password\") {\n authStore.setFieldError(\"password\", response.error_details?.password.map((p) => t(`errors.password_requirements.${p}`)).join(\"\\n\"));\n }\n } else {\n authStore.setStep(\"email\");\n authStore.updateResetPassword({\n step: \"completed\",\n token: null,\n newPassword: \"\",\n passwordConfirmation: \"\",\n });\n\n clearUrlParam(\"reset_password_token\");\n Flash.success.addMessage(\"Password reset successfully\");\n }\n\n authStore.setLoading(false);\n }\n\n async handleResetPasswordRedirect() {\n const url = new URL(window.location.href);\n const params = url.searchParams;\n const resetToken = params.get(\"reset_password_token\");\n\n if (!resetToken) {\n return;\n }\n\n if (authState.sid) {\n authStore.setLoading(true);\n\n const [error] = await this.client.auth.validateResetPasswordToken(authState.sid, resetToken);\n\n if (error) {\n authStore.setFieldError(\"resetPassword\", error);\n authStore.setStep(\"reset-password\");\n authStore.setLoading(false);\n return;\n }\n }\n\n authStore.setResetToken(resetToken);\n authStore.setStep(\"reset-password\");\n authStore.setLoading(false);\n }\n\n handleSocialAuthRedirect(): void {\n const url = new URL(window.location.href);\n const params = url.searchParams;\n const error = params.get(\"error\");\n\n // Not a social auth redirect (normal page load)\n if (!error && !params.has(\"sid\")) {\n return;\n }\n\n // Handle successful social auth redirect\n if (!error && params.has(\"sid\") && params.has(\"id_token\")) {\n authStore.setSignInId(clearUrlParam(\"sid\"));\n\n const idToken = clearUrlParam(\"id_token\");\n\n if (idToken) {\n authStore.setToken(idToken);\n this.handleAuthSuccess({ jwt: idToken } as TokenResponse);\n } else {\n this.logger.error(\"No ID token found in the URL on social auth redirect\");\n }\n\n return;\n }\n\n // Handle missing required fields\n if (error !== \"missing_required_fields\") {\n this.logger.error(\"Social auth redirect error:\", error);\n return;\n }\n\n const fieldsFromUrl = clearUrlParam(\"fields\");\n const sid = clearUrlParam(\"sid\");\n clearUrlParam(\"error\");\n\n if (!fieldsFromUrl || !sid) {\n return;\n }\n\n try {\n const fields = JSON.parse(fieldsFromUrl);\n authStore.setSignInId(sid);\n\n this.handleMissingFields(fields);\n } catch (e) {\n this.logger.error(\"Failed to parse missing fields payload:\", e);\n authStore.setGlobalError(\"auth\", \"invalid_required_fields_payload\");\n }\n }\n\n private handleAuthError(error: string, response: unknown, fallbackField?: \"email\" | \"password\" | \"magicCode\") {\n switch (error) {\n case \"account_not_found\":\n authStore.setFieldError(\"email\", error);\n break;\n\n case \"missing_required_fields\": {\n const { fields, sid } = response as RequiredFieldsResponse;\n this.handleMissingFields(fields);\n if (sid) {\n authStore.setSignInId(sid);\n }\n break;\n }\n\n default:\n if (fallbackField === \"password\") {\n authStore.setFieldError(\"password\", error);\n } else if (fallbackField === \"magicCode\") {\n authStore.setFieldError(\"magicCode\", error);\n } else if (fallbackField === \"email\") {\n authStore.setFieldError(\"email\", error);\n } else {\n // e.g. \"account_locked\", \"internal_server_error\"\n authStore.setGlobalError(\"auth\", error);\n }\n break;\n }\n\n authStore.setLoading(false);\n }\n\n private handleMissingFields(fields: RequiredFieldsResponse[\"fields\"]) {\n authStore.setMissingFields(fields);\n profileState.data = fields as ProfileRaw;\n authStore.setStep(\"missing-fields\");\n authStore.setLoading(false);\n }\n\n private handleAuthSuccess(response: TokenResponse) {\n authStore.setToken(response.jwt);\n authStore.setLoading(false);\n authStore.getRootComponentRef()?.onAuth(response);\n }\n}\n","import * as Sentry from \"@sentry/browser\";\nimport { jwtDecode } from \"jwt-decode\";\nimport type { UnidyClient } from \"../api\";\nimport { getUnidyClient } from \"../api\";\nimport { t } from \"../i18n\";\nimport { waitForConfig } from \"../shared/store/unidy-store\";\nimport { AuthHelpers } from \"./auth-helpers\";\nimport { authState, authStore } from \"./store/auth-store\";\n\nconst DEFAULT_TOKEN_EXPIRATION_BUFFER_SECONDS = 10;\n\nexport interface TokenPayload {\n sub: string; // unidy id\n sid: string; // sign-in id\n exp: number;\n iat: number;\n iss: string;\n aud: string;\n nonce: string;\n auth_time: number;\n email: string;\n email_verified: boolean;\n [key: string]: unknown;\n}\n\nexport type AuthError = Error & {\n code: \"TOKEN_EXPIRED\" | \"REFRESH_FAILED\" | \"NO_TOKEN\" | \"INVALID_TOKEN\" | \"SIGN_IN_NOT_FOUND\" | \"SIGN_OUT_FAILED\";\n requiresReauth: boolean;\n};\n\nexport class Auth {\n private static instance: Auth;\n\n readonly helpers: AuthHelpers;\n\n private constructor(client: UnidyClient) {\n this.helpers = new AuthHelpers(client);\n }\n\n static Errors = {\n email: {\n NOT_FOUND: \"account_not_found\",\n },\n magicCode: {\n RECENTLY_CREATED: \"magic_code_recently_created\",\n NOT_VALID: \"magic_code_not_valid\",\n EXPIRED: \"magic_code_expired\",\n USED: \"magic_code_used\",\n },\n password: {\n INVALID: \"invalid_password\",\n NOT_SET: \"password_not_set\",\n RESET_PASSWORD_ALREADY_SENT: \"reset_password_already_sent\",\n },\n general: {\n ACCOUNT_LOCKED: \"account_locked\",\n SIGN_IN_EXPIRED: \"sign_in_expired\",\n },\n } as const;\n\n static async getInstance(): Promise<Auth> {\n if (!Auth.isInitialized()) {\n await waitForConfig();\n\n return Auth.initialize(getUnidyClient());\n }\n\n return Auth.instance;\n }\n\n static async initialize(client: UnidyClient): Promise<Auth> {\n if (Auth.instance) {\n return Auth.instance;\n }\n\n Auth.instance = new Auth(client);\n\n Auth.instance.helpers.handleSocialAuthRedirect();\n await Auth.instance.helpers.handleResetPasswordRedirect();\n\n if (Auth.instance.isTokenValid(authState.token)) {\n authStore.setAuthenticated(true);\n }\n\n return Auth.instance;\n }\n\n static isInitialized(): boolean {\n return !!Auth.instance;\n }\n\n /**\n * Checks whether a JWT token is valid and not expired.\n *\n * @param token - The JWT token to validate. Can be a raw JWT string, a decoded TokenPayload, or null.\n * @param expirationBuffer - Number of seconds before actual expiration to consider the token invalid, used to prevent race conditions with preemptive token refresh. Defaults to 10 seconds.\n * @returns `true` if the token is valid and won't expire within the buffer period, `false` otherwise.\n * @throws Error if expirationBuffer is not positive number\n */\n isTokenValid(token: string | TokenPayload | null, expirationBuffer = DEFAULT_TOKEN_EXPIRATION_BUFFER_SECONDS): boolean {\n if (!Number.isFinite(expirationBuffer) || expirationBuffer <= 0) {\n throw new Error(\"expirationBuffer must be a positive finite number\");\n }\n\n try {\n let decoded: TokenPayload | null;\n\n if (typeof token === \"string\") {\n decoded = jwtDecode<TokenPayload>(token);\n } else {\n decoded = token;\n }\n\n if (!decoded) return false;\n\n if (typeof decoded.exp !== \"number\" || !Number.isFinite(decoded.exp)) {\n return false;\n }\n\n const currentTime = Date.now() / 1000;\n return decoded.exp > currentTime + expirationBuffer;\n } catch (error) {\n Sentry.captureException(error);\n return false;\n }\n }\n\n async isAuthenticated(): Promise<boolean> {\n const token = await this.getToken();\n return typeof token === \"string\";\n }\n\n async getToken(): Promise<string | AuthError> {\n const currentToken = authState.token;\n\n if (currentToken && this.isTokenValid(currentToken)) {\n return currentToken;\n }\n\n await this.helpers.refreshToken();\n\n if (authState.globalErrors.auth || !authState.token) {\n return this.createAuthError(t(\"errors.refresh_failed\"), \"REFRESH_FAILED\", true);\n }\n\n return authState.token as string;\n }\n\n async userData(): Promise<TokenPayload | null> {\n const token = await this.getToken();\n\n if (typeof token !== \"string\") {\n return null;\n }\n\n if (!token) {\n return null;\n }\n\n try {\n return jwtDecode<TokenPayload>(token);\n } catch (error) {\n Sentry.captureException(error);\n return null;\n }\n }\n\n async logout(): Promise<boolean | AuthError> {\n const [error, _] = await this.helpers.logout();\n\n if (error) {\n return this.createAuthError(t(\"errors.sign_out_failed\", { reason: error }), \"SIGN_OUT_FAILED\", false);\n }\n\n authStore.reset();\n\n return true;\n }\n\n getEmail(): string | null {\n return authState.email;\n }\n\n private createAuthError(message: string, code: AuthError[\"code\"], requiresReauth = false): AuthError {\n const error = new Error(message) as AuthError;\n error.code = code;\n error.requiresReauth = requiresReauth;\n\n return error;\n }\n}\n"],"names":["authState","profileState","Sentry.captureException"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,5 +1,5 @@
1
- import { c as createStore } from './index-Bjp1XO-f.js';
2
- import { u as unidyState } from './unidy-store-BldTAtO0.js';
1
+ import { c as createStore } from './index-DVkRTYPC.js';
2
+ import { u as unidyState } from './unidy-store-CAcMVdD8.js';
3
3
 
4
4
  const missingRequiredUserDefaultFields = () => {
5
5
  const fields = store.state.missingRequiredFields ?? {};
@@ -58,6 +58,7 @@ const initialState = {
58
58
  passkey: true,
59
59
  },
60
60
  token: sessionStorage.getItem(SESSION_KEYS.TOKEN),
61
+ backendSignedIn: false,
61
62
  };
62
63
  const store = createStore(initialState);
63
64
  const { state, reset } = store;
@@ -133,6 +134,9 @@ class AuthStore {
133
134
  state.sid = signInId;
134
135
  saveToStorage(localStorage, SESSION_KEYS.SID, signInId);
135
136
  }
137
+ setBackendSignedIn(backendSignedIn) {
138
+ state.backendSignedIn = backendSignedIn;
139
+ }
136
140
  setToken(token) {
137
141
  state.token = token;
138
142
  saveToStorage(sessionStorage, SESSION_KEYS.TOKEN, token);
@@ -173,6 +177,6 @@ class AuthStore {
173
177
  const authStore = new AuthStore();
174
178
 
175
179
  export { authStore as a, authStoreOnChange as b, missingFieldNames as m, state as s };
176
- //# sourceMappingURL=auth-store-BGMYm_jK.js.map
180
+ //# sourceMappingURL=auth-store-ItTnEMlF.js.map
177
181
 
178
- //# sourceMappingURL=auth-store-BGMYm_jK.js.map
182
+ //# sourceMappingURL=auth-store-ItTnEMlF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-store-ItTnEMlF.js","sources":["src/auth/store/auth-store.ts"],"sourcesContent":["import { createStore } from \"@stencil/store\";\nimport type { ProfileNode } from \"../../profile\";\nimport { unidyState } from \"../../shared/store/unidy-store\";\nimport type { LoginOptions, RequiredFieldsResponse } from \"../api/auth\";\nimport type { SigninRoot } from \"../components/signin-root/signin-root\";\n\nexport type AuthStep = \"email\" | \"verification\" | \"magic-code\" | \"missing-fields\" | \"reset-password\" | \"registration\" | \"single-login\";\n\nexport interface AuthState {\n step: AuthStep;\n sid: string | null;\n email: string;\n password: string;\n\n magicCodeStep: null | \"requested\" | \"sent\";\n resetPassword: {\n step: null | \"requested\" | \"sent\" | \"completed\";\n token: string | null;\n newPassword: string;\n passwordConfirmation: string;\n };\n missingRequiredFields?: RequiredFieldsResponse[\"fields\"];\n availableLoginOptions: LoginOptions | null;\n\n loading: boolean;\n errors: Record<\"email\" | \"password\" | \"magicCode\" | \"resetPassword\" | \"passkey\", string | null>;\n globalErrors: Record<string, string | null>;\n\n authenticated: boolean;\n token: string | null;\n backendSignedIn: boolean;\n}\n\nconst missingRequiredUserDefaultFields = () => {\n const fields = store.state.missingRequiredFields ?? ({} as RequiredFieldsResponse[\"fields\"]);\n const { custom_attributes, ...missingRequiredUserDefaultFields } = fields;\n return missingRequiredUserDefaultFields as Record<string, ProfileNode>;\n};\n\nconst missingRequiredCustomAttributeFields = () => {\n const fields = store.state.missingRequiredFields ?? ({} as RequiredFieldsResponse[\"fields\"]);\n return (fields?.custom_attributes ?? {}) as Record<string, ProfileNode>;\n};\n\nexport const missingFieldNames = () => {\n const userDefaultFields = Object.keys(missingRequiredUserDefaultFields());\n const ca = Object.keys(missingRequiredCustomAttributeFields()).map((k) => `custom_attributes.${k}`);\n return [...userDefaultFields, ...ca];\n};\n\nconst SESSION_KEYS = {\n SID: \"unidy_signin_id\",\n TOKEN: \"unidy_token\",\n EMAIL: \"unidy_email\",\n} as const;\n\nconst saveToStorage = (storage: Storage, key: string, value: string | null) => {\n if (value) {\n storage.setItem(key, value);\n } else {\n storage.removeItem(key);\n }\n};\n\nconst initialState: AuthState = {\n step: undefined,\n email: localStorage.getItem(SESSION_KEYS.EMAIL) ?? \"\",\n password: \"\",\n magicCodeStep: null,\n resetPassword: {\n step: null,\n token: null,\n newPassword: \"\",\n passwordConfirmation: \"\",\n },\n sid: localStorage.getItem(SESSION_KEYS.SID),\n loading: false,\n errors: {\n email: null,\n password: null,\n magicCode: null,\n resetPassword: null,\n passkey: null,\n },\n globalErrors: {},\n authenticated: false,\n missingRequiredFields: undefined,\n availableLoginOptions: {\n magic_link: false,\n password: false,\n social_logins: [],\n passkey: true,\n },\n token: sessionStorage.getItem(SESSION_KEYS.TOKEN),\n backendSignedIn: false,\n};\n\nconst store = createStore<AuthState>(initialState);\nconst { state, reset } = store;\n\nconst authStoreOnChange: <K extends keyof AuthState>(prop: K, cb: (value: AuthState[K]) => void) => () => void = store.onChange;\n\nclass AuthStore {\n private rootComponentRef: SigninRoot | null = null;\n\n setRootComponentRef(ref: SigninRoot) {\n this.rootComponentRef = ref;\n }\n\n getRootComponentRef() {\n return this.rootComponentRef;\n }\n\n get state() {\n return state;\n }\n\n setInitialStep(step: AuthStep) {\n if (state.step === undefined) state.step = step;\n }\n\n setEmail(email: string) {\n state.email = email;\n state.errors.email = null;\n saveToStorage(localStorage, SESSION_KEYS.EMAIL, email);\n }\n\n setPassword(password: string) {\n state.password = password;\n state.errors.password = null;\n }\n\n setMissingFields(fields: RequiredFieldsResponse[\"fields\"]) {\n state.missingRequiredFields = fields;\n }\n\n setLoginOptions(availableLoginOptions: LoginOptions) {\n state.availableLoginOptions = availableLoginOptions;\n }\n\n setLoading(loading: boolean) {\n state.loading = loading;\n }\n\n setFieldError(field: \"email\" | \"password\" | \"magicCode\" | \"resetPassword\" | \"passkey\", error: string | null) {\n if (!this.handleError(error)) return;\n\n state.errors = { ...state.errors, [field]: error };\n }\n\n setGlobalError(key: string, error: string | null) {\n if (!this.handleError(error)) return;\n state.globalErrors = { ...state.globalErrors, [key]: error };\n }\n\n private handleError(error: string | null): boolean {\n if (!error) return true;\n\n if (error === \"connection_failed\") {\n unidyState.backendConnected = false;\n return false;\n }\n\n if (error === \"sign_in_not_found\") {\n this.reset();\n return false;\n }\n\n this.rootComponentRef?.onError(error);\n return true;\n }\n\n clearFieldError(field: \"email\" | \"password\" | \"magicCode\" | \"resetPassword\" | \"passkey\") {\n state.errors = { ...state.errors, [field]: null } as Record<\n \"email\" | \"password\" | \"magicCode\" | \"resetPassword\" | \"passkey\",\n string | null\n >;\n }\n\n clearErrors() {\n state.errors = initialState.errors;\n state.globalErrors = {};\n }\n\n setStep(step: AuthStep) {\n state.step = step;\n }\n\n setSignInId(signInId: string) {\n state.sid = signInId;\n saveToStorage(localStorage, SESSION_KEYS.SID, signInId);\n }\n\n setBackendSignedIn(backendSignedIn: boolean) {\n state.backendSignedIn = backendSignedIn;\n }\n\n setToken(token: string) {\n state.token = token;\n saveToStorage(sessionStorage, SESSION_KEYS.TOKEN, token);\n this.setAuthenticated(!!token);\n }\n\n setMagicCodeStep(step: null | \"requested\" | \"sent\") {\n state.magicCodeStep = step;\n }\n\n setResetPasswordStep(step: null | \"requested\" | \"sent\" | \"completed\") {\n state.resetPassword = { ...state.resetPassword, step };\n }\n\n setResetToken(token: string | null) {\n state.resetPassword = { ...state.resetPassword, token };\n }\n\n setNewPassword(password: string) {\n state.resetPassword = { ...state.resetPassword, newPassword: password };\n }\n\n setConfirmPassword(password: string) {\n state.resetPassword = { ...state.resetPassword, passwordConfirmation: password };\n }\n\n updateResetPassword(updates: Partial<AuthState[\"resetPassword\"]>) {\n state.resetPassword = { ...state.resetPassword, ...updates };\n }\n\n setAuthenticated(authenticated: boolean) {\n state.authenticated = authenticated;\n\n if (!authenticated) {\n state.token = null;\n state.sid = null;\n }\n }\n\n reset() {\n reset();\n saveToStorage(localStorage, SESSION_KEYS.SID, null);\n saveToStorage(localStorage, SESSION_KEYS.EMAIL, null);\n saveToStorage(sessionStorage, SESSION_KEYS.TOKEN, null);\n }\n}\n\nexport const authStore = new AuthStore();\nexport { state as authState, authStoreOnChange as onChange };\n"],"names":[],"mappings":"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"}
@@ -2,6 +2,13 @@
2
2
  * Checks if a Stencil component's slot has content.
3
3
  * Use this in components to render fallback content when a slot is empty.
4
4
  *
5
+ * IMPORTANT: (for shadow: false components)
6
+ * You MUST call this in `componentWillLoad()` and cache the result in an instance property.
7
+ * After the first render, `element.childNodes` will contain both user-provided slot content
8
+ * AND the component's rendered internal elements (like <button>), causing false positives.
9
+ *
10
+ * Take a look at the https://stenciljs.com/docs/templating-jsx#slots-outside-shadow-dom
11
+ *
5
12
  * @param element - The host element of the component (accessed via @Element())
6
13
  * @returns true if the slot has content, false otherwise
7
14
  */
@@ -27,6 +34,6 @@ function clearUrlParam(param) {
27
34
  }
28
35
 
29
36
  export { clearUrlParam as c, hasSlotContent as h };
30
- //# sourceMappingURL=component-utils-D1lzXl_Z.js.map
37
+ //# sourceMappingURL=component-utils-BGq0leDV.js.map
31
38
 
32
- //# sourceMappingURL=component-utils-D1lzXl_Z.js.map
39
+ //# sourceMappingURL=component-utils-BGq0leDV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-utils-BGq0leDV.js","sources":["src/shared/component-utils.ts"],"sourcesContent":["/**\n * Checks if a Stencil component's slot has content.\n * Use this in components to render fallback content when a slot is empty.\n *\n * IMPORTANT: (for shadow: false components)\n * You MUST call this in `componentWillLoad()` and cache the result in an instance property.\n * After the first render, `element.childNodes` will contain both user-provided slot content\n * AND the component's rendered internal elements (like <button>), causing false positives.\n *\n * Take a look at the https://stenciljs.com/docs/templating-jsx#slots-outside-shadow-dom\n *\n * @param element - The host element of the component (accessed via @Element())\n * @returns true if the slot has content, false otherwise\n */\nexport function hasSlotContent(element: HTMLElement): boolean {\n if (!element.hasChildNodes()) return false;\n\n for (const child of Array.from(element.childNodes)) {\n if (child.nodeType === Node.ELEMENT_NODE) return true;\n if (child.nodeType === Node.TEXT_NODE && child.textContent?.trim()) return true;\n }\n\n return false;\n}\n\nexport function clearUrlParam(param: string): string | null {\n const url = new URL(window.location.href);\n const value = url.searchParams.get(param);\n\n if (value) {\n url.searchParams.delete(param);\n window.history.replaceState(null, \"\", url.toString());\n }\n\n return value;\n}\n"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;AAaG;AACG,SAAU,cAAc,CAAC,OAAoB,EAAA;AACjD,IAAA,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;AAAE,QAAA,OAAO,KAAK;AAE1C,IAAA,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AAClD,QAAA,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY;AAAE,YAAA,OAAO,IAAI;AACrD,QAAA,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE;AAAE,YAAA,OAAO,IAAI;;AAGjF,IAAA,OAAO,KAAK;AACd;AAEM,SAAU,aAAa,CAAC,KAAa,EAAA;IACzC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;IACzC,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;IAEzC,IAAI,KAAK,EAAE;AACT,QAAA,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC;AAC9B,QAAA,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;;AAGvD,IAAA,OAAO,KAAK;AACd;;;;"}
@@ -1,4 +1,4 @@
1
- import { c as createStore } from './index-Bjp1XO-f.js';
1
+ import { c as createStore } from './index-DVkRTYPC.js';
2
2
 
3
3
  const store = createStore({
4
4
  messages: [],
@@ -42,6 +42,6 @@ const Flash = new FlashStore();
42
42
  const flashState = store.state;
43
43
 
44
44
  export { Flash as F, flashState as f };
45
- //# sourceMappingURL=flash-store-CEvWSG0c.js.map
45
+ //# sourceMappingURL=flash-store-CMXH65i_.js.map
46
46
 
47
- //# sourceMappingURL=flash-store-CEvWSG0c.js.map
47
+ //# sourceMappingURL=flash-store-CMXH65i_.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"flash-store-CEvWSG0c.js","sources":["src/shared/store/flash-store.ts"],"sourcesContent":["import { createStore } from \"@stencil/store\";\n\nexport type FlashVariant = \"error\" | \"success\" | \"info\";\n\nexport interface FlashMessage {\n id: string;\n text: string;\n variant: FlashVariant;\n}\n\ninterface FlashState {\n messages: FlashMessage[];\n autoRemoveDelay: number | null;\n}\n\nconst store = createStore<FlashState>({\n messages: [],\n autoRemoveDelay: null,\n});\n\nlet idCounter = 0;\n\nclass FlashStore {\n get state() {\n return store.state;\n }\n\n private addMessage(text: string, variant: FlashVariant): string {\n const id = `flash-${++idCounter}`;\n store.state.messages = [...store.state.messages, { id, text, variant }];\n\n if (store.state.autoRemoveDelay) {\n setTimeout(() => this.remove(id), store.state.autoRemoveDelay);\n }\n\n return id;\n }\n\n remove(id: string) {\n store.state.messages = store.state.messages.filter((m) => m.id !== id);\n }\n\n clear(variant?: FlashVariant) {\n if (variant) {\n store.state.messages = store.state.messages.filter((m) => m.variant !== variant);\n } else {\n store.state.messages = [];\n }\n }\n\n success = {\n addMessage: (text: string) => this.addMessage(text, \"success\"),\n };\n\n error = {\n addMessage: (text: string) => this.addMessage(text, \"error\"),\n };\n\n info = {\n addMessage: (text: string) => this.addMessage(text, \"info\"),\n };\n}\n\nexport const Flash = new FlashStore();\nexport const flashState = store.state;\nexport const onFlashChange: <K extends keyof FlashState>(prop: K, cb: (value: FlashState[K]) => void) => () => void = store.onChange;\n"],"names":[],"mappings":";;AAeA,MAAM,KAAK,GAAG,WAAW,CAAa;AACpC,IAAA,QAAQ,EAAE,EAAE;AACZ,IAAA,eAAe,EAAE,IAAI;AACtB,CAAA,CAAC;AAEF,IAAI,SAAS,GAAG,CAAC;AAEjB,MAAM,UAAU,CAAA;AACd,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,KAAK,CAAC,KAAK;;IAGZ,UAAU,CAAC,IAAY,EAAE,OAAqB,EAAA;AACpD,QAAA,MAAM,EAAE,GAAG,CAAA,MAAA,EAAS,EAAE,SAAS,EAAE;QACjC,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAEvE,QAAA,IAAI,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE;AAC/B,YAAA,UAAU,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC;;AAGhE,QAAA,OAAO,EAAE;;AAGX,IAAA,MAAM,CAAC,EAAU,EAAA;QACf,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;;AAGxE,IAAA,KAAK,CAAC,OAAsB,EAAA;QAC1B,IAAI,OAAO,EAAE;YACX,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC;;aAC3E;AACL,YAAA,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE;;;AAI7B,IAAA,OAAO,GAAG;AACR,QAAA,UAAU,EAAE,CAAC,IAAY,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC;KAC/D;AAED,IAAA,KAAK,GAAG;AACN,QAAA,UAAU,EAAE,CAAC,IAAY,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC;KAC7D;AAED,IAAA,IAAI,GAAG;AACL,QAAA,UAAU,EAAE,CAAC,IAAY,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;KAC5D;AACF;AAEY,MAAA,KAAK,GAAG,IAAI,UAAU;AACtB,MAAA,UAAU,GAAG,KAAK,CAAC;;;;"}
1
+ {"version":3,"file":"flash-store-CMXH65i_.js","sources":["src/shared/store/flash-store.ts"],"sourcesContent":["import { createStore } from \"@stencil/store\";\n\nexport type FlashVariant = \"error\" | \"success\" | \"info\";\n\nexport interface FlashMessage {\n id: string;\n text: string;\n variant: FlashVariant;\n}\n\ninterface FlashState {\n messages: FlashMessage[];\n autoRemoveDelay: number | null;\n}\n\nconst store = createStore<FlashState>({\n messages: [],\n autoRemoveDelay: null,\n});\n\nlet idCounter = 0;\n\nclass FlashStore {\n get state() {\n return store.state;\n }\n\n private addMessage(text: string, variant: FlashVariant): string {\n const id = `flash-${++idCounter}`;\n store.state.messages = [...store.state.messages, { id, text, variant }];\n\n if (store.state.autoRemoveDelay) {\n setTimeout(() => this.remove(id), store.state.autoRemoveDelay);\n }\n\n return id;\n }\n\n remove(id: string) {\n store.state.messages = store.state.messages.filter((m) => m.id !== id);\n }\n\n clear(variant?: FlashVariant) {\n if (variant) {\n store.state.messages = store.state.messages.filter((m) => m.variant !== variant);\n } else {\n store.state.messages = [];\n }\n }\n\n success = {\n addMessage: (text: string) => this.addMessage(text, \"success\"),\n };\n\n error = {\n addMessage: (text: string) => this.addMessage(text, \"error\"),\n };\n\n info = {\n addMessage: (text: string) => this.addMessage(text, \"info\"),\n };\n}\n\nexport const Flash = new FlashStore();\nexport const flashState = store.state;\nexport const onFlashChange: <K extends keyof FlashState>(prop: K, cb: (value: FlashState[K]) => void) => () => void = store.onChange;\n"],"names":[],"mappings":";;AAeA,MAAM,KAAK,GAAG,WAAW,CAAa;AACpC,IAAA,QAAQ,EAAE,EAAE;AACZ,IAAA,eAAe,EAAE,IAAI;AACtB,CAAA,CAAC;AAEF,IAAI,SAAS,GAAG,CAAC;AAEjB,MAAM,UAAU,CAAA;AACd,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,KAAK,CAAC,KAAK;;IAGZ,UAAU,CAAC,IAAY,EAAE,OAAqB,EAAA;AACpD,QAAA,MAAM,EAAE,GAAG,CAAA,MAAA,EAAS,EAAE,SAAS,EAAE;QACjC,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAEvE,QAAA,IAAI,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE;AAC/B,YAAA,UAAU,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC;;AAGhE,QAAA,OAAO,EAAE;;AAGX,IAAA,MAAM,CAAC,EAAU,EAAA;QACf,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;;AAGxE,IAAA,KAAK,CAAC,OAAsB,EAAA;QAC1B,IAAI,OAAO,EAAE;YACX,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC;;aAC3E;AACL,YAAA,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE;;;AAI7B,IAAA,OAAO,GAAG;AACR,QAAA,UAAU,EAAE,CAAC,IAAY,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC;KAC/D;AAED,IAAA,KAAK,GAAG;AACN,QAAA,UAAU,EAAE,CAAC,IAAY,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC;KAC7D;AAED,IAAA,IAAI,GAAG;AACL,QAAA,UAAU,EAAE,CAAC,IAAY,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;KAC5D;AACF;AAEY,MAAA,KAAK,GAAG,IAAI,UAAU;AACtB,MAAA,UAAU,GAAG,KAAK,CAAC;;;;"}