@autenticar-me/vue 0.9.0 → 0.11.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/index.cjs CHANGED
@@ -2,7 +2,7 @@
2
2
  (function() {
3
3
  if (typeof document !== 'undefined') {
4
4
  const style = document.createElement('style');
5
- style.textContent = ":root {\n --atm-bg-primary: #ffffff;\n --atm-bg-secondary: #f8f9fa;\n --atm-bg-tertiary: #f0f0f0;\n\n --atm-text-primary: #333333;\n --atm-text-secondary: #666666;\n --atm-text-tertiary: #999999;\n --atm-text-muted: #888888;\n\n --atm-border-color: #dddddd;\n --atm-border-hover: #cccccc;\n\n --atm-input-bg: #ffffff;\n --atm-input-disabled: #f5f5f5;\n --atm-input-border: #dddddd;\n\n --atm-error-color: #dc3545;\n --atm-success-color: #28a745;\n\n --atm-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.1);\n --atm-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);\n}\n\n.atm-theme-dark,\n:root.atm-theme-dark {\n --atm-bg-primary: #1a1a1a;\n --atm-bg-secondary: #2d2d2d;\n --atm-bg-tertiary: #404040;\n\n --atm-text-primary: #e0e0e0;\n --atm-text-secondary: #b0b0b0;\n --atm-text-tertiary: #808080;\n --atm-text-muted: #999999;\n\n --atm-border-color: #404040;\n --atm-border-hover: #505050;\n\n --atm-input-bg: #2d2d2d;\n --atm-input-disabled: #1f1f1f;\n --atm-input-border: #404040;\n\n --atm-error-color: #ff6b6b;\n --atm-success-color: #51cf66;\n\n --atm-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.3);\n --atm-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.5);\n}\n\n.atm-overlay[data-v-5a315eca] {\n position: fixed;\n inset: 0;\n z-index: 99999;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: rgba(0, 0, 0, 0.5);\n backdrop-filter: blur(4px);\n overflow-y: auto;\n padding: 1.5rem 0;\n}\n.atm-container[data-v-5a315eca] {\n padding: 0 1.5rem;\n width: 100%;\n margin: auto;\n}\n.atm-fade-layer[data-v-5a315eca] {\n position: fixed;\n inset: 0;\n transition: opacity 0.2s ease;\n pointer-events: none;\n}\n.atm-fade-bg[data-v-5a315eca] {\n position: absolute;\n inset: 0;\n opacity: 0.75;\n}\n.atm-modal[data-v-5a315eca] {\n position: relative;\n display: inline-block;\n vertical-align: bottom;\n background-color: var(--atm-bg-primary);\n border-radius: 0.5rem;\n text-align: left;\n box-shadow: var(--atm-shadow-md);\n transform: translate(0);\n transition: all 0.2s ease-in-out;\n max-width: 32rem;\n width: 100%;\n max-height: calc(100vh - 3rem);\n display: flex;\n flex-direction: column;\n}\n.atm-close-button[data-v-5a315eca] {\n position: absolute;\n top: 1rem;\n right: 1rem;\n color: var(--atm-text-tertiary);\n background: transparent;\n border: none;\n cursor: pointer;\n padding: 0.25rem;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10;\n transition: color 0.2s;\n}\n.atm-close-button[data-v-5a315eca]:hover {\n color: var(--atm-text-secondary);\n}\n.atm-icon[data-v-5a315eca] {\n width: 1.5rem;\n height: 1.5rem;\n}\n.atm-modal-content[data-v-5a315eca] {\n padding: 1.25rem;\n overflow-y: auto;\n flex: 1;\n min-height: 0;\n}\n.atm-modal-title[data-v-5a315eca] {\n font-size: 1.125rem;\n font-weight: 500;\n color: var(--atm-text-primary);\n margin: 0;\n margin-bottom: 0.75rem;\n}\n@media (max-width: 768px) {\n.atm-overlay[data-v-5a315eca] {\n padding: 1rem 0;\n}\n.atm-container[data-v-5a315eca] {\n padding: 0 1rem;\n}\n.atm-modal[data-v-5a315eca] {\n border-radius: 0.375rem;\n max-height: calc(100vh - 2rem);\n}\n.atm-modal-content[data-v-5a315eca] {\n padding: 1rem;\n}\n.atm-modal-title[data-v-5a315eca] {\n font-size: 1rem;\n margin-bottom: 0.75rem;\n}\n.atm-close-button[data-v-5a315eca] {\n top: 0.75rem;\n right: 0.75rem;\n}\n.atm-icon[data-v-5a315eca] {\n width: 1.25rem;\n height: 1.25rem;\n}\n}\n@media (max-width: 480px) {\n.atm-overlay[data-v-5a315eca] {\n padding: 0.5rem 0;\n}\n.atm-container[data-v-5a315eca] {\n padding: 0 0.5rem;\n}\n.atm-modal[data-v-5a315eca] {\n border-radius: 0.25rem;\n max-width: 100%;\n max-height: calc(100vh - 1rem);\n}\n.atm-modal-content[data-v-5a315eca] {\n padding: 0.875rem;\n}\n.atm-modal-title[data-v-5a315eca] {\n font-size: 0.9375rem;\n margin-bottom: 0.625rem;\n}\n.atm-close-button[data-v-5a315eca] {\n top: 0.5rem;\n right: 0.5rem;\n}\n}\n@media (max-width: 360px) {\n.atm-overlay[data-v-5a315eca] {\n padding: 0.25rem 0;\n}\n.atm-container[data-v-5a315eca] {\n padding: 0 0.25rem;\n}\n.atm-modal[data-v-5a315eca] {\n max-height: calc(100vh - 0.5rem);\n}\n.atm-modal-content[data-v-5a315eca] {\n padding: 0.75rem;\n}\n.atm-modal-title[data-v-5a315eca] {\n font-size: 0.875rem;\n margin-bottom: 0.5rem;\n}\n}\n\n.atm-login-container[data-v-4e744a2c] {\n background: var(--atm-bg-primary);\n border-radius: 8px;\n font-family: 'Segoe UI', system-ui, sans-serif;\n text-align: center;\n}\n.atm-logo-container[data-v-4e744a2c] {\n margin-bottom: 12px;\n}\n.atm-logo-placeholder[data-v-4e744a2c] {\n width: 44px;\n height: 44px;\n margin: 0 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--atm-bg-tertiary);\n border-radius: 50%;\n color: var(--atm-text-muted);\n font-size: 11px;\n}\n.atm-logo-image[data-v-4e744a2c] {\n max-width: 44px;\n max-height: 44px;\n margin: 0 auto;\n display: block;\n border-radius: 4px;\n object-fit: contain;\n}\n.atm-project-name[data-v-4e744a2c] {\n margin: 0 0 4px 0;\n font-size: 18px;\n color: var(--v68f877d9);\n font-weight: 600;\n}\n.atm-welcome-text[data-v-4e744a2c] {\n margin: 0 0 16px 0;\n font-size: 14px;\n color: var(--atm-text-secondary);\n}\n.atm-form-group[data-v-4e744a2c] {\n margin-bottom: 12px;\n text-align: left;\n}\n.atm-input-label[data-v-4e744a2c] {\n display: block;\n margin-bottom: 4px;\n font-size: 13px;\n color: var(--atm-text-primary);\n font-weight: 500;\n}\n.atm-input-field[data-v-4e744a2c] {\n width: 100%;\n padding: 8px 10px;\n background: var(--atm-input-bg);\n color: var(--atm-text-primary);\n border: 1px solid var(--atm-input-border);\n border-radius: 6px;\n font-size: 14px;\n box-sizing: border-box;\n transition: border-color 0.2s;\n}\n.atm-input-field[data-v-4e744a2c]:focus {\n outline: none;\n border-color: var(--v68f877d9);\n box-shadow: 0 0 0 2px rgba(74, 144, 226, 0.1);\n}\n.atm-input-field[data-v-4e744a2c]:disabled {\n background-color: var(--atm-input-disabled);\n cursor: not-allowed;\n}\n.atm-field-error[data-v-4e744a2c] {\n color: var(--atm-error-color);\n font-size: 12px;\n margin-top: 4px;\n text-align: left;\n}\n.atm-alternative-options[data-v-4e744a2c] {\n margin-top: 8px;\n text-align: center;\n}\n.atm-forgot-password-link[data-v-4e744a2c] {\n font-size: 12px;\n background: none;\n border: none;\n color: var(--v358114b2);\n cursor: pointer;\n text-decoration: none;\n padding: 0;\n font-family: inherit;\n}\n.atm-forgot-password-link[data-v-4e744a2c]:hover:not(:disabled) {\n text-decoration: underline;\n}\n.atm-forgot-password-link[data-v-4e744a2c]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n.atm-strategy-choice[data-v-4e744a2c] {\n text-align: center;\n margin-bottom: 12px;\n}\n.atm-strategy-title[data-v-4e744a2c] {\n font-size: 14px;\n color: var(--atm-text-secondary);\n margin-bottom: 12px;\n}\n.atm-strategy-buttons[data-v-4e744a2c] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.atm-strategy-button[data-v-4e744a2c] {\n width: 100%;\n padding: 10px;\n background: var(--atm-bg-secondary);\n color: var(--atm-text-primary);\n border: 1px solid var(--atm-border-color);\n border-radius: 6px;\n font-size: 14px;\n cursor: pointer;\n transition: all 0.2s;\n}\n.atm-strategy-button[data-v-4e744a2c]:hover:not(:disabled) {\n background: var(--atm-bg-tertiary);\n border-color: var(--v68f877d9);\n}\n.atm-strategy-button[data-v-4e744a2c]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n.atm-email-link-text[data-v-4e744a2c] {\n font-size: 14px;\n color: var(--atm-text-secondary);\n margin: 0;\n text-align: center;\n}\n.atm-login-button[data-v-4e744a2c] {\n width: 100%;\n padding: 10px;\n margin-top: 4px;\n background: var(--v68f877d9);\n color: #ffffff;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s;\n min-height: 42px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.atm-login-button[data-v-4e744a2c]:hover:not(:disabled) {\n opacity: 0.9;\n transform: translateY(-1px);\n}\n.atm-login-button[data-v-4e744a2c]:disabled {\n opacity: 0.8;\n cursor: not-allowed;\n transform: none;\n}\n.button-spinner[data-v-4e744a2c] {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n color: #fff;\n font-weight: 500;\n}\n.spinner-svg[data-v-4e744a2c] {\n animation: spin-4e744a2c 1s linear infinite;\n width: 18px;\n height: 18px;\n stroke: #fff;\n}\n.spinner-circle[data-v-4e744a2c] {\n stroke-dasharray: 90, 150;\n stroke-linecap: round;\n}\n@keyframes spin-4e744a2c {\n0% {\n transform: rotate(0deg);\n}\n100% {\n transform: rotate(360deg);\n}\n}\n.atm-footer-links[data-v-4e744a2c] {\n margin-top: 16px;\n font-size: 13px;\n}\n.atm-signup-text[data-v-4e744a2c] {\n color: var(--atm-text-secondary);\n margin-bottom: 6px;\n}\n.atm-signup-link[data-v-4e744a2c] {\n color: var(--v358114b2);\n text-decoration: none;\n cursor: pointer;\n}\n.atm-signup-link[data-v-4e744a2c]:hover {\n text-decoration: underline;\n}\n.atm-powered-by[data-v-4e744a2c] {\n color: var(--atm-text-tertiary);\n font-size: 11px;\n margin: 0;\n}\n@media (max-width: 768px) {\n.atm-project-name[data-v-4e744a2c] {\n font-size: 17px;\n}\n.atm-welcome-text[data-v-4e744a2c] {\n font-size: 13px;\n margin-bottom: 14px;\n}\n.atm-form-group[data-v-4e744a2c] {\n margin-bottom: 10px;\n}\n.atm-input-label[data-v-4e744a2c] {\n font-size: 12px;\n margin-bottom: 4px;\n}\n.atm-input-field[data-v-4e744a2c] {\n padding: 8px 10px;\n font-size: 13px;\n}\n.atm-login-button[data-v-4e744a2c] {\n font-size: 13px;\n padding: 9px;\n min-height: 40px;\n}\n.atm-strategy-button[data-v-4e744a2c] {\n padding: 9px;\n font-size: 13px;\n}\n.atm-footer-links[data-v-4e744a2c] {\n margin-top: 14px;\n font-size: 12px;\n}\n}\n@media (max-width: 480px) {\n.atm-logo-placeholder[data-v-4e744a2c] {\n width: 40px;\n height: 40px;\n font-size: 10px;\n}\n.atm-logo-image[data-v-4e744a2c] {\n max-width: 40px;\n max-height: 40px;\n}\n.atm-project-name[data-v-4e744a2c] {\n font-size: 16px;\n margin-bottom: 4px;\n}\n.atm-welcome-text[data-v-4e744a2c] {\n font-size: 12px;\n margin-bottom: 12px;\n}\n.atm-form-group[data-v-4e744a2c] {\n margin-bottom: 10px;\n}\n.atm-input-label[data-v-4e744a2c] {\n font-size: 12px;\n margin-bottom: 3px;\n}\n.atm-input-field[data-v-4e744a2c] {\n padding: 7px 9px;\n font-size: 13px;\n}\n.atm-login-button[data-v-4e744a2c] {\n font-size: 13px;\n padding: 9px;\n min-height: 38px;\n}\n.atm-forgot-password-link[data-v-4e744a2c] {\n font-size: 11px;\n}\n.atm-strategy-title[data-v-4e744a2c] {\n font-size: 13px;\n margin-bottom: 10px;\n}\n.atm-strategy-button[data-v-4e744a2c] {\n padding: 9px;\n font-size: 13px;\n}\n.atm-email-link-text[data-v-4e744a2c] {\n font-size: 13px;\n}\n.atm-footer-links[data-v-4e744a2c] {\n margin-top: 12px;\n font-size: 12px;\n}\n.atm-powered-by[data-v-4e744a2c] {\n font-size: 10px;\n}\n.spinner-svg[data-v-4e744a2c] {\n width: 16px;\n height: 16px;\n}\n.button-spinner[data-v-4e744a2c] {\n gap: 6px;\n}\n}\n@media (max-width: 360px) {\n.atm-logo-placeholder[data-v-4e744a2c] {\n width: 36px;\n height: 36px;\n font-size: 9px;\n}\n.atm-logo-image[data-v-4e744a2c] {\n max-width: 36px;\n max-height: 36px;\n}\n.atm-project-name[data-v-4e744a2c] {\n font-size: 15px;\n margin-bottom: 3px;\n}\n.atm-welcome-text[data-v-4e744a2c] {\n font-size: 11px;\n margin-bottom: 10px;\n}\n.atm-form-group[data-v-4e744a2c] {\n margin-bottom: 8px;\n}\n.atm-input-label[data-v-4e744a2c] {\n font-size: 11px;\n margin-bottom: 3px;\n}\n.atm-input-field[data-v-4e744a2c] {\n padding: 6px 8px;\n font-size: 12px;\n}\n.atm-login-button[data-v-4e744a2c] {\n font-size: 12px;\n padding: 8px;\n min-height: 36px;\n}\n.atm-strategy-button[data-v-4e744a2c] {\n padding: 8px;\n font-size: 12px;\n}\n.atm-footer-links[data-v-4e744a2c] {\n margin-top: 10px;\n font-size: 11px;\n}\n.spinner-svg[data-v-4e744a2c] {\n width: 14px;\n height: 14px;\n}\n}\n\n.atm-notification-container[data-v-f5e47084] {\n font-family: Arial, Helvetica, sans-serif;\n position: fixed;\n top: 20px;\n right: 20px;\n z-index: 99999;\n pointer-events: none;\n}\n.atm-notification[data-v-f5e47084] {\n padding: 12px 16px;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n min-width: 250px;\n max-width: 350px;\n pointer-events: auto;\n}\n.atm-notification--error[data-v-f5e47084] {\n background: #ff3333;\n color: #FFF;\n}\n.atm-notification--success[data-v-f5e47084] {\n background: #00a622;\n color: #FFF;\n}\n.atm-notification--warning[data-v-f5e47084] {\n background: #ffa500;\n color: #FFF;\n}\n.atm-notification-enter-active[data-v-f5e47084] {\n transition: all 0.3s ease-out;\n}\n.atm-notification-leave-active[data-v-f5e47084] {\n transition: all 0.3s ease-in;\n}\n.atm-notification-enter-from[data-v-f5e47084] {\n transform: translateX(100%);\n opacity: 0;\n}\n.atm-notification-leave-to[data-v-f5e47084] {\n transform: translateX(100%);\n opacity: 0;\n}\n@media (max-width: 768px) {\n.atm-notification-container[data-v-f5e47084] {\n top: 16px;\n right: 16px;\n left: 16px;\n}\n.atm-notification[data-v-f5e47084] {\n min-width: auto;\n max-width: 100%;\n padding: 11px 14px;\n font-size: 13px;\n}\n}\n@media (max-width: 480px) {\n.atm-notification-container[data-v-f5e47084] {\n top: 12px;\n right: 12px;\n left: 12px;\n}\n.atm-notification[data-v-f5e47084] {\n padding: 10px 12px;\n font-size: 12px;\n border-radius: 5px;\n}\n}\n@media (max-width: 360px) {\n.atm-notification-container[data-v-f5e47084] {\n top: 10px;\n right: 10px;\n left: 10px;\n}\n.atm-notification[data-v-f5e47084] {\n padding: 9px 11px;\n font-size: 11px;\n border-radius: 4px;\n}\n}\n\n.atm-signup-container[data-v-9668f28a] {\n width: 100%;\n background: var(--atm-bg-primary);\n border-radius: 8px;\n font-family: 'Segoe UI', system-ui, sans-serif;\n text-align: center;\n}\n.atm-logo-container[data-v-9668f28a] {\n margin-bottom: 12px;\n}\n.atm-logo-placeholder[data-v-9668f28a] {\n width: 44px;\n height: 44px;\n margin: 0 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--atm-bg-tertiary);\n border-radius: 50%;\n color: var(--atm-text-muted);\n font-size: 11px;\n}\n.atm-logo-image[data-v-9668f28a] {\n max-width: 44px;\n max-height: 44px;\n margin: 0 auto;\n display: block;\n border-radius: 4px;\n object-fit: contain;\n}\n.atm-project-name[data-v-9668f28a] {\n margin: 0 0 4px 0;\n font-size: 18px;\n color: var(--v1eb0b99e);\n font-weight: 600;\n}\n.atm-welcome-text[data-v-9668f28a] {\n margin: 0 0 16px 0;\n font-size: 14px;\n color: var(--atm-text-secondary);\n}\n.atm-form-group[data-v-9668f28a] {\n margin-bottom: 12px;\n text-align: left;\n}\n.atm-input-label[data-v-9668f28a] {\n display: block;\n margin-bottom: 4px;\n font-size: 13px;\n color: var(--atm-text-primary);\n font-weight: 500;\n}\n.atm-input-field[data-v-9668f28a] {\n width: 100%;\n padding: 8px 10px;\n background: var(--atm-input-bg);\n color: var(--atm-text-primary);\n border: 1px solid var(--atm-input-border);\n border-radius: 6px;\n font-size: 14px;\n box-sizing: border-box;\n transition: border-color 0.2s;\n}\n.atm-input-field[data-v-9668f28a]:focus {\n outline: none;\n border-color: var(--v1eb0b99e);\n box-shadow: 0 0 0 2px rgba(74, 144, 226, 0.1);\n}\n.atm-input-field[data-v-9668f28a]:disabled {\n background-color: var(--atm-input-disabled);\n cursor: not-allowed;\n}\n.atm-field-error[data-v-9668f28a] {\n color: var(--atm-error-color);\n font-size: 12px;\n margin-top: 4px;\n text-align: left;\n}\n.atm-signup-button[data-v-9668f28a] {\n width: 100%;\n padding: 10px;\n margin-top: 4px;\n background: var(--v1eb0b99e);\n color: #ffffff;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s;\n min-height: 42px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.atm-signup-button[data-v-9668f28a]:hover:not(:disabled) {\n opacity: 0.9;\n transform: translateY(-1px);\n}\n.atm-signup-button[data-v-9668f28a]:disabled {\n opacity: 0.8;\n cursor: not-allowed;\n transform: none;\n}\n.button-spinner[data-v-9668f28a] {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n color: #fff;\n font-weight: 500;\n}\n.spinner-svg[data-v-9668f28a] {\n animation: spin-9668f28a 1s linear infinite;\n width: 18px;\n height: 18px;\n stroke: #fff;\n}\n.spinner-circle[data-v-9668f28a] {\n stroke-dasharray: 90, 150;\n stroke-linecap: round;\n}\n@keyframes spin-9668f28a {\n0% {\n transform: rotate(0deg);\n}\n100% {\n transform: rotate(360deg);\n}\n}\n.atm-footer-links[data-v-9668f28a] {\n margin-top: 16px;\n font-size: 13px;\n}\n.atm-login-text[data-v-9668f28a] {\n color: var(--atm-text-secondary);\n margin-bottom: 6px;\n}\n.atm-login-link[data-v-9668f28a] {\n color: var(--v3dd12aff);\n text-decoration: none;\n cursor: pointer;\n transition: opacity 0.2s;\n}\n.atm-login-link[data-v-9668f28a]:hover:not(.disabled-link) {\n text-decoration: underline;\n}\n.atm-login-link.disabled-link[data-v-9668f28a] {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n}\n.atm-powered-by[data-v-9668f28a] {\n color: var(--atm-text-tertiary);\n font-size: 11px;\n margin: 0;\n}\n@media (max-width: 768px) {\n.atm-project-name[data-v-9668f28a] {\n font-size: 17px;\n}\n.atm-welcome-text[data-v-9668f28a] {\n font-size: 13px;\n margin-bottom: 14px;\n}\n.atm-form-group[data-v-9668f28a] {\n margin-bottom: 10px;\n}\n.atm-input-label[data-v-9668f28a] {\n font-size: 12px;\n margin-bottom: 4px;\n}\n.atm-input-field[data-v-9668f28a] {\n padding: 8px 10px;\n font-size: 13px;\n}\n.atm-signup-button[data-v-9668f28a] {\n font-size: 13px;\n padding: 9px;\n min-height: 40px;\n}\n.atm-footer-links[data-v-9668f28a] {\n margin-top: 14px;\n font-size: 12px;\n}\n}\n@media (max-width: 480px) {\n.atm-logo-placeholder[data-v-9668f28a] {\n width: 40px;\n height: 40px;\n font-size: 10px;\n}\n.atm-logo-image[data-v-9668f28a] {\n max-width: 40px;\n max-height: 40px;\n}\n.atm-project-name[data-v-9668f28a] {\n font-size: 16px;\n margin-bottom: 4px;\n}\n.atm-welcome-text[data-v-9668f28a] {\n font-size: 12px;\n margin-bottom: 12px;\n}\n.atm-form-group[data-v-9668f28a] {\n margin-bottom: 10px;\n}\n.atm-input-label[data-v-9668f28a] {\n font-size: 12px;\n margin-bottom: 3px;\n}\n.atm-input-field[data-v-9668f28a] {\n padding: 7px 9px;\n font-size: 13px;\n}\n.atm-signup-button[data-v-9668f28a] {\n font-size: 13px;\n padding: 9px;\n min-height: 38px;\n}\n.atm-footer-links[data-v-9668f28a] {\n margin-top: 12px;\n font-size: 12px;\n}\n.atm-powered-by[data-v-9668f28a] {\n font-size: 10px;\n}\n.spinner-svg[data-v-9668f28a] {\n width: 16px;\n height: 16px;\n}\n.button-spinner[data-v-9668f28a] {\n gap: 6px;\n}\n}\n@media (max-width: 360px) {\n.atm-logo-placeholder[data-v-9668f28a] {\n width: 36px;\n height: 36px;\n font-size: 9px;\n}\n.atm-logo-image[data-v-9668f28a] {\n max-width: 36px;\n max-height: 36px;\n}\n.atm-project-name[data-v-9668f28a] {\n font-size: 15px;\n margin-bottom: 3px;\n}\n.atm-welcome-text[data-v-9668f28a] {\n font-size: 11px;\n margin-bottom: 10px;\n}\n.atm-form-group[data-v-9668f28a] {\n margin-bottom: 8px;\n}\n.atm-input-label[data-v-9668f28a] {\n font-size: 11px;\n margin-bottom: 3px;\n}\n.atm-input-field[data-v-9668f28a] {\n padding: 6px 8px;\n font-size: 12px;\n}\n.atm-signup-button[data-v-9668f28a] {\n font-size: 12px;\n padding: 8px;\n min-height: 36px;\n}\n.atm-footer-links[data-v-9668f28a] {\n margin-top: 10px;\n font-size: 11px;\n}\n.spinner-svg[data-v-9668f28a] {\n width: 14px;\n height: 14px;\n}\n}\n\n.atm-signin-btn[data-v-e490ca63] {\n padding: 12px;\n margin-top: 8px;\n background: var(--v111e7704);\n color: #FFF;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n min-height: 44px;\n}\n.atm-signin-btn[data-v-e490ca63]:hover {\n opacity: 0.9;\n}\n@media (max-width: 768px) {\n.atm-signin-btn[data-v-e490ca63] {\n padding: 11px;\n font-size: 13px;\n min-height: 42px;\n}\n}\n@media (max-width: 480px) {\n.atm-signin-btn[data-v-e490ca63] {\n padding: 10px;\n font-size: 13px;\n min-height: 40px;\n}\n}\n@media (max-width: 360px) {\n.atm-signin-btn[data-v-e490ca63] {\n padding: 9px;\n font-size: 12px;\n min-height: 38px;\n}\n}\n\n.atm-registration-disabled[data-v-05bfbd78] {\n padding: 24px;\n text-align: center;\n}\n.atm-disabled-message[data-v-05bfbd78] {\n margin-bottom: 16px;\n color: var(--atm-text-primary);\n}\n.atm-disabled-login-btn[data-v-05bfbd78] {\n padding: 12px 24px;\n background: #007bff;\n color: #ffffff;\n border: none;\n border-radius: 6px;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n transition: opacity 0.2s;\n}\n.atm-disabled-login-btn[data-v-05bfbd78]:hover {\n opacity: 0.9;\n}\n\n.atm-signup-btn[data-v-7346e92d] {\n padding: 12px;\n margin-top: 8px;\n background: var(--v334adbc1);\n color: #FFF;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n min-height: 44px;\n}\n.atm-signup-btn[data-v-7346e92d]:hover {\n opacity: 0.9;\n}\n@media (max-width: 768px) {\n.atm-signup-btn[data-v-7346e92d] {\n padding: 11px;\n font-size: 13px;\n min-height: 42px;\n}\n}\n@media (max-width: 480px) {\n.atm-signup-btn[data-v-7346e92d] {\n padding: 10px;\n font-size: 13px;\n min-height: 40px;\n}\n}\n@media (max-width: 360px) {\n.atm-signup-btn[data-v-7346e92d] {\n padding: 9px;\n font-size: 12px;\n min-height: 38px;\n}\n}\n\n.atm-profile-container {\n position: relative;\n display: inline-block;\n font-family: 'Segoe UI', system-ui, sans-serif;\n}\n.atm-profile-button {\n display: flex;\n align-items: center;\n gap: 8px;\n background: none;\n border: none;\n cursor: pointer;\n padding: 8px 12px;\n border-radius: 6px;\n transition: background 0.2s;\n}\n.atm-profile-button:hover {\n background: var(--atm-bg-secondary);\n}\n.atm-profile-avatar {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n background-color: var(--feed21a4);\n color: #ffffff;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n font-weight: 500;\n}\n.atm-profile-avatar.large {\n width: 48px;\n height: 48px;\n font-size: 16px;\n}\n.atm-profile-avatar-img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 50%;\n}\n.atm-profile-name {\n font-size: 14px;\n color: var(--atm-text-primary);\n font-weight: 500;\n}\n.atm-profile-arrow {\n width: 16px;\n height: 16px;\n color: var(--atm-text-primary);\n transition: transform 0.2s;\n}\n.atm-rotate {\n transform: rotate(180deg);\n}\n.atm-profile-menu {\n position: absolute;\n top: 100%;\n width: 280px;\n background: var(--atm-bg-primary);\n border: 1px solid var(--atm-border-color);\n border-radius: 8px;\n box-shadow: var(--atm-shadow-md);\n z-index: 1000;\n overflow: hidden;\n margin-top: 4px;\n}\n.atm-position-left {\n left: 0;\n right: auto;\n}\n.atm-position-right {\n right: 0;\n left: auto;\n}\n.atm-profile-info {\n display: flex;\n gap: 12px;\n padding: 16px;\n border-bottom: 1px solid var(--atm-border-color);\n}\n.atm-profile-details {\n flex: 1;\n min-width: 0;\n}\n.atm-profile-fullname {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--atm-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.atm-profile-email {\n margin: 4px 0 0;\n font-size: 13px;\n color: var(--atm-text-secondary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.atm-profile-options {\n padding: 8px 0;\n}\n.atm-profile-option {\n display: flex;\n align-items: center;\n width: 100%;\n padding: 10px 16px;\n background: none;\n border: none;\n text-align: left;\n cursor: pointer;\n font-size: 14px;\n color: var(--atm-text-primary);\n gap: 10px;\n transition: background 0.2s;\n}\n.atm-profile-option:hover {\n background: var(--atm-bg-secondary);\n}\n.atm-profile-icon {\n width: 18px;\n height: 18px;\n color: var(--atm-text-secondary);\n}\n.atm-fade-enter-active,\n.atm-fade-leave-active {\n transition: opacity 0.2s, transform 0.2s;\n}\n.atm-fade-enter-from,\n.atm-fade-leave-to {\n opacity: 0;\n transform: translateY(-10px);\n}\n.atm-profile-modal {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 9999;\n display: flex;\n justify-content: center;\n align-items: center;\n overflow-y: auto;\n padding: 1.5rem;\n}\n.atm-profile-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.5);\n pointer-events: none;\n}\n.atm-profile-content {\n position: relative;\n width: 100%;\n max-width: 450px;\n background: var(--atm-bg-primary);\n border-radius: 12px;\n box-shadow: var(--atm-shadow-md);\n z-index: 1;\n max-height: calc(100vh - 3rem);\n display: flex;\n flex-direction: column;\n margin: auto;\n}\n.atm-profile-header {\n padding: 16px;\n border-bottom: 1px solid var(--atm-border-color);\n display: flex;\n align-items: center;\n}\n.atm-profile-close {\n background: none;\n border: none;\n font-size: 24px;\n cursor: pointer;\n padding: 8px;\n margin-right: 12px;\n color: var(--atm-text-secondary);\n transition: color 0.2s;\n}\n.atm-profile-close:hover {\n color: var(--atm-text-primary);\n}\n.atm-profile-title {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--atm-text-primary);\n}\n.atm-profile-tabs {\n display: flex;\n border-bottom: 1px solid var(--atm-border-color);\n background: var(--atm-bg-secondary);\n}\n.atm-tab {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n padding: 12px 16px;\n background: none;\n border: none;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n color: var(--atm-text-secondary);\n transition: all 0.2s;\n}\n.atm-tab:hover {\n background: var(--atm-bg-tertiary);\n color: var(--atm-text-primary);\n}\n.atm-tab-active {\n color: var(--feed21a4) !important;\n background: var(--atm-bg-primary);\n border-bottom: 2px solid var(--feed21a4);\n}\n.atm-tab-icon {\n width: 16px;\n height: 16px;\n}\n.atm-profile-body {\n padding: 24px;\n text-align: center;\n overflow-y: auto;\n flex: 1;\n min-height: 0;\n}\n.atm-profile-avatar-large {\n width: 80px;\n height: 80px;\n border-radius: 50%;\n background-color: var(--feed21a4);\n color: #ffffff;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 24px;\n font-weight: 600;\n margin: 0 auto 20px;\n}\n.atm-profile-info-grid {\n width: 100%;\n text-align: left;\n margin-top: 20px;\n}\n.atm-profile-info-row {\n display: flex;\n flex-direction: column;\n margin-bottom: 16px;\n}\n.atm-profile-info-label {\n font-size: 13px;\n color: var(--atm-text-secondary);\n margin-bottom: 4px;\n}\n.atm-profile-info-value {\n font-size: 16px;\n color: var(--atm-text-primary);\n font-weight: 500;\n}\n.atm-profile-edit-form {\n width: 100%;\n text-align: left;\n margin-top: 20px;\n}\n.atm-form-group {\n margin-bottom: 16px;\n}\n.atm-input-label {\n display: block;\n margin-bottom: 6px;\n font-size: 13px;\n color: var(--atm-text-primary);\n font-weight: 500;\n}\n.atm-input-field {\n width: 100%;\n padding: 10px 12px;\n background: var(--atm-input-bg);\n color: var(--atm-text-primary);\n border: 1px solid var(--atm-input-border);\n border-radius: 6px;\n font-size: 14px;\n box-sizing: border-box;\n transition: border-color 0.2s;\n}\n.atm-input-field:focus {\n outline: none;\n border-color: var(--feed21a4);\n box-shadow: 0 0 0 2px rgba(74, 144, 226, 0.1);\n}\n.atm-form-actions {\n display: flex;\n gap: 12px;\n margin-top: 24px;\n}\n.atm-save-btn,\n.atm-edit-profile-btn,\n.atm-reset-password-btn,\n.atm-add-email-btn {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px;\n background: var(--feed21a4);\n color: #FFF;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: opacity 0.2s;\n justify-content: center;\n}\n.atm-save-btn:hover,\n.atm-edit-profile-btn:hover,\n.atm-reset-password-btn:hover,\n.atm-add-email-btn:hover {\n opacity: 0.9;\n}\n.atm-cancel-btn {\n display: flex;\n align-items: center;\n gap: 8px;\n flex: 1;\n padding: 12px;\n background: var(--atm-bg-secondary);\n color: var(--atm-text-secondary);\n border: 1px solid var(--atm-border-color);\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s;\n justify-content: center;\n}\n.atm-cancel-btn:hover {\n background: var(--atm-bg-tertiary);\n color: var(--atm-text-primary);\n}\n.atm-btn-icon {\n width: 16px;\n height: 16px;\n}\n.atm-email-add-section {\n margin-bottom: 24px;\n text-align: left;\n}\n.atm-email-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n text-align: left;\n}\n.atm-email-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px;\n background: var(--atm-bg-secondary);\n border-radius: 6px;\n border: 1px solid var(--atm-border-color);\n}\n.atm-email-info {\n display: flex;\n flex-direction: column;\n gap: 8px;\n flex: 1;\n}\n.atm-email-address {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--atm-text-primary);\n}\n.atm-email-icon {\n width: 16px;\n height: 16px;\n color: var(--v5c6febbc);\n}\n.atm-email-badges {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n.atm-badge {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n font-size: 11px;\n font-weight: 500;\n border-radius: 12px;\n text-transform: uppercase;\n}\n.atm-badge-icon {\n width: 12px;\n height: 12px;\n}\n.atm-badge-primary {\n background: #e3f2fd;\n color: #1976d2;\n}\n.atm-badge-verified {\n background: #e8f5e8;\n color: #2e7d32;\n}\n.atm-badge-unverified {\n background: #fff3e0;\n color: #f57c00;\n}\n.atm-email-actions {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n.atm-verify-btn {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 6px 12px;\n background: var(--feed21a4);\n color: white;\n border: none;\n border-radius: 4px;\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n transition: opacity 0.2s;\n}\n.atm-verify-btn:hover {\n opacity: 0.9;\n}\n.atm-delete-btn {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 6px 12px;\n background: #dc3545;\n color: white;\n border: none;\n border-radius: 4px;\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n transition: opacity 0.2s;\n}\n.atm-delete-btn:hover {\n opacity: 0.9;\n}\n.atm-password-section {\n text-align: left;\n}\n.atm-sessions-section {\n text-align: left;\n}\n.atm-sessions-info {\n margin-bottom: 20px;\n}\n.atm-sessions-description {\n margin: 0;\n font-size: 14px;\n color: var(--atm-text-secondary);\n line-height: 1.5;\n}\n.atm-sessions-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n.atm-session-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px;\n background: var(--atm-bg-secondary);\n border-radius: 8px;\n border: 1px solid var(--atm-border-color);\n gap: 16px;\n}\n.atm-session-header {\n display: flex;\n gap: 12px;\n align-items: flex-start;\n}\n.atm-session-icon {\n width: 24px;\n height: 24px;\n color: var(--v5c6febbc);\n flex-shrink: 0;\n}\n.atm-session-details {\n flex: 1;\n min-width: 0;\n}\n.atm-session-title {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 4px;\n font-size: 15px;\n font-weight: 600;\n color: var(--atm-text-primary);\n}\n.atm-session-device-info {\n font-size: 13px;\n color: var(--atm-text-secondary);\n margin-bottom: 8px;\n}\n.atm-badge-current {\n background: #d1f4e0;\n color: #0f9d58;\n}\n.atm-session-timestamps {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n.atm-session-timestamp {\n display: flex;\n gap: 6px;\n font-size: 13px;\n color: var(--atm-text-secondary);\n}\n.atm-timestamp-label {\n font-weight: 500;\n color: var(--atm-text-primary);\n}\n.atm-session-actions {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.atm-close-session-btn {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 14px;\n background: #dc3545;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n transition: opacity 0.2s;\n white-space: nowrap;\n}\n.atm-close-session-btn:hover {\n opacity: 0.9;\n}\n@media (max-width: 768px) {\n.atm-profile-button {\n padding: 6px 10px;\n gap: 6px;\n}\n.atm-profile-name {\n font-size: 13px;\n}\n.atm-profile-menu {\n width: 260px;\n}\n.atm-profile-modal {\n padding: 1rem;\n}\n.atm-profile-content {\n max-width: 90%;\n max-height: calc(100vh - 2rem);\n}\n.atm-profile-header {\n padding: 14px;\n}\n.atm-profile-title {\n font-size: 16px;\n}\n.atm-profile-body {\n padding: 20px;\n}\n.atm-tab {\n padding: 10px 12px;\n font-size: 13px;\n gap: 4px;\n}\n.atm-tab-icon {\n width: 14px;\n height: 14px;\n}\n.atm-profile-avatar-large {\n width: 70px;\n height: 70px;\n font-size: 22px;\n}\n.atm-email-item {\n flex-direction: column;\n gap: 12px;\n align-items: flex-start;\n}\n.atm-email-actions {\n flex-direction: row;\n width: 100%;\n}\n.atm-verify-btn,\n .atm-delete-btn {\n flex: 1;\n justify-content: center;\n}\n.atm-session-item {\n flex-direction: column;\n align-items: flex-start;\n}\n.atm-session-actions {\n width: 100%;\n}\n.atm-close-session-btn {\n width: 100%;\n justify-content: center;\n}\n}\n@media (max-width: 480px) {\n.atm-profile-button {\n padding: 4px 8px;\n gap: 4px;\n}\n.atm-profile-avatar {\n width: 28px;\n height: 28px;\n font-size: 11px;\n}\n.atm-profile-avatar.large {\n width: 40px;\n height: 40px;\n font-size: 14px;\n}\n.atm-profile-name {\n font-size: 12px;\n}\n.atm-profile-arrow {\n width: 14px;\n height: 14px;\n}\n.atm-profile-menu {\n width: calc(100vw - 20px);\n max-width: 240px;\n}\n.atm-profile-info {\n padding: 12px;\n gap: 10px;\n}\n.atm-profile-fullname {\n font-size: 13px;\n}\n.atm-profile-email {\n font-size: 12px;\n}\n.atm-profile-option {\n padding: 8px 12px;\n font-size: 13px;\n gap: 8px;\n}\n.atm-profile-icon {\n width: 16px;\n height: 16px;\n}\n.atm-profile-modal {\n padding: 0.5rem;\n}\n.atm-profile-content {\n max-width: 95%;\n max-height: calc(100vh - 1rem);\n}\n.atm-profile-header {\n padding: 12px;\n}\n.atm-profile-close {\n font-size: 20px;\n padding: 4px;\n margin-right: 8px;\n}\n.atm-profile-title {\n font-size: 15px;\n}\n.atm-profile-body {\n padding: 16px;\n}\n.atm-tab {\n padding: 8px 8px;\n font-size: 12px;\n gap: 3px;\n}\n.atm-tab-icon {\n width: 13px;\n height: 13px;\n}\n.atm-profile-avatar-large {\n width: 60px;\n height: 60px;\n font-size: 20px;\n margin-bottom: 16px;\n}\n.atm-profile-info-label {\n font-size: 12px;\n}\n.atm-profile-info-value {\n font-size: 14px;\n}\n.atm-input-label {\n font-size: 12px;\n}\n.atm-input-field {\n padding: 8px 10px;\n font-size: 13px;\n}\n.atm-form-actions {\n flex-direction: column;\n gap: 8px;\n}\n.atm-save-btn,\n .atm-cancel-btn,\n .atm-edit-profile-btn,\n .atm-reset-password-btn {\n width: 100%;\n padding: 10px;\n font-size: 13px;\n}\n.atm-email-item {\n padding: 10px;\n}\n.atm-email-address {\n font-size: 13px;\n}\n.atm-badge {\n font-size: 10px;\n padding: 2px 6px;\n}\n}\n@media (max-width: 360px) {\n.atm-profile-button {\n padding: 4px 6px;\n}\n.atm-profile-avatar {\n width: 26px;\n height: 26px;\n font-size: 10px;\n}\n.atm-profile-name {\n display: none;\n}\n.atm-profile-menu {\n width: calc(100vw - 16px);\n max-width: 220px;\n}\n.atm-profile-modal {\n padding: 0.25rem;\n}\n.atm-profile-content {\n max-width: 98%;\n max-height: calc(100vh - 0.5rem);\n}\n.atm-profile-body {\n padding: 12px;\n}\n.atm-tab {\n padding: 8px 6px;\n font-size: 11px;\n flex-direction: column;\n gap: 2px;\n}\n.atm-profile-avatar-large {\n width: 50px;\n height: 50px;\n font-size: 18px;\n}\n.atm-email-item {\n padding: 8px;\n}\n}\n\n.atm-auth-buttons[data-v-0c63ecb8] {\n display: flex;\n flex-wrap: wrap;\n gap: 16px;\n}\n@media (max-width: 768px) {\n.atm-auth-buttons[data-v-0c63ecb8] {\n gap: 14px;\n}\n}\n@media (max-width: 480px) {\n.atm-auth-buttons[data-v-0c63ecb8] {\n gap: 12px;\n flex-direction: column;\n}\n}\n@media (max-width: 360px) {\n.atm-auth-buttons[data-v-0c63ecb8] {\n gap: 10px;\n}\n}\n\n.atm-logout-btn[data-v-7157f989] {\n padding: 12px;\n margin-top: 8px;\n background: var(--v2ec0f896);\n color: #FFF;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: opacity 0.2s;\n min-height: 44px;\n}\n.atm-logout-btn[data-v-7157f989]:hover {\n opacity: 0.9;\n}\n@media (max-width: 768px) {\n.atm-logout-btn[data-v-7157f989] {\n padding: 11px;\n font-size: 13px;\n min-height: 42px;\n}\n}\n@media (max-width: 480px) {\n.atm-logout-btn[data-v-7157f989] {\n padding: 10px;\n font-size: 13px;\n min-height: 40px;\n}\n}\n@media (max-width: 360px) {\n.atm-logout-btn[data-v-7157f989] {\n padding: 9px;\n font-size: 12px;\n min-height: 38px;\n}\n}\n";
5
+ style.textContent = ":root {\n --atm-bg-primary: #ffffff;\n --atm-bg-secondary: #f8f9fa;\n --atm-bg-tertiary: #f0f0f0;\n\n --atm-text-primary: #333333;\n --atm-text-secondary: #666666;\n --atm-text-tertiary: #999999;\n --atm-text-muted: #888888;\n\n --atm-border-color: #dddddd;\n --atm-border-hover: #cccccc;\n\n --atm-input-bg: #ffffff;\n --atm-input-disabled: #f5f5f5;\n --atm-input-border: #dddddd;\n\n --atm-error-color: #dc3545;\n --atm-success-color: #28a745;\n\n --atm-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.1);\n --atm-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);\n}\n\n.atm-theme-dark,\n:root.atm-theme-dark {\n --atm-bg-primary: #1a1a1a;\n --atm-bg-secondary: #2d2d2d;\n --atm-bg-tertiary: #404040;\n\n --atm-text-primary: #e0e0e0;\n --atm-text-secondary: #b0b0b0;\n --atm-text-tertiary: #808080;\n --atm-text-muted: #999999;\n\n --atm-border-color: #404040;\n --atm-border-hover: #505050;\n\n --atm-input-bg: #2d2d2d;\n --atm-input-disabled: #1f1f1f;\n --atm-input-border: #404040;\n\n --atm-error-color: #ff6b6b;\n --atm-success-color: #51cf66;\n\n --atm-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.3);\n --atm-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.5);\n}\n\n.atm-overlay[data-v-5a315eca] {\n position: fixed;\n inset: 0;\n z-index: 99999;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: rgba(0, 0, 0, 0.5);\n backdrop-filter: blur(4px);\n overflow-y: auto;\n padding: 1.5rem 0;\n}\n.atm-container[data-v-5a315eca] {\n padding: 0 1.5rem;\n width: 100%;\n margin: auto;\n}\n.atm-fade-layer[data-v-5a315eca] {\n position: fixed;\n inset: 0;\n transition: opacity 0.2s ease;\n pointer-events: none;\n}\n.atm-fade-bg[data-v-5a315eca] {\n position: absolute;\n inset: 0;\n opacity: 0.75;\n}\n.atm-modal[data-v-5a315eca] {\n position: relative;\n display: inline-block;\n vertical-align: bottom;\n background-color: var(--atm-bg-primary);\n border-radius: 0.5rem;\n text-align: left;\n box-shadow: var(--atm-shadow-md);\n transform: translate(0);\n transition: all 0.2s ease-in-out;\n max-width: 32rem;\n width: 100%;\n max-height: calc(100vh - 3rem);\n display: flex;\n flex-direction: column;\n}\n.atm-close-button[data-v-5a315eca] {\n position: absolute;\n top: 1rem;\n right: 1rem;\n color: var(--atm-text-tertiary);\n background: transparent;\n border: none;\n cursor: pointer;\n padding: 0.25rem;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10;\n transition: color 0.2s;\n}\n.atm-close-button[data-v-5a315eca]:hover {\n color: var(--atm-text-secondary);\n}\n.atm-icon[data-v-5a315eca] {\n width: 1.5rem;\n height: 1.5rem;\n}\n.atm-modal-content[data-v-5a315eca] {\n padding: 1.25rem;\n overflow-y: auto;\n flex: 1;\n min-height: 0;\n}\n.atm-modal-title[data-v-5a315eca] {\n font-size: 1.125rem;\n font-weight: 500;\n color: var(--atm-text-primary);\n margin: 0;\n margin-bottom: 0.75rem;\n}\n@media (max-width: 768px) {\n.atm-overlay[data-v-5a315eca] {\n padding: 1rem 0;\n}\n.atm-container[data-v-5a315eca] {\n padding: 0 1rem;\n}\n.atm-modal[data-v-5a315eca] {\n border-radius: 0.375rem;\n max-height: calc(100vh - 2rem);\n}\n.atm-modal-content[data-v-5a315eca] {\n padding: 1rem;\n}\n.atm-modal-title[data-v-5a315eca] {\n font-size: 1rem;\n margin-bottom: 0.75rem;\n}\n.atm-close-button[data-v-5a315eca] {\n top: 0.75rem;\n right: 0.75rem;\n}\n.atm-icon[data-v-5a315eca] {\n width: 1.25rem;\n height: 1.25rem;\n}\n}\n@media (max-width: 480px) {\n.atm-overlay[data-v-5a315eca] {\n padding: 0.5rem 0;\n}\n.atm-container[data-v-5a315eca] {\n padding: 0 0.5rem;\n}\n.atm-modal[data-v-5a315eca] {\n border-radius: 0.25rem;\n max-width: 100%;\n max-height: calc(100vh - 1rem);\n}\n.atm-modal-content[data-v-5a315eca] {\n padding: 0.875rem;\n}\n.atm-modal-title[data-v-5a315eca] {\n font-size: 0.9375rem;\n margin-bottom: 0.625rem;\n}\n.atm-close-button[data-v-5a315eca] {\n top: 0.5rem;\n right: 0.5rem;\n}\n}\n@media (max-width: 360px) {\n.atm-overlay[data-v-5a315eca] {\n padding: 0.25rem 0;\n}\n.atm-container[data-v-5a315eca] {\n padding: 0 0.25rem;\n}\n.atm-modal[data-v-5a315eca] {\n max-height: calc(100vh - 0.5rem);\n}\n.atm-modal-content[data-v-5a315eca] {\n padding: 0.75rem;\n}\n.atm-modal-title[data-v-5a315eca] {\n font-size: 0.875rem;\n margin-bottom: 0.5rem;\n}\n}\n\n.atm-notification-container[data-v-f5e47084] {\n font-family: Arial, Helvetica, sans-serif;\n position: fixed;\n top: 20px;\n right: 20px;\n z-index: 99999;\n pointer-events: none;\n}\n.atm-notification[data-v-f5e47084] {\n padding: 12px 16px;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n min-width: 250px;\n max-width: 350px;\n pointer-events: auto;\n}\n.atm-notification--error[data-v-f5e47084] {\n background: #ff3333;\n color: #FFF;\n}\n.atm-notification--success[data-v-f5e47084] {\n background: #00a622;\n color: #FFF;\n}\n.atm-notification--warning[data-v-f5e47084] {\n background: #ffa500;\n color: #FFF;\n}\n.atm-notification-enter-active[data-v-f5e47084] {\n transition: all 0.3s ease-out;\n}\n.atm-notification-leave-active[data-v-f5e47084] {\n transition: all 0.3s ease-in;\n}\n.atm-notification-enter-from[data-v-f5e47084] {\n transform: translateX(100%);\n opacity: 0;\n}\n.atm-notification-leave-to[data-v-f5e47084] {\n transform: translateX(100%);\n opacity: 0;\n}\n@media (max-width: 768px) {\n.atm-notification-container[data-v-f5e47084] {\n top: 16px;\n right: 16px;\n left: 16px;\n}\n.atm-notification[data-v-f5e47084] {\n min-width: auto;\n max-width: 100%;\n padding: 11px 14px;\n font-size: 13px;\n}\n}\n@media (max-width: 480px) {\n.atm-notification-container[data-v-f5e47084] {\n top: 12px;\n right: 12px;\n left: 12px;\n}\n.atm-notification[data-v-f5e47084] {\n padding: 10px 12px;\n font-size: 12px;\n border-radius: 5px;\n}\n}\n@media (max-width: 360px) {\n.atm-notification-container[data-v-f5e47084] {\n top: 10px;\n right: 10px;\n left: 10px;\n}\n.atm-notification[data-v-f5e47084] {\n padding: 9px 11px;\n font-size: 11px;\n border-radius: 4px;\n}\n}\n\n.atm-login-container[data-v-b88e6b76] {\n background: var(--atm-bg-primary);\n border-radius: 8px;\n font-family: 'Segoe UI', system-ui, sans-serif;\n text-align: center;\n}\n.atm-logo-container[data-v-b88e6b76] {\n margin-bottom: 12px;\n}\n.atm-logo-placeholder[data-v-b88e6b76] {\n width: 44px;\n height: 44px;\n margin: 0 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--atm-bg-tertiary);\n border-radius: 50%;\n color: var(--atm-text-muted);\n font-size: 11px;\n}\n.atm-logo-image[data-v-b88e6b76] {\n max-width: 44px;\n max-height: 44px;\n margin: 0 auto;\n display: block;\n border-radius: 4px;\n object-fit: contain;\n}\n.atm-project-name[data-v-b88e6b76] {\n margin: 0 0 4px 0;\n font-size: 18px;\n color: var(--v70f1a692);\n font-weight: 600;\n}\n.atm-welcome-text[data-v-b88e6b76] {\n margin: 0 0 16px 0;\n font-size: 14px;\n color: var(--atm-text-secondary);\n}\n.atm-form-group[data-v-b88e6b76] {\n margin-bottom: 12px;\n text-align: left;\n}\n.atm-input-label[data-v-b88e6b76] {\n display: block;\n margin-bottom: 4px;\n font-size: 13px;\n color: var(--atm-text-primary);\n font-weight: 500;\n}\n.atm-input-field[data-v-b88e6b76] {\n width: 100%;\n padding: 8px 10px;\n background: var(--atm-input-bg);\n color: var(--atm-text-primary);\n border: 1px solid var(--atm-input-border);\n border-radius: 6px;\n font-size: 14px;\n box-sizing: border-box;\n transition: border-color 0.2s;\n}\n.atm-input-field[data-v-b88e6b76]:focus {\n outline: none;\n border-color: var(--v70f1a692);\n box-shadow: 0 0 0 2px rgba(74, 144, 226, 0.1);\n}\n.atm-input-field[data-v-b88e6b76]:disabled {\n background-color: var(--atm-input-disabled);\n cursor: not-allowed;\n}\n.atm-field-error[data-v-b88e6b76] {\n color: var(--atm-error-color);\n font-size: 12px;\n margin-top: 4px;\n text-align: left;\n}\n.atm-alternative-options[data-v-b88e6b76] {\n margin-top: 8px;\n text-align: center;\n}\n.atm-forgot-password-link[data-v-b88e6b76] {\n font-size: 12px;\n background: none;\n border: none;\n color: var(--v4a1729f6);\n cursor: pointer;\n text-decoration: none;\n padding: 0;\n font-family: inherit;\n}\n.atm-forgot-password-link[data-v-b88e6b76]:hover:not(:disabled) {\n text-decoration: underline;\n}\n.atm-forgot-password-link[data-v-b88e6b76]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n.atm-strategy-choice[data-v-b88e6b76] {\n text-align: center;\n margin-bottom: 12px;\n}\n.atm-strategy-title[data-v-b88e6b76] {\n font-size: 14px;\n color: var(--atm-text-secondary);\n margin-bottom: 12px;\n}\n.atm-strategy-buttons[data-v-b88e6b76] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.atm-strategy-button[data-v-b88e6b76] {\n width: 100%;\n padding: 10px;\n background: var(--atm-bg-secondary);\n color: var(--atm-text-primary);\n border: 1px solid var(--atm-border-color);\n border-radius: 6px;\n font-size: 14px;\n cursor: pointer;\n transition: all 0.2s;\n}\n.atm-strategy-button[data-v-b88e6b76]:hover:not(:disabled) {\n background: var(--atm-bg-tertiary);\n border-color: var(--v70f1a692);\n}\n.atm-strategy-button[data-v-b88e6b76]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n.atm-email-link-text[data-v-b88e6b76] {\n font-size: 14px;\n color: var(--atm-text-secondary);\n margin: 0;\n text-align: center;\n}\n.atm-login-button[data-v-b88e6b76] {\n width: 100%;\n padding: 10px;\n margin-top: 4px;\n background: var(--v70f1a692);\n color: #ffffff;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s;\n min-height: 42px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.atm-login-button[data-v-b88e6b76]:hover:not(:disabled) {\n opacity: 0.9;\n transform: translateY(-1px);\n}\n.atm-login-button[data-v-b88e6b76]:disabled {\n opacity: 0.8;\n cursor: not-allowed;\n transform: none;\n}\n.button-spinner[data-v-b88e6b76] {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n color: #fff;\n font-weight: 500;\n}\n.spinner-svg[data-v-b88e6b76] {\n animation: spin-b88e6b76 1s linear infinite;\n width: 18px;\n height: 18px;\n stroke: #fff;\n}\n.spinner-circle[data-v-b88e6b76] {\n stroke-dasharray: 90, 150;\n stroke-linecap: round;\n}\n@keyframes spin-b88e6b76 {\n0% {\n transform: rotate(0deg);\n}\n100% {\n transform: rotate(360deg);\n}\n}\n.atm-footer-links[data-v-b88e6b76] {\n margin-top: 16px;\n font-size: 13px;\n}\n.atm-signup-text[data-v-b88e6b76] {\n color: var(--atm-text-secondary);\n margin-bottom: 6px;\n}\n.atm-signup-link[data-v-b88e6b76] {\n color: var(--v4a1729f6);\n text-decoration: none;\n cursor: pointer;\n}\n.atm-signup-link[data-v-b88e6b76]:hover {\n text-decoration: underline;\n}\n.atm-powered-by[data-v-b88e6b76] {\n color: var(--atm-text-tertiary);\n font-size: 11px;\n margin: 0;\n}\n@media (max-width: 768px) {\n.atm-project-name[data-v-b88e6b76] {\n font-size: 17px;\n}\n.atm-welcome-text[data-v-b88e6b76] {\n font-size: 13px;\n margin-bottom: 14px;\n}\n.atm-form-group[data-v-b88e6b76] {\n margin-bottom: 10px;\n}\n.atm-input-label[data-v-b88e6b76] {\n font-size: 12px;\n margin-bottom: 4px;\n}\n.atm-input-field[data-v-b88e6b76] {\n padding: 8px 10px;\n font-size: 13px;\n}\n.atm-login-button[data-v-b88e6b76] {\n font-size: 13px;\n padding: 9px;\n min-height: 40px;\n}\n.atm-strategy-button[data-v-b88e6b76] {\n padding: 9px;\n font-size: 13px;\n}\n.atm-footer-links[data-v-b88e6b76] {\n margin-top: 14px;\n font-size: 12px;\n}\n}\n@media (max-width: 480px) {\n.atm-logo-placeholder[data-v-b88e6b76] {\n width: 40px;\n height: 40px;\n font-size: 10px;\n}\n.atm-logo-image[data-v-b88e6b76] {\n max-width: 40px;\n max-height: 40px;\n}\n.atm-project-name[data-v-b88e6b76] {\n font-size: 16px;\n margin-bottom: 4px;\n}\n.atm-welcome-text[data-v-b88e6b76] {\n font-size: 12px;\n margin-bottom: 12px;\n}\n.atm-form-group[data-v-b88e6b76] {\n margin-bottom: 10px;\n}\n.atm-input-label[data-v-b88e6b76] {\n font-size: 12px;\n margin-bottom: 3px;\n}\n.atm-input-field[data-v-b88e6b76] {\n padding: 7px 9px;\n font-size: 13px;\n}\n.atm-login-button[data-v-b88e6b76] {\n font-size: 13px;\n padding: 9px;\n min-height: 38px;\n}\n.atm-forgot-password-link[data-v-b88e6b76] {\n font-size: 11px;\n}\n.atm-strategy-title[data-v-b88e6b76] {\n font-size: 13px;\n margin-bottom: 10px;\n}\n.atm-strategy-button[data-v-b88e6b76] {\n padding: 9px;\n font-size: 13px;\n}\n.atm-email-link-text[data-v-b88e6b76] {\n font-size: 13px;\n}\n.atm-footer-links[data-v-b88e6b76] {\n margin-top: 12px;\n font-size: 12px;\n}\n.atm-powered-by[data-v-b88e6b76] {\n font-size: 10px;\n}\n.spinner-svg[data-v-b88e6b76] {\n width: 16px;\n height: 16px;\n}\n.button-spinner[data-v-b88e6b76] {\n gap: 6px;\n}\n}\n@media (max-width: 360px) {\n.atm-logo-placeholder[data-v-b88e6b76] {\n width: 36px;\n height: 36px;\n font-size: 9px;\n}\n.atm-logo-image[data-v-b88e6b76] {\n max-width: 36px;\n max-height: 36px;\n}\n.atm-project-name[data-v-b88e6b76] {\n font-size: 15px;\n margin-bottom: 3px;\n}\n.atm-welcome-text[data-v-b88e6b76] {\n font-size: 11px;\n margin-bottom: 10px;\n}\n.atm-form-group[data-v-b88e6b76] {\n margin-bottom: 8px;\n}\n.atm-input-label[data-v-b88e6b76] {\n font-size: 11px;\n margin-bottom: 3px;\n}\n.atm-input-field[data-v-b88e6b76] {\n padding: 6px 8px;\n font-size: 12px;\n}\n.atm-login-button[data-v-b88e6b76] {\n font-size: 12px;\n padding: 8px;\n min-height: 36px;\n}\n.atm-strategy-button[data-v-b88e6b76] {\n padding: 8px;\n font-size: 12px;\n}\n.atm-footer-links[data-v-b88e6b76] {\n margin-top: 10px;\n font-size: 11px;\n}\n.spinner-svg[data-v-b88e6b76] {\n width: 14px;\n height: 14px;\n}\n}\n\n.atm-signup-container[data-v-83e9452d] {\n width: 100%;\n background: var(--atm-bg-primary);\n border-radius: 8px;\n font-family: 'Segoe UI', system-ui, sans-serif;\n text-align: center;\n}\n.atm-logo-container[data-v-83e9452d] {\n margin-bottom: 12px;\n}\n.atm-logo-placeholder[data-v-83e9452d] {\n width: 44px;\n height: 44px;\n margin: 0 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--atm-bg-tertiary);\n border-radius: 50%;\n color: var(--atm-text-muted);\n font-size: 11px;\n}\n.atm-logo-image[data-v-83e9452d] {\n max-width: 44px;\n max-height: 44px;\n margin: 0 auto;\n display: block;\n border-radius: 4px;\n object-fit: contain;\n}\n.atm-project-name[data-v-83e9452d] {\n margin: 0 0 4px 0;\n font-size: 18px;\n color: var(--v2dc4b763);\n font-weight: 600;\n}\n.atm-welcome-text[data-v-83e9452d] {\n margin: 0 0 16px 0;\n font-size: 14px;\n color: var(--atm-text-secondary);\n}\n.atm-form-group[data-v-83e9452d] {\n margin-bottom: 12px;\n text-align: left;\n}\n.atm-input-label[data-v-83e9452d] {\n display: block;\n margin-bottom: 4px;\n font-size: 13px;\n color: var(--atm-text-primary);\n font-weight: 500;\n}\n.atm-input-field[data-v-83e9452d] {\n width: 100%;\n padding: 8px 10px;\n background: var(--atm-input-bg);\n color: var(--atm-text-primary);\n border: 1px solid var(--atm-input-border);\n border-radius: 6px;\n font-size: 14px;\n box-sizing: border-box;\n transition: border-color 0.2s;\n}\n.atm-input-field[data-v-83e9452d]:focus {\n outline: none;\n border-color: var(--v2dc4b763);\n box-shadow: 0 0 0 2px rgba(74, 144, 226, 0.1);\n}\n.atm-input-field[data-v-83e9452d]:disabled {\n background-color: var(--atm-input-disabled);\n cursor: not-allowed;\n}\n.atm-field-error[data-v-83e9452d] {\n color: var(--atm-error-color);\n font-size: 12px;\n margin-top: 4px;\n text-align: left;\n}\n.atm-signup-button[data-v-83e9452d] {\n width: 100%;\n padding: 10px;\n margin-top: 4px;\n background: var(--v2dc4b763);\n color: #ffffff;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s;\n min-height: 42px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.atm-signup-button[data-v-83e9452d]:hover:not(:disabled) {\n opacity: 0.9;\n transform: translateY(-1px);\n}\n.atm-signup-button[data-v-83e9452d]:disabled {\n opacity: 0.8;\n cursor: not-allowed;\n transform: none;\n}\n.button-spinner[data-v-83e9452d] {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n color: #fff;\n font-weight: 500;\n}\n.spinner-svg[data-v-83e9452d] {\n animation: spin-83e9452d 1s linear infinite;\n width: 18px;\n height: 18px;\n stroke: #fff;\n}\n.spinner-circle[data-v-83e9452d] {\n stroke-dasharray: 90, 150;\n stroke-linecap: round;\n}\n@keyframes spin-83e9452d {\n0% {\n transform: rotate(0deg);\n}\n100% {\n transform: rotate(360deg);\n}\n}\n.atm-footer-links[data-v-83e9452d] {\n margin-top: 16px;\n font-size: 13px;\n}\n.atm-login-text[data-v-83e9452d] {\n color: var(--atm-text-secondary);\n margin-bottom: 6px;\n}\n.atm-login-link[data-v-83e9452d] {\n color: var(--b00c0a9e);\n text-decoration: none;\n cursor: pointer;\n transition: opacity 0.2s;\n}\n.atm-login-link[data-v-83e9452d]:hover:not(.disabled-link) {\n text-decoration: underline;\n}\n.atm-login-link.disabled-link[data-v-83e9452d] {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n}\n.atm-powered-by[data-v-83e9452d] {\n color: var(--atm-text-tertiary);\n font-size: 11px;\n margin: 0;\n}\n@media (max-width: 768px) {\n.atm-project-name[data-v-83e9452d] {\n font-size: 17px;\n}\n.atm-welcome-text[data-v-83e9452d] {\n font-size: 13px;\n margin-bottom: 14px;\n}\n.atm-form-group[data-v-83e9452d] {\n margin-bottom: 10px;\n}\n.atm-input-label[data-v-83e9452d] {\n font-size: 12px;\n margin-bottom: 4px;\n}\n.atm-input-field[data-v-83e9452d] {\n padding: 8px 10px;\n font-size: 13px;\n}\n.atm-signup-button[data-v-83e9452d] {\n font-size: 13px;\n padding: 9px;\n min-height: 40px;\n}\n.atm-footer-links[data-v-83e9452d] {\n margin-top: 14px;\n font-size: 12px;\n}\n}\n@media (max-width: 480px) {\n.atm-logo-placeholder[data-v-83e9452d] {\n width: 40px;\n height: 40px;\n font-size: 10px;\n}\n.atm-logo-image[data-v-83e9452d] {\n max-width: 40px;\n max-height: 40px;\n}\n.atm-project-name[data-v-83e9452d] {\n font-size: 16px;\n margin-bottom: 4px;\n}\n.atm-welcome-text[data-v-83e9452d] {\n font-size: 12px;\n margin-bottom: 12px;\n}\n.atm-form-group[data-v-83e9452d] {\n margin-bottom: 10px;\n}\n.atm-input-label[data-v-83e9452d] {\n font-size: 12px;\n margin-bottom: 3px;\n}\n.atm-input-field[data-v-83e9452d] {\n padding: 7px 9px;\n font-size: 13px;\n}\n.atm-signup-button[data-v-83e9452d] {\n font-size: 13px;\n padding: 9px;\n min-height: 38px;\n}\n.atm-footer-links[data-v-83e9452d] {\n margin-top: 12px;\n font-size: 12px;\n}\n.atm-powered-by[data-v-83e9452d] {\n font-size: 10px;\n}\n.spinner-svg[data-v-83e9452d] {\n width: 16px;\n height: 16px;\n}\n.button-spinner[data-v-83e9452d] {\n gap: 6px;\n}\n}\n@media (max-width: 360px) {\n.atm-logo-placeholder[data-v-83e9452d] {\n width: 36px;\n height: 36px;\n font-size: 9px;\n}\n.atm-logo-image[data-v-83e9452d] {\n max-width: 36px;\n max-height: 36px;\n}\n.atm-project-name[data-v-83e9452d] {\n font-size: 15px;\n margin-bottom: 3px;\n}\n.atm-welcome-text[data-v-83e9452d] {\n font-size: 11px;\n margin-bottom: 10px;\n}\n.atm-form-group[data-v-83e9452d] {\n margin-bottom: 8px;\n}\n.atm-input-label[data-v-83e9452d] {\n font-size: 11px;\n margin-bottom: 3px;\n}\n.atm-input-field[data-v-83e9452d] {\n padding: 6px 8px;\n font-size: 12px;\n}\n.atm-signup-button[data-v-83e9452d] {\n font-size: 12px;\n padding: 8px;\n min-height: 36px;\n}\n.atm-footer-links[data-v-83e9452d] {\n margin-top: 10px;\n font-size: 11px;\n}\n.spinner-svg[data-v-83e9452d] {\n width: 14px;\n height: 14px;\n}\n}\n\n.atm-signin-btn[data-v-43bf662d] {\n padding: 12px;\n margin-top: 8px;\n background: var(--v12e673a0);\n color: #FFF;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n min-height: 44px;\n}\n.atm-signin-btn[data-v-43bf662d]:hover {\n opacity: 0.9;\n}\n@media (max-width: 768px) {\n.atm-signin-btn[data-v-43bf662d] {\n padding: 11px;\n font-size: 13px;\n min-height: 42px;\n}\n}\n@media (max-width: 480px) {\n.atm-signin-btn[data-v-43bf662d] {\n padding: 10px;\n font-size: 13px;\n min-height: 40px;\n}\n}\n@media (max-width: 360px) {\n.atm-signin-btn[data-v-43bf662d] {\n padding: 9px;\n font-size: 12px;\n min-height: 38px;\n}\n}\n\n.atm-registration-disabled[data-v-b58cb91d] {\n padding: 24px;\n text-align: center;\n}\n.atm-disabled-message[data-v-b58cb91d] {\n margin-bottom: 16px;\n color: var(--atm-text-primary);\n}\n.atm-disabled-login-btn[data-v-b58cb91d] {\n padding: 12px 24px;\n background: #007bff;\n color: #ffffff;\n border: none;\n border-radius: 6px;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n transition: opacity 0.2s;\n}\n.atm-disabled-login-btn[data-v-b58cb91d]:hover {\n opacity: 0.9;\n}\n\n.atm-signup-btn[data-v-d9ac9b54] {\n padding: 12px;\n margin-top: 8px;\n background: var(--v1c336c46);\n color: #FFF;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n min-height: 44px;\n}\n.atm-signup-btn[data-v-d9ac9b54]:hover {\n opacity: 0.9;\n}\n@media (max-width: 768px) {\n.atm-signup-btn[data-v-d9ac9b54] {\n padding: 11px;\n font-size: 13px;\n min-height: 42px;\n}\n}\n@media (max-width: 480px) {\n.atm-signup-btn[data-v-d9ac9b54] {\n padding: 10px;\n font-size: 13px;\n min-height: 40px;\n}\n}\n@media (max-width: 360px) {\n.atm-signup-btn[data-v-d9ac9b54] {\n padding: 9px;\n font-size: 12px;\n min-height: 38px;\n}\n}\n\n.atm-profile-container {\n position: relative;\n display: inline-block;\n font-family: 'Segoe UI', system-ui, sans-serif;\n}\n.atm-profile-button {\n display: flex;\n align-items: center;\n gap: 8px;\n background: none;\n border: none;\n cursor: pointer;\n padding: 8px 12px;\n border-radius: 6px;\n transition: background 0.2s;\n}\n.atm-profile-button:hover {\n background: var(--atm-bg-secondary);\n}\n.atm-profile-avatar {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n background-color: var(--feed21a4);\n color: #ffffff;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n font-weight: 500;\n}\n.atm-profile-avatar.large {\n width: 48px;\n height: 48px;\n font-size: 16px;\n}\n.atm-profile-avatar-img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 50%;\n}\n.atm-profile-name {\n font-size: 14px;\n color: var(--atm-text-primary);\n font-weight: 500;\n}\n.atm-profile-arrow {\n width: 16px;\n height: 16px;\n color: var(--atm-text-primary);\n transition: transform 0.2s;\n}\n.atm-rotate {\n transform: rotate(180deg);\n}\n.atm-profile-menu {\n position: absolute;\n top: 100%;\n width: 280px;\n background: var(--atm-bg-primary);\n border: 1px solid var(--atm-border-color);\n border-radius: 8px;\n box-shadow: var(--atm-shadow-md);\n z-index: 1000;\n overflow: hidden;\n margin-top: 4px;\n}\n.atm-position-left {\n left: 0;\n right: auto;\n}\n.atm-position-right {\n right: 0;\n left: auto;\n}\n.atm-profile-info {\n display: flex;\n gap: 12px;\n padding: 16px;\n border-bottom: 1px solid var(--atm-border-color);\n}\n.atm-profile-details {\n flex: 1;\n min-width: 0;\n}\n.atm-profile-fullname {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--atm-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.atm-profile-email {\n margin: 4px 0 0;\n font-size: 13px;\n color: var(--atm-text-secondary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.atm-profile-options {\n padding: 8px 0;\n}\n.atm-profile-option {\n display: flex;\n align-items: center;\n width: 100%;\n padding: 10px 16px;\n background: none;\n border: none;\n text-align: left;\n cursor: pointer;\n font-size: 14px;\n color: var(--atm-text-primary);\n gap: 10px;\n transition: background 0.2s;\n}\n.atm-profile-option:hover {\n background: var(--atm-bg-secondary);\n}\n.atm-profile-icon {\n width: 18px;\n height: 18px;\n color: var(--atm-text-secondary);\n}\n.atm-fade-enter-active,\n.atm-fade-leave-active {\n transition: opacity 0.2s, transform 0.2s;\n}\n.atm-fade-enter-from,\n.atm-fade-leave-to {\n opacity: 0;\n transform: translateY(-10px);\n}\n.atm-profile-modal {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 9999;\n display: flex;\n justify-content: center;\n align-items: center;\n overflow-y: auto;\n padding: 1.5rem;\n}\n.atm-profile-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.5);\n pointer-events: none;\n}\n.atm-profile-content {\n position: relative;\n width: 100%;\n max-width: 450px;\n background: var(--atm-bg-primary);\n border-radius: 12px;\n box-shadow: var(--atm-shadow-md);\n z-index: 1;\n max-height: calc(100vh - 3rem);\n display: flex;\n flex-direction: column;\n margin: auto;\n}\n.atm-profile-header {\n padding: 16px;\n border-bottom: 1px solid var(--atm-border-color);\n display: flex;\n align-items: center;\n}\n.atm-profile-close {\n background: none;\n border: none;\n font-size: 24px;\n cursor: pointer;\n padding: 8px;\n margin-right: 12px;\n color: var(--atm-text-secondary);\n transition: color 0.2s;\n}\n.atm-profile-close:hover {\n color: var(--atm-text-primary);\n}\n.atm-profile-title {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--atm-text-primary);\n}\n.atm-profile-tabs {\n display: flex;\n border-bottom: 1px solid var(--atm-border-color);\n background: var(--atm-bg-secondary);\n}\n.atm-tab {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n padding: 12px 16px;\n background: none;\n border: none;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n color: var(--atm-text-secondary);\n transition: all 0.2s;\n}\n.atm-tab:hover {\n background: var(--atm-bg-tertiary);\n color: var(--atm-text-primary);\n}\n.atm-tab-active {\n color: var(--feed21a4) !important;\n background: var(--atm-bg-primary);\n border-bottom: 2px solid var(--feed21a4);\n}\n.atm-tab-icon {\n width: 16px;\n height: 16px;\n}\n.atm-profile-body {\n padding: 24px;\n text-align: center;\n overflow-y: auto;\n flex: 1;\n min-height: 0;\n}\n.atm-profile-avatar-large {\n width: 80px;\n height: 80px;\n border-radius: 50%;\n background-color: var(--feed21a4);\n color: #ffffff;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 24px;\n font-weight: 600;\n margin: 0 auto 20px;\n}\n.atm-profile-info-grid {\n width: 100%;\n text-align: left;\n margin-top: 20px;\n}\n.atm-profile-info-row {\n display: flex;\n flex-direction: column;\n margin-bottom: 16px;\n}\n.atm-profile-info-label {\n font-size: 13px;\n color: var(--atm-text-secondary);\n margin-bottom: 4px;\n}\n.atm-profile-info-value {\n font-size: 16px;\n color: var(--atm-text-primary);\n font-weight: 500;\n}\n.atm-profile-edit-form {\n width: 100%;\n text-align: left;\n margin-top: 20px;\n}\n.atm-form-group {\n margin-bottom: 16px;\n}\n.atm-input-label {\n display: block;\n margin-bottom: 6px;\n font-size: 13px;\n color: var(--atm-text-primary);\n font-weight: 500;\n}\n.atm-input-field {\n width: 100%;\n padding: 10px 12px;\n background: var(--atm-input-bg);\n color: var(--atm-text-primary);\n border: 1px solid var(--atm-input-border);\n border-radius: 6px;\n font-size: 14px;\n box-sizing: border-box;\n transition: border-color 0.2s;\n}\n.atm-input-field:focus {\n outline: none;\n border-color: var(--feed21a4);\n box-shadow: 0 0 0 2px rgba(74, 144, 226, 0.1);\n}\n.atm-form-actions {\n display: flex;\n gap: 12px;\n margin-top: 24px;\n}\n.atm-save-btn,\n.atm-edit-profile-btn,\n.atm-reset-password-btn,\n.atm-add-email-btn {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px;\n background: var(--feed21a4);\n color: #FFF;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: opacity 0.2s;\n justify-content: center;\n}\n.atm-save-btn:hover,\n.atm-edit-profile-btn:hover,\n.atm-reset-password-btn:hover,\n.atm-add-email-btn:hover {\n opacity: 0.9;\n}\n.atm-cancel-btn {\n display: flex;\n align-items: center;\n gap: 8px;\n flex: 1;\n padding: 12px;\n background: var(--atm-bg-secondary);\n color: var(--atm-text-secondary);\n border: 1px solid var(--atm-border-color);\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s;\n justify-content: center;\n}\n.atm-cancel-btn:hover {\n background: var(--atm-bg-tertiary);\n color: var(--atm-text-primary);\n}\n.atm-btn-icon {\n width: 16px;\n height: 16px;\n}\n.atm-email-add-section {\n margin-bottom: 24px;\n text-align: left;\n}\n.atm-email-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n text-align: left;\n}\n.atm-email-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px;\n background: var(--atm-bg-secondary);\n border-radius: 6px;\n border: 1px solid var(--atm-border-color);\n}\n.atm-email-info {\n display: flex;\n flex-direction: column;\n gap: 8px;\n flex: 1;\n}\n.atm-email-address {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--atm-text-primary);\n}\n.atm-email-icon {\n width: 16px;\n height: 16px;\n color: var(--v5c6febbc);\n}\n.atm-email-badges {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n.atm-badge {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n font-size: 11px;\n font-weight: 500;\n border-radius: 12px;\n text-transform: uppercase;\n}\n.atm-badge-icon {\n width: 12px;\n height: 12px;\n}\n.atm-badge-primary {\n background: #e3f2fd;\n color: #1976d2;\n}\n.atm-badge-verified {\n background: #e8f5e8;\n color: #2e7d32;\n}\n.atm-badge-unverified {\n background: #fff3e0;\n color: #f57c00;\n}\n.atm-email-actions {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n.atm-verify-btn {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 6px 12px;\n background: var(--feed21a4);\n color: white;\n border: none;\n border-radius: 4px;\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n transition: opacity 0.2s;\n}\n.atm-verify-btn:hover {\n opacity: 0.9;\n}\n.atm-delete-btn {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 6px 12px;\n background: #dc3545;\n color: white;\n border: none;\n border-radius: 4px;\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n transition: opacity 0.2s;\n}\n.atm-delete-btn:hover {\n opacity: 0.9;\n}\n.atm-password-section {\n text-align: left;\n}\n.atm-sessions-section {\n text-align: left;\n}\n.atm-sessions-info {\n margin-bottom: 20px;\n}\n.atm-sessions-description {\n margin: 0;\n font-size: 14px;\n color: var(--atm-text-secondary);\n line-height: 1.5;\n}\n.atm-sessions-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n.atm-session-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px;\n background: var(--atm-bg-secondary);\n border-radius: 8px;\n border: 1px solid var(--atm-border-color);\n gap: 16px;\n}\n.atm-session-header {\n display: flex;\n gap: 12px;\n align-items: flex-start;\n}\n.atm-session-icon {\n width: 24px;\n height: 24px;\n color: var(--v5c6febbc);\n flex-shrink: 0;\n}\n.atm-session-details {\n flex: 1;\n min-width: 0;\n}\n.atm-session-title {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 4px;\n font-size: 15px;\n font-weight: 600;\n color: var(--atm-text-primary);\n}\n.atm-session-device-info {\n font-size: 13px;\n color: var(--atm-text-secondary);\n margin-bottom: 8px;\n}\n.atm-badge-current {\n background: #d1f4e0;\n color: #0f9d58;\n}\n.atm-session-timestamps {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n.atm-session-timestamp {\n display: flex;\n gap: 6px;\n font-size: 13px;\n color: var(--atm-text-secondary);\n}\n.atm-timestamp-label {\n font-weight: 500;\n color: var(--atm-text-primary);\n}\n.atm-session-actions {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.atm-close-session-btn {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 14px;\n background: #dc3545;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n transition: opacity 0.2s;\n white-space: nowrap;\n}\n.atm-close-session-btn:hover {\n opacity: 0.9;\n}\n@media (max-width: 768px) {\n.atm-profile-button {\n padding: 6px 10px;\n gap: 6px;\n}\n.atm-profile-name {\n font-size: 13px;\n}\n.atm-profile-menu {\n width: 260px;\n}\n.atm-profile-modal {\n padding: 1rem;\n}\n.atm-profile-content {\n max-width: 90%;\n max-height: calc(100vh - 2rem);\n}\n.atm-profile-header {\n padding: 14px;\n}\n.atm-profile-title {\n font-size: 16px;\n}\n.atm-profile-body {\n padding: 20px;\n}\n.atm-tab {\n padding: 10px 12px;\n font-size: 13px;\n gap: 4px;\n}\n.atm-tab-icon {\n width: 14px;\n height: 14px;\n}\n.atm-profile-avatar-large {\n width: 70px;\n height: 70px;\n font-size: 22px;\n}\n.atm-email-item {\n flex-direction: column;\n gap: 12px;\n align-items: flex-start;\n}\n.atm-email-actions {\n flex-direction: row;\n width: 100%;\n}\n.atm-verify-btn,\n .atm-delete-btn {\n flex: 1;\n justify-content: center;\n}\n.atm-session-item {\n flex-direction: column;\n align-items: flex-start;\n}\n.atm-session-actions {\n width: 100%;\n}\n.atm-close-session-btn {\n width: 100%;\n justify-content: center;\n}\n}\n@media (max-width: 480px) {\n.atm-profile-button {\n padding: 4px 8px;\n gap: 4px;\n}\n.atm-profile-avatar {\n width: 28px;\n height: 28px;\n font-size: 11px;\n}\n.atm-profile-avatar.large {\n width: 40px;\n height: 40px;\n font-size: 14px;\n}\n.atm-profile-name {\n font-size: 12px;\n}\n.atm-profile-arrow {\n width: 14px;\n height: 14px;\n}\n.atm-profile-menu {\n width: calc(100vw - 20px);\n max-width: 240px;\n}\n.atm-profile-info {\n padding: 12px;\n gap: 10px;\n}\n.atm-profile-fullname {\n font-size: 13px;\n}\n.atm-profile-email {\n font-size: 12px;\n}\n.atm-profile-option {\n padding: 8px 12px;\n font-size: 13px;\n gap: 8px;\n}\n.atm-profile-icon {\n width: 16px;\n height: 16px;\n}\n.atm-profile-modal {\n padding: 0.5rem;\n}\n.atm-profile-content {\n max-width: 95%;\n max-height: calc(100vh - 1rem);\n}\n.atm-profile-header {\n padding: 12px;\n}\n.atm-profile-close {\n font-size: 20px;\n padding: 4px;\n margin-right: 8px;\n}\n.atm-profile-title {\n font-size: 15px;\n}\n.atm-profile-body {\n padding: 16px;\n}\n.atm-tab {\n padding: 8px 8px;\n font-size: 12px;\n gap: 3px;\n}\n.atm-tab-icon {\n width: 13px;\n height: 13px;\n}\n.atm-profile-avatar-large {\n width: 60px;\n height: 60px;\n font-size: 20px;\n margin-bottom: 16px;\n}\n.atm-profile-info-label {\n font-size: 12px;\n}\n.atm-profile-info-value {\n font-size: 14px;\n}\n.atm-input-label {\n font-size: 12px;\n}\n.atm-input-field {\n padding: 8px 10px;\n font-size: 13px;\n}\n.atm-form-actions {\n flex-direction: column;\n gap: 8px;\n}\n.atm-save-btn,\n .atm-cancel-btn,\n .atm-edit-profile-btn,\n .atm-reset-password-btn {\n width: 100%;\n padding: 10px;\n font-size: 13px;\n}\n.atm-email-item {\n padding: 10px;\n}\n.atm-email-address {\n font-size: 13px;\n}\n.atm-badge {\n font-size: 10px;\n padding: 2px 6px;\n}\n}\n@media (max-width: 360px) {\n.atm-profile-button {\n padding: 4px 6px;\n}\n.atm-profile-avatar {\n width: 26px;\n height: 26px;\n font-size: 10px;\n}\n.atm-profile-name {\n display: none;\n}\n.atm-profile-menu {\n width: calc(100vw - 16px);\n max-width: 220px;\n}\n.atm-profile-modal {\n padding: 0.25rem;\n}\n.atm-profile-content {\n max-width: 98%;\n max-height: calc(100vh - 0.5rem);\n}\n.atm-profile-body {\n padding: 12px;\n}\n.atm-tab {\n padding: 8px 6px;\n font-size: 11px;\n flex-direction: column;\n gap: 2px;\n}\n.atm-profile-avatar-large {\n width: 50px;\n height: 50px;\n font-size: 18px;\n}\n.atm-email-item {\n padding: 8px;\n}\n}\n\n.atm-auth-buttons[data-v-0c63ecb8] {\n display: flex;\n flex-wrap: wrap;\n gap: 16px;\n}\n@media (max-width: 768px) {\n.atm-auth-buttons[data-v-0c63ecb8] {\n gap: 14px;\n}\n}\n@media (max-width: 480px) {\n.atm-auth-buttons[data-v-0c63ecb8] {\n gap: 12px;\n flex-direction: column;\n}\n}\n@media (max-width: 360px) {\n.atm-auth-buttons[data-v-0c63ecb8] {\n gap: 10px;\n}\n}\n\n.atm-logout-btn[data-v-7157f989] {\n padding: 12px;\n margin-top: 8px;\n background: var(--v2ec0f896);\n color: #FFF;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: opacity 0.2s;\n min-height: 44px;\n}\n.atm-logout-btn[data-v-7157f989]:hover {\n opacity: 0.9;\n}\n@media (max-width: 768px) {\n.atm-logout-btn[data-v-7157f989] {\n padding: 11px;\n font-size: 13px;\n min-height: 42px;\n}\n}\n@media (max-width: 480px) {\n.atm-logout-btn[data-v-7157f989] {\n padding: 10px;\n font-size: 13px;\n min-height: 40px;\n}\n}\n@media (max-width: 360px) {\n.atm-logout-btn[data-v-7157f989] {\n padding: 9px;\n font-size: 12px;\n min-height: 38px;\n}\n}\n";
6
6
  document.head.appendChild(style);
7
7
  }
8
8
  })();
@@ -192,7 +192,36 @@ const getDeviceToken = async (client) => {
192
192
  throw error;
193
193
  }
194
194
  };
195
- const _hoisted_1$7 = { class: "atm-login-container" };
195
+ const _hoisted_1$7 = {
196
+ key: 0,
197
+ class: "atm-notification-container"
198
+ };
199
+ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
200
+ __name: "Notification",
201
+ props: {
202
+ show: { type: Boolean },
203
+ message: {},
204
+ type: { default: "error" }
205
+ },
206
+ setup(__props) {
207
+ return (_ctx, _cache) => {
208
+ return vue.openBlock(), vue.createBlock(vue.Teleport, { to: "body" }, [
209
+ vue.createVNode(vue.Transition, { name: "atm-notification" }, {
210
+ default: vue.withCtx(() => [
211
+ __props.show ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$7, [
212
+ vue.createElementVNode("div", {
213
+ class: vue.normalizeClass(["atm-notification", `atm-notification--${__props.type}`])
214
+ }, vue.toDisplayString(__props.message), 3)
215
+ ])) : vue.createCommentVNode("", true)
216
+ ]),
217
+ _: 1
218
+ })
219
+ ]);
220
+ };
221
+ }
222
+ });
223
+ const Notification = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-f5e47084"]]);
224
+ const _hoisted_1$6 = { class: "atm-login-container" };
196
225
  const _hoisted_2$2 = { class: "atm-logo-container" };
197
226
  const _hoisted_3$2 = ["src"];
198
227
  const _hoisted_4$2 = {
@@ -254,11 +283,12 @@ const _hoisted_28$1 = {
254
283
  key: 0,
255
284
  class: "atm-signup-text"
256
285
  };
257
- const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
286
+ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
258
287
  __name: "SignIn",
259
288
  props: {
260
- redirect: {},
261
- signUpLink: {}
289
+ fallbackRedirectUrl: { default: "/" },
290
+ initialValues: {},
291
+ signUpUrl: {}
262
292
  },
263
293
  emits: [
264
294
  "completed",
@@ -266,15 +296,29 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
266
296
  ],
267
297
  setup(__props, { emit: __emit }) {
268
298
  vue.useCssVars((_ctx) => ({
269
- "v68f877d9": atmPrimaryColor.value,
270
- "v358114b2": atmSecondaryColor.value
299
+ "v70f1a692": atmPrimaryColor.value,
300
+ "v4a1729f6": atmSecondaryColor.value
271
301
  }));
272
302
  const props = __props;
273
303
  const emit = __emit;
274
- const showNotification = vue.inject("showNotification");
304
+ const notification = vue.ref({
305
+ show: false,
306
+ message: "",
307
+ type: "error"
308
+ });
309
+ const showNotification = (message, type = "error") => {
310
+ notification.value = {
311
+ show: true,
312
+ message,
313
+ type
314
+ };
315
+ setTimeout(() => {
316
+ notification.value.show = false;
317
+ }, 3e3);
318
+ };
275
319
  const form = vue.ref({
276
- emailAddress: "",
277
- password: ""
320
+ emailAddress: props.initialValues?.emailAddress || "",
321
+ password: props.initialValues?.password || ""
278
322
  });
279
323
  const currentStep = vue.ref("email");
280
324
  const signInStep = vue.ref(null);
@@ -293,7 +337,7 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
293
337
  const { configurations } = useAtm();
294
338
  const atmPrimaryColor = vue.computed(() => configurations.value?.design?.primaryColor);
295
339
  const atmSecondaryColor = vue.computed(() => configurations.value?.design?.secondaryColor);
296
- const logoUrl = vue.computed(() => configurations.value?.project?.logo || "");
340
+ const logoUrl = vue.computed(() => configurations.value?.project?.logo);
297
341
  const isRegisterEnabled = vue.computed(() => configurations.value?.register?.enable !== false);
298
342
  const buttonText = vue.computed(() => {
299
343
  if (currentStep.value === "email") return "Entrar";
@@ -441,13 +485,13 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
441
485
  showNotification?.("Login realizado com sucesso!", "success");
442
486
  setTimeout(() => {
443
487
  emit("completed");
444
- if (props.redirect) {
488
+ if (props.fallbackRedirectUrl) {
445
489
  const instance = vue.getCurrentInstance();
446
490
  const router = instance?.appContext.config.globalProperties.$router;
447
491
  if (router) {
448
- router.push(props.redirect);
492
+ router.push(props.fallbackRedirectUrl);
449
493
  } else {
450
- window.location.href = props.redirect;
494
+ window.location.href = props.fallbackRedirectUrl;
451
495
  }
452
496
  }
453
497
  }, 1e3);
@@ -502,13 +546,13 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
502
546
  }
503
547
  };
504
548
  const signUp = () => {
505
- if (props.signUpLink) {
549
+ if (props.signUpUrl) {
506
550
  const instance = vue.getCurrentInstance();
507
551
  const router = instance?.appContext.config.globalProperties.$router;
508
552
  if (router) {
509
- router.push(props.signUpLink);
553
+ router.push(props.signUpUrl);
510
554
  } else {
511
- window.location.href = props.signUpLink;
555
+ window.location.href = props.signUpUrl;
512
556
  }
513
557
  } else {
514
558
  emit("sign-up");
@@ -529,157 +573,135 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
529
573
  });
530
574
  });
531
575
  return (_ctx, _cache) => {
532
- return vue.unref(configurations) ? (vue.openBlock(), vue.createElementBlock("form", {
533
- key: 0,
534
- onSubmit: _cache[4] || (_cache[4] = vue.withModifiers(($event) => submit(), ["prevent"]))
535
- }, [
536
- vue.createElementVNode("div", _hoisted_1$7, [
537
- vue.createElementVNode("div", _hoisted_2$2, [
538
- logoUrl.value ? (vue.openBlock(), vue.createElementBlock("img", {
539
- key: 0,
540
- src: logoUrl.value,
541
- alt: "Logo",
542
- class: "atm-logo-image"
543
- }, null, 8, _hoisted_3$2)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$2, "Logo"))
544
- ]),
545
- vue.createElementVNode("h2", _hoisted_5$2, vue.toDisplayString(vue.unref(configurations).project.name), 1),
546
- _cache[13] || (_cache[13] = vue.createElementVNode("p", { class: "atm-welcome-text" }, "Bem-vindo de volta! Faça login para continuar", -1)),
547
- currentStep.value !== "forgot_password_message" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$2, [
548
- showEmailField.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$2, [
549
- vue.createElementVNode("label", _hoisted_8$2, vue.toDisplayString(labelText.value), 1),
550
- vue.withDirectives(vue.createElementVNode("input", {
551
- ref_key: "emailInput",
552
- ref: emailInput,
553
- type: "text",
554
- class: "atm-input-field",
555
- placeholder: inputPlaceholder.value,
556
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => form.value.emailAddress = $event),
557
- disabled: currentStep.value !== "email" || isLoading.value
558
- }, null, 8, _hoisted_9$2), [
559
- [vue.vModelText, form.value.emailAddress]
560
- ]),
561
- fieldErrors.value.emailAddress.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_10$2, vue.toDisplayString(fieldErrors.value.emailAddress[0]), 1)) : vue.createCommentVNode("", true)
562
- ])) : vue.createCommentVNode("", true),
563
- showPasswordField.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_11$2, [
564
- _cache[5] || (_cache[5] = vue.createElementVNode("label", { class: "atm-input-label" }, "Senha", -1)),
565
- vue.withDirectives(vue.createElementVNode("input", {
566
- ref_key: "passwordInput",
567
- ref: passwordInput,
568
- type: "password",
569
- class: "atm-input-field",
570
- placeholder: "Digite sua senha",
571
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => form.value.password = $event),
572
- disabled: isLoading.value
573
- }, null, 8, _hoisted_12$2), [
574
- [vue.vModelText, form.value.password]
575
- ]),
576
- fieldErrors.value.password.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_13$2, vue.toDisplayString(fieldErrors.value.password[0]), 1)) : vue.createCommentVNode("", true),
577
- vue.createElementVNode("div", _hoisted_14$2, [
578
- vue.createElementVNode("button", {
579
- type: "button",
580
- onClick: _cache[2] || (_cache[2] = ($event) => sendResetPasswordLink()),
581
- class: "atm-forgot-password-link",
576
+ return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
577
+ vue.createVNode(Notification, {
578
+ show: notification.value.show,
579
+ message: notification.value.message,
580
+ type: notification.value.type
581
+ }, null, 8, ["show", "message", "type"]),
582
+ vue.unref(configurations) ? (vue.openBlock(), vue.createElementBlock("form", {
583
+ key: 0,
584
+ onSubmit: _cache[4] || (_cache[4] = vue.withModifiers(($event) => submit(), ["prevent"]))
585
+ }, [
586
+ vue.createElementVNode("div", _hoisted_1$6, [
587
+ vue.createElementVNode("div", _hoisted_2$2, [
588
+ logoUrl.value ? (vue.openBlock(), vue.createElementBlock("img", {
589
+ key: 0,
590
+ src: logoUrl.value,
591
+ alt: "Logo",
592
+ class: "atm-logo-image"
593
+ }, null, 8, _hoisted_3$2)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$2, "Logo"))
594
+ ]),
595
+ vue.createElementVNode("h2", _hoisted_5$2, vue.toDisplayString(vue.unref(configurations).project.name), 1),
596
+ _cache[13] || (_cache[13] = vue.createElementVNode("p", { class: "atm-welcome-text" }, "Bem-vindo de volta! Faça login para continuar", -1)),
597
+ currentStep.value !== "forgot_password_message" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$2, [
598
+ showEmailField.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$2, [
599
+ vue.createElementVNode("label", _hoisted_8$2, vue.toDisplayString(labelText.value), 1),
600
+ vue.withDirectives(vue.createElementVNode("input", {
601
+ ref_key: "emailInput",
602
+ ref: emailInput,
603
+ type: "text",
604
+ class: "atm-input-field",
605
+ placeholder: inputPlaceholder.value,
606
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => form.value.emailAddress = $event),
607
+ disabled: currentStep.value !== "email" || isLoading.value
608
+ }, null, 8, _hoisted_9$2), [
609
+ [vue.vModelText, form.value.emailAddress]
610
+ ]),
611
+ fieldErrors.value.emailAddress.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_10$2, vue.toDisplayString(fieldErrors.value.emailAddress[0]), 1)) : vue.createCommentVNode("", true)
612
+ ])) : vue.createCommentVNode("", true),
613
+ showPasswordField.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_11$2, [
614
+ _cache[5] || (_cache[5] = vue.createElementVNode("label", { class: "atm-input-label" }, "Senha", -1)),
615
+ vue.withDirectives(vue.createElementVNode("input", {
616
+ ref_key: "passwordInput",
617
+ ref: passwordInput,
618
+ type: "password",
619
+ class: "atm-input-field",
620
+ placeholder: "Digite sua senha",
621
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => form.value.password = $event),
582
622
  disabled: isLoading.value
583
- }, " Esqueci a minha senha ", 8, _hoisted_15$2)
584
- ])
585
- ])) : vue.createCommentVNode("", true),
586
- showStrategyChoice.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$2, [
587
- _cache[6] || (_cache[6] = vue.createElementVNode("p", { class: "atm-strategy-title" }, "Escolha como deseja fazer login:", -1)),
588
- vue.createElementVNode("div", _hoisted_17$2, [
589
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(availableStrategies.value, (strategy) => {
590
- return vue.openBlock(), vue.createElementBlock("button", {
591
- key: strategy.strategy,
592
- onClick: ($event) => selectStrategy(strategy),
623
+ }, null, 8, _hoisted_12$2), [
624
+ [vue.vModelText, form.value.password]
625
+ ]),
626
+ fieldErrors.value.password.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_13$2, vue.toDisplayString(fieldErrors.value.password[0]), 1)) : vue.createCommentVNode("", true),
627
+ vue.createElementVNode("div", _hoisted_14$2, [
628
+ vue.createElementVNode("button", {
593
629
  type: "button",
594
- class: "atm-strategy-button",
630
+ onClick: _cache[2] || (_cache[2] = ($event) => sendResetPasswordLink()),
631
+ class: "atm-forgot-password-link",
595
632
  disabled: isLoading.value
596
- }, [
597
- strategy.strategy === "email_link" ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_19$2, "Usar link por email")) : vue.createCommentVNode("", true)
598
- ], 8, _hoisted_18$2);
599
- }), 128))
633
+ }, " Esqueci a minha senha ", 8, _hoisted_15$2)
634
+ ])
635
+ ])) : vue.createCommentVNode("", true),
636
+ showStrategyChoice.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$2, [
637
+ _cache[6] || (_cache[6] = vue.createElementVNode("p", { class: "atm-strategy-title" }, "Escolha como deseja fazer login:", -1)),
638
+ vue.createElementVNode("div", _hoisted_17$2, [
639
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(availableStrategies.value, (strategy) => {
640
+ return vue.openBlock(), vue.createElementBlock("button", {
641
+ key: strategy.strategy,
642
+ onClick: ($event) => selectStrategy(strategy),
643
+ type: "button",
644
+ class: "atm-strategy-button",
645
+ disabled: isLoading.value
646
+ }, [
647
+ strategy.strategy === "email_link" ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_19$2, "Usar link por email")) : vue.createCommentVNode("", true)
648
+ ], 8, _hoisted_18$2);
649
+ }), 128))
650
+ ])
651
+ ])) : vue.createCommentVNode("", true),
652
+ currentStep.value === "email_link" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_20$2, [..._cache[7] || (_cache[7] = [
653
+ vue.createElementVNode("p", { class: "atm-email-link-text" }, " Link de verificação enviado para seu email. Verifique sua caixa de entrada. ", -1)
654
+ ])])) : vue.createCommentVNode("", true)
655
+ ])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_21$2, [
656
+ vue.createElementVNode("p", null, [
657
+ _cache[8] || (_cache[8] = vue.createTextVNode("Foi enviado um link para resetar a senha para o email ", -1)),
658
+ vue.createElementVNode("strong", null, vue.toDisplayString(form.value.emailAddress), 1),
659
+ _cache[9] || (_cache[9] = vue.createTextVNode(". Verifique sua caixa de entrada.", -1))
600
660
  ])
601
- ])) : vue.createCommentVNode("", true),
602
- currentStep.value === "email_link" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_20$2, [..._cache[7] || (_cache[7] = [
603
- vue.createElementVNode("p", { class: "atm-email-link-text" }, " Link de verificação enviado para seu email. Verifique sua caixa de entrada. ", -1)
604
- ])])) : vue.createCommentVNode("", true)
605
- ])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_21$2, [
606
- vue.createElementVNode("p", null, [
607
- _cache[8] || (_cache[8] = vue.createTextVNode("Foi enviado um link para resetar a senha para o email ", -1)),
608
- vue.createElementVNode("strong", null, vue.toDisplayString(form.value.emailAddress), 1),
609
- _cache[9] || (_cache[9] = vue.createTextVNode(". Verifique sua caixa de entrada.", -1))
661
+ ])),
662
+ buttonText.value ? (vue.openBlock(), vue.createElementBlock("button", {
663
+ key: 2,
664
+ type: "submit",
665
+ class: "atm-login-button",
666
+ disabled: isLoading.value
667
+ }, [
668
+ !isLoading.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_23$2, vue.toDisplayString(buttonText.value), 1)) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_24$2, [
669
+ _cache[10] || (_cache[10] = vue.createElementVNode("svg", {
670
+ class: "spinner-svg",
671
+ viewBox: "0 0 50 50"
672
+ }, [
673
+ vue.createElementVNode("circle", {
674
+ class: "spinner-circle",
675
+ cx: "25",
676
+ cy: "25",
677
+ r: "20",
678
+ fill: "none",
679
+ "stroke-width": "5"
680
+ })
681
+ ], -1)),
682
+ currentStep.value === "email" ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_25$2, "Verificando...")) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_26$2, "Entrando..."))
683
+ ]))
684
+ ], 8, _hoisted_22$2)) : vue.createCommentVNode("", true),
685
+ vue.createElementVNode("div", _hoisted_27$2, [
686
+ isRegisterEnabled.value ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_28$1, [
687
+ _cache[11] || (_cache[11] = vue.createTextVNode(" Ainda não tem uma conta? ", -1)),
688
+ vue.createElementVNode("a", {
689
+ onClick: _cache[3] || (_cache[3] = ($event) => signUp()),
690
+ class: "atm-signup-link"
691
+ }, "Cadastre aqui")
692
+ ])) : vue.createCommentVNode("", true),
693
+ _cache[12] || (_cache[12] = vue.createElementVNode("p", { class: "atm-powered-by" }, [
694
+ vue.createTextVNode(" Secured by "),
695
+ vue.createElementVNode("strong", null, "Autenticar.me")
696
+ ], -1))
610
697
  ])
611
- ])),
612
- buttonText.value ? (vue.openBlock(), vue.createElementBlock("button", {
613
- key: 2,
614
- type: "submit",
615
- class: "atm-login-button",
616
- disabled: isLoading.value
617
- }, [
618
- !isLoading.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_23$2, vue.toDisplayString(buttonText.value), 1)) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_24$2, [
619
- _cache[10] || (_cache[10] = vue.createElementVNode("svg", {
620
- class: "spinner-svg",
621
- viewBox: "0 0 50 50"
622
- }, [
623
- vue.createElementVNode("circle", {
624
- class: "spinner-circle",
625
- cx: "25",
626
- cy: "25",
627
- r: "20",
628
- fill: "none",
629
- "stroke-width": "5"
630
- })
631
- ], -1)),
632
- currentStep.value === "email" ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_25$2, "Verificando...")) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_26$2, "Entrando..."))
633
- ]))
634
- ], 8, _hoisted_22$2)) : vue.createCommentVNode("", true),
635
- vue.createElementVNode("div", _hoisted_27$2, [
636
- isRegisterEnabled.value ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_28$1, [
637
- _cache[11] || (_cache[11] = vue.createTextVNode(" Ainda não tem uma conta? ", -1)),
638
- vue.createElementVNode("a", {
639
- onClick: _cache[3] || (_cache[3] = ($event) => signUp()),
640
- class: "atm-signup-link"
641
- }, "Cadastre aqui")
642
- ])) : vue.createCommentVNode("", true),
643
- _cache[12] || (_cache[12] = vue.createElementVNode("p", { class: "atm-powered-by" }, [
644
- vue.createTextVNode(" Secured by "),
645
- vue.createElementVNode("strong", null, "Autenticar.me")
646
- ], -1))
647
698
  ])
648
- ])
649
- ], 32)) : vue.createCommentVNode("", true);
650
- };
651
- }
652
- });
653
- const SignIn = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-4e744a2c"]]);
654
- const _hoisted_1$6 = {
655
- key: 0,
656
- class: "atm-notification-container"
657
- };
658
- const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
659
- __name: "Notification",
660
- props: {
661
- show: { type: Boolean },
662
- message: {},
663
- type: { default: "error" }
664
- },
665
- setup(__props) {
666
- return (_ctx, _cache) => {
667
- return vue.openBlock(), vue.createBlock(vue.Teleport, { to: "body" }, [
668
- vue.createVNode(vue.Transition, { name: "atm-notification" }, {
669
- default: vue.withCtx(() => [
670
- __props.show ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$6, [
671
- vue.createElementVNode("div", {
672
- class: vue.normalizeClass(["atm-notification", `atm-notification--${__props.type}`])
673
- }, vue.toDisplayString(__props.message), 3)
674
- ])) : vue.createCommentVNode("", true)
675
- ]),
676
- _: 1
677
- })
678
- ]);
699
+ ], 32)) : vue.createCommentVNode("", true)
700
+ ], 64);
679
701
  };
680
702
  }
681
703
  });
682
- const Notification = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-f5e47084"]]);
704
+ const SignIn = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-b88e6b76"]]);
683
705
  const _hoisted_1$5 = { class: "atm-signup-container" };
684
706
  const _hoisted_2$1 = { class: "atm-logo-container" };
685
707
  const _hoisted_3$1 = ["src"];
@@ -743,24 +765,25 @@ const _hoisted_27$1 = { class: "atm-login-text" };
743
765
  const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
744
766
  __name: "SignUp",
745
767
  props: {
746
- redirect: {},
747
- signInLink: {}
768
+ fallbackRedirectUrl: { default: "/" },
769
+ initialValues: {},
770
+ signInUrl: {}
748
771
  },
749
772
  emits: ["completed", "sign-in"],
750
773
  setup(__props, { emit: __emit }) {
751
774
  vue.useCssVars((_ctx) => ({
752
- "v1eb0b99e": atmPrimaryColor.value,
753
- "v3dd12aff": atmSecondaryColor.value
775
+ "v2dc4b763": atmPrimaryColor.value,
776
+ "b00c0a9e": atmSecondaryColor.value
754
777
  }));
755
778
  const props = __props;
756
779
  const emit = __emit;
757
780
  const { configurations } = useAtm();
758
781
  const form = vue.ref({
759
- first_name: "",
760
- last_name: "",
761
- email_address: "",
762
- password: "",
763
- confirm_password: ""
782
+ first_name: props.initialValues?.first_name || "",
783
+ last_name: props.initialValues?.last_name || "",
784
+ email_address: props.initialValues?.email_address || "",
785
+ password: props.initialValues?.password || "",
786
+ confirm_password: props.initialValues?.confirm_password || ""
764
787
  });
765
788
  const notification = vue.ref({
766
789
  show: false,
@@ -798,7 +821,7 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
798
821
  });
799
822
  const atmPrimaryColor = vue.computed(() => configurations.value?.design?.primaryColor);
800
823
  const atmSecondaryColor = vue.computed(() => configurations.value?.design?.secondaryColor);
801
- const logoUrl = vue.computed(() => configurations.value?.project?.logo || "");
824
+ const logoUrl = vue.computed(() => configurations.value?.project?.logo);
802
825
  const hasFirstName = vue.computed(() => configurations.value?.firstName?.required === true);
803
826
  const hasLastName = vue.computed(() => configurations.value?.lastName?.required === true);
804
827
  const hasPassword = vue.computed(() => configurations.value?.password?.enable !== false);
@@ -894,13 +917,13 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
894
917
  showNotification("Login realizado com sucesso!", "success");
895
918
  setTimeout(() => {
896
919
  emit("completed");
897
- if (props.redirect) {
920
+ if (props.fallbackRedirectUrl) {
898
921
  const instance = vue.getCurrentInstance();
899
922
  const router = instance?.appContext.config.globalProperties.$router;
900
923
  if (router) {
901
- router.push(props.redirect);
924
+ router.push(props.fallbackRedirectUrl);
902
925
  } else {
903
- window.location.href = props.redirect;
926
+ window.location.href = props.fallbackRedirectUrl;
904
927
  }
905
928
  }
906
929
  }, 1e3);
@@ -914,13 +937,13 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
914
937
  }
915
938
  };
916
939
  const signIn = () => {
917
- if (props.signInLink) {
940
+ if (props.signInUrl) {
918
941
  const instance = vue.getCurrentInstance();
919
942
  const router = instance?.appContext.config.globalProperties.$router;
920
943
  if (router) {
921
- router.push(props.signInLink);
944
+ router.push(props.signInUrl);
922
945
  } else {
923
- window.location.href = props.signInLink;
946
+ window.location.href = props.signInUrl;
924
947
  }
925
948
  } else {
926
949
  emit("sign-in");
@@ -1058,23 +1081,30 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
1058
1081
  };
1059
1082
  }
1060
1083
  });
1061
- const SignUp = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-9668f28a"]]);
1084
+ const SignUp = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-83e9452d"]]);
1062
1085
  const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
1063
1086
  __name: "SignInModal",
1064
1087
  props: {
1065
- redirect: {},
1066
- signUpLink: {}
1088
+ fallbackRedirectUrl: { default: "/" },
1089
+ signUpUrl: {}
1067
1090
  },
1068
1091
  emits: [
1069
1092
  "close"
1070
1093
  ],
1071
1094
  setup(__props, { emit: __emit }) {
1095
+ const props = __props;
1072
1096
  const emit = __emit;
1073
1097
  const close = () => {
1074
1098
  emit("close");
1075
1099
  };
1076
1100
  const component = vue.ref("sign-in");
1077
- const signUp = () => component.value = "sign-up";
1101
+ const signUp = () => {
1102
+ if (props.signUpUrl) {
1103
+ window.location.href = props.signUpUrl;
1104
+ } else {
1105
+ component.value = "sign-up";
1106
+ }
1107
+ };
1078
1108
  const signIn = () => component.value = "sign-in";
1079
1109
  const windowWidth = vue.ref(typeof window !== "undefined" ? window.innerWidth : 1024);
1080
1110
  const maxWidth = vue.computed(() => {
@@ -1100,17 +1130,16 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
1100
1130
  default: vue.withCtx(() => [
1101
1131
  component.value === "sign-in" ? (vue.openBlock(), vue.createBlock(SignIn, {
1102
1132
  key: 0,
1103
- redirect: __props.redirect,
1104
- signUpLink: __props.signUpLink,
1133
+ fallbackRedirectUrl: __props.fallbackRedirectUrl,
1105
1134
  onSignUp: _cache[0] || (_cache[0] = ($event) => signUp()),
1106
1135
  onCompleted: _cache[1] || (_cache[1] = ($event) => close())
1107
- }, null, 8, ["redirect", "signUpLink"])) : vue.createCommentVNode("", true),
1136
+ }, null, 8, ["fallbackRedirectUrl"])) : vue.createCommentVNode("", true),
1108
1137
  component.value === "sign-up" ? (vue.openBlock(), vue.createBlock(SignUp, {
1109
1138
  key: 1,
1110
- redirect: __props.redirect,
1139
+ fallbackRedirectUrl: __props.fallbackRedirectUrl,
1111
1140
  onSignIn: _cache[2] || (_cache[2] = ($event) => signIn()),
1112
1141
  onCompleted: _cache[3] || (_cache[3] = ($event) => close())
1113
- }, null, 8, ["redirect"])) : vue.createCommentVNode("", true)
1142
+ }, null, 8, ["fallbackRedirectUrl"])) : vue.createCommentVNode("", true)
1114
1143
  ]),
1115
1144
  _: 1
1116
1145
  }, 8, ["max-width"]);
@@ -1120,48 +1149,27 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
1120
1149
  const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
1121
1150
  __name: "SignInButton",
1122
1151
  props: {
1123
- redirect: {},
1124
- signUpLink: {}
1152
+ fallbackRedirectUrl: {},
1153
+ signUpUrl: {}
1125
1154
  },
1126
1155
  setup(__props) {
1127
1156
  vue.useCssVars((_ctx) => ({
1128
- "v111e7704": atmPrimaryColor.value
1157
+ "v12e673a0": atmPrimaryColor.value
1129
1158
  }));
1130
1159
  const showSignInModal = vue.ref(false);
1131
1160
  const { configurations } = useAtm();
1132
1161
  const atmPrimaryColor = vue.computed(() => configurations.value?.design?.primaryColor);
1133
- const notification = vue.ref({
1134
- show: false,
1135
- message: "",
1136
- type: "error"
1137
- });
1138
- const showNotification = (message, type = "error") => {
1139
- notification.value = {
1140
- show: true,
1141
- message,
1142
- type
1143
- };
1144
- setTimeout(() => {
1145
- notification.value.show = false;
1146
- }, 3e3);
1147
- };
1148
- vue.provide("showNotification", showNotification);
1149
1162
  const signIn = () => {
1150
1163
  showSignInModal.value = true;
1151
1164
  };
1152
1165
  return (_ctx, _cache) => {
1153
1166
  return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
1154
- vue.createVNode(Notification, {
1155
- show: notification.value.show,
1156
- message: notification.value.message,
1157
- type: notification.value.type
1158
- }, null, 8, ["show", "message", "type"]),
1159
1167
  showSignInModal.value ? (vue.openBlock(), vue.createBlock(_sfc_main$8, {
1160
1168
  key: 0,
1161
- redirect: __props.redirect,
1162
- signUpLink: __props.signUpLink,
1169
+ fallbackRedirectUrl: __props.fallbackRedirectUrl,
1170
+ signUpUrl: __props.signUpUrl,
1163
1171
  onClose: _cache[0] || (_cache[0] = () => showSignInModal.value = false)
1164
- }, null, 8, ["redirect", "signUpLink"])) : vue.createCommentVNode("", true),
1172
+ }, null, 8, ["fallbackRedirectUrl", "signUpUrl"])) : vue.createCommentVNode("", true),
1165
1173
  vue.createElementVNode("button", {
1166
1174
  onClick: _cache[1] || (_cache[1] = ($event) => signIn()),
1167
1175
  class: "atm-signin-btn"
@@ -1170,7 +1178,7 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
1170
1178
  };
1171
1179
  }
1172
1180
  });
1173
- const SignInButton = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-e490ca63"]]);
1181
+ const SignInButton = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-43bf662d"]]);
1174
1182
  const _hoisted_1$4 = {
1175
1183
  key: 2,
1176
1184
  class: "atm-registration-disabled"
@@ -1178,13 +1186,14 @@ const _hoisted_1$4 = {
1178
1186
  const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
1179
1187
  __name: "SignUpModal",
1180
1188
  props: {
1181
- redirect: {},
1182
- signInLink: {}
1189
+ fallbackRedirectUrl: { default: "/" },
1190
+ signInUrl: {}
1183
1191
  },
1184
1192
  emits: [
1185
1193
  "close"
1186
1194
  ],
1187
1195
  setup(__props, { emit: __emit }) {
1196
+ const props = __props;
1188
1197
  const { configurations } = useAtm();
1189
1198
  const emit = __emit;
1190
1199
  const close = () => {
@@ -1193,7 +1202,13 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
1193
1202
  const component = vue.ref("sign-up");
1194
1203
  const isRegistrationAllowed = vue.computed(() => configurations.value?.register?.enable !== false);
1195
1204
  const signUp = () => component.value = "sign-up";
1196
- const signIn = () => component.value = "sign-in";
1205
+ const signIn = () => {
1206
+ if (props.signInUrl) {
1207
+ window.location.href = props.signInUrl;
1208
+ } else {
1209
+ component.value = "sign-in";
1210
+ }
1211
+ };
1197
1212
  const windowWidth = vue.ref(typeof window !== "undefined" ? window.innerWidth : 1024);
1198
1213
  const maxWidth = vue.computed(() => {
1199
1214
  if (windowWidth.value <= 360) return 340;
@@ -1218,17 +1233,16 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
1218
1233
  default: vue.withCtx(() => [
1219
1234
  component.value === "sign-in" ? (vue.openBlock(), vue.createBlock(SignIn, {
1220
1235
  key: 0,
1221
- redirect: __props.redirect,
1236
+ fallbackRedirectUrl: __props.fallbackRedirectUrl,
1222
1237
  onSignUp: _cache[0] || (_cache[0] = ($event) => signUp()),
1223
1238
  onCompleted: _cache[1] || (_cache[1] = ($event) => close())
1224
- }, null, 8, ["redirect"])) : vue.createCommentVNode("", true),
1239
+ }, null, 8, ["fallbackRedirectUrl"])) : vue.createCommentVNode("", true),
1225
1240
  component.value === "sign-up" && isRegistrationAllowed.value ? (vue.openBlock(), vue.createBlock(SignUp, {
1226
1241
  key: 1,
1227
- redirect: __props.redirect,
1228
- signInLink: __props.signInLink,
1242
+ fallbackRedirectUrl: __props.fallbackRedirectUrl,
1229
1243
  onSignIn: _cache[2] || (_cache[2] = ($event) => signIn()),
1230
1244
  onCompleted: _cache[3] || (_cache[3] = ($event) => close())
1231
- }, null, 8, ["redirect", "signInLink"])) : component.value === "sign-up" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$4, [
1245
+ }, null, 8, ["fallbackRedirectUrl"])) : component.value === "sign-up" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$4, [
1232
1246
  _cache[6] || (_cache[6] = vue.createElementVNode("p", { class: "atm-disabled-message" }, "Registro não está disponível no momento", -1)),
1233
1247
  vue.createElementVNode("button", {
1234
1248
  onClick: _cache[4] || (_cache[4] = ($event) => signIn()),
@@ -1241,16 +1255,16 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
1241
1255
  };
1242
1256
  }
1243
1257
  });
1244
- const SignUpModal = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-05bfbd78"]]);
1258
+ const SignUpModal = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-b58cb91d"]]);
1245
1259
  const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
1246
1260
  __name: "SignUpButton",
1247
1261
  props: {
1248
- redirect: {},
1249
- signInLink: {}
1262
+ fallbackRedirectUrl: {},
1263
+ signInUrl: {}
1250
1264
  },
1251
1265
  setup(__props) {
1252
1266
  vue.useCssVars((_ctx) => ({
1253
- "v334adbc1": atmPrimaryColor.value
1267
+ "v1c336c46": atmPrimaryColor.value
1254
1268
  }));
1255
1269
  const showSignUpModal = vue.ref(false);
1256
1270
  const { configurations } = useAtm();
@@ -1263,10 +1277,10 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
1263
1277
  return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
1264
1278
  showSignUpModal.value ? (vue.openBlock(), vue.createBlock(SignUpModal, {
1265
1279
  key: 0,
1266
- redirect: __props.redirect,
1267
- signInLink: __props.signInLink,
1280
+ fallbackRedirectUrl: __props.fallbackRedirectUrl,
1281
+ signInUrl: __props.signInUrl,
1268
1282
  onClose: _cache[0] || (_cache[0] = () => showSignUpModal.value = false)
1269
- }, null, 8, ["redirect", "signInLink"])) : vue.createCommentVNode("", true),
1283
+ }, null, 8, ["fallbackRedirectUrl", "signInUrl"])) : vue.createCommentVNode("", true),
1270
1284
  isRegistrationAllowed.value ? (vue.openBlock(), vue.createElementBlock("button", {
1271
1285
  key: 1,
1272
1286
  onClick: _cache[1] || (_cache[1] = ($event) => signUp()),
@@ -1276,7 +1290,7 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
1276
1290
  };
1277
1291
  }
1278
1292
  });
1279
- const SignUpButton = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-7346e92d"]]);
1293
+ const SignUpButton = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-d9ac9b54"]]);
1280
1294
  const _hoisted_1$3 = {
1281
1295
  key: 0,
1282
1296
  class: "atm-profile-container"
@@ -2430,7 +2444,7 @@ const atmPlugin = {
2430
2444
  const atmClient = new clientJs.AtmClient({
2431
2445
  domain: pluginOptions.domain,
2432
2446
  publicKey: pluginOptions.publicKey,
2433
- ssl: true
2447
+ ssl: pluginOptions.ssl
2434
2448
  });
2435
2449
  const client = vue.ref(atmClient);
2436
2450
  const user = vue.ref(null);