@passflow/react 0.14.0 → 0.15.1
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/CHANGELOG.md +66 -0
- package/README.md +29 -16
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.es.js +143 -143
- package/dist/index.es.js.map +1 -1
- package/dist/src/components/error/index.d.cts +7 -0
- package/dist/src/components/error/index.d.ts +1 -1
- package/dist/src/components/error/index.d.ts.map +1 -1
- package/dist/src/components/flow/consent/index.d.cts +13 -0
- package/dist/src/components/flow/consent/index.d.ts +1 -1
- package/dist/src/components/flow/consent/index.d.ts.map +1 -1
- package/dist/src/components/flow/consent/screen.d.cts +9 -0
- package/dist/src/components/flow/consent/screen.d.ts +2 -2
- package/dist/src/components/flow/consent/screen.d.ts.map +1 -1
- package/dist/src/components/flow/device-verify/index.d.cts +10 -0
- package/dist/src/components/flow/device-verify/index.d.ts +1 -1
- package/dist/src/components/flow/device-verify/index.d.ts.map +1 -1
- package/dist/src/components/flow/device-verify/screen.d.cts +4 -0
- package/dist/src/components/flow/device-verify/screen.d.ts +2 -2
- package/dist/src/components/flow/device-verify/screen.d.ts.map +1 -1
- package/dist/src/components/flow/index.d.cts +5 -0
- package/dist/src/components/flow/index.d.ts +4 -4
- package/dist/src/components/flow/index.d.ts.map +1 -1
- package/dist/src/components/flow/passflow/index.d.cts +16 -0
- package/dist/src/components/flow/passflow/index.d.ts +5 -1
- package/dist/src/components/flow/passflow/index.d.ts.map +1 -1
- package/dist/src/components/flow/two-factor-setup/index.d.cts +10 -0
- package/dist/src/components/flow/two-factor-setup/index.d.ts +2 -2
- package/dist/src/components/flow/two-factor-setup/index.d.ts.map +1 -1
- package/dist/src/components/flow/two-factor-setup-magic-link/index.d.cts +35 -0
- package/dist/src/components/flow/two-factor-setup-magic-link/index.d.ts +2 -2
- package/dist/src/components/flow/two-factor-setup-magic-link/index.d.ts.map +1 -1
- package/dist/src/components/flow/two-factor-verify/index.d.cts +11 -0
- package/dist/src/components/flow/two-factor-verify/index.d.ts +2 -2
- package/dist/src/components/flow/two-factor-verify/index.d.ts.map +1 -1
- package/dist/src/components/form/forgot-password/forgot-password-success.d.cts +2 -0
- package/dist/src/components/form/forgot-password/forgot-password-success.d.ts +1 -1
- package/dist/src/components/form/forgot-password/forgot-password-success.d.ts.map +1 -1
- package/dist/src/components/form/forgot-password/forgot-password.d.cts +9 -0
- package/dist/src/components/form/forgot-password/forgot-password.d.ts +1 -1
- package/dist/src/components/form/forgot-password/forgot-password.d.ts.map +1 -1
- package/dist/src/components/form/forgot-password/index.d.cts +3 -0
- package/dist/src/components/form/forgot-password/index.d.ts +2 -2
- package/dist/src/components/form/index.d.cts +10 -0
- package/dist/src/components/form/index.d.ts +9 -9
- package/dist/src/components/form/index.d.ts.map +1 -1
- package/dist/src/components/form/invitation-join/index.d.cts +7 -0
- package/dist/src/components/form/invitation-join/index.d.ts +1 -2
- package/dist/src/components/form/invitation-join/index.d.ts.map +1 -1
- package/dist/src/components/form/reset-password/index.d.cts +9 -0
- package/dist/src/components/form/reset-password/index.d.ts +2 -2
- package/dist/src/components/form/reset-password/index.d.ts.map +1 -1
- package/dist/src/components/form/signin/index.d.cts +15 -0
- package/dist/src/components/form/signin/index.d.ts +2 -2
- package/dist/src/components/form/signin/index.d.ts.map +1 -1
- package/dist/src/components/form/signup/index.d.cts +14 -0
- package/dist/src/components/form/signup/index.d.ts +2 -2
- package/dist/src/components/form/signup/index.d.ts.map +1 -1
- package/dist/src/components/form/two-factor-challenge/index.d.cts +10 -0
- package/dist/src/components/form/two-factor-challenge/index.d.ts +1 -1
- package/dist/src/components/form/two-factor-challenge/index.d.ts.map +1 -1
- package/dist/src/components/form/two-factor-challenge/method-selector.d.cts +12 -0
- package/dist/src/components/form/two-factor-challenge/method-selector.d.ts +2 -2
- package/dist/src/components/form/two-factor-setup/index.d.cts +2 -0
- package/dist/src/components/form/two-factor-setup/index.d.ts +1 -1
- package/dist/src/components/form/two-factor-setup/two-factor-setup-form.d.cts +9 -0
- package/dist/src/components/form/two-factor-setup/two-factor-setup-form.d.ts +1 -1
- package/dist/src/components/form/two-factor-setup/two-factor-setup-form.d.ts.map +1 -1
- package/dist/src/components/form/two-factor-verify/index.d.cts +3 -0
- package/dist/src/components/form/two-factor-verify/index.d.ts +2 -2
- package/dist/src/components/form/two-factor-verify/index.d.ts.map +1 -1
- package/dist/src/components/form/two-factor-verify/two-factor-recovery-form.d.cts +13 -0
- package/dist/src/components/form/two-factor-verify/two-factor-recovery-form.d.ts +1 -1
- package/dist/src/components/form/two-factor-verify/two-factor-recovery-form.d.ts.map +1 -1
- package/dist/src/components/form/two-factor-verify/two-factor-verify-form.d.cts +16 -0
- package/dist/src/components/form/two-factor-verify/two-factor-verify-form.d.ts +1 -1
- package/dist/src/components/form/two-factor-verify/two-factor-verify-form.d.ts.map +1 -1
- package/dist/src/components/form/verify-challenge/index.d.cts +3 -0
- package/dist/src/components/form/verify-challenge/index.d.ts +2 -2
- package/dist/src/components/form/verify-challenge/timer-button.d.cts +9 -0
- package/dist/src/components/form/verify-challenge/timer-button.d.ts +1 -1
- package/dist/src/components/form/verify-challenge/timer-button.d.ts.map +1 -1
- package/dist/src/components/form/verify-challenge/verify-challenge-magic-link.d.cts +2 -0
- package/dist/src/components/form/verify-challenge/verify-challenge-magic-link.d.ts +1 -1
- package/dist/src/components/form/verify-challenge/verify-challenge-magic-link.d.ts.map +1 -1
- package/dist/src/components/form/verify-challenge/verify-challenge-otp-manual.d.cts +16 -0
- package/dist/src/components/form/verify-challenge/verify-challenge-otp-manual.d.ts +1 -1
- package/dist/src/components/form/verify-challenge/verify-challenge-otp-manual.d.ts.map +1 -1
- package/dist/src/components/form/verify-challenge/verify-challenge-otp-redirect.d.cts +9 -0
- package/dist/src/components/form/verify-challenge/verify-challenge-otp-redirect.d.ts +1 -2
- package/dist/src/components/form/verify-challenge/verify-challenge-otp-redirect.d.ts.map +1 -1
- package/dist/src/components/form/verify-challenge/verify-challenge-otp.d.cts +12 -0
- package/dist/src/components/form/verify-challenge/verify-challenge-otp.d.ts +2 -2
- package/dist/src/components/form/verify-challenge/verify-challenge-otp.d.ts.map +1 -1
- package/dist/src/components/form/verify-challenge/verify-challenge-success.d.cts +3 -0
- package/dist/src/components/form/verify-challenge/verify-challenge-success.d.ts +1 -1
- package/dist/src/components/form/verify-challenge/verify-challenge-success.d.ts.map +1 -1
- package/dist/src/components/form/wrapper/index.d.cts +2 -0
- package/dist/src/components/form/wrapper/index.d.ts +1 -1
- package/dist/src/components/passkey/index.d.cts +7 -0
- package/dist/src/components/passkey/index.d.ts +1 -1
- package/dist/src/components/passkey/index.d.ts.map +1 -1
- package/dist/src/components/passkey/passkey-actions.d.cts +13 -0
- package/dist/src/components/passkey/passkey-actions.d.ts +1 -1
- package/dist/src/components/passkey/passkey-actions.d.ts.map +1 -1
- package/dist/src/components/passkey/passkey-dialog.d.cts +10 -0
- package/dist/src/components/passkey/passkey-dialog.d.ts +1 -1
- package/dist/src/components/passkey/passkey-list.d.cts +9 -0
- package/dist/src/components/passkey/passkey-list.d.ts +2 -2
- package/dist/src/components/passkey/passkey-list.d.ts.map +1 -1
- package/dist/src/components/provider/index.d.cts +4 -0
- package/dist/src/components/provider/index.d.ts +3 -3
- package/dist/src/components/provider/index.d.ts.map +1 -1
- package/dist/src/components/provider/passflow-provider.d.cts +160 -0
- package/dist/src/components/provider/passflow-provider.d.ts +4 -4
- package/dist/src/components/provider/passflow-provider.d.ts.map +1 -1
- package/dist/src/components/provider/upgrade-provider.d.cts +85 -0
- package/dist/src/components/provider/upgrade-provider.d.ts +39 -3
- package/dist/src/components/provider/upgrade-provider.d.ts.map +1 -1
- package/dist/src/components/ui/button/index.d.cts +34 -0
- package/dist/src/components/ui/button/index.d.ts +3 -2
- package/dist/src/components/ui/button/index.d.ts.map +1 -1
- package/dist/src/components/ui/continuing-status/index.d.cts +8 -0
- package/dist/src/components/ui/continuing-status/index.d.ts +1 -1
- package/dist/src/components/ui/country-flag/index.d.cts +7 -0
- package/dist/src/components/ui/country-flag/index.d.ts +1 -1
- package/dist/src/components/ui/country-flag/index.d.ts.map +1 -1
- package/dist/src/components/ui/country-flag/positions.d.cts +245 -0
- package/dist/src/components/ui/country-flag/positions.d.ts +241 -241
- package/dist/src/components/ui/country-flag/positions.d.ts.map +1 -1
- package/dist/src/components/ui/dialog/index.d.cts +20 -0
- package/dist/src/components/ui/dialog/index.d.ts +18 -18
- package/dist/src/components/ui/dialog/index.d.ts.map +1 -1
- package/dist/src/components/ui/fields/field-otp.d.cts +48 -0
- package/dist/src/components/ui/fields/field-otp.d.ts +48 -0
- package/dist/src/components/ui/fields/field-otp.d.ts.map +1 -0
- package/dist/src/components/ui/fields/field-password.d.cts +13 -0
- package/dist/src/components/ui/fields/field-password.d.ts +4 -4
- package/dist/src/components/ui/fields/field-password.d.ts.map +1 -1
- package/dist/src/components/ui/fields/field-phone.d.cts +11 -0
- package/dist/src/components/ui/fields/field-phone.d.ts +1 -1
- package/dist/src/components/ui/fields/field-phone.d.ts.map +1 -1
- package/dist/src/components/ui/fields/field-text.d.cts +8 -0
- package/dist/src/components/ui/fields/field-text.d.ts +3 -3
- package/dist/src/components/ui/fields/field-text.d.ts.map +1 -1
- package/dist/src/components/ui/fields/index.d.cts +5 -0
- package/dist/src/components/ui/fields/index.d.ts +4 -3
- package/dist/src/components/ui/fields/index.d.ts.map +1 -1
- package/dist/src/components/ui/icon/index.d.cts +11 -0
- package/dist/src/components/ui/icon/index.d.ts +1 -1
- package/dist/src/components/ui/icon/index.d.ts.map +1 -1
- package/dist/src/components/ui/index.d.cts +14 -0
- package/dist/src/components/ui/index.d.ts +13 -13
- package/dist/src/components/ui/index.d.ts.map +1 -1
- package/dist/src/components/ui/link/index.d.cts +11 -0
- package/dist/src/components/ui/link/index.d.ts +1 -1
- package/dist/src/components/ui/link/index.d.ts.map +1 -1
- package/dist/src/components/ui/login-screen/code-entry.d.cts +4 -0
- package/dist/src/components/ui/login-screen/code-entry.d.ts +2 -2
- package/dist/src/components/ui/login-screen/consent.d.cts +15 -0
- package/dist/src/components/ui/login-screen/consent.d.ts +2 -2
- package/dist/src/components/ui/login-screen/credentials.d.cts +4 -0
- package/dist/src/components/ui/login-screen/credentials.d.ts +2 -2
- package/dist/src/components/ui/login-screen/credentials.d.ts.map +1 -1
- package/dist/src/components/ui/login-screen/device-approval.d.cts +4 -0
- package/dist/src/components/ui/login-screen/device-approval.d.ts +2 -2
- package/dist/src/components/ui/login-screen/general-error.d.cts +4 -0
- package/dist/src/components/ui/login-screen/general-error.d.ts +2 -2
- package/dist/src/components/ui/login-screen/index.d.cts +4 -0
- package/dist/src/components/ui/login-screen/index.d.ts +3 -3
- package/dist/src/components/ui/login-screen/index.d.ts.map +1 -1
- package/dist/src/components/ui/login-screen/invitation.d.cts +4 -0
- package/dist/src/components/ui/login-screen/invitation.d.ts +2 -2
- package/dist/src/components/ui/login-screen/login-screen.d.cts +4 -0
- package/dist/src/components/ui/login-screen/login-screen.d.ts +2 -2
- package/dist/src/components/ui/login-screen/passkey-progress.d.cts +4 -0
- package/dist/src/components/ui/login-screen/passkey-progress.d.ts +2 -2
- package/dist/src/components/ui/login-screen/second-factor.d.cts +4 -0
- package/dist/src/components/ui/login-screen/second-factor.d.ts +2 -2
- package/dist/src/components/ui/login-screen/shared.d.cts +15 -0
- package/dist/src/components/ui/login-screen/shared.d.ts +2 -2
- package/dist/src/components/ui/login-screen/shell.d.cts +13 -0
- package/dist/src/components/ui/login-screen/shell.d.ts +1 -1
- package/dist/src/components/ui/login-screen/shell.d.ts.map +1 -1
- package/dist/src/components/ui/login-screen/status.d.cts +4 -0
- package/dist/src/components/ui/login-screen/status.d.ts +2 -2
- package/dist/src/components/ui/login-screen/types.d.cts +192 -0
- package/dist/src/components/ui/login-screen/types.d.ts +2 -2
- package/dist/src/components/ui/login-screen/types.d.ts.map +1 -1
- package/dist/src/components/ui/popover/index.d.cts +7 -0
- package/dist/src/components/ui/popover/index.d.ts +5 -5
- package/dist/src/components/ui/popover/index.d.ts.map +1 -1
- package/dist/src/components/ui/providers-box/index.d.cts +10 -0
- package/dist/src/components/ui/providers-box/index.d.ts +2 -2
- package/dist/src/components/ui/providers-box/index.d.ts.map +1 -1
- package/dist/src/components/ui/spinner/index.d.cts +23 -0
- package/dist/src/components/ui/spinner/index.d.ts +1 -1
- package/dist/src/components/ui/spinner/index.d.ts.map +1 -1
- package/dist/src/components/ui/switch/index.d.cts +22 -0
- package/dist/src/components/ui/switch/index.d.ts +1 -1
- package/dist/src/components/ui/switch/index.d.ts.map +1 -1
- package/dist/src/components/ui/upgrade-dialog/challenge.d.cts +12 -0
- package/dist/src/components/ui/upgrade-dialog/challenge.d.ts +2 -2
- package/dist/src/components/ui/upgrade-dialog/factor-list.d.cts +20 -0
- package/dist/src/components/ui/upgrade-dialog/factor-list.d.ts +2 -2
- package/dist/src/components/ui/upgrade-dialog/index.d.cts +8 -0
- package/dist/src/components/ui/upgrade-dialog/index.d.ts +7 -7
- package/dist/src/components/ui/upgrade-dialog/index.d.ts.map +1 -1
- package/dist/src/components/ui/upgrade-dialog/state-mapping.d.cts +130 -0
- package/dist/src/components/ui/upgrade-dialog/state-mapping.d.ts +12 -1
- package/dist/src/components/ui/upgrade-dialog/state-mapping.d.ts.map +1 -1
- package/dist/src/components/ui/upgrade-dialog/status.d.cts +27 -0
- package/dist/src/components/ui/upgrade-dialog/status.d.ts +2 -2
- package/dist/src/components/ui/upgrade-dialog/types.d.cts +188 -0
- package/dist/src/components/ui/upgrade-dialog/upgrade-dialog.d.cts +13 -0
- package/dist/src/components/ui/upgrade-dialog/upgrade-dialog.d.ts +2 -2
- package/dist/src/components/ui/visually-hidden/index.d.cts +17 -0
- package/dist/src/components/ui/visually-hidden/index.d.ts +17 -0
- package/dist/src/components/ui/visually-hidden/index.d.ts.map +1 -0
- package/dist/src/constants/countries-phone-code.d.cts +253 -0
- package/dist/src/constants/countries-phone-code.d.ts.map +1 -1
- package/dist/src/constants/formats.d.cts +4 -0
- package/dist/src/constants/formats.d.ts.map +1 -1
- package/dist/src/constants/index.d.cts +3 -0
- package/dist/src/constants/index.d.ts +2 -2
- package/dist/src/context/auth-context.d.cts +23 -0
- package/dist/src/context/auth-context.d.ts +3 -3
- package/dist/src/context/auth-context.d.ts.map +1 -1
- package/dist/src/context/index.d.cts +6 -0
- package/dist/src/context/index.d.ts +5 -5
- package/dist/src/context/index.d.ts.map +1 -1
- package/dist/src/context/navigation-context.d.cts +25 -0
- package/dist/src/context/navigation-context.d.ts +1 -1
- package/dist/src/context/passflow-context.d.cts +26 -0
- package/dist/src/context/passflow-context.d.ts +3 -3
- package/dist/src/context/passflow-context.d.ts.map +1 -1
- package/dist/src/context/router-context.d.cts +42 -0
- package/dist/src/context/router-context.d.ts.map +1 -1
- package/dist/src/context/upgrade-context.d.cts +107 -0
- package/dist/src/context/upgrade-context.d.ts +24 -2
- package/dist/src/hocs/index.d.cts +2 -0
- package/dist/src/hocs/index.d.ts +1 -1
- package/dist/src/hocs/with-error.d.cts +8 -0
- package/dist/src/hocs/with-error.d.ts +5 -5
- package/dist/src/hocs/with-error.d.ts.map +1 -1
- package/dist/src/hooks/index.d.cts +28 -0
- package/dist/src/hooks/index.d.ts +27 -27
- package/dist/src/hooks/index.d.ts.map +1 -1
- package/dist/src/hooks/use-app-settings.d.cts +16 -0
- package/dist/src/hooks/use-app-settings.d.ts +1 -1
- package/dist/src/hooks/use-app-settings.d.ts.map +1 -1
- package/dist/src/hooks/use-auth-cloud-redirect.d.cts +4 -0
- package/dist/src/hooks/use-auth.d.cts +3 -0
- package/dist/src/hooks/use-auth.d.ts +1 -1
- package/dist/src/hooks/use-auth.d.ts.map +1 -1
- package/dist/src/hooks/use-consent.d.cts +68 -0
- package/dist/src/hooks/use-device-verify.d.cts +96 -0
- package/dist/src/hooks/use-device-verify.d.ts +1 -1
- package/dist/src/hooks/use-device-verify.d.ts.map +1 -1
- package/dist/src/hooks/use-forgot-password.d.cts +10 -0
- package/dist/src/hooks/use-forgot-password.d.ts +1 -1
- package/dist/src/hooks/use-join-invite.d.cts +8 -0
- package/dist/src/hooks/use-logout.d.cts +8 -0
- package/dist/src/hooks/use-navigation.d.cts +29 -0
- package/dist/src/hooks/use-navigation.d.ts +2 -2
- package/dist/src/hooks/use-navigation.d.ts.map +1 -1
- package/dist/src/hooks/use-outsideclick.d.cts +3 -0
- package/dist/src/hooks/use-outsideclick.d.ts +2 -2
- package/dist/src/hooks/use-outsideclick.d.ts.map +1 -1
- package/dist/src/hooks/use-passflow-store.d.cts +3 -0
- package/dist/src/hooks/use-passflow-store.d.ts +1 -1
- package/dist/src/hooks/use-passflow.d.cts +3 -0
- package/dist/src/hooks/use-passflow.d.ts +1 -1
- package/dist/src/hooks/use-passflow.d.ts.map +1 -1
- package/dist/src/hooks/use-passwordless-complete.d.cts +10 -0
- package/dist/src/hooks/use-passwordless-complete.d.ts +1 -1
- package/dist/src/hooks/use-passwordless-complete.d.ts.map +1 -1
- package/dist/src/hooks/use-provider.d.cts +7 -0
- package/dist/src/hooks/use-provider.d.ts +1 -1
- package/dist/src/hooks/use-provider.d.ts.map +1 -1
- package/dist/src/hooks/use-reset-password.d.cts +9 -0
- package/dist/src/hooks/use-session-expired.d.cts +49 -0
- package/dist/src/hooks/use-signin.d.cts +11 -0
- package/dist/src/hooks/use-signin.d.ts +2 -2
- package/dist/src/hooks/use-signin.d.ts.map +1 -1
- package/dist/src/hooks/use-signup.d.cts +11 -0
- package/dist/src/hooks/use-signup.d.ts +2 -2
- package/dist/src/hooks/use-signup.d.ts.map +1 -1
- package/dist/src/hooks/use-trusted-devices.d.cts +21 -0
- package/dist/src/hooks/use-trusted-devices.d.ts +1 -1
- package/dist/src/hooks/use-two-factor-challenge.d.cts +16 -0
- package/dist/src/hooks/use-two-factor-challenge.d.ts +1 -1
- package/dist/src/hooks/use-two-factor-manage.d.cts +15 -0
- package/dist/src/hooks/use-two-factor-manage.d.ts +1 -1
- package/dist/src/hooks/use-two-factor-methods.d.cts +14 -0
- package/dist/src/hooks/use-two-factor-methods.d.ts +1 -1
- package/dist/src/hooks/use-two-factor-setup-magic-link.d.cts +55 -0
- package/dist/src/hooks/use-two-factor-setup-magic-link.d.ts.map +1 -1
- package/dist/src/hooks/use-two-factor-setup.d.cts +18 -0
- package/dist/src/hooks/use-two-factor-setup.d.ts +1 -1
- package/dist/src/hooks/use-two-factor-status.d.cts +13 -0
- package/dist/src/hooks/use-two-factor-status.d.ts +1 -1
- package/dist/src/hooks/use-two-factor-verify.d.cts +20 -0
- package/dist/src/hooks/use-two-factor-verify.d.ts +2 -2
- package/dist/src/hooks/use-two-factor-verify.d.ts.map +1 -1
- package/dist/src/hooks/use-upgrade.d.cts +53 -0
- package/dist/src/hooks/use-upgrade.d.ts +12 -2
- package/dist/src/hooks/use-upgrade.d.ts.map +1 -1
- package/dist/src/hooks/use-user-passkeys.d.cts +12 -0
- package/dist/src/hooks/use-user-passkeys.d.ts +1 -1
- package/dist/src/index.d.cts +10 -0
- package/dist/src/index.d.ts +8 -8
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/types/auth-errors.d.cts +8 -0
- package/dist/src/types/device-errors.d.cts +95 -0
- package/dist/src/types/index.d.cts +26 -0
- package/dist/src/types/index.d.ts +4 -4
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/two-factor-errors.d.cts +14 -0
- package/dist/src/utils/auth-error.d.cts +7 -0
- package/dist/src/utils/auth-error.d.ts +1 -1
- package/dist/src/utils/auth-error.d.ts.map +1 -1
- package/dist/src/utils/classify-device-error.d.cts +35 -0
- package/dist/src/utils/classify-device-error.d.ts +1 -1
- package/dist/src/utils/classify-device-error.d.ts.map +1 -1
- package/dist/src/utils/classify-two-factor-error.d.cts +13 -0
- package/dist/src/utils/classify-two-factor-error.d.ts +1 -1
- package/dist/src/utils/cn.d.cts +3 -0
- package/dist/src/utils/cn.d.ts +1 -1
- package/dist/src/utils/cn.d.ts.map +1 -1
- package/dist/src/utils/dayjs/format.d.cts +8 -0
- package/dist/src/utils/dayjs/format.d.ts.map +1 -1
- package/dist/src/utils/dayjs/index.d.cts +2 -0
- package/dist/src/utils/dayjs/index.d.ts +1 -1
- package/dist/src/utils/get-app-version.d.cts +7 -0
- package/dist/src/utils/get-auth-methods.d.cts +30 -0
- package/dist/src/utils/get-auth-methods.d.ts +1 -1
- package/dist/src/utils/get-auth-methods.d.ts.map +1 -1
- package/dist/src/utils/get-form-labels.d.cts +10 -0
- package/dist/src/utils/get-form-labels.d.ts +5 -5
- package/dist/src/utils/get-form-labels.d.ts.map +1 -1
- package/dist/src/utils/get-url-errors.d.cts +5 -0
- package/dist/src/utils/get-url-errors.d.ts.map +1 -1
- package/dist/src/utils/get-url-with-tokens.d.cts +4 -0
- package/dist/src/utils/get-url-with-tokens.d.ts +1 -1
- package/dist/src/utils/get-url-with-tokens.d.ts.map +1 -1
- package/dist/src/utils/index.d.cts +18 -0
- package/dist/src/utils/index.d.ts +17 -17
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/invitation-auth-chrome.d.cts +8 -0
- package/dist/src/utils/invitation-auth-chrome.d.ts.map +1 -1
- package/dist/src/utils/login-theme.d.cts +8 -0
- package/dist/src/utils/login-theme.d.ts +1 -1
- package/dist/src/utils/login-theme.d.ts.map +1 -1
- package/dist/src/utils/second-factor.d.cts +21 -0
- package/dist/src/utils/second-factor.d.ts +3 -3
- package/dist/src/utils/second-factor.d.ts.map +1 -1
- package/dist/src/utils/two-factor-loop-prevention.d.cts +40 -0
- package/dist/src/utils/two-factor-loop-prevention.d.ts.map +1 -1
- package/dist/src/utils/undefined-on-catch.d.cts +2 -0
- package/dist/src/utils/upgrade-auth.d.cts +82 -0
- package/dist/src/utils/upgrade-auth.d.ts +45 -1
- package/dist/src/utils/upgrade-auth.d.ts.map +1 -1
- package/dist/src/utils/url-params.d.cts +14 -0
- package/dist/src/utils/url-params.d.ts.map +1 -1
- package/dist/src/utils/validate-url.d.cts +2 -0
- package/dist/src/utils/validate-url.d.ts.map +1 -1
- package/dist/src/utils/validation-schemas/index.d.cts +6 -0
- package/dist/src/utils/validation-schemas/index.d.ts +1 -1
- package/dist/src/utils/validation-schemas/index.d.ts.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +54 -56
- package/dist/index.cjs.js +0 -2
- package/dist/index.cjs.js.map +0 -1
- package/dist/src/components/form/two-factor-challenge/otp-input.d.ts +0 -12
- package/dist/src/components/form/two-factor-challenge/otp-input.d.ts.map +0 -1
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
export
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
11
|
-
export {
|
|
12
|
-
export {
|
|
13
|
-
export {
|
|
14
|
-
export {
|
|
15
|
-
export {
|
|
16
|
-
export {
|
|
17
|
-
export
|
|
1
|
+
export { authErrorFor, authRedirectErrorMessage, invitationLinkErrorMessage, verificationLinkErrorMessage, verificationRequestErrorMessage, } from './auth-error.js';
|
|
2
|
+
export { classifyDeviceError, DeviceApiError, deviceErrorOfType } from './classify-device-error.js';
|
|
3
|
+
export { classifyTwoFactorError, getUserFriendlyErrorMessage } from './classify-two-factor-error.js';
|
|
4
|
+
export { cn } from './cn.js';
|
|
5
|
+
export * from './dayjs/index.js';
|
|
6
|
+
export { type AuthMethods, getAuthMethods } from './get-auth-methods.js';
|
|
7
|
+
export { getIdentityLabel, getPasswordlessData, getValidationErrorsLabel } from './get-form-labels.js';
|
|
8
|
+
export { getUrlErrors } from './get-url-errors.js';
|
|
9
|
+
export { getUrlWithTokens, type TokenUrlFormat } from './get-url-with-tokens.js';
|
|
10
|
+
export { getInvitationAuthChrome, type InvitationAuthIntent } from './invitation-auth-chrome.js';
|
|
11
|
+
export { routeToSecondFactor, urlCarriesTwoFactorToken } from './second-factor.js';
|
|
12
|
+
export { TwoFactorLoopPrevention } from './two-factor-loop-prevention.js';
|
|
13
|
+
export { undefinedOnCatch } from './undefined-on-catch.js';
|
|
14
|
+
export { attachAuth, registerUpgradeAuthInstance, releaseUpgradeAuthInstance, upgradeAuthInstance, withAuth, } from './upgrade-auth.js';
|
|
15
|
+
export { useUrlParams } from './url-params.js';
|
|
16
|
+
export { isValidUrl } from './validate-url.js';
|
|
17
|
+
export * from './validation-schemas/index.js';
|
|
18
18
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,0BAA0B,EAC1B,4BAA4B,EAC5B,+BAA+B,GAChC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjG,OAAO,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAClG,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,KAAK,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,KAAK,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC9F,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EACL,UAAU,EACV,2BAA2B,EAC3B,0BAA0B,EAC1B,mBAAmB,EACnB,QAAQ,GACT,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type InvitationAuthIntent = 'sign-in' | 'sign-up';
|
|
2
|
+
type InvitationAuthChrome = {
|
|
3
|
+
title: string;
|
|
4
|
+
subtitle: string;
|
|
5
|
+
};
|
|
6
|
+
export declare const getInvitationAuthChrome: (inviteToken: string | null | undefined, intent: InvitationAuthIntent) => InvitationAuthChrome | null;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=invitation-auth-chrome.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invitation-auth-chrome.d.ts","sourceRoot":"","sources":["../../../src/utils/invitation-auth-chrome.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,SAAS,CAAC;AAEzD,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAaF,eAAO,MAAM,uBAAuB,
|
|
1
|
+
{"version":3,"file":"invitation-auth-chrome.d.ts","sourceRoot":"","sources":["../../../src/utils/invitation-auth-chrome.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,SAAS,CAAC;AAEzD,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAaF,eAAO,MAAM,uBAAuB,gBACrB,MAAM,GAAG,IAAI,GAAG,SAAS,UAC9B,oBAAoB,KAC3B,oBAAoB,GAAG,IAczB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { LoginWebAppStyle } from '@passflow/core';
|
|
2
|
+
export type CompatibleLoginWebAppStyle = Partial<LoginWebAppStyle> & {
|
|
3
|
+
/** Legacy field used by themes created before text_color was introduced. */
|
|
4
|
+
content_color?: string;
|
|
5
|
+
};
|
|
6
|
+
export declare const getLoginThemeCssVariables: (style: CompatibleLoginWebAppStyle) => Record<string, string | null>;
|
|
7
|
+
export declare const applyLoginThemeStyles: (root: HTMLElement, style: CompatibleLoginWebAppStyle) => void;
|
|
8
|
+
//# sourceMappingURL=login-theme.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LoginWebAppStyle } from '@passflow/core';
|
|
1
|
+
import type { LoginWebAppStyle } from '@passflow/core';
|
|
2
2
|
export type CompatibleLoginWebAppStyle = Partial<LoginWebAppStyle> & {
|
|
3
3
|
/** Legacy field used by themes created before text_color was introduced. */
|
|
4
4
|
content_color?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login-theme.d.ts","sourceRoot":"","sources":["../../../src/utils/login-theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,MAAM,MAAM,0BAA0B,GAAG,OAAO,CAAC,gBAAgB,CAAC,GAAG;IACnE,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAWF,eAAO,MAAM,yBAAyB,
|
|
1
|
+
{"version":3,"file":"login-theme.d.ts","sourceRoot":"","sources":["../../../src/utils/login-theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,MAAM,MAAM,0BAA0B,GAAG,OAAO,CAAC,gBAAgB,CAAC,GAAG;IACnE,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAWF,eAAO,MAAM,yBAAyB,UAAW,0BAA0B,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAgBxG,CAAC;AAEH,eAAO,MAAM,qBAAqB,SAAU,WAAW,SAAS,0BAA0B,KAAG,IAK5F,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Passflow } from '@passflow/core';
|
|
2
|
+
import type { NavigateFunction } from '../context/index.cjs';
|
|
3
|
+
/**
|
|
4
|
+
* Sends a sign-in that still owes its second factor to the 2FA screen.
|
|
5
|
+
*
|
|
6
|
+
* Every sign-in path can end this way: the server answers with a 2FA token in
|
|
7
|
+
* place of tokens, `@passflow/core` keeps it and saves no session, and
|
|
8
|
+
* `isTwoFactorVerificationRequired()` reads true. The caller must then stop:
|
|
9
|
+
* no success redirect, and no `getUrlWithTokens` — there are no tokens yet.
|
|
10
|
+
*
|
|
11
|
+
* @returns true when it navigated, so the caller returns without redirecting
|
|
12
|
+
*/
|
|
13
|
+
export declare const routeToSecondFactor: (passflow: Pick<Passflow, 'isTwoFactorVerificationRequired'>, navigate: NavigateFunction, twoFactorVerifyPath: string) => boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Whether the current URL is a landing that owes its second factor: a
|
|
16
|
+
* federated sign-in on a non-PKCE app comes back with `#tfa_token=` in the
|
|
17
|
+
* fragment and no tokens. Read it before `@passflow/core` is constructed,
|
|
18
|
+
* because core adopts the token and strips the fragment as it starts.
|
|
19
|
+
*/
|
|
20
|
+
export declare const urlCarriesTwoFactorToken: () => boolean;
|
|
21
|
+
//# sourceMappingURL=second-factor.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { Passflow } from '@passflow/core';
|
|
2
|
+
import type { NavigateFunction } from '../context/index.js';
|
|
3
3
|
/**
|
|
4
4
|
* Sends a sign-in that still owes its second factor to the 2FA screen.
|
|
5
5
|
*
|
|
@@ -10,7 +10,7 @@ import { Passflow } from '@passflow/core';
|
|
|
10
10
|
*
|
|
11
11
|
* @returns true when it navigated, so the caller returns without redirecting
|
|
12
12
|
*/
|
|
13
|
-
export declare const routeToSecondFactor: (passflow: Pick<Passflow,
|
|
13
|
+
export declare const routeToSecondFactor: (passflow: Pick<Passflow, 'isTwoFactorVerificationRequired'>, navigate: NavigateFunction, twoFactorVerifyPath: string) => boolean;
|
|
14
14
|
/**
|
|
15
15
|
* Whether the current URL is a landing that owes its second factor: a
|
|
16
16
|
* federated sign-in on a non-PKCE app comes back with `#tfa_token=` in the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"second-factor.d.ts","sourceRoot":"","sources":["../../../src/utils/second-factor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"second-factor.d.ts","sourceRoot":"","sources":["../../../src/utils/second-factor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElD;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,aACpB,IAAI,CAAC,QAAQ,EAAE,iCAAiC,CAAC,YACjD,gBAAgB,uBACL,MAAM,KAC1B,OAIF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,QAAO,OAG3C,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Loop prevention for 2FA redirect cycles
|
|
3
|
+
*/
|
|
4
|
+
export declare const TwoFactorLoopPrevention: {
|
|
5
|
+
/**
|
|
6
|
+
* Check if redirect should be allowed
|
|
7
|
+
* @returns true if redirect is safe, false if loop detected
|
|
8
|
+
*/
|
|
9
|
+
canRedirect(): boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Increment redirect counter
|
|
12
|
+
*/
|
|
13
|
+
incrementRedirect(): void;
|
|
14
|
+
/**
|
|
15
|
+
* Get current redirect count
|
|
16
|
+
*/
|
|
17
|
+
getRedirectCount(): number;
|
|
18
|
+
/**
|
|
19
|
+
* Reset redirect counter (call on successful auth)
|
|
20
|
+
*/
|
|
21
|
+
reset(): void;
|
|
22
|
+
/**
|
|
23
|
+
* Track last error type to detect repeated errors
|
|
24
|
+
*/
|
|
25
|
+
setLastErrorType(errorType: string): void;
|
|
26
|
+
/**
|
|
27
|
+
* Get last error type
|
|
28
|
+
*/
|
|
29
|
+
getLastErrorType(): string | null;
|
|
30
|
+
/**
|
|
31
|
+
* Check if same error is repeating
|
|
32
|
+
*/
|
|
33
|
+
isRepeatingError(errorType: string): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Get user-friendly message when loop is detected
|
|
36
|
+
*/
|
|
37
|
+
getLoopDetectedMessage(): string;
|
|
38
|
+
};
|
|
39
|
+
export default TwoFactorLoopPrevention;
|
|
40
|
+
//# sourceMappingURL=two-factor-loop-prevention.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"two-factor-loop-prevention.d.ts","sourceRoot":"","sources":["../../../src/utils/two-factor-loop-prevention.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,eAAO,MAAM,uBAAuB;IAClC;;;OAGG;
|
|
1
|
+
{"version":3,"file":"two-factor-loop-prevention.d.ts","sourceRoot":"","sources":["../../../src/utils/two-factor-loop-prevention.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,eAAO,MAAM,uBAAuB;IAClC;;;OAGG;IACH,WAAW,IAAI,OAAO;IAUtB;;OAEG;IACH,iBAAiB,IAAI,IAAI;IASzB;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAS1B;;OAEG;IACH,KAAK,IAAI,IAAI;IASb;;OAEG;IACH,gBAAgB,YAAY,MAAM,GAAG,IAAI;IAQzC;;OAEG;IACH,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAQjC;;OAEG;IACH,gBAAgB,YAAY,MAAM,GAAG,OAAO;IAK5C;;OAEG;IACH,sBAAsB,IAAI,MAAM;CAGjC,CAAC;eAEa,uBAAuB"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The free-function adapters — `withAuth` and `attachAuth` (§13.5).
|
|
3
|
+
*
|
|
4
|
+
* The core exposes both as methods on a configured `Passflow` instance, because
|
|
5
|
+
* that is where the resolved interception scope is bound. The developer-facing
|
|
6
|
+
* form is a bare import, so these two functions translate one into the other
|
|
7
|
+
* and do nothing else:
|
|
8
|
+
*
|
|
9
|
+
* ```tsx
|
|
10
|
+
* import { attachAuth } from '@passflow/react';
|
|
11
|
+
*
|
|
12
|
+
* const api = axios.create({ baseURL: 'https://api.example.com' });
|
|
13
|
+
* useEffect(() => attachAuth(api), []);
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* **NO LOGIC IN AN ADAPTER.** Neither function parses a challenge, compares a
|
|
17
|
+
* bar, decides scope, counts a retry or chooses an error class. Every one of
|
|
18
|
+
* those decisions lives in the core's `handleChallenge`, which is what makes
|
|
19
|
+
* all four surfaces behave identically.
|
|
20
|
+
*
|
|
21
|
+
* The instance is published by `UpgradeProvider`, which reads it from
|
|
22
|
+
* `PassflowContext` — so the binding is the provider's instance, resolved at
|
|
23
|
+
* call time rather than captured at import time.
|
|
24
|
+
*
|
|
25
|
+
* **The publication is synchronous, during the provider's render, and that is
|
|
26
|
+
* load-bearing.** React runs a child's effects before its parent's in the same
|
|
27
|
+
* commit, so publishing from the provider's `useEffect` would be too late for
|
|
28
|
+
* the documented `useEffect(() => attachAuth(api), [])` above: the child's
|
|
29
|
+
* effect would reach `requireInstance` with nothing registered and throw, and a
|
|
30
|
+
* throw inside an effect tears the tree down. Attach order must not matter, so
|
|
31
|
+
* the registry is written in render.
|
|
32
|
+
*
|
|
33
|
+
* **And the release is deferred by a microtask, which is what makes the pair
|
|
34
|
+
* survive React Strict Mode.** Strict Mode mounts, unmounts and remounts
|
|
35
|
+
* effects in development, and the child-before-parent effect order holds on the
|
|
36
|
+
* remount pass too — while render, which is what published the instance, does
|
|
37
|
+
* not run again. So an immediate release in the provider's effect cleanup
|
|
38
|
+
* leaves the registry empty exactly when the remounting child's effect reads
|
|
39
|
+
* it, and `attachAuth` throws again (verified: it does). Scheduling the release
|
|
40
|
+
* instead means a re-registration in the same tick cancels it, which is
|
|
41
|
+
* precisely a Strict Mode remount; a real unmount has no re-registration, so
|
|
42
|
+
* the release lands one microtask later. Nothing observes that gap but a caller
|
|
43
|
+
* reaching for an instance that has just been torn down.
|
|
44
|
+
*/
|
|
45
|
+
import type { FetchLike, Passflow, ResponseInterceptorHost } from '@passflow/core';
|
|
46
|
+
/**
|
|
47
|
+
* Publishes the provider's `Passflow` instance to the free functions, and
|
|
48
|
+
* returns an unregister suitable as a React effect cleanup.
|
|
49
|
+
*
|
|
50
|
+
* Last registration wins, and the returned unregister is *deferred*: it clears
|
|
51
|
+
* the instance on a microtask, and only if nothing has registered in the
|
|
52
|
+
* meantime. See the module comment — that deferral is what keeps a Strict Mode
|
|
53
|
+
* mount → unmount → remount from leaving the free functions unbound, and it is
|
|
54
|
+
* why register and release are symmetric rather than one in render and one in a
|
|
55
|
+
* cleanup that nothing undoes.
|
|
56
|
+
*/
|
|
57
|
+
export declare const registerUpgradeAuthInstance: (instance: Passflow) => (() => void);
|
|
58
|
+
/**
|
|
59
|
+
* Clears `instance` if it is still the registered one, and does nothing
|
|
60
|
+
* otherwise. Idempotent, so an effect cleanup that runs after a newer provider
|
|
61
|
+
* has already published cannot unbind the live instance.
|
|
62
|
+
*/
|
|
63
|
+
export declare const releaseUpgradeAuthInstance: (instance: Passflow) => void;
|
|
64
|
+
/** The instance the free functions bind to, or `null` outside a provider. */
|
|
65
|
+
export declare const upgradeAuthInstance: () => Passflow | null;
|
|
66
|
+
/**
|
|
67
|
+
* Wraps a `fetch` and returns the wrapper. Installs nothing and touches no
|
|
68
|
+
* global — two verbs exist because the semantics genuinely differ: an axios
|
|
69
|
+
* interceptor mutates, a fetch wrapper returns.
|
|
70
|
+
*/
|
|
71
|
+
export declare const withAuth: (next?: FetchLike) => FetchLike;
|
|
72
|
+
/**
|
|
73
|
+
* Attaches step-up handling to an axios instance the caller already owns,
|
|
74
|
+
* **mutating** it, and returns the `detach()` disposer — which is exactly what
|
|
75
|
+
* a React effect needs.
|
|
76
|
+
*
|
|
77
|
+
* The parameter is typed structurally (duck-typed on
|
|
78
|
+
* `interceptors.response.use`), so this package's axios version is not a
|
|
79
|
+
* constraint on the caller's.
|
|
80
|
+
*/
|
|
81
|
+
export declare const attachAuth: (instance: ResponseInterceptorHost) => (() => void);
|
|
82
|
+
//# sourceMappingURL=upgrade-auth.d.ts.map
|
|
@@ -1,4 +1,48 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* The free-function adapters — `withAuth` and `attachAuth` (§13.5).
|
|
3
|
+
*
|
|
4
|
+
* The core exposes both as methods on a configured `Passflow` instance, because
|
|
5
|
+
* that is where the resolved interception scope is bound. The developer-facing
|
|
6
|
+
* form is a bare import, so these two functions translate one into the other
|
|
7
|
+
* and do nothing else:
|
|
8
|
+
*
|
|
9
|
+
* ```tsx
|
|
10
|
+
* import { attachAuth } from '@passflow/react';
|
|
11
|
+
*
|
|
12
|
+
* const api = axios.create({ baseURL: 'https://api.example.com' });
|
|
13
|
+
* useEffect(() => attachAuth(api), []);
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* **NO LOGIC IN AN ADAPTER.** Neither function parses a challenge, compares a
|
|
17
|
+
* bar, decides scope, counts a retry or chooses an error class. Every one of
|
|
18
|
+
* those decisions lives in the core's `handleChallenge`, which is what makes
|
|
19
|
+
* all four surfaces behave identically.
|
|
20
|
+
*
|
|
21
|
+
* The instance is published by `UpgradeProvider`, which reads it from
|
|
22
|
+
* `PassflowContext` — so the binding is the provider's instance, resolved at
|
|
23
|
+
* call time rather than captured at import time.
|
|
24
|
+
*
|
|
25
|
+
* **The publication is synchronous, during the provider's render, and that is
|
|
26
|
+
* load-bearing.** React runs a child's effects before its parent's in the same
|
|
27
|
+
* commit, so publishing from the provider's `useEffect` would be too late for
|
|
28
|
+
* the documented `useEffect(() => attachAuth(api), [])` above: the child's
|
|
29
|
+
* effect would reach `requireInstance` with nothing registered and throw, and a
|
|
30
|
+
* throw inside an effect tears the tree down. Attach order must not matter, so
|
|
31
|
+
* the registry is written in render.
|
|
32
|
+
*
|
|
33
|
+
* **And the release is deferred by a microtask, which is what makes the pair
|
|
34
|
+
* survive React Strict Mode.** Strict Mode mounts, unmounts and remounts
|
|
35
|
+
* effects in development, and the child-before-parent effect order holds on the
|
|
36
|
+
* remount pass too — while render, which is what published the instance, does
|
|
37
|
+
* not run again. So an immediate release in the provider's effect cleanup
|
|
38
|
+
* leaves the registry empty exactly when the remounting child's effect reads
|
|
39
|
+
* it, and `attachAuth` throws again (verified: it does). Scheduling the release
|
|
40
|
+
* instead means a re-registration in the same tick cancels it, which is
|
|
41
|
+
* precisely a Strict Mode remount; a real unmount has no re-registration, so
|
|
42
|
+
* the release lands one microtask later. Nothing observes that gap but a caller
|
|
43
|
+
* reaching for an instance that has just been torn down.
|
|
44
|
+
*/
|
|
45
|
+
import type { FetchLike, Passflow, ResponseInterceptorHost } from '@passflow/core';
|
|
2
46
|
/**
|
|
3
47
|
* Publishes the provider's `Passflow` instance to the free functions, and
|
|
4
48
|
* returns an unregister suitable as a React effect cleanup.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade-auth.d.ts","sourceRoot":"","sources":["../../../src/utils/upgrade-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAWnF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,2BAA2B,
|
|
1
|
+
{"version":3,"file":"upgrade-auth.d.ts","sourceRoot":"","sources":["../../../src/utils/upgrade-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAWnF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,2BAA2B,aAAc,QAAQ,KAAG,CAAC,MAAM,IAAI,CAY3E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,aAAc,QAAQ,KAAG,IAE/D,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,mBAAmB,QAAO,QAAQ,GAAG,IAAsB,CAAC;AAWzE;;;;GAIG;AACH,eAAO,MAAM,QAAQ,UAAW,SAAS,KAAG,SAAuD,CAAC;AAEpG;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,aAAc,uBAAuB,KAAG,CAAC,MAAM,IAAI,CACtB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility for native handling of URL parameters
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Get URL parameters
|
|
6
|
+
* @param defaultValues Default values
|
|
7
|
+
* @returns Object with methods getAll, get, set
|
|
8
|
+
*/
|
|
9
|
+
export declare const useUrlParams: <T extends Record<string, string>>(defaultValues?: T) => {
|
|
10
|
+
getAll: () => Record<string, string>;
|
|
11
|
+
get: (key: string) => string | null;
|
|
12
|
+
set: (params: Record<string, string>) => void;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=url-params.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url-params.d.ts","sourceRoot":"","sources":["../../../src/utils/url-params.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"url-params.d.ts","sourceRoot":"","sources":["../../../src/utils/url-params.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,kBAAkB,CAAC;;eAuC5D,MAAM;kBASH,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAoB5C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-url.d.ts","sourceRoot":"","sources":["../../../src/utils/validate-url.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"validate-url.d.ts","sourceRoot":"","sources":["../../../src/utils/validate-url.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,QAAS,MAAM,KAAG,OAOxC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { PassflowPasswordPolicySettings } from '@passflow/core';
|
|
2
|
+
import * as Yup from 'yup';
|
|
3
|
+
export declare const emailRegex: RegExp;
|
|
4
|
+
export declare const phoneNumberRegex: RegExp;
|
|
5
|
+
export declare const passwordValidation: (passwordPolicy: PassflowPasswordPolicySettings | null) => Yup.StringSchema<string, Yup.AnyObject, undefined, "">;
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/validation-schemas/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/validation-schemas/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAE3B,eAAO,MAAM,UAAU,QACmI,CAAC;AAC3J,eAAO,MAAM,gBAAgB,QACyF,CAAC;AAEvH,eAAO,MAAM,kBAAkB,mBAAoB,8BAA8B,GAAG,IAAI,2DA2ClF,CAAC"}
|
package/dist/style.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
@import "https://fonts.googleapis.com/css2?family=Gasoek+One&family=Inter:opsz,wght@14..32,100..900&display=swap";[class*=passflow-]{box-sizing:border-box;font:inherit;vertical-align:baseline;border:0;margin:0;padding:0}.passflow-article,.passflow-aside,.passflow-details,.passflow-figcaption,.passflow-figure,.passflow-footer,.passflow-header,.passflow-hgroup,.passflow-menu,.passflow-nav,.passflow-section{display:block}html{scroll-behavior:smooth;font-size:16px}body{text-rendering:optimizespeed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;line-height:1.5}.passflow-list{list-style:none}.passflow-link{color:inherit;text-decoration:none}.passflow-canvas,.passflow-image,.passflow-picture,.passflow-svg,.passflow-video{max-width:100%;display:block}.passflow-button{background:0 0;border:none;padding:0}.passflow-button,.passflow-input,.passflow-select,.passflow-textarea{color:inherit;font:inherit}.passflow-table{border-collapse:collapse;border-spacing:0}@media (prefers-reduced-motion:reduce){[class*=passflow-]{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body,html{box-sizing:border-box;margin:0;padding:0}:root{--passflow-primary:#0c59dd;--passflow-primary-dark:#0a47b1;--passflow-warning:#b42318;--passflow-warning-dark:#8f1f17;--passflow-dark:#1e1e1e;--passflow-dark-two:#2e2e2e;--passflow-dark-three:#3e3e3e;--passflow-white:#fff;--passflow-grey-one:#5f6368;--passflow-grey-two:#bfbfbf;--passflow-grey-three:#e9eaf0;--passflow-grey-four:#f3f5f7;--passflow-background:#f8f9fb;--passflow-success:#067647;--passflow-primary-color:var(--passflow-primary);--passflow-text-color:var(--passflow-dark);--passflow-secondary-text-color:var(--passflow-grey-one);--passflow-button-text-color:var(--passflow-white);--passflow-background-color:var(--passflow-white);--passflow-background-image:url();--passflow-card-color:var(--passflow-white);--passflow-branding-background-color:var(--passflow-background);--passflow-input-background-color:var(--passflow-grey-four);--passflow-input-border-color:var(--passflow-grey-four);--passflow-passkey-button-text-color:var(--passflow-white);--passflow-passkey-button-background-color:var(--passflow-dark);--passflow-divider-color:var(--passflow-grey-three);--passflow-federated_button_background_color:var(--passflow-background);--passflow-federated_button_text_color:var(--passflow-dark);--passflow-focus-color:var(--passflow-primary-color);--passflow-link-color:var(--passflow-primary-color);--passflow-font-family:"Inter",sans-serif;--passflow-h1:2rem;--passflow-h2:1.5rem;--passflow-body-1:1rem;--passflow-body-2:13px;--passflow-caption:12px;--passflow-normal:400;--passflow-medium:500;--passflow-semibold:600;--passflow-bold:700;--passflow-spacing-1:4px;--passflow-spacing-2:8px;--passflow-spacing-3:12px;--passflow-spacing-4:16px;--passflow-spacing-5:20px;--passflow-spacing-6:24px;--passflow-radius:4px;--passflow-surface-width:384px}.passflow-heading{color:var(--passflow-text-color);font-size:var(--passflow-h1);margin-bottom:var(--passflow-spacing-4);font-weight:600}.passflow-text{color:var(--passflow-text-color);font-size:var(--passflow-body-1);line-height:1.5}.passflow-secondary-text{color:var(--passflow-secondary-text-color);font-size:var(--passflow-body-2)}.passflow-secondary-font{font-family:Gasoek One,sans-serif;font-style:normal}.passflow-button{cursor:pointer;font-size:var(--passflow-body-2);padding:var(--passflow-spacing-3) var(--passflow-spacing-6);border-radius:4px;justify-content:center;align-items:center;font-weight:500;transition:all .2s;display:inline-flex;position:relative;overflow:hidden}.passflow-button:focus-visible{outline:2px solid var(--passflow-focus-color);outline-offset:2px}.passflow-button--primary{background-color:var(--passflow-primary-color);color:var(--passflow-button-text-color);box-shadow:0 3px 15px #0c59dd59}.passflow-button--primary:focus-visible,.passflow-button--primary:hover{background-color:var(--passflow-primary-color)}.passflow-button--secondary{background-color:var(--passflow-white);border:1px solid var(--passflow-primary-color);color:var(--passflow-primary-color)}.passflow-button--secondary:focus-visible,.passflow-button--secondary:hover{border-color:var(--passflow-primary-color);color:var(--passflow-primary-color)}.passflow-button--outlined{background-color:var(--passflow-white);border:1px solid var(--passflow-grey-four);color:var(--passflow-dark)}.passflow-button--outlined:focus-visible,.passflow-button--outlined:hover{background-color:var(--passflow-grey-four)}.passflow-button--warning{background-color:var(--passflow-warning);color:var(--passflow-button-text-color);box-shadow:0 5px 9px #d85d5d40}.passflow-button--warning:focus-visible,.passflow-button--warning:hover{background-color:var(--passflow-warning-dark)}.passflow-button--clean{background-color:var(--passflow-white);border:none}.passflow-button--provider{background-color:var(--passflow-federated_button_background_color)}.passflow-button--provider:focus-visible,.passflow-button--provider:hover{background-color:var(--passflow-grey-four)}.passflow-button--dark{background-color:var(--passflow-dark-three);color:var(--passflow-button-text-color);box-shadow:0 3px 15px #1e1e1e59}.passflow-button--dark:focus-visible,.passflow-button--dark:hover{opacity:.9}.passflow-button--small{max-width:28px;height:28px;padding:var(--passflow-spacing-1);width:100%}.passflow-button--medium{font-size:var(--passflow-body-2);max-width:66px;height:32px;padding:7px var(--passflow-spacing-3);width:100%}.passflow-button--big{font-size:var(--passflow-body-2);min-width:40px;max-width:336px;height:48px;padding:15px var(--passflow-spacing-2);width:100%;font-weight:600}.passflow-button--dark:disabled,.passflow-button--primary:disabled,.passflow-button--warning:disabled{background-color:var(--passflow-grey-two);box-shadow:none;cursor:not-allowed}.passflow-button--outlined:disabled,.passflow-button--secondary:disabled{background-color:var(--passflow-white);border-color:var(--passflow-grey-four);color:var(--passflow-grey-two);cursor:not-allowed}.passflow-button--clean:disabled{cursor:not-allowed;opacity:.5;background-color:#0000}.passflow-button--with-icon{gap:var(--passflow-spacing-2)}.passflow-button--as-icon{width:max-content;height:max-content;padding:0}.passflow-button--option{background-color:var(--passflow-white);border:1px solid var(--passflow-grey-four);color:var(--passflow-text-color);align-items:flex-start;gap:var(--passflow-spacing-1);max-width:none;height:auto;padding:var(--passflow-spacing-3);text-align:left;flex-direction:column;width:100%}.passflow-button--option:focus-visible,.passflow-button--option:hover{background-color:var(--passflow-grey-four)}.passflow-button--option[aria-pressed=true]{border-color:var(--passflow-primary-color)}.passflow-button--option:disabled{background-color:var(--passflow-white);border-color:var(--passflow-grey-four);cursor:not-allowed}.passflow-button__option-label{color:var(--passflow-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium)}.passflow-button__option-hint{color:var(--passflow-secondary-text-color);font-size:var(--passflow-caption);font-weight:var(--passflow-normal)}.passflow-button--option:disabled .passflow-button__option-hint,.passflow-button--option:disabled .passflow-button__option-label{color:var(--passflow-grey-two)}.passflow-button--link{color:var(--passflow-link-color);font-size:inherit;font-weight:var(--passflow-semibold);height:auto;line-height:inherit;background-color:#0000;border:none;border-radius:0;width:auto;max-width:none;padding:0;display:inline;overflow:visible}.passflow-button--link:focus-visible,.passflow-button--link:hover{text-decoration:underline}.passflow-button--link:disabled{color:var(--passflow-grey-two);cursor:not-allowed;text-decoration:none}.passflow-button-go-back-error,.passflow-button-passkey,.passflow-button-passwordless,.passflow-button-resend-magic-link,.passflow-button-resend-reset-password,.passflow-button-reset-password,.passflow-button-send-reset-password,.passflow-button-signin,.passflow-button-signup{font-size:var(--passflow-body-2);font-weight:var(--passflow-semibold);margin:0 auto;line-height:18px}.passflow-button-passkey{background-color:var(--passflow-passkey-button-background-color);color:var(--passflow-passkey-button-text-color)}.passflow-button-passwordless--active{border:1px solid var(--passflow-primary-color);color:var(--passflow-primary-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-semibold);background-color:#0000;line-height:18px}.passflow-button-show-country{background-color:var(--passflow-input-background-color);border-radius:4px;gap:4px;width:56px;min-width:56px;margin-left:8px;padding:12px 4px}.passflow-button-display-password{background-color:#0000}.passflow-send-reset-wrapper{flex-direction:column;gap:24px;display:flex}.passflow-button-resend-magic-link,.passflow-button-resend-reset-password{font-weight:var(--passflow-medium);max-width:196px}.passflow-button-go-back-error{font-weight:var(--passflow-medium);width:196px;max-width:100%}.passflow-button-resend-magic-link:hover{background-color:var(--passflow-grey-four)}.passflow-button-timer{background-color:var(--passflow-background-color);font-weight:var(--passflow-semibold);max-width:max-content;padding:3px;display:inline-block}.passflow-button-timer--active{color:var(--passflow-secondary-text-color);opacity:1!important}.passflow-button-timer--inactive{color:var(--passflow-primary-color)}.passflow-field{background-color:var(--passflow-input-background-color);color:var(--passflow-dark);font-size:var(--passflow-body-2);outline:1px solid var(--passflow-input-border-color);min-height:48px;padding:11px var(--passflow-spacing-3);border-radius:4px;justify-content:flex-start;align-items:center;width:100%;display:flex}.passflow-field::placeholder{color:var(--passflow-secondary-text-color)}.passflow-field--focused:focus-visible,.passflow-field-otp--focused:focus-visible{outline:1px solid var(--passflow-primary-color)}.passflow-field--error,.passflow-field-otp--error{outline:1px solid var(--passflow-warning)!important}.passflow-field:disabled{border-color:var(--passflow-input-border-color);color:var(--passflow-secondary-text-color);cursor:not-allowed}.passflow-field-otp,.passflow-field:disabled{background-color:var(--passflow-input-background-color)}.passflow-field-otp{color:var(--passflow-dark);font-size:var(--passflow-body-2);outline:1px solid var(--passflow-input-border-color);text-align:center;border-radius:4px;width:48px;height:48px}.passflow-ripple{background-color:#ffffff4d;border-radius:50%;animation:.6s linear passflow-ripple;position:absolute;transform:scale(0)}@keyframes passflow-ripple{to{opacity:0;transform:scale(4)}}@media (prefers-reduced-motion:reduce){.passflow-ripple{animation:none;display:none}}.passflow-container{max-width:1200px;padding:0 var(--passflow-spacing-4);width:100%;margin:0 auto}.passflow-flex{display:flex}.passflow-flex-col{flex-direction:column}.passflow-items-center{align-items:center}.passflow-justify-center{justify-content:center}.passflow-justify-between{justify-content:space-between}.passflow-mt-4{margin-top:var(--passflow-spacing-4)}.passflow-mb-4{margin-bottom:var(--passflow-spacing-4)}.passflow-gap-4{gap:var(--passflow-spacing-4)}.passflow-form-subscriptions{color:var(--passflow-secondary-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);text-align:center;max-width:384px;margin:-24px auto 0;display:flex}.passflow-field-wrapper{width:100%;position:relative}.passflow-field-container{flex-direction:column;gap:6px;width:100%;display:flex}.passflow-field-label{color:var(--passflow-secondary-text-color);font-size:var(--passflow-caption);font-weight:var(--passflow-medium);line-height:18px}.passflow-field-label--error{color:var(--passflow-warning)}.passflow-field-label-button{background-color:var(--passflow-card-color);color:var(--passflow-link-color);font-size:var(--passflow-caption);width:max-content;max-width:100%;text-decoration:none}.passflow-field-input,.passflow-field-label-button{font-weight:var(--passflow-medium);line-height:18px}.passflow-field-input{background-color:var(--passflow-input-background-color);color:var(--passflow-text-color);font-size:var(--passflow-body-2);outline:1px solid var(--passflow-input-border-color);min-height:48px;padding:11px var(--passflow-spacing-3);border-radius:4px;width:100%}.passflow-field-input--with-icon{padding-right:40px}.passflow-field-icon-button{width:28px;min-width:28px;height:28px;padding:6px;position:absolute;top:50%;right:0;transform:translate(-8px,-50%)}.passflow-field-error{justify-content:center;align-items:center;gap:4px;margin-top:4px;display:flex}.passflow-field-error-text{color:var(--passflow-warning);font-size:var(--passflow-caption);font-weight:var(--passflow-medium)}.passflow-field-phone-wrapper{background-color:var(--passflow-input-background-color);color:var(--passflow-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);outline:1px solid var(--passflow-input-border-color);border-radius:4px;justify-content:flex-start;align-items:center;width:100%;height:48px;display:flex;position:relative}.passflow-field-phone-wrapper--focus{outline:1px solid var(--passflow-primary-color)}.passflow-field-phone-wrapper--error{outline:1px solid var(--passflow-warning)}.passflow-field-phone-wrapper::placeholder{color:var(--passflow-secondary-text-color)}.passflow-field-phone-input{background-color:var(--passflow-input-background-color);color:var(--passflow-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);border-radius:4px;width:100%;height:48px;padding:0 8px}.passflow-field-phone-input:focus-within{outline:none}.passflow-field-country-search-wrapper{z-index:20;padding-left:28px;position:relative}.passflow-field-country-search,.passflow-field-country-search-wrapper{background-color:var(--passflow-input-background-color);border-radius:4px;width:100%}.passflow-field-country-search{color:var(--passflow-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);height:48px;padding:0 8px}.passflow-field-country-search::placeholder{color:var(--passflow-secondary-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);line-height:18px}.passflow-field-country-search:focus-visible{outline:none}.passflow-field-country-search-icon{position:absolute;top:50%;left:12px;transform:translateY(-50%)}.passflow-password-validation{flex-direction:column;gap:4px;margin-top:4px;display:flex}.passflow-password-validation-item{color:var(--passflow-secondary-text-color);font-size:var(--passflow-caption);font-weight:var(--passflow-medium);justify-content:flex-start;align-items:center;gap:4px;display:flex}.passflow-password-validation-item--success{color:var(--passflow-success)}.passflow-dialog-overlay{z-index:40;background-color:#1e1e1e80;position:fixed;inset:0}.passflow-dialog-content{z-index:50;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.passflow-dialog-header{text-align:center;flex-direction:column;gap:6px;display:flex}@media (width>=640px){.passflow-dialog-header{text-align:left}}.passflow-dialog-footer{flex-direction:column-reverse;gap:8px;display:flex}@media (width>=640px){.passflow-dialog-footer{flex-direction:row;justify-content:flex-end}}.passflow-dialog-title{font-size:var(--passflow-h2);font-weight:var(--passflow-semibold);letter-spacing:-.02em;line-height:1}.passflow-dialog-description{color:var(--passflow-secondary-text-color);font-size:var(--passflow-body-2)}.passflow-popover-content{background-color:var(--passflow-white);z-index:10;border-radius:4px;box-shadow:0 5px 20px #0000000d}.passflow-popover-menu{flex-direction:column;align-items:flex-start;gap:4px;width:125px;padding:6px;display:flex}.passflow-popover-menu-item{justify-content:flex-start;gap:6px;width:100%;padding:6px}.passflow-popover-menu-item:hover{background-color:var(--passflow-background)}.passflow-popover-menu-item-text{color:var(--passflow-dark-three);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium)}.passflow-popover-menu-item-text--warning{color:var(--passflow-warning)}.passflow-switch-wrapper{cursor:pointer;align-items:center;gap:12px;display:inline-flex;position:relative}.passflow-switch-label{color:var(--passflow-text-color);font-size:var(--passflow-caption);font-weight:var(--passflow-medium)}.passflow-switch-input{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.passflow-switch-track{background-color:var(--passflow-grey-two);border-radius:9999px;width:28px;height:16px;transition:background-color .2s;position:relative}.passflow-switch-track:after{background-color:var(--passflow-white);content:"";border-radius:50%;width:12px;height:12px;transition:transform .2s;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.passflow-switch-input:focus-visible+.passflow-switch-track{outline:2px solid var(--passflow-focus-color);outline-offset:2px}.passflow-switch-wrapper--disabled{cursor:not-allowed;opacity:.6}.passflow-switch-input:checked+.passflow-switch-track{background-color:var(--passflow-primary-color)}.passflow-switch-input:checked+.passflow-switch-track:after{transform:translate(12px,-50%)}[dir=rtl] .passflow-switch-input:checked+.passflow-switch-track:after{transform:translate(-14px,-50%)}.passflow-icon{background-color:#0000}.passflow-icon--small{width:16px;height:16px}.passflow-icon--medium{width:20px;height:20px}.passflow-icon--big{width:32px;height:32px}.passflow-icon--large{width:44px;height:44px}.passflow-icon--warning{stroke:var(--passflow-warning)}.passflow-icon--white{background-color:var(--passflow-white)}.passflow-icon--success{stroke:var(--passflow-primary-color)}.passflow-verify-otp{flex-direction:column;gap:32px;display:flex}.passflow-verify-otp-container{background-color:var(--passflow-card-color);border-radius:6px;flex-direction:column;gap:56px;padding:24px 24px 56px;display:flex;box-shadow:0 4px 15px #00000017}.passflow-verify-otp-button{background-color:var(--passflow-background);border:none;position:relative}.passflow-verify-otp-button-icon{position:absolute;top:50%;right:12px;transform:translateY(-50%)}.passflow-verify-otp-wrapper{flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex}.passflow-verify-otp-inputs{justify-content:center;align-items:center;gap:10px;display:flex}.passflow-verify-otp-error{justify-content:center;align-items:center;gap:4px;display:flex}.passflow-verify-otp-error-text{color:var(--passflow-warning);font-size:var(--passflow-caption);font-weight:var(--passflow-medium)}.passflow-verify-otp-resend{color:var(--passflow-secondary-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);text-align:center}.passflow-providers-box{flex-flow:wrap;justify-content:center;align-items:center;gap:8px;width:100%;display:flex}.passflow-providers-box--grid{grid-template-columns:repeat(auto-fit,minmax(49px,1fr));justify-content:stretch;align-items:stretch;gap:8px;display:grid}.passflow-provider-item{align-items:center;gap:8px;display:flex}.passflow-provider-text{color:var(--passflow-federated_button_text_color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);text-transform:capitalize}.passflow-ripple-container{position:absolute;inset:0;overflow:hidden}.passflow-ripple-effect{opacity:.6;background-color:currentColor}.passflow-form{flex-direction:column;gap:32px;width:100%;max-width:384px;display:flex}.passflow-form-switch{justify-content:center;align-items:center;width:100%;margin-bottom:-8px;display:flex}.passflow-form-container{background-color:var(--passflow-card-color);border-radius:6px;gap:24px;max-width:384px;padding:24px;box-shadow:0 4px 15px #00000017}.passflow-form-container,.passflow-form-field{flex-direction:column;justify-content:flex-start;align-items:flex-start;width:100%;display:flex}.passflow-form-field{gap:6px}.passflow-form-field__header{justify-content:space-between;align-items:center;width:100%;max-height:18px;display:flex}.passflow-form-error{justify-content:center;align-items:center;gap:4px;margin-top:4px;display:flex}.passflow-form-error-text{color:var(--passflow-warning);font-size:var(--passflow-caption);font-weight:var(--passflow-medium)}.passflow-form-actions{justify-content:center;align-items:center;width:100%;max-width:336px;margin:0 auto;display:flex}.passflow-form-actions--top-space{margin-top:-8px}.passflow-form-divider{justify-content:space-between;align-items:center;width:100%;padding:9px 0;display:flex;position:relative}.passflow-form-divider__line-left,.passflow-form-divider__line-right{background-color:var(--passflow-divider-color);width:105px;height:1px}.passflow-form-divider__text{color:var(--passflow-secondary-text-color);font-size:var(--passflow-caption);font-weight:var(--passflow-medium);background-color:#0000;padding:0 15px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.passflow-form-providers{flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:24px;width:100%;max-width:336px;margin:0 auto;display:flex}.passflow-link{color:var(--passflow-link-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-semibold);line-height:18px}.passflow-dont-have-account,.passflow-have-account,.passflow-remember-password{color:var(--passflow-secondary-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);text-align:center;line-height:18px}.passflow-country-search-wrapper{background-color:var(--passflow-card-color);scrollbar-color:var(--passflow-secondary-text-color) transparent;scrollbar-width:thin;z-index:10;border-bottom-right-radius:4px;border-bottom-left-radius:4px;width:100%;max-height:181px;position:absolute;top:2px;left:0;overflow-y:auto;transform:translateY(48px);box-shadow:0 4px 15px #00000017}.passflow-country-search-wrapper--without-preferred{max-height:170px}.passflow-country-search-wrapper::-webkit-scrollbar{width:6px}.passflow-country-search-wrapper::-webkit-scrollbar-track{background:0 0}.passflow-country-search-wrapper::-webkit-scrollbar-thumb{background-color:var(--passflow-secondary-text-color);border-radius:3px}.passflow-country-search-wrapper--show{opacity:1;visibility:visible;transition:opacity .2s,visibility .2s;display:block}.passflow-country-search-wrapper--hidden{opacity:0;visibility:hidden;display:none}.passflow-country-search-sticky-bottom,.passflow-country-search-sticky-top{background-color:var(--passflow-card-color);z-index:10;width:100%;height:10px;position:sticky;left:0;overflow-x:hidden}.passflow-country-search-sticky-top{top:0}.passflow-country-search-sticky-bottom{bottom:0}.passflow-country-search-item{background-color:var(--passflow-card-color);cursor:pointer;justify-content:flex-start;align-items:center;width:100%;max-height:32px;padding:7px 12px;transition:background-color .2s;display:flex}.passflow-country-search-item:focus,.passflow-country-search-item:hover{background-color:var(--passflow-background)}.passflow-country-search-flag{width:24px;height:18px}.passflow-country-search-name{color:var(--passflow-text-color);margin-left:8px}.passflow-country-search-code,.passflow-country-search-name{font-size:var(--passflow-body-2);font-weight:var(--passflow-medium)}.passflow-country-search-code{color:var(--passflow-secondary-text-color);margin-left:auto;transition:color .2s}.passflow-country-search-item:hover .passflow-country-search-code{color:var(--passflow-text-color)}.passflow-country-search-divider{border-bottom:1px solid var(--passflow-divider-color);font-size:var(--passflow-caption);margin:12px 12px 6px;padding-bottom:6px}.passflow-country-search-divider,.passflow-country-search-no-matches{color:var(--passflow-secondary-text-color);font-weight:var(--passflow-medium)}.passflow-country-search-no-matches{font-size:var(--passflow-body-2);text-align:center;width:100%;margin:0 auto;padding:15px;display:block}.passflow-forgot-password-success-wrapper{flex-direction:column;gap:24px;width:100%;display:flex}.passflow-forgot-password-success-container{flex-direction:column;gap:32px;width:100%;max-width:336px;margin-top:-8px;display:flex}.passflow-forgot-password-success-text{color:var(--passflow-secondary-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);text-align:center}.passflow-forgot-password-success-text--strong{font-weight:var(--passflow-bold)}.passflow-verify-challenge-magic-link-wrapper{flex-direction:column;width:100%;margin:0 auto;display:flex}.passflow-verify-challenge-magic-link-container{flex-direction:column;gap:32px;width:100%;max-width:336px;margin-top:-24px;display:flex}.passflow-verify-challenge-magic-link-text{color:var(--passflow-secondary-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);text-align:center}.passflow-verify-challenge-magic-link-text--strong{font-weight:var(--passflow-bold)}.passflow-verify-challenge-success-wrapper{gap:32px}.passflow-verify-challenge-success-container,.passflow-verify-challenge-success-wrapper{flex-direction:column;justify-content:flex-start;align-items:center;width:100%;display:flex}.passflow-verify-challenge-success-container{gap:8px}.passflow-verify-challenge-success-text{color:var(--passflow-text-color);font-size:var(--passflow-h2);font-weight:var(--passflow-bold);text-align:center}.passflow-reset-password-text,.passflow-verify-challenge-success-text-secondary{color:var(--passflow-secondary-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);text-align:center}.passflow-reset-password-text{margin-top:-32px;display:block}.passflow-form-error--critical,.passflow-form-error--persistent{text-align:center;background-color:#fef2f2;border:1px solid #fecaca;border-radius:12px;flex-direction:column;align-items:center;gap:12px;margin-top:16px;padding:20px 24px;display:flex}.passflow-form-error--critical .icon-warning,.passflow-form-error--persistent .icon-warning{color:#dc2626;flex-shrink:0;width:32px;height:32px}.passflow-form-error-content{flex-direction:column;align-items:center;gap:16px;width:100%;display:flex}.passflow-form-error--critical .passflow-form-error-text,.passflow-form-error--persistent .passflow-form-error-text{color:#991b1b;margin:0;font-size:14px;line-height:1.5}.passflow-form-error-actions{flex-direction:column;justify-content:center;align-items:center;gap:12px;width:100%;display:flex}.passflow-button-setup-2fa{white-space:nowrap;min-width:140px}.passflow-form-info{background-color:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;align-items:flex-start;gap:12px;margin-top:16px;padding:16px;display:flex}.passflow-form-info .icon-info{color:#2563eb;flex-shrink:0;width:20px;height:20px;margin-top:2px}.passflow-form-info-text{color:#1e40af;font-size:14px;line-height:1.5}.passflow-field--disabled,.passflow-field-otp--disabled{cursor:not-allowed;opacity:.5;pointer-events:none}.passflow-button-back-to-signin{white-space:nowrap;min-width:140px}.icon-info{color:#2563eb}.passflow-country-flag{color:var(--passflow-secondary-text-color);font-size:9px;font-weight:var(--passflow-bold);text-transform:uppercase;background-repeat:no-repeat;background-size:408px 384px;border-radius:2px;flex:none;justify-content:center;align-items:center;width:24px;height:18px;line-height:1;display:inline-flex;overflow:hidden}.passflow-country-flag--fallback{background-color:var(--passflow-input-background-color);outline:1px solid var(--passflow-input-border-color)}.icon-warning{filter:brightness(0)saturate()invert(17%)sepia(98%)saturate(3037%)hue-rotate(354deg)brightness(87%)contrast(90%)}.icon-white{filter:brightness(0)saturate()invert()sepia(2%)saturate(7%)hue-rotate(80deg)brightness(103%)contrast()}.passflow-icon--match-text{-webkit-mask:var(--passflow-icon-mask) center /contain no-repeat;mask:var(--passflow-icon-mask) center /contain no-repeat;background-color:currentColor;flex:none;display:inline-block}.passflow-continuing-status{color:var(--passflow-secondary-text-color);font-family:var(--passflow-font-family);font-size:var(--passflow-body-1);justify-content:center;align-items:center;min-height:100vh;display:flex}.react-international-phone-country-selector{position:relative}.react-international-phone-country-selector-button{appearance:button;background-color:var(--react-international-phone-country-selector-background-color,var(--react-international-phone-background-color,#fff));border:1px solid var(--react-international-phone-country-selector-border-color,var(--react-international-phone-border-color,#dcdcdc));box-sizing:border-box;cursor:pointer;height:var(--react-international-phone-height,36px);text-transform:none;user-select:none;justify-content:center;align-items:center;margin:0;padding:0;display:flex}.react-international-phone-country-selector-button:hover{background-color:var(--react-international-phone-country-selector-background-color-hover,#f5f5f5)}.react-international-phone-country-selector-button--hide-dropdown{cursor:auto}.react-international-phone-country-selector-button--hide-dropdown:hover{background-color:#0000}.react-international-phone-country-selector-button__button-content{justify-content:center;align-items:center;display:flex}.react-international-phone-country-selector-button__flag-emoji{margin:0 4px}.react-international-phone-country-selector-button__flag-emoji--disabled{opacity:.75}.react-international-phone-country-selector-button__dropdown-arrow{border-left:var(--react-international-phone-country-selector-arrow-size,4px) solid transparent;border-right:var(--react-international-phone-country-selector-arrow-size,4px) solid transparent;border-top:var(--react-international-phone-country-selector-arrow-size,4px) solid var(--react-international-phone-country-selector-arrow-color,#777);margin-right:4px;transition:all .1s ease-out}.react-international-phone-country-selector-button__dropdown-arrow--active{transform:rotateX(180deg)}.react-international-phone-country-selector-button__dropdown-arrow--disabled{border-top-color:var(--react-international-phone-disabled-country-selector-arrow-color,#999)}.react-international-phone-country-selector-button--disabled{cursor:auto}.react-international-phone-country-selector-button--disabled,.react-international-phone-country-selector-button--disabled:hover{background-color:var(--react-international-phone-disabled-country-selector-background-color,var(--react-international-phone-disabled-background-color,#f5f5f5))}.react-international-phone-flag-emoji{box-sizing:border-box;height:var(--react-international-phone-flag-height,24px);width:var(--react-international-phone-flag-width,24px)}.react-international-phone-country-selector-dropdown{background-color:var(--react-international-phone-dropdown-item-background-color,var(--react-international-phone-background-color,#fff));box-shadow:var(--react-international-phone-dropdown-shadow,2px 2px 16px #00000040);color:var(--react-international-phone-dropdown-item-text-color,var(--react-international-phone-text-color,#222));left:var(--react-international-phone-dropdown-left,0);max-height:200px;top:var(--react-international-phone-dropdown-top,44px);z-index:1;flex-direction:column;width:300px;margin:0;padding:4px 0;list-style:none;display:flex;position:absolute;overflow-y:scroll}.react-international-phone-country-selector-dropdown__preferred-list-divider{background:var(--react-international-phone-dropdown-preferred-list-divider-color,var(--react-international-phone-border-color,#dcdcdc));height:1px;margin:var(--react-international-phone-dropdown-preferred-list-divider-margin,0);border:none}.react-international-phone-country-selector-dropdown__list-item{box-sizing:border-box;min-height:var(--react-international-phone-dropdown-item-height,28px);align-items:center;padding:2px 8px;display:flex}.react-international-phone-country-selector-dropdown__list-item-flag-emoji{margin-right:8px}.react-international-phone-country-selector-dropdown__list-item-country-name{font-size:var(--react-international-phone-dropdown-item-font-size,14px);text-overflow:ellipsis;white-space:nowrap;margin-right:8px;overflow:hidden}.react-international-phone-country-selector-dropdown__list-item-dial-code{color:var(--react-international-phone-dropdown-item-dial-code-color,gray);font-size:var(--react-international-phone-dropdown-item-font-size,14px)}.react-international-phone-country-selector-dropdown__list-item:hover{background-color:var(--react-international-phone-selected-dropdown-item-background-color,var(--react-international-phone-selected-dropdown-item-background-color,#f5f5f5));cursor:pointer}.react-international-phone-country-selector-dropdown__list-item--focused,.react-international-phone-country-selector-dropdown__list-item--selected{background-color:var(--react-international-phone-selected-dropdown-item-background-color,#f5f5f5);color:var(--react-international-phone-selected-dropdown-item-text-color,var(--react-international-phone-text-color,#222))}.react-international-phone-country-selector-dropdown__list-item--focused .react-international-phone-country-selector-dropdown__list-item-dial-code,.react-international-phone-country-selector-dropdown__list-item--selected .react-international-phone-country-selector-dropdown__list-item-dial-code{color:var(--react-international-phone-selected-dropdown-item-dial-code-color,var(--react-international-phone-dropdown-item-dial-code-color,gray))}.react-international-phone-country-selector-dropdown__list-item--focused{background-color:var(--react-international-phone-selected-dropdown-item-background-color,var(--react-international-phone-selected-dropdown-item-background-color,#f5f5f5))}.react-international-phone-dial-code-preview{background-color:var(--react-international-phone-dial-code-preview-background-color,var(--react-international-phone-background-color,#fff));border:1px solid var(--react-international-phone-dial-code-preview-border-color,var(--react-international-phone-border-color,#dcdcdc));color:var(--react-international-phone-dial-code-preview-text-color,var(--react-international-phone-text-color,#222));font-size:var(--react-international-phone-dial-code-preview-font-size,var(--react-international-phone-font-size,13px));justify-content:center;align-items:center;margin-right:-1px;padding:0 8px;display:flex}.react-international-phone-dial-code-preview--disabled{background-color:var(--react-international-phone-dial-code-preview-disabled-background-color,var(--react-international-phone-disabled-background-color,#f5f5f5));color:var(--react-international-phone-dial-code-preview-disabled-text-color,var(--react-international-phone-disabled-text-color,#666))}.react-international-phone-input-container{display:flex}.react-international-phone-input-container .react-international-phone-country-selector-button{border-radius:var(--react-international-phone-border-radius,4px);border-top-right-radius:0;border-bottom-right-radius:0;margin-right:-1px}.react-international-phone-input-container .react-international-phone-input{background-color:var(--react-international-phone-background-color,#fff);border:1px solid var(--react-international-phone-border-color,#dcdcdc);border-radius:var(--react-international-phone-border-radius,4px);box-sizing:border-box;color:var(--react-international-phone-text-color,#222);font-family:inherit;font-size:var(--react-international-phone-font-size,13px);height:var(--react-international-phone-height,36px);border-top-left-radius:0;border-bottom-left-radius:0;margin:0;padding:0 8px;overflow:visible}.react-international-phone-input-container .react-international-phone-input:focus{outline:none}.react-international-phone-input-container .react-international-phone-input--disabled{background-color:var(--react-international-phone-disabled-background-color,#f5f5f5);color:var(--react-international-phone-disabled-text-color,#666)}.passflow-spinner{--passflow-spinner-diameter:26px;--passflow-spinner-stroke:3px;border:var(--passflow-spinner-stroke) solid var(--passflow-grey-three);border-top-color:var(--passflow-primary-color);height:var(--passflow-spinner-diameter);width:var(--passflow-spinner-diameter);border-radius:50%;flex:none;animation:.8s linear infinite passflow-spinner-spin}.passflow-spinner--small{--passflow-spinner-diameter:18px;--passflow-spinner-stroke:2px}@keyframes passflow-spinner-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.passflow-spinner{animation-duration:3s}}#passflow-wrapper{box-sizing:border-box;-webkit-font-smoothing:antialiased;font-family:Inter,sans-serif;overflow-x:hidden}#passflow-wrapper,.passflow-wrapper{width:100%;min-height:100dvh}.passflow-wrapper{background-color:var(--passflow-background-color);background-image:var(--passflow-background-image);color:var(--passflow-text-color);background-position:50%;background-repeat:no-repeat;background-size:cover;flex-direction:column;display:flex}.passflow-branding{background-color:var(--passflow-branding-background-color);border-radius:4px;flex:none;justify-content:center;align-self:flex-end;align-items:center;gap:4px;margin:0 24px 24px;padding:7px 12px;display:flex}.passflow-branding-text{color:var(--passflow-secondary-text-color);font-size:11px;font-weight:var(--passflow-bold);line-height:18px}.passflow-branding-text-secondary{font-weight:var(--passflow-normal)}.passflow-form-main-wrapper{border-radius:6px;flex:1 0 auto;justify-content:safe center;gap:32px;padding:32px 24px}.passflow-form-main-container,.passflow-form-main-wrapper{flex-direction:column;align-items:center;width:100%;display:flex}.passflow-form-main-container{justify-content:center;gap:24px;max-width:384px;margin:0 auto}.passflow-form-header{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.passflow-form-title{color:var(--passflow-text-color);font-size:var(--passflow-h2);font-weight:var(--passflow-bold)}.passflow-form-subtitle{color:var(--passflow-secondary-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);text-align:center}.passflow-form-main-container-logo{object-fit:contain;object-position:center;border-radius:8px;width:auto;max-width:min(160px,100%);height:auto;max-height:44px}.passflow-error-container{gap:32px;margin-top:-8px}.passflow-error-container,.passflow-error-container-text-wrapper{flex-direction:column;justify-content:start;align-items:center;display:flex}.passflow-error-container-text-wrapper{gap:8px}.passflow-error-container-text{color:var(--passflow-warning);font-size:var(--passflow-h2);font-weight:var(--passflow-bold);text-align:center}.passflow-error-container-text-secondary{color:var(--passflow-secondary-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);text-align:center}.icon-success{filter:brightness(0)saturate()invert(35%)sepia(38%)saturate(1173%)hue-rotate(106deg)brightness(90%)contrast(95%)}.passflow-login-screen-actions{gap:var(--passflow-spacing-4);max-width:336px;margin:0 auto}.passflow-login-screen-actions,.passflow-login-screen-notice{flex-direction:column;align-items:center;width:100%;display:flex}.passflow-login-screen-notice{gap:var(--passflow-spacing-3);max-width:384px}.passflow-login-screen-code{background-color:var(--passflow-input-background-color);box-sizing:border-box;color:var(--passflow-text-color);font-size:var(--passflow-h1);font-weight:var(--passflow-bold);padding:var(--passflow-spacing-4);user-select:all;border-radius:6px;width:100%}.passflow-login-screen-code,.passflow-login-screen-code-input{letter-spacing:.12em;text-align:center;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace}.passflow-login-screen-code-input{font-size:var(--passflow-body-1);text-transform:uppercase}.passflow-login-screen-text{color:var(--passflow-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-normal);line-height:1.5}.passflow-login-screen-centered-text{text-align:center}.passflow-login-screen-centered{text-align:center;align-items:center}.passflow-login-screen-hint{color:var(--passflow-secondary-text-color);font-size:var(--passflow-caption);font-weight:var(--passflow-medium);text-align:center;line-height:1.5}.passflow-login-screen-app-name{color:var(--passflow-text-color);font-weight:var(--passflow-semibold)}.passflow-login-screen-success{align-items:center;gap:var(--passflow-spacing-1);justify-content:center;display:flex}.passflow-login-screen-success-text{color:var(--passflow-success);font-size:var(--passflow-caption);font-weight:var(--passflow-medium)}.passflow-login-screen-spinner{border:3px solid var(--passflow-grey-three);border-top-color:var(--passflow-primary-color);border-radius:50%;width:26px;height:26px;animation:.8s linear infinite passflow-login-screen-spin}.passflow-login-screen-spinner--small{border-width:2px;width:18px;height:18px}@keyframes passflow-login-screen-spin{to{transform:rotate(1turn)}}@media (width<=480px){.passflow-form-main-wrapper{padding:24px 16px}.passflow-branding{align-self:center;margin:0 16px 16px}}@media (prefers-reduced-motion:reduce){.passflow-login-screen-spinner{animation-duration:3s}}.passflow-login-screen-status{align-items:center;gap:var(--passflow-spacing-3);flex-direction:column;width:100%;display:flex}.passflow-consent-scopes{gap:var(--passflow-spacing-2);flex-direction:column;width:100%;max-width:384px;margin:0 auto;padding:0;list-style:none;display:flex}.passflow-consent-scope{background-color:var(--passflow-card-color);border:1px solid var(--passflow-divider-color);box-sizing:border-box;gap:var(--passflow-spacing-1);padding:var(--passflow-spacing-3) var(--passflow-spacing-4);text-align:left;border-radius:6px;flex-direction:column;display:flex}.passflow-consent-scope-description{color:var(--passflow-secondary-text-color);font-size:var(--passflow-caption);font-weight:var(--passflow-normal);margin:0;line-height:1.5}.passflow-consent-actions{gap:var(--passflow-spacing-2);flex-direction:column;width:100%;max-width:336px;margin:0 auto;display:flex}.passflow-upgrade-dialog{background-color:var(--passflow-card-color);border-radius:var(--passflow-radius);box-sizing:border-box;color:var(--passflow-text-color);font-family:var(--passflow-font-family);gap:var(--passflow-spacing-6);max-height:calc(100dvh - var(--passflow-spacing-6)*2);padding:var(--passflow-spacing-6);width:min(var(--passflow-surface-width),calc(100vw - var(--passflow-spacing-6)*2));flex-direction:column;display:flex;overflow-y:auto}.passflow-upgrade-dialog__header{gap:var(--passflow-spacing-2);text-align:left;flex-direction:column;display:flex}.passflow-upgrade-dialog__form,.passflow-upgrade-dialog__status{gap:var(--passflow-spacing-4);flex-direction:column;width:100%;display:flex}.passflow-upgrade-dialog__factor{background-color:var(--passflow-input-background-color);border-radius:var(--passflow-radius);gap:var(--passflow-spacing-1);padding:var(--passflow-spacing-3);flex-direction:column;display:flex}.passflow-upgrade-dialog__factor-label{color:var(--passflow-text-color);font-size:var(--passflow-body-1);font-weight:var(--passflow-semibold)}.passflow-upgrade-dialog__factor-hint,.passflow-upgrade-dialog__status-detail{color:var(--passflow-secondary-text-color);font-size:var(--passflow-caption);font-weight:var(--passflow-normal);margin:0}.passflow-upgrade-dialog__actions,.passflow-upgrade-dialog__alternatives,.passflow-upgrade-dialog__field{gap:var(--passflow-spacing-2);flex-direction:column;width:100%;display:flex}.passflow-upgrade-dialog__alternatives{margin:0;padding:0;list-style:none}.passflow-upgrade-dialog__alternative{width:100%}.passflow-upgrade-dialog__status-head{align-items:center;gap:var(--passflow-spacing-2);display:flex}.passflow-upgrade-dialog__status-message{font-size:var(--passflow-body-1);font-weight:var(--passflow-medium)}.passflow-upgrade-dialog__status-head--success .passflow-upgrade-dialog__status-message{color:var(--passflow-success)}.passflow-upgrade-dialog__status-head--problem .passflow-upgrade-dialog__status-message{color:var(--passflow-warning)}.passflow-upgrade-dialog__status-head--neutral .passflow-upgrade-dialog__status-message,.passflow-upgrade-dialog__status-head--working .passflow-upgrade-dialog__status-message{color:var(--passflow-text-color)}.passflow-upgrade-dialog__bars{background-color:var(--passflow-input-background-color);border-radius:var(--passflow-radius);gap:var(--passflow-spacing-1);padding:var(--passflow-spacing-3);flex-direction:column;display:flex}.passflow-upgrade-dialog__bar{font-size:var(--passflow-caption);gap:var(--passflow-spacing-3);justify-content:space-between;display:flex}.passflow-upgrade-dialog__bar-term{color:var(--passflow-secondary-text-color);font-weight:var(--passflow-medium)}.passflow-upgrade-dialog__bar-value{color:var(--passflow-text-color);font-weight:var(--passflow-semibold)}
|
|
1
|
+
@import "https://fonts.googleapis.com/css2?family=Gasoek+One&family=Inter:opsz,wght@14..32,100..900&display=swap";[class*=passflow-]{box-sizing:border-box;font:inherit;vertical-align:baseline;border:0;margin:0;padding:0}.passflow-article,.passflow-aside,.passflow-details,.passflow-figcaption,.passflow-figure,.passflow-footer,.passflow-header,.passflow-hgroup,.passflow-menu,.passflow-nav,.passflow-section{display:block}html{scroll-behavior:smooth;font-size:16px}body{text-rendering:optimizespeed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;line-height:1.5}.passflow-list{list-style:none}.passflow-link{color:inherit;text-decoration:none}.passflow-canvas,.passflow-image,.passflow-picture,.passflow-svg,.passflow-video{max-width:100%;display:block}.passflow-button{background:0 0;border:none;padding:0}.passflow-button,.passflow-input,.passflow-select,.passflow-textarea{font:inherit;color:inherit}.passflow-table{border-collapse:collapse;border-spacing:0}@media (prefers-reduced-motion:reduce){[class*=passflow-]{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body,html{box-sizing:border-box;margin:0;padding:0}:root{--passflow-primary:#0c59dd;--passflow-primary-dark:#0a47b1;--passflow-warning:#b42318;--passflow-warning-dark:#8f1f17;--passflow-dark:#1e1e1e;--passflow-dark-two:#2e2e2e;--passflow-dark-three:#3e3e3e;--passflow-white:#fff;--passflow-grey-one:#5f6368;--passflow-grey-two:#bfbfbf;--passflow-grey-three:#e9eaf0;--passflow-grey-four:#f3f5f7;--passflow-background:#f8f9fb;--passflow-success:#067647;--passflow-primary-color:var(--passflow-primary);--passflow-text-color:var(--passflow-dark);--passflow-secondary-text-color:var(--passflow-grey-one);--passflow-button-text-color:var(--passflow-white);--passflow-background-color:var(--passflow-white);--passflow-background-image:url();--passflow-card-color:var(--passflow-white);--passflow-branding-background-color:var(--passflow-background);--passflow-input-background-color:var(--passflow-grey-four);--passflow-input-border-color:var(--passflow-grey-four);--passflow-passkey-button-text-color:var(--passflow-white);--passflow-passkey-button-background-color:var(--passflow-dark);--passflow-divider-color:var(--passflow-grey-three);--passflow-federated_button_background_color:var(--passflow-background);--passflow-federated_button_text_color:var(--passflow-dark);--passflow-focus-color:var(--passflow-primary-color);--passflow-link-color:var(--passflow-primary-color);--passflow-font-family:"Inter", sans-serif;--passflow-h1:2rem;--passflow-h2:1.5rem;--passflow-body-1:1rem;--passflow-body-2:13px;--passflow-caption:12px;--passflow-normal:400;--passflow-medium:500;--passflow-semibold:600;--passflow-bold:700;--passflow-spacing-1:4px;--passflow-spacing-2:8px;--passflow-spacing-3:12px;--passflow-spacing-4:16px;--passflow-spacing-5:20px;--passflow-spacing-6:24px;--passflow-radius:4px;--passflow-surface-width:384px}.passflow-heading{font-size:var(--passflow-h1);color:var(--passflow-text-color);margin-bottom:var(--passflow-spacing-4);font-weight:600}.passflow-text{color:var(--passflow-text-color);font-size:var(--passflow-body-1);line-height:1.5}.passflow-secondary-text{color:var(--passflow-secondary-text-color);font-size:var(--passflow-body-2)}.passflow-secondary-font{font-family:Gasoek One,sans-serif;font-style:normal}.passflow-button{padding:var(--passflow-spacing-3) var(--passflow-spacing-6);font-size:var(--passflow-body-2);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;font-weight:500;transition:all .2s;display:inline-flex;position:relative;overflow:hidden}.passflow-button:focus-visible{outline:2px solid var(--passflow-focus-color);outline-offset:2px}.passflow-button--primary{color:var(--passflow-button-text-color);background-color:var(--passflow-primary-color);box-shadow:0 3px 15px #0c59dd59}.passflow-button--primary:focus-visible,.passflow-button--primary:hover{background-color:var(--passflow-primary-color)}.passflow-button--secondary{background-color:var(--passflow-white);border:1px solid var(--passflow-primary-color);color:var(--passflow-primary-color)}.passflow-button--secondary:focus-visible,.passflow-button--secondary:hover{border-color:var(--passflow-primary-color);color:var(--passflow-primary-color)}.passflow-button--outlined{background-color:var(--passflow-white);border:1px solid var(--passflow-grey-four);color:var(--passflow-dark)}.passflow-button--outlined:focus-visible,.passflow-button--outlined:hover{background-color:var(--passflow-grey-four)}.passflow-button--warning{background-color:var(--passflow-warning);color:var(--passflow-button-text-color);box-shadow:0 5px 9px #d85d5d40}.passflow-button--warning:focus-visible,.passflow-button--warning:hover{background-color:var(--passflow-warning-dark)}.passflow-button--clean{background-color:var(--passflow-white);border:none}.passflow-button--provider{background-color:var(--passflow-federated_button_background_color)}.passflow-button--provider:focus-visible,.passflow-button--provider:hover{background-color:var(--passflow-grey-four)}.passflow-button--dark{color:var(--passflow-button-text-color);background-color:var(--passflow-dark-three);box-shadow:0 3px 15px #1e1e1e59}.passflow-button--dark:focus-visible,.passflow-button--dark:hover{opacity:.9}.passflow-button--small{width:100%;max-width:28px;height:28px;padding:var(--passflow-spacing-1)}.passflow-button--medium{width:100%;max-width:66px;height:32px;padding:7px var(--passflow-spacing-3);font-size:var(--passflow-body-2)}.passflow-button--big{width:100%;min-width:40px;max-width:336px;height:48px;padding:15px var(--passflow-spacing-2);font-size:var(--passflow-body-2);font-weight:600}.passflow-button--dark:disabled,.passflow-button--primary:disabled,.passflow-button--warning:disabled{cursor:not-allowed;background-color:var(--passflow-grey-two);box-shadow:none}.passflow-button--outlined:disabled,.passflow-button--secondary:disabled{cursor:not-allowed;background-color:var(--passflow-white);border-color:var(--passflow-grey-four);color:var(--passflow-grey-two)}.passflow-button--clean:disabled{cursor:not-allowed;opacity:.5;background-color:#0000}.passflow-button--with-icon{gap:var(--passflow-spacing-2)}.passflow-button--as-icon{width:max-content;height:max-content;padding:0}.passflow-button--option{align-items:flex-start;gap:var(--passflow-spacing-1);width:100%;max-width:none;height:auto;padding:var(--passflow-spacing-3);text-align:left;background-color:var(--passflow-white);border:1px solid var(--passflow-grey-four);color:var(--passflow-text-color);flex-direction:column}.passflow-button--option:focus-visible,.passflow-button--option:hover{background-color:var(--passflow-grey-four)}.passflow-button--option[aria-pressed=true]{border-color:var(--passflow-primary-color)}.passflow-button--option:disabled{cursor:not-allowed;background-color:var(--passflow-white);border-color:var(--passflow-grey-four)}.passflow-button__option-label{font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);color:var(--passflow-text-color)}.passflow-button__option-hint{font-size:var(--passflow-caption);font-weight:var(--passflow-normal);color:var(--passflow-secondary-text-color)}.passflow-button--option:disabled .passflow-button__option-hint,.passflow-button--option:disabled .passflow-button__option-label{color:var(--passflow-grey-two)}.passflow-button--link{width:auto;max-width:none;height:auto;color:var(--passflow-link-color);font-size:inherit;font-weight:var(--passflow-semibold);line-height:inherit;background-color:#0000;border:none;border-radius:0;padding:0;display:inline;overflow:visible}.passflow-button--link:focus-visible,.passflow-button--link:hover{text-decoration:underline}.passflow-button--link:disabled{cursor:not-allowed;color:var(--passflow-grey-two);text-decoration:none}.passflow-button-go-back-error,.passflow-button-passkey,.passflow-button-passwordless,.passflow-button-resend-magic-link,.passflow-button-resend-reset-password,.passflow-button-reset-password,.passflow-button-send-reset-password,.passflow-button-signin,.passflow-button-signup{font-size:var(--passflow-body-2);line-height:18px;font-weight:var(--passflow-semibold);margin:0 auto}.passflow-button-passkey{background-color:var(--passflow-passkey-button-background-color);color:var(--passflow-passkey-button-text-color)}.passflow-button-passwordless--active{border:1px solid var(--passflow-primary-color);color:var(--passflow-primary-color);font-size:var(--passflow-body-2);line-height:18px;font-weight:var(--passflow-semibold);background-color:#0000}.passflow-button-show-country{background-color:var(--passflow-input-background-color);border-radius:4px;gap:4px;width:56px;min-width:56px;margin-left:8px;padding:12px 4px}.passflow-button-display-password{background-color:#0000}.passflow-send-reset-wrapper{flex-direction:column;gap:24px;display:flex}.passflow-button-resend-magic-link,.passflow-button-resend-reset-password{max-width:196px;font-weight:var(--passflow-medium)}.passflow-button-go-back-error{width:196px;max-width:100%;font-weight:var(--passflow-medium)}.passflow-button-resend-magic-link:hover{background-color:var(--passflow-grey-four)}.passflow-button-timer{max-width:max-content;font-weight:var(--passflow-semibold);background-color:var(--passflow-background-color);padding:3px;display:inline-block}.passflow-button-timer--active{color:var(--passflow-secondary-text-color);opacity:1!important}.passflow-button-timer--inactive{color:var(--passflow-primary-color)}.passflow-field{width:100%;min-height:48px;padding:11px var(--passflow-spacing-3);background-color:var(--passflow-input-background-color);color:var(--passflow-dark);font-size:var(--passflow-body-2);outline:1px solid var(--passflow-input-border-color);border-radius:4px;justify-content:flex-start;align-items:center;display:flex}.passflow-field::placeholder{color:var(--passflow-secondary-text-color)}.passflow-field--focused:focus-visible{outline:1px solid var(--passflow-primary-color)}.passflow-field--error{outline:1px solid var(--passflow-warning)!important}.passflow-field:disabled{border-color:var(--passflow-input-border-color);color:var(--passflow-secondary-text-color);background-color:var(--passflow-input-background-color);cursor:not-allowed}.passflow-ripple{background-color:#ffffff4d;border-radius:50%;animation:.6s linear passflow-ripple;position:absolute;transform:scale(0)}@keyframes passflow-ripple{to{opacity:0;transform:scale(4)}}@media (prefers-reduced-motion:reduce){.passflow-ripple{animation:none;display:none}}.passflow-container{width:100%;max-width:1200px;padding:0 var(--passflow-spacing-4);margin:0 auto}.passflow-flex{display:flex}.passflow-flex-col{flex-direction:column}.passflow-items-center{align-items:center}.passflow-justify-center{justify-content:center}.passflow-justify-between{justify-content:space-between}.passflow-mt-4{margin-top:var(--passflow-spacing-4)}.passflow-mb-4{margin-bottom:var(--passflow-spacing-4)}.passflow-gap-4{gap:var(--passflow-spacing-4)}.passflow-form-subscriptions{font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);color:var(--passflow-secondary-text-color);text-align:center;max-width:384px;margin:-24px auto 0;display:flex}.passflow-field-wrapper{width:100%;position:relative}.passflow-field-container{flex-direction:column;gap:6px;width:100%;display:flex}.passflow-field-label{color:var(--passflow-secondary-text-color);font-size:var(--passflow-caption);font-weight:var(--passflow-medium);line-height:18px}.passflow-field-label--error{color:var(--passflow-warning)}.passflow-field-label-button{color:var(--passflow-link-color);font-size:var(--passflow-caption);background-color:var(--passflow-card-color);width:max-content;max-width:100%;text-decoration:none}.passflow-field-input,.passflow-field-label-button{font-weight:var(--passflow-medium);line-height:18px}.passflow-field-input{width:100%;min-height:48px;padding:11px var(--passflow-spacing-3);background-color:var(--passflow-input-background-color);color:var(--passflow-text-color);font-size:var(--passflow-body-2);outline:1px solid var(--passflow-input-border-color);border-radius:4px}.passflow-field-input--with-icon{padding-right:40px}.passflow-field-icon-button{width:28px;min-width:28px;height:28px;padding:6px;position:absolute;top:50%;right:0;transform:translate(-8px,-50%)}.passflow-field-error{justify-content:center;align-items:center;gap:4px;margin-top:4px;display:flex}.passflow-field-error-text{font-size:var(--passflow-caption);font-weight:var(--passflow-medium);color:var(--passflow-warning)}.passflow-field-phone-wrapper{background-color:var(--passflow-input-background-color);width:100%;height:48px;color:var(--passflow-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);outline:1px solid var(--passflow-input-border-color);border-radius:4px;justify-content:flex-start;align-items:center;display:flex;position:relative}.passflow-field-phone-wrapper--focus{outline:1px solid var(--passflow-primary-color)}.passflow-field-phone-wrapper--error{outline:1px solid var(--passflow-warning)}.passflow-field-phone-wrapper::placeholder{color:var(--passflow-secondary-text-color)}.passflow-field-phone-input{background-color:var(--passflow-input-background-color);width:100%;height:48px;color:var(--passflow-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);border-radius:4px;padding:0 8px}.passflow-field-phone-input:focus-within{outline:none}.passflow-field-country-search-wrapper{z-index:20;padding-left:28px;position:relative}.passflow-field-country-search,.passflow-field-country-search-wrapper{background-color:var(--passflow-input-background-color);border-radius:4px;width:100%}.passflow-field-country-search{height:48px;color:var(--passflow-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);padding:0 8px}.passflow-field-country-search::placeholder{color:var(--passflow-secondary-text-color);font-size:var(--passflow-body-2);line-height:18px;font-weight:var(--passflow-medium)}.passflow-field-country-search:focus-visible{outline:none}.passflow-field-country-search-icon{position:absolute;top:50%;left:12px;transform:translateY(-50%)}.passflow-password-validation{flex-direction:column;gap:4px;margin-top:4px;display:flex}.passflow-password-validation-item{font-size:var(--passflow-caption);font-weight:var(--passflow-medium);color:var(--passflow-secondary-text-color);justify-content:flex-start;align-items:center;gap:4px;display:flex}.passflow-password-validation-item--success{color:var(--passflow-success)}.passflow-dialog-overlay{z-index:40;background-color:#1e1e1e80;position:fixed;inset:0}.passflow-dialog-content{z-index:50;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.passflow-dialog-header{text-align:center;flex-direction:column;gap:6px;display:flex}.passflow-dialog-footer{flex-direction:column-reverse;gap:8px;display:flex}@media (width>=640px){.passflow-dialog-header{text-align:left}.passflow-dialog-footer{flex-direction:row;justify-content:flex-end}}.passflow-dialog-title{font-size:var(--passflow-h2);font-weight:var(--passflow-semibold);letter-spacing:-.02em;line-height:1}.passflow-dialog-description{font-size:var(--passflow-body-2);color:var(--passflow-secondary-text-color)}.passflow-popover-content{z-index:10;background-color:var(--passflow-white);border-radius:4px;box-shadow:0 5px 20px #0000000d}.passflow-popover-menu{flex-direction:column;align-items:flex-start;gap:4px;width:125px;padding:6px;display:flex}.passflow-popover-menu-item{justify-content:flex-start;gap:6px;width:100%;padding:6px}.passflow-popover-menu-item:hover{background-color:var(--passflow-background)}.passflow-popover-menu-item-text{font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);color:var(--passflow-dark-three)}.passflow-popover-menu-item-text--warning{color:var(--passflow-warning)}.passflow-switch-wrapper{cursor:pointer;align-items:center;gap:12px;display:inline-flex;position:relative}.passflow-switch-label{color:var(--passflow-text-color);font-size:var(--passflow-caption);font-weight:var(--passflow-medium)}.passflow-switch-input{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.passflow-switch-track{background-color:var(--passflow-grey-two);border-radius:9999px;width:28px;height:16px;transition:background-color .2s;position:relative}.passflow-switch-track:after{content:"";background-color:var(--passflow-white);border-radius:50%;width:12px;height:12px;transition:transform .2s;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.passflow-switch-input:focus-visible+.passflow-switch-track{outline:2px solid var(--passflow-focus-color);outline-offset:2px}.passflow-switch-wrapper--disabled{cursor:not-allowed;opacity:.6}.passflow-switch-input:checked+.passflow-switch-track{background-color:var(--passflow-primary-color)}.passflow-switch-input:checked+.passflow-switch-track:after{transform:translate(12px,-50%)}[dir=rtl] .passflow-switch-input:checked+.passflow-switch-track:after{transform:translate(-14px,-50%)}.passflow-icon{background-color:#0000}.passflow-icon--small{width:16px;height:16px}.passflow-icon--medium{width:20px;height:20px}.passflow-icon--big{width:32px;height:32px}.passflow-icon--large{width:44px;height:44px}.passflow-icon--warning{stroke:var(--passflow-warning)}.passflow-icon--white{background-color:var(--passflow-white)}.passflow-icon--success{stroke:var(--passflow-primary-color)}.passflow-verify-otp{flex-direction:column;gap:32px;display:flex}.passflow-verify-otp-container{background-color:var(--passflow-card-color);border-radius:6px;flex-direction:column;gap:56px;padding:24px 24px 56px;display:flex;box-shadow:0 4px 15px #00000017}.passflow-verify-otp-button{background-color:var(--passflow-background);border:none;position:relative}.passflow-verify-otp-button-icon{position:absolute;top:50%;right:12px;transform:translateY(-50%)}.passflow-verify-otp-wrapper{flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex}.passflow-verify-otp-error{justify-content:center;align-items:center;gap:4px;display:flex}.passflow-verify-otp-error-text{font-size:var(--passflow-caption);font-weight:var(--passflow-medium);color:var(--passflow-warning)}.passflow-verify-otp-resend{color:var(--passflow-secondary-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);text-align:center}.passflow-providers-box{flex-flow:wrap;justify-content:center;align-items:center;gap:8px;width:100%;display:flex}.passflow-providers-box--grid{grid-template-columns:repeat(auto-fit,minmax(49px,1fr));justify-content:stretch;align-items:stretch;gap:8px;display:grid}.passflow-provider-item{align-items:center;gap:8px;display:flex}.passflow-provider-text{color:var(--passflow-federated_button_text_color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);text-transform:capitalize}.passflow-ripple-container{position:absolute;inset:0;overflow:hidden}.passflow-ripple-effect{opacity:.6;background-color:currentColor}.passflow-form{flex-direction:column;gap:32px;width:100%;max-width:384px;display:flex}.passflow-form-switch{justify-content:center;align-items:center;width:100%;margin-bottom:-8px;display:flex}.passflow-form-container{background-color:var(--passflow-card-color);border-radius:6px;gap:24px;max-width:384px;padding:24px;box-shadow:0 4px 15px #00000017}.passflow-form-container,.passflow-form-field{flex-direction:column;justify-content:flex-start;align-items:flex-start;width:100%;display:flex}.passflow-form-field{gap:6px}.passflow-form-field__header{justify-content:space-between;align-items:center;width:100%;max-height:18px;display:flex}.passflow-form-error{justify-content:center;align-items:center;gap:4px;margin-top:4px;display:flex}.passflow-form-error-text{font-size:var(--passflow-caption);font-weight:var(--passflow-medium);color:var(--passflow-warning)}.passflow-form-actions{justify-content:center;align-items:center;width:100%;max-width:336px;margin:0 auto;display:flex}.passflow-form-actions--top-space{margin-top:-8px}.passflow-form-divider{justify-content:space-between;align-items:center;width:100%;padding:9px 0;display:flex;position:relative}.passflow-form-divider__line-left,.passflow-form-divider__line-right{background-color:var(--passflow-divider-color);width:105px;height:1px}.passflow-form-divider__text{color:var(--passflow-secondary-text-color);font-size:var(--passflow-caption);font-weight:var(--passflow-medium);background-color:#0000;padding:0 15px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.passflow-form-providers{flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:24px;width:100%;max-width:336px;margin:0 auto;display:flex}.passflow-link{color:var(--passflow-link-color);font-size:var(--passflow-body-2);line-height:18px;font-weight:var(--passflow-semibold)}.passflow-dont-have-account,.passflow-have-account,.passflow-remember-password{text-align:center;color:var(--passflow-secondary-text-color);font-size:var(--passflow-body-2);line-height:18px;font-weight:var(--passflow-medium)}.passflow-country-search-wrapper{z-index:10;background-color:var(--passflow-card-color);scrollbar-width:thin;scrollbar-color:var(--passflow-secondary-text-color) transparent;border-bottom-right-radius:4px;border-bottom-left-radius:4px;width:100%;max-height:181px;position:absolute;top:2px;left:0;overflow-y:auto;transform:translateY(48px);box-shadow:0 4px 15px #00000017}.passflow-country-search-wrapper--without-preferred{max-height:170px}.passflow-country-search-wrapper::-webkit-scrollbar{width:6px}.passflow-country-search-wrapper::-webkit-scrollbar-track{background:0 0}.passflow-country-search-wrapper::-webkit-scrollbar-thumb{background-color:var(--passflow-secondary-text-color);border-radius:3px}.passflow-country-search-wrapper--show{opacity:1;visibility:visible;transition:opacity .2s,visibility .2s;display:block}.passflow-country-search-wrapper--hidden{opacity:0;visibility:hidden;display:none}.passflow-country-search-sticky-bottom,.passflow-country-search-sticky-top{background-color:var(--passflow-card-color);z-index:10;width:100%;height:10px;position:sticky;left:0;overflow-x:hidden}.passflow-country-search-sticky-top{top:0}.passflow-country-search-sticky-bottom{bottom:0}.passflow-country-search-item{background-color:var(--passflow-card-color);cursor:pointer;justify-content:flex-start;align-items:center;width:100%;max-height:32px;padding:7px 12px;transition:background-color .2s;display:flex}.passflow-country-search-item:focus,.passflow-country-search-item:hover{background-color:var(--passflow-background)}.passflow-country-search-flag{width:24px;height:18px}.passflow-country-search-name{color:var(--passflow-text-color);margin-left:8px}.passflow-country-search-code,.passflow-country-search-name{font-size:var(--passflow-body-2);font-weight:var(--passflow-medium)}.passflow-country-search-code{color:var(--passflow-secondary-text-color);margin-left:auto;transition:color .2s}.passflow-country-search-item:hover .passflow-country-search-code{color:var(--passflow-text-color)}.passflow-country-search-divider{font-size:var(--passflow-caption);border-bottom:1px solid var(--passflow-divider-color);margin:12px 12px 6px;padding-bottom:6px}.passflow-country-search-divider,.passflow-country-search-no-matches,.passflow-forgot-password-success-text{font-weight:var(--passflow-medium);color:var(--passflow-secondary-text-color)}.passflow-country-search-no-matches{font-size:var(--passflow-body-2);text-align:center;width:100%;margin:0 auto;padding:15px;display:block}.passflow-forgot-password-success-wrapper{flex-direction:column;gap:24px;width:100%;display:flex}.passflow-forgot-password-success-container{flex-direction:column;gap:32px;width:100%;max-width:336px;margin-top:-8px;display:flex}.passflow-forgot-password-success-text,.passflow-verify-challenge-magic-link-text{font-size:var(--passflow-body-2);text-align:center}.passflow-forgot-password-success-text--strong{font-weight:var(--passflow-bold)}.passflow-verify-challenge-magic-link-wrapper{flex-direction:column;width:100%;margin:0 auto;display:flex}.passflow-verify-challenge-magic-link-container{flex-direction:column;gap:32px;width:100%;max-width:336px;margin-top:-24px;display:flex}.passflow-verify-challenge-magic-link-text{font-weight:var(--passflow-medium);color:var(--passflow-secondary-text-color)}.passflow-verify-challenge-magic-link-text--strong{font-weight:var(--passflow-bold)}.passflow-verify-challenge-success-wrapper{gap:32px}.passflow-verify-challenge-success-container,.passflow-verify-challenge-success-wrapper{flex-direction:column;justify-content:flex-start;align-items:center;width:100%;display:flex}.passflow-verify-challenge-success-container{gap:8px}.passflow-verify-challenge-success-text{font-size:var(--passflow-h2);font-weight:var(--passflow-bold);color:var(--passflow-text-color);text-align:center}.passflow-reset-password-text,.passflow-verify-challenge-success-text-secondary{font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);color:var(--passflow-secondary-text-color);text-align:center}.passflow-reset-password-text{margin-top:-32px;display:block}.passflow-form-error--critical,.passflow-form-error--persistent{text-align:center;background-color:#fef2f2;border:1px solid #fecaca;border-radius:12px;flex-direction:column;align-items:center;gap:12px;margin-top:16px;padding:20px 24px;display:flex}.passflow-form-error--critical .icon-warning,.passflow-form-error--persistent .icon-warning{color:#dc2626;flex-shrink:0;width:32px;height:32px}.passflow-form-error-content{flex-direction:column;align-items:center;gap:16px;width:100%;display:flex}.passflow-form-error--critical .passflow-form-error-text,.passflow-form-error--persistent .passflow-form-error-text{color:#991b1b;margin:0;font-size:14px;line-height:1.5}.passflow-form-error-actions{flex-direction:column;justify-content:center;align-items:center;gap:12px;width:100%;display:flex}.passflow-button-back-to-signin,.passflow-button-setup-2fa{white-space:nowrap;min-width:140px}.passflow-form-info{background-color:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;align-items:flex-start;gap:12px;margin-top:16px;padding:16px;display:flex}.passflow-form-info .icon-info{color:#2563eb;flex-shrink:0;width:20px;height:20px;margin-top:2px}.passflow-form-info-text{color:#1e40af;font-size:14px;line-height:1.5}.passflow-field--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.icon-info{color:#2563eb}.passflow-continuing-status{min-height:100vh;font-family:var(--passflow-font-family);font-size:var(--passflow-body-1);color:var(--passflow-secondary-text-color);justify-content:center;align-items:center;display:flex}.passflow-country-flag{width:24px;height:18px;color:var(--passflow-secondary-text-color);font-size:9px;font-weight:var(--passflow-bold);text-transform:uppercase;background-repeat:no-repeat;background-size:408px 384px;border-radius:2px;flex:none;justify-content:center;align-items:center;line-height:1;display:inline-flex;overflow:hidden}.passflow-country-flag--fallback{background-color:var(--passflow-input-background-color);outline:1px solid var(--passflow-input-border-color)}.passflow-field-otp-group{--passflow-field-otp-size:48px;--passflow-field-otp-gap:10px}.passflow-field-otp-group--disabled{cursor:not-allowed}.passflow-field-otp-slots{gap:var(--passflow-field-otp-gap)}.passflow-field-otp,.passflow-field-otp-slots{justify-content:center;align-items:center;display:flex}.passflow-field-otp{width:var(--passflow-field-otp-size);height:var(--passflow-field-otp-size);border-radius:var(--passflow-radius);background-color:var(--passflow-input-background-color);outline:1px solid var(--passflow-input-border-color);color:var(--passflow-text-color);font-size:var(--passflow-body-2);position:relative}.passflow-field-otp--active{outline-color:var(--passflow-primary-color)}.passflow-field-otp--error{outline-color:var(--passflow-warning)}.passflow-field-otp--disabled{opacity:.5}.passflow-field-otp__caret{background-color:currentColor;width:1px;height:1em;animation:1s step-end infinite passflow-field-otp-caret-blink}@keyframes passflow-field-otp-caret-blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.passflow-field-otp__caret{animation:none}}.passflow-field-otp-field{flex-direction:column;gap:6px;display:inline-flex}.react-international-phone-country-selector{position:relative}.react-international-phone-country-selector-button{height:var(--react-international-phone-height,36px);box-sizing:border-box;border:1px solid var(--react-international-phone-country-selector-border-color,var(--react-international-phone-border-color,#dcdcdc));-webkit-appearance:button;appearance:button;background-color:var(--react-international-phone-country-selector-background-color,var(--react-international-phone-background-color,#fff));cursor:pointer;text-transform:none;user-select:none;justify-content:center;align-items:center;margin:0;padding:0;display:flex}.react-international-phone-country-selector-button:hover{background-color:var(--react-international-phone-country-selector-background-color-hover,#f5f5f5)}.react-international-phone-country-selector-button--disabled,.react-international-phone-country-selector-button--hide-dropdown{cursor:auto}.react-international-phone-country-selector-button--hide-dropdown:hover{background-color:#0000}.react-international-phone-country-selector-button__button-content{justify-content:center;align-items:center;display:flex}.react-international-phone-country-selector-button__flag-emoji{margin:0 4px}.react-international-phone-country-selector-button__flag-emoji--disabled{opacity:.75}.react-international-phone-country-selector-button__dropdown-arrow{border-top:var(--react-international-phone-country-selector-arrow-size,4px) solid var(--react-international-phone-country-selector-arrow-color,#777);border-right:var(--react-international-phone-country-selector-arrow-size,4px) solid transparent;border-left:var(--react-international-phone-country-selector-arrow-size,4px) solid transparent;margin-right:4px;transition:all .1s ease-out}.react-international-phone-country-selector-button__dropdown-arrow--active{transform:rotateX(180deg)}.react-international-phone-country-selector-button__dropdown-arrow--disabled{border-top-color:var(--react-international-phone-disabled-country-selector-arrow-color,#999)}.react-international-phone-country-selector-button--disabled,.react-international-phone-country-selector-button--disabled:hover{background-color:var(--react-international-phone-disabled-country-selector-background-color,var(--react-international-phone-disabled-background-color,#f5f5f5))}.react-international-phone-flag-emoji{width:var(--react-international-phone-flag-width,24px);height:var(--react-international-phone-flag-height,24px);box-sizing:border-box}.react-international-phone-country-selector-dropdown{z-index:1;top:var(--react-international-phone-dropdown-top,44px);left:var(--react-international-phone-dropdown-left,0);background-color:var(--react-international-phone-dropdown-item-background-color,var(--react-international-phone-background-color,#fff));width:300px;max-height:200px;box-shadow:var(--react-international-phone-dropdown-shadow,2px 2px 16px #00000040);color:var(--react-international-phone-dropdown-item-text-color,var(--react-international-phone-text-color,#222));flex-direction:column;margin:0;padding:4px 0;list-style:none;display:flex;position:absolute;overflow-y:scroll}.react-international-phone-country-selector-dropdown__preferred-list-divider{height:1px;margin:var(--react-international-phone-dropdown-preferred-list-divider-margin,0);background:var(--react-international-phone-dropdown-preferred-list-divider-color,var(--react-international-phone-border-color,#dcdcdc));border:none}.react-international-phone-country-selector-dropdown__list-item{min-height:var(--react-international-phone-dropdown-item-height,28px);box-sizing:border-box;align-items:center;padding:2px 8px;display:flex}.react-international-phone-country-selector-dropdown__list-item-flag-emoji{margin-right:8px}.react-international-phone-country-selector-dropdown__list-item-country-name{font-size:var(--react-international-phone-dropdown-item-font-size,14px);text-overflow:ellipsis;white-space:nowrap;margin-right:8px;overflow:hidden}.react-international-phone-country-selector-dropdown__list-item-dial-code{color:var(--react-international-phone-dropdown-item-dial-code-color,gray);font-size:var(--react-international-phone-dropdown-item-font-size,14px)}.react-international-phone-country-selector-dropdown__list-item:hover{background-color:var(--react-international-phone-selected-dropdown-item-background-color,var(--react-international-phone-selected-dropdown-item-background-color,#f5f5f5));cursor:pointer}.react-international-phone-country-selector-dropdown__list-item--focused,.react-international-phone-country-selector-dropdown__list-item--selected{background-color:var(--react-international-phone-selected-dropdown-item-background-color,#f5f5f5);color:var(--react-international-phone-selected-dropdown-item-text-color,var(--react-international-phone-text-color,#222))}.react-international-phone-country-selector-dropdown__list-item--focused .react-international-phone-country-selector-dropdown__list-item-dial-code,.react-international-phone-country-selector-dropdown__list-item--selected .react-international-phone-country-selector-dropdown__list-item-dial-code{color:var(--react-international-phone-selected-dropdown-item-dial-code-color,var(--react-international-phone-dropdown-item-dial-code-color,gray))}.react-international-phone-country-selector-dropdown__list-item--focused{background-color:var(--react-international-phone-selected-dropdown-item-background-color,var(--react-international-phone-selected-dropdown-item-background-color,#f5f5f5))}.react-international-phone-dial-code-preview{border:1px solid var(--react-international-phone-dial-code-preview-border-color,var(--react-international-phone-border-color,#dcdcdc));background-color:var(--react-international-phone-dial-code-preview-background-color,var(--react-international-phone-background-color,#fff));color:var(--react-international-phone-dial-code-preview-text-color,var(--react-international-phone-text-color,#222));font-size:var(--react-international-phone-dial-code-preview-font-size,var(--react-international-phone-font-size,13px));justify-content:center;align-items:center;margin-right:-1px;padding:0 8px;display:flex}.react-international-phone-dial-code-preview--disabled{background-color:var(--react-international-phone-dial-code-preview-disabled-background-color,var(--react-international-phone-disabled-background-color,#f5f5f5));color:var(--react-international-phone-dial-code-preview-disabled-text-color,var(--react-international-phone-disabled-text-color,#666))}.react-international-phone-input-container{display:flex}.react-international-phone-input-container .react-international-phone-country-selector-button{border-radius:var(--react-international-phone-border-radius,4px);border-top-right-radius:0;border-bottom-right-radius:0;margin-right:-1px}.react-international-phone-input-container .react-international-phone-input{height:var(--react-international-phone-height,36px);box-sizing:border-box;border:1px solid var(--react-international-phone-border-color,#dcdcdc);border-radius:var(--react-international-phone-border-radius,4px);background-color:var(--react-international-phone-background-color,#fff);color:var(--react-international-phone-text-color,#222);font-family:inherit;font-size:var(--react-international-phone-font-size,13px);border-top-left-radius:0;border-bottom-left-radius:0;margin:0;padding:0 8px;overflow:visible}.react-international-phone-input-container .react-international-phone-input:focus{outline:none}.react-international-phone-input-container .react-international-phone-input--disabled{background-color:var(--react-international-phone-disabled-background-color,#f5f5f5);color:var(--react-international-phone-disabled-text-color,#666)}.icon-warning{filter:brightness(0)saturate()invert(17%)sepia(98%)saturate(3037%)hue-rotate(354deg)brightness(87%)contrast(90%)}.icon-white{filter:brightness(0)saturate()invert()sepia(2%)saturate(7%)hue-rotate(80deg)brightness(103%)contrast()}.passflow-icon--match-text{-webkit-mask:var(--passflow-icon-mask) center/contain no-repeat;mask:var(--passflow-icon-mask) center/contain no-repeat;background-color:currentColor;flex:none;display:inline-block}#passflow-wrapper{box-sizing:border-box;-webkit-font-smoothing:antialiased;font-family:Inter,sans-serif;overflow-x:hidden}#passflow-wrapper,.passflow-wrapper{width:100%;min-height:100dvh}.passflow-wrapper{color:var(--passflow-text-color);background-color:var(--passflow-background-color);background-image:var(--passflow-background-image);background-position:50%;background-repeat:no-repeat;background-size:cover;flex-direction:column;display:flex}.passflow-branding{background-color:var(--passflow-branding-background-color);border-radius:4px;flex:none;justify-content:center;align-self:flex-end;align-items:center;gap:4px;margin:0 24px 24px;padding:7px 12px;display:flex}.passflow-branding-text{font-size:11px;line-height:18px;font-weight:var(--passflow-bold);color:var(--passflow-secondary-text-color)}.passflow-branding-text-secondary{font-weight:var(--passflow-normal)}.passflow-form-main-wrapper{border-radius:6px;flex:1 0 auto;justify-content:safe center;gap:32px;padding:32px 24px}.passflow-form-main-container,.passflow-form-main-wrapper{flex-direction:column;align-items:center;width:100%;display:flex}.passflow-form-main-container{justify-content:center;gap:24px;max-width:384px;margin:0 auto}.passflow-form-header{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.passflow-form-title{color:var(--passflow-text-color);font-size:var(--passflow-h2);font-weight:var(--passflow-bold)}.passflow-form-subtitle{font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);color:var(--passflow-secondary-text-color);text-align:center}.passflow-form-main-container-logo{object-fit:contain;object-position:center;border-radius:8px;width:auto;max-width:min(160px,100%);height:auto;max-height:44px}.passflow-error-container{gap:32px;margin-top:-8px}.passflow-error-container,.passflow-error-container-text-wrapper{flex-direction:column;justify-content:start;align-items:center;display:flex}.passflow-error-container-text-wrapper{gap:8px}.passflow-error-container-text{font-size:var(--passflow-h2);font-weight:var(--passflow-bold);color:var(--passflow-warning);text-align:center}.passflow-error-container-text-secondary{font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);color:var(--passflow-secondary-text-color);text-align:center}.icon-success{filter:brightness(0)saturate()invert(35%)sepia(38%)saturate(1173%)hue-rotate(106deg)brightness(90%)contrast(95%)}.passflow-login-screen-actions{gap:var(--passflow-spacing-4);max-width:336px;margin:0 auto}.passflow-login-screen-actions,.passflow-login-screen-notice{flex-direction:column;align-items:center;width:100%;display:flex}.passflow-login-screen-notice{gap:var(--passflow-spacing-3);max-width:384px}.passflow-login-screen-code{box-sizing:border-box;width:100%;padding:var(--passflow-spacing-4);background-color:var(--passflow-input-background-color);color:var(--passflow-text-color);font-size:var(--passflow-h1);font-weight:var(--passflow-bold);user-select:all;border-radius:6px}.passflow-login-screen-code,.passflow-login-screen-code-input{letter-spacing:.12em;text-align:center;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace}.passflow-login-screen-code-input{font-size:var(--passflow-body-1);text-transform:uppercase}.passflow-login-screen-text{color:var(--passflow-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-normal);line-height:1.5}.passflow-login-screen-centered-text{text-align:center}.passflow-login-screen-centered{text-align:center;align-items:center}.passflow-login-screen-hint{color:var(--passflow-secondary-text-color);font-size:var(--passflow-caption);font-weight:var(--passflow-medium);text-align:center;line-height:1.5}.passflow-login-screen-app-name{color:var(--passflow-text-color);font-weight:var(--passflow-semibold)}.passflow-login-screen-success{justify-content:center;align-items:center;gap:var(--passflow-spacing-1);display:flex}.passflow-login-screen-success-text{color:var(--passflow-success);font-size:var(--passflow-caption);font-weight:var(--passflow-medium)}.passflow-login-screen-spinner{border:3px solid var(--passflow-grey-three);border-top-color:var(--passflow-primary-color);border-radius:50%;width:26px;height:26px;animation:.8s linear infinite passflow-login-screen-spin}.passflow-login-screen-spinner--small{border-width:2px;width:18px;height:18px}@keyframes passflow-login-screen-spin{to{transform:rotate(1turn)}}@media (width<=480px){.passflow-form-main-wrapper{padding:24px 16px}.passflow-branding{align-self:center;margin:0 16px 16px}}@media (prefers-reduced-motion:reduce){.passflow-login-screen-spinner{animation-duration:3s}}.passflow-login-screen-status{align-items:center;gap:var(--passflow-spacing-3);flex-direction:column;width:100%;display:flex}.passflow-consent-scopes{gap:var(--passflow-spacing-2);flex-direction:column;width:100%;max-width:384px;margin:0 auto;padding:0;list-style:none;display:flex}.passflow-consent-scope{box-sizing:border-box;padding:var(--passflow-spacing-3) var(--passflow-spacing-4);border:1px solid var(--passflow-divider-color);background-color:var(--passflow-card-color);gap:var(--passflow-spacing-1);text-align:left;border-radius:6px;flex-direction:column;display:flex}.passflow-consent-scope-description{color:var(--passflow-secondary-text-color);font-size:var(--passflow-caption);font-weight:var(--passflow-normal);margin:0;line-height:1.5}.passflow-consent-actions{gap:var(--passflow-spacing-2);flex-direction:column;width:100%;max-width:336px;margin:0 auto;display:flex}.passflow-spinner{--passflow-spinner-diameter:26px;--passflow-spinner-stroke:3px;width:var(--passflow-spinner-diameter);height:var(--passflow-spinner-diameter);border:var(--passflow-spinner-stroke) solid var(--passflow-grey-three);border-top-color:var(--passflow-primary-color);border-radius:50%;flex:none;animation:.8s linear infinite passflow-spinner-spin}.passflow-spinner--small{--passflow-spinner-diameter:18px;--passflow-spinner-stroke:2px}@keyframes passflow-spinner-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.passflow-spinner{animation-duration:3s}}.passflow-upgrade-dialog{box-sizing:border-box;gap:var(--passflow-spacing-6);width:min(var(--passflow-surface-width),100vw - var(--passflow-spacing-6) * 2);max-height:calc(100dvh - var(--passflow-spacing-6) * 2);padding:var(--passflow-spacing-6);color:var(--passflow-text-color);background-color:var(--passflow-card-color);border-radius:var(--passflow-radius);font-family:var(--passflow-font-family);flex-direction:column;display:flex;overflow-y:auto}.passflow-upgrade-dialog__header{gap:var(--passflow-spacing-2);text-align:left;flex-direction:column;display:flex}.passflow-upgrade-dialog__form,.passflow-upgrade-dialog__status{gap:var(--passflow-spacing-4);flex-direction:column;width:100%;display:flex}.passflow-upgrade-dialog__factor{gap:var(--passflow-spacing-1);padding:var(--passflow-spacing-3);background-color:var(--passflow-input-background-color);border-radius:var(--passflow-radius);flex-direction:column;display:flex}.passflow-upgrade-dialog__factor-label{font-size:var(--passflow-body-1);font-weight:var(--passflow-semibold);color:var(--passflow-text-color)}.passflow-upgrade-dialog__factor-hint,.passflow-upgrade-dialog__status-detail{font-size:var(--passflow-caption);font-weight:var(--passflow-normal);color:var(--passflow-secondary-text-color);margin:0}.passflow-upgrade-dialog__actions,.passflow-upgrade-dialog__alternatives,.passflow-upgrade-dialog__field{gap:var(--passflow-spacing-2);flex-direction:column;width:100%;display:flex}.passflow-upgrade-dialog__alternatives{margin:0;padding:0;list-style:none}.passflow-upgrade-dialog__alternative{width:100%}.passflow-upgrade-dialog__status-head{align-items:center;gap:var(--passflow-spacing-2);display:flex}.passflow-upgrade-dialog__status-message{font-size:var(--passflow-body-1);font-weight:var(--passflow-medium)}.passflow-upgrade-dialog__status-head--success .passflow-upgrade-dialog__status-message{color:var(--passflow-success)}.passflow-upgrade-dialog__status-head--problem .passflow-upgrade-dialog__status-message{color:var(--passflow-warning)}.passflow-upgrade-dialog__status-head--neutral .passflow-upgrade-dialog__status-message,.passflow-upgrade-dialog__status-head--working .passflow-upgrade-dialog__status-message{color:var(--passflow-text-color)}.passflow-upgrade-dialog__bars{gap:var(--passflow-spacing-1);padding:var(--passflow-spacing-3);background-color:var(--passflow-input-background-color);border-radius:var(--passflow-radius);flex-direction:column;display:flex}.passflow-upgrade-dialog__bar{justify-content:space-between;gap:var(--passflow-spacing-3);font-size:var(--passflow-caption);display:flex}.passflow-upgrade-dialog__bar-term{color:var(--passflow-secondary-text-color);font-weight:var(--passflow-medium)}.passflow-upgrade-dialog__bar-value{color:var(--passflow-text-color);font-weight:var(--passflow-semibold)}
|
|
2
2
|
/*$vite$:1*/
|