@unidy.io/sdk 1.1.7 → 1.1.9

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 (174) hide show
  1. package/dist/cjs/app-globals-DSKjcXX_.js.map +1 -1
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/sdk.cjs.js +1 -1
  4. package/dist/cjs/u-conditional-render.cjs.entry.js +3 -4
  5. package/dist/cjs/u-conditional-render.entry.cjs.js.map +1 -1
  6. package/dist/cjs/u-email-field.cjs.entry.js +1 -1
  7. package/dist/cjs/u-field.u-raw-field.entry.cjs.js.map +1 -1
  8. package/dist/cjs/u-field_2.cjs.entry.js +1 -1
  9. package/dist/cjs/u-full-profile.cjs.entry.js +3 -3
  10. package/dist/cjs/u-full-profile.entry.cjs.js.map +1 -1
  11. package/dist/cjs/u-logout-button.u-signed-in.entry.cjs.js.map +1 -0
  12. package/dist/cjs/{u-signed-in.cjs.entry.js → u-logout-button_2.cjs.entry.js} +36 -1
  13. package/dist/cjs/u-newsletter-checkbox.cjs.entry.js +24 -10
  14. package/dist/cjs/u-newsletter-checkbox.entry.cjs.js.map +1 -1
  15. package/dist/cjs/u-newsletter-preference-checkbox.cjs.entry.js +21 -7
  16. package/dist/cjs/u-newsletter-preference-checkbox.entry.cjs.js.map +1 -1
  17. package/dist/cjs/u-profile.u-submit-button.entry.cjs.js.map +1 -1
  18. package/dist/cjs/u-profile_2.cjs.entry.js +1 -1
  19. package/dist/cjs/u-social-login-button.cjs.entry.js +1 -1
  20. package/dist/cjs/u-spinner.cjs.entry.js +2 -2
  21. package/dist/cjs/u-spinner.entry.cjs.js.map +1 -1
  22. package/dist/cjs/u-ticketable-list.cjs.entry.js +12 -2
  23. package/dist/cjs/u-ticketable-list.entry.cjs.js.map +1 -1
  24. package/dist/collection/auth/components/logout-button/logout-button.js +8 -1
  25. package/dist/collection/auth/components/logout-button/logout-button.js.map +1 -1
  26. package/dist/collection/auth/components/password-field/password-field.js +1 -1
  27. package/dist/collection/newsletter/components/newsletter-checkbox/newsletter-checkbox.js +66 -10
  28. package/dist/collection/newsletter/components/newsletter-checkbox/newsletter-checkbox.js.map +1 -1
  29. package/dist/collection/newsletter/components/preference-checkbox/preference-checkbox.js +65 -8
  30. package/dist/collection/newsletter/components/preference-checkbox/preference-checkbox.js.map +1 -1
  31. package/dist/collection/profile/components/field/field.css +1 -1
  32. package/dist/collection/profile/components/full-profile/full-profile.css +1 -1
  33. package/dist/collection/profile/components/full-profile/full-profile.js +2 -2
  34. package/dist/collection/profile/components/full-profile/full-profile.js.map +1 -1
  35. package/dist/collection/shared/components/conditional-render/conditional-render.js +3 -4
  36. package/dist/collection/shared/components/conditional-render/conditional-render.js.map +1 -1
  37. package/dist/collection/shared/components/config/config.js +2 -2
  38. package/dist/collection/shared/components/email-field/email-field.js +1 -1
  39. package/dist/collection/shared/components/spinner/spinner.css +1 -1
  40. package/dist/collection/shared/components/spinner/spinner.js +1 -1
  41. package/dist/collection/shared/components/submit-button/submit-button.css +1 -1
  42. package/dist/collection/ticketable/components/ticketable-list/ticketable-list.js +9 -2
  43. package/dist/collection/ticketable/components/ticketable-list/ticketable-list.js.map +1 -1
  44. package/dist/components/field.js +1 -1
  45. package/dist/components/field.js.map +1 -1
  46. package/dist/components/index.js.map +1 -1
  47. package/dist/components/spinner.js +2 -2
  48. package/dist/components/spinner.js.map +1 -1
  49. package/dist/components/submit-button.js +1 -1
  50. package/dist/components/submit-button.js.map +1 -1
  51. package/dist/components/u-conditional-render.js +3 -4
  52. package/dist/components/u-conditional-render.js.map +1 -1
  53. package/dist/components/u-email-field.js +1 -1
  54. package/dist/components/u-full-profile.js +3 -3
  55. package/dist/components/u-full-profile.js.map +1 -1
  56. package/dist/components/u-logout-button.js +8 -2
  57. package/dist/components/u-logout-button.js.map +1 -1
  58. package/dist/components/u-newsletter-checkbox.js +27 -11
  59. package/dist/components/u-newsletter-checkbox.js.map +1 -1
  60. package/dist/components/u-newsletter-preference-checkbox.js +24 -8
  61. package/dist/components/u-newsletter-preference-checkbox.js.map +1 -1
  62. package/dist/components/u-ticketable-list.js +10 -2
  63. package/dist/components/u-ticketable-list.js.map +1 -1
  64. package/dist/esm/app-globals-CPU9ZcqZ.js.map +1 -1
  65. package/dist/esm/loader.js +1 -1
  66. package/dist/esm/sdk.js +1 -1
  67. package/dist/esm/u-conditional-render.entry.js +3 -4
  68. package/dist/esm/u-conditional-render.entry.js.map +1 -1
  69. package/dist/esm/u-email-field.entry.js +1 -1
  70. package/dist/esm/u-field.u-raw-field.entry.js.map +1 -1
  71. package/dist/esm/u-field_2.entry.js +1 -1
  72. package/dist/esm/u-full-profile.entry.js +3 -3
  73. package/dist/esm/u-full-profile.entry.js.map +1 -1
  74. package/dist/esm/u-logout-button.u-signed-in.entry.js.map +1 -0
  75. package/dist/esm/{u-signed-in.entry.js → u-logout-button_2.entry.js} +37 -3
  76. package/dist/esm/u-newsletter-checkbox.entry.js +24 -10
  77. package/dist/esm/u-newsletter-checkbox.entry.js.map +1 -1
  78. package/dist/esm/u-newsletter-preference-checkbox.entry.js +21 -7
  79. package/dist/esm/u-newsletter-preference-checkbox.entry.js.map +1 -1
  80. package/dist/esm/u-profile.u-submit-button.entry.js.map +1 -1
  81. package/dist/esm/u-profile_2.entry.js +1 -1
  82. package/dist/esm/u-social-login-button.entry.js +1 -1
  83. package/dist/esm/u-spinner.entry.js +2 -2
  84. package/dist/esm/u-spinner.entry.js.map +1 -1
  85. package/dist/esm/u-ticketable-list.entry.js +12 -2
  86. package/dist/esm/u-ticketable-list.entry.js.map +1 -1
  87. package/dist/sdk/p-1176c407.entry.js +2 -0
  88. package/dist/sdk/p-1176c407.entry.js.map +1 -0
  89. package/dist/sdk/p-22e4d08b.entry.js +2 -0
  90. package/dist/sdk/p-22e4d08b.entry.js.map +1 -0
  91. package/dist/sdk/{p-5557b4d9.entry.js → p-339f32c1.entry.js} +2 -2
  92. package/dist/sdk/{p-5557b4d9.entry.js.map → p-339f32c1.entry.js.map} +1 -1
  93. package/dist/sdk/p-87d10077.entry.js +2 -0
  94. package/dist/sdk/p-87d10077.entry.js.map +1 -0
  95. package/dist/sdk/p-93200fb4.entry.js +2 -0
  96. package/dist/sdk/p-93200fb4.entry.js.map +1 -0
  97. package/dist/sdk/p-CFiZLMAA.js.map +1 -1
  98. package/dist/sdk/{p-5babee6b.entry.js → p-ad796888.entry.js} +2 -2
  99. package/dist/sdk/{p-5babee6b.entry.js.map → p-ad796888.entry.js.map} +1 -1
  100. package/dist/sdk/p-b0728464.entry.js +2 -0
  101. package/dist/sdk/{p-7a34f391.entry.js.map → p-b0728464.entry.js.map} +1 -1
  102. package/dist/sdk/{p-a4b7ffd8.entry.js → p-b0917777.entry.js} +2 -2
  103. package/dist/sdk/p-b0917777.entry.js.map +1 -0
  104. package/dist/sdk/{p-f369a996.entry.js → p-bb603b00.entry.js} +2 -2
  105. package/dist/sdk/p-c197fdb3.entry.js +2 -0
  106. package/dist/sdk/{p-6086d248.entry.js.map → p-c197fdb3.entry.js.map} +1 -1
  107. package/dist/sdk/{p-b3980341.entry.js → p-c31dbbb4.entry.js} +2 -2
  108. package/dist/sdk/sdk.esm.js +1 -1
  109. package/dist/sdk/u-conditional-render.entry.esm.js.map +1 -1
  110. package/dist/sdk/u-field.u-raw-field.entry.esm.js.map +1 -1
  111. package/dist/sdk/u-full-profile.entry.esm.js.map +1 -1
  112. package/dist/sdk/u-logout-button.u-signed-in.entry.esm.js.map +1 -0
  113. package/dist/sdk/u-newsletter-checkbox.entry.esm.js.map +1 -1
  114. package/dist/sdk/u-newsletter-preference-checkbox.entry.esm.js.map +1 -1
  115. package/dist/sdk/u-profile.u-submit-button.entry.esm.js.map +1 -1
  116. package/dist/sdk/u-spinner.entry.esm.js.map +1 -1
  117. package/dist/sdk/u-ticketable-list.entry.esm.js.map +1 -1
  118. package/dist/types/auth/components/logout-button/logout-button.d.ts +3 -0
  119. package/dist/types/components.d.ts +16 -0
  120. package/dist/types/newsletter/components/newsletter-checkbox/newsletter-checkbox.d.ts +5 -0
  121. package/dist/types/newsletter/components/preference-checkbox/preference-checkbox.d.ts +5 -0
  122. package/package.json +2 -2
  123. package/dist/cjs/u-logout-button.cjs.entry.js +0 -38
  124. package/dist/cjs/u-logout-button.entry.cjs.js.map +0 -1
  125. package/dist/cjs/u-signed-in.entry.cjs.js.map +0 -1
  126. package/dist/esm/u-logout-button.entry.js +0 -36
  127. package/dist/esm/u-logout-button.entry.js.map +0 -1
  128. package/dist/esm/u-signed-in.entry.js.map +0 -1
  129. package/dist/sdk/auth-BopPjv7G.js.map +0 -1
  130. package/dist/sdk/auth-C0vldOq6.js.map +0 -1
  131. package/dist/sdk/auth-store-DQaam_Qh.js.map +0 -1
  132. package/dist/sdk/auth-store-sOmplc4z.js.map +0 -1
  133. package/dist/sdk/component-utils-D1lzXl_Z.js.map +0 -1
  134. package/dist/sdk/flash-store-Cgu7WoSN.js.map +0 -1
  135. package/dist/sdk/flash-store-DNcSEn2p.js.map +0 -1
  136. package/dist/sdk/helpers-BqFCd65h.js.map +0 -1
  137. package/dist/sdk/helpers-DUHc_Cx7.js.map +0 -1
  138. package/dist/sdk/i18n-B6rRU-m3.js.map +0 -1
  139. package/dist/sdk/i18n-CZii1E-s.js.map +0 -1
  140. package/dist/sdk/index-B1aDcaWd.js.map +0 -1
  141. package/dist/sdk/index-BnBstyfp.js.map +0 -1
  142. package/dist/sdk/index-BqL27K_R.js.map +0 -1
  143. package/dist/sdk/index-C5jZjlU8.js.map +0 -1
  144. package/dist/sdk/index-Df-7P3r0.js.map +0 -1
  145. package/dist/sdk/index-Eu7hg2ii.js.map +0 -1
  146. package/dist/sdk/index-Iulyfmzq.js.map +0 -1
  147. package/dist/sdk/index-O6h7SI7-.js.map +0 -1
  148. package/dist/sdk/newsletter-helpers-8ByV38YW.js.map +0 -1
  149. package/dist/sdk/newsletter-helpers-B-Md6T9k.js.map +0 -1
  150. package/dist/sdk/newsletter-store-CqD-GcDC.js.map +0 -1
  151. package/dist/sdk/newsletter-store-CvULKmsu.js.map +0 -1
  152. package/dist/sdk/p-1ea49938.entry.js +0 -2
  153. package/dist/sdk/p-1ea49938.entry.js.map +0 -1
  154. package/dist/sdk/p-3411c743.entry.js +0 -2
  155. package/dist/sdk/p-3411c743.entry.js.map +0 -1
  156. package/dist/sdk/p-467c7304.entry.js +0 -2
  157. package/dist/sdk/p-467c7304.entry.js.map +0 -1
  158. package/dist/sdk/p-5703102b.entry.js +0 -2
  159. package/dist/sdk/p-5703102b.entry.js.map +0 -1
  160. package/dist/sdk/p-6086d248.entry.js +0 -2
  161. package/dist/sdk/p-7a34f391.entry.js +0 -2
  162. package/dist/sdk/p-a4b7ffd8.entry.js.map +0 -1
  163. package/dist/sdk/p-da363474.entry.js +0 -2
  164. package/dist/sdk/p-da363474.entry.js.map +0 -1
  165. package/dist/sdk/profile-helpers-BDjk573F.js.map +0 -1
  166. package/dist/sdk/profile-helpers-b8Koj20a.js.map +0 -1
  167. package/dist/sdk/profile-store-BZKApsQm.js.map +0 -1
  168. package/dist/sdk/profile-store-DD6sq42i.js.map +0 -1
  169. package/dist/sdk/u-logout-button.entry.esm.js.map +0 -1
  170. package/dist/sdk/u-signed-in.entry.esm.js.map +0 -1
  171. package/dist/sdk/unidy-store-BwZym11Y.js.map +0 -1
  172. package/dist/sdk/unidy-store-CtifvCkV.js.map +0 -1
  173. /package/dist/sdk/{p-f369a996.entry.js.map → p-bb603b00.entry.js.map} +0 -0
  174. /package/dist/sdk/{p-b3980341.entry.js.map → p-c31dbbb4.entry.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
2
 
3
- const spinnerCss = "/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer theme{:host,:root{--u-animate-spin:spin 1s linear infinite;--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\\:inline-flex{display:inline-flex}.u\\:h-\\[1em\\]{height:1em}.u\\:w-\\[1em\\]{width:1em}.u\\:animate-spin{animation:var(--u-animate-spin)}.u\\:items-center{align-items:center}.u\\:justify-center{justify-content:center}.u\\:rounded-\\[50\\%\\]{border-radius:50%}}@keyframes spin{to{transform:rotate(1turn)}} /*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer base{}@layer components;@layer utilities{.u\\:flex{display:flex}.u\\:justify-end{justify-content:flex-end}.u\\:disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.u\\:disabled\\:opacity-50:disabled{opacity:.5}} /*! 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;@layer 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 base{}@layer components,utilities; /*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer base{}@layer components; /*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer base{}@layer components; /*! 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-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 base{}@layer components;@layer utilities{.container{width:100%}.border{border-style:var(--tw-border-style);border-width:1px}.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)}}:host{font-size:var(--spinner-font-size,20px)}.spinner-inner{border-top:.1em solid var(--spinner-color-secondary,#ccc);border:.1em solid var(--spinner-color-secondary,#ccc);border-top-color:var(--spinner-color-primary,#333)}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@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}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}";
3
+ const spinnerCss = "/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer theme{:host,:root{--u-animate-spin:spin 1s linear infinite;--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\\:flex{display:flex}.u\\:justify-center{justify-content:center}.u\\:disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.u\\:disabled\\:opacity-50:disabled{opacity:.5}.u\\:inline-flex{display:inline-flex}.u\\:h-\\[1em\\]{height:1em}.u\\:w-\\[1em\\]{width:1em}.u\\:animate-spin{animation:var(--u-animate-spin)}.u\\:items-center{align-items:center}.u\\:rounded-\\[50\\%\\]{border-radius:50%}} /*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer base{}@layer components;@layer utilities{}@keyframes spin{to{transform:rotate(1turn)}} /*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer base{}@layer components; /*! 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; /*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer base{}@layer components; /*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer base{}@layer components;@layer utilities{.u\\:justify-end{justify-content:flex-end}} /*! 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{@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-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 base{}@layer components;@layer utilities{.container{width:100%}.border{border-style:var(--tw-border-style);border-width:1px}.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)}}:host{font-size:var(--spinner-font-size,20px)}.spinner-inner{border-top:.1em solid var(--spinner-color-secondary,#ccc);border:.1em solid var(--spinner-color-secondary,#ccc);border-top-color:var(--spinner-color-primary,#333)}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@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}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}";
4
4
 
5
5
  const Spinner = /*@__PURE__*/ proxyCustomElement(class Spinner extends HTMLElement {
6
6
  constructor(registerHost) {
@@ -11,7 +11,7 @@ const Spinner = /*@__PURE__*/ proxyCustomElement(class Spinner extends HTMLEleme
11
11
  this.__attachShadow();
12
12
  }
13
13
  render() {
14
- return (h(Host, { key: 'f274c3b889914d85bcae58d6410a795dbe81532e', class: "u:inline-flex u:items-center u:justify-center" }, h("div", { key: 'abfbb93eb29a4e07c0bfe17a024e2e9b4acc2e47', class: "spinner-inner u:w-[1em] u:h-[1em] u:rounded-[50%] u:animate-spin", part: "spinner", role: "status", "aria-label": "Loading" })));
14
+ return (h(Host, { key: '8088358576ae5597be493ff1c27b97c6fcc7b06f', class: "u:inline-flex u:items-center u:justify-center" }, h("div", { key: 'd981ee379b8d1042ada7d70b12005ff84ef66085', class: "spinner-inner u:w-[1em] u:h-[1em] u:rounded-[50%] u:animate-spin", part: "spinner", role: "status", "aria-label": "Loading" })));
15
15
  }
16
16
  static get style() { return spinnerCss; }
17
17
  }, [257, "u-spinner"]);
@@ -1 +1 @@
1
- {"file":"spinner.js","mappings":";;AAAA,MAAM,UAAU,GAAG,2+RAA2+R;;MCOj/R,OAAO,iBAAAA,kBAAA,CAAA,MAAA,OAAA,SAAA,WAAA,CAAA;;;;;;;;IAClB,MAAM,GAAA;AACJ,QAAA,QACE,CAAC,CAAA,IAAI,EAAC,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,+CAA+C,EAAA,EAEzD,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,kEAAkE,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,QAAQ,EAAY,YAAA,EAAA,SAAS,EAAG,CAAA,CAC7H;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement"],"sources":["src/shared/components/spinner/spinner.css?tag=u-spinner&encapsulation=shadow","src/shared/components/spinner/spinner.tsx"],"sourcesContent":[":host {\n font-size: var(--spinner-font-size, 20px);\n}\n\n.spinner-inner {\n border: 0.1em solid var(--spinner-color-secondary, #ccc);\n border-top: 0.1em solid var(--spinner-color-primary, #333);\n}\n","import { Component, h, Host } from \"@stencil/core\";\n\n@Component({\n tag: \"u-spinner\",\n styleUrl: \"spinner.css\",\n shadow: true,\n})\nexport class Spinner {\n render() {\n return (\n <Host class=\"u:inline-flex u:items-center u:justify-center\">\n {/* biome-ignore lint/a11y/useSemanticElements: spinner is a visual element, output tag not appropriate */}\n <div class=\"spinner-inner u:w-[1em] u:h-[1em] u:rounded-[50%] u:animate-spin\" part=\"spinner\" role=\"status\" aria-label=\"Loading\" />\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"spinner.js","mappings":";;AAAA,MAAM,UAAU,GAAG,q3RAAq3R;;MCO33R,OAAO,iBAAAA,kBAAA,CAAA,MAAA,OAAA,SAAA,WAAA,CAAA;;;;;;;;IAClB,MAAM,GAAA;AACJ,QAAA,QACE,CAAC,CAAA,IAAI,EAAC,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,+CAA+C,EAAA,EAEzD,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,kEAAkE,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,QAAQ,EAAY,YAAA,EAAA,SAAS,EAAG,CAAA,CAC7H;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement"],"sources":["src/shared/components/spinner/spinner.css?tag=u-spinner&encapsulation=shadow","src/shared/components/spinner/spinner.tsx"],"sourcesContent":[":host {\n font-size: var(--spinner-font-size, 20px);\n}\n\n.spinner-inner {\n border: 0.1em solid var(--spinner-color-secondary, #ccc);\n border-top: 0.1em solid var(--spinner-color-primary, #333);\n}\n","import { Component, h, Host } from \"@stencil/core\";\n\n@Component({\n tag: \"u-spinner\",\n styleUrl: \"spinner.css\",\n shadow: true,\n})\nexport class Spinner {\n render() {\n return (\n <Host class=\"u:inline-flex u:items-center u:justify-center\">\n {/* biome-ignore lint/a11y/useSemanticElements: spinner is a visual element, output tag not appropriate */}\n <div class=\"spinner-inner u:w-[1em] u:h-[1em] u:rounded-[50%] u:animate-spin\" part=\"spinner\" role=\"status\" aria-label=\"Loading\" />\n </Host>\n );\n }\n}\n"],"version":3}
@@ -109,7 +109,7 @@ const defaultContext = {
109
109
  },
110
110
  };
111
111
 
112
- const submitButtonCss = "/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer theme{:host,:root{--u-font-sans:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--u-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--u-default-font-family:var(--u-font-sans);--u-default-mono-font-family:var(--u-font-mono);--font-sans:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{border:0 solid;box-sizing:border-box;margin:0;padding:0}::file-selector-button{appearance:button;background-color:#0000;border:0 solid;border-radius:0;box-sizing:border-box;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;margin:0;margin-inline-end:4px;opacity:1;padding:0}:host,html{font-family:var(--u-default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:var(--u-default-font-feature-settings,normal);font-variation-settings:var(--u-default-font-variation-settings,normal);-webkit-text-size-adjust:100%;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);tab-size:4;-webkit-tap-highlight-color:transparent;line-height:1.5}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--u-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:var(--u-default-mono-font-feature-settings,normal);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-size:1em;font-variation-settings:var(--u-default-mono-font-variation-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}button,input,optgroup,select,textarea{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:currentColor;color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex;padding-block:0}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.u\\:flex{display:flex}.u\\:justify-end{justify-content:flex-end}.u\\:justify-center{justify-content:center}.u\\:disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.u\\:disabled\\:opacity-50:disabled{opacity:.5}} /*! 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;@layer utilities{} /*! 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-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 base{}@layer components;@layer utilities{.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)}}@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}";
112
+ const submitButtonCss = "/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer theme{:host,:root{--u-animate-spin:spin 1s linear infinite;--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\\:flex{display:flex}.u\\:justify-center{justify-content:center}.u\\:disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.u\\:disabled\\:opacity-50:disabled{opacity:.5}.u\\:inline-flex{display:inline-flex}.u\\:h-\\[1em\\]{height:1em}.u\\:w-\\[1em\\]{width:1em}.u\\:animate-spin{animation:var(--u-animate-spin)}.u\\:items-center{align-items:center}.u\\:rounded-\\[50\\%\\]{border-radius:50%}} /*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer base{}@layer components;@layer utilities{}@keyframes spin{to{transform:rotate(1turn)}} /*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer base{}@layer components;@layer utilities{.u\\:justify-end{justify-content:flex-end}} /*! 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-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 base{}@layer components;@layer utilities{.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)}}@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}";
113
113
 
114
114
  const SubmitButton = /*@__PURE__*/ proxyCustomElement(class SubmitButton extends HTMLElement {
115
115
  constructor(registerHost) {
@@ -1 +1 @@
1
- {"file":"submit-button.js","mappings":";;;;;;;;;;AAOO,MAAM,WAAW,GAAuC;IAC7D,WAAW,EAAE,OAAO,KAAiB,EAAE,EAAe,EAAE,QAAwB,KAAI;QAClF,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,MAAM,mBAAmB,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE;KACxC;IAED,UAAU,CAAC,OAAuB,EAAE,QAAkB,EAAA;AACpD,QAAA,IAAI,QAAQ,IAAIA,KAAS,CAAC,OAAO;AAAE,YAAA,OAAO,IAAI;QAE9C,IAAIA,KAAS,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,KAAK,OAAO,EAAE;AACrD,YAAA,OAAOA,KAAS,CAAC,KAAK,KAAK,EAAE;;QAG/B,IAAIA,KAAS,CAAC,IAAI,KAAK,cAAc,IAAI,OAAO,KAAK,UAAU,EAAE;AAC/D,YAAA,OAAOA,KAAS,CAAC,QAAQ,KAAK,EAAE;;QAGlC,IAAIA,KAAS,CAAC,IAAI,KAAK,gBAAgB,IAAI,OAAO,KAAK,eAAe,EAAE;AACtE,YAAA,OAAO,CAACA,KAAS,CAAC,aAAa,CAAC,WAAW,IAAI,CAACA,KAAS,CAAC,aAAa,CAAC,oBAAoB;;AAG9F,QAAA,OAAO,KAAK;KACb;IAED,SAAS,GAAA;QACP,OAAOA,KAAS,CAAC,OAAO;KACzB;IAED,aAAa,CAAC,OAAuB,EAAE,IAAa,EAAA;AAClD,QAAA,IAAI,IAAI;AAAE,YAAA,OAAO,IAAI;AAErB,QAAA,QAAQA,KAAS,CAAC,IAAI;AACpB,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,CAAC,CAAC,kBAAkB,CAAC;AAC9B,YAAA,KAAK,cAAc;AACjB,gBAAA,IAAI,OAAO,KAAK,UAAU,EAAE;oBAC1B,OAAO,CAAC,CAAC,2BAA2B,EAAE,EAAE,YAAY,EAAE,uBAAuB,EAAE,CAAC;;AAElF,gBAAA,OAAO,CAAC,CAAC,gBAAgB,CAAC;AAC5B,YAAA,KAAK,gBAAgB;AACnB,gBAAA,IAAI,OAAO,KAAK,eAAe,EAAE;oBAC/B,OAAO,CAAC,CAAC,oCAAoC,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;;AAElF,gBAAA,OAAO,CAAC,CAAC,gBAAgB,CAAC;AAC5B,YAAA;AACE,gBAAA,OAAO,CAAC,CAAC,gBAAgB,CAAC;;KAE/B;AAED,IAAA,YAAY,CAAC,OAAuB,EAAA;QAClC,IAAI,CAACA,KAAS,CAAC,qBAAqB,EAAE,QAAQ,IAAI,OAAO,KAAK,UAAU,EAAE;AACxE,YAAA,OAAO,KAAK;;AAGd,QAAA,IAAIA,KAAS,CAAC,IAAI,KAAK,OAAO,EAAE;YAC9B,OAAO,OAAO,KAAK,OAAO;;AAG5B,QAAA,IAAIA,KAAS,CAAC,IAAI,KAAK,cAAc,EAAE;YACrC,OAAO,OAAO,KAAK,UAAU,IAAIA,KAAS,CAAC,aAAa,KAAK,MAAM;;AAGrE,QAAA,IAAIA,KAAS,CAAC,IAAI,KAAK,gBAAgB,EAAE;YACvC,OAAO,OAAO,KAAK,eAAe;;AAGpC,QAAA,OAAO,KAAK;KACb;CACF;;ACrEM,MAAM,iBAAiB,GAA6C;IACzE,WAAW,EAAE,OAAO,KAAiB,EAAE,EAAe,EAAE,OAA6B,KAAI;QACvF,KAAK,CAAC,cAAc,EAAE;QACtB,OAAO,MAAM,uBAAuB,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;KAC1D;IAED,UAAU,CAAC,OAAO,EAAE,QAAkB,EAAA;AACpC,QAAA,IAAI,OAAO,KAAK,OAAO,EAAE;YACvB,OAAO,QAAQ,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK;;QAGjD,OAAO,QAAQ,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,MAAM,KAAK,CAAC;KACtH;IAED,SAAS,GAAA;AACP,QAAA,OAAO,KAAK;KACb;CACF;;ACpBD,SAAS,gBAAgB,CAAC,EAAe,EAAA;AACvC,IAAA,OAAO,EAAE,CAAC,OAAO,CAAC,WAAW,CAA+B;AAC9D;AAEO,MAAM,cAAc,GAAwB;AACjD,IAAA,MAAM,WAAW,CAAC,KAAiB,EAAE,EAAe,EAAE,QAAiB,EAAA;QACrE,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,MAAM,gBAAgB,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE;KAC5C;IAED,UAAU,CAAC,QAAQ,EAAE,QAAkB,EAAA;QACrC,OAAO,QAAQ,KAAKC,OAAY,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAACA,OAAY,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAIA,OAAY,CAAC,UAAU,KAAK,KAAK;KAC7H;IAED,SAAS,GAAA;QACP,OAAOA,OAAY,CAAC,OAAO;KAC5B;CACF;;ACXM,MAAM,cAAc,GAAwB;IACjD,MAAM,WAAW,GAAA,GAAK;AAEtB,IAAA,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,KAAK,EAAA;QACnC,OAAO,QAAQ,IAAI,KAAK;KACzB;IAED,SAAS,GAAA;AACP,QAAA,OAAO,KAAK;KACb;CACF;;ACnBD,MAAM,eAAe,GAAG,osOAAosO;;MCa/sO,YAAY,iBAAAC,kBAAA,CAAA,MAAA,YAAA,SAAA,WAAA,CAAA;;;;;;;;AAEf,IAAA,GAAG;AACH,IAAA,IAAI;IACJ,QAAQ,GAAG,KAAK;IACW,kBAAkB,GAAG,EAAE;IAElD,OAAO,GAAsC,MAAM;IACnD,aAAa,GAAwB,cAAc;IACnD,OAAO,GAAG,KAAK;AAEvB,IAAA,MAAM,iBAAiB,GAAA;QACrB,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;AACtC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE;AAEnC,QAAA,QAAQ,IAAI,CAAC,OAAO;AAClB,YAAA,KAAK,MAAM;AACT,gBAAA,IAAI,CAAC,aAAa,GAAG,WAAW;gBAChC;AACF,YAAA,KAAK,SAAS;AACZ,gBAAA,IAAI,CAAC,aAAa,GAAG,cAAc;gBACnC;AACF,YAAA,KAAK,YAAY;AACf,gBAAA,IAAI,CAAC,aAAa,GAAG,iBAAiB;gBACtC;AACF,YAAA;AACE,gBAAA,IAAI,CAAC,aAAa,GAAG,cAAc;;;IAIjC,aAAa,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC;AAAE,YAAA,OAAO,MAAM;AAEvF,QAAA,IAAI,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;AAAE,YAAA,OAAO,SAAS;AAElD,QAAA,IAAI,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC;AAAE,YAAA,OAAO,YAAY;AAE7D,QAAA,MAAM,IAAI,KAAK,CACb,oIAAoI,CACrI;;AAGK,IAAA,WAAW,GAAG,OAAO,KAAiB,KAAI;AAChD,QAAA,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC;AAChE,KAAC;IAEO,UAAU,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC;;IAGvD,SAAS,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;;IAG/B,aAAa,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE;AACpC,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC;;AAE9D,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,OAAO,IAAI,CAAC,IAAI;;AAGlB,QAAA,OAAO,CAAC,CAAC,gBAAgB,CAAC;;IAGpB,gBAAgB,GAAA;AACtB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE;QAEhC,IAAI,OAAO,EAAE;AACX,YAAA,OAAO,oBAAa;;AAGtB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,OAAO,eAAQ;;AAGjB,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE;;IAG7B,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AACjF,YAAA,OAAO,IAAI;;AAGb,QAAA,MAAM,aAAa,GAAG;AACpB,YAAA,IAAI,CAAC,kBAAkB;YACvB,IAAI,CAAC,OAAO,KAAK,MAAM,GAAG,yBAAyB,GAAG,EAAE;YACxD,qDAAqD;AACtD,SAAA,CAAC,IAAI,CAAC,GAAG,CAAC;AAEX,QAAA,MAAM,WAAW,GAA4B;AAC3C,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,IAAI,EAAE,CAAA,EAAG,IAAI,CAAC,OAAO,CAAgB,cAAA,CAAA;YACrC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE;AAC/C,YAAA,KAAK,EAAE,aAAa;YACpB,OAAO,EAAE,IAAI,CAAC,WAAW;AACzB,YAAA,WAAW,EAAE,QAAQ;SACtB;AAED,QAAA,OAAO,CAAA,CAAA,QAAA,EAAA,EAAA,GAAY,WAAW,EAAG,EAAA,IAAI,CAAC,gBAAgB,EAAE,CAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["authState","profileState","__stencil_proxyCustomElement"],"sources":["src/auth/components/submit-button/auth-submit-button.ts","src/newsletter/components/submit-button/newsletter-submit-button.ts","src/profile/components/submit-button/profile-submit-button.ts","src/shared/components/submit-button/context.ts","src/shared/components/submit-button/submit-button.css?tag=u-submit-button","src/shared/components/submit-button/submit-button.tsx"],"sourcesContent":["import { t } from \"../../../i18n\";\nimport type { SubmitButtonContext } from \"../../../shared/components/submit-button/context\";\nimport { authState } from \"../../store/auth-store\";\nimport { getParentSigninStep } from \"../helpers\";\n\nexport type AuthButtonFor = \"email\" | \"password\" | \"resetPassword\";\n\nexport const authContext: SubmitButtonContext<AuthButtonFor> = {\n handleClick: async (event: MouseEvent, el: HTMLElement, _forProp?: AuthButtonFor) => {\n event.preventDefault();\n await getParentSigninStep(el)?.submit();\n },\n\n isDisabled(forProp?: AuthButtonFor, disabled?: boolean): boolean {\n if (disabled || authState.loading) return true;\n\n if (authState.step === \"email\" && forProp === \"email\") {\n return authState.email === \"\";\n }\n\n if (authState.step === \"verification\" && forProp === \"password\") {\n return authState.password === \"\";\n }\n\n if (authState.step === \"reset-password\" && forProp === \"resetPassword\") {\n return !authState.resetPassword.newPassword || !authState.resetPassword.passwordConfirmation;\n }\n\n return false;\n },\n\n isLoading(): boolean {\n return authState.loading;\n },\n\n getButtonText(forProp?: AuthButtonFor, text?: string): string {\n if (text) return text;\n\n switch (authState.step) {\n case \"email\":\n return t(\"buttons.continue\");\n case \"verification\":\n if (forProp === \"password\") {\n return t(\"auth.password.button_text\", { defaultValue: \"Sign In with Password\" });\n }\n return t(\"buttons.submit\");\n case \"reset-password\":\n if (forProp === \"resetPassword\") {\n return t(\"auth.resetPassword.button_text_set\", { defaultValue: \"Set Password\" });\n }\n return t(\"buttons.submit\");\n default:\n return t(\"buttons.submit\");\n }\n },\n\n shouldRender(forProp?: AuthButtonFor): boolean {\n if (!authState.availableLoginOptions?.password && forProp === \"password\") {\n return false;\n }\n\n if (authState.step === \"email\") {\n return forProp === \"email\";\n }\n\n if (authState.step === \"verification\") {\n return forProp === \"password\" && authState.magicCodeStep !== \"sent\";\n }\n\n if (authState.step === \"reset-password\") {\n return forProp === \"resetPassword\";\n }\n\n return false;\n },\n};\n","import type { SubmitButtonContext } from \"../../../shared/components/submit-button/context\";\nimport { newsletterStore } from \"../../store/newsletter-store\";\nimport { getParentNewsletterRoot } from \"../helpers\";\n\nexport type NewsletterButtonFor = \"login\" | \"create\";\n\nexport const newsletterContext: SubmitButtonContext<NewsletterButtonFor> = {\n handleClick: async (event: MouseEvent, el: HTMLElement, forProp?: NewsletterButtonFor) => {\n event.preventDefault();\n return await getParentNewsletterRoot(el)?.submit(forProp);\n },\n\n isDisabled(forProp, disabled?: boolean): boolean {\n if (forProp === \"login\") {\n return disabled || !newsletterStore.state.email;\n }\n\n return disabled || !newsletterStore.state.email || Object.keys(newsletterStore.state.checkedNewsletters).length === 0;\n },\n\n isLoading(): boolean {\n return false;\n },\n};\n","import type { SubmitButtonContext } from \"../../../shared/components/submit-button/context\";\nimport { state as profileState } from \"../../store/profile-store\";\n\nfunction getParentProfile(el: HTMLElement) {\n return el.closest(\"u-profile\") as HTMLUProfileElement | null;\n}\n\nexport const profileContext: SubmitButtonContext = {\n async handleClick(event: MouseEvent, el: HTMLElement, _forProp?: string) {\n event.preventDefault();\n await getParentProfile(el)?.submitProfile();\n },\n\n isDisabled(_forProp, disabled?: boolean): boolean {\n return disabled || (profileState.errors && Object.keys(profileState.errors).length > 0) || profileState.phoneValid === false;\n },\n\n isLoading(): boolean {\n return profileState.loading;\n },\n};\n","export interface SubmitButtonContext<ForContext = string> {\n init?(): Promise<void>;\n handleClick(event: MouseEvent, el: HTMLElement, forProp?: ForContext): Promise<void>;\n isDisabled(forProp?: ForContext, disabled?: boolean): boolean;\n isLoading(): boolean;\n getButtonText?(forProp?: ForContext, text?: string): string;\n shouldRender?(forProp?: ForContext): boolean;\n}\n\nexport const defaultContext: SubmitButtonContext = {\n async handleClick() {},\n\n isDisabled(_forProp, disabled = false): boolean {\n return disabled || false;\n },\n\n isLoading(): boolean {\n return false;\n },\n};\n","","import { Component, Element, h, Prop } from \"@stencil/core\";\nimport { type AuthButtonFor, authContext } from \"../../../auth/components/submit-button/auth-submit-button\";\nimport { t } from \"../../../i18n\";\nimport { type NewsletterButtonFor, newsletterContext } from \"../../../newsletter/components/submit-button/newsletter-submit-button\";\nimport { profileContext } from \"../../../profile/components/submit-button/profile-submit-button\";\nimport { hasSlotContent } from \"../../component-utils\";\nimport { defaultContext, type SubmitButtonContext } from \"./context\";\n\n@Component({\n tag: \"u-submit-button\",\n styleUrl: \"submit-button.css\",\n shadow: false,\n})\nexport class SubmitButton {\n @Element() el!: HTMLElement;\n @Prop() for?: AuthButtonFor | NewsletterButtonFor;\n @Prop() text?: string;\n @Prop() disabled = false;\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n\n private context: \"auth\" | \"profile\" | \"newsletter\" = \"auth\";\n private contextModule: SubmitButtonContext = defaultContext;\n private hasSlot = false;\n\n async componentWillLoad() {\n this.hasSlot = hasSlotContent(this.el);\n this.context = this.detectContext();\n\n switch (this.context) {\n case \"auth\":\n this.contextModule = authContext;\n break;\n case \"profile\":\n this.contextModule = profileContext;\n break;\n case \"newsletter\":\n this.contextModule = newsletterContext;\n break;\n default:\n this.contextModule = defaultContext;\n }\n }\n\n private detectContext(): \"auth\" | \"profile\" | \"newsletter\" {\n if (this.el.closest(\"u-signin-root\") || this.el.closest(\"u-signin-step\")) return \"auth\";\n\n if (this.el.closest(\"u-profile\")) return \"profile\";\n\n if (this.el.closest(\"u-newsletter-root\")) return \"newsletter\";\n\n throw new Error(\n \"No context found for submit button. Make sure you are using the component within a u-signin-root, u-profile, or u-newsletter-root.\",\n );\n }\n\n private handleClick = async (event: MouseEvent) => {\n await this.contextModule.handleClick(event, this.el, this.for);\n };\n\n private isDisabled(): boolean {\n return this.contextModule.isDisabled(this.for, this.disabled);\n }\n\n private isLoading(): boolean {\n return this.contextModule.isLoading();\n }\n\n private getButtonText(): string {\n if (this.contextModule.getButtonText) {\n return this.contextModule.getButtonText(this.for, this.text);\n }\n if (this.text) {\n return this.text;\n }\n\n return t(\"buttons.submit\");\n }\n\n private getButtonContent() {\n const loading = this.isLoading();\n\n if (loading) {\n return <u-spinner />;\n }\n\n if (this.hasSlot) {\n return <slot />;\n }\n\n return this.getButtonText();\n }\n\n render() {\n if (this.contextModule.shouldRender && !this.contextModule.shouldRender(this.for)) {\n return null;\n }\n\n const buttonClasses = [\n this.componentClassName,\n this.context === \"auth\" ? \"u:flex u:justify-center\" : \"\",\n \"u:disabled:opacity-50 u:disabled:cursor-not-allowed\",\n ].join(\" \");\n\n const buttonProps: Record<string, unknown> = {\n type: \"submit\",\n part: `${this.context}-submit-button`,\n disabled: this.isDisabled() || this.isLoading(),\n class: buttonClasses,\n onClick: this.handleClick,\n \"aria-live\": \"polite\",\n };\n\n return <button {...buttonProps}>{this.getButtonContent()}</button>;\n }\n}\n"],"version":3}
1
+ {"file":"submit-button.js","mappings":";;;;;;;;;;AAOO,MAAM,WAAW,GAAuC;IAC7D,WAAW,EAAE,OAAO,KAAiB,EAAE,EAAe,EAAE,QAAwB,KAAI;QAClF,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,MAAM,mBAAmB,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE;KACxC;IAED,UAAU,CAAC,OAAuB,EAAE,QAAkB,EAAA;AACpD,QAAA,IAAI,QAAQ,IAAIA,KAAS,CAAC,OAAO;AAAE,YAAA,OAAO,IAAI;QAE9C,IAAIA,KAAS,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,KAAK,OAAO,EAAE;AACrD,YAAA,OAAOA,KAAS,CAAC,KAAK,KAAK,EAAE;;QAG/B,IAAIA,KAAS,CAAC,IAAI,KAAK,cAAc,IAAI,OAAO,KAAK,UAAU,EAAE;AAC/D,YAAA,OAAOA,KAAS,CAAC,QAAQ,KAAK,EAAE;;QAGlC,IAAIA,KAAS,CAAC,IAAI,KAAK,gBAAgB,IAAI,OAAO,KAAK,eAAe,EAAE;AACtE,YAAA,OAAO,CAACA,KAAS,CAAC,aAAa,CAAC,WAAW,IAAI,CAACA,KAAS,CAAC,aAAa,CAAC,oBAAoB;;AAG9F,QAAA,OAAO,KAAK;KACb;IAED,SAAS,GAAA;QACP,OAAOA,KAAS,CAAC,OAAO;KACzB;IAED,aAAa,CAAC,OAAuB,EAAE,IAAa,EAAA;AAClD,QAAA,IAAI,IAAI;AAAE,YAAA,OAAO,IAAI;AAErB,QAAA,QAAQA,KAAS,CAAC,IAAI;AACpB,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,CAAC,CAAC,kBAAkB,CAAC;AAC9B,YAAA,KAAK,cAAc;AACjB,gBAAA,IAAI,OAAO,KAAK,UAAU,EAAE;oBAC1B,OAAO,CAAC,CAAC,2BAA2B,EAAE,EAAE,YAAY,EAAE,uBAAuB,EAAE,CAAC;;AAElF,gBAAA,OAAO,CAAC,CAAC,gBAAgB,CAAC;AAC5B,YAAA,KAAK,gBAAgB;AACnB,gBAAA,IAAI,OAAO,KAAK,eAAe,EAAE;oBAC/B,OAAO,CAAC,CAAC,oCAAoC,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;;AAElF,gBAAA,OAAO,CAAC,CAAC,gBAAgB,CAAC;AAC5B,YAAA;AACE,gBAAA,OAAO,CAAC,CAAC,gBAAgB,CAAC;;KAE/B;AAED,IAAA,YAAY,CAAC,OAAuB,EAAA;QAClC,IAAI,CAACA,KAAS,CAAC,qBAAqB,EAAE,QAAQ,IAAI,OAAO,KAAK,UAAU,EAAE;AACxE,YAAA,OAAO,KAAK;;AAGd,QAAA,IAAIA,KAAS,CAAC,IAAI,KAAK,OAAO,EAAE;YAC9B,OAAO,OAAO,KAAK,OAAO;;AAG5B,QAAA,IAAIA,KAAS,CAAC,IAAI,KAAK,cAAc,EAAE;YACrC,OAAO,OAAO,KAAK,UAAU,IAAIA,KAAS,CAAC,aAAa,KAAK,MAAM;;AAGrE,QAAA,IAAIA,KAAS,CAAC,IAAI,KAAK,gBAAgB,EAAE;YACvC,OAAO,OAAO,KAAK,eAAe;;AAGpC,QAAA,OAAO,KAAK;KACb;CACF;;ACrEM,MAAM,iBAAiB,GAA6C;IACzE,WAAW,EAAE,OAAO,KAAiB,EAAE,EAAe,EAAE,OAA6B,KAAI;QACvF,KAAK,CAAC,cAAc,EAAE;QACtB,OAAO,MAAM,uBAAuB,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;KAC1D;IAED,UAAU,CAAC,OAAO,EAAE,QAAkB,EAAA;AACpC,QAAA,IAAI,OAAO,KAAK,OAAO,EAAE;YACvB,OAAO,QAAQ,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK;;QAGjD,OAAO,QAAQ,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,MAAM,KAAK,CAAC;KACtH;IAED,SAAS,GAAA;AACP,QAAA,OAAO,KAAK;KACb;CACF;;ACpBD,SAAS,gBAAgB,CAAC,EAAe,EAAA;AACvC,IAAA,OAAO,EAAE,CAAC,OAAO,CAAC,WAAW,CAA+B;AAC9D;AAEO,MAAM,cAAc,GAAwB;AACjD,IAAA,MAAM,WAAW,CAAC,KAAiB,EAAE,EAAe,EAAE,QAAiB,EAAA;QACrE,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,MAAM,gBAAgB,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE;KAC5C;IAED,UAAU,CAAC,QAAQ,EAAE,QAAkB,EAAA;QACrC,OAAO,QAAQ,KAAKC,OAAY,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAACA,OAAY,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAIA,OAAY,CAAC,UAAU,KAAK,KAAK;KAC7H;IAED,SAAS,GAAA;QACP,OAAOA,OAAY,CAAC,OAAO;KAC5B;CACF;;ACXM,MAAM,cAAc,GAAwB;IACjD,MAAM,WAAW,GAAA,GAAK;AAEtB,IAAA,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,KAAK,EAAA;QACnC,OAAO,QAAQ,IAAI,KAAK;KACzB;IAED,SAAS,GAAA;AACP,QAAA,OAAO,KAAK;KACb;CACF;;ACnBD,MAAM,eAAe,GAAG,uyOAAuyO;;MCalzO,YAAY,iBAAAC,kBAAA,CAAA,MAAA,YAAA,SAAA,WAAA,CAAA;;;;;;;;AAEf,IAAA,GAAG;AACH,IAAA,IAAI;IACJ,QAAQ,GAAG,KAAK;IACW,kBAAkB,GAAG,EAAE;IAElD,OAAO,GAAsC,MAAM;IACnD,aAAa,GAAwB,cAAc;IACnD,OAAO,GAAG,KAAK;AAEvB,IAAA,MAAM,iBAAiB,GAAA;QACrB,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;AACtC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE;AAEnC,QAAA,QAAQ,IAAI,CAAC,OAAO;AAClB,YAAA,KAAK,MAAM;AACT,gBAAA,IAAI,CAAC,aAAa,GAAG,WAAW;gBAChC;AACF,YAAA,KAAK,SAAS;AACZ,gBAAA,IAAI,CAAC,aAAa,GAAG,cAAc;gBACnC;AACF,YAAA,KAAK,YAAY;AACf,gBAAA,IAAI,CAAC,aAAa,GAAG,iBAAiB;gBACtC;AACF,YAAA;AACE,gBAAA,IAAI,CAAC,aAAa,GAAG,cAAc;;;IAIjC,aAAa,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC;AAAE,YAAA,OAAO,MAAM;AAEvF,QAAA,IAAI,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;AAAE,YAAA,OAAO,SAAS;AAElD,QAAA,IAAI,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC;AAAE,YAAA,OAAO,YAAY;AAE7D,QAAA,MAAM,IAAI,KAAK,CACb,oIAAoI,CACrI;;AAGK,IAAA,WAAW,GAAG,OAAO,KAAiB,KAAI;AAChD,QAAA,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC;AAChE,KAAC;IAEO,UAAU,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC;;IAGvD,SAAS,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;;IAG/B,aAAa,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE;AACpC,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC;;AAE9D,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,OAAO,IAAI,CAAC,IAAI;;AAGlB,QAAA,OAAO,CAAC,CAAC,gBAAgB,CAAC;;IAGpB,gBAAgB,GAAA;AACtB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE;QAEhC,IAAI,OAAO,EAAE;AACX,YAAA,OAAO,oBAAa;;AAGtB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,OAAO,eAAQ;;AAGjB,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE;;IAG7B,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AACjF,YAAA,OAAO,IAAI;;AAGb,QAAA,MAAM,aAAa,GAAG;AACpB,YAAA,IAAI,CAAC,kBAAkB;YACvB,IAAI,CAAC,OAAO,KAAK,MAAM,GAAG,yBAAyB,GAAG,EAAE;YACxD,qDAAqD;AACtD,SAAA,CAAC,IAAI,CAAC,GAAG,CAAC;AAEX,QAAA,MAAM,WAAW,GAA4B;AAC3C,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,IAAI,EAAE,CAAA,EAAG,IAAI,CAAC,OAAO,CAAgB,cAAA,CAAA;YACrC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE;AAC/C,YAAA,KAAK,EAAE,aAAa;YACpB,OAAO,EAAE,IAAI,CAAC,WAAW;AACzB,YAAA,WAAW,EAAE,QAAQ;SACtB;AAED,QAAA,OAAO,CAAA,CAAA,QAAA,EAAA,EAAA,GAAY,WAAW,EAAG,EAAA,IAAI,CAAC,gBAAgB,EAAE,CAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["authState","profileState","__stencil_proxyCustomElement"],"sources":["src/auth/components/submit-button/auth-submit-button.ts","src/newsletter/components/submit-button/newsletter-submit-button.ts","src/profile/components/submit-button/profile-submit-button.ts","src/shared/components/submit-button/context.ts","src/shared/components/submit-button/submit-button.css?tag=u-submit-button","src/shared/components/submit-button/submit-button.tsx"],"sourcesContent":["import { t } from \"../../../i18n\";\nimport type { SubmitButtonContext } from \"../../../shared/components/submit-button/context\";\nimport { authState } from \"../../store/auth-store\";\nimport { getParentSigninStep } from \"../helpers\";\n\nexport type AuthButtonFor = \"email\" | \"password\" | \"resetPassword\";\n\nexport const authContext: SubmitButtonContext<AuthButtonFor> = {\n handleClick: async (event: MouseEvent, el: HTMLElement, _forProp?: AuthButtonFor) => {\n event.preventDefault();\n await getParentSigninStep(el)?.submit();\n },\n\n isDisabled(forProp?: AuthButtonFor, disabled?: boolean): boolean {\n if (disabled || authState.loading) return true;\n\n if (authState.step === \"email\" && forProp === \"email\") {\n return authState.email === \"\";\n }\n\n if (authState.step === \"verification\" && forProp === \"password\") {\n return authState.password === \"\";\n }\n\n if (authState.step === \"reset-password\" && forProp === \"resetPassword\") {\n return !authState.resetPassword.newPassword || !authState.resetPassword.passwordConfirmation;\n }\n\n return false;\n },\n\n isLoading(): boolean {\n return authState.loading;\n },\n\n getButtonText(forProp?: AuthButtonFor, text?: string): string {\n if (text) return text;\n\n switch (authState.step) {\n case \"email\":\n return t(\"buttons.continue\");\n case \"verification\":\n if (forProp === \"password\") {\n return t(\"auth.password.button_text\", { defaultValue: \"Sign In with Password\" });\n }\n return t(\"buttons.submit\");\n case \"reset-password\":\n if (forProp === \"resetPassword\") {\n return t(\"auth.resetPassword.button_text_set\", { defaultValue: \"Set Password\" });\n }\n return t(\"buttons.submit\");\n default:\n return t(\"buttons.submit\");\n }\n },\n\n shouldRender(forProp?: AuthButtonFor): boolean {\n if (!authState.availableLoginOptions?.password && forProp === \"password\") {\n return false;\n }\n\n if (authState.step === \"email\") {\n return forProp === \"email\";\n }\n\n if (authState.step === \"verification\") {\n return forProp === \"password\" && authState.magicCodeStep !== \"sent\";\n }\n\n if (authState.step === \"reset-password\") {\n return forProp === \"resetPassword\";\n }\n\n return false;\n },\n};\n","import type { SubmitButtonContext } from \"../../../shared/components/submit-button/context\";\nimport { newsletterStore } from \"../../store/newsletter-store\";\nimport { getParentNewsletterRoot } from \"../helpers\";\n\nexport type NewsletterButtonFor = \"login\" | \"create\";\n\nexport const newsletterContext: SubmitButtonContext<NewsletterButtonFor> = {\n handleClick: async (event: MouseEvent, el: HTMLElement, forProp?: NewsletterButtonFor) => {\n event.preventDefault();\n return await getParentNewsletterRoot(el)?.submit(forProp);\n },\n\n isDisabled(forProp, disabled?: boolean): boolean {\n if (forProp === \"login\") {\n return disabled || !newsletterStore.state.email;\n }\n\n return disabled || !newsletterStore.state.email || Object.keys(newsletterStore.state.checkedNewsletters).length === 0;\n },\n\n isLoading(): boolean {\n return false;\n },\n};\n","import type { SubmitButtonContext } from \"../../../shared/components/submit-button/context\";\nimport { state as profileState } from \"../../store/profile-store\";\n\nfunction getParentProfile(el: HTMLElement) {\n return el.closest(\"u-profile\") as HTMLUProfileElement | null;\n}\n\nexport const profileContext: SubmitButtonContext = {\n async handleClick(event: MouseEvent, el: HTMLElement, _forProp?: string) {\n event.preventDefault();\n await getParentProfile(el)?.submitProfile();\n },\n\n isDisabled(_forProp, disabled?: boolean): boolean {\n return disabled || (profileState.errors && Object.keys(profileState.errors).length > 0) || profileState.phoneValid === false;\n },\n\n isLoading(): boolean {\n return profileState.loading;\n },\n};\n","export interface SubmitButtonContext<ForContext = string> {\n init?(): Promise<void>;\n handleClick(event: MouseEvent, el: HTMLElement, forProp?: ForContext): Promise<void>;\n isDisabled(forProp?: ForContext, disabled?: boolean): boolean;\n isLoading(): boolean;\n getButtonText?(forProp?: ForContext, text?: string): string;\n shouldRender?(forProp?: ForContext): boolean;\n}\n\nexport const defaultContext: SubmitButtonContext = {\n async handleClick() {},\n\n isDisabled(_forProp, disabled = false): boolean {\n return disabled || false;\n },\n\n isLoading(): boolean {\n return false;\n },\n};\n","","import { Component, Element, h, Prop } from \"@stencil/core\";\nimport { type AuthButtonFor, authContext } from \"../../../auth/components/submit-button/auth-submit-button\";\nimport { t } from \"../../../i18n\";\nimport { type NewsletterButtonFor, newsletterContext } from \"../../../newsletter/components/submit-button/newsletter-submit-button\";\nimport { profileContext } from \"../../../profile/components/submit-button/profile-submit-button\";\nimport { hasSlotContent } from \"../../component-utils\";\nimport { defaultContext, type SubmitButtonContext } from \"./context\";\n\n@Component({\n tag: \"u-submit-button\",\n styleUrl: \"submit-button.css\",\n shadow: false,\n})\nexport class SubmitButton {\n @Element() el!: HTMLElement;\n @Prop() for?: AuthButtonFor | NewsletterButtonFor;\n @Prop() text?: string;\n @Prop() disabled = false;\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n\n private context: \"auth\" | \"profile\" | \"newsletter\" = \"auth\";\n private contextModule: SubmitButtonContext = defaultContext;\n private hasSlot = false;\n\n async componentWillLoad() {\n this.hasSlot = hasSlotContent(this.el);\n this.context = this.detectContext();\n\n switch (this.context) {\n case \"auth\":\n this.contextModule = authContext;\n break;\n case \"profile\":\n this.contextModule = profileContext;\n break;\n case \"newsletter\":\n this.contextModule = newsletterContext;\n break;\n default:\n this.contextModule = defaultContext;\n }\n }\n\n private detectContext(): \"auth\" | \"profile\" | \"newsletter\" {\n if (this.el.closest(\"u-signin-root\") || this.el.closest(\"u-signin-step\")) return \"auth\";\n\n if (this.el.closest(\"u-profile\")) return \"profile\";\n\n if (this.el.closest(\"u-newsletter-root\")) return \"newsletter\";\n\n throw new Error(\n \"No context found for submit button. Make sure you are using the component within a u-signin-root, u-profile, or u-newsletter-root.\",\n );\n }\n\n private handleClick = async (event: MouseEvent) => {\n await this.contextModule.handleClick(event, this.el, this.for);\n };\n\n private isDisabled(): boolean {\n return this.contextModule.isDisabled(this.for, this.disabled);\n }\n\n private isLoading(): boolean {\n return this.contextModule.isLoading();\n }\n\n private getButtonText(): string {\n if (this.contextModule.getButtonText) {\n return this.contextModule.getButtonText(this.for, this.text);\n }\n if (this.text) {\n return this.text;\n }\n\n return t(\"buttons.submit\");\n }\n\n private getButtonContent() {\n const loading = this.isLoading();\n\n if (loading) {\n return <u-spinner />;\n }\n\n if (this.hasSlot) {\n return <slot />;\n }\n\n return this.getButtonText();\n }\n\n render() {\n if (this.contextModule.shouldRender && !this.contextModule.shouldRender(this.for)) {\n return null;\n }\n\n const buttonClasses = [\n this.componentClassName,\n this.context === \"auth\" ? \"u:flex u:justify-center\" : \"\",\n \"u:disabled:opacity-50 u:disabled:cursor-not-allowed\",\n ].join(\" \");\n\n const buttonProps: Record<string, unknown> = {\n type: \"submit\",\n part: `${this.context}-submit-button`,\n disabled: this.isDisabled() || this.isLoading(),\n class: buttonClasses,\n onClick: this.handleClick,\n \"aria-live\": \"polite\",\n };\n\n return <button {...buttonProps}>{this.getButtonContent()}</button>;\n }\n}\n"],"version":3}
@@ -10,6 +10,7 @@ const PREDEFINED_CONDITIONS = {
10
10
  "auth.passwordEnabled": () => state.availableLoginOptions?.password,
11
11
  "auth.magicCodeEnabled": () => state.availableLoginOptions?.magic_link,
12
12
  "auth.socialLoginsEnabled": () => (state.availableLoginOptions?.social_logins?.length ?? 0) > 0,
13
+ "auth.hasSocialLogin": (provider) => state.availableLoginOptions?.social_logins?.includes(provider) ?? false,
13
14
  "auth.loading": () => state.loading,
14
15
  "auth.authenticated": () => state.authenticated,
15
16
  "auth.magicCodeSent": () => state.magicCodeStep === "sent" || state.magicCodeStep === "requested",
@@ -87,10 +88,8 @@ const ConditionalRender = /*@__PURE__*/ proxyCustomElement(class ConditionalRend
87
88
  return this.not ? !result : result;
88
89
  }
89
90
  render() {
90
- if (!this.shouldRender()) {
91
- return null;
92
- }
93
- return (h(Host, { "aria-live": "polite" }, h("slot", null)));
91
+ const visible = this.shouldRender();
92
+ return (h(Host, { key: '9ccf807174a600e86a593f812c3ad89d7f7a97ad', hidden: !visible, style: { display: visible ? "contents" : undefined }, "aria-hidden": !visible ? "true" : null, "aria-live": "polite" }, h("slot", { key: '6747ba1cbe28344c1f5a0258843948a046644471' })));
94
93
  }
95
94
  }, [769, "u-conditional-render", {
96
95
  "when": [1],
@@ -1 +1 @@
1
- {"file":"u-conditional-render.js","mappings":"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","names":["authState","NewsletterHelpers.isSubscribed","NewsletterHelpers.isConfirmed","__stencil_proxyCustomElement"],"sources":["src/shared/components/conditional-render/conditional-render.tsx"],"sourcesContent":["import { Component, Host, h, Prop } from \"@stencil/core\";\nimport { type AuthState, authState } from \"../../../auth/store/auth-store\";\nimport { UnidyComponent } from \"../../../logger\";\nimport * as NewsletterHelpers from \"../../../newsletter/newsletter-helpers\";\nimport { newsletterStore } from \"../../../newsletter/store/newsletter-store\";\nimport { profileStore } from \"../../../profile/store/profile-store\";\n\nconst PREDEFINED_CONDITIONS: Record<string, (...args: unknown[]) => unknown> = {\n \"auth.passkeyEnabled\": () => authState.availableLoginOptions?.passkey,\n \"auth.passwordEnabled\": () => authState.availableLoginOptions?.password,\n \"auth.magicCodeEnabled\": () => authState.availableLoginOptions?.magic_link,\n \"auth.socialLoginsEnabled\": () => (authState.availableLoginOptions?.social_logins?.length ?? 0) > 0,\n \"auth.loading\": () => authState.loading,\n \"auth.authenticated\": () => authState.authenticated,\n \"auth.magicCodeSent\": () => authState.magicCodeStep === \"sent\" || authState.magicCodeStep === \"requested\",\n \"auth.magicCodeRequested\": () => authState.magicCodeStep === \"requested\",\n \"auth.resetPasswordSent\": () => authState.resetPassword.step === \"sent\" || authState.resetPassword.step === \"requested\",\n \"auth.resetPasswordRequested\": () => authState.resetPassword.step === \"requested\",\n\n \"newsletter.hasCheckedNewsletters\": () => Object.keys(newsletterStore.state.checkedNewsletters).length > 0,\n \"newsletter.hasPreferenceToken\": () => !!newsletterStore.state.preferenceToken,\n \"newsletter.hasEmail\": () => !!newsletterStore.state.email,\n \"newsletter.subscribed\": (newsletterInternalName: string) => NewsletterHelpers.isSubscribed(newsletterInternalName),\n \"newsletter.confirmed\": (newsletterInternalName: string) => NewsletterHelpers.isConfirmed(newsletterInternalName),\n \"newsletter.loggedIn\": () => newsletterStore.state.isAuthenticated || newsletterStore.state.preferenceToken !== \"\",\n\n \"profile.loading\": () => profileStore.state.loading,\n \"profile.hasErrors\": () => Object.keys(profileStore.state.errors).some((key) => profileStore.state.errors[key] !== null),\n \"profile.hasFlashErrors\": () => Object.keys(profileStore.state.flashErrors).some((key) => profileStore.state.flashErrors[key] !== null),\n \"profile.phoneValid\": () => profileStore.state.phoneValid,\n \"profile.hasData\": () => Object.keys(profileStore.state.data).length > 0,\n};\n\nfunction isTruthy(value: unknown): boolean {\n return Boolean(value);\n}\n\n@Component({\n tag: \"u-conditional-render\",\n shadow: true,\n})\nexport class ConditionalRender extends UnidyComponent {\n @Prop() when?: string; // condition to check\n @Prop() is?: string; // optional value to compare against\n @Prop() not = false;\n @Prop() conditionFunction?: (state: AuthState) => boolean;\n\n private evaluateCondition(): unknown {\n const predefinedFunction = PREDEFINED_CONDITIONS[this.when];\n if (predefinedFunction) {\n return predefinedFunction(this.is);\n }\n\n return null;\n }\n\n private shouldRender(): boolean {\n if (!this.when && !this.conditionFunction) {\n this.logger.error(\"[u-conditional-render] Either 'when' or 'conditionFunction' prop is required\");\n }\n\n if (this.conditionFunction) {\n const result = this.conditionFunction(authState);\n return this.not ? !result : result;\n }\n\n const value = this.evaluateCondition();\n if (value === null) {\n return false;\n }\n\n const normalizedIs = this.is?.toString().toLowerCase();\n let result: boolean;\n\n if (typeof value === \"boolean\") {\n if (normalizedIs === \"false\" || normalizedIs === \"disabled\") {\n result = !value;\n } else {\n result = value;\n }\n } else if (this.is === undefined) {\n result = isTruthy(value);\n } else if (normalizedIs === \"enabled\" || normalizedIs === \"true\") {\n result = isTruthy(value);\n } else if (normalizedIs === \"disabled\" || normalizedIs === \"false\") {\n result = !isTruthy(value);\n } else {\n result = String(value) === String(this.is); // to compare exact value\n }\n\n return this.not ? !result : result;\n }\n\n render() {\n if (!this.shouldRender()) {\n return null;\n }\n\n return (\n <Host aria-live=\"polite\">\n <slot />\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"u-conditional-render.js","mappings":";;;;;;;AAOA,MAAM,qBAAqB,GAAoD;IAC7E,qBAAqB,EAAE,MAAMA,KAAS,CAAC,qBAAqB,EAAE,OAAO;IACrE,sBAAsB,EAAE,MAAMA,KAAS,CAAC,qBAAqB,EAAE,QAAQ;IACvE,uBAAuB,EAAE,MAAMA,KAAS,CAAC,qBAAqB,EAAE,UAAU;AAC1E,IAAA,0BAA0B,EAAE,MAAM,CAACA,KAAS,CAAC,qBAAqB,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC;AACnG,IAAA,qBAAqB,EAAE,CAAC,QAAgB,KAAKA,KAAS,CAAC,qBAAqB,EAAE,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK;AACxH,IAAA,cAAc,EAAE,MAAMA,KAAS,CAAC,OAAO;AACvC,IAAA,oBAAoB,EAAE,MAAMA,KAAS,CAAC,aAAa;AACnD,IAAA,oBAAoB,EAAE,MAAMA,KAAS,CAAC,aAAa,KAAK,MAAM,IAAIA,KAAS,CAAC,aAAa,KAAK,WAAW;IACzG,yBAAyB,EAAE,MAAMA,KAAS,CAAC,aAAa,KAAK,WAAW;AACxE,IAAA,wBAAwB,EAAE,MAAMA,KAAS,CAAC,aAAa,CAAC,IAAI,KAAK,MAAM,IAAIA,KAAS,CAAC,aAAa,CAAC,IAAI,KAAK,WAAW;IACvH,6BAA6B,EAAE,MAAMA,KAAS,CAAC,aAAa,CAAC,IAAI,KAAK,WAAW;AAEjF,IAAA,kCAAkC,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,MAAM,GAAG,CAAC;IAC1G,+BAA+B,EAAE,MAAM,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,eAAe;IAC9E,qBAAqB,EAAE,MAAM,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK;IAC1D,uBAAuB,EAAE,CAAC,sBAA8B,KAAKC,YAA8B,CAAC,sBAAsB,CAAC;IACnH,sBAAsB,EAAE,CAAC,sBAA8B,KAAKC,WAA6B,CAAC,sBAAsB,CAAC;AACjH,IAAA,qBAAqB,EAAE,MAAM,eAAe,CAAC,KAAK,CAAC,eAAe,IAAI,eAAe,CAAC,KAAK,CAAC,eAAe,KAAK,EAAE;IAElH,iBAAiB,EAAE,MAAM,YAAY,CAAC,KAAK,CAAC,OAAO;AACnD,IAAA,mBAAmB,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;AACxH,IAAA,wBAAwB,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IACvI,oBAAoB,EAAE,MAAM,YAAY,CAAC,KAAK,CAAC,UAAU;AACzD,IAAA,iBAAiB,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;CACzE;AAED,SAAS,QAAQ,CAAC,KAAc,EAAA;AAC9B,IAAA,OAAO,OAAO,CAAC,KAAK,CAAC;AACvB;MAMa,iBAAkB,iBAAAC,kBAAA,CAAA,MAAA,iBAAA,SAAQ,cAAc,CAAA;;;;;;;;IAC3C,IAAI,CAAU;IACd,EAAE,CAAU;IACZ,GAAG,GAAG,KAAK;AACX,IAAA,iBAAiB;IAEjB,iBAAiB,GAAA;QACvB,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;QAC3D,IAAI,kBAAkB,EAAE;AACtB,YAAA,OAAO,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;;AAGpC,QAAA,OAAO,IAAI;;IAGL,YAAY,GAAA;QAClB,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AACzC,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8EAA8E,CAAC;;AAGnG,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAACH,KAAS,CAAC;AAChD,YAAA,OAAO,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM;;AAGpC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,EAAE;AACtC,QAAA,IAAI,KAAK,KAAK,IAAI,EAAE;AAClB,YAAA,OAAO,KAAK;;QAGd,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE;AACtD,QAAA,IAAI,MAAe;AAEnB,QAAA,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;YAC9B,IAAI,YAAY,KAAK,OAAO,IAAI,YAAY,KAAK,UAAU,EAAE;gBAC3D,MAAM,GAAG,CAAC,KAAK;;iBACV;gBACL,MAAM,GAAG,KAAK;;;AAEX,aAAA,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,EAAE;AAChC,YAAA,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC;;aACnB,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,MAAM,EAAE;AAChE,YAAA,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC;;aACnB,IAAI,YAAY,KAAK,UAAU,IAAI,YAAY,KAAK,OAAO,EAAE;AAClE,YAAA,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;;aACpB;AACL,YAAA,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;;AAG7C,QAAA,OAAO,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM;;IAGpC,MAAM,GAAA;AACJ,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE;AAEnC,QAAA,QACE,CAAC,CAAA,IAAI,EACH,EAAA,GAAA,EAAA,0CAAA,EAAA,MAAM,EAAE,CAAC,OAAO,EAChB,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,EAAE,EAAA,aAAA,EACvC,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,eAC3B,QAAQ,EAAA,EAElB,CAAQ,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACH;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["authState","NewsletterHelpers.isSubscribed","NewsletterHelpers.isConfirmed","__stencil_proxyCustomElement"],"sources":["src/shared/components/conditional-render/conditional-render.tsx"],"sourcesContent":["import { Component, Host, h, Prop } from \"@stencil/core\";\nimport { type AuthState, authState } from \"../../../auth/store/auth-store\";\nimport { UnidyComponent } from \"../../../logger\";\nimport * as NewsletterHelpers from \"../../../newsletter/newsletter-helpers\";\nimport { newsletterStore } from \"../../../newsletter/store/newsletter-store\";\nimport { profileStore } from \"../../../profile/store/profile-store\";\n\nconst PREDEFINED_CONDITIONS: Record<string, (...args: unknown[]) => unknown> = {\n \"auth.passkeyEnabled\": () => authState.availableLoginOptions?.passkey,\n \"auth.passwordEnabled\": () => authState.availableLoginOptions?.password,\n \"auth.magicCodeEnabled\": () => authState.availableLoginOptions?.magic_link,\n \"auth.socialLoginsEnabled\": () => (authState.availableLoginOptions?.social_logins?.length ?? 0) > 0,\n \"auth.hasSocialLogin\": (provider: string) => authState.availableLoginOptions?.social_logins?.includes(provider) ?? false,\n \"auth.loading\": () => authState.loading,\n \"auth.authenticated\": () => authState.authenticated,\n \"auth.magicCodeSent\": () => authState.magicCodeStep === \"sent\" || authState.magicCodeStep === \"requested\",\n \"auth.magicCodeRequested\": () => authState.magicCodeStep === \"requested\",\n \"auth.resetPasswordSent\": () => authState.resetPassword.step === \"sent\" || authState.resetPassword.step === \"requested\",\n \"auth.resetPasswordRequested\": () => authState.resetPassword.step === \"requested\",\n\n \"newsletter.hasCheckedNewsletters\": () => Object.keys(newsletterStore.state.checkedNewsletters).length > 0,\n \"newsletter.hasPreferenceToken\": () => !!newsletterStore.state.preferenceToken,\n \"newsletter.hasEmail\": () => !!newsletterStore.state.email,\n \"newsletter.subscribed\": (newsletterInternalName: string) => NewsletterHelpers.isSubscribed(newsletterInternalName),\n \"newsletter.confirmed\": (newsletterInternalName: string) => NewsletterHelpers.isConfirmed(newsletterInternalName),\n \"newsletter.loggedIn\": () => newsletterStore.state.isAuthenticated || newsletterStore.state.preferenceToken !== \"\",\n\n \"profile.loading\": () => profileStore.state.loading,\n \"profile.hasErrors\": () => Object.keys(profileStore.state.errors).some((key) => profileStore.state.errors[key] !== null),\n \"profile.hasFlashErrors\": () => Object.keys(profileStore.state.flashErrors).some((key) => profileStore.state.flashErrors[key] !== null),\n \"profile.phoneValid\": () => profileStore.state.phoneValid,\n \"profile.hasData\": () => Object.keys(profileStore.state.data).length > 0,\n};\n\nfunction isTruthy(value: unknown): boolean {\n return Boolean(value);\n}\n\n@Component({\n tag: \"u-conditional-render\",\n shadow: true,\n})\nexport class ConditionalRender extends UnidyComponent {\n @Prop() when?: string; // condition to check\n @Prop() is?: string; // optional value to compare against\n @Prop() not = false;\n @Prop() conditionFunction?: (state: AuthState) => boolean;\n\n private evaluateCondition(): unknown {\n const predefinedFunction = PREDEFINED_CONDITIONS[this.when];\n if (predefinedFunction) {\n return predefinedFunction(this.is);\n }\n\n return null;\n }\n\n private shouldRender(): boolean {\n if (!this.when && !this.conditionFunction) {\n this.logger.error(\"[u-conditional-render] Either 'when' or 'conditionFunction' prop is required\");\n }\n\n if (this.conditionFunction) {\n const result = this.conditionFunction(authState);\n return this.not ? !result : result;\n }\n\n const value = this.evaluateCondition();\n if (value === null) {\n return false;\n }\n\n const normalizedIs = this.is?.toString().toLowerCase();\n let result: boolean;\n\n if (typeof value === \"boolean\") {\n if (normalizedIs === \"false\" || normalizedIs === \"disabled\") {\n result = !value;\n } else {\n result = value;\n }\n } else if (this.is === undefined) {\n result = isTruthy(value);\n } else if (normalizedIs === \"enabled\" || normalizedIs === \"true\") {\n result = isTruthy(value);\n } else if (normalizedIs === \"disabled\" || normalizedIs === \"false\") {\n result = !isTruthy(value);\n } else {\n result = String(value) === String(this.is); // to compare exact value\n }\n\n return this.not ? !result : result;\n }\n\n render() {\n const visible = this.shouldRender();\n\n return (\n <Host\n hidden={!visible}\n style={{ display: visible ? \"contents\" : undefined }}\n aria-hidden={!visible ? \"true\" : null}\n aria-live=\"polite\"\n >\n <slot />\n </Host>\n );\n }\n}\n"],"version":3}
@@ -67,7 +67,7 @@ const EmailField = /*@__PURE__*/ proxyCustomElement(class EmailField extends HTM
67
67
  }
68
68
  render() {
69
69
  const placeholderText = t("auth.email.placeholder", { defaultValue: "Enter your email" });
70
- return (h("form", { key: '9ffd28a32bb27b888afd08621216e0e712b61f01', onSubmit: this.handleSubmit }, h("input", { key: 'd2f84ee9ac9b67de5819d32c36c4cc6438cf6039', id: "email", type: "email", value: this.store.state.email, autocomplete: "email", placeholder: placeholderText, disabled: this.isDisabled(), class: `${this.componentClassName} u:disabled:opacity-40 u:disabled:bg-gray-200 u:disabled:cursor-not-allowed`, onInput: this.handleInput, "aria-label": this.ariaLabel }), h("slot", { key: '8599149b12879b73c95f62d22b45743b1438143a' })));
70
+ return (h("form", { key: '435145b8bcd40a984052b2a64b144ebbe16b188c', onSubmit: this.handleSubmit }, h("input", { key: '3ca976a93d48c62617375add44dced059e961709', id: "email", type: "email", value: this.store.state.email, autocomplete: "email", placeholder: placeholderText, disabled: this.isDisabled(), class: `${this.componentClassName} u:disabled:opacity-40 u:disabled:bg-gray-200 u:disabled:cursor-not-allowed`, onInput: this.handleInput, "aria-label": this.ariaLabel }), h("slot", { key: '5eb4e5d803e9278cd603890269ff5e07457576f5' })));
71
71
  }
72
72
  static get style() { return emailFieldCss; }
73
73
  }, [772, "u-email-field", {
@@ -7,9 +7,9 @@ import { d as defineCustomElement$4 } from './raw-field.js';
7
7
  import { d as defineCustomElement$3 } from './spinner.js';
8
8
  import { d as defineCustomElement$2 } from './submit-button.js';
9
9
 
10
- const fullProfileCss = "/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer theme{:host,:root{--u-font-sans:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--u-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--u-default-font-family:var(--u-font-sans);--u-default-mono-font-family:var(--u-font-mono);--font-sans:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{border:0 solid;box-sizing:border-box;margin:0;padding:0}::file-selector-button{appearance:button;background-color:#0000;border:0 solid;border-radius:0;box-sizing:border-box;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;margin:0;margin-inline-end:4px;opacity:1;padding:0}:host,html{font-family:var(--u-default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:var(--u-default-font-feature-settings,normal);font-variation-settings:var(--u-default-font-variation-settings,normal);-webkit-text-size-adjust:100%;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);tab-size:4;-webkit-tap-highlight-color:transparent;line-height:1.5}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--u-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:var(--u-default-mono-font-feature-settings,normal);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-size:1em;font-variation-settings:var(--u-default-mono-font-variation-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}button,input,optgroup,select,textarea{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:currentColor;color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex;padding-block:0}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.u\\:flex{display:flex}.u\\:justify-end{justify-content:flex-end}} /*! 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{@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-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 base{}@layer components;@layer utilities{.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)}}@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}";
10
+ const fullProfileCss = "/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer theme{:host,:root{--u-font-sans:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--u-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--u-default-font-family:var(--u-font-sans);--u-default-mono-font-family:var(--u-font-mono);--font-sans:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{border:0 solid;box-sizing:border-box;margin:0;padding:0}::file-selector-button{appearance:button;background-color:#0000;border:0 solid;border-radius:0;box-sizing:border-box;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;margin:0;margin-inline-end:4px;opacity:1;padding:0}:host,html{font-family:var(--u-default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:var(--u-default-font-feature-settings,normal);font-variation-settings:var(--u-default-font-variation-settings,normal);-webkit-text-size-adjust:100%;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);tab-size:4;-webkit-tap-highlight-color:transparent;line-height:1.5}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--u-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:var(--u-default-mono-font-feature-settings,normal);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-size:1em;font-variation-settings:var(--u-default-mono-font-variation-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}button,input,optgroup,select,textarea{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:currentColor;color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex;padding-block:0}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.u\\:flex{display:flex}.u\\:justify-end{justify-content:flex-end}} /*! 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-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 base{}@layer components;@layer utilities{.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)}}@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}";
11
11
 
12
- const EXCLUDED_FIELDS = ['custom_attributes', 'email', 'preferred_language'];
12
+ const EXCLUDED_FIELDS = ["custom_attributes", "email", "preferred_language"];
13
13
  const FullProfile = /*@__PURE__*/ proxyCustomElement(class FullProfile extends HTMLElement {
14
14
  constructor(registerHost) {
15
15
  super();
@@ -32,7 +32,7 @@ const FullProfile = /*@__PURE__*/ proxyCustomElement(class FullProfile extends H
32
32
  ];
33
33
  }
34
34
  render() {
35
- return (h("u-profile", { key: 'e3e7e3d645c884f0fad805b4f40c6dd16319c33f' }, this.list().map((field) => (h("u-field", { key: field, field: field, countryCodeDisplayOption: this.countryCodeDisplayOption }))), h("div", { key: '81358b421d25d7c6fc77a8cce6c22af8121c73ff', class: "u:flex u:justify-end" }, h("u-submit-button", { key: '075a0b4531bfb34bfbe7a60cb61340aa95c8a5c5' }, t("buttons.submit")))));
35
+ return (h("u-profile", { key: '85d52bac75d98755574eb227b349cd28af5f8b51' }, this.list().map((field) => (h("u-field", { key: field, field: field, countryCodeDisplayOption: this.countryCodeDisplayOption }))), h("div", { key: 'ca747c266bc92693e84338f001b32dba9a17e9f6', class: "u:flex u:justify-end" }, h("u-submit-button", { key: '3e454be6dd2e81c4605c3b0806f904a41e01419a' }, t("buttons.submit")))));
36
36
  }
37
37
  static get style() { return fullProfileCss; }
38
38
  }, [768, "u-full-profile", {
@@ -1 +1 @@
1
- {"file":"u-full-profile.js","mappings":";;;;;;;;;AAAA,MAAM,cAAc,GAAG,u7NAAu7N;;ACI98N,MAAM,eAAe,GAAG,CAAC,mBAAmB,EAAE,OAAO,EAAE,oBAAoB,CAAC;MAO/D,WAAW,iBAAAA,kBAAA,CAAA,MAAA,WAAA,SAAA,WAAA,CAAA;;;;;;;AACd,IAAA,MAAM;IACN,wBAAwB,GAAsB,OAAO;IAErD,IAAI,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO,IAAI,CAAC;iBACT,KAAK,CAAC,GAAG;iBACT,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE;iBAC3B,MAAM,CAAC,OAAO,CAAC;;QAGpB,OAAO;YACL,GAAG,MAAM,CAAC,IAAI,CAACC,KAAY,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC3F,GAAG,MAAM,CAAC,IAAI,CAACA,KAAY,CAAC,IAAI,EAAE,iBAAiB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAA,kBAAA,EAAqB,KAAK,CAAA,CAAE,CAAC;SACxG;;IAGH,MAAM,GAAA;AACJ,QAAA,QACE,CAAA,CAAA,WAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,MACrB,CAAS,CAAA,SAAA,EAAA,EAAA,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE,IAAI,CAAC,wBAAwB,EAAI,CAAA,CAC/F,CAAC,EACF,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,sBAAsB,EAAA,EAC/B,CAAkB,CAAA,iBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAA,CAAC,CAAC,gBAAgB,CAAC,CAAmB,CACpD,CACI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","profileState"],"sources":["src/profile/components/full-profile/full-profile.css?tag=u-full-profile","src/profile/components/full-profile/full-profile.tsx"],"sourcesContent":["","import { Component, h, Prop } from \"@stencil/core\";\nimport { t } from \"../../../i18n\";\nimport { state as profileState } from \"../../store/profile-store\";\n\nconst EXCLUDED_FIELDS = ['custom_attributes', 'email', 'preferred_language']\n\n@Component({\n tag: \"u-full-profile\",\n styleUrl: \"full-profile.css\",\n shadow: false,\n})\nexport class FullProfile {\n @Prop() fields?: string;\n @Prop() countryCodeDisplayOption?: \"icon\" | \"label\" = \"label\";\n\n private list() {\n if (this.fields) {\n return this.fields\n .split(\",\")\n .map((field) => field.trim())\n .filter(Boolean);\n }\n\n return [\n ...Object.keys(profileState.data || {}).filter((field) => !EXCLUDED_FIELDS.includes(field)),\n ...Object.keys(profileState.data?.custom_attributes || {}).map((field) => `custom_attributes.${field}`),\n ];\n }\n\n render() {\n return (\n <u-profile>\n {this.list().map((field) => (\n <u-field key={field} field={field} countryCodeDisplayOption={this.countryCodeDisplayOption} />\n ))}\n <div class=\"u:flex u:justify-end\">\n <u-submit-button>{t(\"buttons.submit\")}</u-submit-button>\n </div>\n </u-profile>\n );\n }\n}\n"],"version":3}
1
+ {"file":"u-full-profile.js","mappings":";;;;;;;;;AAAA,MAAM,cAAc,GAAG,mnNAAmnN;;ACI1oN,MAAM,eAAe,GAAG,CAAC,mBAAmB,EAAE,OAAO,EAAE,oBAAoB,CAAC;MAO/D,WAAW,iBAAAA,kBAAA,CAAA,MAAA,WAAA,SAAA,WAAA,CAAA;;;;;;;AACd,IAAA,MAAM;IACN,wBAAwB,GAAsB,OAAO;IAErD,IAAI,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO,IAAI,CAAC;iBACT,KAAK,CAAC,GAAG;iBACT,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE;iBAC3B,MAAM,CAAC,OAAO,CAAC;;QAGpB,OAAO;YACL,GAAG,MAAM,CAAC,IAAI,CAACC,KAAY,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC3F,GAAG,MAAM,CAAC,IAAI,CAACA,KAAY,CAAC,IAAI,EAAE,iBAAiB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAA,kBAAA,EAAqB,KAAK,CAAA,CAAE,CAAC;SACxG;;IAGH,MAAM,GAAA;AACJ,QAAA,QACE,CAAA,CAAA,WAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,MACrB,CAAS,CAAA,SAAA,EAAA,EAAA,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE,IAAI,CAAC,wBAAwB,EAAI,CAAA,CAC/F,CAAC,EACF,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,sBAAsB,EAAA,EAC/B,CAAkB,CAAA,iBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAA,CAAC,CAAC,gBAAgB,CAAC,CAAmB,CACpD,CACI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","profileState"],"sources":["src/profile/components/full-profile/full-profile.css?tag=u-full-profile","src/profile/components/full-profile/full-profile.tsx"],"sourcesContent":["","import { Component, h, Prop } from \"@stencil/core\";\nimport { t } from \"../../../i18n\";\nimport { state as profileState } from \"../../store/profile-store\";\n\nconst EXCLUDED_FIELDS = [\"custom_attributes\", \"email\", \"preferred_language\"];\n\n@Component({\n tag: \"u-full-profile\",\n styleUrl: \"full-profile.css\",\n shadow: false,\n})\nexport class FullProfile {\n @Prop() fields?: string;\n @Prop() countryCodeDisplayOption?: \"icon\" | \"label\" = \"label\";\n\n private list() {\n if (this.fields) {\n return this.fields\n .split(\",\")\n .map((field) => field.trim())\n .filter(Boolean);\n }\n\n return [\n ...Object.keys(profileState.data || {}).filter((field) => !EXCLUDED_FIELDS.includes(field)),\n ...Object.keys(profileState.data?.custom_attributes || {}).map((field) => `custom_attributes.${field}`),\n ];\n }\n\n render() {\n return (\n <u-profile>\n {this.list().map((field) => (\n <u-field key={field} field={field} countryCodeDisplayOption={this.countryCodeDisplayOption} />\n ))}\n <div class=\"u:flex u:justify-end\">\n <u-submit-button>{t(\"buttons.submit\")}</u-submit-button>\n </div>\n </u-profile>\n );\n }\n}\n"],"version":3}
@@ -1,6 +1,7 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
2
2
  import { A as Auth } from './auth.js';
3
3
  import { t } from './i18n.js';
4
+ import { h as hasSlotContent } from './component-utils.js';
4
5
 
5
6
  const LogoutButton = /*@__PURE__*/ proxyCustomElement(class LogoutButton extends HTMLElement {
6
7
  constructor(registerHost) {
@@ -10,9 +11,14 @@ const LogoutButton = /*@__PURE__*/ proxyCustomElement(class LogoutButton extends
10
11
  }
11
12
  this.logout = createEvent(this, "logout", 7);
12
13
  }
14
+ get el() { return this; }
13
15
  componentClassName = "";
14
16
  reloadOnSuccess = true;
15
17
  logout;
18
+ hasSlot = false;
19
+ componentWillLoad() {
20
+ this.hasSlot = hasSlotContent(this.el);
21
+ }
16
22
  handleLogout = async () => {
17
23
  const authInstance = await Auth.getInstance();
18
24
  const result = await authInstance.logout();
@@ -24,9 +30,9 @@ const LogoutButton = /*@__PURE__*/ proxyCustomElement(class LogoutButton extends
24
30
  }
25
31
  };
26
32
  render() {
27
- return (h("button", { key: '88a2362402a6194c9dc685adbae55a9ac601e7d5', type: "button", class: this.componentClassName, onClick: this.handleLogout, "aria-live": "polite" }, t("buttons.logout")));
33
+ return (h("button", { key: '917635a20c0c3d272daad43bbbd5d3e38ec023a8', type: "button", class: this.componentClassName, onClick: this.handleLogout, "aria-live": "polite" }, this.hasSlot ? h("slot", null) : t("buttons.logout")));
28
34
  }
29
- }, [768, "u-logout-button", {
35
+ }, [772, "u-logout-button", {
30
36
  "componentClassName": [1, "class-name"],
31
37
  "reloadOnSuccess": [4, "reload-on-success"]
32
38
  }]);
@@ -1 +1 @@
1
- {"file":"u-logout-button.js","mappings":";;;;MAQa,YAAY,iBAAAA,kBAAA,CAAA,MAAA,YAAA,SAAA,WAAA,CAAA;;;;;;;;IACY,kBAAkB,GAAG,EAAE;IAClD,eAAe,GAAG,IAAI;AAErB,IAAA,MAAM;IAEP,YAAY,GAAG,YAAW;AAChC,QAAA,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE;AAE7C,QAAA,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE;AAE1C,QAAA,IAAI,MAAM,KAAK,IAAI,EAAE;AACnB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAElB,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,gBAAA,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;;;AAG9B,KAAC;IAED,MAAM,GAAA;AACJ,QAAA,QACE,CAAQ,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAA,WAAA,EAAY,QAAQ,EAAA,EACjG,CAAC,CAAC,gBAAgB,CAAC,CACb;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement"],"sources":["src/auth/components/logout-button/logout-button.tsx"],"sourcesContent":["import { Component, h, Prop, type EventEmitter, Event } from \"@stencil/core\";\nimport { Auth } from \"../../auth\";\nimport { t } from \"../../../i18n\";\n\n@Component({\n tag: \"u-logout-button\",\n shadow: false,\n})\nexport class LogoutButton {\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n @Prop() reloadOnSuccess = true;\n\n @Event() logout!: EventEmitter<void>;\n\n private handleLogout = async () => {\n const authInstance = await Auth.getInstance();\n\n const result = await authInstance.logout();\n\n if (result === true) {\n this.logout.emit();\n\n if (this.reloadOnSuccess) {\n window.location.reload();\n }\n }\n };\n\n render() {\n return (\n <button type=\"button\" class={this.componentClassName} onClick={this.handleLogout} aria-live=\"polite\">\n {t(\"buttons.logout\")}\n </button>\n );\n }\n}\n"],"version":3}
1
+ {"file":"u-logout-button.js","mappings":";;;;;MASa,YAAY,iBAAAA,kBAAA,CAAA,MAAA,YAAA,SAAA,WAAA,CAAA;;;;;;;;;IAEY,kBAAkB,GAAG,EAAE;IAClD,eAAe,GAAG,IAAI;AAErB,IAAA,MAAM;IACP,OAAO,GAAG,KAAK;IAEvB,iBAAiB,GAAA;QACf,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;;IAGhC,YAAY,GAAG,YAAW;AAChC,QAAA,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE;AAE7C,QAAA,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE;AAE1C,QAAA,IAAI,MAAM,KAAK,IAAI,EAAE;AACnB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAElB,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,gBAAA,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;;;AAG9B,KAAC;IAED,MAAM,GAAA;QACJ,QACE,CAAQ,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAA,WAAA,EAAY,QAAQ,EAAA,EACjG,IAAI,CAAC,OAAO,GAAG,CAAQ,CAAA,MAAA,EAAA,IAAA,CAAA,GAAG,CAAC,CAAC,gBAAgB,CAAC,CACvC;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement"],"sources":["src/auth/components/logout-button/logout-button.tsx"],"sourcesContent":["import { Component, h, Prop, type EventEmitter, Event, Element } from \"@stencil/core\";\nimport { Auth } from \"../../auth\";\nimport { t } from \"../../../i18n\";\nimport { hasSlotContent } from \"../../../shared/component-utils\";\n\n@Component({\n tag: \"u-logout-button\",\n shadow: false,\n})\nexport class LogoutButton {\n @Element() el!: HTMLElement;\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n @Prop() reloadOnSuccess = true;\n\n @Event() logout!: EventEmitter<void>;\n private hasSlot = false;\n\n componentWillLoad() {\n this.hasSlot = hasSlotContent(this.el);\n }\n\n private handleLogout = async () => {\n const authInstance = await Auth.getInstance();\n\n const result = await authInstance.logout();\n\n if (result === true) {\n this.logout.emit();\n\n if (this.reloadOnSuccess) {\n window.location.reload();\n }\n }\n };\n\n render() {\n return (\n <button type=\"button\" class={this.componentClassName} onClick={this.handleLogout} aria-live=\"polite\">\n {this.hasSlot ? <slot /> : t(\"buttons.logout\")}\n </button>\n );\n }\n}\n"],"version":3}
@@ -29,15 +29,8 @@ const NewsletterCheckbox = /*@__PURE__*/ proxyCustomElement(class NewsletterChec
29
29
  get isChecked() {
30
30
  return this.isSubscribed || this.internalName in newsletterStore.state.checkedNewsletters;
31
31
  }
32
- handleChange = () => {
33
- if (this.isSubscribed)
34
- return;
35
- const currentlyChecked = this.internalName in newsletterStore.state.checkedNewsletters;
36
- if (currentlyChecked) {
37
- const { [this.internalName]: _, ...rest } = newsletterStore.state.checkedNewsletters;
38
- newsletterStore.set("checkedNewsletters", rest);
39
- }
40
- else {
32
+ syncToStore(checked) {
33
+ if (checked) {
41
34
  const prefs = newsletterStore.state.defaultPreferences[this.internalName];
42
35
  const defaultPrefs = prefs ? Array.from(prefs) : [];
43
36
  newsletterStore.set("checkedNewsletters", {
@@ -45,14 +38,37 @@ const NewsletterCheckbox = /*@__PURE__*/ proxyCustomElement(class NewsletterChec
45
38
  [this.internalName]: defaultPrefs,
46
39
  });
47
40
  }
41
+ else {
42
+ const { [this.internalName]: _, ...rest } = newsletterStore.state.checkedNewsletters;
43
+ newsletterStore.set("checkedNewsletters", rest);
44
+ }
45
+ }
46
+ handleChange = () => {
47
+ if (this.isSubscribed)
48
+ return;
49
+ this.syncToStore(!this.isChecked);
48
50
  };
51
+ /** Public method to toggle the checkbox programmatically */
52
+ async toggle() {
53
+ this.handleChange();
54
+ }
55
+ /** Public method to set the checkbox state programmatically */
56
+ async setChecked(checked) {
57
+ if (this.isSubscribed)
58
+ return;
59
+ if (checked !== this.isChecked) {
60
+ this.syncToStore(checked);
61
+ }
62
+ }
49
63
  render() {
50
- return (h("input", { key: 'cc271d9f9c00c561dac29e7b4edc96e0ddf148b6', type: "checkbox", checked: this.isChecked, disabled: this.isSubscribed, onChange: this.handleChange, class: this.componentClassName, "aria-checked": this.isChecked }));
64
+ return (h("input", { key: '0d7179bd700bf79dc369e213898eae166aec2529', type: "checkbox", checked: this.isChecked, disabled: this.isSubscribed, onChange: this.handleChange, class: this.componentClassName, "aria-checked": this.isChecked }));
51
65
  }
52
66
  }, [768, "u-newsletter-checkbox", {
53
67
  "internalName": [1, "internal-name"],
54
68
  "checked": [4],
55
- "componentClassName": [1, "class-name"]
69
+ "componentClassName": [1, "class-name"],
70
+ "toggle": [64],
71
+ "setChecked": [64]
56
72
  }]);
57
73
  function defineCustomElement$1() {
58
74
  if (typeof customElements === "undefined") {
@@ -1 +1 @@
1
- {"file":"u-newsletter-checkbox.js","mappings":";;;;MAQa,kBAAkB,iBAAAA,kBAAA,CAAA,MAAA,kBAAA,SAAA,WAAA,CAAA;;;;;;;AACrB,IAAA,YAAY;IACZ,OAAO,GAAG,KAAK;AACY,IAAA,kBAAkB;IAErD,iBAAiB,GAAA;QACf,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtC,YAAA,MAAM,kBAAkB,GAAG,eAAe,CAAC,KAAK,CAAC,kBAAkB;YACnE,IAAI,EAAE,IAAI,CAAC,YAAY,IAAI,kBAAkB,CAAC,EAAE;AAC9C,gBAAA,eAAe,CAAC,GAAG,CAAC,oBAAoB,EAAE;AACxC,oBAAA,GAAG,kBAAkB;AACrB,oBAAA,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE;AACxB,iBAAA,CAAC;;;;AAKR,IAAA,IAAY,YAAY,GAAA;QACtB,OAAOC,YAA8B,CAAC,IAAI,CAAC,YAAY,CAAC;;AAG1D,IAAA,IAAY,SAAS,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,eAAe,CAAC,KAAK,CAAC,kBAAkB;;IAGnF,YAAY,GAAG,MAAK;QAC1B,IAAI,IAAI,CAAC,YAAY;YAAE;QAEvB,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,IAAI,eAAe,CAAC,KAAK,CAAC,kBAAkB;QAEtF,IAAI,gBAAgB,EAAE;AACpB,YAAA,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,kBAAkB;AACpF,YAAA,eAAe,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC;;aAC1C;AACL,YAAA,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC;AACzE,YAAA,MAAM,YAAY,GAAa,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;AAE7D,YAAA,eAAe,CAAC,GAAG,CAAC,oBAAoB,EAAE;AACxC,gBAAA,GAAG,eAAe,CAAC,KAAK,CAAC,kBAAkB;AAC3C,gBAAA,CAAC,IAAI,CAAC,YAAY,GAAG,YAAY;AAClC,aAAA,CAAC;;AAEN,KAAC;IAED,MAAM,GAAA;QACJ,QACE,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,IAAI,CAAC,SAAS,EACvB,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,KAAK,EAAE,IAAI,CAAC,kBAAkB,kBAChB,IAAI,CAAC,SAAS,EAAA,CAC5B;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","NewsletterHelpers.isSubscribed"],"sources":["src/newsletter/components/newsletter-checkbox/newsletter-checkbox.tsx"],"sourcesContent":["import { Component, h, Prop } from \"@stencil/core\";\nimport * as NewsletterHelpers from \"../../newsletter-helpers\";\nimport { newsletterStore } from \"../../store/newsletter-store\";\n\n@Component({\n tag: \"u-newsletter-checkbox\",\n shadow: false,\n})\nexport class NewsletterCheckbox {\n @Prop() internalName!: string;\n @Prop() checked = false;\n @Prop({ attribute: \"class-name\" }) componentClassName?: string;\n\n componentWillLoad() {\n if (this.checked && !this.isSubscribed) {\n const checkedNewsletters = newsletterStore.state.checkedNewsletters;\n if (!(this.internalName in checkedNewsletters)) {\n newsletterStore.set(\"checkedNewsletters\", {\n ...checkedNewsletters,\n [this.internalName]: [],\n });\n }\n }\n }\n\n private get isSubscribed(): boolean {\n return NewsletterHelpers.isSubscribed(this.internalName);\n }\n\n private get isChecked(): boolean {\n return this.isSubscribed || this.internalName in newsletterStore.state.checkedNewsletters;\n }\n\n private handleChange = () => {\n if (this.isSubscribed) return;\n\n const currentlyChecked = this.internalName in newsletterStore.state.checkedNewsletters;\n\n if (currentlyChecked) {\n const { [this.internalName]: _, ...rest } = newsletterStore.state.checkedNewsletters;\n newsletterStore.set(\"checkedNewsletters\", rest);\n } else {\n const prefs = newsletterStore.state.defaultPreferences[this.internalName];\n const defaultPrefs: string[] = prefs ? Array.from(prefs) : [];\n\n newsletterStore.set(\"checkedNewsletters\", {\n ...newsletterStore.state.checkedNewsletters,\n [this.internalName]: defaultPrefs,\n });\n }\n };\n\n render() {\n return (\n <input\n type=\"checkbox\"\n checked={this.isChecked}\n disabled={this.isSubscribed}\n onChange={this.handleChange}\n class={this.componentClassName}\n aria-checked={this.isChecked}\n />\n );\n }\n}\n"],"version":3}
1
+ {"file":"u-newsletter-checkbox.js","mappings":";;;;MAQa,kBAAkB,iBAAAA,kBAAA,CAAA,MAAA,kBAAA,SAAA,WAAA,CAAA;;;;;;;AACrB,IAAA,YAAY;IACZ,OAAO,GAAG,KAAK;AACY,IAAA,kBAAkB;IAErD,iBAAiB,GAAA;QACf,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtC,YAAA,MAAM,kBAAkB,GAAG,eAAe,CAAC,KAAK,CAAC,kBAAkB;YACnE,IAAI,EAAE,IAAI,CAAC,YAAY,IAAI,kBAAkB,CAAC,EAAE;AAC9C,gBAAA,eAAe,CAAC,GAAG,CAAC,oBAAoB,EAAE;AACxC,oBAAA,GAAG,kBAAkB;AACrB,oBAAA,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE;AACxB,iBAAA,CAAC;;;;AAKR,IAAA,IAAY,YAAY,GAAA;QACtB,OAAOC,YAA8B,CAAC,IAAI,CAAC,YAAY,CAAC;;AAG1D,IAAA,IAAY,SAAS,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,eAAe,CAAC,KAAK,CAAC,kBAAkB;;AAGnF,IAAA,WAAW,CAAC,OAAgB,EAAA;QAClC,IAAI,OAAO,EAAE;AACX,YAAA,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC;AACzE,YAAA,MAAM,YAAY,GAAa,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;AAE7D,YAAA,eAAe,CAAC,GAAG,CAAC,oBAAoB,EAAE;AACxC,gBAAA,GAAG,eAAe,CAAC,KAAK,CAAC,kBAAkB;AAC3C,gBAAA,CAAC,IAAI,CAAC,YAAY,GAAG,YAAY;AAClC,aAAA,CAAC;;aACG;AACL,YAAA,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,kBAAkB;AACpF,YAAA,eAAe,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC;;;IAI3C,YAAY,GAAG,MAAK;QAC1B,IAAI,IAAI,CAAC,YAAY;YAAE;QACvB,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;AACnC,KAAC;;AAID,IAAA,MAAM,MAAM,GAAA;QACV,IAAI,CAAC,YAAY,EAAE;;;IAKrB,MAAM,UAAU,CAAC,OAAgB,EAAA;QAC/B,IAAI,IAAI,CAAC,YAAY;YAAE;AACvB,QAAA,IAAI,OAAO,KAAK,IAAI,CAAC,SAAS,EAAE;AAC9B,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;;;IAI7B,MAAM,GAAA;QACJ,QACE,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,IAAI,CAAC,SAAS,EACvB,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,KAAK,EAAE,IAAI,CAAC,kBAAkB,kBAChB,IAAI,CAAC,SAAS,EAAA,CAC5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","NewsletterHelpers.isSubscribed"],"sources":["src/newsletter/components/newsletter-checkbox/newsletter-checkbox.tsx"],"sourcesContent":["import { Component, h, Method, Prop } from \"@stencil/core\";\nimport * as NewsletterHelpers from \"../../newsletter-helpers\";\nimport { newsletterStore } from \"../../store/newsletter-store\";\n\n@Component({\n tag: \"u-newsletter-checkbox\",\n shadow: false,\n})\nexport class NewsletterCheckbox {\n @Prop() internalName!: string;\n @Prop() checked = false;\n @Prop({ attribute: \"class-name\" }) componentClassName?: string;\n\n componentWillLoad() {\n if (this.checked && !this.isSubscribed) {\n const checkedNewsletters = newsletterStore.state.checkedNewsletters;\n if (!(this.internalName in checkedNewsletters)) {\n newsletterStore.set(\"checkedNewsletters\", {\n ...checkedNewsletters,\n [this.internalName]: [],\n });\n }\n }\n }\n\n private get isSubscribed(): boolean {\n return NewsletterHelpers.isSubscribed(this.internalName);\n }\n\n private get isChecked(): boolean {\n return this.isSubscribed || this.internalName in newsletterStore.state.checkedNewsletters;\n }\n\n private syncToStore(checked: boolean) {\n if (checked) {\n const prefs = newsletterStore.state.defaultPreferences[this.internalName];\n const defaultPrefs: string[] = prefs ? Array.from(prefs) : [];\n\n newsletterStore.set(\"checkedNewsletters\", {\n ...newsletterStore.state.checkedNewsletters,\n [this.internalName]: defaultPrefs,\n });\n } else {\n const { [this.internalName]: _, ...rest } = newsletterStore.state.checkedNewsletters;\n newsletterStore.set(\"checkedNewsletters\", rest);\n }\n }\n\n private handleChange = () => {\n if (this.isSubscribed) return;\n this.syncToStore(!this.isChecked);\n };\n\n /** Public method to toggle the checkbox programmatically */\n @Method()\n async toggle() {\n this.handleChange();\n }\n\n /** Public method to set the checkbox state programmatically */\n @Method()\n async setChecked(checked: boolean) {\n if (this.isSubscribed) return;\n if (checked !== this.isChecked) {\n this.syncToStore(checked);\n }\n }\n\n render() {\n return (\n <input\n type=\"checkbox\"\n checked={this.isChecked}\n disabled={this.isSubscribed}\n onChange={this.handleChange}\n class={this.componentClassName}\n aria-checked={this.isChecked}\n />\n );\n }\n}\n"],"version":3}
@@ -77,20 +77,34 @@ const NewsletterPreferenceCheckbox = /*@__PURE__*/ proxyCustomElement(class News
77
77
  });
78
78
  }
79
79
  }
80
- handleChange = async () => {
81
- if (this.isDisabled)
82
- return;
83
- const currentlyChecked = this.isChecked;
84
- this.syncToStore(!currentlyChecked);
85
- // If subscribed and confirmed persist the change to the API
80
+ async persistIfSubscribed() {
86
81
  if (this.isSubscribed && this.isConfirmed) {
87
82
  this.loading = true;
88
83
  await updateSubscriptionPreferences(this.internalName);
89
84
  this.loading = false;
90
85
  }
86
+ }
87
+ handleChange = async () => {
88
+ if (this.isDisabled)
89
+ return;
90
+ this.syncToStore(!this.isChecked);
91
+ await this.persistIfSubscribed();
91
92
  };
93
+ /** Public method to toggle the checkbox programmatically */
94
+ async toggle() {
95
+ await this.handleChange();
96
+ }
97
+ /** Public method to set the checkbox state programmatically */
98
+ async setChecked(checked) {
99
+ if (this.isDisabled)
100
+ return;
101
+ if (checked !== this.isChecked) {
102
+ this.syncToStore(checked);
103
+ await this.persistIfSubscribed();
104
+ }
105
+ }
92
106
  render() {
93
- return (h("input", { key: 'f0991d8f47d6d10ec177c1effdc9ac1371bd8e43', type: "checkbox", checked: this.isChecked, disabled: this.isDisabled, onChange: this.handleChange, class: this.componentClassName, "aria-checked": this.isChecked, "aria-busy": this.loading, "aria-disabled": this.isDisabled, "data-internal-name": this.internalName, "data-preference-identifier": this.preferenceIdentifier }));
107
+ return (h("input", { key: '328de450263750e2d7a574567a1ceaa92c354c7d', type: "checkbox", checked: this.isChecked, disabled: this.isDisabled, onChange: this.handleChange, class: this.componentClassName, "aria-checked": this.isChecked, "aria-busy": this.loading, "aria-disabled": this.isDisabled, "data-internal-name": this.internalName, "data-preference-identifier": this.preferenceIdentifier }));
94
108
  }
95
109
  }, [768, "u-newsletter-preference-checkbox", {
96
110
  "internalName": [1, "internal-name"],
@@ -99,7 +113,9 @@ const NewsletterPreferenceCheckbox = /*@__PURE__*/ proxyCustomElement(class News
99
113
  "componentClassName": [1, "class-name"],
100
114
  "loading": [32],
101
115
  "existingSubscriptions": [32],
102
- "checkedPreferences": [32]
116
+ "checkedPreferences": [32],
117
+ "toggle": [64],
118
+ "setChecked": [64]
103
119
  }]);
104
120
  function defineCustomElement$1() {
105
121
  if (typeof customElements === "undefined") {
@@ -1 +1 @@
1
- {"file":"u-newsletter-preference-checkbox.js","mappings":"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","names":["__stencil_proxyCustomElement","NewsletterHelpers.isSubscribed","NewsletterHelpers.updateSubscriptionPreferences"],"sources":["src/newsletter/components/preference-checkbox/preference-checkbox.tsx"],"sourcesContent":["import { Component, h, Prop, State } from \"@stencil/core\";\nimport * as NewsletterHelpers from \"../../newsletter-helpers\";\nimport { type ExistingSubscription, newsletterStore, storeDefaultPreference } from \"../../store/newsletter-store\";\n\n@Component({\n tag: \"u-newsletter-preference-checkbox\",\n shadow: false,\n})\nexport class NewsletterPreferenceCheckbox {\n @Prop() internalName!: string;\n @Prop() preferenceIdentifier!: string;\n @Prop() checked = false;\n @Prop({ attribute: \"class-name\" }) componentClassName?: string;\n\n @State() loading = false;\n\n @State() existingSubscriptions: ExistingSubscription[] = [];\n @State() checkedPreferences: string[] = [];\n\n private storeUnsubscribe?: () => void;\n\n componentWillLoad() {\n this.subscribeToStore();\n this.initializeCheckedState();\n\n if (this.checked) {\n storeDefaultPreference(this.internalName, this.preferenceIdentifier);\n }\n }\n\n disconnectedCallback() {\n this.storeUnsubscribe?.();\n }\n\n private subscribeToStore() {\n this.storeUnsubscribe = newsletterStore.onChange(\"existingSubscriptions\", (subscriptions) => {\n this.existingSubscriptions = subscriptions;\n });\n\n newsletterStore.onChange(\"checkedNewsletters\", (checkedNewsletters) => {\n this.checkedPreferences = checkedNewsletters[this.internalName] || [];\n });\n\n this.existingSubscriptions = newsletterStore.state.existingSubscriptions;\n this.checkedPreferences = newsletterStore.state.checkedNewsletters[this.internalName] || [];\n }\n\n private initializeCheckedState() {\n if (NewsletterHelpers.isSubscribed(this.internalName)) {\n return;\n }\n\n if (this.checked) {\n this.syncToStore(true);\n }\n }\n\n private get subscription(): ExistingSubscription | undefined {\n return this.existingSubscriptions.find((sub) => sub.newsletter_internal_name === this.internalName);\n }\n\n private get isSubscribed(): boolean {\n return this.subscription !== undefined;\n }\n\n private get isConfirmed(): boolean {\n return this.subscription?.confirmed ?? false;\n }\n\n private get isDisabled(): boolean {\n return this.loading || (this.isSubscribed && !this.isConfirmed);\n }\n\n private get isChecked(): boolean {\n return this.checkedPreferences.includes(this.preferenceIdentifier);\n }\n\n private syncToStore(add: boolean) {\n const currentPreferences = newsletterStore.state.checkedNewsletters[this.internalName] || [];\n\n if (add) {\n if (!currentPreferences.includes(this.preferenceIdentifier)) {\n newsletterStore.set(\"checkedNewsletters\", {\n ...newsletterStore.state.checkedNewsletters,\n [this.internalName]: [...currentPreferences, this.preferenceIdentifier],\n });\n }\n } else {\n newsletterStore.set(\"checkedNewsletters\", {\n ...newsletterStore.state.checkedNewsletters,\n [this.internalName]: currentPreferences.filter((p) => p !== this.preferenceIdentifier),\n });\n }\n }\n\n private handleChange = async () => {\n if (this.isDisabled) return;\n\n const currentlyChecked = this.isChecked;\n this.syncToStore(!currentlyChecked);\n\n // If subscribed and confirmed persist the change to the API\n if (this.isSubscribed && this.isConfirmed) {\n this.loading = true;\n await NewsletterHelpers.updateSubscriptionPreferences(this.internalName);\n this.loading = false;\n }\n };\n\n render() {\n return (\n <input\n type=\"checkbox\"\n checked={this.isChecked}\n disabled={this.isDisabled}\n onChange={this.handleChange}\n class={this.componentClassName}\n aria-checked={this.isChecked}\n aria-busy={this.loading}\n aria-disabled={this.isDisabled}\n data-internal-name={this.internalName}\n data-preference-identifier={this.preferenceIdentifier}\n />\n );\n }\n}\n"],"version":3}
1
+ {"file":"u-newsletter-preference-checkbox.js","mappings":"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","names":["__stencil_proxyCustomElement","NewsletterHelpers.isSubscribed","NewsletterHelpers.updateSubscriptionPreferences"],"sources":["src/newsletter/components/preference-checkbox/preference-checkbox.tsx"],"sourcesContent":["import { Component, h, Method, Prop, State } from \"@stencil/core\";\nimport * as NewsletterHelpers from \"../../newsletter-helpers\";\nimport { type ExistingSubscription, newsletterStore } from \"../../store/newsletter-store\";\nimport { storeDefaultPreference } from \"../../store/newsletter-store\";\n\n@Component({\n tag: \"u-newsletter-preference-checkbox\",\n shadow: false,\n})\nexport class NewsletterPreferenceCheckbox {\n @Prop() internalName!: string;\n @Prop() preferenceIdentifier!: string;\n @Prop() checked = false;\n @Prop({ attribute: \"class-name\" }) componentClassName?: string;\n\n @State() loading = false;\n\n @State() existingSubscriptions: ExistingSubscription[] = [];\n @State() checkedPreferences: string[] = [];\n\n private storeUnsubscribe?: () => void;\n\n componentWillLoad() {\n this.subscribeToStore();\n this.initializeCheckedState();\n\n if (this.checked) {\n storeDefaultPreference(this.internalName, this.preferenceIdentifier);\n }\n }\n\n disconnectedCallback() {\n this.storeUnsubscribe?.();\n }\n\n private subscribeToStore() {\n this.storeUnsubscribe = newsletterStore.onChange(\"existingSubscriptions\", (subscriptions) => {\n this.existingSubscriptions = subscriptions;\n });\n\n newsletterStore.onChange(\"checkedNewsletters\", (checkedNewsletters) => {\n this.checkedPreferences = checkedNewsletters[this.internalName] || [];\n });\n\n this.existingSubscriptions = newsletterStore.state.existingSubscriptions;\n this.checkedPreferences = newsletterStore.state.checkedNewsletters[this.internalName] || [];\n }\n\n private initializeCheckedState() {\n if (NewsletterHelpers.isSubscribed(this.internalName)) {\n return;\n }\n\n if (this.checked) {\n this.syncToStore(true);\n }\n }\n\n private get subscription(): ExistingSubscription | undefined {\n return this.existingSubscriptions.find((sub) => sub.newsletter_internal_name === this.internalName);\n }\n\n private get isSubscribed(): boolean {\n return this.subscription !== undefined;\n }\n\n private get isConfirmed(): boolean {\n return this.subscription?.confirmed ?? false;\n }\n\n private get isDisabled(): boolean {\n return this.loading || (this.isSubscribed && !this.isConfirmed);\n }\n\n private get isChecked(): boolean {\n return this.checkedPreferences.includes(this.preferenceIdentifier);\n }\n\n private syncToStore(add: boolean) {\n const currentPreferences = newsletterStore.state.checkedNewsletters[this.internalName] || [];\n\n if (add) {\n if (!currentPreferences.includes(this.preferenceIdentifier)) {\n newsletterStore.set(\"checkedNewsletters\", {\n ...newsletterStore.state.checkedNewsletters,\n [this.internalName]: [...currentPreferences, this.preferenceIdentifier],\n });\n }\n } else {\n newsletterStore.set(\"checkedNewsletters\", {\n ...newsletterStore.state.checkedNewsletters,\n [this.internalName]: currentPreferences.filter((p) => p !== this.preferenceIdentifier),\n });\n }\n }\n\n private async persistIfSubscribed() {\n if (this.isSubscribed && this.isConfirmed) {\n this.loading = true;\n await NewsletterHelpers.updateSubscriptionPreferences(this.internalName);\n this.loading = false;\n }\n }\n\n private handleChange = async () => {\n if (this.isDisabled) return;\n\n this.syncToStore(!this.isChecked);\n await this.persistIfSubscribed();\n };\n\n /** Public method to toggle the checkbox programmatically */\n @Method()\n async toggle() {\n await this.handleChange();\n }\n\n /** Public method to set the checkbox state programmatically */\n @Method()\n async setChecked(checked: boolean) {\n if (this.isDisabled) return;\n if (checked !== this.isChecked) {\n this.syncToStore(checked);\n await this.persistIfSubscribed();\n }\n }\n\n render() {\n return (\n <input\n type=\"checkbox\"\n checked={this.isChecked}\n disabled={this.isDisabled}\n onChange={this.handleChange}\n class={this.componentClassName}\n aria-checked={this.isChecked}\n aria-busy={this.loading}\n aria-disabled={this.isDisabled}\n data-internal-name={this.internalName}\n data-preference-identifier={this.preferenceIdentifier}\n />\n );\n }\n}\n"],"version":3}
@@ -1,5 +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
+ import { A as Auth } from './auth.js';
3
5
  import { t } from './i18n.js';
4
6
  import { U as UnidyComponent } from './logger.js';
5
7
  import { w as waitForConfig, u as unidyState } from './unidy-store.js';
@@ -5910,8 +5912,14 @@ const TicketableList = /*@__PURE__*/ proxyCustomElement(class TicketableList ext
5910
5912
  this.logger.trace("start componentDidLoad");
5911
5913
  await waitForConfig();
5912
5914
  this.logger.trace("UnidyConfig loaded, start to load data");
5913
- await this.loadData();
5914
- this.logger.debug(`data loaded, items: ${this.items}, paginationMeta: ${this.paginationMeta}`);
5915
+ const authInstance = await Auth.getInstance();
5916
+ if (await authInstance.isAuthenticated()) {
5917
+ await this.loadData();
5918
+ this.logger.debug(`data loaded, items: ${this.items}, paginationMeta: ${this.paginationMeta}`);
5919
+ }
5920
+ else {
5921
+ this.logger.debug("user is not authenticated, skipping data load");
5922
+ }
5915
5923
  }
5916
5924
  async loadData() {
5917
5925
  this.loading = true;