@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 +1 @@
1
- /*! 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);line-height:1.5;tab-size:4;-webkit-tap-highlight-color:transparent}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: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-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:0px;--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}
1
+ /*! 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);line-height:1.5;tab-size:4;-webkit-tap-highlight-color:transparent}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: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-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:0px;--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}
@@ -6,6 +6,7 @@ import { fr } from "date-fns/locale/fr";
6
6
  import { nlBE } from "date-fns/locale/nl-BE";
7
7
  import { ro } from "date-fns/locale/ro";
8
8
  import { getUnidyClient } from "../../../api";
9
+ import { Auth } from "../../../auth";
9
10
  import { t } from "../../../i18n";
10
11
  import { UnidyComponent } from "../../../logger";
11
12
  import { unidyState, waitForConfig } from "../../../shared/store/unidy-store";
@@ -51,8 +52,14 @@ export class TicketableList extends UnidyComponent {
51
52
  this.logger.trace("start componentDidLoad");
52
53
  await waitForConfig();
53
54
  this.logger.trace("UnidyConfig loaded, start to load data");
54
- await this.loadData();
55
- this.logger.debug(`data loaded, items: ${this.items}, paginationMeta: ${this.paginationMeta}`);
55
+ const authInstance = await Auth.getInstance();
56
+ if (await authInstance.isAuthenticated()) {
57
+ await this.loadData();
58
+ this.logger.debug(`data loaded, items: ${this.items}, paginationMeta: ${this.paginationMeta}`);
59
+ }
60
+ else {
61
+ this.logger.debug("user is not authenticated, skipping data load");
62
+ }
56
63
  }
57
64
  async loadData() {
58
65
  this.loading = true;
@@ -1 +1 @@
1
- {"version":3,"file":"ticketable-list.js","sourceRoot":"","sources":["../../../../src/ticketable/components/ticketable-list/ticketable-list.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, type EventEmitter, Host, h, Prop, State, Watch } from \"@stencil/core\";\nimport type { Locale } from \"date-fns\";\nimport { format } from \"date-fns/format\";\nimport { de } from \"date-fns/locale/de\";\nimport { enUS } from \"date-fns/locale/en-US\";\nimport { fr } from \"date-fns/locale/fr\";\nimport { nlBE } from \"date-fns/locale/nl-BE\";\nimport { ro } from \"date-fns/locale/ro\";\nimport type { PaginationMeta } from \"../../../api\";\nimport { getUnidyClient } from \"../../../api\";\nimport { t } from \"../../../i18n\";\nimport { UnidyComponent } from \"../../../logger\";\nimport { unidyState, waitForConfig } from \"../../../shared/store/unidy-store\";\nimport type { Subscription } from \"../../api/subscriptions\";\nimport type { Ticket } from \"../../api/tickets\";\nimport { createPaginationStore, type PaginationStore } from \"../../store/pagination-store\";\nimport { createSkeletonLoader, replaceTextNodesWithSkeletons } from \"./skeleton-helpers\";\n\nconst LOCALES: Record<string, Locale> = {\n \"en-US\": enUS,\n de: de,\n fr: fr,\n \"nl-BE\": nlBE,\n ro: ro,\n};\n\n@Component({ tag: \"u-ticketable-list\", shadow: false })\nexport class TicketableList extends UnidyComponent {\n @Element() element: HTMLElement;\n\n // TODO: move into a generic store, since we'll have this kind of fetching all over the app (also implement SWR and other things inside of it)\n @State() items: Subscription[] | Ticket[] = [];\n @State() loading = true;\n @State() error: string | null = null;\n @Prop() paginationMeta: PaginationMeta | null = null;\n\n @Prop() target?: string;\n @Prop() containerClass?: string;\n\n // TODO: add a component that can override this\n @Prop({ mutable: true }) filter = \"\";\n\n // TODO: Add pagination component to override all of this\n @Prop({ mutable: true }) limit = 10;\n @Prop({ mutable: true }) page = 1;\n\n @Prop() skeletonCount?: number;\n @Prop() skeletonAllText?: boolean = false;\n @Prop() ticketableType!: \"ticket\" | \"subscription\";\n\n @Watch(\"page\")\n @Watch(\"limit\")\n @Watch(\"filter\")\n async fetchData() {\n await this.loadData();\n }\n\n @Prop() store: PaginationStore | null = null;\n\n @Event() uTicketableListSuccess!: EventEmitter<{\n ticketableType: \"ticket\" | \"subscription\";\n items: Subscription[] | Ticket[];\n paginationMeta: PaginationMeta | null;\n }>;\n\n @Event() uTicketableListError!: EventEmitter<{\n ticketableType?: \"ticket\" | \"subscription\";\n error: string;\n }>;\n\n async componentWillLoad() {\n this.store = createPaginationStore();\n }\n\n async componentDidLoad() {\n this.logger.trace(\"start componentDidLoad\");\n await waitForConfig();\n this.logger.trace(\"UnidyConfig loaded, start to load data\");\n await this.loadData();\n this.logger.debug(`data loaded, items: ${this.items}, paginationMeta: ${this.paginationMeta}`);\n }\n\n private async loadData() {\n this.loading = true;\n\n if (!this.ticketableType) {\n this.error = \"[u-ticketable-list] ticketable-type attribute is required\";\n this.loading = false;\n this.uTicketableListError.emit({ error: this.error });\n return;\n }\n\n if (this.ticketableType !== \"ticket\" && this.ticketableType !== \"subscription\") {\n this.error = `[u-ticketable-list] Invalid ticketable-type: ${this.ticketableType}. Must be 'ticket' or 'subscription'`;\n this.loading = false;\n this.uTicketableListError.emit({ error: this.error });\n return;\n }\n\n try {\n const unidyClient = await getUnidyClient();\n const service = this.ticketableType === \"ticket\" ? unidyClient.tickets : unidyClient.subscriptions;\n\n const response = await service.list(\n {},\n {\n page: this.page,\n limit: this.limit,\n ...Object.fromEntries((this.filter || \"\").split(\";\").map((pair) => pair.split(\"=\"))),\n },\n );\n\n if (!response.success || !response.data) {\n this.error =\n response.error instanceof Error\n ? response.error.message\n : response.error || `[u-ticketable-list] Failed to fetch ${this.ticketableType}s`;\n this.loading = false;\n this.uTicketableListError.emit({ error: this.error });\n return;\n }\n\n this.items = response.data.results;\n this.paginationMeta = response.data.meta;\n\n // Update the store with pagination data\n if (this.store) {\n this.store.state.paginationMeta = response.data.meta;\n }\n\n this.loading = false;\n\n this.uTicketableListSuccess.emit({ ticketableType: this.ticketableType, items: this.items, paginationMeta: this.paginationMeta });\n } catch (err) {\n this.error = err instanceof Error ? err.message : \"[u-ticketable-list] An error occurred\";\n this.loading = false;\n this.uTicketableListError.emit({ error: this.error });\n }\n }\n\n private renderFragment(template: HTMLTemplateElement, item?: Subscription | Ticket): DocumentFragment {\n const fragment = template.content.cloneNode(true) as DocumentFragment;\n const isSkeleton = !item;\n\n for (const elem of fragment.querySelectorAll(\"[unidy-attr]\")) {\n for (const [unidyAttr, newValue] of Array.from(elem.attributes)\n .filter((attr) => attr.name.startsWith(\"unidy-attr-\"))\n .map((attr) => {\n if (isSkeleton) {\n return [attr, \"#\"] as const;\n }\n\n let value = attr.value;\n for (const [key, val] of Object.entries(item)) {\n value = value.replaceAll(`{{${key}}}`, val as string);\n }\n\n return [attr, value] as const;\n })) {\n elem.setAttribute(unidyAttr.name.replace(\"unidy-attr-\", \"\"), newValue);\n elem.removeAttribute(unidyAttr.name);\n }\n }\n\n if (isSkeleton && this.skeletonAllText) {\n replaceTextNodesWithSkeletons(fragment);\n }\n\n for (const valueEl of fragment.querySelectorAll(\"ticketable-value\")) {\n if (isSkeleton) {\n valueEl.innerHTML = createSkeletonLoader(\"Sample Text\");\n } else {\n const key = valueEl.getAttribute(\"name\");\n if (!key) continue;\n const value = item[key];\n const formatAttr = valueEl.getAttribute(\"format\");\n const dateFormatAttr = valueEl.getAttribute(\"date-format\");\n\n let finalValue: string;\n\n if (typeof value === \"object\" && value instanceof Date) {\n finalValue = format(value, dateFormatAttr || \"yyyy-MM-dd\", { locale: LOCALES[unidyState.locale] || de });\n } else if (typeof value === \"number\" && key === \"price\") {\n finalValue = new Intl.NumberFormat(unidyState.locale, { style: \"currency\", currency: item.currency || \"EUR\" }).format(value);\n } else if (typeof value === \"number\") {\n finalValue = value.toFixed(2);\n } else if (value != null) {\n finalValue = String(value);\n } else {\n finalValue = valueEl.getAttribute(\"default\") || \"\";\n }\n\n if (formatAttr) {\n finalValue = formatAttr.replaceAll(\"{{value}}\", finalValue);\n }\n\n valueEl.textContent = finalValue;\n }\n }\n\n return fragment;\n }\n\n componentDidUpdate() {\n if (this.target) {\n requestAnimationFrame(() => this.renderToTarget());\n }\n }\n\n componentDidRender() {\n if (this.target) {\n requestAnimationFrame(() => this.renderToTarget());\n }\n }\n\n private renderToTarget() {\n const template = this.element.querySelector(\"template\");\n if (!template) return;\n\n const targetElement = document.querySelector(this.target);\n if (!targetElement) {\n this.logger.warn(\"targetElement not found\");\n return;\n }\n\n // Clear existing content\n targetElement.innerHTML = \"\";\n this.renderContent(targetElement, template);\n }\n\n private renderContent(target: Element, template: HTMLTemplateElement) {\n if (this.loading) {\n // Use skeletonCount if provided, otherwise use limit\n const skeletonCount = this.skeletonCount || this.limit;\n for (const _item of Array.from({ length: skeletonCount })) {\n target.appendChild(this.renderFragment(template));\n }\n } else if (!this.error) {\n for (const item of this.items) {\n target.appendChild(this.renderFragment(template, item));\n }\n } else {\n this.logger.error(`failed to load content: ${this.error}`);\n target.innerHTML = `<h1>${t(\"errors.prefix\")} ${this.error}</h1>`;\n }\n }\n\n render() {\n if (this.error) {\n this.logger.error(`can't render content: ${this.error}`);\n return (\n <h1>\n `${t(\"errors.prefix\")} ${this.error}`\n </h1>\n );\n }\n\n const template = this.element.querySelector(\"template\");\n if (!template) {\n this.logger.error(\"template not found\");\n return <h1>No template found - fix config</h1>;\n }\n\n if (this.target) {\n return (\n <Host>\n <slot />\n </Host>\n );\n }\n\n const element = document.createElement(\"div\");\n this.renderContent(element, template);\n\n return (\n <Host>\n <div class={this.containerClass} innerHTML={element.innerHTML} />\n <slot name=\"pagination\" />\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ticketable-list.js","sourceRoot":"","sources":["../../../../src/ticketable/components/ticketable-list/ticketable-list.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAqB,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE1G,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAG9E,OAAO,EAAE,qBAAqB,EAAwB,MAAM,8BAA8B,CAAC;AAC3F,OAAO,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAEzF,MAAM,OAAO,GAA2B;IACtC,OAAO,EAAE,IAAI;IACb,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,OAAO,EAAE,IAAI;IACb,EAAE,EAAE,EAAE;CACP,CAAC;AAGF,MAAM,OAAO,cAAe,SAAQ,cAAc;;;;IACrC,OAAO,CAAc;IAEhC,8IAA8I;IACrI,KAAK,GAA8B,EAAE,CAAC;IACtC,OAAO,GAAG,IAAI,CAAC;IACf,KAAK,GAAkB,IAAI,CAAC;IAC7B,cAAc,GAA0B,IAAI,CAAC;IAE7C,MAAM,CAAU;IAChB,cAAc,CAAU;IAEhC,+CAA+C;IACtB,MAAM,GAAG,EAAE,CAAC;IAErC,yDAAyD;IAChC,KAAK,GAAG,EAAE,CAAC;IACX,IAAI,GAAG,CAAC,CAAC;IAE1B,aAAa,CAAU;IACvB,eAAe,GAAa,KAAK,CAAC;IAClC,cAAc,CAA6B;IAKnD,KAAK,CAAC,SAAS;QACb,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAEO,KAAK,GAA2B,IAAI,CAAC;IAEpC,sBAAsB,CAI5B;IAEM,oBAAoB,CAG1B;IAEH,KAAK,CAAC,iBAAiB;QACrB,IAAI,CAAC,KAAK,GAAG,qBAAqB,EAAE,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,MAAM,aAAa,EAAE,CAAC;QACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAE5D,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAE9C,IAAI,MAAM,YAAY,CAAC,eAAe,EAAE,EAAE,CAAC;YACzC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,KAAK,qBAAqB,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QACjG,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,2DAA2D,CAAC;YACzE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACtD,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,KAAK,QAAQ,IAAI,IAAI,CAAC,cAAc,KAAK,cAAc,EAAE,CAAC;YAC/E,IAAI,CAAC,KAAK,GAAG,gDAAgD,IAAI,CAAC,cAAc,sCAAsC,CAAC;YACvH,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACtD,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC;YAEnG,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CACjC,EAAE,EACF;gBACE,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;aACrF,CACF,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACxC,IAAI,CAAC,KAAK;oBACR,QAAQ,CAAC,KAAK,YAAY,KAAK;wBAC7B,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO;wBACxB,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,uCAAuC,IAAI,CAAC,cAAc,GAAG,CAAC;gBACtF,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBACtD,OAAO;YACT,CAAC;YAED,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;YACnC,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YAEzC,wCAAwC;YACxC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YACvD,CAAC;YAED,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YAErB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QACpI,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,uCAAuC,CAAC;YAC1F,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,QAA6B,EAAE,IAA4B;QAChF,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAqB,CAAC;QACtE,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC;QAEzB,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE,CAAC;YAC7D,KAAK,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;iBAC5D,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;iBACrD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACZ,IAAI,UAAU,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,EAAE,GAAG,CAAU,CAAC;gBAC9B,CAAC;gBAED,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvB,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC9C,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,EAAE,GAAa,CAAC,CAAC;gBACxD,CAAC;gBAED,OAAO,CAAC,IAAI,EAAE,KAAK,CAAU,CAAC;YAChC,CAAC,CAAC,EAAE,CAAC;gBACL,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;gBACvE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAED,IAAI,UAAU,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACvC,6BAA6B,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACpE,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,SAAS,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;YAC1D,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBACzC,IAAI,CAAC,GAAG;oBAAE,SAAS;gBACnB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;gBACxB,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAClD,MAAM,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;gBAE3D,IAAI,UAAkB,CAAC;gBAEvB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;oBACvD,UAAU,GAAG,MAAM,CAAC,KAAK,EAAE,cAAc,IAAI,YAAY,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC3G,CAAC;qBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;oBACxD,UAAU,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC/H,CAAC;qBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACrC,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAChC,CAAC;qBAAM,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;oBACzB,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gBACrD,CAAC;gBAED,IAAI,UAAU,EAAE,CAAC;oBACf,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;gBAC9D,CAAC;gBAED,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC;YACnC,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,kBAAkB;QAChB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,qBAAqB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,kBAAkB;QAChB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,qBAAqB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAEO,cAAc;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,yBAAyB;QACzB,aAAa,CAAC,SAAS,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAEO,aAAa,CAAC,MAAe,EAAE,QAA6B;QAClE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,qDAAqD;YACrD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,KAAK,CAAC;YACvD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;gBAC1D,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACvB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC9B,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAC3D,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,KAAK,OAAO,CAAC;QACpE,CAAC;IACH,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACzD,OAAO,CACL;;gBACK,CAAC,CAAC,eAAe,CAAC;;gBAAI,IAAI,CAAC,KAAK;oBAChC,CACN,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACxC,OAAO,+CAAuC,CAAC;QACjD,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CACL,EAAC,IAAI;gBACH,eAAQ,CACH,CACR,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAEtC,OAAO,CACL,EAAC,IAAI;YACH,WAAK,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,GAAI;YACjE,YAAM,IAAI,EAAC,YAAY,GAAG,CACrB,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, Event, type EventEmitter, Host, h, Prop, State, Watch } from \"@stencil/core\";\nimport type { Locale } from \"date-fns\";\nimport { format } from \"date-fns/format\";\nimport { de } from \"date-fns/locale/de\";\nimport { enUS } from \"date-fns/locale/en-US\";\nimport { fr } from \"date-fns/locale/fr\";\nimport { nlBE } from \"date-fns/locale/nl-BE\";\nimport { ro } from \"date-fns/locale/ro\";\nimport type { PaginationMeta } from \"../../../api\";\nimport { getUnidyClient } from \"../../../api\";\nimport { Auth } from \"../../../auth\";\nimport { t } from \"../../../i18n\";\nimport { UnidyComponent } from \"../../../logger\";\nimport { unidyState, waitForConfig } from \"../../../shared/store/unidy-store\";\nimport type { Subscription } from \"../../api/subscriptions\";\nimport type { Ticket } from \"../../api/tickets\";\nimport { createPaginationStore, type PaginationStore } from \"../../store/pagination-store\";\nimport { createSkeletonLoader, replaceTextNodesWithSkeletons } from \"./skeleton-helpers\";\n\nconst LOCALES: Record<string, Locale> = {\n \"en-US\": enUS,\n de: de,\n fr: fr,\n \"nl-BE\": nlBE,\n ro: ro,\n};\n\n@Component({ tag: \"u-ticketable-list\", shadow: false })\nexport class TicketableList extends UnidyComponent {\n @Element() element: HTMLElement;\n\n // TODO: move into a generic store, since we'll have this kind of fetching all over the app (also implement SWR and other things inside of it)\n @State() items: Subscription[] | Ticket[] = [];\n @State() loading = true;\n @State() error: string | null = null;\n @Prop() paginationMeta: PaginationMeta | null = null;\n\n @Prop() target?: string;\n @Prop() containerClass?: string;\n\n // TODO: add a component that can override this\n @Prop({ mutable: true }) filter = \"\";\n\n // TODO: Add pagination component to override all of this\n @Prop({ mutable: true }) limit = 10;\n @Prop({ mutable: true }) page = 1;\n\n @Prop() skeletonCount?: number;\n @Prop() skeletonAllText?: boolean = false;\n @Prop() ticketableType!: \"ticket\" | \"subscription\";\n\n @Watch(\"page\")\n @Watch(\"limit\")\n @Watch(\"filter\")\n async fetchData() {\n await this.loadData();\n }\n\n @Prop() store: PaginationStore | null = null;\n\n @Event() uTicketableListSuccess!: EventEmitter<{\n ticketableType: \"ticket\" | \"subscription\";\n items: Subscription[] | Ticket[];\n paginationMeta: PaginationMeta | null;\n }>;\n\n @Event() uTicketableListError!: EventEmitter<{\n ticketableType?: \"ticket\" | \"subscription\";\n error: string;\n }>;\n\n async componentWillLoad() {\n this.store = createPaginationStore();\n }\n\n async componentDidLoad() {\n this.logger.trace(\"start componentDidLoad\");\n await waitForConfig();\n this.logger.trace(\"UnidyConfig loaded, start to load data\");\n\n const authInstance = await Auth.getInstance();\n\n if (await authInstance.isAuthenticated()) {\n await this.loadData();\n this.logger.debug(`data loaded, items: ${this.items}, paginationMeta: ${this.paginationMeta}`);\n } else {\n this.logger.debug(\"user is not authenticated, skipping data load\");\n }\n }\n\n private async loadData() {\n this.loading = true;\n\n if (!this.ticketableType) {\n this.error = \"[u-ticketable-list] ticketable-type attribute is required\";\n this.loading = false;\n this.uTicketableListError.emit({ error: this.error });\n return;\n }\n\n if (this.ticketableType !== \"ticket\" && this.ticketableType !== \"subscription\") {\n this.error = `[u-ticketable-list] Invalid ticketable-type: ${this.ticketableType}. Must be 'ticket' or 'subscription'`;\n this.loading = false;\n this.uTicketableListError.emit({ error: this.error });\n return;\n }\n\n try {\n const unidyClient = await getUnidyClient();\n const service = this.ticketableType === \"ticket\" ? unidyClient.tickets : unidyClient.subscriptions;\n\n const response = await service.list(\n {},\n {\n page: this.page,\n limit: this.limit,\n ...Object.fromEntries((this.filter || \"\").split(\";\").map((pair) => pair.split(\"=\"))),\n },\n );\n\n if (!response.success || !response.data) {\n this.error =\n response.error instanceof Error\n ? response.error.message\n : response.error || `[u-ticketable-list] Failed to fetch ${this.ticketableType}s`;\n this.loading = false;\n this.uTicketableListError.emit({ error: this.error });\n return;\n }\n\n this.items = response.data.results;\n this.paginationMeta = response.data.meta;\n\n // Update the store with pagination data\n if (this.store) {\n this.store.state.paginationMeta = response.data.meta;\n }\n\n this.loading = false;\n\n this.uTicketableListSuccess.emit({ ticketableType: this.ticketableType, items: this.items, paginationMeta: this.paginationMeta });\n } catch (err) {\n this.error = err instanceof Error ? err.message : \"[u-ticketable-list] An error occurred\";\n this.loading = false;\n this.uTicketableListError.emit({ error: this.error });\n }\n }\n\n private renderFragment(template: HTMLTemplateElement, item?: Subscription | Ticket): DocumentFragment {\n const fragment = template.content.cloneNode(true) as DocumentFragment;\n const isSkeleton = !item;\n\n for (const elem of fragment.querySelectorAll(\"[unidy-attr]\")) {\n for (const [unidyAttr, newValue] of Array.from(elem.attributes)\n .filter((attr) => attr.name.startsWith(\"unidy-attr-\"))\n .map((attr) => {\n if (isSkeleton) {\n return [attr, \"#\"] as const;\n }\n\n let value = attr.value;\n for (const [key, val] of Object.entries(item)) {\n value = value.replaceAll(`{{${key}}}`, val as string);\n }\n\n return [attr, value] as const;\n })) {\n elem.setAttribute(unidyAttr.name.replace(\"unidy-attr-\", \"\"), newValue);\n elem.removeAttribute(unidyAttr.name);\n }\n }\n\n if (isSkeleton && this.skeletonAllText) {\n replaceTextNodesWithSkeletons(fragment);\n }\n\n for (const valueEl of fragment.querySelectorAll(\"ticketable-value\")) {\n if (isSkeleton) {\n valueEl.innerHTML = createSkeletonLoader(\"Sample Text\");\n } else {\n const key = valueEl.getAttribute(\"name\");\n if (!key) continue;\n const value = item[key];\n const formatAttr = valueEl.getAttribute(\"format\");\n const dateFormatAttr = valueEl.getAttribute(\"date-format\");\n\n let finalValue: string;\n\n if (typeof value === \"object\" && value instanceof Date) {\n finalValue = format(value, dateFormatAttr || \"yyyy-MM-dd\", { locale: LOCALES[unidyState.locale] || de });\n } else if (typeof value === \"number\" && key === \"price\") {\n finalValue = new Intl.NumberFormat(unidyState.locale, { style: \"currency\", currency: item.currency || \"EUR\" }).format(value);\n } else if (typeof value === \"number\") {\n finalValue = value.toFixed(2);\n } else if (value != null) {\n finalValue = String(value);\n } else {\n finalValue = valueEl.getAttribute(\"default\") || \"\";\n }\n\n if (formatAttr) {\n finalValue = formatAttr.replaceAll(\"{{value}}\", finalValue);\n }\n\n valueEl.textContent = finalValue;\n }\n }\n\n return fragment;\n }\n\n componentDidUpdate() {\n if (this.target) {\n requestAnimationFrame(() => this.renderToTarget());\n }\n }\n\n componentDidRender() {\n if (this.target) {\n requestAnimationFrame(() => this.renderToTarget());\n }\n }\n\n private renderToTarget() {\n const template = this.element.querySelector(\"template\");\n if (!template) return;\n\n const targetElement = document.querySelector(this.target);\n if (!targetElement) {\n this.logger.warn(\"targetElement not found\");\n return;\n }\n\n // Clear existing content\n targetElement.innerHTML = \"\";\n this.renderContent(targetElement, template);\n }\n\n private renderContent(target: Element, template: HTMLTemplateElement) {\n if (this.loading) {\n // Use skeletonCount if provided, otherwise use limit\n const skeletonCount = this.skeletonCount || this.limit;\n for (const _item of Array.from({ length: skeletonCount })) {\n target.appendChild(this.renderFragment(template));\n }\n } else if (!this.error) {\n for (const item of this.items) {\n target.appendChild(this.renderFragment(template, item));\n }\n } else {\n this.logger.error(`failed to load content: ${this.error}`);\n target.innerHTML = `<h1>${t(\"errors.prefix\")} ${this.error}</h1>`;\n }\n }\n\n render() {\n if (this.error) {\n this.logger.error(`can't render content: ${this.error}`);\n return (\n <h1>\n `${t(\"errors.prefix\")} ${this.error}`\n </h1>\n );\n }\n\n const template = this.element.querySelector(\"template\");\n if (!template) {\n this.logger.error(\"template not found\");\n return <h1>No template found - fix config</h1>;\n }\n\n if (this.target) {\n return (\n <Host>\n <slot />\n </Host>\n );\n }\n\n const element = document.createElement(\"div\");\n this.renderContent(element, template);\n\n return (\n <Host>\n <div class={this.containerClass} innerHTML={element.innerHTML} />\n <slot name=\"pagination\" />\n </Host>\n );\n }\n}\n"]}
@@ -4,7 +4,7 @@ import { s as state } from './profile-store.js';
4
4
  import { d as defineCustomElement$2 } from './raw-field.js';
5
5
  import { d as defineCustomElement$1 } from './spinner.js';
6
6
 
7
- const fieldCss = "/*! 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 base{}@layer components,utilities; /*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer base{}@layer components,utilities; /*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer base{}@layer components,utilities; /*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer base{}@layer components,utilities; /*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{@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{.block{display:block}.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{display:block}.field-error:focus{border-color:red;outline-color:red}.multi-select-readonly-container{list-style:none}.multi-select-readonly-container li{display:inline-block}[part=input]:disabled,[part=select]:disabled{cursor:not-allowed}@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}";
7
+ const fieldCss = "/*! 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,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{.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 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{.block{display:block}.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{display:block}.field-error:focus{border-color:red;outline-color:red}.multi-select-readonly-container{list-style:none}.multi-select-readonly-container li{display:inline-block}[part=input]:disabled,[part=select]:disabled{cursor:not-allowed}@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}";
8
8
 
9
9
  const Field = /*@__PURE__*/ proxyCustomElement(class Field extends HTMLElement {
10
10
  constructor(registerHost) {
@@ -1 +1 @@
1
- {"file":"field.js","mappings":"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","names":["__stencil_proxyCustomElement","profileState"],"sources":["src/profile/components/field/field.css?tag=u-field&encapsulation=shadow","src/profile/components/field/field.tsx"],"sourcesContent":[":host {\n display: block;\n}\n.field-error:focus {\n border-color: red;\n outline-color: red;\n}\n\n.multi-select-readonly-container {\n list-style: none;\n}\n.multi-select-readonly-container li {\n display: inline-block;\n}\n\n[part=\"input\"]:disabled,\n[part=\"select\"]:disabled {\n cursor: not-allowed;\n}\n","import { Component, Prop, State, h, Element } from \"@stencil/core\";\nimport { t } from \"../../../i18n\";\nimport { state as profileState } from \"../../store/profile-store\";\n/**\n * @part select_field - Styles the base <select> element.\n * @part select_field--example_field - Example of a field-specific selector.\n * Replace `example_field` with your field name.\n * e.g. `custom_attributes.favorite_nut` → `select_field--custom_attributes-favorite_nut`, `country_code` → `select_field--country-code`\n * @part radio-group-item_radio\n * @part radio-group_field\n * @part radio-group-item_label\n * @part radio_checked\n * @part multi-select-item_checkbox\n * @part multi-select-group_field\n * @part multi-select-item_label\n * @part textarea_field\n * @part input_field\n */\n\n@Component({\n tag: \"u-field\",\n styleUrl: \"field.css\",\n shadow: true,\n})\nexport class Field {\n @Prop() field!: string;\n @Prop() required = false;\n @Prop() readonlyPlaceholder = \"No information\";\n @Prop() countryCodeDisplayOption?: \"icon\" | \"label\" = \"label\";\n @Prop() invalidPhoneMessage = \"Please enter a valid phone number.\";\n @Prop({ attribute: \"class-name\" }) componentClassName?: string;\n @Prop() emptyOption = true;\n @Prop() placeholder?: string;\n @Prop() renderDefaultLabel = true;\n\n @Prop() pattern?: string;\n @Prop() patternErrorMessage?: string;\n @Prop() validationFunc?: (value: string | string[]) => { valid: boolean; message?: string };\n\n @Element() el!: HTMLElement;\n\n @State() selected?: string | string[];\n\n private getFieldData() {\n return this.field.startsWith(\"custom_attributes.\")\n ? profileState.data.custom_attributes?.[this.field.replace(\"custom_attributes.\", \"\")]\n : profileState.data[this.field];\n }\n\n componentWillLoad() {}\n\n componentDidRender() {\n const fieldErrors = profileState.errors;\n\n if (Object.keys(fieldErrors)[0] === this.field) {\n this.el.shadowRoot?.getElementById(this.field)?.scrollIntoView({ behavior: \"smooth\", block: \"center\" });\n this.el.shadowRoot\n ?.getElementById(this.field)\n ?.querySelector<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>(\"input, select, textarea\")\n ?.focus();\n }\n }\n\n private createSpecificPartKey(fieldName: string) {\n if (fieldName.startsWith(\"custom_attributes.\")) {\n return fieldName.replace(/[^\\w-]/g, \"-\");\n }\n return fieldName;\n }\n\n // biome-ignore lint/suspicious/noExplicitAny: needed for dynamic fieldData\n private multiSelectLabel = (fieldData: any): string[] => {\n const multiselectMatches: string[] = [];\n if (Array.isArray(fieldData.value)) {\n for (const val of fieldData.value) {\n // biome-ignore lint/suspicious/noExplicitAny: needed for dynamic option\n const match = fieldData.options?.find((opt: any) => opt.value === val);\n const optionTranslationKey = `fields.${this.field}.options.${val}`;\n const translatedOptionLabel = t(optionTranslationKey);\n const optionLabel = translatedOptionLabel !== optionTranslationKey ? translatedOptionLabel : match?.label;\n multiselectMatches.push(optionLabel ?? val);\n }\n }\n return multiselectMatches;\n };\n\n render() {\n if (profileState.loading) {\n return <u-spinner />;\n }\n\n const fieldData = this.getFieldData();\n if (!fieldData) {\n return null;\n }\n\n const labelTranslationKey = `fields.${this.field}.label`;\n const label = t(labelTranslationKey, { defaultValue: fieldData?.label });\n\n const placeholderTranslationKey = `fields.${this.field}.placeholder`;\n const placeholder = t(placeholderTranslationKey, { defaultValue: this.placeholder ? this.placeholder : \"\" });\n\n const readonlyPlaceholderTranslationKey = `fields.${this.field}.readonlyPlaceholder`;\n const readonlyPlaceholder = t(readonlyPlaceholderTranslationKey, {\n defaultValue: this.readonlyPlaceholder ? this.readonlyPlaceholder : \"\",\n });\n\n const translatedOptions = (fieldData.options || []).map((opt) => {\n const translationKey = `fields.${this.field}.options.${opt.value}`;\n const label = t(translationKey, { defaultValue: opt.label });\n return { ...opt, label };\n });\n\n const translatedRadioOptions = (fieldData.radio_options || []).map((opt) => {\n const translationKey = `fields.${this.field}.options.${opt.value}`;\n const label = t(translationKey, { defaultValue: opt.label });\n return { ...opt, label };\n });\n\n const errorPrefix = t(\"errors.prefix\", { defaultValue: \"ERROR: \" });\n\n const isLocked = !!fieldData?.locked;\n const lockedText = fieldData?.locked_text ? fieldData.locked_text : \"\";\n const isReadonly = fieldData?.readonly === true;\n const multiSelectReadonlyLabels = this.multiSelectLabel(fieldData);\n\n return (\n <div part={`field-container field-container--${this.createSpecificPartKey(this.field)}`}>\n <slot name=\"label\" />\n\n {this.renderDefaultLabel && (\n <label htmlFor={this.field} part={`field_label field_label--${this.createSpecificPartKey(this.field)}`}>\n {label}\n {fieldData?.required || this.required ? <span part=\"required-indicator\"> *</span> : null}\n </label>\n )}\n {isReadonly && fieldData?.type !== \"checkbox\" ? (\n <span id={this.field} part=\"readonly-indicator\">\n {fieldData?.value || readonlyPlaceholder}\n </span>\n ) : null}\n {isReadonly && fieldData?.type === \"checkbox\" && (\n <ul id={this.field} class=\"multi-select-readonly-container\" part=\"multi-select-readonly-container\">\n {multiSelectReadonlyLabels.map((label) => (\n <li key={label} part=\"multi-select-readonly-field\">\n {label}\n </li>\n ))}\n </ul>\n )}\n {!isReadonly && (\n <u-raw-field\n id={this.field}\n field={this.field}\n type={fieldData.type as string}\n value={fieldData.value}\n options={fieldData.type === \"select\" ? translatedOptions : undefined}\n radioOptions={fieldData.type === \"radio\" ? translatedRadioOptions : undefined}\n multiSelectOptions={fieldData.type === \"checkbox\" ? translatedOptions : undefined}\n required={fieldData.required || this.required}\n disabled={isLocked}\n tooltip={isLocked ? lockedText : undefined}\n placeholder={placeholder}\n componentClassName={this.componentClassName}\n emptyOption={this.emptyOption}\n countryCodeDisplayOption={this.countryCodeDisplayOption}\n attrName={fieldData.attr_name}\n specificPartKey={this.createSpecificPartKey(this.field)}\n ariaDescribedBy={profileState.errors[this.field] ? `${this.field}-error` : undefined}\n pattern={this.pattern}\n patternErrorMessage={this.patternErrorMessage}\n validationFunc={this.validationFunc}\n />\n )}\n\n {profileState.errors[this.field] && (\n <span id={`${this.field}-error`} part=\"field-error-message\" aria-live=\"assertive\">\n {errorPrefix} {profileState.errors[this.field]}\n </span>\n )}\n </div>\n );\n }\n}\n"],"version":3}
1
+ {"file":"field.js","mappings":"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","names":["__stencil_proxyCustomElement","profileState"],"sources":["src/profile/components/field/field.css?tag=u-field&encapsulation=shadow","src/profile/components/field/field.tsx"],"sourcesContent":[":host {\n display: block;\n}\n.field-error:focus {\n border-color: red;\n outline-color: red;\n}\n\n.multi-select-readonly-container {\n list-style: none;\n}\n.multi-select-readonly-container li {\n display: inline-block;\n}\n\n[part=\"input\"]:disabled,\n[part=\"select\"]:disabled {\n cursor: not-allowed;\n}\n","import { Component, Prop, State, h, Element } from \"@stencil/core\";\nimport { t } from \"../../../i18n\";\nimport { state as profileState } from \"../../store/profile-store\";\n/**\n * @part select_field - Styles the base <select> element.\n * @part select_field--example_field - Example of a field-specific selector.\n * Replace `example_field` with your field name.\n * e.g. `custom_attributes.favorite_nut` → `select_field--custom_attributes-favorite_nut`, `country_code` → `select_field--country-code`\n * @part radio-group-item_radio\n * @part radio-group_field\n * @part radio-group-item_label\n * @part radio_checked\n * @part multi-select-item_checkbox\n * @part multi-select-group_field\n * @part multi-select-item_label\n * @part textarea_field\n * @part input_field\n */\n\n@Component({\n tag: \"u-field\",\n styleUrl: \"field.css\",\n shadow: true,\n})\nexport class Field {\n @Prop() field!: string;\n @Prop() required = false;\n @Prop() readonlyPlaceholder = \"No information\";\n @Prop() countryCodeDisplayOption?: \"icon\" | \"label\" = \"label\";\n @Prop() invalidPhoneMessage = \"Please enter a valid phone number.\";\n @Prop({ attribute: \"class-name\" }) componentClassName?: string;\n @Prop() emptyOption = true;\n @Prop() placeholder?: string;\n @Prop() renderDefaultLabel = true;\n\n @Prop() pattern?: string;\n @Prop() patternErrorMessage?: string;\n @Prop() validationFunc?: (value: string | string[]) => { valid: boolean; message?: string };\n\n @Element() el!: HTMLElement;\n\n @State() selected?: string | string[];\n\n private getFieldData() {\n return this.field.startsWith(\"custom_attributes.\")\n ? profileState.data.custom_attributes?.[this.field.replace(\"custom_attributes.\", \"\")]\n : profileState.data[this.field];\n }\n\n componentWillLoad() {}\n\n componentDidRender() {\n const fieldErrors = profileState.errors;\n\n if (Object.keys(fieldErrors)[0] === this.field) {\n this.el.shadowRoot?.getElementById(this.field)?.scrollIntoView({ behavior: \"smooth\", block: \"center\" });\n this.el.shadowRoot\n ?.getElementById(this.field)\n ?.querySelector<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>(\"input, select, textarea\")\n ?.focus();\n }\n }\n\n private createSpecificPartKey(fieldName: string) {\n if (fieldName.startsWith(\"custom_attributes.\")) {\n return fieldName.replace(/[^\\w-]/g, \"-\");\n }\n return fieldName;\n }\n\n // biome-ignore lint/suspicious/noExplicitAny: needed for dynamic fieldData\n private multiSelectLabel = (fieldData: any): string[] => {\n const multiselectMatches: string[] = [];\n if (Array.isArray(fieldData.value)) {\n for (const val of fieldData.value) {\n // biome-ignore lint/suspicious/noExplicitAny: needed for dynamic option\n const match = fieldData.options?.find((opt: any) => opt.value === val);\n const optionTranslationKey = `fields.${this.field}.options.${val}`;\n const translatedOptionLabel = t(optionTranslationKey);\n const optionLabel = translatedOptionLabel !== optionTranslationKey ? translatedOptionLabel : match?.label;\n multiselectMatches.push(optionLabel ?? val);\n }\n }\n return multiselectMatches;\n };\n\n render() {\n if (profileState.loading) {\n return <u-spinner />;\n }\n\n const fieldData = this.getFieldData();\n if (!fieldData) {\n return null;\n }\n\n const labelTranslationKey = `fields.${this.field}.label`;\n const label = t(labelTranslationKey, { defaultValue: fieldData?.label });\n\n const placeholderTranslationKey = `fields.${this.field}.placeholder`;\n const placeholder = t(placeholderTranslationKey, { defaultValue: this.placeholder ? this.placeholder : \"\" });\n\n const readonlyPlaceholderTranslationKey = `fields.${this.field}.readonlyPlaceholder`;\n const readonlyPlaceholder = t(readonlyPlaceholderTranslationKey, {\n defaultValue: this.readonlyPlaceholder ? this.readonlyPlaceholder : \"\",\n });\n\n const translatedOptions = (fieldData.options || []).map((opt) => {\n const translationKey = `fields.${this.field}.options.${opt.value}`;\n const label = t(translationKey, { defaultValue: opt.label });\n return { ...opt, label };\n });\n\n const translatedRadioOptions = (fieldData.radio_options || []).map((opt) => {\n const translationKey = `fields.${this.field}.options.${opt.value}`;\n const label = t(translationKey, { defaultValue: opt.label });\n return { ...opt, label };\n });\n\n const errorPrefix = t(\"errors.prefix\", { defaultValue: \"ERROR: \" });\n\n const isLocked = !!fieldData?.locked;\n const lockedText = fieldData?.locked_text ? fieldData.locked_text : \"\";\n const isReadonly = fieldData?.readonly === true;\n const multiSelectReadonlyLabels = this.multiSelectLabel(fieldData);\n\n return (\n <div part={`field-container field-container--${this.createSpecificPartKey(this.field)}`}>\n <slot name=\"label\" />\n\n {this.renderDefaultLabel && (\n <label htmlFor={this.field} part={`field_label field_label--${this.createSpecificPartKey(this.field)}`}>\n {label}\n {fieldData?.required || this.required ? <span part=\"required-indicator\"> *</span> : null}\n </label>\n )}\n {isReadonly && fieldData?.type !== \"checkbox\" ? (\n <span id={this.field} part=\"readonly-indicator\">\n {fieldData?.value || readonlyPlaceholder}\n </span>\n ) : null}\n {isReadonly && fieldData?.type === \"checkbox\" && (\n <ul id={this.field} class=\"multi-select-readonly-container\" part=\"multi-select-readonly-container\">\n {multiSelectReadonlyLabels.map((label) => (\n <li key={label} part=\"multi-select-readonly-field\">\n {label}\n </li>\n ))}\n </ul>\n )}\n {!isReadonly && (\n <u-raw-field\n id={this.field}\n field={this.field}\n type={fieldData.type as string}\n value={fieldData.value}\n options={fieldData.type === \"select\" ? translatedOptions : undefined}\n radioOptions={fieldData.type === \"radio\" ? translatedRadioOptions : undefined}\n multiSelectOptions={fieldData.type === \"checkbox\" ? translatedOptions : undefined}\n required={fieldData.required || this.required}\n disabled={isLocked}\n tooltip={isLocked ? lockedText : undefined}\n placeholder={placeholder}\n componentClassName={this.componentClassName}\n emptyOption={this.emptyOption}\n countryCodeDisplayOption={this.countryCodeDisplayOption}\n attrName={fieldData.attr_name}\n specificPartKey={this.createSpecificPartKey(this.field)}\n ariaDescribedBy={profileState.errors[this.field] ? `${this.field}-error` : undefined}\n pattern={this.pattern}\n patternErrorMessage={this.patternErrorMessage}\n validationFunc={this.validationFunc}\n />\n )}\n\n {profileState.errors[this.field] && (\n <span id={`${this.field}-error`} part=\"field-error-message\" aria-live=\"assertive\">\n {errorPrefix} {profileState.errors[this.field]}\n </span>\n )}\n </div>\n );\n }\n}\n"],"version":3}