@authhero/widget 0.32.42 → 0.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/authhero-widget/authhero-widget.esm.js +1 -1
- package/dist/authhero-widget/index.esm.js +1 -1
- package/dist/authhero-widget/{p-5f7b7943.entry.js → p-5a319adc.entry.js} +1 -1
- package/dist/authhero-widget/p-f6babd26.entry.js +1 -0
- package/dist/cjs/authhero-node.cjs.entry.js +82 -5
- package/dist/cjs/authhero-widget.cjs.entry.js +133 -35
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/collection/components/authhero-node/authhero-node.css +116 -1
- package/dist/collection/components/authhero-node/authhero-node.js +84 -2
- package/dist/collection/components/authhero-widget/authhero-widget.js +135 -37
- package/dist/components/authhero-node.js +1 -1
- package/dist/components/authhero-widget.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/p-BqdJX4cC.js +1 -0
- package/dist/esm/authhero-node.entry.js +83 -6
- package/dist/esm/authhero-widget.entry.js +133 -35
- package/dist/esm/index.js +1 -1
- package/dist/types/components/authhero-node/authhero-node.d.ts +12 -0
- package/dist/types/components/authhero-widget/authhero-widget.d.ts +26 -0
- package/dist/types/components.d.ts +0 -6
- package/dist/types/types/components.d.ts +1 -1
- package/hydrate/index.js +215 -40
- package/hydrate/index.mjs +215 -40
- package/package.json +2 -2
- package/dist/authhero-widget/p-1fc7fcdb.entry.js +0 -1
- package/dist/components/p-BzbxtmOP.js +0 -1
package/hydrate/index.mjs
CHANGED
|
@@ -5498,7 +5498,7 @@ function getCountryByCode(code) {
|
|
|
5498
5498
|
countries.find((c) => c.code === "US"));
|
|
5499
5499
|
}
|
|
5500
5500
|
|
|
5501
|
-
const authheroNodeCss = () => `:host{display:block}.input-wrapper{display:flex;flex-direction:column;position:relative;margin-top:8px;margin-bottom:16px}.input-container{position:relative;width:100%}.input-label{position:absolute;left:16px;top:50%;transform:translateY(-50%);font-size:var(--ah-font-size-label, 16px);font-weight:var(--ah-font-weight-label, 400);color:var(--ah-color-text-muted, #65676e);pointer-events:none;transition:all 0.15s ease-out;background-color:transparent;padding:0;z-index:1}.input-label.floating,.input-field:focus+.input-label,.input-field:not(:placeholder-shown)+.input-label,select.input-field+.input-label,input[type="date"].input-field+.input-label{top:-8px;transform:translateY(0);font-size:12px;background-color:var(--ah-color-bg, #ffffff);padding:0 4px;left:12px;color:var(--ah-color-text-muted, #65676e)}.input-field:focus+.input-label{color:var(--ah-color-primary, #635dff)}.required{color:var(--ah-color-error, #d03c38);margin-left:2px}.input-field{width:100%;padding:16px;font-size:16px;font-family:inherit;color:var(--ah-color-input-text, var(--ah-color-text, #1e212a));background-color:var(--ah-color-input-bg, #ffffff);border:var(--ah-input-border-width, 1px) solid var(--ah-color-border, #c9cace);border-radius:var(--ah-input-radius, 3px);outline:none;transition:border-color 0.15s ease-out, box-shadow 0.15s ease-out;box-sizing:border-box}.input-field::placeholder{color:transparent}.input-field:hover{border-color:var(--ah-color-border-hover, #65676e)}.input-field:focus{border-color:var(--ah-color-primary, #635dff);box-shadow:inset 0 0 0 1px var(--ah-color-primary, #635dff)}.input-field.has-error{border-color:var(--ah-color-error, #d03c38)}.input-field.has-error:focus{box-shadow:inset 0 0 0 1px var(--ah-color-error, #d03c38)}.input-field:disabled{background-color:var(--ah-color-bg-disabled, #f5f5f5);border-color:var(--ah-color-border-disabled, #e0e1e3);cursor:not-allowed;opacity:0.7}.password-container{position:relative;display:flex;align-items:center}.password-container .input-field{padding-right:48px}.password-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;color:var(--ah-color-icon, var(--ah-color-text-muted, #65676e));transition:color 0.15s ease}.password-toggle:hover{color:var(--ah-color-icon, var(--ah-color-text, #1e212a))}.password-toggle svg{width:20px;height:20px}.error-text{font-size:12px;color:var(--ah-color-error, #d03c38);margin-top:4px;line-height:1.4}.helper-text{font-size:12px;color:var(--ah-color-text-muted, #65676e);margin-top:4px;line-height:1.4}.field-link{display:block;text-align:left;margin-top:8px;margin-bottom:16px}.field-link a{color:var(--ah-color-link, #635dff);text-decoration:var(--ah-link-decoration, none);font-size:var(--ah-font-size-link, 14px);font-weight:var(--ah-font-weight-link, 400)}.field-link a:hover{text-decoration:underline}.checkbox-wrapper{display:flex;align-items:flex-start;gap:10px;cursor:pointer;margin-bottom:16px}.checkbox-wrapper input[type="checkbox"]{width:18px;height:18px;margin:0;accent-color:var(--ah-color-primary, #635dff);cursor:pointer;flex-shrink:0}.checkbox-label{font-size:var(--ah-font-size-body, 14px);font-weight:var(--ah-font-weight-body, 400);color:var(--ah-color-text, #1e212a);line-height:1.5}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:14px 20px;font-size:var(--ah-font-size-btn, 16px);font-weight:var(--ah-font-weight-btn, 400);font-family:inherit;line-height:1.25;text-align:center;text-decoration:none;border:none;border-radius:var(--ah-btn-radius, 3px);cursor:pointer;transition:background-color 0.15s ease, border-color 0.15s ease, transform 0.1s ease;box-sizing:border-box}.btn:disabled{opacity:0.6;cursor:not-allowed}.btn:not(:disabled):active{transform:scale(0.98)}.btn:focus-visible{outline:2px solid var(--ah-color-focus-ring, var(--ah-color-primary, #635dff));outline-offset:2px}.btn-primary{background-color:var(--ah-color-primary, #635dff);color:var(--ah-color-text-on-primary, #ffffff);margin-top:12px}.btn-primary:not(:disabled):hover{background-color:var(--ah-color-primary-hover, color-mix(in srgb, var(--ah-color-primary, #635dff) 85%, black))}.btn-secondary{background-color:var(--ah-color-bg, #ffffff);color:var(--ah-btn-secondary-text, var(--ah-color-text, #1e212a));border:var(--ah-btn-border-width, 1px) solid var(--ah-btn-secondary-border, var(--ah-color-border, #c9cace))}.btn-secondary:not(:disabled):hover{background-color:var(--ah-color-bg-hover, #f5f5f5);border-color:var(--ah-color-border-hover, #65676e)}.btn-link{background:none;border:none;color:var(--ah-color-link, #635dff);padding:8px 0;font-weight:var(--ah-font-weight-link, 400);text-decoration:none}.btn-link:hover{text-decoration:underline}.phone-input-wrapper{display:flex;align-items:stretch;gap:0;width:100%}.country-select{flex-shrink:0;width:auto;padding:12px 8px;font-size:var(--ah-font-size-body, 16px);font-family:var(--ah-font-family, inherit);border:var(--ah-input-border-width, 1px) solid var(--ah-color-border, #c9cace);border-right:none;border-radius:var(--ah-input-radius, 4px) 0 0 var(--ah-input-radius, 4px);background-color:var(--ah-color-input-bg, var(--ah-color-surface, #fff));color:var(--ah-color-input-text, var(--ah-color-text, #1e212a));cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center;padding-right:22px}.country-select:focus{outline:none;border-color:var(--ah-color-primary, #635dff);box-shadow:0 0 0 1px var(--ah-color-primary, #635dff)}.country-select:disabled{opacity:0.5;cursor:not-allowed}.phone-input-wrapper .input-container{flex:1;min-width:0}.phone-input-wrapper .input-field{border-radius:0 var(--ah-input-radius, 4px) var(--ah-input-radius, 4px) 0}.phone-input-wrapper .input-label.floating,.phone-input-wrapper .input-field:focus+.input-label,.phone-input-wrapper .input-field:not(:placeholder-shown)+.input-label{left:8px}.social-buttons{display:flex;flex-direction:column;gap:12px}.btn-social{display:flex;align-items:center;justify-content:center;gap:12px}.btn-social-content{display:flex;flex-direction:column;align-items:center;text-align:center}.btn-social-subtitle{font-size:12px;font-style:italic;opacity:0.8;margin-top:2px}.btn-social-subtitle:empty{display:none}.social-icon{width:20px;height:20px;flex-shrink:0}@media (max-width: 480px){.social-buttons:has(.btn-social:nth-child(3)){flex-direction:row;flex-wrap:nowrap;justify-content:stretch;gap:8px}.social-buttons:has(.btn-social:nth-child(3)) .btn-social{width:auto;min-width:0;padding:12px;flex:1 1 0}.social-buttons:has(.btn-social:nth-child(3)) .btn-social span{display:none}.social-buttons:has(.btn-social:nth-child(3)) .social-icon{width:24px;height:24px}}.btn-icon{width:20px;height:20px;flex-shrink:0}.btn-icon img{width:100%;height:100%;object-fit:contain}.text-title{font-size:var(--ah-font-size-title, 20px);font-weight:var(--ah-font-weight-title, 400);color:var(--ah-color-text-header, var(--ah-color-header, #1e212a));margin:8px 0;line-height:1.3}.text-title.text-success{color:var(--ah-color-success, #13a769)}.text-description{font-size:var(--ah-font-size-subtitle, 14px);font-weight:var(--ah-font-weight-subtitle, 400);color:var(--ah-color-text-muted, #65676e);margin:4px 0;line-height:1.5}.image{display:block;max-width:100%;height:auto;border-radius:4px}.image-centered{margin:0 auto 16px;width:52px;height:52px;object-fit:contain}.link{color:var(--ah-color-link, #635dff);text-decoration:var(--ah-link-decoration, none);font-size:var(--ah-font-size-link, 14px);transition:color 0.15s ease}.link:hover{text-decoration:underline}.link:focus-visible{outline:2px solid var(--ah-color-focus-ring, var(--ah-color-link, #635dff));outline-offset:2px;border-radius:2px}.node-error{padding:12px 16px;background-color:var(--ah-color-error-bg, #ffeaea);color:var(--ah-color-error, #d03c38);border-left:3px solid var(--ah-color-error, #d03c38);border-radius:0;font-size:14px;margin-bottom:16px}.node-success{padding:12px 16px;background-color:var(--ah-color-success-bg, #e6f9f1);color:var(--ah-color-success, #13a769);border-left:3px solid var(--ah-color-success, #13a769);border-radius:0;font-size:14px;margin-bottom:16px}.divider{display:flex;align-items:center;text-align:center;margin:16px 0}.divider::before,.divider::after{content:"";flex:1;border-bottom:1px solid var(--ah-color-border-muted, #c9cace)}.divider-text{padding:0 10px;font-size:12px;font-weight:400;color:var(--ah-color-text-muted, #65676e);text-transform:uppercase;letter-spacing:0.5px}.rich-text{font-size:var(--ah-font-size-body, 14px);font-weight:var(--ah-font-weight-body, 400);line-height:1.5;color:var(--ah-color-text, #1e212a)}.rich-text a{color:var(--ah-color-link, #635dff);text-decoration:var(--ah-link-decoration, none);transition:color 0.15s ease}.rich-text a:hover{text-decoration:underline}.rich-text .terms-text{margin-top:16px;text-align:center;font-size:12px;color:var(--ah-color-text-muted, #65676e)}.rich-text .terms-text a{font-size:12px}.rich-text .forgot-password-link{text-align:right;font-size:13px;margin-top:4px}.rich-text .forgot-password-link a{font-size:13px;color:var(--ah-color-link, #635dff)}.rich-text .passwordless-link{margin-top:16px;text-align:center;font-size:14px}.rich-text .passwordless-link a{color:var(--ah-color-link, #635dff);text-decoration:var(--ah-link-decoration, none)}.rich-text .passwordless-link a:hover{text-decoration:underline}.rich-text .signup-link{margin-top:16px;text-align:center;font-size:14px;color:var(--ah-color-text, #1e212a)}`;
|
|
5501
|
+
const authheroNodeCss = () => `:host{display:block}.input-wrapper{display:flex;flex-direction:column;position:relative;margin-top:8px;margin-bottom:16px}.input-container{position:relative;width:100%}.input-label{position:absolute;left:16px;top:50%;transform:translateY(-50%);font-size:var(--ah-font-size-label, 16px);font-weight:var(--ah-font-weight-label, 400);color:var(--ah-color-text-muted, #65676e);pointer-events:none;transition:all 0.15s ease-out;background-color:transparent;padding:0;z-index:1}.input-label.floating,.input-field:focus+.input-label,.input-field:not(:placeholder-shown)+.input-label,select.input-field+.input-label,input[type="date"].input-field+.input-label{top:-8px;transform:translateY(0);font-size:12px;background-color:var(--ah-color-bg, #ffffff);padding:0 4px;left:12px;color:var(--ah-color-text-muted, #65676e)}.input-field:focus+.input-label{color:var(--ah-color-primary, #635dff)}.required{color:var(--ah-color-error, #d03c38);margin-left:2px}.input-field{width:100%;padding:16px;font-size:16px;font-family:inherit;color:var(--ah-color-input-text, var(--ah-color-text, #1e212a));background-color:var(--ah-color-input-bg, #ffffff);border:var(--ah-input-border-width, 1px) solid var(--ah-color-border, #c9cace);border-radius:var(--ah-input-radius, 3px);outline:none;transition:border-color 0.15s ease-out, box-shadow 0.15s ease-out;box-sizing:border-box}.input-field::placeholder{color:transparent}.input-field:hover{border-color:var(--ah-color-border-hover, #65676e)}.input-field:focus{border-color:var(--ah-color-primary, #635dff);box-shadow:inset 0 0 0 1px var(--ah-color-primary, #635dff)}.input-field.has-error{border-color:var(--ah-color-error, #d03c38)}.input-field.has-error:focus{box-shadow:inset 0 0 0 1px var(--ah-color-error, #d03c38)}.input-field:disabled{background-color:var(--ah-color-bg-disabled, #f5f5f5);border-color:var(--ah-color-border-disabled, #e0e1e3);cursor:not-allowed;opacity:0.7}.password-container{position:relative;display:flex;align-items:center}.password-container .input-field{padding-right:48px}.password-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;color:var(--ah-color-icon, var(--ah-color-text-muted, #65676e));transition:color 0.15s ease}.password-toggle:hover{color:var(--ah-color-icon, var(--ah-color-text, #1e212a))}.password-toggle svg{width:20px;height:20px}.error-text{font-size:12px;color:var(--ah-color-error, #d03c38);margin-top:4px;line-height:1.4}.helper-text{font-size:12px;color:var(--ah-color-text-muted, #65676e);margin-top:4px;line-height:1.4}.field-link{display:block;text-align:left;margin-top:8px;margin-bottom:16px}.field-link a{color:var(--ah-color-link, #635dff);text-decoration:var(--ah-link-decoration, none);font-size:var(--ah-font-size-link, 14px);font-weight:var(--ah-font-weight-link, 400)}.field-link a:hover{text-decoration:underline}.checkbox-wrapper{display:flex;align-items:flex-start;gap:10px;cursor:pointer;margin-bottom:16px}.checkbox-wrapper input[type="checkbox"]{width:18px;height:18px;margin:0;accent-color:var(--ah-color-primary, #635dff);cursor:pointer;flex-shrink:0}.checkbox-label{font-size:var(--ah-font-size-body, 14px);font-weight:var(--ah-font-weight-body, 400);color:var(--ah-color-text, #1e212a);line-height:1.5}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:14px 20px;font-size:var(--ah-font-size-btn, 16px);font-weight:var(--ah-font-weight-btn, 400);font-family:inherit;line-height:1.25;text-align:center;text-decoration:none;border:none;border-radius:var(--ah-btn-radius, 3px);cursor:pointer;transition:background-color 0.15s ease, border-color 0.15s ease, transform 0.1s ease;box-sizing:border-box}.btn:disabled{opacity:0.6;cursor:not-allowed}.btn:not(:disabled):active{transform:scale(0.98)}.btn:focus-visible{outline:2px solid var(--ah-color-focus-ring, var(--ah-color-primary, #635dff));outline-offset:2px}.btn-primary{background-color:var(--ah-color-primary, #635dff);color:var(--ah-color-text-on-primary, #ffffff);margin-top:12px}.btn-primary:not(:disabled):hover{background-color:var(--ah-color-primary-hover, color-mix(in srgb, var(--ah-color-primary, #635dff) 85%, black))}.btn-secondary{background-color:var(--ah-color-bg, #ffffff);color:var(--ah-btn-secondary-text, var(--ah-color-text, #1e212a));border:var(--ah-btn-border-width, 1px) solid var(--ah-btn-secondary-border, var(--ah-color-border, #c9cace))}.btn-secondary:not(:disabled):hover{background-color:var(--ah-color-bg-hover, #f5f5f5);border-color:var(--ah-color-border-hover, #65676e)}.btn-link{background:none;border:none;color:var(--ah-color-link, #635dff);padding:8px 0;font-weight:var(--ah-font-weight-link, 400);text-decoration:none}.btn-link:hover{text-decoration:underline}.phone-input-wrapper{display:flex;align-items:stretch;gap:0;width:100%}.country-select{flex-shrink:0;width:auto;padding:12px 8px;font-size:var(--ah-font-size-body, 16px);font-family:var(--ah-font-family, inherit);border:var(--ah-input-border-width, 1px) solid var(--ah-color-border, #c9cace);border-right:none;border-radius:var(--ah-input-radius, 4px) 0 0 var(--ah-input-radius, 4px);background-color:var(--ah-color-input-bg, var(--ah-color-surface, #fff));color:var(--ah-color-input-text, var(--ah-color-text, #1e212a));cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center;padding-right:22px}.country-select:focus{outline:none;border-color:var(--ah-color-primary, #635dff);box-shadow:0 0 0 1px var(--ah-color-primary, #635dff)}.country-select:disabled{opacity:0.5;cursor:not-allowed}.phone-input-wrapper .input-container{flex:1;min-width:0}.phone-input-wrapper .input-field{border-radius:0 var(--ah-input-radius, 4px) var(--ah-input-radius, 4px) 0}.phone-input-wrapper .input-label.floating,.phone-input-wrapper .input-field:focus+.input-label,.phone-input-wrapper .input-field:not(:placeholder-shown)+.input-label{left:8px}.social-buttons{display:flex;flex-direction:column;gap:12px}.btn-social{display:flex;align-items:center;justify-content:center;gap:12px}.btn-social-content{display:flex;flex-direction:column;align-items:center;text-align:center}.btn-social-subtitle{font-size:12px;font-style:italic;opacity:0.8;margin-top:2px}.btn-social-subtitle:empty{display:none}.social-icon{width:20px;height:20px;flex-shrink:0}@media (max-width: 480px){.social-buttons:has(.btn-social:nth-child(3)){flex-direction:row;flex-wrap:nowrap;justify-content:stretch;gap:8px}.social-buttons:has(.btn-social:nth-child(3)) .btn-social{width:auto;min-width:0;padding:12px;flex:1 1 0}.social-buttons:has(.btn-social:nth-child(3)) .btn-social span{display:none}.social-buttons:has(.btn-social:nth-child(3)) .social-icon{width:24px;height:24px}}.btn-icon{width:20px;height:20px;flex-shrink:0}.btn-icon img{width:100%;height:100%;object-fit:contain}.text-title{font-size:var(--ah-font-size-title, 20px);font-weight:var(--ah-font-weight-title, 400);color:var(--ah-color-text-header, var(--ah-color-header, #1e212a));margin:8px 0;line-height:1.3}.text-title.text-success{color:var(--ah-color-success, #13a769)}.text-description{font-size:var(--ah-font-size-subtitle, 14px);font-weight:var(--ah-font-weight-subtitle, 400);color:var(--ah-color-text-muted, #65676e);margin:4px 0;line-height:1.5}.image{display:block;max-width:100%;height:auto;border-radius:4px}.image-centered{margin:0 auto 16px;width:52px;height:52px;object-fit:contain}.link{color:var(--ah-color-link, #635dff);text-decoration:var(--ah-link-decoration, none);font-size:var(--ah-font-size-link, 14px);transition:color 0.15s ease}.link:hover{text-decoration:underline}.link:focus-visible{outline:2px solid var(--ah-color-focus-ring, var(--ah-color-link, #635dff));outline-offset:2px;border-radius:2px}.node-error{padding:12px 16px;background-color:var(--ah-color-error-bg, #ffeaea);color:var(--ah-color-error, #d03c38);border-left:3px solid var(--ah-color-error, #d03c38);border-radius:0;font-size:14px;margin-bottom:16px}.node-success{padding:12px 16px;background-color:var(--ah-color-success-bg, #e6f9f1);color:var(--ah-color-success, #13a769);border-left:3px solid var(--ah-color-success, #13a769);border-radius:0;font-size:14px;margin-bottom:16px}.divider{display:flex;align-items:center;text-align:center;margin:16px 0}.divider::before,.divider::after{content:"";flex:1;border-bottom:1px solid var(--ah-color-border-muted, #c9cace)}.divider-text{padding:0 10px;font-size:12px;font-weight:400;color:var(--ah-color-text-muted, #65676e);text-transform:uppercase;letter-spacing:0.5px}.rich-text{font-size:var(--ah-font-size-body, 14px);font-weight:var(--ah-font-weight-body, 400);line-height:1.5;color:var(--ah-color-text, #1e212a)}.rich-text a{color:var(--ah-color-link, #635dff);text-decoration:var(--ah-link-decoration, none);transition:color 0.15s ease}.rich-text a:hover{text-decoration:underline}.rich-text .terms-text{margin-top:16px;text-align:center;font-size:12px;color:var(--ah-color-text-muted, #65676e)}.rich-text .terms-text a{font-size:12px}.rich-text .forgot-password-link{text-align:right;font-size:13px;margin-top:4px}.rich-text .forgot-password-link a{font-size:13px;color:var(--ah-color-link, #635dff)}.rich-text .passwordless-link{margin-top:16px;text-align:center;font-size:14px}.rich-text .passwordless-link a{color:var(--ah-color-link, #635dff);text-decoration:var(--ah-link-decoration, none)}.rich-text .passwordless-link a:hover{text-decoration:underline}.rich-text .signup-link{margin-top:16px;text-align:center;font-size:14px;color:var(--ah-color-text, #1e212a)}.code-field{position:relative}.code-input{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:none;background:transparent;color:transparent;caret-color:transparent;font-family:inherit;letter-spacing:0;outline:none;cursor:text;-webkit-text-fill-color:transparent}.code-boxes{display:flex;align-items:center;gap:var(--ah-code-group-gap, 12px);justify-content:center}.code-group{display:flex;gap:0}.code-separator{color:var(--ah-color-text-muted, #65676e);font-size:var(--ah-code-font-size, 24px);user-select:none}.code-box-placeholder{color:var(--ah-color-text-muted, #65676e);opacity:0.4}.code-box{position:relative;flex:0 0 auto;width:var(--ah-code-box-width, 48px);height:var(--ah-code-box-height, 56px);display:flex;align-items:center;justify-content:center;font-size:var(--ah-code-font-size, 24px);font-family:inherit;color:var(--ah-color-input-text, var(--ah-color-text, #1e212a));background-color:var(--ah-color-input-bg, #ffffff);border:var(--ah-input-border-width, 1px) solid var(--ah-color-border, #c9cace);border-radius:0;transition:border-color 0.15s ease-out, box-shadow 0.15s ease-out;box-sizing:border-box}.code-box+.code-box{margin-left:calc(-1 * var(--ah-input-border-width, 1px))}.code-group .code-box:first-child{border-top-left-radius:var(--ah-input-radius, 3px);border-bottom-left-radius:var(--ah-input-radius, 3px)}.code-group .code-box:last-child{border-top-right-radius:var(--ah-input-radius, 3px);border-bottom-right-radius:var(--ah-input-radius, 3px)}.code-field:focus-within .code-box.is-active{z-index:1;border-color:var(--ah-color-primary, #635dff);box-shadow:inset 0 0 0 1px var(--ah-color-primary, #635dff)}.code-field.has-error .code-box{border-color:var(--ah-color-error, #d03c38)}.code-input:disabled{cursor:not-allowed}.code-input:disabled~.code-boxes .code-box{background-color:var(--ah-color-bg-disabled, #f5f5f5);border-color:var(--ah-color-border-disabled, #e0e1e3)}`;
|
|
5502
5502
|
|
|
5503
5503
|
class AuthheroNode {
|
|
5504
5504
|
constructor(hostRef) {
|
|
@@ -5506,10 +5506,7 @@ class AuthheroNode {
|
|
|
5506
5506
|
this.fieldChange = createEvent(this, "fieldChange");
|
|
5507
5507
|
this.buttonClick = createEvent(this, "buttonClick");
|
|
5508
5508
|
}
|
|
5509
|
-
|
|
5510
|
-
* The component configuration to render.
|
|
5511
|
-
* Follows Auth0 Forms component schema.
|
|
5512
|
-
*/
|
|
5509
|
+
get host() { return getElement(this); }
|
|
5513
5510
|
component;
|
|
5514
5511
|
/**
|
|
5515
5512
|
* Current value for field components.
|
|
@@ -5559,6 +5556,16 @@ class AuthheroNode {
|
|
|
5559
5556
|
this.initCountryFromConfig();
|
|
5560
5557
|
this.initTelValue();
|
|
5561
5558
|
}
|
|
5559
|
+
componentDidLoad() {
|
|
5560
|
+
// Auto-focus a code field so the caret starts in the first (leftmost) box.
|
|
5561
|
+
if (this.component?.type === "CODE" && !this.disabled) {
|
|
5562
|
+
const value = this.getEffectiveValue() ?? "";
|
|
5563
|
+
if (value.length === 0) {
|
|
5564
|
+
const input = this.host.shadowRoot?.querySelector("input.code-input");
|
|
5565
|
+
input?.focus();
|
|
5566
|
+
}
|
|
5567
|
+
}
|
|
5568
|
+
}
|
|
5562
5569
|
initCountryFromConfig() {
|
|
5563
5570
|
if (this.component?.type === "TEL") {
|
|
5564
5571
|
const config = this.component.config;
|
|
@@ -5717,6 +5724,20 @@ class AuthheroNode {
|
|
|
5717
5724
|
}
|
|
5718
5725
|
}
|
|
5719
5726
|
};
|
|
5727
|
+
handleCodeInput = (e, length, mode, autoSubmit) => {
|
|
5728
|
+
const target = e.target;
|
|
5729
|
+
const disallowed = mode === "alphanumeric" ? /[^a-zA-Z0-9]/g : /\D/g;
|
|
5730
|
+
const cleaned = target.value.replace(disallowed, "").slice(0, length);
|
|
5731
|
+
// Reflect the sanitized value back so the visible boxes never show
|
|
5732
|
+
// characters we stripped (e.g. a pasted "123-456").
|
|
5733
|
+
if (cleaned !== target.value) {
|
|
5734
|
+
target.value = cleaned;
|
|
5735
|
+
}
|
|
5736
|
+
this.fieldChange.emit({ id: this.component.id, value: cleaned });
|
|
5737
|
+
if (autoSubmit && cleaned.length === length) {
|
|
5738
|
+
this.buttonClick.emit({ id: "submit", type: "submit", value: "next" });
|
|
5739
|
+
}
|
|
5740
|
+
};
|
|
5720
5741
|
handleCheckbox = (e) => {
|
|
5721
5742
|
const target = e.target;
|
|
5722
5743
|
this.fieldChange.emit({
|
|
@@ -5863,6 +5884,60 @@ class AuthheroNode {
|
|
|
5863
5884
|
}
|
|
5864
5885
|
return (hAsync("div", { class: "input-wrapper", part: "input-wrapper" }, hAsync("div", { class: "input-container" }, hAsync("input", { id: inputId, class: this.getInputFieldClass(errors.length > 0), part: "input", type: component.sensitive ? "password" : "text", name: component.id, "data-input-name": component.id, value: effectiveValue ?? "", placeholder: " ", required: component.required, disabled: this.disabled, maxLength: max_length, autoComplete: autocomplete, onInput: this.handleInput, onKeyDown: this.handleKeyDown }), this.renderFloatingLabel(component.label, inputId, component.required, hasValue)), this.renderErrors(), errors.length === 0 && this.renderHint(component.hint)));
|
|
5865
5886
|
}
|
|
5887
|
+
/**
|
|
5888
|
+
* Segmented one-time-code input (e.g. SMS/email verification codes).
|
|
5889
|
+
*
|
|
5890
|
+
* Rendered as a SINGLE real <input> overlaid (transparent) on a row of
|
|
5891
|
+
* presentational boxes. This keeps native paste, iOS/Android SMS autofill
|
|
5892
|
+
* (`autocomplete="one-time-code"`) and screen-reader behaviour working —
|
|
5893
|
+
* all of which break when using one <input> per digit.
|
|
5894
|
+
*/
|
|
5895
|
+
renderCodeField(component) {
|
|
5896
|
+
const inputId = `input-${component.id}`;
|
|
5897
|
+
const errors = this.getErrors();
|
|
5898
|
+
const hasError = errors.length > 0;
|
|
5899
|
+
const config = (component.config ?? {});
|
|
5900
|
+
const length = config.length ?? 6;
|
|
5901
|
+
const mode = config.mode ?? "numeric";
|
|
5902
|
+
const autoSubmit = config.auto_submit !== false;
|
|
5903
|
+
const groupSize = config.group_size ?? 3;
|
|
5904
|
+
const separator = config.separator ?? "-";
|
|
5905
|
+
const placeholder = config.placeholder;
|
|
5906
|
+
// Apply the same mode sanitization used on input (handleCodeInput) so a
|
|
5907
|
+
// persisted/default value with invalid characters (e.g. "12-3a" in numeric
|
|
5908
|
+
// mode) doesn't render until edited.
|
|
5909
|
+
const disallowed = mode === "alphanumeric" ? /[^a-zA-Z0-9]/g : /\D/g;
|
|
5910
|
+
const value = (this.getEffectiveValue() ?? "")
|
|
5911
|
+
.replace(disallowed, "")
|
|
5912
|
+
.slice(0, length);
|
|
5913
|
+
const boxClass = (i) => {
|
|
5914
|
+
let cls = "code-box";
|
|
5915
|
+
if (i < value.length)
|
|
5916
|
+
cls += " is-filled";
|
|
5917
|
+
// Highlight the next empty box as the "caret" position while focused.
|
|
5918
|
+
if (!this.disabled && i === value.length)
|
|
5919
|
+
cls += " is-active";
|
|
5920
|
+
return cls;
|
|
5921
|
+
};
|
|
5922
|
+
const renderBox = (i) => (hAsync("div", { class: boxClass(i), part: "code-box" }, value[i] ??
|
|
5923
|
+
(placeholder ? (hAsync("span", { class: "code-box-placeholder" }, placeholder)) : (""))));
|
|
5924
|
+
// Split into groups of `groupSize` (e.g. 3 → "123 - 456"); a non-positive
|
|
5925
|
+
// or >= length size means a single ungrouped row.
|
|
5926
|
+
const useGroups = groupSize > 0 && groupSize < length;
|
|
5927
|
+
const groups = [];
|
|
5928
|
+
if (useGroups) {
|
|
5929
|
+
for (let start = 0; start < length; start += groupSize) {
|
|
5930
|
+
groups.push(Array.from({ length: Math.min(groupSize, length - start) }, (_, j) => start + j));
|
|
5931
|
+
}
|
|
5932
|
+
}
|
|
5933
|
+
else {
|
|
5934
|
+
groups.push(Array.from({ length }, (_, i) => i));
|
|
5935
|
+
}
|
|
5936
|
+
return (hAsync("div", { class: "input-wrapper", part: "input-wrapper" }, hAsync("div", { class: hasError ? "code-field has-error" : "code-field", part: "code-field" }, hAsync("input", { id: inputId, class: "code-input", part: "input code-input", type: "text", name: component.id, "data-input-name": component.id, value: value, inputMode: mode === "numeric" ? "numeric" : "text", autoComplete: "one-time-code", autoCapitalize: "off", autoCorrect: "off", spellcheck: false, maxLength: length, required: component.required, disabled: this.disabled, "aria-label": component.label, "aria-invalid": hasError ? "true" : "false", onInput: (e) => this.handleCodeInput(e, length, mode, autoSubmit), onKeyDown: this.handleKeyDown }), hAsync("div", { class: "code-boxes", part: "code-boxes", "aria-hidden": "true" }, groups.map((group, gi) => [
|
|
5937
|
+
gi > 0 && separator ? (hAsync("span", { class: "code-separator", part: "code-separator" }, separator)) : null,
|
|
5938
|
+
hAsync("div", { class: "code-group", part: "code-group" }, group.map((i) => renderBox(i))),
|
|
5939
|
+
]))), this.renderErrors(), errors.length === 0 && this.renderHint(component.hint)));
|
|
5940
|
+
}
|
|
5866
5941
|
renderEmailField(component) {
|
|
5867
5942
|
const inputId = `input-${component.id}`;
|
|
5868
5943
|
const errors = this.getErrors();
|
|
@@ -6035,6 +6110,8 @@ class AuthheroNode {
|
|
|
6035
6110
|
return this.renderTextField(this.component);
|
|
6036
6111
|
case "EMAIL":
|
|
6037
6112
|
return this.renderEmailField(this.component);
|
|
6113
|
+
case "CODE":
|
|
6114
|
+
return this.renderCodeField(this.component);
|
|
6038
6115
|
case "PASSWORD":
|
|
6039
6116
|
return this.renderPasswordField(this.component);
|
|
6040
6117
|
case "NUMBER":
|
|
@@ -6956,6 +7033,94 @@ class AuthheroWidget {
|
|
|
6956
7033
|
}
|
|
6957
7034
|
});
|
|
6958
7035
|
}
|
|
7036
|
+
/**
|
|
7037
|
+
* Pending resolvers awaiting the next render, flushed by
|
|
7038
|
+
* `componentDidRender`. Lets `swapScreen` wait until the new screen is
|
|
7039
|
+
* actually in the DOM before measuring its height.
|
|
7040
|
+
*/
|
|
7041
|
+
pendingRenderResolvers = [];
|
|
7042
|
+
componentDidRender() {
|
|
7043
|
+
if (this.pendingRenderResolvers.length === 0)
|
|
7044
|
+
return;
|
|
7045
|
+
const resolvers = this.pendingRenderResolvers;
|
|
7046
|
+
this.pendingRenderResolvers = [];
|
|
7047
|
+
resolvers.forEach((resolve) => resolve());
|
|
7048
|
+
}
|
|
7049
|
+
/**
|
|
7050
|
+
* Resolves after Stencil flushes the next render, so `swapScreen` waits for
|
|
7051
|
+
* the new screen to be in the DOM before measuring its height.
|
|
7052
|
+
*/
|
|
7053
|
+
nextRender() {
|
|
7054
|
+
return new Promise((resolve) => {
|
|
7055
|
+
let settled = false;
|
|
7056
|
+
const done = () => {
|
|
7057
|
+
if (settled)
|
|
7058
|
+
return;
|
|
7059
|
+
settled = true;
|
|
7060
|
+
resolve();
|
|
7061
|
+
};
|
|
7062
|
+
this.pendingRenderResolvers.push(done);
|
|
7063
|
+
// Safety net: a screen swap always triggers a render here, but never
|
|
7064
|
+
// hang the swap if one somehow doesn't fire — resolve after a couple of
|
|
7065
|
+
// frames at the latest.
|
|
7066
|
+
requestAnimationFrame(() => requestAnimationFrame(done));
|
|
7067
|
+
});
|
|
7068
|
+
}
|
|
7069
|
+
/**
|
|
7070
|
+
* Apply a screen swap, animating the widget card's height to the next
|
|
7071
|
+
* screen's size (Stripe-style): lock the current height, swap the content,
|
|
7072
|
+
* measure the new natural height, then animate between them. The content
|
|
7073
|
+
* itself doesn't fade — the card just resizes.
|
|
7074
|
+
*
|
|
7075
|
+
* The card (.widget-container) is animated rather than the host because it
|
|
7076
|
+
* carries the background, so its resize is visible; clipping its content
|
|
7077
|
+
* (not the host) also keeps the card's drop-shadow intact.
|
|
7078
|
+
*
|
|
7079
|
+
* Degrades to an immediate swap when the Web Animations API is unavailable
|
|
7080
|
+
* or the user prefers reduced motion.
|
|
7081
|
+
*/
|
|
7082
|
+
async swapScreen(apply) {
|
|
7083
|
+
const card = this.el.shadowRoot?.querySelector(".widget-container");
|
|
7084
|
+
const prefersReducedMotion = typeof window.matchMedia === "function" &&
|
|
7085
|
+
window.matchMedia("(prefers-reduced-motion: reduce)").matches;
|
|
7086
|
+
if (!card || typeof card.animate !== "function" || prefersReducedMotion) {
|
|
7087
|
+
apply();
|
|
7088
|
+
return;
|
|
7089
|
+
}
|
|
7090
|
+
// Lock the current height and clip, so swapping the content doesn't jump
|
|
7091
|
+
// before the animation runs.
|
|
7092
|
+
const startHeight = card.getBoundingClientRect().height;
|
|
7093
|
+
card.style.height = `${startHeight}px`;
|
|
7094
|
+
card.style.overflow = "hidden";
|
|
7095
|
+
apply();
|
|
7096
|
+
// Wait for the new screen to render before measuring its height.
|
|
7097
|
+
await this.nextRender();
|
|
7098
|
+
const cleanup = () => {
|
|
7099
|
+
card.style.height = "";
|
|
7100
|
+
card.style.overflow = "";
|
|
7101
|
+
};
|
|
7102
|
+
// Measure the new content's natural height without painting: toggle to
|
|
7103
|
+
// auto, read, restore — all synchronous, so there's no visible jump.
|
|
7104
|
+
card.style.height = "auto";
|
|
7105
|
+
const endHeight = card.getBoundingClientRect().height;
|
|
7106
|
+
card.style.height = `${startHeight}px`;
|
|
7107
|
+
card.getBoundingClientRect(); // force reflow from startHeight
|
|
7108
|
+
if (Math.abs(endHeight - startHeight) < 1) {
|
|
7109
|
+
cleanup();
|
|
7110
|
+
return;
|
|
7111
|
+
}
|
|
7112
|
+
const animation = card.animate([{ height: `${startHeight}px` }, { height: `${endHeight}px` }], { duration: 520, easing: "cubic-bezier(0.22, 1, 0.36, 1)" });
|
|
7113
|
+
try {
|
|
7114
|
+
await animation.finished;
|
|
7115
|
+
}
|
|
7116
|
+
catch {
|
|
7117
|
+
// Animation cancelled (e.g. superseded by a newer swap); the final
|
|
7118
|
+
// DOM state is already correct, so just fall through to cleanup.
|
|
7119
|
+
}
|
|
7120
|
+
finally {
|
|
7121
|
+
cleanup();
|
|
7122
|
+
}
|
|
7123
|
+
}
|
|
6959
7124
|
/**
|
|
6960
7125
|
* Get the effective autoNavigate value (defaults to autoSubmit if not set)
|
|
6961
7126
|
*/
|
|
@@ -7258,45 +7423,55 @@ class AuthheroWidget {
|
|
|
7258
7423
|
}
|
|
7259
7424
|
else if (!response.ok && result.screen) {
|
|
7260
7425
|
// Handle validation errors (400 response) — preserve user input
|
|
7261
|
-
this.
|
|
7262
|
-
|
|
7263
|
-
|
|
7264
|
-
|
|
7265
|
-
|
|
7426
|
+
await this.swapScreen(() => {
|
|
7427
|
+
// Clear loading first so the captured "after" snapshot doesn't
|
|
7428
|
+
// freeze a disabled button into the cross-fade.
|
|
7429
|
+
this.loading = false;
|
|
7430
|
+
this._screen = result.screen;
|
|
7431
|
+
this.initFormDataFromDefaults(result.screen);
|
|
7432
|
+
this.screenChange.emit(result.screen);
|
|
7433
|
+
this.updateDataScreenAttribute();
|
|
7434
|
+
this.focusFirstInput();
|
|
7435
|
+
});
|
|
7266
7436
|
}
|
|
7267
7437
|
else if (result.screen) {
|
|
7268
7438
|
// Next screen (success)
|
|
7269
|
-
this.
|
|
7270
|
-
|
|
7271
|
-
|
|
7272
|
-
|
|
7273
|
-
|
|
7274
|
-
|
|
7275
|
-
|
|
7276
|
-
this.
|
|
7277
|
-
|
|
7278
|
-
|
|
7279
|
-
|
|
7280
|
-
|
|
7281
|
-
|
|
7282
|
-
|
|
7283
|
-
}
|
|
7284
|
-
// Apply branding if included
|
|
7285
|
-
if (result.branding) {
|
|
7286
|
-
this._branding = result.branding;
|
|
7287
|
-
this.applyThemeStyles();
|
|
7288
|
-
}
|
|
7289
|
-
// Update state if returned
|
|
7290
|
-
if (result.state) {
|
|
7291
|
-
this.state = result.state;
|
|
7439
|
+
await this.swapScreen(() => {
|
|
7440
|
+
// Clear loading first so the captured "after" snapshot doesn't
|
|
7441
|
+
// freeze a disabled button into the cross-fade.
|
|
7442
|
+
this.loading = false;
|
|
7443
|
+
this._screen = result.screen;
|
|
7444
|
+
this.formData = {};
|
|
7445
|
+
this.initFormDataFromDefaults(result.screen);
|
|
7446
|
+
this.screenChange.emit(result.screen);
|
|
7447
|
+
this.updateDataScreenAttribute();
|
|
7448
|
+
// Update screenId if returned in response
|
|
7449
|
+
if (result.screenId) {
|
|
7450
|
+
this.screenId = result.screenId;
|
|
7451
|
+
}
|
|
7452
|
+
// Persist state (especially for session storage mode)
|
|
7292
7453
|
this.persistState();
|
|
7293
|
-
|
|
7294
|
-
|
|
7295
|
-
|
|
7296
|
-
|
|
7297
|
-
|
|
7298
|
-
|
|
7299
|
-
|
|
7454
|
+
// Update URL path if navigateUrl is provided (client-side navigation)
|
|
7455
|
+
if (result.navigateUrl && this.shouldAutoNavigate) {
|
|
7456
|
+
window.history.pushState({ screen: result.screenId, state: this.state }, "", result.navigateUrl);
|
|
7457
|
+
}
|
|
7458
|
+
// Apply branding if included
|
|
7459
|
+
if (result.branding) {
|
|
7460
|
+
this._branding = result.branding;
|
|
7461
|
+
this.applyThemeStyles();
|
|
7462
|
+
}
|
|
7463
|
+
// Update state if returned
|
|
7464
|
+
if (result.state) {
|
|
7465
|
+
this.state = result.state;
|
|
7466
|
+
this.persistState();
|
|
7467
|
+
}
|
|
7468
|
+
// Perform WebAuthn ceremony if present (structured data, not script)
|
|
7469
|
+
if (result.ceremony) {
|
|
7470
|
+
this.performWebAuthnCeremony(result.ceremony);
|
|
7471
|
+
}
|
|
7472
|
+
// Focus first input on new screen
|
|
7473
|
+
this.focusFirstInput();
|
|
7474
|
+
});
|
|
7300
7475
|
}
|
|
7301
7476
|
else if (result.complete) {
|
|
7302
7477
|
// Flow complete without redirect
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@authhero/widget",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.34.0",
|
|
4
4
|
"description": "Server-Driven UI widget for AuthHero authentication flows",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"country-list": "^2.4.1",
|
|
41
|
-
"@authhero/adapter-interfaces": "3.
|
|
41
|
+
"@authhero/adapter-interfaces": "3.2.0"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@hono/node-server": "^1.19.14",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e,c as a,h as o}from"./p-FUW5zvoZ.js";const i=[{code:"US",dialCode:"+1",name:"United States"},{code:"CA",dialCode:"+1",name:"Canada"},{code:"AG",dialCode:"+1",name:"Antigua and Barbuda"},{code:"BS",dialCode:"+1",name:"Bahamas"},{code:"BB",dialCode:"+1",name:"Barbados"},{code:"DM",dialCode:"+1",name:"Dominica"},{code:"DO",dialCode:"+1",name:"Dominican Republic"},{code:"GD",dialCode:"+1",name:"Grenada"},{code:"JM",dialCode:"+1",name:"Jamaica"},{code:"KN",dialCode:"+1",name:"Saint Kitts and Nevis"},{code:"LC",dialCode:"+1",name:"Saint Lucia"},{code:"VC",dialCode:"+1",name:"Saint Vincent and the Grenadines"},{code:"TT",dialCode:"+1",name:"Trinidad and Tobago"},{code:"PR",dialCode:"+1",name:"Puerto Rico"},{code:"KZ",dialCode:"+7",name:"Kazakhstan"},{code:"RU",dialCode:"+7",name:"Russia"},{code:"EG",dialCode:"+20",name:"Egypt"},{code:"ZA",dialCode:"+27",name:"South Africa"},{code:"GR",dialCode:"+30",name:"Greece"},{code:"NL",dialCode:"+31",name:"Netherlands"},{code:"BE",dialCode:"+32",name:"Belgium"},{code:"FR",dialCode:"+33",name:"France"},{code:"ES",dialCode:"+34",name:"Spain"},{code:"HU",dialCode:"+36",name:"Hungary"},{code:"IT",dialCode:"+39",name:"Italy"},{code:"RO",dialCode:"+40",name:"Romania"},{code:"CH",dialCode:"+41",name:"Switzerland"},{code:"AT",dialCode:"+43",name:"Austria"},{code:"GB",dialCode:"+44",name:"United Kingdom"},{code:"DK",dialCode:"+45",name:"Denmark"},{code:"SE",dialCode:"+46",name:"Sweden"},{code:"NO",dialCode:"+47",name:"Norway"},{code:"PL",dialCode:"+48",name:"Poland"},{code:"DE",dialCode:"+49",name:"Germany"},{code:"PE",dialCode:"+51",name:"Peru"},{code:"MX",dialCode:"+52",name:"Mexico"},{code:"CU",dialCode:"+53",name:"Cuba"},{code:"AR",dialCode:"+54",name:"Argentina"},{code:"BR",dialCode:"+55",name:"Brazil"},{code:"CL",dialCode:"+56",name:"Chile"},{code:"CO",dialCode:"+57",name:"Colombia"},{code:"VE",dialCode:"+58",name:"Venezuela"},{code:"MY",dialCode:"+60",name:"Malaysia"},{code:"AU",dialCode:"+61",name:"Australia"},{code:"ID",dialCode:"+62",name:"Indonesia"},{code:"PH",dialCode:"+63",name:"Philippines"},{code:"NZ",dialCode:"+64",name:"New Zealand"},{code:"SG",dialCode:"+65",name:"Singapore"},{code:"TH",dialCode:"+66",name:"Thailand"},{code:"JP",dialCode:"+81",name:"Japan"},{code:"KR",dialCode:"+82",name:"South Korea"},{code:"VN",dialCode:"+84",name:"Vietnam"},{code:"CN",dialCode:"+86",name:"China"},{code:"TR",dialCode:"+90",name:"Turkey"},{code:"IN",dialCode:"+91",name:"India"},{code:"PK",dialCode:"+92",name:"Pakistan"},{code:"AF",dialCode:"+93",name:"Afghanistan"},{code:"LK",dialCode:"+94",name:"Sri Lanka"},{code:"MM",dialCode:"+95",name:"Myanmar"},{code:"IR",dialCode:"+98",name:"Iran"},{code:"SS",dialCode:"+211",name:"South Sudan"},{code:"MA",dialCode:"+212",name:"Morocco"},{code:"DZ",dialCode:"+213",name:"Algeria"},{code:"TN",dialCode:"+216",name:"Tunisia"},{code:"LY",dialCode:"+218",name:"Libya"},{code:"GM",dialCode:"+220",name:"Gambia"},{code:"SN",dialCode:"+221",name:"Senegal"},{code:"MR",dialCode:"+222",name:"Mauritania"},{code:"ML",dialCode:"+223",name:"Mali"},{code:"GN",dialCode:"+224",name:"Guinea"},{code:"CI",dialCode:"+225",name:"Ivory Coast"},{code:"BF",dialCode:"+226",name:"Burkina Faso"},{code:"NE",dialCode:"+227",name:"Niger"},{code:"TG",dialCode:"+228",name:"Togo"},{code:"BJ",dialCode:"+229",name:"Benin"},{code:"MU",dialCode:"+230",name:"Mauritius"},{code:"LR",dialCode:"+231",name:"Liberia"},{code:"SL",dialCode:"+232",name:"Sierra Leone"},{code:"GH",dialCode:"+233",name:"Ghana"},{code:"NG",dialCode:"+234",name:"Nigeria"},{code:"TD",dialCode:"+235",name:"Chad"},{code:"CF",dialCode:"+236",name:"Central African Republic"},{code:"CM",dialCode:"+237",name:"Cameroon"},{code:"CV",dialCode:"+238",name:"Cape Verde"},{code:"ST",dialCode:"+239",name:"São Tomé and Príncipe"},{code:"GQ",dialCode:"+240",name:"Equatorial Guinea"},{code:"GA",dialCode:"+241",name:"Gabon"},{code:"CG",dialCode:"+242",name:"Congo"},{code:"CD",dialCode:"+243",name:"Congo (DRC)"},{code:"AO",dialCode:"+244",name:"Angola"},{code:"GW",dialCode:"+245",name:"Guinea-Bissau"},{code:"SC",dialCode:"+248",name:"Seychelles"},{code:"SD",dialCode:"+249",name:"Sudan"},{code:"RW",dialCode:"+250",name:"Rwanda"},{code:"ET",dialCode:"+251",name:"Ethiopia"},{code:"SO",dialCode:"+252",name:"Somalia"},{code:"DJ",dialCode:"+253",name:"Djibouti"},{code:"KE",dialCode:"+254",name:"Kenya"},{code:"TZ",dialCode:"+255",name:"Tanzania"},{code:"UG",dialCode:"+256",name:"Uganda"},{code:"BI",dialCode:"+257",name:"Burundi"},{code:"MZ",dialCode:"+258",name:"Mozambique"},{code:"ZM",dialCode:"+260",name:"Zambia"},{code:"MG",dialCode:"+261",name:"Madagascar"},{code:"RE",dialCode:"+262",name:"Réunion"},{code:"ZW",dialCode:"+263",name:"Zimbabwe"},{code:"NA",dialCode:"+264",name:"Namibia"},{code:"MW",dialCode:"+265",name:"Malawi"},{code:"LS",dialCode:"+266",name:"Lesotho"},{code:"BW",dialCode:"+267",name:"Botswana"},{code:"SZ",dialCode:"+268",name:"Eswatini"},{code:"KM",dialCode:"+269",name:"Comoros"},{code:"ER",dialCode:"+291",name:"Eritrea"},{code:"PT",dialCode:"+351",name:"Portugal"},{code:"LU",dialCode:"+352",name:"Luxembourg"},{code:"IE",dialCode:"+353",name:"Ireland"},{code:"IS",dialCode:"+354",name:"Iceland"},{code:"AL",dialCode:"+355",name:"Albania"},{code:"MT",dialCode:"+356",name:"Malta"},{code:"CY",dialCode:"+357",name:"Cyprus"},{code:"FI",dialCode:"+358",name:"Finland"},{code:"BG",dialCode:"+359",name:"Bulgaria"},{code:"LT",dialCode:"+370",name:"Lithuania"},{code:"LV",dialCode:"+371",name:"Latvia"},{code:"EE",dialCode:"+372",name:"Estonia"},{code:"MD",dialCode:"+373",name:"Moldova"},{code:"AM",dialCode:"+374",name:"Armenia"},{code:"BY",dialCode:"+375",name:"Belarus"},{code:"AD",dialCode:"+376",name:"Andorra"},{code:"MC",dialCode:"+377",name:"Monaco"},{code:"SM",dialCode:"+378",name:"San Marino"},{code:"UA",dialCode:"+380",name:"Ukraine"},{code:"RS",dialCode:"+381",name:"Serbia"},{code:"ME",dialCode:"+382",name:"Montenegro"},{code:"XK",dialCode:"+383",name:"Kosovo"},{code:"HR",dialCode:"+385",name:"Croatia"},{code:"SI",dialCode:"+386",name:"Slovenia"},{code:"BA",dialCode:"+387",name:"Bosnia and Herzegovina"},{code:"MK",dialCode:"+389",name:"North Macedonia"},{code:"CZ",dialCode:"+420",name:"Czech Republic"},{code:"SK",dialCode:"+421",name:"Slovakia"},{code:"LI",dialCode:"+423",name:"Liechtenstein"},{code:"FK",dialCode:"+500",name:"Falkland Islands"},{code:"BZ",dialCode:"+501",name:"Belize"},{code:"GT",dialCode:"+502",name:"Guatemala"},{code:"SV",dialCode:"+503",name:"El Salvador"},{code:"HN",dialCode:"+504",name:"Honduras"},{code:"NI",dialCode:"+505",name:"Nicaragua"},{code:"CR",dialCode:"+506",name:"Costa Rica"},{code:"PA",dialCode:"+507",name:"Panama"},{code:"HT",dialCode:"+509",name:"Haiti"},{code:"GP",dialCode:"+590",name:"Guadeloupe"},{code:"BO",dialCode:"+591",name:"Bolivia"},{code:"GY",dialCode:"+592",name:"Guyana"},{code:"EC",dialCode:"+593",name:"Ecuador"},{code:"GF",dialCode:"+594",name:"French Guiana"},{code:"PY",dialCode:"+595",name:"Paraguay"},{code:"MQ",dialCode:"+596",name:"Martinique"},{code:"SR",dialCode:"+597",name:"Suriname"},{code:"UY",dialCode:"+598",name:"Uruguay"},{code:"TL",dialCode:"+670",name:"Timor-Leste"},{code:"BN",dialCode:"+673",name:"Brunei"},{code:"NR",dialCode:"+674",name:"Nauru"},{code:"PG",dialCode:"+675",name:"Papua New Guinea"},{code:"TO",dialCode:"+676",name:"Tonga"},{code:"SB",dialCode:"+677",name:"Solomon Islands"},{code:"VU",dialCode:"+678",name:"Vanuatu"},{code:"FJ",dialCode:"+679",name:"Fiji"},{code:"PW",dialCode:"+680",name:"Palau"},{code:"WS",dialCode:"+685",name:"Samoa"},{code:"KI",dialCode:"+686",name:"Kiribati"},{code:"FM",dialCode:"+691",name:"Micronesia"},{code:"MH",dialCode:"+692",name:"Marshall Islands"},{code:"KP",dialCode:"+850",name:"North Korea"},{code:"HK",dialCode:"+852",name:"Hong Kong"},{code:"MO",dialCode:"+853",name:"Macau"},{code:"KH",dialCode:"+855",name:"Cambodia"},{code:"LA",dialCode:"+856",name:"Laos"},{code:"BD",dialCode:"+880",name:"Bangladesh"},{code:"TW",dialCode:"+886",name:"Taiwan"},{code:"MV",dialCode:"+960",name:"Maldives"},{code:"LB",dialCode:"+961",name:"Lebanon"},{code:"JO",dialCode:"+962",name:"Jordan"},{code:"SY",dialCode:"+963",name:"Syria"},{code:"IQ",dialCode:"+964",name:"Iraq"},{code:"KW",dialCode:"+965",name:"Kuwait"},{code:"SA",dialCode:"+966",name:"Saudi Arabia"},{code:"YE",dialCode:"+967",name:"Yemen"},{code:"OM",dialCode:"+968",name:"Oman"},{code:"PS",dialCode:"+970",name:"Palestine"},{code:"AE",dialCode:"+971",name:"United Arab Emirates"},{code:"IL",dialCode:"+972",name:"Israel"},{code:"BH",dialCode:"+973",name:"Bahrain"},{code:"QA",dialCode:"+974",name:"Qatar"},{code:"BT",dialCode:"+975",name:"Bhutan"},{code:"MN",dialCode:"+976",name:"Mongolia"},{code:"NP",dialCode:"+977",name:"Nepal"},{code:"TJ",dialCode:"+992",name:"Tajikistan"},{code:"TM",dialCode:"+993",name:"Turkmenistan"},{code:"AZ",dialCode:"+994",name:"Azerbaijan"},{code:"GE",dialCode:"+995",name:"Georgia"},{code:"KG",dialCode:"+996",name:"Kyrgyzstan"},{code:"UZ",dialCode:"+998",name:"Uzbekistan"}].map((e=>{return{...e,flag:(a=e.code,String.fromCodePoint(...a.toUpperCase().split("").map((e=>127397+e.charCodeAt(0)))))};var a}));function t(e){const a=e.toUpperCase();return i.find((e=>e.code===a))||i.find((e=>"US"===e.code))}const n=class{constructor(o){e(this,o),this.fieldChange=a(this,"fieldChange"),this.buttonClick=a(this,"buttonClick")}component;value;disabled=!1;passwordVisible=!1;selectedCountry=t("US");localPhoneNumber="";countryDropdownOpen=!1;telEmailMode=!1;fieldChange;buttonClick;componentChanged(){this.initCountryFromConfig(),this.initTelValue()}valueChanged(){this.initTelValue()}componentWillLoad(){this.initCountryFromConfig(),this.initTelValue()}initCountryFromConfig(){if("TEL"===this.component?.type){const e=this.component.config,a=e?.default_country;a&&(this.selectedCountry=t(a)),!0===e?.allow_email&&(this.telEmailMode=!0)}}initTelValue(){if("TEL"!==this.component?.type)return;const e=this.component.config,a=!0===e?.allow_email,o=this.getEffectiveValue();if(!o)return this.localPhoneNumber="",void(a&&(this.telEmailMode=!0));if(o.startsWith("+")){const e=[...i].sort(((e,a)=>a.dialCode.length-e.dialCode.length));for(const i of e)if(o.startsWith(i.dialCode))return this.selectedCountry=i,this.localPhoneNumber=o.slice(i.dialCode.length),void(a&&(this.telEmailMode=!1))}if(this.localPhoneNumber=o,a){const e=/^[+\d]/.test(o);this.telEmailMode=!e}}handleCountryChange=e=>{this.selectedCountry=t(e.target.value),this.fieldChange.emit({id:this.component.id,value:this.localPhoneNumber?`${this.selectedCountry.dialCode}${this.localPhoneNumber}`:""})};detectDialCodeFromInput(e){const a=e.startsWith("00")?"+"+e.slice(2):e;if(!a.startsWith("+"))return null;const o=[...i].sort(((e,a)=>a.dialCode.length-e.dialCode.length));for(const e of o)if(a.startsWith(e.dialCode))return this.selectedCountry=e,a.slice(e.dialCode.length);return null}processPhoneInput(e,a,o){const i=this.detectDialCodeFromInput(a);if(null!==i){const a=o?i.replace(/[^+\d\s\-()]/g,"").replace(/\+/g,""):i.replace(/[^\d\s\-()]/g,"");e.value=a,this.localPhoneNumber=a,this.fieldChange.emit({id:this.component.id,value:`${this.selectedCountry.dialCode}${a}`})}else{const i=o?a.replace(/[^+\d\s\-()]/g,"").replace(/\+/g,""):a.replace(/[^\d\s\-()]/g,"");i!==a&&(e.value=i),this.localPhoneNumber=i,this.fieldChange.emit({id:this.component.id,value:i?`${this.selectedCountry.dialCode}${i}`:""})}}handlePhoneInput=e=>{const a=e.target,o=a.value,i=this.component.config;if(!0===i?.allow_email){const e=o.length>0&&/^[+\d]/.test(o)&&!o.includes("@");return this.telEmailMode=!e,void(this.telEmailMode?(this.localPhoneNumber=o,this.fieldChange.emit({id:this.component.id,value:o})):this.processPhoneInput(a,o,!0))}this.processPhoneInput(a,o,!1)};handleInput=e=>{this.fieldChange.emit({id:this.component.id,value:e.target.value})};handleKeyDown=e=>{if("Enter"===e.key&&(e.preventDefault(),this.buttonClick.emit({id:"submit",type:"submit",value:"next"})),"Backspace"===e.key&&!this.telEmailMode){const a=e.target,o=this.component.config;!0===o?.allow_email&&0===a.value.length&&(this.telEmailMode=!0,this.localPhoneNumber="",this.fieldChange.emit({id:this.component.id,value:""}))}};handleCheckbox=e=>{this.fieldChange.emit({id:this.component.id,value:e.target.checked?"true":"false"})};getEffectiveValue(){if(null!=this.value)return this.value;const e=this.component;if(e.config&&"default_value"in e.config){const a=e.config.default_value;if("string"==typeof a&&""!==a)return a}}sanitizeForCssToken(e){return e.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}handleButtonClick=(e,a,o)=>{e.preventDefault(),this.buttonClick.emit({id:this.component.id,type:a,value:o})};togglePasswordVisibility=()=>{this.passwordVisible=!this.passwordVisible};getErrors(){const e=this.component;return e.messages?.filter((e=>"error"===e.type))||[]}renderFloatingLabel(e,a,i,t){return e?o("label",{class:t?"input-label floating":"input-label",part:"label",htmlFor:a},e,i&&o("span",{class:"required"},"*")):null}renderLabel(e,a,i){return e?o("label",{class:"input-label",part:"label",htmlFor:a},e,i&&o("span",{class:"required"},"*")):null}getInputFieldClass(e){return e?"input-field has-error":"input-field"}renderPasswordToggle(){return this.passwordVisible?o("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},o("path",{d:"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"}),o("line",{x1:"1",y1:"1",x2:"23",y2:"23"})):o("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},o("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),o("circle",{cx:"12",cy:"12",r:"3"}))}renderErrors(){return this.getErrors().map((e=>o("span",{class:"error-text",part:"error-text",key:e.id??e.text},e.text)))}renderHint(e){return e?o("span",{class:"helper-text",part:"helper-text"},e):null}renderDivider(){return o("hr",{class:"divider",part:"divider"})}renderHtml(e){return o("div",{class:"html-content",part:"html-content",innerHTML:e.config?.content??""})}renderImage(e){const{src:a,alt:i,width:t,height:n}=e.config??{};return a?o("img",{class:"image",part:"image",src:a,alt:i??"",width:t,height:n,loading:"lazy"}):null}renderRichText(e){return o("div",{class:"rich-text",part:"rich-text",innerHTML:e.config?.content??""})}renderNextButton(e){return o("button",{type:"submit",class:"btn btn-primary",part:"button button-primary","data-primary-action-button":!0,disabled:this.disabled,onClick:e=>this.handleButtonClick(e,"submit","next")},e.config.text??"Continue")}renderPreviousButton(e){return o("button",{type:"button",class:"btn btn-secondary",part:"button button-secondary",disabled:this.disabled,onClick:e=>this.handleButtonClick(e,"previous","back")},e.config.text??"Back")}renderJumpButton(e){return o("button",{type:"button",class:"btn btn-link",part:"button button-link",disabled:this.disabled,onClick:a=>this.handleButtonClick(a,"jump",e.config.target_step)},e.config.text??"Go")}renderResendButton(e){return o("button",{type:"button",class:"btn btn-link",part:"button button-link",disabled:this.disabled,onClick:a=>this.handleButtonClick(a,"resend",e.config.resend_action)},e.config.text??"Resend")}renderTextField(e){const a=`input-${e.id}`,i=this.getErrors(),{multiline:t,max_length:n,autocomplete:d}=e.config??{},r=this.getEffectiveValue(),l=!!(r&&r.length>0);return t?o("div",{class:"input-wrapper",part:"input-wrapper"},this.renderLabel(e.label,a,e.required),o("textarea",{id:a,class:this.getInputFieldClass(i.length>0),part:"input textarea",name:e.id,placeholder:" ",required:e.required,disabled:this.disabled,maxLength:n,onInput:this.handleInput},r??""),this.renderErrors(),0===i.length&&this.renderHint(e.hint)):o("div",{class:"input-wrapper",part:"input-wrapper"},o("div",{class:"input-container"},o("input",{id:a,class:this.getInputFieldClass(i.length>0),part:"input",type:e.sensitive?"password":"text",name:e.id,"data-input-name":e.id,value:r??"",placeholder:" ",required:e.required,disabled:this.disabled,maxLength:n,autoComplete:d,onInput:this.handleInput,onKeyDown:this.handleKeyDown}),this.renderFloatingLabel(e.label,a,e.required,l)),this.renderErrors(),0===i.length&&this.renderHint(e.hint))}renderEmailField(e){const a=`input-${e.id}`,i=this.getErrors(),t=this.getEffectiveValue(),n=!!(t&&t.length>0),{autocomplete:d}=e.config??{};return o("div",{class:"input-wrapper",part:"input-wrapper"},o("div",{class:"input-container"},o("input",{id:a,class:this.getInputFieldClass(i.length>0),part:"input",type:"email",name:e.id,"data-input-name":e.id,value:t??"",placeholder:" ",required:e.required,disabled:this.disabled,autocomplete:d||"email",onInput:this.handleInput,onKeyDown:this.handleKeyDown}),this.renderFloatingLabel(e.label,a,e.required,n)),this.renderErrors(),0===i.length&&this.renderHint(e.hint))}renderPasswordField(e){const a=`input-${e.id}`,i=this.getErrors(),t=this.getEffectiveValue(),n=!!(t&&t.length>0),d=e.config?.forgot_password_link;return o("div",{class:"input-wrapper",part:"input-wrapper"},o("div",{class:"input-container password-container"},o("input",{id:a,class:this.getInputFieldClass(i.length>0),part:"input",type:this.passwordVisible?"text":"password",name:e.id,"data-input-name":e.id,value:t??"",placeholder:" ",required:e.required,disabled:this.disabled,minLength:e.config?.min_length,autocomplete:"current-password",onInput:this.handleInput,onKeyDown:this.handleKeyDown}),this.renderFloatingLabel(e.label,a,e.required,n),o("button",{type:"button",class:"password-toggle",part:"password-toggle",onClick:this.togglePasswordVisibility,"aria-label":"Toggle password visibility","aria-pressed":this.passwordVisible?"true":"false"},this.renderPasswordToggle())),this.renderErrors(),0===i.length&&this.renderHint(e.hint),d&&o("div",{class:"field-link",part:"field-link"},o("a",{href:d,class:"link",part:"link"},"Forgot password?")))}renderNumberField(e){const a=`input-${e.id}`,i=this.getErrors(),{placeholder:t,min:n,max:d,step:r}=e.config??{},l=this.getEffectiveValue();return o("div",{class:"input-wrapper",part:"input-wrapper"},this.renderLabel(e.label,a,e.required),o("input",{id:a,class:this.getInputFieldClass(i.length>0),part:"input",type:"number",name:e.id,value:l??"",placeholder:t,required:e.required,disabled:this.disabled,min:n,max:d,step:r,onInput:this.handleInput,onKeyDown:this.handleKeyDown}),this.renderErrors(),0===i.length&&this.renderHint(e.hint))}renderTelField(e){const a=`input-${e.id}`,t=this.getErrors(),n=e.config,d=!0===n?.allow_email,r=this.localPhoneNumber.length>0,l=!d||!this.telEmailMode,s=l?o("select",{class:"country-select",part:"country-select",style:{width:`${`${this.selectedCountry.flag} ${this.selectedCountry.dialCode}`.length+1}ch`,minWidth:"0"},onChange:this.handleCountryChange,disabled:this.disabled,"aria-label":"Country code"},i.map((e=>o("option",{value:e.code,selected:this.selectedCountry.code===e.code,key:e.code},`${e.flag} ${e.dialCode}`)))):null,c=d&&this.telEmailMode?"text":"tel";return o("div",{class:"input-wrapper",part:"input-wrapper"},o("div",{class:l?"phone-input-wrapper":"",part:"phone-input-wrapper"},s,o("div",{class:"input-container"},o("input",{id:a,class:this.getInputFieldClass(t.length>0),part:"input",type:c,name:e.id,"data-input-name":e.id,value:this.localPhoneNumber,placeholder:" ",required:e.required,disabled:this.disabled,autocomplete:d&&this.telEmailMode?"email":"tel-national",onInput:this.handlePhoneInput,onKeyDown:this.handleKeyDown}),this.renderFloatingLabel(e.label,a,e.required,r))),this.renderErrors(),0===t.length&&this.renderHint(e.hint))}renderUrlField(e){const a=`input-${e.id}`,i=this.getErrors(),t=this.getEffectiveValue();return o("div",{class:"input-wrapper",part:"input-wrapper"},this.renderLabel(e.label,a,e.required),o("input",{id:a,class:this.getInputFieldClass(i.length>0),part:"input",type:"url",name:e.id,value:t??"",placeholder:e.config?.placeholder,required:e.required,disabled:this.disabled,onInput:this.handleInput,onKeyDown:this.handleKeyDown}),this.renderErrors(),0===i.length&&this.renderHint(e.hint))}renderDateField(e){const a=`input-${e.id}`,i=this.getErrors(),{min:t,max:n}=e.config??{},d=this.getEffectiveValue();return o("div",{class:"input-wrapper",part:"input-wrapper"},o("div",{class:"input-container"},o("input",{id:a,class:this.getInputFieldClass(i.length>0),part:"input",type:"date",name:e.id,"data-input-name":e.id,value:d??"",placeholder:" ",required:e.required,disabled:this.disabled,min:t,max:n,onInput:this.handleInput,onKeyDown:this.handleKeyDown}),this.renderFloatingLabel(e.label,a,e.required,!0)),this.renderErrors(),0===i.length&&this.renderHint(e.hint))}renderBooleanField(e){return o("label",{class:"checkbox-wrapper",part:"checkbox-wrapper"},o("input",{type:"checkbox",part:"checkbox",name:e.id,checked:"true"===this.value||!0===e.config?.default_value,required:e.required,disabled:this.disabled,onChange:this.handleCheckbox}),o("span",{class:"checkbox-label",part:"checkbox-label"},e.label))}renderLegalField(e){const a=e.config?.text??e.label??"",i=!0===e.config?.html;return o("label",{class:"checkbox-wrapper",part:"checkbox-wrapper"},o("input",{type:"checkbox",part:"checkbox",name:e.id,checked:"true"===this.value,required:e.required,disabled:this.disabled,onChange:this.handleCheckbox}),i?o("span",{class:"checkbox-label",part:"checkbox-label",innerHTML:a}):o("span",{class:"checkbox-label",part:"checkbox-label"},a))}renderCountryField(e){const a=`input-${e.id}`,t=this.getErrors(),{placeholder:n}=e.config??{},d=this.getEffectiveValue();return o("div",{class:"input-wrapper",part:"input-wrapper"},o("div",{class:"input-container"},o("select",{id:a,class:this.getInputFieldClass(t.length>0),part:"input select",name:e.id,required:e.required,disabled:this.disabled,onChange:this.handleInput},n&&o("option",{value:"",disabled:!0,selected:!d},n),i.map((e=>o("option",{value:e.code,selected:d===e.code,key:e.code},e.flag," ",e.name)))),this.renderFloatingLabel(e.label,a,e.required,!0)),this.renderErrors(),0===t.length&&this.renderHint(e.hint))}renderDropdownField(e){const a=`input-${e.id}`,i=this.getErrors(),{options:t,placeholder:n}=e.config??{},d=this.getEffectiveValue();return o("div",{class:"input-wrapper",part:"input-wrapper"},o("div",{class:"input-container"},o("select",{id:a,class:this.getInputFieldClass(i.length>0),part:"input select",name:e.id,required:e.required,disabled:this.disabled,onChange:this.handleInput},n&&o("option",{value:"",disabled:!0,selected:!d},n),t?.map((e=>o("option",{value:e.value,selected:d===e.value,key:e.value},e.label)))),this.renderFloatingLabel(e.label,a,e.required,!0)),this.renderErrors(),0===i.length&&this.renderHint(e.hint))}renderChoiceField(e){const a=this.getErrors(),{options:i,display:t}=e.config??{},n="checkbox"===t,d=n?"checkbox":"radio";return o("div",{class:"choice-wrapper",part:"choice-wrapper"},e.label&&o("span",{class:"choice-label",part:"choice-label"},e.label,e.required&&o("span",{class:"required"},"*")),o("div",{class:"choice-options",part:"choice-options"},i?.map((a=>o("label",{class:"choice-option",part:"choice-option",key:a.value},o("input",{type:d,part:d,name:e.id,value:a.value,checked:this.getEffectiveValue()===a.value,required:e.required&&!n,disabled:this.disabled,onChange:this.handleInput}),o("span",null,a.label))))),this.renderErrors(),0===a.length&&this.renderHint(e.hint))}renderSocialField(e){const a=e.config?.providers??[],i=e.config?.provider_details,t=new Map(i?.map((e=>[e.name,e]))??[]),n=e=>{const a=t.get(e);return a?.display_name?a.display_name:e.split("-").map((e=>e.charAt(0).toUpperCase()+e.slice(1))).join(" ")},d=e=>{const a=t.get(e),i=this.sanitizeForCssToken(e);return a?.icon_url?o("img",{class:"social-icon",part:`social-icon social-icon-${i}`,src:a.icon_url,alt:a.display_name||e}):null};return o("div",{class:"social-buttons",part:"social-buttons"},a.map((e=>{const a=this.sanitizeForCssToken(e),i=(e=>{const a=t.get(e);return a?.strategy??e})(e),r=d(e),l=t.get(e),s=`btn btn-secondary btn-social btn-social-${a}${r?"":" no-icon"}`,c=`button button-secondary button-social button-social-${a}`,h=[r,o("span",{class:"btn-social-content",part:`button-social-content button-social-content-${a}`},o("span",{part:`button-social-text button-social-text-${a}`},n(e)),o("span",{class:"btn-social-subtitle",part:`button-social-subtitle button-social-subtitle-${a}`}))];return l?.href?o("a",{href:this.disabled?void 0:l.href,class:s,part:c,"data-connection-name":e,"data-strategy":i,key:e,"aria-disabled":this.disabled?"true":void 0,tabindex:this.disabled?-1:void 0,onClick:e=>{this.disabled&&e.preventDefault()}},h):o("button",{type:"button",class:s,part:c,"data-connection-name":e,"data-strategy":i,disabled:this.disabled,onClick:a=>this.handleButtonClick(a,"SOCIAL",e),key:e},h)})))}render(){if(!this.component)return null;if(!1===this.component.visible)return null;switch(this.component.type){case"DIVIDER":return this.renderDivider();case"HTML":return this.renderHtml(this.component);case"IMAGE":return this.renderImage(this.component);case"RICH_TEXT":return this.renderRichText(this.component);case"NEXT_BUTTON":return this.renderNextButton(this.component);case"PREVIOUS_BUTTON":return this.renderPreviousButton(this.component);case"JUMP_BUTTON":return this.renderJumpButton(this.component);case"RESEND_BUTTON":return this.renderResendButton(this.component);case"TEXT":return this.renderTextField(this.component);case"EMAIL":return this.renderEmailField(this.component);case"PASSWORD":return this.renderPasswordField(this.component);case"NUMBER":return this.renderNumberField(this.component);case"TEL":return this.renderTelField(this.component);case"URL":return this.renderUrlField(this.component);case"DATE":return this.renderDateField(this.component);case"BOOLEAN":return this.renderBooleanField(this.component);case"LEGAL":return this.renderLegalField(this.component);case"COUNTRY":return this.renderCountryField(this.component);case"DROPDOWN":return this.renderDropdownField(this.component);case"CHOICE":return this.renderChoiceField(this.component);case"SOCIAL":return this.renderSocialField(this.component);case"AUTH0_VERIFIABLE_CREDENTIALS":case"GMAPS_ADDRESS":case"RECAPTCHA":return console.warn(`Widget component "${this.component.type}" not yet implemented`),null;case"CARDS":case"CUSTOM":case"FILE":case"PAYMENT":return console.warn(`Component "${this.component.type}" not yet implemented`),null;default:return console.warn(`Unknown component type: ${this.component.type}`),null}}static get watchers(){return{component:[{componentChanged:0}],value:[{valueChanged:0}]}}};n.style=":host{display:block}.input-wrapper{display:flex;flex-direction:column;position:relative;margin-top:8px;margin-bottom:16px}.input-container{position:relative;width:100%}.input-label{position:absolute;left:16px;top:50%;transform:translateY(-50%);font-size:var(--ah-font-size-label, 16px);font-weight:var(--ah-font-weight-label, 400);color:var(--ah-color-text-muted, #65676e);pointer-events:none;transition:all 0.15s ease-out;background-color:transparent;padding:0;z-index:1}.input-label.floating,.input-field:focus+.input-label,.input-field:not(:placeholder-shown)+.input-label,select.input-field+.input-label,input[type=\"date\"].input-field+.input-label{top:-8px;transform:translateY(0);font-size:12px;background-color:var(--ah-color-bg, #ffffff);padding:0 4px;left:12px;color:var(--ah-color-text-muted, #65676e)}.input-field:focus+.input-label{color:var(--ah-color-primary, #635dff)}.required{color:var(--ah-color-error, #d03c38);margin-left:2px}.input-field{width:100%;padding:16px;font-size:16px;font-family:inherit;color:var(--ah-color-input-text, var(--ah-color-text, #1e212a));background-color:var(--ah-color-input-bg, #ffffff);border:var(--ah-input-border-width, 1px) solid var(--ah-color-border, #c9cace);border-radius:var(--ah-input-radius, 3px);outline:none;transition:border-color 0.15s ease-out, box-shadow 0.15s ease-out;box-sizing:border-box}.input-field::placeholder{color:transparent}.input-field:hover{border-color:var(--ah-color-border-hover, #65676e)}.input-field:focus{border-color:var(--ah-color-primary, #635dff);box-shadow:inset 0 0 0 1px var(--ah-color-primary, #635dff)}.input-field.has-error{border-color:var(--ah-color-error, #d03c38)}.input-field.has-error:focus{box-shadow:inset 0 0 0 1px var(--ah-color-error, #d03c38)}.input-field:disabled{background-color:var(--ah-color-bg-disabled, #f5f5f5);border-color:var(--ah-color-border-disabled, #e0e1e3);cursor:not-allowed;opacity:0.7}.password-container{position:relative;display:flex;align-items:center}.password-container .input-field{padding-right:48px}.password-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;color:var(--ah-color-icon, var(--ah-color-text-muted, #65676e));transition:color 0.15s ease}.password-toggle:hover{color:var(--ah-color-icon, var(--ah-color-text, #1e212a))}.password-toggle svg{width:20px;height:20px}.error-text{font-size:12px;color:var(--ah-color-error, #d03c38);margin-top:4px;line-height:1.4}.helper-text{font-size:12px;color:var(--ah-color-text-muted, #65676e);margin-top:4px;line-height:1.4}.field-link{display:block;text-align:left;margin-top:8px;margin-bottom:16px}.field-link a{color:var(--ah-color-link, #635dff);text-decoration:var(--ah-link-decoration, none);font-size:var(--ah-font-size-link, 14px);font-weight:var(--ah-font-weight-link, 400)}.field-link a:hover{text-decoration:underline}.checkbox-wrapper{display:flex;align-items:flex-start;gap:10px;cursor:pointer;margin-bottom:16px}.checkbox-wrapper input[type=\"checkbox\"]{width:18px;height:18px;margin:0;accent-color:var(--ah-color-primary, #635dff);cursor:pointer;flex-shrink:0}.checkbox-label{font-size:var(--ah-font-size-body, 14px);font-weight:var(--ah-font-weight-body, 400);color:var(--ah-color-text, #1e212a);line-height:1.5}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:14px 20px;font-size:var(--ah-font-size-btn, 16px);font-weight:var(--ah-font-weight-btn, 400);font-family:inherit;line-height:1.25;text-align:center;text-decoration:none;border:none;border-radius:var(--ah-btn-radius, 3px);cursor:pointer;transition:background-color 0.15s ease, border-color 0.15s ease, transform 0.1s ease;box-sizing:border-box}.btn:disabled{opacity:0.6;cursor:not-allowed}.btn:not(:disabled):active{transform:scale(0.98)}.btn:focus-visible{outline:2px solid var(--ah-color-focus-ring, var(--ah-color-primary, #635dff));outline-offset:2px}.btn-primary{background-color:var(--ah-color-primary, #635dff);color:var(--ah-color-text-on-primary, #ffffff);margin-top:12px}.btn-primary:not(:disabled):hover{background-color:var(--ah-color-primary-hover, color-mix(in srgb, var(--ah-color-primary, #635dff) 85%, black))}.btn-secondary{background-color:var(--ah-color-bg, #ffffff);color:var(--ah-btn-secondary-text, var(--ah-color-text, #1e212a));border:var(--ah-btn-border-width, 1px) solid var(--ah-btn-secondary-border, var(--ah-color-border, #c9cace))}.btn-secondary:not(:disabled):hover{background-color:var(--ah-color-bg-hover, #f5f5f5);border-color:var(--ah-color-border-hover, #65676e)}.btn-link{background:none;border:none;color:var(--ah-color-link, #635dff);padding:8px 0;font-weight:var(--ah-font-weight-link, 400);text-decoration:none}.btn-link:hover{text-decoration:underline}.phone-input-wrapper{display:flex;align-items:stretch;gap:0;width:100%}.country-select{flex-shrink:0;width:auto;padding:12px 8px;font-size:var(--ah-font-size-body, 16px);font-family:var(--ah-font-family, inherit);border:var(--ah-input-border-width, 1px) solid var(--ah-color-border, #c9cace);border-right:none;border-radius:var(--ah-input-radius, 4px) 0 0 var(--ah-input-radius, 4px);background-color:var(--ah-color-input-bg, var(--ah-color-surface, #fff));color:var(--ah-color-input-text, var(--ah-color-text, #1e212a));cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right 6px center;padding-right:22px}.country-select:focus{outline:none;border-color:var(--ah-color-primary, #635dff);box-shadow:0 0 0 1px var(--ah-color-primary, #635dff)}.country-select:disabled{opacity:0.5;cursor:not-allowed}.phone-input-wrapper .input-container{flex:1;min-width:0}.phone-input-wrapper .input-field{border-radius:0 var(--ah-input-radius, 4px) var(--ah-input-radius, 4px) 0}.phone-input-wrapper .input-label.floating,.phone-input-wrapper .input-field:focus+.input-label,.phone-input-wrapper .input-field:not(:placeholder-shown)+.input-label{left:8px}.social-buttons{display:flex;flex-direction:column;gap:12px}.btn-social{display:flex;align-items:center;justify-content:center;gap:12px}.btn-social-content{display:flex;flex-direction:column;align-items:center;text-align:center}.btn-social-subtitle{font-size:12px;font-style:italic;opacity:0.8;margin-top:2px}.btn-social-subtitle:empty{display:none}.social-icon{width:20px;height:20px;flex-shrink:0}@media (max-width: 480px){.social-buttons:has(.btn-social:nth-child(3)){flex-direction:row;flex-wrap:nowrap;justify-content:stretch;gap:8px}.social-buttons:has(.btn-social:nth-child(3)) .btn-social{width:auto;min-width:0;padding:12px;flex:1 1 0}.social-buttons:has(.btn-social:nth-child(3)) .btn-social span{display:none}.social-buttons:has(.btn-social:nth-child(3)) .social-icon{width:24px;height:24px}}.btn-icon{width:20px;height:20px;flex-shrink:0}.btn-icon img{width:100%;height:100%;object-fit:contain}.text-title{font-size:var(--ah-font-size-title, 20px);font-weight:var(--ah-font-weight-title, 400);color:var(--ah-color-text-header, var(--ah-color-header, #1e212a));margin:8px 0;line-height:1.3}.text-title.text-success{color:var(--ah-color-success, #13a769)}.text-description{font-size:var(--ah-font-size-subtitle, 14px);font-weight:var(--ah-font-weight-subtitle, 400);color:var(--ah-color-text-muted, #65676e);margin:4px 0;line-height:1.5}.image{display:block;max-width:100%;height:auto;border-radius:4px}.image-centered{margin:0 auto 16px;width:52px;height:52px;object-fit:contain}.link{color:var(--ah-color-link, #635dff);text-decoration:var(--ah-link-decoration, none);font-size:var(--ah-font-size-link, 14px);transition:color 0.15s ease}.link:hover{text-decoration:underline}.link:focus-visible{outline:2px solid var(--ah-color-focus-ring, var(--ah-color-link, #635dff));outline-offset:2px;border-radius:2px}.node-error{padding:12px 16px;background-color:var(--ah-color-error-bg, #ffeaea);color:var(--ah-color-error, #d03c38);border-left:3px solid var(--ah-color-error, #d03c38);border-radius:0;font-size:14px;margin-bottom:16px}.node-success{padding:12px 16px;background-color:var(--ah-color-success-bg, #e6f9f1);color:var(--ah-color-success, #13a769);border-left:3px solid var(--ah-color-success, #13a769);border-radius:0;font-size:14px;margin-bottom:16px}.divider{display:flex;align-items:center;text-align:center;margin:16px 0}.divider::before,.divider::after{content:\"\";flex:1;border-bottom:1px solid var(--ah-color-border-muted, #c9cace)}.divider-text{padding:0 10px;font-size:12px;font-weight:400;color:var(--ah-color-text-muted, #65676e);text-transform:uppercase;letter-spacing:0.5px}.rich-text{font-size:var(--ah-font-size-body, 14px);font-weight:var(--ah-font-weight-body, 400);line-height:1.5;color:var(--ah-color-text, #1e212a)}.rich-text a{color:var(--ah-color-link, #635dff);text-decoration:var(--ah-link-decoration, none);transition:color 0.15s ease}.rich-text a:hover{text-decoration:underline}.rich-text .terms-text{margin-top:16px;text-align:center;font-size:12px;color:var(--ah-color-text-muted, #65676e)}.rich-text .terms-text a{font-size:12px}.rich-text .forgot-password-link{text-align:right;font-size:13px;margin-top:4px}.rich-text .forgot-password-link a{font-size:13px;color:var(--ah-color-link, #635dff)}.rich-text .passwordless-link{margin-top:16px;text-align:center;font-size:14px}.rich-text .passwordless-link a{color:var(--ah-color-link, #635dff);text-decoration:var(--ah-link-decoration, none)}.rich-text .passwordless-link a:hover{text-decoration:underline}.rich-text .signup-link{margin-top:16px;text-align:center;font-size:14px;color:var(--ah-color-text, #1e212a)}";export{n as authhero_node}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e,p as a,H as o,c as t,h as i}from"./p-cKZ5hFj1.js";const n=[{code:"US",dialCode:"+1",name:"United States"},{code:"CA",dialCode:"+1",name:"Canada"},{code:"AG",dialCode:"+1",name:"Antigua and Barbuda"},{code:"BS",dialCode:"+1",name:"Bahamas"},{code:"BB",dialCode:"+1",name:"Barbados"},{code:"DM",dialCode:"+1",name:"Dominica"},{code:"DO",dialCode:"+1",name:"Dominican Republic"},{code:"GD",dialCode:"+1",name:"Grenada"},{code:"JM",dialCode:"+1",name:"Jamaica"},{code:"KN",dialCode:"+1",name:"Saint Kitts and Nevis"},{code:"LC",dialCode:"+1",name:"Saint Lucia"},{code:"VC",dialCode:"+1",name:"Saint Vincent and the Grenadines"},{code:"TT",dialCode:"+1",name:"Trinidad and Tobago"},{code:"PR",dialCode:"+1",name:"Puerto Rico"},{code:"KZ",dialCode:"+7",name:"Kazakhstan"},{code:"RU",dialCode:"+7",name:"Russia"},{code:"EG",dialCode:"+20",name:"Egypt"},{code:"ZA",dialCode:"+27",name:"South Africa"},{code:"GR",dialCode:"+30",name:"Greece"},{code:"NL",dialCode:"+31",name:"Netherlands"},{code:"BE",dialCode:"+32",name:"Belgium"},{code:"FR",dialCode:"+33",name:"France"},{code:"ES",dialCode:"+34",name:"Spain"},{code:"HU",dialCode:"+36",name:"Hungary"},{code:"IT",dialCode:"+39",name:"Italy"},{code:"RO",dialCode:"+40",name:"Romania"},{code:"CH",dialCode:"+41",name:"Switzerland"},{code:"AT",dialCode:"+43",name:"Austria"},{code:"GB",dialCode:"+44",name:"United Kingdom"},{code:"DK",dialCode:"+45",name:"Denmark"},{code:"SE",dialCode:"+46",name:"Sweden"},{code:"NO",dialCode:"+47",name:"Norway"},{code:"PL",dialCode:"+48",name:"Poland"},{code:"DE",dialCode:"+49",name:"Germany"},{code:"PE",dialCode:"+51",name:"Peru"},{code:"MX",dialCode:"+52",name:"Mexico"},{code:"CU",dialCode:"+53",name:"Cuba"},{code:"AR",dialCode:"+54",name:"Argentina"},{code:"BR",dialCode:"+55",name:"Brazil"},{code:"CL",dialCode:"+56",name:"Chile"},{code:"CO",dialCode:"+57",name:"Colombia"},{code:"VE",dialCode:"+58",name:"Venezuela"},{code:"MY",dialCode:"+60",name:"Malaysia"},{code:"AU",dialCode:"+61",name:"Australia"},{code:"ID",dialCode:"+62",name:"Indonesia"},{code:"PH",dialCode:"+63",name:"Philippines"},{code:"NZ",dialCode:"+64",name:"New Zealand"},{code:"SG",dialCode:"+65",name:"Singapore"},{code:"TH",dialCode:"+66",name:"Thailand"},{code:"JP",dialCode:"+81",name:"Japan"},{code:"KR",dialCode:"+82",name:"South Korea"},{code:"VN",dialCode:"+84",name:"Vietnam"},{code:"CN",dialCode:"+86",name:"China"},{code:"TR",dialCode:"+90",name:"Turkey"},{code:"IN",dialCode:"+91",name:"India"},{code:"PK",dialCode:"+92",name:"Pakistan"},{code:"AF",dialCode:"+93",name:"Afghanistan"},{code:"LK",dialCode:"+94",name:"Sri Lanka"},{code:"MM",dialCode:"+95",name:"Myanmar"},{code:"IR",dialCode:"+98",name:"Iran"},{code:"SS",dialCode:"+211",name:"South Sudan"},{code:"MA",dialCode:"+212",name:"Morocco"},{code:"DZ",dialCode:"+213",name:"Algeria"},{code:"TN",dialCode:"+216",name:"Tunisia"},{code:"LY",dialCode:"+218",name:"Libya"},{code:"GM",dialCode:"+220",name:"Gambia"},{code:"SN",dialCode:"+221",name:"Senegal"},{code:"MR",dialCode:"+222",name:"Mauritania"},{code:"ML",dialCode:"+223",name:"Mali"},{code:"GN",dialCode:"+224",name:"Guinea"},{code:"CI",dialCode:"+225",name:"Ivory Coast"},{code:"BF",dialCode:"+226",name:"Burkina Faso"},{code:"NE",dialCode:"+227",name:"Niger"},{code:"TG",dialCode:"+228",name:"Togo"},{code:"BJ",dialCode:"+229",name:"Benin"},{code:"MU",dialCode:"+230",name:"Mauritius"},{code:"LR",dialCode:"+231",name:"Liberia"},{code:"SL",dialCode:"+232",name:"Sierra Leone"},{code:"GH",dialCode:"+233",name:"Ghana"},{code:"NG",dialCode:"+234",name:"Nigeria"},{code:"TD",dialCode:"+235",name:"Chad"},{code:"CF",dialCode:"+236",name:"Central African Republic"},{code:"CM",dialCode:"+237",name:"Cameroon"},{code:"CV",dialCode:"+238",name:"Cape Verde"},{code:"ST",dialCode:"+239",name:"São Tomé and Príncipe"},{code:"GQ",dialCode:"+240",name:"Equatorial Guinea"},{code:"GA",dialCode:"+241",name:"Gabon"},{code:"CG",dialCode:"+242",name:"Congo"},{code:"CD",dialCode:"+243",name:"Congo (DRC)"},{code:"AO",dialCode:"+244",name:"Angola"},{code:"GW",dialCode:"+245",name:"Guinea-Bissau"},{code:"SC",dialCode:"+248",name:"Seychelles"},{code:"SD",dialCode:"+249",name:"Sudan"},{code:"RW",dialCode:"+250",name:"Rwanda"},{code:"ET",dialCode:"+251",name:"Ethiopia"},{code:"SO",dialCode:"+252",name:"Somalia"},{code:"DJ",dialCode:"+253",name:"Djibouti"},{code:"KE",dialCode:"+254",name:"Kenya"},{code:"TZ",dialCode:"+255",name:"Tanzania"},{code:"UG",dialCode:"+256",name:"Uganda"},{code:"BI",dialCode:"+257",name:"Burundi"},{code:"MZ",dialCode:"+258",name:"Mozambique"},{code:"ZM",dialCode:"+260",name:"Zambia"},{code:"MG",dialCode:"+261",name:"Madagascar"},{code:"RE",dialCode:"+262",name:"Réunion"},{code:"ZW",dialCode:"+263",name:"Zimbabwe"},{code:"NA",dialCode:"+264",name:"Namibia"},{code:"MW",dialCode:"+265",name:"Malawi"},{code:"LS",dialCode:"+266",name:"Lesotho"},{code:"BW",dialCode:"+267",name:"Botswana"},{code:"SZ",dialCode:"+268",name:"Eswatini"},{code:"KM",dialCode:"+269",name:"Comoros"},{code:"ER",dialCode:"+291",name:"Eritrea"},{code:"PT",dialCode:"+351",name:"Portugal"},{code:"LU",dialCode:"+352",name:"Luxembourg"},{code:"IE",dialCode:"+353",name:"Ireland"},{code:"IS",dialCode:"+354",name:"Iceland"},{code:"AL",dialCode:"+355",name:"Albania"},{code:"MT",dialCode:"+356",name:"Malta"},{code:"CY",dialCode:"+357",name:"Cyprus"},{code:"FI",dialCode:"+358",name:"Finland"},{code:"BG",dialCode:"+359",name:"Bulgaria"},{code:"LT",dialCode:"+370",name:"Lithuania"},{code:"LV",dialCode:"+371",name:"Latvia"},{code:"EE",dialCode:"+372",name:"Estonia"},{code:"MD",dialCode:"+373",name:"Moldova"},{code:"AM",dialCode:"+374",name:"Armenia"},{code:"BY",dialCode:"+375",name:"Belarus"},{code:"AD",dialCode:"+376",name:"Andorra"},{code:"MC",dialCode:"+377",name:"Monaco"},{code:"SM",dialCode:"+378",name:"San Marino"},{code:"UA",dialCode:"+380",name:"Ukraine"},{code:"RS",dialCode:"+381",name:"Serbia"},{code:"ME",dialCode:"+382",name:"Montenegro"},{code:"XK",dialCode:"+383",name:"Kosovo"},{code:"HR",dialCode:"+385",name:"Croatia"},{code:"SI",dialCode:"+386",name:"Slovenia"},{code:"BA",dialCode:"+387",name:"Bosnia and Herzegovina"},{code:"MK",dialCode:"+389",name:"North Macedonia"},{code:"CZ",dialCode:"+420",name:"Czech Republic"},{code:"SK",dialCode:"+421",name:"Slovakia"},{code:"LI",dialCode:"+423",name:"Liechtenstein"},{code:"FK",dialCode:"+500",name:"Falkland Islands"},{code:"BZ",dialCode:"+501",name:"Belize"},{code:"GT",dialCode:"+502",name:"Guatemala"},{code:"SV",dialCode:"+503",name:"El Salvador"},{code:"HN",dialCode:"+504",name:"Honduras"},{code:"NI",dialCode:"+505",name:"Nicaragua"},{code:"CR",dialCode:"+506",name:"Costa Rica"},{code:"PA",dialCode:"+507",name:"Panama"},{code:"HT",dialCode:"+509",name:"Haiti"},{code:"GP",dialCode:"+590",name:"Guadeloupe"},{code:"BO",dialCode:"+591",name:"Bolivia"},{code:"GY",dialCode:"+592",name:"Guyana"},{code:"EC",dialCode:"+593",name:"Ecuador"},{code:"GF",dialCode:"+594",name:"French Guiana"},{code:"PY",dialCode:"+595",name:"Paraguay"},{code:"MQ",dialCode:"+596",name:"Martinique"},{code:"SR",dialCode:"+597",name:"Suriname"},{code:"UY",dialCode:"+598",name:"Uruguay"},{code:"TL",dialCode:"+670",name:"Timor-Leste"},{code:"BN",dialCode:"+673",name:"Brunei"},{code:"NR",dialCode:"+674",name:"Nauru"},{code:"PG",dialCode:"+675",name:"Papua New Guinea"},{code:"TO",dialCode:"+676",name:"Tonga"},{code:"SB",dialCode:"+677",name:"Solomon Islands"},{code:"VU",dialCode:"+678",name:"Vanuatu"},{code:"FJ",dialCode:"+679",name:"Fiji"},{code:"PW",dialCode:"+680",name:"Palau"},{code:"WS",dialCode:"+685",name:"Samoa"},{code:"KI",dialCode:"+686",name:"Kiribati"},{code:"FM",dialCode:"+691",name:"Micronesia"},{code:"MH",dialCode:"+692",name:"Marshall Islands"},{code:"KP",dialCode:"+850",name:"North Korea"},{code:"HK",dialCode:"+852",name:"Hong Kong"},{code:"MO",dialCode:"+853",name:"Macau"},{code:"KH",dialCode:"+855",name:"Cambodia"},{code:"LA",dialCode:"+856",name:"Laos"},{code:"BD",dialCode:"+880",name:"Bangladesh"},{code:"TW",dialCode:"+886",name:"Taiwan"},{code:"MV",dialCode:"+960",name:"Maldives"},{code:"LB",dialCode:"+961",name:"Lebanon"},{code:"JO",dialCode:"+962",name:"Jordan"},{code:"SY",dialCode:"+963",name:"Syria"},{code:"IQ",dialCode:"+964",name:"Iraq"},{code:"KW",dialCode:"+965",name:"Kuwait"},{code:"SA",dialCode:"+966",name:"Saudi Arabia"},{code:"YE",dialCode:"+967",name:"Yemen"},{code:"OM",dialCode:"+968",name:"Oman"},{code:"PS",dialCode:"+970",name:"Palestine"},{code:"AE",dialCode:"+971",name:"United Arab Emirates"},{code:"IL",dialCode:"+972",name:"Israel"},{code:"BH",dialCode:"+973",name:"Bahrain"},{code:"QA",dialCode:"+974",name:"Qatar"},{code:"BT",dialCode:"+975",name:"Bhutan"},{code:"MN",dialCode:"+976",name:"Mongolia"},{code:"NP",dialCode:"+977",name:"Nepal"},{code:"TJ",dialCode:"+992",name:"Tajikistan"},{code:"TM",dialCode:"+993",name:"Turkmenistan"},{code:"AZ",dialCode:"+994",name:"Azerbaijan"},{code:"GE",dialCode:"+995",name:"Georgia"},{code:"KG",dialCode:"+996",name:"Kyrgyzstan"},{code:"UZ",dialCode:"+998",name:"Uzbekistan"}].map((e=>{return{...e,flag:(a=e.code,String.fromCodePoint(...a.toUpperCase().split("").map((e=>127397+e.charCodeAt(0)))))};var a}));function d(e){const a=e.toUpperCase();return n.find((e=>e.code===a))||n.find((e=>"US"===e.code))}const r=a(class extends o{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.fieldChange=t(this,"fieldChange"),this.buttonClick=t(this,"buttonClick")}component;value;disabled=!1;passwordVisible=!1;selectedCountry=d("US");localPhoneNumber="";countryDropdownOpen=!1;telEmailMode=!1;fieldChange;buttonClick;componentChanged(){this.initCountryFromConfig(),this.initTelValue()}valueChanged(){this.initTelValue()}componentWillLoad(){this.initCountryFromConfig(),this.initTelValue()}initCountryFromConfig(){if("TEL"===this.component?.type){const e=this.component.config,a=e?.default_country;a&&(this.selectedCountry=d(a)),!0===e?.allow_email&&(this.telEmailMode=!0)}}initTelValue(){if("TEL"!==this.component?.type)return;const e=this.component.config,a=!0===e?.allow_email,o=this.getEffectiveValue();if(!o)return this.localPhoneNumber="",void(a&&(this.telEmailMode=!0));if(o.startsWith("+")){const e=[...n].sort(((e,a)=>a.dialCode.length-e.dialCode.length));for(const t of e)if(o.startsWith(t.dialCode))return this.selectedCountry=t,this.localPhoneNumber=o.slice(t.dialCode.length),void(a&&(this.telEmailMode=!1))}if(this.localPhoneNumber=o,a){const e=/^[+\d]/.test(o);this.telEmailMode=!e}}handleCountryChange=e=>{this.selectedCountry=d(e.target.value),this.fieldChange.emit({id:this.component.id,value:this.localPhoneNumber?`${this.selectedCountry.dialCode}${this.localPhoneNumber}`:""})};detectDialCodeFromInput(e){const a=e.startsWith("00")?"+"+e.slice(2):e;if(!a.startsWith("+"))return null;const o=[...n].sort(((e,a)=>a.dialCode.length-e.dialCode.length));for(const e of o)if(a.startsWith(e.dialCode))return this.selectedCountry=e,a.slice(e.dialCode.length);return null}processPhoneInput(e,a,o){const t=this.detectDialCodeFromInput(a);if(null!==t){const a=o?t.replace(/[^+\d\s\-()]/g,"").replace(/\+/g,""):t.replace(/[^\d\s\-()]/g,"");e.value=a,this.localPhoneNumber=a,this.fieldChange.emit({id:this.component.id,value:`${this.selectedCountry.dialCode}${a}`})}else{const t=o?a.replace(/[^+\d\s\-()]/g,"").replace(/\+/g,""):a.replace(/[^\d\s\-()]/g,"");t!==a&&(e.value=t),this.localPhoneNumber=t,this.fieldChange.emit({id:this.component.id,value:t?`${this.selectedCountry.dialCode}${t}`:""})}}handlePhoneInput=e=>{const a=e.target,o=a.value,t=this.component.config;if(!0===t?.allow_email){const e=o.length>0&&/^[+\d]/.test(o)&&!o.includes("@");return this.telEmailMode=!e,void(this.telEmailMode?(this.localPhoneNumber=o,this.fieldChange.emit({id:this.component.id,value:o})):this.processPhoneInput(a,o,!0))}this.processPhoneInput(a,o,!1)};handleInput=e=>{this.fieldChange.emit({id:this.component.id,value:e.target.value})};handleKeyDown=e=>{if("Enter"===e.key&&(e.preventDefault(),this.buttonClick.emit({id:"submit",type:"submit",value:"next"})),"Backspace"===e.key&&!this.telEmailMode){const a=e.target,o=this.component.config;!0===o?.allow_email&&0===a.value.length&&(this.telEmailMode=!0,this.localPhoneNumber="",this.fieldChange.emit({id:this.component.id,value:""}))}};handleCheckbox=e=>{this.fieldChange.emit({id:this.component.id,value:e.target.checked?"true":"false"})};getEffectiveValue(){if(null!=this.value)return this.value;const e=this.component;if(e.config&&"default_value"in e.config){const a=e.config.default_value;if("string"==typeof a&&""!==a)return a}}sanitizeForCssToken(e){return e.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}handleButtonClick=(e,a,o)=>{e.preventDefault(),this.buttonClick.emit({id:this.component.id,type:a,value:o})};togglePasswordVisibility=()=>{this.passwordVisible=!this.passwordVisible};getErrors(){const e=this.component;return e.messages?.filter((e=>"error"===e.type))||[]}renderFloatingLabel(e,a,o,t){return e?i("label",{class:t?"input-label floating":"input-label",part:"label",htmlFor:a},e,o&&i("span",{class:"required"},"*")):null}renderLabel(e,a,o){return e?i("label",{class:"input-label",part:"label",htmlFor:a},e,o&&i("span",{class:"required"},"*")):null}getInputFieldClass(e){return e?"input-field has-error":"input-field"}renderPasswordToggle(){return this.passwordVisible?i("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},i("path",{d:"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"}),i("line",{x1:"1",y1:"1",x2:"23",y2:"23"})):i("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},i("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),i("circle",{cx:"12",cy:"12",r:"3"}))}renderErrors(){return this.getErrors().map((e=>i("span",{class:"error-text",part:"error-text",key:e.id??e.text},e.text)))}renderHint(e){return e?i("span",{class:"helper-text",part:"helper-text"},e):null}renderDivider(){return i("hr",{class:"divider",part:"divider"})}renderHtml(e){return i("div",{class:"html-content",part:"html-content",innerHTML:e.config?.content??""})}renderImage(e){const{src:a,alt:o,width:t,height:n}=e.config??{};return a?i("img",{class:"image",part:"image",src:a,alt:o??"",width:t,height:n,loading:"lazy"}):null}renderRichText(e){return i("div",{class:"rich-text",part:"rich-text",innerHTML:e.config?.content??""})}renderNextButton(e){return i("button",{type:"submit",class:"btn btn-primary",part:"button button-primary","data-primary-action-button":!0,disabled:this.disabled,onClick:e=>this.handleButtonClick(e,"submit","next")},e.config.text??"Continue")}renderPreviousButton(e){return i("button",{type:"button",class:"btn btn-secondary",part:"button button-secondary",disabled:this.disabled,onClick:e=>this.handleButtonClick(e,"previous","back")},e.config.text??"Back")}renderJumpButton(e){return i("button",{type:"button",class:"btn btn-link",part:"button button-link",disabled:this.disabled,onClick:a=>this.handleButtonClick(a,"jump",e.config.target_step)},e.config.text??"Go")}renderResendButton(e){return i("button",{type:"button",class:"btn btn-link",part:"button button-link",disabled:this.disabled,onClick:a=>this.handleButtonClick(a,"resend",e.config.resend_action)},e.config.text??"Resend")}renderTextField(e){const a=`input-${e.id}`,o=this.getErrors(),{multiline:t,max_length:n,autocomplete:d}=e.config??{},r=this.getEffectiveValue(),l=!!(r&&r.length>0);return t?i("div",{class:"input-wrapper",part:"input-wrapper"},this.renderLabel(e.label,a,e.required),i("textarea",{id:a,class:this.getInputFieldClass(o.length>0),part:"input textarea",name:e.id,placeholder:" ",required:e.required,disabled:this.disabled,maxLength:n,onInput:this.handleInput},r??""),this.renderErrors(),0===o.length&&this.renderHint(e.hint)):i("div",{class:"input-wrapper",part:"input-wrapper"},i("div",{class:"input-container"},i("input",{id:a,class:this.getInputFieldClass(o.length>0),part:"input",type:e.sensitive?"password":"text",name:e.id,"data-input-name":e.id,value:r??"",placeholder:" ",required:e.required,disabled:this.disabled,maxLength:n,autoComplete:d,onInput:this.handleInput,onKeyDown:this.handleKeyDown}),this.renderFloatingLabel(e.label,a,e.required,l)),this.renderErrors(),0===o.length&&this.renderHint(e.hint))}renderEmailField(e){const a=`input-${e.id}`,o=this.getErrors(),t=this.getEffectiveValue(),n=!!(t&&t.length>0),{autocomplete:d}=e.config??{};return i("div",{class:"input-wrapper",part:"input-wrapper"},i("div",{class:"input-container"},i("input",{id:a,class:this.getInputFieldClass(o.length>0),part:"input",type:"email",name:e.id,"data-input-name":e.id,value:t??"",placeholder:" ",required:e.required,disabled:this.disabled,autocomplete:d||"email",onInput:this.handleInput,onKeyDown:this.handleKeyDown}),this.renderFloatingLabel(e.label,a,e.required,n)),this.renderErrors(),0===o.length&&this.renderHint(e.hint))}renderPasswordField(e){const a=`input-${e.id}`,o=this.getErrors(),t=this.getEffectiveValue(),n=!!(t&&t.length>0),d=e.config?.forgot_password_link;return i("div",{class:"input-wrapper",part:"input-wrapper"},i("div",{class:"input-container password-container"},i("input",{id:a,class:this.getInputFieldClass(o.length>0),part:"input",type:this.passwordVisible?"text":"password",name:e.id,"data-input-name":e.id,value:t??"",placeholder:" ",required:e.required,disabled:this.disabled,minLength:e.config?.min_length,autocomplete:"current-password",onInput:this.handleInput,onKeyDown:this.handleKeyDown}),this.renderFloatingLabel(e.label,a,e.required,n),i("button",{type:"button",class:"password-toggle",part:"password-toggle",onClick:this.togglePasswordVisibility,"aria-label":"Toggle password visibility","aria-pressed":this.passwordVisible?"true":"false"},this.renderPasswordToggle())),this.renderErrors(),0===o.length&&this.renderHint(e.hint),d&&i("div",{class:"field-link",part:"field-link"},i("a",{href:d,class:"link",part:"link"},"Forgot password?")))}renderNumberField(e){const a=`input-${e.id}`,o=this.getErrors(),{placeholder:t,min:n,max:d,step:r}=e.config??{},l=this.getEffectiveValue();return i("div",{class:"input-wrapper",part:"input-wrapper"},this.renderLabel(e.label,a,e.required),i("input",{id:a,class:this.getInputFieldClass(o.length>0),part:"input",type:"number",name:e.id,value:l??"",placeholder:t,required:e.required,disabled:this.disabled,min:n,max:d,step:r,onInput:this.handleInput,onKeyDown:this.handleKeyDown}),this.renderErrors(),0===o.length&&this.renderHint(e.hint))}renderTelField(e){const a=`input-${e.id}`,o=this.getErrors(),t=e.config,d=!0===t?.allow_email,r=this.localPhoneNumber.length>0,l=!d||!this.telEmailMode,s=l?i("select",{class:"country-select",part:"country-select",style:{width:`${`${this.selectedCountry.flag} ${this.selectedCountry.dialCode}`.length+1}ch`,minWidth:"0"},onChange:this.handleCountryChange,disabled:this.disabled,"aria-label":"Country code"},n.map((e=>i("option",{value:e.code,selected:this.selectedCountry.code===e.code,key:e.code},`${e.flag} ${e.dialCode}`)))):null,c=d&&this.telEmailMode?"text":"tel";return i("div",{class:"input-wrapper",part:"input-wrapper"},i("div",{class:l?"phone-input-wrapper":"",part:"phone-input-wrapper"},s,i("div",{class:"input-container"},i("input",{id:a,class:this.getInputFieldClass(o.length>0),part:"input",type:c,name:e.id,"data-input-name":e.id,value:this.localPhoneNumber,placeholder:" ",required:e.required,disabled:this.disabled,autocomplete:d&&this.telEmailMode?"email":"tel-national",onInput:this.handlePhoneInput,onKeyDown:this.handleKeyDown}),this.renderFloatingLabel(e.label,a,e.required,r))),this.renderErrors(),0===o.length&&this.renderHint(e.hint))}renderUrlField(e){const a=`input-${e.id}`,o=this.getErrors(),t=this.getEffectiveValue();return i("div",{class:"input-wrapper",part:"input-wrapper"},this.renderLabel(e.label,a,e.required),i("input",{id:a,class:this.getInputFieldClass(o.length>0),part:"input",type:"url",name:e.id,value:t??"",placeholder:e.config?.placeholder,required:e.required,disabled:this.disabled,onInput:this.handleInput,onKeyDown:this.handleKeyDown}),this.renderErrors(),0===o.length&&this.renderHint(e.hint))}renderDateField(e){const a=`input-${e.id}`,o=this.getErrors(),{min:t,max:n}=e.config??{},d=this.getEffectiveValue();return i("div",{class:"input-wrapper",part:"input-wrapper"},i("div",{class:"input-container"},i("input",{id:a,class:this.getInputFieldClass(o.length>0),part:"input",type:"date",name:e.id,"data-input-name":e.id,value:d??"",placeholder:" ",required:e.required,disabled:this.disabled,min:t,max:n,onInput:this.handleInput,onKeyDown:this.handleKeyDown}),this.renderFloatingLabel(e.label,a,e.required,!0)),this.renderErrors(),0===o.length&&this.renderHint(e.hint))}renderBooleanField(e){return i("label",{class:"checkbox-wrapper",part:"checkbox-wrapper"},i("input",{type:"checkbox",part:"checkbox",name:e.id,checked:"true"===this.value||!0===e.config?.default_value,required:e.required,disabled:this.disabled,onChange:this.handleCheckbox}),i("span",{class:"checkbox-label",part:"checkbox-label"},e.label))}renderLegalField(e){const a=e.config?.text??e.label??"",o=!0===e.config?.html;return i("label",{class:"checkbox-wrapper",part:"checkbox-wrapper"},i("input",{type:"checkbox",part:"checkbox",name:e.id,checked:"true"===this.value,required:e.required,disabled:this.disabled,onChange:this.handleCheckbox}),o?i("span",{class:"checkbox-label",part:"checkbox-label",innerHTML:a}):i("span",{class:"checkbox-label",part:"checkbox-label"},a))}renderCountryField(e){const a=`input-${e.id}`,o=this.getErrors(),{placeholder:t}=e.config??{},d=this.getEffectiveValue();return i("div",{class:"input-wrapper",part:"input-wrapper"},i("div",{class:"input-container"},i("select",{id:a,class:this.getInputFieldClass(o.length>0),part:"input select",name:e.id,required:e.required,disabled:this.disabled,onChange:this.handleInput},t&&i("option",{value:"",disabled:!0,selected:!d},t),n.map((e=>i("option",{value:e.code,selected:d===e.code,key:e.code},e.flag," ",e.name)))),this.renderFloatingLabel(e.label,a,e.required,!0)),this.renderErrors(),0===o.length&&this.renderHint(e.hint))}renderDropdownField(e){const a=`input-${e.id}`,o=this.getErrors(),{options:t,placeholder:n}=e.config??{},d=this.getEffectiveValue();return i("div",{class:"input-wrapper",part:"input-wrapper"},i("div",{class:"input-container"},i("select",{id:a,class:this.getInputFieldClass(o.length>0),part:"input select",name:e.id,required:e.required,disabled:this.disabled,onChange:this.handleInput},n&&i("option",{value:"",disabled:!0,selected:!d},n),t?.map((e=>i("option",{value:e.value,selected:d===e.value,key:e.value},e.label)))),this.renderFloatingLabel(e.label,a,e.required,!0)),this.renderErrors(),0===o.length&&this.renderHint(e.hint))}renderChoiceField(e){const a=this.getErrors(),{options:o,display:t}=e.config??{},n="checkbox"===t,d=n?"checkbox":"radio";return i("div",{class:"choice-wrapper",part:"choice-wrapper"},e.label&&i("span",{class:"choice-label",part:"choice-label"},e.label,e.required&&i("span",{class:"required"},"*")),i("div",{class:"choice-options",part:"choice-options"},o?.map((a=>i("label",{class:"choice-option",part:"choice-option",key:a.value},i("input",{type:d,part:d,name:e.id,value:a.value,checked:this.getEffectiveValue()===a.value,required:e.required&&!n,disabled:this.disabled,onChange:this.handleInput}),i("span",null,a.label))))),this.renderErrors(),0===a.length&&this.renderHint(e.hint))}renderSocialField(e){const a=e.config?.providers??[],o=e.config?.provider_details,t=new Map(o?.map((e=>[e.name,e]))??[]),n=e=>{const a=t.get(e);return a?.display_name?a.display_name:e.split("-").map((e=>e.charAt(0).toUpperCase()+e.slice(1))).join(" ")},d=e=>{const a=t.get(e),o=this.sanitizeForCssToken(e);return a?.icon_url?i("img",{class:"social-icon",part:`social-icon social-icon-${o}`,src:a.icon_url,alt:a.display_name||e}):null};return i("div",{class:"social-buttons",part:"social-buttons"},a.map((e=>{const a=this.sanitizeForCssToken(e),o=(e=>{const a=t.get(e);return a?.strategy??e})(e),r=d(e),l=t.get(e),s=`btn btn-secondary btn-social btn-social-${a}${r?"":" no-icon"}`,c=`button button-secondary button-social button-social-${a}`,h=[r,i("span",{class:"btn-social-content",part:`button-social-content button-social-content-${a}`},i("span",{part:`button-social-text button-social-text-${a}`},n(e)),i("span",{class:"btn-social-subtitle",part:`button-social-subtitle button-social-subtitle-${a}`}))];return l?.href?i("a",{href:this.disabled?void 0:l.href,class:s,part:c,"data-connection-name":e,"data-strategy":o,key:e,"aria-disabled":this.disabled?"true":void 0,tabindex:this.disabled?-1:void 0,onClick:e=>{this.disabled&&e.preventDefault()}},h):i("button",{type:"button",class:s,part:c,"data-connection-name":e,"data-strategy":o,disabled:this.disabled,onClick:a=>this.handleButtonClick(a,"SOCIAL",e),key:e},h)})))}render(){if(!this.component)return null;if(!1===this.component.visible)return null;switch(this.component.type){case"DIVIDER":return this.renderDivider();case"HTML":return this.renderHtml(this.component);case"IMAGE":return this.renderImage(this.component);case"RICH_TEXT":return this.renderRichText(this.component);case"NEXT_BUTTON":return this.renderNextButton(this.component);case"PREVIOUS_BUTTON":return this.renderPreviousButton(this.component);case"JUMP_BUTTON":return this.renderJumpButton(this.component);case"RESEND_BUTTON":return this.renderResendButton(this.component);case"TEXT":return this.renderTextField(this.component);case"EMAIL":return this.renderEmailField(this.component);case"PASSWORD":return this.renderPasswordField(this.component);case"NUMBER":return this.renderNumberField(this.component);case"TEL":return this.renderTelField(this.component);case"URL":return this.renderUrlField(this.component);case"DATE":return this.renderDateField(this.component);case"BOOLEAN":return this.renderBooleanField(this.component);case"LEGAL":return this.renderLegalField(this.component);case"COUNTRY":return this.renderCountryField(this.component);case"DROPDOWN":return this.renderDropdownField(this.component);case"CHOICE":return this.renderChoiceField(this.component);case"SOCIAL":return this.renderSocialField(this.component);case"AUTH0_VERIFIABLE_CREDENTIALS":case"GMAPS_ADDRESS":case"RECAPTCHA":return console.warn(`Widget component "${this.component.type}" not yet implemented`),null;case"CARDS":case"CUSTOM":case"FILE":case"PAYMENT":return console.warn(`Component "${this.component.type}" not yet implemented`),null;default:return console.warn(`Unknown component type: ${this.component.type}`),null}}static get watchers(){return{component:[{componentChanged:0}],value:[{valueChanged:0}]}}static get style(){return":host{display:block}.input-wrapper{display:flex;flex-direction:column;position:relative;margin-top:8px;margin-bottom:16px}.input-container{position:relative;width:100%}.input-label{position:absolute;left:16px;top:50%;transform:translateY(-50%);font-size:var(--ah-font-size-label, 16px);font-weight:var(--ah-font-weight-label, 400);color:var(--ah-color-text-muted, #65676e);pointer-events:none;transition:all 0.15s ease-out;background-color:transparent;padding:0;z-index:1}.input-label.floating,.input-field:focus+.input-label,.input-field:not(:placeholder-shown)+.input-label,select.input-field+.input-label,input[type=\"date\"].input-field+.input-label{top:-8px;transform:translateY(0);font-size:12px;background-color:var(--ah-color-bg, #ffffff);padding:0 4px;left:12px;color:var(--ah-color-text-muted, #65676e)}.input-field:focus+.input-label{color:var(--ah-color-primary, #635dff)}.required{color:var(--ah-color-error, #d03c38);margin-left:2px}.input-field{width:100%;padding:16px;font-size:16px;font-family:inherit;color:var(--ah-color-input-text, var(--ah-color-text, #1e212a));background-color:var(--ah-color-input-bg, #ffffff);border:var(--ah-input-border-width, 1px) solid var(--ah-color-border, #c9cace);border-radius:var(--ah-input-radius, 3px);outline:none;transition:border-color 0.15s ease-out, box-shadow 0.15s ease-out;box-sizing:border-box}.input-field::placeholder{color:transparent}.input-field:hover{border-color:var(--ah-color-border-hover, #65676e)}.input-field:focus{border-color:var(--ah-color-primary, #635dff);box-shadow:inset 0 0 0 1px var(--ah-color-primary, #635dff)}.input-field.has-error{border-color:var(--ah-color-error, #d03c38)}.input-field.has-error:focus{box-shadow:inset 0 0 0 1px var(--ah-color-error, #d03c38)}.input-field:disabled{background-color:var(--ah-color-bg-disabled, #f5f5f5);border-color:var(--ah-color-border-disabled, #e0e1e3);cursor:not-allowed;opacity:0.7}.password-container{position:relative;display:flex;align-items:center}.password-container .input-field{padding-right:48px}.password-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;color:var(--ah-color-icon, var(--ah-color-text-muted, #65676e));transition:color 0.15s ease}.password-toggle:hover{color:var(--ah-color-icon, var(--ah-color-text, #1e212a))}.password-toggle svg{width:20px;height:20px}.error-text{font-size:12px;color:var(--ah-color-error, #d03c38);margin-top:4px;line-height:1.4}.helper-text{font-size:12px;color:var(--ah-color-text-muted, #65676e);margin-top:4px;line-height:1.4}.field-link{display:block;text-align:left;margin-top:8px;margin-bottom:16px}.field-link a{color:var(--ah-color-link, #635dff);text-decoration:var(--ah-link-decoration, none);font-size:var(--ah-font-size-link, 14px);font-weight:var(--ah-font-weight-link, 400)}.field-link a:hover{text-decoration:underline}.checkbox-wrapper{display:flex;align-items:flex-start;gap:10px;cursor:pointer;margin-bottom:16px}.checkbox-wrapper input[type=\"checkbox\"]{width:18px;height:18px;margin:0;accent-color:var(--ah-color-primary, #635dff);cursor:pointer;flex-shrink:0}.checkbox-label{font-size:var(--ah-font-size-body, 14px);font-weight:var(--ah-font-weight-body, 400);color:var(--ah-color-text, #1e212a);line-height:1.5}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:14px 20px;font-size:var(--ah-font-size-btn, 16px);font-weight:var(--ah-font-weight-btn, 400);font-family:inherit;line-height:1.25;text-align:center;text-decoration:none;border:none;border-radius:var(--ah-btn-radius, 3px);cursor:pointer;transition:background-color 0.15s ease, border-color 0.15s ease, transform 0.1s ease;box-sizing:border-box}.btn:disabled{opacity:0.6;cursor:not-allowed}.btn:not(:disabled):active{transform:scale(0.98)}.btn:focus-visible{outline:2px solid var(--ah-color-focus-ring, var(--ah-color-primary, #635dff));outline-offset:2px}.btn-primary{background-color:var(--ah-color-primary, #635dff);color:var(--ah-color-text-on-primary, #ffffff);margin-top:12px}.btn-primary:not(:disabled):hover{background-color:var(--ah-color-primary-hover, color-mix(in srgb, var(--ah-color-primary, #635dff) 85%, black))}.btn-secondary{background-color:var(--ah-color-bg, #ffffff);color:var(--ah-btn-secondary-text, var(--ah-color-text, #1e212a));border:var(--ah-btn-border-width, 1px) solid var(--ah-btn-secondary-border, var(--ah-color-border, #c9cace))}.btn-secondary:not(:disabled):hover{background-color:var(--ah-color-bg-hover, #f5f5f5);border-color:var(--ah-color-border-hover, #65676e)}.btn-link{background:none;border:none;color:var(--ah-color-link, #635dff);padding:8px 0;font-weight:var(--ah-font-weight-link, 400);text-decoration:none}.btn-link:hover{text-decoration:underline}.phone-input-wrapper{display:flex;align-items:stretch;gap:0;width:100%}.country-select{flex-shrink:0;width:auto;padding:12px 8px;font-size:var(--ah-font-size-body, 16px);font-family:var(--ah-font-family, inherit);border:var(--ah-input-border-width, 1px) solid var(--ah-color-border, #c9cace);border-right:none;border-radius:var(--ah-input-radius, 4px) 0 0 var(--ah-input-radius, 4px);background-color:var(--ah-color-input-bg, var(--ah-color-surface, #fff));color:var(--ah-color-input-text, var(--ah-color-text, #1e212a));cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right 6px center;padding-right:22px}.country-select:focus{outline:none;border-color:var(--ah-color-primary, #635dff);box-shadow:0 0 0 1px var(--ah-color-primary, #635dff)}.country-select:disabled{opacity:0.5;cursor:not-allowed}.phone-input-wrapper .input-container{flex:1;min-width:0}.phone-input-wrapper .input-field{border-radius:0 var(--ah-input-radius, 4px) var(--ah-input-radius, 4px) 0}.phone-input-wrapper .input-label.floating,.phone-input-wrapper .input-field:focus+.input-label,.phone-input-wrapper .input-field:not(:placeholder-shown)+.input-label{left:8px}.social-buttons{display:flex;flex-direction:column;gap:12px}.btn-social{display:flex;align-items:center;justify-content:center;gap:12px}.btn-social-content{display:flex;flex-direction:column;align-items:center;text-align:center}.btn-social-subtitle{font-size:12px;font-style:italic;opacity:0.8;margin-top:2px}.btn-social-subtitle:empty{display:none}.social-icon{width:20px;height:20px;flex-shrink:0}@media (max-width: 480px){.social-buttons:has(.btn-social:nth-child(3)){flex-direction:row;flex-wrap:nowrap;justify-content:stretch;gap:8px}.social-buttons:has(.btn-social:nth-child(3)) .btn-social{width:auto;min-width:0;padding:12px;flex:1 1 0}.social-buttons:has(.btn-social:nth-child(3)) .btn-social span{display:none}.social-buttons:has(.btn-social:nth-child(3)) .social-icon{width:24px;height:24px}}.btn-icon{width:20px;height:20px;flex-shrink:0}.btn-icon img{width:100%;height:100%;object-fit:contain}.text-title{font-size:var(--ah-font-size-title, 20px);font-weight:var(--ah-font-weight-title, 400);color:var(--ah-color-text-header, var(--ah-color-header, #1e212a));margin:8px 0;line-height:1.3}.text-title.text-success{color:var(--ah-color-success, #13a769)}.text-description{font-size:var(--ah-font-size-subtitle, 14px);font-weight:var(--ah-font-weight-subtitle, 400);color:var(--ah-color-text-muted, #65676e);margin:4px 0;line-height:1.5}.image{display:block;max-width:100%;height:auto;border-radius:4px}.image-centered{margin:0 auto 16px;width:52px;height:52px;object-fit:contain}.link{color:var(--ah-color-link, #635dff);text-decoration:var(--ah-link-decoration, none);font-size:var(--ah-font-size-link, 14px);transition:color 0.15s ease}.link:hover{text-decoration:underline}.link:focus-visible{outline:2px solid var(--ah-color-focus-ring, var(--ah-color-link, #635dff));outline-offset:2px;border-radius:2px}.node-error{padding:12px 16px;background-color:var(--ah-color-error-bg, #ffeaea);color:var(--ah-color-error, #d03c38);border-left:3px solid var(--ah-color-error, #d03c38);border-radius:0;font-size:14px;margin-bottom:16px}.node-success{padding:12px 16px;background-color:var(--ah-color-success-bg, #e6f9f1);color:var(--ah-color-success, #13a769);border-left:3px solid var(--ah-color-success, #13a769);border-radius:0;font-size:14px;margin-bottom:16px}.divider{display:flex;align-items:center;text-align:center;margin:16px 0}.divider::before,.divider::after{content:\"\";flex:1;border-bottom:1px solid var(--ah-color-border-muted, #c9cace)}.divider-text{padding:0 10px;font-size:12px;font-weight:400;color:var(--ah-color-text-muted, #65676e);text-transform:uppercase;letter-spacing:0.5px}.rich-text{font-size:var(--ah-font-size-body, 14px);font-weight:var(--ah-font-weight-body, 400);line-height:1.5;color:var(--ah-color-text, #1e212a)}.rich-text a{color:var(--ah-color-link, #635dff);text-decoration:var(--ah-link-decoration, none);transition:color 0.15s ease}.rich-text a:hover{text-decoration:underline}.rich-text .terms-text{margin-top:16px;text-align:center;font-size:12px;color:var(--ah-color-text-muted, #65676e)}.rich-text .terms-text a{font-size:12px}.rich-text .forgot-password-link{text-align:right;font-size:13px;margin-top:4px}.rich-text .forgot-password-link a{font-size:13px;color:var(--ah-color-link, #635dff)}.rich-text .passwordless-link{margin-top:16px;text-align:center;font-size:14px}.rich-text .passwordless-link a{color:var(--ah-color-link, #635dff);text-decoration:var(--ah-link-decoration, none)}.rich-text .passwordless-link a:hover{text-decoration:underline}.rich-text .signup-link{margin-top:16px;text-align:center;font-size:14px;color:var(--ah-color-text, #1e212a)}"}},[513,"authhero-node",{component:[16],value:[1],disabled:[4],passwordVisible:[32],selectedCountry:[32],localPhoneNumber:[32],countryDropdownOpen:[32],telEmailMode:[32]},void 0,{component:[{componentChanged:0}],value:[{valueChanged:0}]}]);function l(){"undefined"!=typeof customElements&&["authhero-node"].forEach((a=>{"authhero-node"===a&&(customElements.get(e(a))||customElements.define(e(a),r))}))}l();export{r as A,l as d}
|