@thunderid/react 0.11.2 → 0.11.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ThunderIDReactClient.d.ts +0 -17
- package/dist/ThunderIDReactClient.d.ts.map +1 -1
- package/dist/ThunderIDReactClient.js +13 -7
- package/dist/ThunderIDReactClient.js.map +1 -1
- package/dist/api/getUsersMe.d.ts +0 -17
- package/dist/api/getUsersMe.d.ts.map +1 -1
- package/dist/api/getUsersMe.js.map +1 -1
- package/dist/api/updateMeProfile.d.ts +0 -17
- package/dist/api/updateMeProfile.d.ts.map +1 -1
- package/dist/api/updateMeProfile.js.map +1 -1
- package/dist/cjs/ThunderIDReactClient.cjs +12 -6
- package/dist/cjs/ThunderIDReactClient.cjs.map +1 -1
- package/dist/cjs/api/getUsersMe.cjs.map +1 -1
- package/dist/cjs/api/updateMeProfile.cjs.map +1 -1
- package/dist/cjs/components/actions/SignInButton/BaseSignInButton.cjs.map +1 -1
- package/dist/cjs/components/actions/SignInButton/SignInButton.cjs.map +1 -1
- package/dist/cjs/components/actions/SignOutButton/BaseSignOutButton.cjs.map +1 -1
- package/dist/cjs/components/actions/SignOutButton/SignOutButton.cjs.map +1 -1
- package/dist/cjs/components/actions/SignUpButton/BaseSignUpButton.cjs.map +1 -1
- package/dist/cjs/components/actions/SignUpButton/SignUpButton.cjs.map +1 -1
- package/dist/cjs/components/adapters/Consent.cjs.map +1 -1
- package/dist/cjs/components/adapters/ConsentCheckboxList.cjs.map +1 -1
- package/dist/cjs/components/adapters/ConsentCheckboxList.styles.cjs.map +1 -1
- package/dist/cjs/components/adapters/FacebookButton.cjs.map +1 -1
- package/dist/cjs/components/adapters/FlowTimer.cjs.map +1 -1
- package/dist/cjs/components/adapters/GitHubButton.cjs.map +1 -1
- package/dist/cjs/components/adapters/GoogleButton.cjs.map +1 -1
- package/dist/cjs/components/adapters/ImageComponent.cjs.map +1 -1
- package/dist/cjs/components/adapters/LinkedInButton.cjs.map +1 -1
- package/dist/cjs/components/adapters/MicrosoftButton.cjs.map +1 -1
- package/dist/cjs/components/adapters/SignInWithEthereumButton.cjs.map +1 -1
- package/dist/cjs/components/adapters/SmsOtpButton.cjs.map +1 -1
- package/dist/cjs/components/auth/Callback/Callback.cjs.map +1 -1
- package/dist/cjs/components/auth/Callback/OAuthCallback.cjs.map +1 -1
- package/dist/cjs/components/auth/Callback/TokenCallback.cjs.map +1 -1
- package/dist/cjs/components/control/Loading.cjs.map +1 -1
- package/dist/cjs/components/control/SignedIn.cjs.map +1 -1
- package/dist/cjs/components/control/SignedOut.cjs.map +1 -1
- package/dist/cjs/components/factories/FieldFactory.cjs.map +1 -1
- package/dist/cjs/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.cjs.map +1 -1
- package/dist/cjs/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.styles.cjs.map +1 -1
- package/dist/cjs/components/presentation/LanguageSwitcher/LanguageSwitcher.cjs.map +1 -1
- package/dist/cjs/components/presentation/User/BaseUser.cjs.map +1 -1
- package/dist/cjs/components/presentation/User/User.cjs.map +1 -1
- package/dist/cjs/components/presentation/UserAvatar/BaseUserAvatar.cjs.map +1 -1
- package/dist/cjs/components/presentation/UserAvatar/UserAvatar.cjs.map +1 -1
- package/dist/cjs/components/presentation/UserDropdown/BaseUserDropdown.cjs.map +1 -1
- package/dist/cjs/components/presentation/UserDropdown/BaseUserDropdown.styles.cjs.map +1 -1
- package/dist/cjs/components/presentation/UserDropdown/UserDropdown.cjs.map +1 -1
- package/dist/cjs/components/presentation/UserProfile/BaseUserProfile.cjs.map +1 -1
- package/dist/cjs/components/presentation/UserProfile/BaseUserProfile.styles.cjs.map +1 -1
- package/dist/cjs/components/presentation/UserProfile/UserProfile.cjs.map +1 -1
- package/dist/cjs/components/presentation/auth/AcceptInvite/AcceptInvite.cjs +3 -4
- package/dist/cjs/components/presentation/auth/AcceptInvite/AcceptInvite.cjs.map +1 -1
- package/dist/cjs/components/presentation/auth/AcceptInvite/BaseAcceptInvite.cjs.map +1 -1
- package/dist/cjs/components/presentation/auth/AcceptInvite/BaseAcceptInvite.styles.cjs.map +1 -1
- package/dist/cjs/components/presentation/auth/AuthOptionFactory.cjs.map +1 -1
- package/dist/cjs/components/presentation/auth/InviteUser/BaseInviteUser.cjs.map +1 -1
- package/dist/cjs/components/presentation/auth/InviteUser/BaseInviteUser.styles.cjs.map +1 -1
- package/dist/cjs/components/presentation/auth/InviteUser/InviteUser.cjs +4 -3
- package/dist/cjs/components/presentation/auth/InviteUser/InviteUser.cjs.map +1 -1
- package/dist/cjs/components/presentation/auth/Recovery/BaseRecovery.cjs.map +1 -1
- package/dist/cjs/components/presentation/auth/Recovery/Recovery.cjs.map +1 -1
- package/dist/cjs/components/presentation/auth/SignIn/BaseSignIn.cjs.map +1 -1
- package/dist/cjs/components/presentation/auth/SignIn/BaseSignIn.styles.cjs.map +1 -1
- package/dist/cjs/components/presentation/auth/SignIn/SignIn.cjs +10 -1
- package/dist/cjs/components/presentation/auth/SignIn/SignIn.cjs.map +1 -1
- package/dist/cjs/components/presentation/auth/SignUp/BaseSignUp.cjs.map +1 -1
- package/dist/cjs/components/presentation/auth/SignUp/BaseSignUp.styles.cjs.map +1 -1
- package/dist/cjs/components/presentation/auth/SignUp/SignUp.cjs.map +1 -1
- package/dist/cjs/components/primitives/AffixedField/AffixedField.cjs.map +1 -1
- package/dist/cjs/components/primitives/AffixedField/AffixedField.styles.cjs.map +1 -1
- package/dist/cjs/components/primitives/Alert/Alert.cjs.map +1 -1
- package/dist/cjs/components/primitives/Alert/Alert.styles.cjs.map +1 -1
- package/dist/cjs/components/primitives/Avatar/Avatar.cjs.map +1 -1
- package/dist/cjs/components/primitives/Avatar/Avatar.styles.cjs.map +1 -1
- package/dist/cjs/components/primitives/Button/Button.cjs.map +1 -1
- package/dist/cjs/components/primitives/Button/Button.styles.cjs.map +1 -1
- package/dist/cjs/components/primitives/Card/Card.cjs.map +1 -1
- package/dist/cjs/components/primitives/Card/Card.styles.cjs.map +1 -1
- package/dist/cjs/components/primitives/Checkbox/Checkbox.cjs.map +1 -1
- package/dist/cjs/components/primitives/Checkbox/Checkbox.styles.cjs.map +1 -1
- package/dist/cjs/components/primitives/CopyableText/CopyableText.cjs.map +1 -1
- package/dist/cjs/components/primitives/CopyableText/CopyableText.styles.cjs.map +1 -1
- package/dist/cjs/components/primitives/DatePicker/DatePicker.cjs.map +1 -1
- package/dist/cjs/components/primitives/DatePicker/DatePicker.styles.cjs.map +1 -1
- package/dist/cjs/components/primitives/Dialog/Dialog.cjs.map +1 -1
- package/dist/cjs/components/primitives/Dialog/Dialog.styles.cjs.map +1 -1
- package/dist/cjs/components/primitives/Divider/Divider.cjs.map +1 -1
- package/dist/cjs/components/primitives/Divider/Divider.styles.cjs.map +1 -1
- package/dist/cjs/components/primitives/FormControl/FormControl.cjs.map +1 -1
- package/dist/cjs/components/primitives/FormControl/FormControl.styles.cjs.map +1 -1
- package/dist/cjs/components/primitives/Icons/ArrowLeftRight.cjs.map +1 -1
- package/dist/cjs/components/primitives/Icons/ArrowRightLeft.cjs.map +1 -1
- package/dist/cjs/components/primitives/Icons/BuildingAlt.cjs.map +1 -1
- package/dist/cjs/components/primitives/Icons/Check.cjs.map +1 -1
- package/dist/cjs/components/primitives/Icons/ChevronDown.cjs.map +1 -1
- package/dist/cjs/components/primitives/Icons/CircleAlert.cjs.map +1 -1
- package/dist/cjs/components/primitives/Icons/CircleCheck.cjs.map +1 -1
- package/dist/cjs/components/primitives/Icons/Eye.cjs.map +1 -1
- package/dist/cjs/components/primitives/Icons/EyeOff.cjs.map +1 -1
- package/dist/cjs/components/primitives/Icons/Info.cjs.map +1 -1
- package/dist/cjs/components/primitives/Icons/LogOut.cjs.map +1 -1
- package/dist/cjs/components/primitives/Icons/Plus.cjs.map +1 -1
- package/dist/cjs/components/primitives/Icons/TriangleAlert.cjs.map +1 -1
- package/dist/cjs/components/primitives/Icons/User.cjs.map +1 -1
- package/dist/cjs/components/primitives/Icons/X.cjs.map +1 -1
- package/dist/cjs/components/primitives/Icons/flowIconRegistry.cjs.map +1 -1
- package/dist/cjs/components/primitives/InputLabel/InputLabel.cjs.map +1 -1
- package/dist/cjs/components/primitives/InputLabel/InputLabel.styles.cjs.map +1 -1
- package/dist/cjs/components/primitives/KeyValueInput/KeyValueInput.cjs.map +1 -1
- package/dist/cjs/components/primitives/KeyValueInput/KeyValueInput.styles.cjs.map +1 -1
- package/dist/cjs/components/primitives/Logo/Logo.cjs.map +1 -1
- package/dist/cjs/components/primitives/Logo/Logo.styles.cjs.map +1 -1
- package/dist/cjs/components/primitives/MultiInput/MultiInput.cjs.map +1 -1
- package/dist/cjs/components/primitives/MultiInput/MultiInput.styles.cjs.map +1 -1
- package/dist/cjs/components/primitives/OtpField/OtpField.cjs.map +1 -1
- package/dist/cjs/components/primitives/OtpField/OtpField.styles.cjs.map +1 -1
- package/dist/cjs/components/primitives/PasswordField/PasswordField.cjs.map +1 -1
- package/dist/cjs/components/primitives/PasswordField/PasswordField.styles.cjs.map +1 -1
- package/dist/cjs/components/primitives/Select/Select.cjs.map +1 -1
- package/dist/cjs/components/primitives/Select/Select.styles.cjs.map +1 -1
- package/dist/cjs/components/primitives/Spinner/Spinner.cjs.map +1 -1
- package/dist/cjs/components/primitives/Spinner/Spinner.styles.cjs.map +1 -1
- package/dist/cjs/components/primitives/TextField/TextField.cjs.map +1 -1
- package/dist/cjs/components/primitives/TextField/TextField.styles.cjs.map +1 -1
- package/dist/cjs/components/primitives/Toggle/Toggle.cjs.map +1 -1
- package/dist/cjs/components/primitives/Toggle/Toggle.styles.cjs.map +1 -1
- package/dist/cjs/components/primitives/Tooltip/Tooltip.cjs.map +1 -1
- package/dist/cjs/components/primitives/Tooltip/Tooltip.styles.cjs.map +1 -1
- package/dist/cjs/components/primitives/Typography/Typography.cjs.map +1 -1
- package/dist/cjs/components/primitives/Typography/Typography.styles.cjs.map +1 -1
- package/dist/cjs/contexts/ComponentRenderer/ComponentRendererContext.cjs.map +1 -1
- package/dist/cjs/contexts/ComponentRenderer/ComponentRendererProvider.cjs.map +1 -1
- package/dist/cjs/contexts/Flow/FlowContext.cjs.map +1 -1
- package/dist/cjs/contexts/Flow/FlowProvider.cjs.map +1 -1
- package/dist/cjs/contexts/Flow/useFlow.cjs.map +1 -1
- package/dist/cjs/contexts/FlowMeta/FlowMetaContext.cjs.map +1 -1
- package/dist/cjs/contexts/FlowMeta/FlowMetaProvider.cjs +5 -1
- package/dist/cjs/contexts/FlowMeta/FlowMetaProvider.cjs.map +1 -1
- package/dist/cjs/contexts/FlowMeta/useFlowMeta.cjs.map +1 -1
- package/dist/cjs/contexts/I18n/ComponentPreferencesContext.cjs.map +1 -1
- package/dist/cjs/contexts/I18n/I18nContext.cjs.map +1 -1
- package/dist/cjs/contexts/I18n/I18nProvider.cjs.map +1 -1
- package/dist/cjs/contexts/I18n/useI18n.cjs.map +1 -1
- package/dist/cjs/contexts/Theme/ThemeContext.cjs.map +1 -1
- package/dist/cjs/contexts/Theme/ThemeProvider.cjs.map +1 -1
- package/dist/cjs/contexts/Theme/useTheme.cjs.map +1 -1
- package/dist/cjs/contexts/ThunderID/ThunderIDContext.cjs.map +1 -1
- package/dist/cjs/contexts/ThunderID/ThunderIDProvider.cjs +33 -17
- package/dist/cjs/contexts/ThunderID/ThunderIDProvider.cjs.map +1 -1
- package/dist/cjs/contexts/ThunderID/useThunderID.cjs.map +1 -1
- package/dist/cjs/contexts/User/UserContext.cjs.map +1 -1
- package/dist/cjs/contexts/User/UserProvider.cjs.map +1 -1
- package/dist/cjs/contexts/User/useUser.cjs.map +1 -1
- package/dist/cjs/hooks/useBrowserUrl.cjs.map +1 -1
- package/dist/cjs/hooks/useForm.cjs.map +1 -1
- package/dist/cjs/hooks/useOAuthCallback.cjs.map +1 -1
- package/dist/cjs/hooks/useTranslation.cjs.map +1 -1
- package/dist/cjs/utils/applyThemeToDOM.cjs.map +1 -1
- package/dist/cjs/utils/buildThemeConfigFromFlowMeta.cjs.map +1 -1
- package/dist/cjs/utils/composeAffixedInputs.cjs.map +1 -1
- package/dist/cjs/utils/flowTransformer.cjs.map +1 -1
- package/dist/cjs/utils/getAuthComponentHeadings.cjs.map +1 -1
- package/dist/cjs/utils/getDisplayName.cjs.map +1 -1
- package/dist/cjs/utils/getMappedUserProfileValue.cjs.map +1 -1
- package/dist/cjs/utils/normalizeThemeConfig.cjs.map +1 -1
- package/dist/cjs/utils/oauth.cjs.map +1 -1
- package/dist/cjs/utils/passkey.cjs.map +1 -1
- package/dist/cjs/utils/resolveTranslationsInArray.cjs.map +1 -1
- package/dist/cjs/utils/resolveTranslationsInObject.cjs.map +1 -1
- package/dist/components/actions/SignInButton/BaseSignInButton.d.ts +0 -17
- package/dist/components/actions/SignInButton/BaseSignInButton.d.ts.map +1 -1
- package/dist/components/actions/SignInButton/BaseSignInButton.js.map +1 -1
- package/dist/components/actions/SignInButton/SignInButton.d.ts +0 -17
- package/dist/components/actions/SignInButton/SignInButton.d.ts.map +1 -1
- package/dist/components/actions/SignInButton/SignInButton.js.map +1 -1
- package/dist/components/actions/SignOutButton/BaseSignOutButton.d.ts +0 -17
- package/dist/components/actions/SignOutButton/BaseSignOutButton.d.ts.map +1 -1
- package/dist/components/actions/SignOutButton/BaseSignOutButton.js.map +1 -1
- package/dist/components/actions/SignOutButton/SignOutButton.d.ts +0 -17
- package/dist/components/actions/SignOutButton/SignOutButton.d.ts.map +1 -1
- package/dist/components/actions/SignOutButton/SignOutButton.js.map +1 -1
- package/dist/components/actions/SignUpButton/BaseSignUpButton.d.ts +0 -17
- package/dist/components/actions/SignUpButton/BaseSignUpButton.d.ts.map +1 -1
- package/dist/components/actions/SignUpButton/BaseSignUpButton.js.map +1 -1
- package/dist/components/actions/SignUpButton/SignUpButton.d.ts +0 -17
- package/dist/components/actions/SignUpButton/SignUpButton.d.ts.map +1 -1
- package/dist/components/actions/SignUpButton/SignUpButton.js.map +1 -1
- package/dist/components/adapters/Consent.d.ts +0 -17
- package/dist/components/adapters/Consent.d.ts.map +1 -1
- package/dist/components/adapters/Consent.js.map +1 -1
- package/dist/components/adapters/ConsentCheckboxList.d.ts +0 -17
- package/dist/components/adapters/ConsentCheckboxList.d.ts.map +1 -1
- package/dist/components/adapters/ConsentCheckboxList.js.map +1 -1
- package/dist/components/adapters/ConsentCheckboxList.styles.d.ts +0 -17
- package/dist/components/adapters/ConsentCheckboxList.styles.d.ts.map +1 -1
- package/dist/components/adapters/ConsentCheckboxList.styles.js.map +1 -1
- package/dist/components/adapters/FacebookButton.d.ts +0 -17
- package/dist/components/adapters/FacebookButton.d.ts.map +1 -1
- package/dist/components/adapters/FacebookButton.js.map +1 -1
- package/dist/components/adapters/FlowTimer.d.ts +0 -17
- package/dist/components/adapters/FlowTimer.d.ts.map +1 -1
- package/dist/components/adapters/FlowTimer.js.map +1 -1
- package/dist/components/adapters/GitHubButton.d.ts +0 -17
- package/dist/components/adapters/GitHubButton.d.ts.map +1 -1
- package/dist/components/adapters/GitHubButton.js.map +1 -1
- package/dist/components/adapters/GoogleButton.d.ts +0 -17
- package/dist/components/adapters/GoogleButton.d.ts.map +1 -1
- package/dist/components/adapters/GoogleButton.js.map +1 -1
- package/dist/components/adapters/ImageComponent.d.ts +0 -17
- package/dist/components/adapters/ImageComponent.d.ts.map +1 -1
- package/dist/components/adapters/ImageComponent.js.map +1 -1
- package/dist/components/adapters/LinkedInButton.d.ts +0 -17
- package/dist/components/adapters/LinkedInButton.d.ts.map +1 -1
- package/dist/components/adapters/LinkedInButton.js.map +1 -1
- package/dist/components/adapters/MicrosoftButton.d.ts +0 -17
- package/dist/components/adapters/MicrosoftButton.d.ts.map +1 -1
- package/dist/components/adapters/MicrosoftButton.js.map +1 -1
- package/dist/components/adapters/SignInWithEthereumButton.d.ts +0 -17
- package/dist/components/adapters/SignInWithEthereumButton.d.ts.map +1 -1
- package/dist/components/adapters/SignInWithEthereumButton.js.map +1 -1
- package/dist/components/adapters/SmsOtpButton.d.ts +0 -17
- package/dist/components/adapters/SmsOtpButton.d.ts.map +1 -1
- package/dist/components/adapters/SmsOtpButton.js.map +1 -1
- package/dist/components/auth/Callback/Callback.d.ts.map +1 -1
- package/dist/components/auth/Callback/Callback.js.map +1 -1
- package/dist/components/auth/Callback/OAuthCallback.d.ts +0 -17
- package/dist/components/auth/Callback/OAuthCallback.d.ts.map +1 -1
- package/dist/components/auth/Callback/OAuthCallback.js.map +1 -1
- package/dist/components/auth/Callback/TokenCallback.d.ts +0 -16
- package/dist/components/auth/Callback/TokenCallback.d.ts.map +1 -1
- package/dist/components/auth/Callback/TokenCallback.js.map +1 -1
- package/dist/components/control/Loading.d.ts +0 -17
- package/dist/components/control/Loading.d.ts.map +1 -1
- package/dist/components/control/Loading.js.map +1 -1
- package/dist/components/control/SignedIn.d.ts +0 -17
- package/dist/components/control/SignedIn.d.ts.map +1 -1
- package/dist/components/control/SignedIn.js.map +1 -1
- package/dist/components/control/SignedOut.d.ts +0 -17
- package/dist/components/control/SignedOut.d.ts.map +1 -1
- package/dist/components/control/SignedOut.js.map +1 -1
- package/dist/components/factories/FieldFactory.d.ts +0 -17
- package/dist/components/factories/FieldFactory.d.ts.map +1 -1
- package/dist/components/factories/FieldFactory.js.map +1 -1
- package/dist/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.d.ts +0 -17
- package/dist/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.d.ts.map +1 -1
- package/dist/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.js.map +1 -1
- package/dist/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.styles.d.ts +0 -17
- package/dist/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.styles.d.ts.map +1 -1
- package/dist/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.styles.js.map +1 -1
- package/dist/components/presentation/LanguageSwitcher/LanguageSwitcher.d.ts +0 -17
- package/dist/components/presentation/LanguageSwitcher/LanguageSwitcher.d.ts.map +1 -1
- package/dist/components/presentation/LanguageSwitcher/LanguageSwitcher.js.map +1 -1
- package/dist/components/presentation/User/BaseUser.d.ts +0 -17
- package/dist/components/presentation/User/BaseUser.d.ts.map +1 -1
- package/dist/components/presentation/User/BaseUser.js.map +1 -1
- package/dist/components/presentation/User/User.d.ts +0 -17
- package/dist/components/presentation/User/User.d.ts.map +1 -1
- package/dist/components/presentation/User/User.js.map +1 -1
- package/dist/components/presentation/UserAvatar/BaseUserAvatar.d.ts +0 -17
- package/dist/components/presentation/UserAvatar/BaseUserAvatar.d.ts.map +1 -1
- package/dist/components/presentation/UserAvatar/BaseUserAvatar.js.map +1 -1
- package/dist/components/presentation/UserAvatar/UserAvatar.d.ts +0 -17
- package/dist/components/presentation/UserAvatar/UserAvatar.d.ts.map +1 -1
- package/dist/components/presentation/UserAvatar/UserAvatar.js.map +1 -1
- package/dist/components/presentation/UserDropdown/BaseUserDropdown.d.ts +0 -17
- package/dist/components/presentation/UserDropdown/BaseUserDropdown.d.ts.map +1 -1
- package/dist/components/presentation/UserDropdown/BaseUserDropdown.js.map +1 -1
- package/dist/components/presentation/UserDropdown/BaseUserDropdown.styles.d.ts +0 -17
- package/dist/components/presentation/UserDropdown/BaseUserDropdown.styles.d.ts.map +1 -1
- package/dist/components/presentation/UserDropdown/BaseUserDropdown.styles.js.map +1 -1
- package/dist/components/presentation/UserDropdown/UserDropdown.d.ts +0 -17
- package/dist/components/presentation/UserDropdown/UserDropdown.d.ts.map +1 -1
- package/dist/components/presentation/UserDropdown/UserDropdown.js.map +1 -1
- package/dist/components/presentation/UserProfile/BaseUserProfile.d.ts +0 -17
- package/dist/components/presentation/UserProfile/BaseUserProfile.d.ts.map +1 -1
- package/dist/components/presentation/UserProfile/BaseUserProfile.js.map +1 -1
- package/dist/components/presentation/UserProfile/BaseUserProfile.styles.d.ts +0 -17
- package/dist/components/presentation/UserProfile/BaseUserProfile.styles.d.ts.map +1 -1
- package/dist/components/presentation/UserProfile/BaseUserProfile.styles.js.map +1 -1
- package/dist/components/presentation/UserProfile/UserProfile.d.ts +0 -17
- package/dist/components/presentation/UserProfile/UserProfile.d.ts.map +1 -1
- package/dist/components/presentation/UserProfile/UserProfile.js.map +1 -1
- package/dist/components/presentation/auth/AcceptInvite/AcceptInvite.d.ts +0 -17
- package/dist/components/presentation/auth/AcceptInvite/AcceptInvite.d.ts.map +1 -1
- package/dist/components/presentation/auth/AcceptInvite/AcceptInvite.js +2 -4
- package/dist/components/presentation/auth/AcceptInvite/AcceptInvite.js.map +1 -1
- package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.d.ts +0 -17
- package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.d.ts.map +1 -1
- package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.js.map +1 -1
- package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.styles.d.ts +0 -17
- package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.styles.d.ts.map +1 -1
- package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.styles.js.map +1 -1
- package/dist/components/presentation/auth/AcceptInvite/index.d.ts +0 -17
- package/dist/components/presentation/auth/AcceptInvite/index.d.ts.map +1 -1
- package/dist/components/presentation/auth/AuthOptionFactory.d.ts +0 -17
- package/dist/components/presentation/auth/AuthOptionFactory.d.ts.map +1 -1
- package/dist/components/presentation/auth/AuthOptionFactory.js.map +1 -1
- package/dist/components/presentation/auth/InviteUser/BaseInviteUser.d.ts +0 -17
- package/dist/components/presentation/auth/InviteUser/BaseInviteUser.d.ts.map +1 -1
- package/dist/components/presentation/auth/InviteUser/BaseInviteUser.js.map +1 -1
- package/dist/components/presentation/auth/InviteUser/BaseInviteUser.styles.d.ts +0 -17
- package/dist/components/presentation/auth/InviteUser/BaseInviteUser.styles.d.ts.map +1 -1
- package/dist/components/presentation/auth/InviteUser/BaseInviteUser.styles.js.map +1 -1
- package/dist/components/presentation/auth/InviteUser/InviteUser.d.ts +0 -17
- package/dist/components/presentation/auth/InviteUser/InviteUser.d.ts.map +1 -1
- package/dist/components/presentation/auth/InviteUser/InviteUser.js +5 -4
- package/dist/components/presentation/auth/InviteUser/InviteUser.js.map +1 -1
- package/dist/components/presentation/auth/InviteUser/index.d.ts +0 -17
- package/dist/components/presentation/auth/InviteUser/index.d.ts.map +1 -1
- package/dist/components/presentation/auth/Recovery/BaseRecovery.d.ts +0 -17
- package/dist/components/presentation/auth/Recovery/BaseRecovery.d.ts.map +1 -1
- package/dist/components/presentation/auth/Recovery/BaseRecovery.js.map +1 -1
- package/dist/components/presentation/auth/Recovery/Recovery.d.ts +0 -17
- package/dist/components/presentation/auth/Recovery/Recovery.d.ts.map +1 -1
- package/dist/components/presentation/auth/Recovery/Recovery.js.map +1 -1
- package/dist/components/presentation/auth/SignIn/BaseSignIn.d.ts +0 -17
- package/dist/components/presentation/auth/SignIn/BaseSignIn.d.ts.map +1 -1
- package/dist/components/presentation/auth/SignIn/BaseSignIn.js.map +1 -1
- package/dist/components/presentation/auth/SignIn/BaseSignIn.styles.d.ts +0 -17
- package/dist/components/presentation/auth/SignIn/BaseSignIn.styles.d.ts.map +1 -1
- package/dist/components/presentation/auth/SignIn/BaseSignIn.styles.js.map +1 -1
- package/dist/components/presentation/auth/SignIn/SignIn.d.ts +0 -17
- package/dist/components/presentation/auth/SignIn/SignIn.d.ts.map +1 -1
- package/dist/components/presentation/auth/SignIn/SignIn.js +10 -1
- package/dist/components/presentation/auth/SignIn/SignIn.js.map +1 -1
- package/dist/components/presentation/auth/SignUp/BaseSignUp.d.ts +0 -17
- package/dist/components/presentation/auth/SignUp/BaseSignUp.d.ts.map +1 -1
- package/dist/components/presentation/auth/SignUp/BaseSignUp.js.map +1 -1
- package/dist/components/presentation/auth/SignUp/BaseSignUp.styles.d.ts +0 -17
- package/dist/components/presentation/auth/SignUp/BaseSignUp.styles.d.ts.map +1 -1
- package/dist/components/presentation/auth/SignUp/BaseSignUp.styles.js.map +1 -1
- package/dist/components/presentation/auth/SignUp/SignUp.d.ts +0 -17
- package/dist/components/presentation/auth/SignUp/SignUp.d.ts.map +1 -1
- package/dist/components/presentation/auth/SignUp/SignUp.js.map +1 -1
- package/dist/components/primitives/AffixedField/AffixedField.d.ts +0 -17
- package/dist/components/primitives/AffixedField/AffixedField.d.ts.map +1 -1
- package/dist/components/primitives/AffixedField/AffixedField.js.map +1 -1
- package/dist/components/primitives/AffixedField/AffixedField.styles.d.ts +0 -17
- package/dist/components/primitives/AffixedField/AffixedField.styles.d.ts.map +1 -1
- package/dist/components/primitives/AffixedField/AffixedField.styles.js.map +1 -1
- package/dist/components/primitives/AffixedField/index.d.ts +0 -17
- package/dist/components/primitives/AffixedField/index.d.ts.map +1 -1
- package/dist/components/primitives/Alert/Alert.d.ts +0 -17
- package/dist/components/primitives/Alert/Alert.d.ts.map +1 -1
- package/dist/components/primitives/Alert/Alert.js.map +1 -1
- package/dist/components/primitives/Alert/Alert.styles.d.ts +0 -17
- package/dist/components/primitives/Alert/Alert.styles.d.ts.map +1 -1
- package/dist/components/primitives/Alert/Alert.styles.js.map +1 -1
- package/dist/components/primitives/Avatar/Avatar.d.ts +0 -17
- package/dist/components/primitives/Avatar/Avatar.d.ts.map +1 -1
- package/dist/components/primitives/Avatar/Avatar.js.map +1 -1
- package/dist/components/primitives/Avatar/Avatar.styles.d.ts +0 -17
- package/dist/components/primitives/Avatar/Avatar.styles.d.ts.map +1 -1
- package/dist/components/primitives/Avatar/Avatar.styles.js.map +1 -1
- package/dist/components/primitives/Button/Button.d.ts +0 -17
- package/dist/components/primitives/Button/Button.d.ts.map +1 -1
- package/dist/components/primitives/Button/Button.js.map +1 -1
- package/dist/components/primitives/Button/Button.styles.d.ts +0 -17
- package/dist/components/primitives/Button/Button.styles.d.ts.map +1 -1
- package/dist/components/primitives/Button/Button.styles.js.map +1 -1
- package/dist/components/primitives/Card/Card.d.ts +0 -17
- package/dist/components/primitives/Card/Card.d.ts.map +1 -1
- package/dist/components/primitives/Card/Card.js.map +1 -1
- package/dist/components/primitives/Card/Card.styles.d.ts +0 -17
- package/dist/components/primitives/Card/Card.styles.d.ts.map +1 -1
- package/dist/components/primitives/Card/Card.styles.js.map +1 -1
- package/dist/components/primitives/Checkbox/Checkbox.d.ts +0 -17
- package/dist/components/primitives/Checkbox/Checkbox.d.ts.map +1 -1
- package/dist/components/primitives/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/primitives/Checkbox/Checkbox.styles.d.ts +0 -17
- package/dist/components/primitives/Checkbox/Checkbox.styles.d.ts.map +1 -1
- package/dist/components/primitives/Checkbox/Checkbox.styles.js.map +1 -1
- package/dist/components/primitives/CopyableText/CopyableText.d.ts +0 -17
- package/dist/components/primitives/CopyableText/CopyableText.d.ts.map +1 -1
- package/dist/components/primitives/CopyableText/CopyableText.js.map +1 -1
- package/dist/components/primitives/CopyableText/CopyableText.styles.d.ts +0 -17
- package/dist/components/primitives/CopyableText/CopyableText.styles.d.ts.map +1 -1
- package/dist/components/primitives/CopyableText/CopyableText.styles.js.map +1 -1
- package/dist/components/primitives/CopyableText/index.d.ts +0 -17
- package/dist/components/primitives/CopyableText/index.d.ts.map +1 -1
- package/dist/components/primitives/DatePicker/DatePicker.d.ts +0 -17
- package/dist/components/primitives/DatePicker/DatePicker.d.ts.map +1 -1
- package/dist/components/primitives/DatePicker/DatePicker.js.map +1 -1
- package/dist/components/primitives/DatePicker/DatePicker.styles.d.ts +0 -17
- package/dist/components/primitives/DatePicker/DatePicker.styles.d.ts.map +1 -1
- package/dist/components/primitives/DatePicker/DatePicker.styles.js.map +1 -1
- package/dist/components/primitives/Dialog/Dialog.d.ts +0 -17
- package/dist/components/primitives/Dialog/Dialog.d.ts.map +1 -1
- package/dist/components/primitives/Dialog/Dialog.js.map +1 -1
- package/dist/components/primitives/Dialog/Dialog.styles.d.ts +0 -17
- package/dist/components/primitives/Dialog/Dialog.styles.d.ts.map +1 -1
- package/dist/components/primitives/Dialog/Dialog.styles.js.map +1 -1
- package/dist/components/primitives/Divider/Divider.d.ts +0 -17
- package/dist/components/primitives/Divider/Divider.d.ts.map +1 -1
- package/dist/components/primitives/Divider/Divider.js.map +1 -1
- package/dist/components/primitives/Divider/Divider.styles.d.ts +0 -17
- package/dist/components/primitives/Divider/Divider.styles.d.ts.map +1 -1
- package/dist/components/primitives/Divider/Divider.styles.js.map +1 -1
- package/dist/components/primitives/FormControl/FormControl.d.ts +0 -17
- package/dist/components/primitives/FormControl/FormControl.d.ts.map +1 -1
- package/dist/components/primitives/FormControl/FormControl.js.map +1 -1
- package/dist/components/primitives/FormControl/FormControl.styles.d.ts +0 -17
- package/dist/components/primitives/FormControl/FormControl.styles.d.ts.map +1 -1
- package/dist/components/primitives/FormControl/FormControl.styles.js.map +1 -1
- package/dist/components/primitives/Icons/ArrowLeftRight.d.ts +0 -17
- package/dist/components/primitives/Icons/ArrowLeftRight.d.ts.map +1 -1
- package/dist/components/primitives/Icons/ArrowLeftRight.js.map +1 -1
- package/dist/components/primitives/Icons/ArrowRightLeft.d.ts +0 -17
- package/dist/components/primitives/Icons/ArrowRightLeft.d.ts.map +1 -1
- package/dist/components/primitives/Icons/ArrowRightLeft.js.map +1 -1
- package/dist/components/primitives/Icons/Building.d.ts +0 -17
- package/dist/components/primitives/Icons/Building.d.ts.map +1 -1
- package/dist/components/primitives/Icons/BuildingAlt.d.ts +0 -17
- package/dist/components/primitives/Icons/BuildingAlt.d.ts.map +1 -1
- package/dist/components/primitives/Icons/BuildingAlt.js.map +1 -1
- package/dist/components/primitives/Icons/Check.d.ts +0 -17
- package/dist/components/primitives/Icons/Check.d.ts.map +1 -1
- package/dist/components/primitives/Icons/Check.js.map +1 -1
- package/dist/components/primitives/Icons/ChevronDown.d.ts +0 -17
- package/dist/components/primitives/Icons/ChevronDown.d.ts.map +1 -1
- package/dist/components/primitives/Icons/ChevronDown.js.map +1 -1
- package/dist/components/primitives/Icons/CircleAlert.d.ts +0 -17
- package/dist/components/primitives/Icons/CircleAlert.d.ts.map +1 -1
- package/dist/components/primitives/Icons/CircleAlert.js.map +1 -1
- package/dist/components/primitives/Icons/CircleCheck.d.ts +0 -17
- package/dist/components/primitives/Icons/CircleCheck.d.ts.map +1 -1
- package/dist/components/primitives/Icons/CircleCheck.js.map +1 -1
- package/dist/components/primitives/Icons/Eye.d.ts +0 -17
- package/dist/components/primitives/Icons/Eye.d.ts.map +1 -1
- package/dist/components/primitives/Icons/Eye.js.map +1 -1
- package/dist/components/primitives/Icons/EyeOff.d.ts +0 -17
- package/dist/components/primitives/Icons/EyeOff.d.ts.map +1 -1
- package/dist/components/primitives/Icons/EyeOff.js.map +1 -1
- package/dist/components/primitives/Icons/Info.d.ts +0 -17
- package/dist/components/primitives/Icons/Info.d.ts.map +1 -1
- package/dist/components/primitives/Icons/Info.js.map +1 -1
- package/dist/components/primitives/Icons/LogOut.d.ts +0 -17
- package/dist/components/primitives/Icons/LogOut.d.ts.map +1 -1
- package/dist/components/primitives/Icons/LogOut.js.map +1 -1
- package/dist/components/primitives/Icons/Plus.d.ts +0 -17
- package/dist/components/primitives/Icons/Plus.d.ts.map +1 -1
- package/dist/components/primitives/Icons/Plus.js.map +1 -1
- package/dist/components/primitives/Icons/TriangleAlert.d.ts +0 -17
- package/dist/components/primitives/Icons/TriangleAlert.d.ts.map +1 -1
- package/dist/components/primitives/Icons/TriangleAlert.js.map +1 -1
- package/dist/components/primitives/Icons/User.d.ts +0 -17
- package/dist/components/primitives/Icons/User.d.ts.map +1 -1
- package/dist/components/primitives/Icons/User.js.map +1 -1
- package/dist/components/primitives/Icons/X.d.ts +0 -17
- package/dist/components/primitives/Icons/X.d.ts.map +1 -1
- package/dist/components/primitives/Icons/X.js.map +1 -1
- package/dist/components/primitives/Icons/flowIconRegistry.d.ts +0 -17
- package/dist/components/primitives/Icons/flowIconRegistry.d.ts.map +1 -1
- package/dist/components/primitives/Icons/flowIconRegistry.js.map +1 -1
- package/dist/components/primitives/Icons/index.d.ts +0 -17
- package/dist/components/primitives/Icons/index.d.ts.map +1 -1
- package/dist/components/primitives/InputLabel/InputLabel.d.ts +0 -17
- package/dist/components/primitives/InputLabel/InputLabel.d.ts.map +1 -1
- package/dist/components/primitives/InputLabel/InputLabel.js.map +1 -1
- package/dist/components/primitives/InputLabel/InputLabel.styles.d.ts +0 -17
- package/dist/components/primitives/InputLabel/InputLabel.styles.d.ts.map +1 -1
- package/dist/components/primitives/InputLabel/InputLabel.styles.js.map +1 -1
- package/dist/components/primitives/KeyValueInput/KeyValueInput.d.ts +0 -17
- package/dist/components/primitives/KeyValueInput/KeyValueInput.d.ts.map +1 -1
- package/dist/components/primitives/KeyValueInput/KeyValueInput.js.map +1 -1
- package/dist/components/primitives/KeyValueInput/KeyValueInput.styles.d.ts +0 -17
- package/dist/components/primitives/KeyValueInput/KeyValueInput.styles.d.ts.map +1 -1
- package/dist/components/primitives/KeyValueInput/KeyValueInput.styles.js.map +1 -1
- package/dist/components/primitives/Logo/Logo.d.ts +0 -17
- package/dist/components/primitives/Logo/Logo.d.ts.map +1 -1
- package/dist/components/primitives/Logo/Logo.js.map +1 -1
- package/dist/components/primitives/Logo/Logo.styles.d.ts +0 -17
- package/dist/components/primitives/Logo/Logo.styles.d.ts.map +1 -1
- package/dist/components/primitives/Logo/Logo.styles.js.map +1 -1
- package/dist/components/primitives/MultiInput/MultiInput.d.ts +0 -17
- package/dist/components/primitives/MultiInput/MultiInput.d.ts.map +1 -1
- package/dist/components/primitives/MultiInput/MultiInput.js.map +1 -1
- package/dist/components/primitives/MultiInput/MultiInput.styles.d.ts +0 -17
- package/dist/components/primitives/MultiInput/MultiInput.styles.d.ts.map +1 -1
- package/dist/components/primitives/MultiInput/MultiInput.styles.js.map +1 -1
- package/dist/components/primitives/OtpField/OtpField.d.ts +0 -17
- package/dist/components/primitives/OtpField/OtpField.d.ts.map +1 -1
- package/dist/components/primitives/OtpField/OtpField.js.map +1 -1
- package/dist/components/primitives/OtpField/OtpField.styles.d.ts +0 -17
- package/dist/components/primitives/OtpField/OtpField.styles.d.ts.map +1 -1
- package/dist/components/primitives/OtpField/OtpField.styles.js.map +1 -1
- package/dist/components/primitives/PasswordField/PasswordField.d.ts +0 -17
- package/dist/components/primitives/PasswordField/PasswordField.d.ts.map +1 -1
- package/dist/components/primitives/PasswordField/PasswordField.js.map +1 -1
- package/dist/components/primitives/PasswordField/PasswordField.styles.d.ts +0 -17
- package/dist/components/primitives/PasswordField/PasswordField.styles.d.ts.map +1 -1
- package/dist/components/primitives/PasswordField/PasswordField.styles.js.map +1 -1
- package/dist/components/primitives/Select/Select.d.ts +0 -17
- package/dist/components/primitives/Select/Select.d.ts.map +1 -1
- package/dist/components/primitives/Select/Select.js.map +1 -1
- package/dist/components/primitives/Select/Select.styles.d.ts +0 -17
- package/dist/components/primitives/Select/Select.styles.d.ts.map +1 -1
- package/dist/components/primitives/Select/Select.styles.js.map +1 -1
- package/dist/components/primitives/Spinner/Spinner.d.ts +0 -17
- package/dist/components/primitives/Spinner/Spinner.d.ts.map +1 -1
- package/dist/components/primitives/Spinner/Spinner.js.map +1 -1
- package/dist/components/primitives/Spinner/Spinner.styles.d.ts +0 -17
- package/dist/components/primitives/Spinner/Spinner.styles.d.ts.map +1 -1
- package/dist/components/primitives/Spinner/Spinner.styles.js.map +1 -1
- package/dist/components/primitives/TextField/TextField.d.ts +0 -17
- package/dist/components/primitives/TextField/TextField.d.ts.map +1 -1
- package/dist/components/primitives/TextField/TextField.js.map +1 -1
- package/dist/components/primitives/TextField/TextField.styles.d.ts +0 -17
- package/dist/components/primitives/TextField/TextField.styles.d.ts.map +1 -1
- package/dist/components/primitives/TextField/TextField.styles.js.map +1 -1
- package/dist/components/primitives/Toggle/Toggle.d.ts +0 -17
- package/dist/components/primitives/Toggle/Toggle.d.ts.map +1 -1
- package/dist/components/primitives/Toggle/Toggle.js.map +1 -1
- package/dist/components/primitives/Toggle/Toggle.styles.d.ts +0 -17
- package/dist/components/primitives/Toggle/Toggle.styles.d.ts.map +1 -1
- package/dist/components/primitives/Toggle/Toggle.styles.js.map +1 -1
- package/dist/components/primitives/Tooltip/Tooltip.d.ts +0 -17
- package/dist/components/primitives/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/components/primitives/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/primitives/Tooltip/Tooltip.styles.d.ts +0 -17
- package/dist/components/primitives/Tooltip/Tooltip.styles.d.ts.map +1 -1
- package/dist/components/primitives/Tooltip/Tooltip.styles.js.map +1 -1
- package/dist/components/primitives/Typography/Typography.d.ts +0 -17
- package/dist/components/primitives/Typography/Typography.d.ts.map +1 -1
- package/dist/components/primitives/Typography/Typography.js.map +1 -1
- package/dist/components/primitives/Typography/Typography.styles.d.ts +0 -17
- package/dist/components/primitives/Typography/Typography.styles.d.ts.map +1 -1
- package/dist/components/primitives/Typography/Typography.styles.js.map +1 -1
- package/dist/contexts/ComponentRenderer/ComponentRendererContext.d.ts +0 -17
- package/dist/contexts/ComponentRenderer/ComponentRendererContext.d.ts.map +1 -1
- package/dist/contexts/ComponentRenderer/ComponentRendererContext.js.map +1 -1
- package/dist/contexts/ComponentRenderer/ComponentRendererProvider.d.ts +0 -17
- package/dist/contexts/ComponentRenderer/ComponentRendererProvider.d.ts.map +1 -1
- package/dist/contexts/ComponentRenderer/ComponentRendererProvider.js.map +1 -1
- package/dist/contexts/Flow/FlowContext.d.ts +0 -17
- package/dist/contexts/Flow/FlowContext.d.ts.map +1 -1
- package/dist/contexts/Flow/FlowContext.js.map +1 -1
- package/dist/contexts/Flow/FlowProvider.d.ts +0 -17
- package/dist/contexts/Flow/FlowProvider.d.ts.map +1 -1
- package/dist/contexts/Flow/FlowProvider.js.map +1 -1
- package/dist/contexts/Flow/useFlow.d.ts +0 -17
- package/dist/contexts/Flow/useFlow.d.ts.map +1 -1
- package/dist/contexts/Flow/useFlow.js.map +1 -1
- package/dist/contexts/FlowMeta/FlowMetaContext.d.ts +0 -17
- package/dist/contexts/FlowMeta/FlowMetaContext.d.ts.map +1 -1
- package/dist/contexts/FlowMeta/FlowMetaContext.js.map +1 -1
- package/dist/contexts/FlowMeta/FlowMetaProvider.d.ts +0 -17
- package/dist/contexts/FlowMeta/FlowMetaProvider.d.ts.map +1 -1
- package/dist/contexts/FlowMeta/FlowMetaProvider.js +6 -2
- package/dist/contexts/FlowMeta/FlowMetaProvider.js.map +1 -1
- package/dist/contexts/FlowMeta/useFlowMeta.d.ts +0 -17
- package/dist/contexts/FlowMeta/useFlowMeta.d.ts.map +1 -1
- package/dist/contexts/FlowMeta/useFlowMeta.js.map +1 -1
- package/dist/contexts/I18n/ComponentPreferencesContext.d.ts +0 -17
- package/dist/contexts/I18n/ComponentPreferencesContext.d.ts.map +1 -1
- package/dist/contexts/I18n/ComponentPreferencesContext.js.map +1 -1
- package/dist/contexts/I18n/I18nContext.d.ts +0 -17
- package/dist/contexts/I18n/I18nContext.d.ts.map +1 -1
- package/dist/contexts/I18n/I18nContext.js.map +1 -1
- package/dist/contexts/I18n/I18nProvider.d.ts +0 -17
- package/dist/contexts/I18n/I18nProvider.d.ts.map +1 -1
- package/dist/contexts/I18n/I18nProvider.js.map +1 -1
- package/dist/contexts/I18n/useI18n.d.ts +0 -17
- package/dist/contexts/I18n/useI18n.d.ts.map +1 -1
- package/dist/contexts/I18n/useI18n.js.map +1 -1
- package/dist/contexts/Theme/ThemeContext.d.ts +0 -17
- package/dist/contexts/Theme/ThemeContext.d.ts.map +1 -1
- package/dist/contexts/Theme/ThemeContext.js.map +1 -1
- package/dist/contexts/Theme/ThemeProvider.d.ts +0 -17
- package/dist/contexts/Theme/ThemeProvider.d.ts.map +1 -1
- package/dist/contexts/Theme/ThemeProvider.js.map +1 -1
- package/dist/contexts/Theme/types.d.ts +0 -17
- package/dist/contexts/Theme/types.d.ts.map +1 -1
- package/dist/contexts/Theme/useTheme.d.ts +0 -17
- package/dist/contexts/Theme/useTheme.d.ts.map +1 -1
- package/dist/contexts/Theme/useTheme.js.map +1 -1
- package/dist/contexts/ThunderID/ThunderIDContext.d.ts +5 -17
- package/dist/contexts/ThunderID/ThunderIDContext.d.ts.map +1 -1
- package/dist/contexts/ThunderID/ThunderIDContext.js.map +1 -1
- package/dist/contexts/ThunderID/ThunderIDProvider.d.ts +0 -17
- package/dist/contexts/ThunderID/ThunderIDProvider.d.ts.map +1 -1
- package/dist/contexts/ThunderID/ThunderIDProvider.js +34 -18
- package/dist/contexts/ThunderID/ThunderIDProvider.js.map +1 -1
- package/dist/contexts/ThunderID/useThunderID.d.ts +0 -17
- package/dist/contexts/ThunderID/useThunderID.d.ts.map +1 -1
- package/dist/contexts/ThunderID/useThunderID.js.map +1 -1
- package/dist/contexts/User/UserContext.d.ts +0 -17
- package/dist/contexts/User/UserContext.d.ts.map +1 -1
- package/dist/contexts/User/UserContext.js.map +1 -1
- package/dist/contexts/User/UserProvider.d.ts +0 -17
- package/dist/contexts/User/UserProvider.d.ts.map +1 -1
- package/dist/contexts/User/UserProvider.js.map +1 -1
- package/dist/contexts/User/useUser.d.ts +0 -17
- package/dist/contexts/User/useUser.d.ts.map +1 -1
- package/dist/contexts/User/useUser.js.map +1 -1
- package/dist/hooks/useBrowserUrl.d.ts +0 -17
- package/dist/hooks/useBrowserUrl.d.ts.map +1 -1
- package/dist/hooks/useBrowserUrl.js.map +1 -1
- package/dist/hooks/useForm.d.ts +0 -17
- package/dist/hooks/useForm.d.ts.map +1 -1
- package/dist/hooks/useForm.js.map +1 -1
- package/dist/hooks/useOAuthCallback.d.ts +0 -17
- package/dist/hooks/useOAuthCallback.d.ts.map +1 -1
- package/dist/hooks/useOAuthCallback.js.map +1 -1
- package/dist/hooks/useTranslation.d.ts +0 -17
- package/dist/hooks/useTranslation.d.ts.map +1 -1
- package/dist/hooks/useTranslation.js.map +1 -1
- package/dist/index.d.ts +0 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/models/adapters.d.ts +0 -17
- package/dist/models/adapters.d.ts.map +1 -1
- package/dist/models/config.d.ts +0 -17
- package/dist/models/config.d.ts.map +1 -1
- package/dist/utils/applyThemeToDOM.d.ts +0 -17
- package/dist/utils/applyThemeToDOM.d.ts.map +1 -1
- package/dist/utils/applyThemeToDOM.js.map +1 -1
- package/dist/utils/buildThemeConfigFromFlowMeta.d.ts +0 -17
- package/dist/utils/buildThemeConfigFromFlowMeta.d.ts.map +1 -1
- package/dist/utils/buildThemeConfigFromFlowMeta.js.map +1 -1
- package/dist/utils/composeAffixedInputs.d.ts +0 -17
- package/dist/utils/composeAffixedInputs.d.ts.map +1 -1
- package/dist/utils/composeAffixedInputs.js.map +1 -1
- package/dist/utils/flowTransformer.d.ts +0 -17
- package/dist/utils/flowTransformer.d.ts.map +1 -1
- package/dist/utils/flowTransformer.js.map +1 -1
- package/dist/utils/getAuthComponentHeadings.d.ts +0 -17
- package/dist/utils/getAuthComponentHeadings.d.ts.map +1 -1
- package/dist/utils/getAuthComponentHeadings.js.map +1 -1
- package/dist/utils/getDisplayName.d.ts +0 -17
- package/dist/utils/getDisplayName.d.ts.map +1 -1
- package/dist/utils/getDisplayName.js.map +1 -1
- package/dist/utils/getMappedUserProfileValue.d.ts +0 -17
- package/dist/utils/getMappedUserProfileValue.d.ts.map +1 -1
- package/dist/utils/getMappedUserProfileValue.js.map +1 -1
- package/dist/utils/normalizeThemeConfig.d.ts +0 -17
- package/dist/utils/normalizeThemeConfig.d.ts.map +1 -1
- package/dist/utils/normalizeThemeConfig.js.map +1 -1
- package/dist/utils/oauth.d.ts +0 -17
- package/dist/utils/oauth.d.ts.map +1 -1
- package/dist/utils/oauth.js.map +1 -1
- package/dist/utils/passkey.d.ts +0 -17
- package/dist/utils/passkey.d.ts.map +1 -1
- package/dist/utils/passkey.js.map +1 -1
- package/dist/utils/resolveTranslationsInArray.d.ts +0 -17
- package/dist/utils/resolveTranslationsInArray.d.ts.map +1 -1
- package/dist/utils/resolveTranslationsInArray.js.map +1 -1
- package/dist/utils/resolveTranslationsInObject.d.ts +0 -17
- package/dist/utils/resolveTranslationsInObject.d.ts.map +1 -1
- package/dist/utils/resolveTranslationsInObject.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"I18nContext.d.ts","sourceRoot":"","sources":["../../../src/contexts/I18n/I18nContext.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"I18nContext.d.ts","sourceRoot":"","sources":["../../../src/contexts/I18n/I18nContext.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAC,OAAO,EAAgB,MAAM,OAAO,CAAC;AAE7C,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAEpC;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;IAE7D;;OAEG;IACH,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAExC;;OAEG;IACH,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,MAAM,CAAC;CACtE;AAED,QAAA,MAAM,WAAW,EAAE,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAgD,CAAC;AAInG,eAAe,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"I18nContext.js","names":["I18nContext: Context<I18nContextValue | null>"],"sources":["../../../src/contexts/I18n/I18nContext.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"I18nContext.js","names":["I18nContext: Context<I18nContextValue | null>"],"sources":["../../../src/contexts/I18n/I18nContext.ts"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {I18nBundle} from '@thunderid/browser';\nimport {Context, createContext} from 'react';\n\nexport interface I18nContextValue {\n /**\n * All available i18n bundles (default + user provided)\n */\n bundles: Record<string, I18nBundle>;\n\n /**\n * The current language code (e.g., 'en-US', 'fr-FR')\n */\n currentLanguage: string;\n\n /**\n * The fallback language code\n */\n fallbackLanguage: string;\n\n /**\n * Injects additional bundles into the i18n system (e.g., from flow metadata).\n * Injected bundles take precedence over defaults but are overridden by prop-provided bundles.\n */\n injectBundles: (bundles: Record<string, I18nBundle>) => void;\n\n /**\n * Function to change the current language\n */\n setLanguage: (language: string) => void;\n\n /**\n * Function to get a translation by key with optional parameters\n */\n t: (key: string, params?: Record<string, string | number>) => string;\n}\n\nconst I18nContext: Context<I18nContextValue | null> = createContext<I18nContextValue | null>(null);\n\nI18nContext.displayName = 'I18nContext';\n\nexport default I18nContext;\n"],"mappings":";;;AAuCA,MAAMA,cAAgD,cAAuC,KAAK;AAElG,YAAY,cAAc;AAE1B,0BAAe"}
|
|
@@ -1,20 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com).
|
|
3
|
-
*
|
|
4
|
-
* WSO2 LLC. licenses this file to you under the Apache License,
|
|
5
|
-
* Version 2.0 (the "License"); you may not use this file except
|
|
6
|
-
* in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at
|
|
8
|
-
*
|
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing,
|
|
12
|
-
* software distributed under the License is distributed on an
|
|
13
|
-
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
14
|
-
* KIND, either express or implied. See the License for the
|
|
15
|
-
* specific language governing permissions and limitations
|
|
16
|
-
* under the License.
|
|
17
|
-
*/
|
|
18
1
|
import { I18nPreferences } from '@thunderid/browser';
|
|
19
2
|
import { FC, PropsWithChildren } from 'react';
|
|
20
3
|
export interface I18nProviderProps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"I18nProvider.d.ts","sourceRoot":"","sources":["../../../src/contexts/I18n/I18nProvider.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"I18nProvider.d.ts","sourceRoot":"","sources":["../../../src/contexts/I18n/I18nProvider.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEL,eAAe,EAShB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,EAAE,EAAE,iBAAiB,EAA0D,MAAM,OAAO,CAAC;AAUrG,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;IAE9B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAqFD;;;GAGG;AACH,QAAA,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CA6L1D,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"I18nProvider.js","names":["logger: ReturnType<typeof createPackageComponentLogger>","parts: string[]","match: RegExpMatchArray | null","maxAge: number","secure: string","domain: string","I18nProvider: FC<PropsWithChildren<I18nProviderProps>>","defaultBundles: Record<string, I18nBundle>","storageStrategy: I18nStorageStrategy","storageKey: string","urlParamConfig: string | false","resolvedCookieDomain: string | undefined","storage: StorageAdapter","urlLanguage: string | null","storedLanguage: string | null","browserLanguage: string","injectBundles: (newBundles: Record<string, I18nBundle>) => void","merged: Record<string, I18nBundle>","normalizedTranslations: I18nTranslations","mergedBundles: Record<string, I18nBundle>","languageKey: string","fallbackLanguage: string","t: (key: string, params?: Record<string, string | number>) => string","translation: string | undefined","currentBundle: I18nBundle | undefined","fallbackBundle: I18nBundle | undefined","setLanguage: (language: string) => void","contextValue: I18nContextValue","I18nContext"],"sources":["../../../src/contexts/I18n/I18nProvider.tsx"],"sourcesContent":["/**\n * Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com).\n *\n * WSO2 LLC. licenses this file to you under the Apache License,\n * Version 2.0 (the \"License\"); you may not use this file except\n * in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport {\n deepMerge,\n I18nPreferences,\n I18nStorageStrategy,\n createPackageComponentLogger,\n I18nBundle,\n I18nTranslations,\n TranslationBundleConstants,\n getDefaultI18nBundles,\n normalizeTranslations,\n getVendorPrefix,\n} from '@thunderid/browser';\nimport {FC, PropsWithChildren, ReactElement, useCallback, useEffect, useMemo, useState} from 'react';\nimport I18nContext, {I18nContextValue} from './I18nContext';\n\nconst logger: ReturnType<typeof createPackageComponentLogger> = createPackageComponentLogger(\n '@thunderid/react',\n 'I18nProvider',\n);\n\nconst DEFAULT_URL_PARAM = 'lang';\n\nexport interface I18nProviderProps {\n /**\n * The i18n preferences from the ThunderIDProvider\n */\n preferences?: I18nPreferences;\n\n /**\n * Vendor/brand namespace used to derive the default language storage key\n * (e.g. `${vendor}-i18n-language`). Resolved from the SDK config's `vendor` option.\n * @default 'thunderid'\n */\n vendor?: string;\n}\n\nconst detectBrowserLanguage = (): string => {\n if (typeof window !== 'undefined' && window.navigator) {\n return window.navigator.language || TranslationBundleConstants.FALLBACK_LOCALE;\n }\n\n return TranslationBundleConstants.FALLBACK_LOCALE;\n};\n\nconst deriveRootDomain = (hostname: string): string => {\n const parts: string[] = hostname.split('.');\n return parts.length > 1 ? parts.slice(-2).join('.') : hostname;\n};\n\nconst getCookie = (name: string): string | null => {\n if (typeof document === 'undefined') return null;\n const match: RegExpMatchArray | null = new RegExp(\n `(?:^|; )${name.replace(/([.*+?^${}()|[\\]\\\\])/g, '\\\\$1')}=([^;]*)`,\n ).exec(document.cookie);\n return match ? decodeURIComponent(match[1]) : null;\n};\n\nconst setCookie = (name: string, value: string, domain: string): void => {\n if (typeof document === 'undefined') return;\n const maxAge: number = 365 * 24 * 60 * 60;\n const secure: string = typeof window !== 'undefined' && window.location.protocol === 'https:' ? '; Secure' : '';\n document.cookie =\n `${encodeURIComponent(name)}=${encodeURIComponent(value)}` +\n `; Max-Age=${maxAge}` +\n `; Path=/` +\n `; Domain=${domain}` +\n `; SameSite=Lax${secure}`;\n};\n\ninterface StorageAdapter {\n read: () => string | null;\n write: (language: string) => void;\n}\n\nconst createStorageAdapter = (strategy: I18nStorageStrategy, key: string, cookieDomain?: string): StorageAdapter => {\n switch (strategy) {\n case 'cookie':\n return {\n read: (): string | null => getCookie(key),\n write: (language: string): void => {\n const domain: string =\n cookieDomain ?? (typeof window !== 'undefined' ? deriveRootDomain(window.location.hostname) : '');\n if (domain) setCookie(key, language, domain);\n },\n };\n case 'localStorage':\n return {\n read: (): string | null => {\n if (typeof window === 'undefined' || !window.localStorage) return null;\n try {\n return window.localStorage.getItem(key);\n } catch {\n return null;\n }\n },\n write: (language: string): void => {\n if (typeof window === 'undefined' || !window.localStorage) return;\n try {\n window.localStorage.setItem(key, language);\n } catch {\n logger.warn('Failed to persist language preference to localStorage.');\n }\n },\n };\n case 'none':\n default:\n return {read: (): null => null, write: (): void => {}};\n }\n};\n\nconst detectUrlParamLanguage = (paramName: string): string | null => {\n if (typeof window === 'undefined') return null;\n try {\n return new URLSearchParams(window.location.search).get(paramName);\n } catch {\n return null;\n }\n};\n\n/**\n * I18nProvider component that manages internationalization state and provides\n * translation functions to child components.\n */\nconst I18nProvider: FC<PropsWithChildren<I18nProviderProps>> = ({\n children,\n preferences,\n vendor,\n}: PropsWithChildren<I18nProviderProps>): ReactElement => {\n // Get default bundles from the browser package\n const defaultBundles: Record<string, I18nBundle> = getDefaultI18nBundles();\n\n const storageStrategy: I18nStorageStrategy = preferences?.storageStrategy ?? 'cookie';\n const storageKey: string = preferences?.storageKey ?? `${getVendorPrefix(vendor)}-i18n-language`;\n const urlParamConfig: string | false = preferences?.urlParam === undefined ? DEFAULT_URL_PARAM : preferences.urlParam;\n\n const resolvedCookieDomain: string | undefined = useMemo((): string | undefined => {\n if (storageStrategy !== 'cookie') return undefined;\n if (preferences?.cookieDomain) return preferences.cookieDomain;\n return typeof window !== 'undefined' ? deriveRootDomain(window.location.hostname) : undefined;\n }, [storageStrategy, preferences?.cookieDomain]);\n\n const storage: StorageAdapter = useMemo(\n () => createStorageAdapter(storageStrategy, storageKey, resolvedCookieDomain),\n [storageStrategy, storageKey, resolvedCookieDomain],\n );\n\n const determineInitialLanguage = (): string => {\n if (preferences?.language) return preferences.language;\n if (urlParamConfig !== false) {\n const urlLanguage: string | null = detectUrlParamLanguage(urlParamConfig);\n if (urlLanguage) {\n storage.write(urlLanguage);\n return urlLanguage;\n }\n }\n const storedLanguage: string | null = storage.read();\n if (storedLanguage) return storedLanguage;\n const browserLanguage: string = detectBrowserLanguage();\n if (browserLanguage) return browserLanguage;\n return preferences?.fallbackLanguage || TranslationBundleConstants.FALLBACK_LOCALE;\n };\n\n const [currentLanguage, setCurrentLanguage] = useState<string>(determineInitialLanguage);\n\n // Bundles injected at runtime (e.g., from flow metadata i18n translations).\n // These take precedence over defaults but are overridden by prop-provided bundles.\n const [injectedBundles, setInjectedBundles] = useState<Record<string, I18nBundle>>({});\n\n const injectBundles: (newBundles: Record<string, I18nBundle>) => void = useCallback(\n (newBundles: Record<string, I18nBundle>): void => {\n setInjectedBundles((prev: Record<string, I18nBundle>) => {\n const merged: Record<string, I18nBundle> = {...prev};\n Object.entries(newBundles).forEach(([key, bundle]: [string, I18nBundle]) => {\n const normalizedTranslations: I18nTranslations = normalizeTranslations(\n bundle.translations as unknown as Record<string, string | Record<string, string>>,\n );\n if (merged[key]) {\n merged[key] = {\n ...merged[key],\n translations: deepMerge(merged[key].translations, normalizedTranslations),\n };\n } else {\n merged[key] = {...bundle, translations: normalizedTranslations};\n }\n });\n return merged;\n });\n },\n [],\n );\n\n /**\n * Merge bundles in priority order: defaults → injected (meta) → prop-provided\n */\n const mergedBundles: Record<string, I18nBundle> = useMemo(() => {\n const merged: Record<string, I18nBundle> = {};\n\n // 1. Default bundles\n Object.entries(defaultBundles).forEach(([key, bundle]: [string, I18nBundle]) => {\n // Convert key format (e.g., 'en_US' to 'en-US')\n const languageKey: string = key.replace('_', '-');\n merged[languageKey] = bundle;\n });\n\n // 2. Injected bundles (e.g., from flow metadata) — override defaults\n Object.entries(injectedBundles).forEach(([key, bundle]: [string, I18nBundle]) => {\n const normalizedTranslations: I18nTranslations = normalizeTranslations(\n bundle.translations as unknown as Record<string, string | Record<string, string>>,\n );\n if (merged[key]) {\n merged[key] = {\n ...merged[key],\n translations: deepMerge(merged[key].translations, normalizedTranslations),\n };\n } else {\n merged[key] = {...bundle, translations: normalizedTranslations};\n }\n });\n\n // 3. User-provided bundles (from props) — highest priority, override everything\n if (preferences?.bundles) {\n Object.entries(preferences.bundles).forEach(([key, userBundle]: [string, I18nBundle]) => {\n const normalizedTranslations: I18nTranslations = normalizeTranslations(\n userBundle.translations as unknown as Record<string, string | Record<string, string>>,\n );\n if (merged[key]) {\n merged[key] = {\n ...merged[key],\n metadata: userBundle.metadata ? {...merged[key].metadata, ...userBundle.metadata} : merged[key].metadata,\n translations: deepMerge(merged[key].translations, normalizedTranslations),\n };\n } else {\n merged[key] = {...userBundle, translations: normalizedTranslations};\n }\n });\n }\n\n return merged;\n }, [defaultBundles, injectedBundles, preferences?.bundles]);\n\n const fallbackLanguage: string = preferences?.fallbackLanguage || TranslationBundleConstants.FALLBACK_LOCALE;\n\n // Persist language changes to the configured storage.\n useEffect(() => {\n storage.write(currentLanguage);\n }, [currentLanguage, storage]);\n\n // Translation function\n const t: (key: string, params?: Record<string, string | number>) => string = useCallback(\n (key: string, params?: Record<string, string | number>): string => {\n let translation: string | undefined;\n\n // Try to get translation from current language bundle\n const currentBundle: I18nBundle | undefined = mergedBundles[currentLanguage];\n if (currentBundle?.translations[key]) {\n translation = currentBundle.translations[key];\n }\n\n // Fallback to fallback language if translation not found\n if (!translation && currentLanguage !== fallbackLanguage) {\n const fallbackBundle: I18nBundle | undefined = mergedBundles[fallbackLanguage];\n if (fallbackBundle?.translations[key]) {\n translation = fallbackBundle.translations[key];\n }\n }\n\n // If still no translation found, return the key itself\n if (!translation) {\n translation = key;\n }\n\n // Replace parameters if provided\n if (params && Object.keys(params).length > 0) {\n return Object.entries(params).reduce(\n (acc: string, [paramKey, paramValue]: [string, string | number]) =>\n acc.replace(new RegExp(`\\\\{${paramKey}\\\\}`, 'g'), String(paramValue)),\n translation,\n );\n }\n\n return translation;\n },\n [mergedBundles, currentLanguage, fallbackLanguage],\n );\n\n // Language setter function\n const setLanguage: (language: string) => void = useCallback(\n (language: string) => {\n if (mergedBundles[language]) {\n setCurrentLanguage(language);\n } else {\n logger.warn(\n `Language '${language}' is not available. Available languages: ${Object.keys(mergedBundles).join(', ')}`,\n );\n }\n },\n [mergedBundles],\n );\n\n const contextValue: I18nContextValue = useMemo(\n () => ({\n bundles: mergedBundles,\n currentLanguage,\n fallbackLanguage,\n injectBundles,\n setLanguage,\n t,\n }),\n [currentLanguage, fallbackLanguage, injectBundles, mergedBundles, setLanguage, t],\n );\n\n return <I18nContext.Provider value={contextValue}>{children}</I18nContext.Provider>;\n};\n\nexport default I18nProvider;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"I18nProvider.js","names":["logger: ReturnType<typeof createPackageComponentLogger>","parts: string[]","match: RegExpMatchArray | null","maxAge: number","secure: string","domain: string","I18nProvider: FC<PropsWithChildren<I18nProviderProps>>","defaultBundles: Record<string, I18nBundle>","storageStrategy: I18nStorageStrategy","storageKey: string","urlParamConfig: string | false","resolvedCookieDomain: string | undefined","storage: StorageAdapter","urlLanguage: string | null","storedLanguage: string | null","browserLanguage: string","injectBundles: (newBundles: Record<string, I18nBundle>) => void","merged: Record<string, I18nBundle>","normalizedTranslations: I18nTranslations","mergedBundles: Record<string, I18nBundle>","languageKey: string","fallbackLanguage: string","t: (key: string, params?: Record<string, string | number>) => string","translation: string | undefined","currentBundle: I18nBundle | undefined","fallbackBundle: I18nBundle | undefined","setLanguage: (language: string) => void","contextValue: I18nContextValue","I18nContext"],"sources":["../../../src/contexts/I18n/I18nProvider.tsx"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n deepMerge,\n I18nPreferences,\n I18nStorageStrategy,\n createPackageComponentLogger,\n I18nBundle,\n I18nTranslations,\n TranslationBundleConstants,\n getDefaultI18nBundles,\n normalizeTranslations,\n getVendorPrefix,\n} from '@thunderid/browser';\nimport {FC, PropsWithChildren, ReactElement, useCallback, useEffect, useMemo, useState} from 'react';\nimport I18nContext, {I18nContextValue} from './I18nContext';\n\nconst logger: ReturnType<typeof createPackageComponentLogger> = createPackageComponentLogger(\n '@thunderid/react',\n 'I18nProvider',\n);\n\nconst DEFAULT_URL_PARAM = 'lang';\n\nexport interface I18nProviderProps {\n /**\n * The i18n preferences from the ThunderIDProvider\n */\n preferences?: I18nPreferences;\n\n /**\n * Vendor/brand namespace used to derive the default language storage key\n * (e.g. `${vendor}-i18n-language`). Resolved from the SDK config's `vendor` option.\n * @default 'thunderid'\n */\n vendor?: string;\n}\n\nconst detectBrowserLanguage = (): string => {\n if (typeof window !== 'undefined' && window.navigator) {\n return window.navigator.language || TranslationBundleConstants.FALLBACK_LOCALE;\n }\n\n return TranslationBundleConstants.FALLBACK_LOCALE;\n};\n\nconst deriveRootDomain = (hostname: string): string => {\n const parts: string[] = hostname.split('.');\n return parts.length > 1 ? parts.slice(-2).join('.') : hostname;\n};\n\nconst getCookie = (name: string): string | null => {\n if (typeof document === 'undefined') return null;\n const match: RegExpMatchArray | null = new RegExp(\n `(?:^|; )${name.replace(/([.*+?^${}()|[\\]\\\\])/g, '\\\\$1')}=([^;]*)`,\n ).exec(document.cookie);\n return match ? decodeURIComponent(match[1]) : null;\n};\n\nconst setCookie = (name: string, value: string, domain: string): void => {\n if (typeof document === 'undefined') return;\n const maxAge: number = 365 * 24 * 60 * 60;\n const secure: string = typeof window !== 'undefined' && window.location.protocol === 'https:' ? '; Secure' : '';\n document.cookie =\n `${encodeURIComponent(name)}=${encodeURIComponent(value)}` +\n `; Max-Age=${maxAge}` +\n `; Path=/` +\n `; Domain=${domain}` +\n `; SameSite=Lax${secure}`;\n};\n\ninterface StorageAdapter {\n read: () => string | null;\n write: (language: string) => void;\n}\n\nconst createStorageAdapter = (strategy: I18nStorageStrategy, key: string, cookieDomain?: string): StorageAdapter => {\n switch (strategy) {\n case 'cookie':\n return {\n read: (): string | null => getCookie(key),\n write: (language: string): void => {\n const domain: string =\n cookieDomain ?? (typeof window !== 'undefined' ? deriveRootDomain(window.location.hostname) : '');\n if (domain) setCookie(key, language, domain);\n },\n };\n case 'localStorage':\n return {\n read: (): string | null => {\n if (typeof window === 'undefined' || !window.localStorage) return null;\n try {\n return window.localStorage.getItem(key);\n } catch {\n return null;\n }\n },\n write: (language: string): void => {\n if (typeof window === 'undefined' || !window.localStorage) return;\n try {\n window.localStorage.setItem(key, language);\n } catch {\n logger.warn('Failed to persist language preference to localStorage.');\n }\n },\n };\n case 'none':\n default:\n return {read: (): null => null, write: (): void => {}};\n }\n};\n\nconst detectUrlParamLanguage = (paramName: string): string | null => {\n if (typeof window === 'undefined') return null;\n try {\n return new URLSearchParams(window.location.search).get(paramName);\n } catch {\n return null;\n }\n};\n\n/**\n * I18nProvider component that manages internationalization state and provides\n * translation functions to child components.\n */\nconst I18nProvider: FC<PropsWithChildren<I18nProviderProps>> = ({\n children,\n preferences,\n vendor,\n}: PropsWithChildren<I18nProviderProps>): ReactElement => {\n // Get default bundles from the browser package\n const defaultBundles: Record<string, I18nBundle> = getDefaultI18nBundles();\n\n const storageStrategy: I18nStorageStrategy = preferences?.storageStrategy ?? 'cookie';\n const storageKey: string = preferences?.storageKey ?? `${getVendorPrefix(vendor)}-i18n-language`;\n const urlParamConfig: string | false = preferences?.urlParam === undefined ? DEFAULT_URL_PARAM : preferences.urlParam;\n\n const resolvedCookieDomain: string | undefined = useMemo((): string | undefined => {\n if (storageStrategy !== 'cookie') return undefined;\n if (preferences?.cookieDomain) return preferences.cookieDomain;\n return typeof window !== 'undefined' ? deriveRootDomain(window.location.hostname) : undefined;\n }, [storageStrategy, preferences?.cookieDomain]);\n\n const storage: StorageAdapter = useMemo(\n () => createStorageAdapter(storageStrategy, storageKey, resolvedCookieDomain),\n [storageStrategy, storageKey, resolvedCookieDomain],\n );\n\n const determineInitialLanguage = (): string => {\n if (preferences?.language) return preferences.language;\n if (urlParamConfig !== false) {\n const urlLanguage: string | null = detectUrlParamLanguage(urlParamConfig);\n if (urlLanguage) {\n storage.write(urlLanguage);\n return urlLanguage;\n }\n }\n const storedLanguage: string | null = storage.read();\n if (storedLanguage) return storedLanguage;\n const browserLanguage: string = detectBrowserLanguage();\n if (browserLanguage) return browserLanguage;\n return preferences?.fallbackLanguage || TranslationBundleConstants.FALLBACK_LOCALE;\n };\n\n const [currentLanguage, setCurrentLanguage] = useState<string>(determineInitialLanguage);\n\n // Bundles injected at runtime (e.g., from flow metadata i18n translations).\n // These take precedence over defaults but are overridden by prop-provided bundles.\n const [injectedBundles, setInjectedBundles] = useState<Record<string, I18nBundle>>({});\n\n const injectBundles: (newBundles: Record<string, I18nBundle>) => void = useCallback(\n (newBundles: Record<string, I18nBundle>): void => {\n setInjectedBundles((prev: Record<string, I18nBundle>) => {\n const merged: Record<string, I18nBundle> = {...prev};\n Object.entries(newBundles).forEach(([key, bundle]: [string, I18nBundle]) => {\n const normalizedTranslations: I18nTranslations = normalizeTranslations(\n bundle.translations as unknown as Record<string, string | Record<string, string>>,\n );\n if (merged[key]) {\n merged[key] = {\n ...merged[key],\n translations: deepMerge(merged[key].translations, normalizedTranslations),\n };\n } else {\n merged[key] = {...bundle, translations: normalizedTranslations};\n }\n });\n return merged;\n });\n },\n [],\n );\n\n /**\n * Merge bundles in priority order: defaults → injected (meta) → prop-provided\n */\n const mergedBundles: Record<string, I18nBundle> = useMemo(() => {\n const merged: Record<string, I18nBundle> = {};\n\n // 1. Default bundles\n Object.entries(defaultBundles).forEach(([key, bundle]: [string, I18nBundle]) => {\n // Convert key format (e.g., 'en_US' to 'en-US')\n const languageKey: string = key.replace('_', '-');\n merged[languageKey] = bundle;\n });\n\n // 2. Injected bundles (e.g., from flow metadata) — override defaults\n Object.entries(injectedBundles).forEach(([key, bundle]: [string, I18nBundle]) => {\n const normalizedTranslations: I18nTranslations = normalizeTranslations(\n bundle.translations as unknown as Record<string, string | Record<string, string>>,\n );\n if (merged[key]) {\n merged[key] = {\n ...merged[key],\n translations: deepMerge(merged[key].translations, normalizedTranslations),\n };\n } else {\n merged[key] = {...bundle, translations: normalizedTranslations};\n }\n });\n\n // 3. User-provided bundles (from props) — highest priority, override everything\n if (preferences?.bundles) {\n Object.entries(preferences.bundles).forEach(([key, userBundle]: [string, I18nBundle]) => {\n const normalizedTranslations: I18nTranslations = normalizeTranslations(\n userBundle.translations as unknown as Record<string, string | Record<string, string>>,\n );\n if (merged[key]) {\n merged[key] = {\n ...merged[key],\n metadata: userBundle.metadata ? {...merged[key].metadata, ...userBundle.metadata} : merged[key].metadata,\n translations: deepMerge(merged[key].translations, normalizedTranslations),\n };\n } else {\n merged[key] = {...userBundle, translations: normalizedTranslations};\n }\n });\n }\n\n return merged;\n }, [defaultBundles, injectedBundles, preferences?.bundles]);\n\n const fallbackLanguage: string = preferences?.fallbackLanguage || TranslationBundleConstants.FALLBACK_LOCALE;\n\n // Persist language changes to the configured storage.\n useEffect(() => {\n storage.write(currentLanguage);\n }, [currentLanguage, storage]);\n\n // Translation function\n const t: (key: string, params?: Record<string, string | number>) => string = useCallback(\n (key: string, params?: Record<string, string | number>): string => {\n let translation: string | undefined;\n\n // Try to get translation from current language bundle\n const currentBundle: I18nBundle | undefined = mergedBundles[currentLanguage];\n if (currentBundle?.translations[key]) {\n translation = currentBundle.translations[key];\n }\n\n // Fallback to fallback language if translation not found\n if (!translation && currentLanguage !== fallbackLanguage) {\n const fallbackBundle: I18nBundle | undefined = mergedBundles[fallbackLanguage];\n if (fallbackBundle?.translations[key]) {\n translation = fallbackBundle.translations[key];\n }\n }\n\n // If still no translation found, return the key itself\n if (!translation) {\n translation = key;\n }\n\n // Replace parameters if provided\n if (params && Object.keys(params).length > 0) {\n return Object.entries(params).reduce(\n (acc: string, [paramKey, paramValue]: [string, string | number]) =>\n acc.replace(new RegExp(`\\\\{${paramKey}\\\\}`, 'g'), String(paramValue)),\n translation,\n );\n }\n\n return translation;\n },\n [mergedBundles, currentLanguage, fallbackLanguage],\n );\n\n // Language setter function\n const setLanguage: (language: string) => void = useCallback(\n (language: string) => {\n if (mergedBundles[language]) {\n setCurrentLanguage(language);\n } else {\n logger.warn(\n `Language '${language}' is not available. Available languages: ${Object.keys(mergedBundles).join(', ')}`,\n );\n }\n },\n [mergedBundles],\n );\n\n const contextValue: I18nContextValue = useMemo(\n () => ({\n bundles: mergedBundles,\n currentLanguage,\n fallbackLanguage,\n injectBundles,\n setLanguage,\n t,\n }),\n [currentLanguage, fallbackLanguage, injectBundles, mergedBundles, setLanguage, t],\n );\n\n return <I18nContext.Provider value={contextValue}>{children}</I18nContext.Provider>;\n};\n\nexport default I18nProvider;\n"],"mappings":"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"}
|
|
@@ -1,20 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com).
|
|
3
|
-
*
|
|
4
|
-
* WSO2 LLC. licenses this file to you under the Apache License,
|
|
5
|
-
* Version 2.0 (the "License"); you may not use this file except
|
|
6
|
-
* in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at
|
|
8
|
-
*
|
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing,
|
|
12
|
-
* software distributed under the License is distributed on an
|
|
13
|
-
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
14
|
-
* KIND, either express or implied. See the License for the
|
|
15
|
-
* specific language governing permissions and limitations
|
|
16
|
-
* under the License.
|
|
17
|
-
*/
|
|
18
1
|
import { I18nContextValue } from './I18nContext';
|
|
19
2
|
/**
|
|
20
3
|
* Hook for accessing the I18n context directly.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useI18n.d.ts","sourceRoot":"","sources":["../../../src/contexts/I18n/useI18n.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useI18n.d.ts","sourceRoot":"","sources":["../../../src/contexts/I18n/useI18n.ts"],"names":[],"mappings":"AAIA,OAAoB,EAAC,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAE5D;;;;;;GAMG;AACH,QAAA,MAAM,OAAO,QAAO,gBAUnB,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useI18n.js","names":["context: I18nContextValue | null","I18nContext"],"sources":["../../../src/contexts/I18n/useI18n.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"useI18n.js","names":["context: I18nContextValue | null","I18nContext"],"sources":["../../../src/contexts/I18n/useI18n.ts"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {useContext} from 'react';\nimport I18nContext, {I18nContextValue} from './I18nContext';\n\n/**\n * Hook for accessing the I18n context directly.\n * Provides access to the full i18n context including bundles and all utilities.\n *\n * @returns The complete I18n context value\n * @throws Error if used outside of I18nProvider context\n */\nconst useI18n = (): I18nContextValue => {\n const context: I18nContextValue | null = useContext(I18nContext);\n\n if (!context) {\n throw new Error(\n 'useI18n must be used within an I18nProvider. Make sure your component is wrapped with ThunderIDProvider which includes I18nProvider.',\n );\n }\n\n return context;\n};\n\nexport default useI18n;\n"],"mappings":";;;;;;;;;;;AAaA,MAAM,gBAAkC;CACtC,MAAMA,UAAmC,WAAWC,oBAAY;AAEhE,KAAI,CAAC,QACH,OAAM,IAAI,MACR,uIACD;AAGH,QAAO;;AAGT,sBAAe"}
|
|
@@ -1,20 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com).
|
|
3
|
-
*
|
|
4
|
-
* WSO2 LLC. licenses this file to you under the Apache License,
|
|
5
|
-
* Version 2.0 (the "License"); you may not use this file except
|
|
6
|
-
* in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at
|
|
8
|
-
*
|
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing,
|
|
12
|
-
* software distributed under the License is distributed on an
|
|
13
|
-
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
14
|
-
* KIND, either express or implied. See the License for the
|
|
15
|
-
* specific language governing permissions and limitations
|
|
16
|
-
* under the License.
|
|
17
|
-
*/
|
|
18
1
|
import { Theme } from '@thunderid/browser';
|
|
19
2
|
import { Context } from 'react';
|
|
20
3
|
export interface ThemeContextValue {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeContext.d.ts","sourceRoot":"","sources":["../../../src/contexts/Theme/ThemeContext.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ThemeContext.d.ts","sourceRoot":"","sources":["../../../src/contexts/Theme/ThemeContext.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAC,OAAO,EAAgB,MAAM,OAAO,CAAC;AAE7C,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,OAAO,GAAG,MAAM,CAAC;IAC9B;;OAEG;IACH,SAAS,EAAE,KAAK,GAAG,KAAK,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,QAAA,MAAM,YAAY,EAAE,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAiD,CAAC;AAItG,eAAe,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeContext.js","names":["ThemeContext: Context<ThemeContextValue | null>"],"sources":["../../../src/contexts/Theme/ThemeContext.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"ThemeContext.js","names":["ThemeContext: Context<ThemeContextValue | null>"],"sources":["../../../src/contexts/Theme/ThemeContext.ts"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {Theme} from '@thunderid/browser';\nimport {Context, createContext} from 'react';\n\nexport interface ThemeContextValue {\n colorScheme: 'light' | 'dark';\n /**\n * The text direction for the UI.\n */\n direction: 'ltr' | 'rtl';\n theme: Theme;\n toggleTheme: () => void;\n}\n\nconst ThemeContext: Context<ThemeContextValue | null> = createContext<ThemeContextValue | null>(null);\n\nThemeContext.displayName = 'ThemeContext';\n\nexport default ThemeContext;\n"],"mappings":";;;AAgBA,MAAMA,eAAkD,cAAwC,KAAK;AAErG,aAAa,cAAc;AAE3B,2BAAe"}
|
|
@@ -1,20 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2026, WSO2 LLC. (https://www.wso2.com).
|
|
3
|
-
*
|
|
4
|
-
* WSO2 LLC. licenses this file to you under the Apache License,
|
|
5
|
-
* Version 2.0 (the "License"); you may not use this file except
|
|
6
|
-
* in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at
|
|
8
|
-
*
|
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing,
|
|
12
|
-
* software distributed under the License is distributed on an
|
|
13
|
-
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
14
|
-
* KIND, either express or implied. See the License for the
|
|
15
|
-
* specific language governing permissions and limitations
|
|
16
|
-
* under the License.
|
|
17
|
-
*/
|
|
18
1
|
import { ThemeConfig, ThemeMode, RecursivePartial } from '@thunderid/browser';
|
|
19
2
|
import { FC, PropsWithChildren } from 'react';
|
|
20
3
|
export interface ThemeProviderProps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../../src/contexts/Theme/ThemeProvider.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../../src/contexts/Theme/ThemeProvider.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAqB,WAAW,EAAE,SAAS,EAAE,gBAAgB,EAAgB,MAAM,oBAAoB,CAAC;AAC/G,OAAO,EAAC,EAAE,EAAE,iBAAiB,EAAsE,MAAM,OAAO,CAAC;AAOjH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB;;;OAGG;IACH,KAAK,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,QAAA,MAAM,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAsF5D,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeProvider.js","names":["ThemeProvider: FC<PropsWithChildren<ThemeProviderProps>>","themeOverride: RecursivePartial<ThemeConfig> | undefined","normalizeThemeConfig","flowMetaContext: FlowMetaContextValue | null","FlowMetaContext","flowMetaTheme: FlowMetaTheme | null","toggleTheme: () => void","finalThemeConfig: RecursivePartial<ThemeConfig> | undefined","metaConfig: RecursivePartial<ThemeConfig>","buildThemeConfigFromFlowMeta","theme: Theme","direction: 'ltr' | 'rtl'","value: any","ThemeContext"],"sources":["../../../src/contexts/Theme/ThemeProvider.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"ThemeProvider.js","names":["ThemeProvider: FC<PropsWithChildren<ThemeProviderProps>>","themeOverride: RecursivePartial<ThemeConfig> | undefined","normalizeThemeConfig","flowMetaContext: FlowMetaContextValue | null","FlowMetaContext","flowMetaTheme: FlowMetaTheme | null","toggleTheme: () => void","finalThemeConfig: RecursivePartial<ThemeConfig> | undefined","metaConfig: RecursivePartial<ThemeConfig>","buildThemeConfigFromFlowMeta","theme: Theme","direction: 'ltr' | 'rtl'","value: any","ThemeContext"],"sources":["../../../src/contexts/Theme/ThemeProvider.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {createTheme, Theme, ThemeConfig, ThemeMode, RecursivePartial, FlowMetaTheme} from '@thunderid/browser';\nimport {FC, PropsWithChildren, ReactElement, useCallback, useContext, useEffect, useMemo, useState} from 'react';\nimport ThemeContext from './ThemeContext';\nimport applyThemeToDOM from '../../utils/applyThemeToDOM';\nimport buildThemeConfigFromFlowMeta from '../../utils/buildThemeConfigFromFlowMeta';\nimport normalizeThemeConfig from '../../utils/normalizeThemeConfig';\nimport FlowMetaContext, {FlowMetaContextValue} from '../FlowMeta/FlowMetaContext';\n\nexport interface ThemeProviderProps {\n /**\n * Initial color scheme override. Overrides the server default when provided.\n */\n mode?: ThemeMode;\n\n /**\n * Optional theme overrides merged on top of the server-side flow meta theme.\n * User-supplied values take highest precedence.\n */\n theme?: RecursivePartial<ThemeConfig>;\n}\n\n/**\n * ThemeProvider is the v2 drop-in replacement for `ThemeProvider`.\n *\n * It reads the design theme from the nearest `FlowMetaContext` (provided by\n * `FlowMetaProvider`) and publishes a resolved `Theme` object through the\n * **same** `ThemeContext` that `useTheme` consumes. This means all existing\n * components that call `useTheme` continue to work without any changes.\n *\n * The `defaultColorScheme` field returned by the server is used to seed the\n * active color scheme; the user can still toggle it locally via the\n * `toggleTheme` value exposed in the context.\n *\n * @example\n * ```tsx\n * <FlowMetaProvider config={{ baseUrl, type: FlowMetaType.App, id: appId }}>\n * <ThemeProvider>\n * <App /> {/* useTheme() works here as usual *\\/}\n * </ThemeProvider>\n * </FlowMetaProvider>\n * ```\n *\n * @example\n * With user theme overrides (user values win over server values):\n * ```tsx\n * <ThemeProvider theme={{ colors: { primary: { main: '#ff0000' } } }}>\n * <App />\n * </ThemeProvider>\n * ```\n */\nconst ThemeProvider: FC<PropsWithChildren<ThemeProviderProps>> = ({\n children,\n theme: themeOverrideProp,\n}: PropsWithChildren<ThemeProviderProps>): ReactElement => {\n const themeOverride: RecursivePartial<ThemeConfig> | undefined = normalizeThemeConfig(themeOverrideProp);\n const flowMetaContext: FlowMetaContextValue | null = useContext(FlowMetaContext);\n\n const flowMetaTheme: FlowMetaTheme | null = flowMetaContext?.meta?.design?.theme ?? null;\n const isLoading: boolean = flowMetaContext?.isLoading ?? false;\n const error: Error | null = flowMetaContext?.error ?? null;\n\n // Seed the color scheme from the server's defaultColorScheme; allow local toggling.\n const [colorScheme, setColorScheme] = useState<'light' | 'dark'>(() => flowMetaTheme?.defaultColorScheme ?? 'light');\n\n // When meta finishes loading, sync the color scheme with the server default.\n useEffect(() => {\n if (flowMetaTheme?.defaultColorScheme) {\n setColorScheme(flowMetaTheme.defaultColorScheme);\n }\n }, [flowMetaTheme?.defaultColorScheme]);\n\n const toggleTheme: () => void = useCallback(() => {\n setColorScheme((prev: 'light' | 'dark') => (prev === 'light' ? 'dark' : 'light'));\n }, []);\n\n // Build the resolved ThemeConfig: flow meta base → user overrides on top.\n const finalThemeConfig: RecursivePartial<ThemeConfig> | undefined = useMemo(() => {\n if (!flowMetaTheme) {\n return themeOverride;\n }\n\n const metaConfig: RecursivePartial<ThemeConfig> = buildThemeConfigFromFlowMeta(flowMetaTheme, colorScheme);\n\n if (!themeOverride) {\n return metaConfig;\n }\n\n return {\n ...metaConfig,\n ...themeOverride,\n borderRadius: {\n ...metaConfig.borderRadius,\n ...themeOverride.borderRadius,\n },\n colors: {\n ...metaConfig.colors,\n ...themeOverride.colors,\n },\n ...(metaConfig.typography || themeOverride.typography\n ? {\n typography: {\n ...(metaConfig as any).typography,\n ...themeOverride.typography,\n },\n }\n : {}),\n };\n }, [flowMetaTheme, colorScheme, themeOverride]);\n\n const theme: Theme = useMemo(\n () => createTheme(finalThemeConfig, colorScheme === 'dark'),\n [finalThemeConfig, colorScheme],\n );\n\n const direction: 'ltr' | 'rtl' = flowMetaTheme?.direction ?? 'ltr';\n\n // Apply CSS variables to the document root.\n useEffect(() => {\n applyThemeToDOM(theme);\n }, [theme]);\n\n // Apply text direction to the document root.\n useEffect(() => {\n if (typeof document !== 'undefined') {\n document.documentElement.dir = direction;\n }\n }, [direction]);\n\n const value: any = {\n colorScheme,\n direction,\n theme,\n toggleTheme,\n };\n\n return <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>;\n};\n\nexport default ThemeProvider;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDA,MAAMA,iBAA4D,EAChE,UACA,OAAO,wBACkD;CACzD,MAAMC,gBAA2DC,6BAAqB,kBAAkB;CACxG,MAAMC,kBAA+C,WAAWC,wBAAgB;CAEhF,MAAMC,gBAAsC,iBAAiB,MAAM,QAAQ,SAAS;AACzD,kBAAiB;AAChB,kBAAiB;CAG7C,MAAM,CAAC,aAAa,kBAAkB,eAAiC,eAAe,sBAAsB,QAAQ;AAGpH,iBAAgB;AACd,MAAI,eAAe,mBACjB,gBAAe,cAAc,mBAAmB;IAEjD,CAAC,eAAe,mBAAmB,CAAC;CAEvC,MAAMC,cAA0B,kBAAkB;AAChD,kBAAgB,SAA4B,SAAS,UAAU,SAAS,QAAS;IAChF,EAAE,CAAC;CAGN,MAAMC,mBAA8D,cAAc;AAChF,MAAI,CAAC,cACH,QAAO;EAGT,MAAMC,aAA4CC,qCAA6B,eAAe,YAAY;AAE1G,MAAI,CAAC,cACH,QAAO;AAGT,SAAO;GACL,GAAG;GACH,GAAG;GACH,cAAc;IACZ,GAAG,WAAW;IACd,GAAG,cAAc;IAClB;GACD,QAAQ;IACN,GAAG,WAAW;IACd,GAAG,cAAc;IAClB;GACD,GAAI,WAAW,cAAc,cAAc,aACvC,EACE,YAAY;IACV,GAAI,WAAmB;IACvB,GAAG,cAAc;IAClB,EACF,GACD,EAAE;GACP;IACA;EAAC;EAAe;EAAa;EAAc,CAAC;CAE/C,MAAMC,QAAe,cACb,YAAY,kBAAkB,gBAAgB,OAAO,EAC3D,CAAC,kBAAkB,YAAY,CAChC;CAED,MAAMC,YAA2B,eAAe,aAAa;AAG7D,iBAAgB;AACd,0BAAgB,MAAM;IACrB,CAAC,MAAM,CAAC;AAGX,iBAAgB;AACd,MAAI,OAAO,aAAa,YACtB,UAAS,gBAAgB,MAAM;IAEhC,CAAC,UAAU,CAAC;CAEf,MAAMC,QAAa;EACjB;EACA;EACA;EACA;EACD;AAED,QAAO,oBAACC,qBAAa;EAAgB;EAAQ;GAAiC;;AAGhF,4BAAe"}
|
|
@@ -1,20 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com).
|
|
3
|
-
*
|
|
4
|
-
* WSO2 LLC. licenses this file to you under the Apache License,
|
|
5
|
-
* Version 2.0 (the "License"); you may not use this file except
|
|
6
|
-
* in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at
|
|
8
|
-
*
|
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing,
|
|
12
|
-
* software distributed under the License is distributed on an
|
|
13
|
-
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
14
|
-
* KIND, either express or implied. See the License for the
|
|
15
|
-
* specific language governing permissions and limitations
|
|
16
|
-
* under the License.
|
|
17
|
-
*/
|
|
18
1
|
export interface ThemeColors {
|
|
19
2
|
background: {
|
|
20
3
|
body: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/contexts/Theme/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/contexts/Theme/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com).
|
|
3
|
-
*
|
|
4
|
-
* WSO2 LLC. licenses this file to you under the Apache License,
|
|
5
|
-
* Version 2.0 (the "License"); you may not use this file except
|
|
6
|
-
* in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at
|
|
8
|
-
*
|
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing,
|
|
12
|
-
* software distributed under the License is distributed on an
|
|
13
|
-
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
14
|
-
* KIND, either express or implied. See the License for the
|
|
15
|
-
* specific language governing permissions and limitations
|
|
16
|
-
* under the License.
|
|
17
|
-
*/
|
|
18
1
|
import { ThemeContextValue } from './ThemeContext';
|
|
19
2
|
declare const useTheme: () => ThemeContextValue;
|
|
20
3
|
export default useTheme;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTheme.d.ts","sourceRoot":"","sources":["../../../src/contexts/Theme/useTheme.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useTheme.d.ts","sourceRoot":"","sources":["../../../src/contexts/Theme/useTheme.ts"],"names":[],"mappings":"AAIA,OAAqB,EAAC,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;AAE/D,QAAA,MAAM,QAAQ,QAAO,iBAOpB,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTheme.js","names":["context: ThemeContextValue | null","ThemeContext"],"sources":["../../../src/contexts/Theme/useTheme.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"useTheme.js","names":["context: ThemeContextValue | null","ThemeContext"],"sources":["../../../src/contexts/Theme/useTheme.ts"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {useContext} from 'react';\nimport ThemeContext, {ThemeContextValue} from './ThemeContext';\n\nconst useTheme = (): ThemeContextValue => {\n const context: ThemeContextValue | null = useContext(ThemeContext);\n if (!context) {\n throw new Error('useTheme must be used within a ThemeProvider');\n }\n\n return context;\n};\n\nexport default useTheme;\n"],"mappings":";;;;AAMA,MAAM,iBAAoC;CACxC,MAAMA,UAAoC,WAAWC,qBAAa;AAClE,KAAI,CAAC,QACH,OAAM,IAAI,MAAM,+CAA+C;AAGjE,QAAO;;AAGT,uBAAe"}
|
|
@@ -1,20 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com).
|
|
3
|
-
*
|
|
4
|
-
* WSO2 LLC. licenses this file to you under the Apache License,
|
|
5
|
-
* Version 2.0 (the "License"); you may not use this file except
|
|
6
|
-
* in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at
|
|
8
|
-
*
|
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing,
|
|
12
|
-
* software distributed under the License is distributed on an
|
|
13
|
-
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
14
|
-
* KIND, either express or implied. See the License for the
|
|
15
|
-
* specific language governing permissions and limitations
|
|
16
|
-
* under the License.
|
|
17
|
-
*/
|
|
18
1
|
import { FlowMetadataResponse, HttpRequestConfig, HttpResponse, IdToken, OIDCDiscoveryApiResponse, SignInOptions, TokenExchangeRequestConfig, TokenResponse } from '@thunderid/browser';
|
|
19
2
|
import { Context } from 'react';
|
|
20
3
|
import { ThunderIDReactConfig } from '../../models/config';
|
|
@@ -27,6 +10,11 @@ export type ThunderIDContextProps = {
|
|
|
27
10
|
applicationId: string | undefined;
|
|
28
11
|
baseUrl: string | undefined;
|
|
29
12
|
clientId: string | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* Optional endpoint URL overrides from the client config. Used to resolve resource-server
|
|
15
|
+
* endpoints (e.g. flow/user-management) independently of `baseUrl` — see `resolveResourceEndpoint`.
|
|
16
|
+
*/
|
|
17
|
+
endpoints?: ThunderIDReactConfig['endpoints'];
|
|
30
18
|
preferences?: ThunderIDReactConfig['preferences'];
|
|
31
19
|
scopes: string | string[] | undefined;
|
|
32
20
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThunderIDContext.d.ts","sourceRoot":"","sources":["../../../src/contexts/ThunderID/ThunderIDContext.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ThunderIDContext.d.ts","sourceRoot":"","sources":["../../../src/contexts/ThunderID/ThunderIDContext.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EACZ,OAAO,EACP,wBAAwB,EACxB,aAAa,EACb,0BAA0B,EAC1B,aAAa,EAEd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,OAAO,EAAgB,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAC,oBAAoB,EAAC,MAAM,qBAAqB,CAAC;AACzD,OAAO,oBAAoB,MAAM,4BAA4B,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B;;;OAGG;IACH,SAAS,CAAC,EAAE,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAC9C,WAAW,CAAC,EAAE,oBAAoB,CAAC,aAAa,CAAC,CAAC;IAClD,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;IACtC;;OAEG;IACH,SAAS,EAAE;QACT;;;;WAIG;QACH,SAAS,EAAE,wBAAwB,GAAG,IAAI,CAAC;KAC5C,CAAC;IACF;;;;OAIG;IACH,aAAa,EAAE,CAAC,MAAM,EAAE,0BAA0B,KAAK,OAAO,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC;IACzF;;;;;OAKG;IACH,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC;;;;;;OAMG;IACH,iBAAiB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C;;;;;OAKG;IACH,UAAU,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC;;OAEG;IACH,iBAAiB,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC;;;;OAIG;IACH,IAAI,EAAE;QACJ;;;;WAIG;QACH,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,iBAAiB,KAAK,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3E;;;;WAIG;QACH,UAAU,EAAE,CAAC,cAAc,CAAC,EAAE,iBAAiB,EAAE,KAAK,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;KACpF,CAAC;IACF;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAElC,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IAEvC;;;;;;;;OAQG;IACH,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1E;;OAEG;IACH,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAE1C;;;;;;;;;;;OAWG;IACH,2BAA2B,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,CAAC;IAElE;;;;OAIG;IACH,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAEvC;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B;;;;;OAKG;IACH,YAAY,CAAC,EAAE;QACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,CAAC;IAEF;;;OAGG;IACH,cAAc,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IAEvD,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B;;;;OAIG;IACH,OAAO,EAAE,GAAG,CAAC;IAEb;;;OAGG;IACH,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAEzC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9B,IAAI,EAAE,GAAG,CAAC;IAEV;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,IAAI,CAAC,oBAAoB,EAAE,cAAc,CAAC,CAAC;AAE/C;;GAEG;AACH,QAAA,MAAM,gBAAgB,EAAE,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAsC1D,CAAC;AAIH,eAAe,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThunderIDContext.js","names":["ThunderIDContext: Context<ThunderIDContextProps | null>"],"sources":["../../../src/contexts/ThunderID/ThunderIDContext.ts"],"sourcesContent":["/**\n * Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com).\n *\n * WSO2 LLC. licenses this file to you under the Apache License,\n * Version 2.0 (the \"License\"); you may not use this file except\n * in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport {\n FlowMetadataResponse,\n HttpRequestConfig,\n HttpResponse,\n IdToken,\n OIDCDiscoveryApiResponse,\n SignInOptions,\n TokenExchangeRequestConfig,\n TokenResponse,\n VendorConstants,\n} from '@thunderid/browser';\nimport {Context, createContext} from 'react';\nimport {ThunderIDReactConfig} from '../../models/config';\nimport ThunderIDReactClient from '../../ThunderIDReactClient';\n\n/**\n * Props interface of {@link ThunderIDContext}\n */\nexport type ThunderIDContextProps = {\n afterSignInUrl: string | undefined;\n applicationId: string | undefined;\n baseUrl: string | undefined;\n clientId: string | undefined;\n preferences?: ThunderIDReactConfig['preferences'];\n scopes: string | string[] | undefined;\n /**\n * OIDC discovery data.\n */\n discovery: {\n /**\n * The response from the `.well-known/openid-configuration` endpoint.\n * Contains server capabilities, supported endpoints, and metadata.\n * `null` while loading or when discovery has not been fetched.\n */\n wellKnown: OIDCDiscoveryApiResponse | null;\n };\n /**\n * Swaps the current access token with a new one based on the provided configuration (with a grant type).\n * @param config - Configuration for the token exchange request.\n * @returns A promise that resolves to the token response or the raw response.\n */\n exchangeToken: (config: TokenExchangeRequestConfig) => Promise<TokenResponse | Response>;\n /**\n * Retrieves the access token stored in the storage.\n * This function retrieves the access token and returns it.\n * @remarks This does not work in the `webWorker` or any other worker environment.\n * @returns A promise that resolves to the access token.\n */\n getAccessToken: () => Promise<string>;\n /**\n * Function to retrieve the decoded ID token.\n * This function decodes the ID token and returns its payload.\n * It can be used to access user claims and other information contained in the ID token.\n *\n * @returns A promise that resolves to the decoded ID token payload.\n */\n getDecodedIdToken: () => Promise<IdToken>;\n /**\n * Function to retrieve the ID token.\n * This function retrieves the ID token and returns it.\n *\n * @returns A promise that resolves to the ID token.\n */\n getIdToken: () => Promise<string>;\n /**\n * Returns the underlying StorageManager instance for reading and writing SDK-managed storage.\n */\n getStorageManager: () => Promise<any>;\n /**\n * HTTP request function to make API calls.\n * @param requestConfig - Configuration for the HTTP request.\n * @returns A promise that resolves to the HTTP response.\n */\n http: {\n /**\n * Makes an HTTP request using the provided configuration.\n * @param requestConfig - Configuration for the HTTP request.\n * @returns A promise that resolves to the HTTP response.\n */\n request: (requestConfig?: HttpRequestConfig) => Promise<HttpResponse<any>>;\n /**\n * Makes multiple HTTP requests based on the provided configuration.\n * @param requestConfigs - Set of configurations for the HTTP requests.\n * @returns A promise that resolves to an array of HTTP responses.\n */\n requestAll: (requestConfigs?: HttpRequestConfig[]) => Promise<HttpResponse<any>[]>;\n };\n /**\n * Instance ID for multi-instance support.\n */\n instanceId: number;\n isInitialized: boolean;\n /**\n * Flag indicating whether the SDK is working in the background.\n */\n isLoading: boolean;\n /**\n * Flag indicating whether flow metadata is currently being fetched.\n */\n isMetaLoading: boolean;\n /**\n * Flag indicating whether the user is signed in or not.\n */\n isSignedIn: boolean;\n\n /**\n * Flow metadata returned by `GET /flow/meta` (v2 platform only).\n * `null` while loading or when `resolveFromMeta` is disabled.\n */\n meta: FlowMetadataResponse | null;\n\n organizationHandle: string | undefined;\n\n /**\n * Re-initializes the client with a new configuration.\n *\n * @remarks\n * This can be partial configuration to update only specific fields.\n *\n * @param config - New configuration to re-initialize the client with.\n * @returns Promise resolving to boolean indicating success.\n */\n reInitialize: (config: Partial<ThunderIDReactConfig>) => Promise<boolean>;\n\n /**\n * Recovery function to initiate the account/password recovery flow.\n */\n recover: (...args: any[]) => Promise<any>;\n\n /**\n * Resolves `{{ t(key) }}` and `{{ meta(path) }}` template expressions in a string,\n * using the current i18n translation function and flow metadata from context.\n *\n * Useful in render-props patterns where consumers need to expand template strings\n * that come from the server (e.g. component labels, placeholders, headings).\n *\n * @example\n * const {resolveFlowTemplateLiterals} = useThunderID();\n * resolveFlowTemplateLiterals('{{ t(signin.heading.label) }}') // → 'Sign In'\n * resolveFlowTemplateLiterals('Login to {{ meta(application.name) }}') // → 'Login to My App'\n */\n resolveFlowTemplateLiterals: (text: string | undefined) => string;\n\n /**\n * Sign-in function to initiate the authentication process.\n * @remark This is the programmatic version of the `SignInButton` component.\n * TODO: Fix the types.\n */\n signIn: (...args: any) => Promise<any>;\n\n /**\n * Optional additional parameters to be sent in the sign-in request.\n * This can include custom parameters that your authorization server supports.\n * These parameters will be included in the authorization request sent to the server.\n * If not provided, no additional parameters will be sent.\n *\n * @example\n * signInOptions: { prompt: \"login\", fidp: \"OrganizationSSO\" }\n */\n signInOptions?: SignInOptions;\n\n /**\n * Optional token request configuration. params are appended to the token endpoint POST body.\n *\n * @example\n * tokenRequest: { params: { resource: \"https://api.example.com\" } }\n */\n tokenRequest?: {\n params?: Record<string, unknown>;\n };\n\n /**\n * Silent sign-in function to re-authenticate the user without user interaction.\n * @remark This is the programmatic version of the `SilentSignIn` component.\n */\n signInSilently: ThunderIDReactClient['signInSilently'];\n\n signInUrl: string | undefined;\n /**\n * Sign-out function to terminate the authentication session.\n * @remark This is the programmatic version of the `SignOutButton` component.\n * FIXME: Fix the types.\n */\n signOut: any;\n\n /**\n * Sign-up function to initiate the registration process.\n * @remark This is the programmatic version of the `SignUpButton` component.\n */\n signUp: (...args: any[]) => Promise<any>;\n\n signUpUrl: string | undefined;\n\n user: any;\n\n /**\n * Vendor/brand namespace used to prefix storage keys, cookie names, and CSS class names.\n * Resolved from the `vendor` config option, defaulting to `'thunderid'`.\n */\n vendor: string;\n} & Pick<ThunderIDReactClient, 'clearSession'>;\n\n/**\n * Context object for managing the Authentication flow builder core context.\n */\nconst ThunderIDContext: Context<ThunderIDContextProps | null> = createContext<null | ThunderIDContextProps>({\n afterSignInUrl: undefined,\n applicationId: undefined,\n baseUrl: undefined,\n clearSession: () => {},\n clientId: undefined,\n preferences: undefined,\n scopes: undefined,\n discovery: {\n wellKnown: null,\n },\n exchangeToken: null as unknown as ThunderIDContextProps['exchangeToken'],\n getAccessToken: null as unknown as ThunderIDContextProps['getAccessToken'],\n getDecodedIdToken: null as unknown as ThunderIDContextProps['getDecodedIdToken'],\n getIdToken: null as unknown as ThunderIDContextProps['getIdToken'],\n getStorageManager: () => Promise.resolve(null),\n http: {\n request: () => null as unknown as Promise<HttpResponse<any>>,\n requestAll: () => null as unknown as Promise<HttpResponse<any>[]>,\n },\n instanceId: 0,\n isInitialized: false,\n isLoading: true,\n isMetaLoading: false,\n isSignedIn: false,\n meta: null,\n organizationHandle: undefined,\n reInitialize: null as unknown as ThunderIDContextProps['reInitialize'],\n recover: () => Promise.resolve({} as any),\n resolveFlowTemplateLiterals: (text: string | undefined) => text ?? '',\n signIn: () => Promise.resolve({} as any),\n signInSilently: () => Promise.resolve({} as any),\n signInUrl: undefined,\n signOut: () => Promise.resolve({} as any),\n signUp: () => Promise.resolve({} as any),\n signUpUrl: undefined,\n user: null,\n vendor: VendorConstants.VENDOR_PREFIX,\n});\n\nThunderIDContext.displayName = 'ThunderIDContext';\n\nexport default ThunderIDContext;\n"],"mappings":";;;;;;;AA+NA,MAAMA,mBAA0D,cAA4C;CAC1G,gBAAgB;CAChB,eAAe;CACf,SAAS;CACT,oBAAoB;CACpB,UAAU;CACV,aAAa;CACb,QAAQ;CACR,WAAW,EACT,WAAW,MACZ;CACD,eAAe;CACf,gBAAgB;CAChB,mBAAmB;CACnB,YAAY;CACZ,yBAAyB,QAAQ,QAAQ,KAAK;CAC9C,MAAM;EACJ,eAAe;EACf,kBAAkB;EACnB;CACD,YAAY;CACZ,eAAe;CACf,WAAW;CACX,eAAe;CACf,YAAY;CACZ,MAAM;CACN,oBAAoB;CACpB,cAAc;CACd,eAAe,QAAQ,QAAQ,EAAE,CAAQ;CACzC,8BAA8B,SAA6B,QAAQ;CACnE,cAAc,QAAQ,QAAQ,EAAE,CAAQ;CACxC,sBAAsB,QAAQ,QAAQ,EAAE,CAAQ;CAChD,WAAW;CACX,eAAe,QAAQ,QAAQ,EAAE,CAAQ;CACzC,cAAc,QAAQ,QAAQ,EAAE,CAAQ;CACxC,WAAW;CACX,MAAM;CACN,QAAQ,gBAAgB;CACzB,CAAC;AAEF,iBAAiB,cAAc;AAE/B,+BAAe"}
|
|
1
|
+
{"version":3,"file":"ThunderIDContext.js","names":["ThunderIDContext: Context<ThunderIDContextProps | null>"],"sources":["../../../src/contexts/ThunderID/ThunderIDContext.ts"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n FlowMetadataResponse,\n HttpRequestConfig,\n HttpResponse,\n IdToken,\n OIDCDiscoveryApiResponse,\n SignInOptions,\n TokenExchangeRequestConfig,\n TokenResponse,\n VendorConstants,\n} from '@thunderid/browser';\nimport {Context, createContext} from 'react';\nimport {ThunderIDReactConfig} from '../../models/config';\nimport ThunderIDReactClient from '../../ThunderIDReactClient';\n\n/**\n * Props interface of {@link ThunderIDContext}\n */\nexport type ThunderIDContextProps = {\n afterSignInUrl: string | undefined;\n applicationId: string | undefined;\n baseUrl: string | undefined;\n clientId: string | undefined;\n /**\n * Optional endpoint URL overrides from the client config. Used to resolve resource-server\n * endpoints (e.g. flow/user-management) independently of `baseUrl` — see `resolveResourceEndpoint`.\n */\n endpoints?: ThunderIDReactConfig['endpoints'];\n preferences?: ThunderIDReactConfig['preferences'];\n scopes: string | string[] | undefined;\n /**\n * OIDC discovery data.\n */\n discovery: {\n /**\n * The response from the `.well-known/openid-configuration` endpoint.\n * Contains server capabilities, supported endpoints, and metadata.\n * `null` while loading or when discovery has not been fetched.\n */\n wellKnown: OIDCDiscoveryApiResponse | null;\n };\n /**\n * Swaps the current access token with a new one based on the provided configuration (with a grant type).\n * @param config - Configuration for the token exchange request.\n * @returns A promise that resolves to the token response or the raw response.\n */\n exchangeToken: (config: TokenExchangeRequestConfig) => Promise<TokenResponse | Response>;\n /**\n * Retrieves the access token stored in the storage.\n * This function retrieves the access token and returns it.\n * @remarks This does not work in the `webWorker` or any other worker environment.\n * @returns A promise that resolves to the access token.\n */\n getAccessToken: () => Promise<string>;\n /**\n * Function to retrieve the decoded ID token.\n * This function decodes the ID token and returns its payload.\n * It can be used to access user claims and other information contained in the ID token.\n *\n * @returns A promise that resolves to the decoded ID token payload.\n */\n getDecodedIdToken: () => Promise<IdToken>;\n /**\n * Function to retrieve the ID token.\n * This function retrieves the ID token and returns it.\n *\n * @returns A promise that resolves to the ID token.\n */\n getIdToken: () => Promise<string>;\n /**\n * Returns the underlying StorageManager instance for reading and writing SDK-managed storage.\n */\n getStorageManager: () => Promise<any>;\n /**\n * HTTP request function to make API calls.\n * @param requestConfig - Configuration for the HTTP request.\n * @returns A promise that resolves to the HTTP response.\n */\n http: {\n /**\n * Makes an HTTP request using the provided configuration.\n * @param requestConfig - Configuration for the HTTP request.\n * @returns A promise that resolves to the HTTP response.\n */\n request: (requestConfig?: HttpRequestConfig) => Promise<HttpResponse<any>>;\n /**\n * Makes multiple HTTP requests based on the provided configuration.\n * @param requestConfigs - Set of configurations for the HTTP requests.\n * @returns A promise that resolves to an array of HTTP responses.\n */\n requestAll: (requestConfigs?: HttpRequestConfig[]) => Promise<HttpResponse<any>[]>;\n };\n /**\n * Instance ID for multi-instance support.\n */\n instanceId: number;\n isInitialized: boolean;\n /**\n * Flag indicating whether the SDK is working in the background.\n */\n isLoading: boolean;\n /**\n * Flag indicating whether flow metadata is currently being fetched.\n */\n isMetaLoading: boolean;\n /**\n * Flag indicating whether the user is signed in or not.\n */\n isSignedIn: boolean;\n\n /**\n * Flow metadata returned by `GET /flow/meta` (v2 platform only).\n * `null` while loading or when `resolveFromMeta` is disabled.\n */\n meta: FlowMetadataResponse | null;\n\n organizationHandle: string | undefined;\n\n /**\n * Re-initializes the client with a new configuration.\n *\n * @remarks\n * This can be partial configuration to update only specific fields.\n *\n * @param config - New configuration to re-initialize the client with.\n * @returns Promise resolving to boolean indicating success.\n */\n reInitialize: (config: Partial<ThunderIDReactConfig>) => Promise<boolean>;\n\n /**\n * Recovery function to initiate the account/password recovery flow.\n */\n recover: (...args: any[]) => Promise<any>;\n\n /**\n * Resolves `{{ t(key) }}` and `{{ meta(path) }}` template expressions in a string,\n * using the current i18n translation function and flow metadata from context.\n *\n * Useful in render-props patterns where consumers need to expand template strings\n * that come from the server (e.g. component labels, placeholders, headings).\n *\n * @example\n * const {resolveFlowTemplateLiterals} = useThunderID();\n * resolveFlowTemplateLiterals('{{ t(signin.heading.label) }}') // → 'Sign In'\n * resolveFlowTemplateLiterals('Login to {{ meta(application.name) }}') // → 'Login to My App'\n */\n resolveFlowTemplateLiterals: (text: string | undefined) => string;\n\n /**\n * Sign-in function to initiate the authentication process.\n * @remark This is the programmatic version of the `SignInButton` component.\n * TODO: Fix the types.\n */\n signIn: (...args: any) => Promise<any>;\n\n /**\n * Optional additional parameters to be sent in the sign-in request.\n * This can include custom parameters that your authorization server supports.\n * These parameters will be included in the authorization request sent to the server.\n * If not provided, no additional parameters will be sent.\n *\n * @example\n * signInOptions: { prompt: \"login\", fidp: \"OrganizationSSO\" }\n */\n signInOptions?: SignInOptions;\n\n /**\n * Optional token request configuration. params are appended to the token endpoint POST body.\n *\n * @example\n * tokenRequest: { params: { resource: \"https://api.example.com\" } }\n */\n tokenRequest?: {\n params?: Record<string, unknown>;\n };\n\n /**\n * Silent sign-in function to re-authenticate the user without user interaction.\n * @remark This is the programmatic version of the `SilentSignIn` component.\n */\n signInSilently: ThunderIDReactClient['signInSilently'];\n\n signInUrl: string | undefined;\n /**\n * Sign-out function to terminate the authentication session.\n * @remark This is the programmatic version of the `SignOutButton` component.\n * FIXME: Fix the types.\n */\n signOut: any;\n\n /**\n * Sign-up function to initiate the registration process.\n * @remark This is the programmatic version of the `SignUpButton` component.\n */\n signUp: (...args: any[]) => Promise<any>;\n\n signUpUrl: string | undefined;\n\n user: any;\n\n /**\n * Vendor/brand namespace used to prefix storage keys, cookie names, and CSS class names.\n * Resolved from the `vendor` config option, defaulting to `'thunderid'`.\n */\n vendor: string;\n} & Pick<ThunderIDReactClient, 'clearSession'>;\n\n/**\n * Context object for managing the Authentication flow builder core context.\n */\nconst ThunderIDContext: Context<ThunderIDContextProps | null> = createContext<null | ThunderIDContextProps>({\n afterSignInUrl: undefined,\n applicationId: undefined,\n baseUrl: undefined,\n clearSession: () => {},\n clientId: undefined,\n preferences: undefined,\n scopes: undefined,\n discovery: {\n wellKnown: null,\n },\n exchangeToken: null as unknown as ThunderIDContextProps['exchangeToken'],\n getAccessToken: null as unknown as ThunderIDContextProps['getAccessToken'],\n getDecodedIdToken: null as unknown as ThunderIDContextProps['getDecodedIdToken'],\n getIdToken: null as unknown as ThunderIDContextProps['getIdToken'],\n getStorageManager: () => Promise.resolve(null),\n http: {\n request: () => null as unknown as Promise<HttpResponse<any>>,\n requestAll: () => null as unknown as Promise<HttpResponse<any>[]>,\n },\n instanceId: 0,\n isInitialized: false,\n isLoading: true,\n isMetaLoading: false,\n isSignedIn: false,\n meta: null,\n organizationHandle: undefined,\n reInitialize: null as unknown as ThunderIDContextProps['reInitialize'],\n recover: () => Promise.resolve({} as any),\n resolveFlowTemplateLiterals: (text: string | undefined) => text ?? '',\n signIn: () => Promise.resolve({} as any),\n signInSilently: () => Promise.resolve({} as any),\n signInUrl: undefined,\n signOut: () => Promise.resolve({} as any),\n signUp: () => Promise.resolve({} as any),\n signUpUrl: undefined,\n user: null,\n vendor: VendorConstants.VENDOR_PREFIX,\n});\n\nThunderIDContext.displayName = 'ThunderIDContext';\n\nexport default ThunderIDContext;\n"],"mappings":";;;;;;;AAqNA,MAAMA,mBAA0D,cAA4C;CAC1G,gBAAgB;CAChB,eAAe;CACf,SAAS;CACT,oBAAoB;CACpB,UAAU;CACV,aAAa;CACb,QAAQ;CACR,WAAW,EACT,WAAW,MACZ;CACD,eAAe;CACf,gBAAgB;CAChB,mBAAmB;CACnB,YAAY;CACZ,yBAAyB,QAAQ,QAAQ,KAAK;CAC9C,MAAM;EACJ,eAAe;EACf,kBAAkB;EACnB;CACD,YAAY;CACZ,eAAe;CACf,WAAW;CACX,eAAe;CACf,YAAY;CACZ,MAAM;CACN,oBAAoB;CACpB,cAAc;CACd,eAAe,QAAQ,QAAQ,EAAE,CAAQ;CACzC,8BAA8B,SAA6B,QAAQ;CACnE,cAAc,QAAQ,QAAQ,EAAE,CAAQ;CACxC,sBAAsB,QAAQ,QAAQ,EAAE,CAAQ;CAChD,WAAW;CACX,eAAe,QAAQ,QAAQ,EAAE,CAAQ;CACzC,cAAc,QAAQ,QAAQ,EAAE,CAAQ;CACxC,WAAW;CACX,MAAM;CACN,QAAQ,gBAAgB;CACzB,CAAC;AAEF,iBAAiB,cAAc;AAE/B,+BAAe"}
|
|
@@ -1,20 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2025-2026, WSO2 LLC. (https://www.wso2.com).
|
|
3
|
-
*
|
|
4
|
-
* WSO2 LLC. licenses this file to you under the Apache License,
|
|
5
|
-
* Version 2.0 (the "License"); you may not use this file except
|
|
6
|
-
* in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at
|
|
8
|
-
*
|
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing,
|
|
12
|
-
* software distributed under the License is distributed on an
|
|
13
|
-
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
14
|
-
* KIND, either express or implied. See the License for the
|
|
15
|
-
* specific language governing permissions and limitations
|
|
16
|
-
* under the License.
|
|
17
|
-
*/
|
|
18
1
|
import { FC, PropsWithChildren } from 'react';
|
|
19
2
|
import { ThunderIDReactConfig } from '../../models/config';
|
|
20
3
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThunderIDProvider.d.ts","sourceRoot":"","sources":["../../../src/contexts/ThunderID/ThunderIDProvider.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ThunderIDProvider.d.ts","sourceRoot":"","sources":["../../../src/contexts/ThunderID/ThunderIDProvider.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAC,EAAE,EAAa,iBAAiB,EAAkE,MAAM,OAAO,CAAC;AAGxH,OAAO,EAAC,oBAAoB,EAAC,MAAM,qBAAqB,CAAC;AAezD;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AAE1D,QAAA,MAAM,iBAAiB,EAAE,EAAE,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,CAqgBpE,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -8,7 +8,7 @@ import I18nProvider_default from "../I18n/I18nProvider.js";
|
|
|
8
8
|
import ThemeProvider_default from "../Theme/ThemeProvider.js";
|
|
9
9
|
import UserProvider_default from "../User/UserProvider.js";
|
|
10
10
|
import getUsersMe_default from "../../api/getUsersMe.js";
|
|
11
|
-
import { ThunderIDRuntimeError, createPackageComponentLogger, extractUserClaimsFromIdToken, generateFlattenedUserProfile, getVendorPrefix } from "@thunderid/browser";
|
|
11
|
+
import { ThunderIDRuntimeError, createPackageComponentLogger, extractUserClaimsFromIdToken, generateFlattenedUserProfile, getVendorPrefix, resolveResourceEndpoint } from "@thunderid/browser";
|
|
12
12
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
13
13
|
import { jsx } from "react/jsx-runtime";
|
|
14
14
|
|
|
@@ -43,6 +43,7 @@ const ThunderIDProvider = ({ afterSignInUrl, afterSignOutUrl, baseUrl: initialBa
|
|
|
43
43
|
});
|
|
44
44
|
const [isUpdatingSession, setIsUpdatingSession] = useState(false);
|
|
45
45
|
const [wellKnown, setWellKnown] = useState(null);
|
|
46
|
+
const pendingSessionUpdateRef = useRef(null);
|
|
46
47
|
useEffect(() => {
|
|
47
48
|
setBaseUrl(initialBaseUrl ?? "");
|
|
48
49
|
}, [initialBaseUrl]);
|
|
@@ -53,7 +54,7 @@ const ThunderIDProvider = ({ afterSignInUrl, afterSignOutUrl, baseUrl: initialBa
|
|
|
53
54
|
setWellKnown(await client.getDiscoveryResponse());
|
|
54
55
|
})();
|
|
55
56
|
}, []);
|
|
56
|
-
async function
|
|
57
|
+
async function performSessionUpdate() {
|
|
57
58
|
try {
|
|
58
59
|
setIsUpdatingSession(true);
|
|
59
60
|
setIsLoadingSync(true);
|
|
@@ -70,6 +71,7 @@ const ThunderIDProvider = ({ afterSignInUrl, afterSignOutUrl, baseUrl: initialBa
|
|
|
70
71
|
if (currentSignInStatus && shouldFetchProfile) try {
|
|
71
72
|
const fetchedProfile = await getUsersMe_default({
|
|
72
73
|
baseUrl: resolvedBaseUrl,
|
|
74
|
+
url: resolveResourceEndpoint("usersMe", config),
|
|
73
75
|
instanceId
|
|
74
76
|
});
|
|
75
77
|
profileData = {
|
|
@@ -90,6 +92,20 @@ const ThunderIDProvider = ({ afterSignInUrl, afterSignOutUrl, baseUrl: initialBa
|
|
|
90
92
|
setIsLoadingSync(client.isLoading());
|
|
91
93
|
}
|
|
92
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Single-flight wrapper around {@link performSessionUpdate}.
|
|
97
|
+
*
|
|
98
|
+
* Concurrent callers share the in-flight request instead of each issuing their own `/users/me`.
|
|
99
|
+
* This is not a cache: once the request settles the ref is cleared, so a later caller (e.g.
|
|
100
|
+
* revalidation after a profile update) fetches again.
|
|
101
|
+
*/
|
|
102
|
+
async function updateSession() {
|
|
103
|
+
if (pendingSessionUpdateRef.current) return pendingSessionUpdateRef.current;
|
|
104
|
+
pendingSessionUpdateRef.current = performSessionUpdate().finally(() => {
|
|
105
|
+
pendingSessionUpdateRef.current = null;
|
|
106
|
+
});
|
|
107
|
+
return pendingSessionUpdateRef.current;
|
|
108
|
+
}
|
|
93
109
|
async function signIn(...args) {
|
|
94
110
|
const arg1 = args[0];
|
|
95
111
|
const isV2FlowRequest = typeof arg1 === "object" && arg1 !== null && ("executionId" in arg1 || "applicationId" in arg1);
|
|
@@ -118,22 +134,13 @@ const ThunderIDProvider = ({ afterSignInUrl, afterSignOutUrl, baseUrl: initialBa
|
|
|
118
134
|
await client.on("sign-in", async () => {
|
|
119
135
|
await updateSession();
|
|
120
136
|
});
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
logger$1.warn("Failed to schedule automatic token refresh.", error);
|
|
127
|
-
}
|
|
128
|
-
};
|
|
129
|
-
const resumeSession = async () => {
|
|
130
|
-
await updateSession();
|
|
131
|
-
await scheduleAutoRefresh();
|
|
132
|
-
};
|
|
133
|
-
if (isAlreadySignedIn) await resumeSession();
|
|
134
|
-
await scheduleAutoRefresh();
|
|
137
|
+
try {
|
|
138
|
+
await client.startAutoRefreshToken();
|
|
139
|
+
} catch (error) {
|
|
140
|
+
logger$1.warn("Failed to schedule automatic token refresh.", error);
|
|
141
|
+
}
|
|
135
142
|
if (await client.isSignedIn()) {
|
|
136
|
-
await
|
|
143
|
+
await updateSession();
|
|
137
144
|
return;
|
|
138
145
|
}
|
|
139
146
|
const currentUrl = new URL(window.location.href);
|
|
@@ -237,11 +244,19 @@ const ThunderIDProvider = ({ afterSignInUrl, afterSignOutUrl, baseUrl: initialBa
|
|
|
237
244
|
const recover = useCallback(async (payload) => client.recover(payload), [client]);
|
|
238
245
|
const signUp = useCallback(async (...args) => client.signUp(...args), [client]);
|
|
239
246
|
const clearSession = useCallback(async (...args) => client.clearSession(...args), [client]);
|
|
240
|
-
const reInitialize = useCallback(async (reInitConfig) =>
|
|
247
|
+
const reInitialize = useCallback(async (reInitConfig) => {
|
|
248
|
+
const result = await client.reInitialize(reInitConfig);
|
|
249
|
+
const reinitializedConfig = await client.getConfiguration();
|
|
250
|
+
setConfig(reinitializedConfig);
|
|
251
|
+
setBaseUrl(reinitializedConfig.baseUrl ?? "");
|
|
252
|
+
setWellKnown(await client.getDiscoveryResponse());
|
|
253
|
+
return result;
|
|
254
|
+
}, [client]);
|
|
241
255
|
const value = useMemo(() => ({
|
|
242
256
|
afterSignInUrl: config.afterSignInUrl,
|
|
243
257
|
applicationId: config.applicationId,
|
|
244
258
|
baseUrl,
|
|
259
|
+
endpoints: config.endpoints,
|
|
245
260
|
scopes: config.scopes,
|
|
246
261
|
clearSession,
|
|
247
262
|
clientId,
|
|
@@ -280,6 +295,7 @@ const ThunderIDProvider = ({ afterSignInUrl, afterSignOutUrl, baseUrl: initialBa
|
|
|
280
295
|
config?.organizationHandle,
|
|
281
296
|
config.vendor,
|
|
282
297
|
config.afterSignInUrl,
|
|
298
|
+
config.endpoints,
|
|
283
299
|
config.scopes,
|
|
284
300
|
signInUrl,
|
|
285
301
|
signUpUrl,
|