@thunderid/react 0.3.0 → 0.3.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 +4 -8
- package/dist/ThunderIDReactClient.d.ts.map +1 -1
- package/dist/ThunderIDReactClient.js +6 -73
- package/dist/ThunderIDReactClient.js.map +1 -1
- package/dist/cjs/ThunderIDReactClient.cjs +5 -72
- package/dist/cjs/ThunderIDReactClient.cjs.map +1 -1
- package/dist/cjs/components/actions/SignInButton/SignInButton.cjs.map +1 -1
- package/dist/cjs/components/adapters/Consent.cjs.map +1 -1
- package/dist/cjs/components/adapters/ConsentCheckboxList.cjs +1 -1
- package/dist/cjs/components/adapters/ConsentCheckboxList.cjs.map +1 -1
- package/dist/cjs/components/auth/Callback/Callback.cjs +1 -1
- package/dist/cjs/components/auth/Callback/Callback.cjs.map +1 -1
- package/dist/cjs/components/auth/Callback/TokenCallback.cjs +3 -3
- package/dist/cjs/components/auth/Callback/TokenCallback.cjs.map +1 -1
- package/dist/cjs/components/factories/FieldFactory.cjs +2 -2
- package/dist/cjs/components/factories/FieldFactory.cjs.map +1 -1
- package/dist/cjs/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.cjs +1 -1
- package/dist/cjs/components/presentation/UserAvatar/BaseUserAvatar.cjs +57 -0
- package/dist/cjs/components/presentation/UserAvatar/BaseUserAvatar.cjs.map +1 -0
- package/dist/cjs/components/presentation/UserAvatar/UserAvatar.cjs +36 -0
- package/dist/cjs/components/presentation/UserAvatar/UserAvatar.cjs.map +1 -0
- package/dist/cjs/components/presentation/UserDropdown/BaseUserDropdown.cjs +6 -5
- package/dist/cjs/components/presentation/UserDropdown/BaseUserDropdown.cjs.map +1 -1
- package/dist/cjs/components/presentation/UserProfile/BaseUserProfile.cjs +3 -3
- package/dist/cjs/components/presentation/auth/AcceptInvite/{v2/AcceptInvite.cjs → AcceptInvite.cjs} +2 -2
- package/dist/cjs/components/presentation/auth/AcceptInvite/AcceptInvite.cjs.map +1 -0
- package/dist/cjs/components/presentation/auth/AcceptInvite/{v2/BaseAcceptInvite.cjs → BaseAcceptInvite.cjs} +47 -18
- package/dist/cjs/components/presentation/auth/AcceptInvite/BaseAcceptInvite.cjs.map +1 -0
- package/dist/cjs/components/presentation/auth/AcceptInvite/{v2/BaseAcceptInvite.styles.cjs → BaseAcceptInvite.styles.cjs} +2 -2
- package/dist/cjs/components/presentation/auth/AcceptInvite/BaseAcceptInvite.styles.cjs.map +1 -0
- package/dist/cjs/components/presentation/auth/AuthOptionFactory.cjs +49 -43
- package/dist/cjs/components/presentation/auth/AuthOptionFactory.cjs.map +1 -1
- package/dist/cjs/components/presentation/auth/InviteUser/{v2/BaseInviteUser.cjs → BaseInviteUser.cjs} +44 -15
- package/dist/cjs/components/presentation/auth/InviteUser/BaseInviteUser.cjs.map +1 -0
- package/dist/cjs/components/presentation/auth/InviteUser/{v2/BaseInviteUser.styles.cjs → BaseInviteUser.styles.cjs} +2 -2
- package/dist/cjs/components/presentation/auth/InviteUser/BaseInviteUser.styles.cjs.map +1 -0
- package/dist/cjs/components/presentation/auth/InviteUser/{v2/InviteUser.cjs → InviteUser.cjs} +3 -3
- package/dist/cjs/components/presentation/auth/InviteUser/InviteUser.cjs.map +1 -0
- package/dist/cjs/components/presentation/auth/Recovery/BaseRecovery.cjs +389 -8
- package/dist/cjs/components/presentation/auth/Recovery/BaseRecovery.cjs.map +1 -1
- package/dist/cjs/components/presentation/auth/Recovery/Recovery.cjs +51 -22
- package/dist/cjs/components/presentation/auth/Recovery/Recovery.cjs.map +1 -1
- package/dist/cjs/components/presentation/auth/SignIn/BaseSignIn.cjs +346 -8
- package/dist/cjs/components/presentation/auth/SignIn/BaseSignIn.cjs.map +1 -1
- package/dist/cjs/components/presentation/auth/SignIn/SignIn.cjs +547 -36
- package/dist/cjs/components/presentation/auth/SignIn/SignIn.cjs.map +1 -1
- package/dist/cjs/components/presentation/auth/SignUp/BaseSignUp.cjs +691 -8
- package/dist/cjs/components/presentation/auth/SignUp/BaseSignUp.cjs.map +1 -1
- package/dist/cjs/components/presentation/auth/SignUp/SignUp.cjs +66 -76
- package/dist/cjs/components/presentation/auth/SignUp/SignUp.cjs.map +1 -1
- package/dist/cjs/components/primitives/Alert/Alert.cjs +1 -1
- package/dist/cjs/components/primitives/Checkbox/Checkbox.cjs +1 -1
- package/dist/cjs/components/primitives/FormControl/FormControl.cjs +1 -1
- package/dist/cjs/components/primitives/Toggle/Toggle.cjs +1 -1
- package/dist/cjs/contexts/ComponentRenderer/ComponentRendererContext.cjs.map +1 -1
- package/dist/cjs/contexts/FlowMeta/FlowMetaProvider.cjs +5 -7
- package/dist/cjs/contexts/FlowMeta/FlowMetaProvider.cjs.map +1 -1
- package/dist/cjs/contexts/Theme/ThemeContext.cjs.map +1 -1
- package/dist/cjs/contexts/Theme/ThemeProvider.cjs +73 -37
- package/dist/cjs/contexts/Theme/ThemeProvider.cjs.map +1 -1
- package/dist/cjs/contexts/ThunderID/ThunderIDContext.cjs +0 -3
- package/dist/cjs/contexts/ThunderID/ThunderIDContext.cjs.map +1 -1
- package/dist/cjs/contexts/ThunderID/ThunderIDProvider.cjs +14 -93
- package/dist/cjs/contexts/ThunderID/ThunderIDProvider.cjs.map +1 -1
- package/dist/cjs/hooks/{v2/useOAuthCallback.cjs → useOAuthCallback.cjs} +2 -2
- package/dist/cjs/hooks/useOAuthCallback.cjs.map +1 -0
- package/dist/cjs/index.cjs +51 -99
- package/dist/cjs/utils/{v2/buildThemeConfigFromFlowMeta.cjs → buildThemeConfigFromFlowMeta.cjs} +1 -1
- package/dist/cjs/utils/buildThemeConfigFromFlowMeta.cjs.map +1 -0
- package/dist/cjs/utils/{v2/flowTransformer.cjs → flowTransformer.cjs} +1 -1
- package/dist/cjs/utils/flowTransformer.cjs.map +1 -0
- package/dist/cjs/utils/{v2/getAuthComponentHeadings.cjs → getAuthComponentHeadings.cjs} +1 -1
- package/dist/cjs/utils/getAuthComponentHeadings.cjs.map +1 -0
- package/dist/cjs/utils/{v2/passkey.cjs → passkey.cjs} +2 -2
- package/dist/cjs/utils/passkey.cjs.map +1 -0
- package/dist/cjs/utils/{v2/resolveTranslationsInArray.cjs → resolveTranslationsInArray.cjs} +1 -1
- package/dist/cjs/utils/resolveTranslationsInArray.cjs.map +1 -0
- package/dist/cjs/utils/{v2/resolveTranslationsInObject.cjs → resolveTranslationsInObject.cjs} +2 -2
- package/dist/cjs/utils/resolveTranslationsInObject.cjs.map +1 -0
- package/dist/components/actions/SignInButton/SignInButton.d.ts.map +1 -1
- package/dist/components/actions/SignInButton/SignInButton.js.map +1 -1
- package/dist/components/adapters/Consent.d.ts +1 -1
- 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 +1 -1
- package/dist/components/adapters/ConsentCheckboxList.d.ts.map +1 -1
- package/dist/components/adapters/ConsentCheckboxList.js +1 -1
- package/dist/components/adapters/ConsentCheckboxList.js.map +1 -1
- package/dist/components/auth/Callback/Callback.d.ts +1 -1
- package/dist/components/auth/Callback/Callback.js +1 -1
- package/dist/components/auth/Callback/Callback.js.map +1 -1
- package/dist/components/auth/Callback/TokenCallback.js +4 -4
- package/dist/components/auth/Callback/TokenCallback.js.map +1 -1
- package/dist/components/factories/FieldFactory.d.ts +2 -2
- package/dist/components/factories/FieldFactory.js +2 -2
- package/dist/components/factories/FieldFactory.js.map +1 -1
- package/dist/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.js +1 -1
- package/dist/components/presentation/UserAvatar/BaseUserAvatar.d.ts +50 -0
- package/dist/components/presentation/UserAvatar/BaseUserAvatar.d.ts.map +1 -0
- package/dist/components/presentation/UserAvatar/BaseUserAvatar.js +55 -0
- package/dist/components/presentation/UserAvatar/BaseUserAvatar.js.map +1 -0
- package/dist/components/presentation/UserAvatar/UserAvatar.d.ts +46 -0
- package/dist/components/presentation/UserAvatar/UserAvatar.d.ts.map +1 -0
- package/dist/components/presentation/UserAvatar/UserAvatar.js +34 -0
- package/dist/components/presentation/UserAvatar/UserAvatar.js.map +1 -0
- package/dist/components/presentation/UserDropdown/BaseUserDropdown.d.ts.map +1 -1
- package/dist/components/presentation/UserDropdown/BaseUserDropdown.js +6 -5
- package/dist/components/presentation/UserDropdown/BaseUserDropdown.js.map +1 -1
- package/dist/components/presentation/UserProfile/BaseUserProfile.js +3 -3
- package/dist/components/presentation/auth/AcceptInvite/AcceptInvite.d.ts.map +1 -0
- package/dist/components/presentation/auth/AcceptInvite/{v2/AcceptInvite.js → AcceptInvite.js} +1 -1
- package/dist/components/presentation/auth/AcceptInvite/AcceptInvite.js.map +1 -0
- package/dist/components/presentation/auth/AcceptInvite/{v2/BaseAcceptInvite.d.ts → BaseAcceptInvite.d.ts} +3 -2
- package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.d.ts.map +1 -0
- package/dist/components/presentation/auth/AcceptInvite/{v2/BaseAcceptInvite.js → BaseAcceptInvite.js} +45 -17
- package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.js.map +1 -0
- package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.styles.d.ts.map +1 -0
- package/dist/components/presentation/auth/AcceptInvite/{v2/BaseAcceptInvite.styles.js → BaseAcceptInvite.styles.js} +1 -1
- package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.styles.js.map +1 -0
- package/dist/components/presentation/auth/AcceptInvite/index.d.ts +4 -4
- package/dist/components/presentation/auth/AcceptInvite/index.d.ts.map +1 -1
- package/dist/components/presentation/auth/AuthOptionFactory.d.ts +2 -2
- package/dist/components/presentation/auth/AuthOptionFactory.d.ts.map +1 -1
- package/dist/components/presentation/auth/AuthOptionFactory.js +50 -44
- package/dist/components/presentation/auth/AuthOptionFactory.js.map +1 -1
- package/dist/components/presentation/auth/InviteUser/{v2/BaseInviteUser.d.ts → BaseInviteUser.d.ts} +3 -2
- package/dist/components/presentation/auth/InviteUser/BaseInviteUser.d.ts.map +1 -0
- package/dist/components/presentation/auth/InviteUser/{v2/BaseInviteUser.js → BaseInviteUser.js} +44 -15
- package/dist/components/presentation/auth/InviteUser/BaseInviteUser.js.map +1 -0
- package/dist/components/presentation/auth/InviteUser/BaseInviteUser.styles.d.ts.map +1 -0
- package/dist/components/presentation/auth/InviteUser/{v2/BaseInviteUser.styles.js → BaseInviteUser.styles.js} +1 -1
- package/dist/components/presentation/auth/InviteUser/BaseInviteUser.styles.js.map +1 -0
- package/dist/components/presentation/auth/InviteUser/InviteUser.d.ts.map +1 -0
- package/dist/components/presentation/auth/InviteUser/{v2/InviteUser.js → InviteUser.js} +2 -2
- package/dist/components/presentation/auth/InviteUser/InviteUser.js.map +1 -0
- package/dist/components/presentation/auth/InviteUser/index.d.ts +4 -4
- package/dist/components/presentation/auth/InviteUser/index.d.ts.map +1 -1
- package/dist/components/presentation/auth/Recovery/BaseRecovery.d.ts +63 -4
- package/dist/components/presentation/auth/Recovery/BaseRecovery.d.ts.map +1 -1
- package/dist/components/presentation/auth/Recovery/BaseRecovery.js +389 -10
- package/dist/components/presentation/auth/Recovery/BaseRecovery.js.map +1 -1
- package/dist/components/presentation/auth/Recovery/Recovery.d.ts +21 -22
- package/dist/components/presentation/auth/Recovery/Recovery.d.ts.map +1 -1
- package/dist/components/presentation/auth/Recovery/Recovery.js +51 -23
- package/dist/components/presentation/auth/Recovery/Recovery.js.map +1 -1
- package/dist/components/presentation/auth/SignIn/BaseSignIn.d.ts +213 -6
- package/dist/components/presentation/auth/SignIn/BaseSignIn.d.ts.map +1 -1
- package/dist/components/presentation/auth/SignIn/BaseSignIn.js +346 -10
- package/dist/components/presentation/auth/SignIn/BaseSignIn.js.map +1 -1
- package/dist/components/presentation/auth/SignIn/SignIn.d.ts +122 -13
- package/dist/components/presentation/auth/SignIn/SignIn.d.ts.map +1 -1
- package/dist/components/presentation/auth/SignIn/SignIn.js +548 -38
- package/dist/components/presentation/auth/SignIn/SignIn.js.map +1 -1
- package/dist/components/presentation/auth/SignUp/BaseSignUp.d.ts +164 -6
- package/dist/components/presentation/auth/SignUp/BaseSignUp.d.ts.map +1 -1
- package/dist/components/presentation/auth/SignUp/BaseSignUp.js +691 -10
- package/dist/components/presentation/auth/SignUp/BaseSignUp.js.map +1 -1
- package/dist/components/presentation/auth/SignUp/SignUp.d.ts +15 -74
- package/dist/components/presentation/auth/SignUp/SignUp.d.ts.map +1 -1
- package/dist/components/presentation/auth/SignUp/SignUp.js +67 -77
- package/dist/components/presentation/auth/SignUp/SignUp.js.map +1 -1
- package/dist/components/primitives/Alert/Alert.js +1 -1
- package/dist/components/primitives/Checkbox/Checkbox.js +1 -1
- package/dist/components/primitives/FormControl/FormControl.js +1 -1
- package/dist/components/primitives/Toggle/Toggle.js +1 -1
- package/dist/contexts/ComponentRenderer/ComponentRendererContext.d.ts +1 -1
- package/dist/contexts/ComponentRenderer/ComponentRendererContext.d.ts.map +1 -1
- package/dist/contexts/ComponentRenderer/ComponentRendererContext.js.map +1 -1
- package/dist/contexts/FlowMeta/FlowMetaProvider.d.ts.map +1 -1
- package/dist/contexts/FlowMeta/FlowMetaProvider.js +6 -8
- package/dist/contexts/FlowMeta/FlowMetaProvider.js.map +1 -1
- package/dist/contexts/Theme/ThemeContext.d.ts +0 -12
- 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 +17 -41
- package/dist/contexts/Theme/ThemeProvider.d.ts.map +1 -1
- package/dist/contexts/Theme/ThemeProvider.js +73 -38
- package/dist/contexts/Theme/ThemeProvider.js.map +1 -1
- package/dist/contexts/ThunderID/ThunderIDContext.d.ts +2 -4
- package/dist/contexts/ThunderID/ThunderIDContext.d.ts.map +1 -1
- package/dist/contexts/ThunderID/ThunderIDContext.js +0 -3
- package/dist/contexts/ThunderID/ThunderIDContext.js.map +1 -1
- package/dist/contexts/ThunderID/ThunderIDProvider.d.ts.map +1 -1
- package/dist/contexts/ThunderID/ThunderIDProvider.js +15 -94
- package/dist/contexts/ThunderID/ThunderIDProvider.js.map +1 -1
- package/dist/hooks/useOAuthCallback.d.ts.map +1 -0
- package/dist/hooks/{v2/useOAuthCallback.js → useOAuthCallback.js} +1 -1
- package/dist/hooks/useOAuthCallback.js.map +1 -0
- package/dist/index.d.ts +7 -49
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -59
- package/dist/utils/buildThemeConfigFromFlowMeta.d.ts.map +1 -0
- package/dist/utils/{v2/buildThemeConfigFromFlowMeta.js → buildThemeConfigFromFlowMeta.js} +1 -1
- package/dist/utils/buildThemeConfigFromFlowMeta.js.map +1 -0
- package/dist/utils/{v2/flowTransformer.d.ts → flowTransformer.d.ts} +3 -3
- package/dist/utils/flowTransformer.d.ts.map +1 -0
- package/dist/utils/{v2/flowTransformer.js → flowTransformer.js} +1 -1
- package/dist/utils/flowTransformer.js.map +1 -0
- package/dist/utils/{v2/getAuthComponentHeadings.d.ts → getAuthComponentHeadings.d.ts} +1 -1
- package/dist/utils/getAuthComponentHeadings.d.ts.map +1 -0
- package/dist/utils/{v2/getAuthComponentHeadings.js → getAuthComponentHeadings.js} +1 -1
- package/dist/utils/getAuthComponentHeadings.js.map +1 -0
- package/dist/utils/passkey.d.ts.map +1 -0
- package/dist/utils/{v2/passkey.js → passkey.js} +1 -1
- package/dist/utils/passkey.js.map +1 -0
- package/dist/utils/{v2/resolveTranslationsInArray.d.ts → resolveTranslationsInArray.d.ts} +1 -1
- package/dist/utils/resolveTranslationsInArray.d.ts.map +1 -0
- package/dist/utils/{v2/resolveTranslationsInArray.js → resolveTranslationsInArray.js} +1 -1
- package/dist/utils/resolveTranslationsInArray.js.map +1 -0
- package/dist/utils/{v2/resolveTranslationsInObject.d.ts → resolveTranslationsInObject.d.ts} +1 -1
- package/dist/utils/resolveTranslationsInObject.d.ts.map +1 -0
- package/dist/utils/{v2/resolveTranslationsInObject.js → resolveTranslationsInObject.js} +1 -1
- package/dist/utils/resolveTranslationsInObject.js.map +1 -0
- package/package.json +10 -10
- package/dist/api/createOrganization.d.ts +0 -86
- package/dist/api/createOrganization.d.ts.map +0 -1
- package/dist/api/createOrganization.js +0 -80
- package/dist/api/createOrganization.js.map +0 -1
- package/dist/api/getAllOrganizations.d.ts +0 -78
- package/dist/api/getAllOrganizations.d.ts.map +0 -1
- package/dist/api/getAllOrganizations.js +0 -71
- package/dist/api/getAllOrganizations.js.map +0 -1
- package/dist/api/getMeOrganizations.d.ts +0 -82
- package/dist/api/getMeOrganizations.d.ts.map +0 -1
- package/dist/api/getMeOrganizations.js +0 -75
- package/dist/api/getMeOrganizations.js.map +0 -1
- package/dist/api/getOrganization.d.ts +0 -74
- package/dist/api/getOrganization.d.ts.map +0 -1
- package/dist/api/getOrganization.js +0 -67
- package/dist/api/getOrganization.js.map +0 -1
- package/dist/api/getSchemas.d.ts +0 -72
- package/dist/api/getSchemas.d.ts.map +0 -1
- package/dist/api/getSchemas.js +0 -65
- package/dist/api/getSchemas.js.map +0 -1
- package/dist/api/updateOrganization.d.ts +0 -81
- package/dist/api/updateOrganization.d.ts.map +0 -1
- package/dist/api/updateOrganization.js +0 -74
- package/dist/api/updateOrganization.js.map +0 -1
- package/dist/cjs/api/createOrganization.cjs +0 -82
- package/dist/cjs/api/createOrganization.cjs.map +0 -1
- package/dist/cjs/api/getAllOrganizations.cjs +0 -73
- package/dist/cjs/api/getAllOrganizations.cjs.map +0 -1
- package/dist/cjs/api/getMeOrganizations.cjs +0 -77
- package/dist/cjs/api/getMeOrganizations.cjs.map +0 -1
- package/dist/cjs/api/getOrganization.cjs +0 -69
- package/dist/cjs/api/getOrganization.cjs.map +0 -1
- package/dist/cjs/api/getSchemas.cjs +0 -67
- package/dist/cjs/api/getSchemas.cjs.map +0 -1
- package/dist/cjs/api/updateOrganization.cjs +0 -76
- package/dist/cjs/api/updateOrganization.cjs.map +0 -1
- package/dist/cjs/components/adapters/CheckboxInput.cjs +0 -30
- package/dist/cjs/components/adapters/CheckboxInput.cjs.map +0 -1
- package/dist/cjs/components/adapters/DateInput.cjs +0 -30
- package/dist/cjs/components/adapters/DateInput.cjs.map +0 -1
- package/dist/cjs/components/adapters/DividerComponent.cjs +0 -24
- package/dist/cjs/components/adapters/DividerComponent.cjs.map +0 -1
- package/dist/cjs/components/adapters/EmailInput.cjs +0 -30
- package/dist/cjs/components/adapters/EmailInput.cjs.map +0 -1
- package/dist/cjs/components/adapters/FormContainer.cjs +0 -36
- package/dist/cjs/components/adapters/FormContainer.cjs.map +0 -1
- package/dist/cjs/components/adapters/NumberInput.cjs +0 -30
- package/dist/cjs/components/adapters/NumberInput.cjs.map +0 -1
- package/dist/cjs/components/adapters/PasswordInput.cjs +0 -52
- package/dist/cjs/components/adapters/PasswordInput.cjs.map +0 -1
- package/dist/cjs/components/adapters/SelectInput.cjs +0 -36
- package/dist/cjs/components/adapters/SelectInput.cjs.map +0 -1
- package/dist/cjs/components/adapters/SubmitButton.cjs +0 -61
- package/dist/cjs/components/adapters/SubmitButton.cjs.map +0 -1
- package/dist/cjs/components/adapters/TelephoneInput.cjs +0 -32
- package/dist/cjs/components/adapters/TelephoneInput.cjs.map +0 -1
- package/dist/cjs/components/adapters/TextInput.cjs +0 -30
- package/dist/cjs/components/adapters/TextInput.cjs.map +0 -1
- package/dist/cjs/components/adapters/Typography.cjs +0 -60
- package/dist/cjs/components/adapters/Typography.cjs.map +0 -1
- package/dist/cjs/components/control/OrganizationContext/OrganizationContext.cjs +0 -34
- package/dist/cjs/components/control/OrganizationContext/OrganizationContext.cjs.map +0 -1
- package/dist/cjs/components/control/OrganizationContext/OrganizationContextController.cjs +0 -58
- package/dist/cjs/components/control/OrganizationContext/OrganizationContextController.cjs.map +0 -1
- package/dist/cjs/components/presentation/CreateOrganization/BaseCreateOrganization.cjs +0 -183
- package/dist/cjs/components/presentation/CreateOrganization/BaseCreateOrganization.cjs.map +0 -1
- package/dist/cjs/components/presentation/CreateOrganization/BaseCreateOrganization.styles.cjs +0 -150
- package/dist/cjs/components/presentation/CreateOrganization/BaseCreateOrganization.styles.cjs.map +0 -1
- package/dist/cjs/components/presentation/CreateOrganization/CreateOrganization.cjs +0 -90
- package/dist/cjs/components/presentation/CreateOrganization/CreateOrganization.cjs.map +0 -1
- package/dist/cjs/components/presentation/Organization/BaseOrganization.cjs +0 -41
- package/dist/cjs/components/presentation/Organization/BaseOrganization.cjs.map +0 -1
- package/dist/cjs/components/presentation/Organization/Organization.cjs +0 -49
- package/dist/cjs/components/presentation/Organization/Organization.cjs.map +0 -1
- package/dist/cjs/components/presentation/OrganizationList/BaseOrganizationList.cjs +0 -257
- package/dist/cjs/components/presentation/OrganizationList/BaseOrganizationList.cjs.map +0 -1
- package/dist/cjs/components/presentation/OrganizationList/BaseOrganizationList.styles.cjs +0 -236
- package/dist/cjs/components/presentation/OrganizationList/BaseOrganizationList.styles.cjs.map +0 -1
- package/dist/cjs/components/presentation/OrganizationList/OrganizationList.cjs +0 -86
- package/dist/cjs/components/presentation/OrganizationList/OrganizationList.cjs.map +0 -1
- package/dist/cjs/components/presentation/OrganizationList/OrganizationList.styles.cjs +0 -75
- package/dist/cjs/components/presentation/OrganizationList/OrganizationList.styles.cjs.map +0 -1
- package/dist/cjs/components/presentation/OrganizationProfile/BaseOrganizationProfile.cjs +0 -328
- package/dist/cjs/components/presentation/OrganizationProfile/BaseOrganizationProfile.cjs.map +0 -1
- package/dist/cjs/components/presentation/OrganizationProfile/BaseOrganizationProfile.styles.cjs +0 -166
- package/dist/cjs/components/presentation/OrganizationProfile/BaseOrganizationProfile.styles.cjs.map +0 -1
- package/dist/cjs/components/presentation/OrganizationProfile/OrganizationProfile.cjs +0 -126
- package/dist/cjs/components/presentation/OrganizationProfile/OrganizationProfile.cjs.map +0 -1
- package/dist/cjs/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.cjs +0 -288
- package/dist/cjs/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.cjs.map +0 -1
- package/dist/cjs/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.styles.cjs +0 -237
- package/dist/cjs/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.styles.cjs.map +0 -1
- package/dist/cjs/components/presentation/OrganizationSwitcher/OrganizationSwitcher.cjs +0 -127
- package/dist/cjs/components/presentation/OrganizationSwitcher/OrganizationSwitcher.cjs.map +0 -1
- package/dist/cjs/components/presentation/auth/AcceptInvite/v2/AcceptInvite.cjs.map +0 -1
- package/dist/cjs/components/presentation/auth/AcceptInvite/v2/BaseAcceptInvite.cjs.map +0 -1
- package/dist/cjs/components/presentation/auth/AcceptInvite/v2/BaseAcceptInvite.styles.cjs.map +0 -1
- package/dist/cjs/components/presentation/auth/InviteUser/v2/BaseInviteUser.cjs.map +0 -1
- package/dist/cjs/components/presentation/auth/InviteUser/v2/BaseInviteUser.styles.cjs.map +0 -1
- package/dist/cjs/components/presentation/auth/InviteUser/v2/InviteUser.cjs.map +0 -1
- package/dist/cjs/components/presentation/auth/OrganizationUnitPicker/v2/OrganizationUnitPicker.cjs +0 -183
- package/dist/cjs/components/presentation/auth/OrganizationUnitPicker/v2/OrganizationUnitPicker.cjs.map +0 -1
- package/dist/cjs/components/presentation/auth/OrganizationUnitPicker/v2/OrganizationUnitPicker.styles.cjs +0 -128
- package/dist/cjs/components/presentation/auth/OrganizationUnitPicker/v2/OrganizationUnitPicker.styles.cjs.map +0 -1
- package/dist/cjs/components/presentation/auth/Recovery/v1/BaseRecovery.cjs +0 -293
- package/dist/cjs/components/presentation/auth/Recovery/v1/BaseRecovery.cjs.map +0 -1
- package/dist/cjs/components/presentation/auth/Recovery/v1/Recovery.cjs +0 -43
- package/dist/cjs/components/presentation/auth/Recovery/v1/Recovery.cjs.map +0 -1
- package/dist/cjs/components/presentation/auth/Recovery/v1/RecoveryOptionFactory.cjs +0 -163
- package/dist/cjs/components/presentation/auth/Recovery/v1/RecoveryOptionFactory.cjs.map +0 -1
- package/dist/cjs/components/presentation/auth/Recovery/v2/BaseRecovery.cjs +0 -378
- package/dist/cjs/components/presentation/auth/Recovery/v2/BaseRecovery.cjs.map +0 -1
- package/dist/cjs/components/presentation/auth/Recovery/v2/Recovery.cjs +0 -78
- package/dist/cjs/components/presentation/auth/Recovery/v2/Recovery.cjs.map +0 -1
- package/dist/cjs/components/presentation/auth/SignIn/v1/BaseSignIn.cjs +0 -734
- package/dist/cjs/components/presentation/auth/SignIn/v1/BaseSignIn.cjs.map +0 -1
- package/dist/cjs/components/presentation/auth/SignIn/v1/options/EmailOtp.cjs +0 -68
- package/dist/cjs/components/presentation/auth/SignIn/v1/options/EmailOtp.cjs.map +0 -1
- package/dist/cjs/components/presentation/auth/SignIn/v1/options/IdentifierFirst.cjs +0 -59
- package/dist/cjs/components/presentation/auth/SignIn/v1/options/IdentifierFirst.cjs.map +0 -1
- package/dist/cjs/components/presentation/auth/SignIn/v1/options/MultiOptionButton.cjs +0 -139
- package/dist/cjs/components/presentation/auth/SignIn/v1/options/MultiOptionButton.cjs.map +0 -1
- package/dist/cjs/components/presentation/auth/SignIn/v1/options/SignInOptionFactory.cjs +0 -147
- package/dist/cjs/components/presentation/auth/SignIn/v1/options/SignInOptionFactory.cjs.map +0 -1
- package/dist/cjs/components/presentation/auth/SignIn/v1/options/SmsOtp.cjs +0 -68
- package/dist/cjs/components/presentation/auth/SignIn/v1/options/SmsOtp.cjs.map +0 -1
- package/dist/cjs/components/presentation/auth/SignIn/v1/options/SocialButton.cjs +0 -38
- package/dist/cjs/components/presentation/auth/SignIn/v1/options/SocialButton.cjs.map +0 -1
- package/dist/cjs/components/presentation/auth/SignIn/v1/options/Totp.cjs +0 -68
- package/dist/cjs/components/presentation/auth/SignIn/v1/options/Totp.cjs.map +0 -1
- package/dist/cjs/components/presentation/auth/SignIn/v1/options/UsernamePassword.cjs +0 -60
- package/dist/cjs/components/presentation/auth/SignIn/v1/options/UsernamePassword.cjs.map +0 -1
- package/dist/cjs/components/presentation/auth/SignIn/v2/BaseSignIn.cjs +0 -330
- package/dist/cjs/components/presentation/auth/SignIn/v2/BaseSignIn.cjs.map +0 -1
- package/dist/cjs/components/presentation/auth/SignIn/v2/SignIn.cjs +0 -560
- package/dist/cjs/components/presentation/auth/SignIn/v2/SignIn.cjs.map +0 -1
- package/dist/cjs/components/presentation/auth/SignUp/v1/BaseSignUp.cjs +0 -451
- package/dist/cjs/components/presentation/auth/SignUp/v1/BaseSignUp.cjs.map +0 -1
- package/dist/cjs/components/presentation/auth/SignUp/v1/SignUp.cjs +0 -54
- package/dist/cjs/components/presentation/auth/SignUp/v1/SignUp.cjs.map +0 -1
- package/dist/cjs/components/presentation/auth/SignUp/v1/SignUpOptionFactory.cjs +0 -164
- package/dist/cjs/components/presentation/auth/SignUp/v1/SignUpOptionFactory.cjs.map +0 -1
- package/dist/cjs/components/presentation/auth/SignUp/v2/BaseSignUp.cjs +0 -679
- package/dist/cjs/components/presentation/auth/SignUp/v2/BaseSignUp.cjs.map +0 -1
- package/dist/cjs/components/presentation/auth/SignUp/v2/SignUp.cjs +0 -80
- package/dist/cjs/components/presentation/auth/SignUp/v2/SignUp.cjs.map +0 -1
- package/dist/cjs/components/primitives/Icons/Building.cjs +0 -75
- package/dist/cjs/components/primitives/Icons/Building.cjs.map +0 -1
- package/dist/cjs/contexts/Branding/BrandingContext.cjs +0 -12
- package/dist/cjs/contexts/Branding/BrandingContext.cjs.map +0 -1
- package/dist/cjs/contexts/Branding/BrandingProvider.cjs +0 -96
- package/dist/cjs/contexts/Branding/BrandingProvider.cjs.map +0 -1
- package/dist/cjs/contexts/Branding/useBrandingContext.cjs +0 -40
- package/dist/cjs/contexts/Branding/useBrandingContext.cjs.map +0 -1
- package/dist/cjs/contexts/Organization/OrganizationContext.cjs +0 -27
- package/dist/cjs/contexts/Organization/OrganizationContext.cjs.map +0 -1
- package/dist/cjs/contexts/Organization/OrganizationProvider.cjs +0 -97
- package/dist/cjs/contexts/Organization/OrganizationProvider.cjs.map +0 -1
- package/dist/cjs/contexts/Organization/useOrganization.cjs +0 -100
- package/dist/cjs/contexts/Organization/useOrganization.cjs.map +0 -1
- package/dist/cjs/contexts/Theme/v1/ThemeProvider.cjs +0 -190
- package/dist/cjs/contexts/Theme/v1/ThemeProvider.cjs.map +0 -1
- package/dist/cjs/contexts/Theme/v2/ThemeProvider.cjs +0 -108
- package/dist/cjs/contexts/Theme/v2/ThemeProvider.cjs.map +0 -1
- package/dist/cjs/hooks/useBranding.cjs +0 -71
- package/dist/cjs/hooks/useBranding.cjs.map +0 -1
- package/dist/cjs/hooks/v2/useOAuthCallback.cjs.map +0 -1
- package/dist/cjs/utils/v2/buildThemeConfigFromFlowMeta.cjs.map +0 -1
- package/dist/cjs/utils/v2/flowTransformer.cjs.map +0 -1
- package/dist/cjs/utils/v2/getAuthComponentHeadings.cjs.map +0 -1
- package/dist/cjs/utils/v2/passkey.cjs.map +0 -1
- package/dist/cjs/utils/v2/resolveTranslationsInArray.cjs.map +0 -1
- package/dist/cjs/utils/v2/resolveTranslationsInObject.cjs.map +0 -1
- package/dist/components/adapters/CheckboxInput.d.ts +0 -25
- package/dist/components/adapters/CheckboxInput.d.ts.map +0 -1
- package/dist/components/adapters/CheckboxInput.js +0 -28
- package/dist/components/adapters/CheckboxInput.js.map +0 -1
- package/dist/components/adapters/DateInput.d.ts +0 -25
- package/dist/components/adapters/DateInput.d.ts.map +0 -1
- package/dist/components/adapters/DateInput.js +0 -28
- package/dist/components/adapters/DateInput.js.map +0 -1
- package/dist/components/adapters/DividerComponent.d.ts +0 -25
- package/dist/components/adapters/DividerComponent.d.ts.map +0 -1
- package/dist/components/adapters/DividerComponent.js +0 -22
- package/dist/components/adapters/DividerComponent.js.map +0 -1
- package/dist/components/adapters/EmailInput.d.ts +0 -25
- package/dist/components/adapters/EmailInput.d.ts.map +0 -1
- package/dist/components/adapters/EmailInput.js +0 -28
- package/dist/components/adapters/EmailInput.js.map +0 -1
- package/dist/components/adapters/FormContainer.d.ts +0 -25
- package/dist/components/adapters/FormContainer.d.ts.map +0 -1
- package/dist/components/adapters/FormContainer.js +0 -34
- package/dist/components/adapters/FormContainer.js.map +0 -1
- package/dist/components/adapters/NumberInput.d.ts +0 -25
- package/dist/components/adapters/NumberInput.d.ts.map +0 -1
- package/dist/components/adapters/NumberInput.js +0 -28
- package/dist/components/adapters/NumberInput.js.map +0 -1
- package/dist/components/adapters/PasswordInput.d.ts +0 -25
- package/dist/components/adapters/PasswordInput.d.ts.map +0 -1
- package/dist/components/adapters/PasswordInput.js +0 -50
- package/dist/components/adapters/PasswordInput.js.map +0 -1
- package/dist/components/adapters/SelectInput.d.ts +0 -25
- package/dist/components/adapters/SelectInput.d.ts.map +0 -1
- package/dist/components/adapters/SelectInput.js +0 -34
- package/dist/components/adapters/SelectInput.js.map +0 -1
- package/dist/components/adapters/SocialButton.d.ts +0 -25
- package/dist/components/adapters/SocialButton.d.ts.map +0 -1
- package/dist/components/adapters/SubmitButton.d.ts +0 -25
- package/dist/components/adapters/SubmitButton.d.ts.map +0 -1
- package/dist/components/adapters/SubmitButton.js +0 -59
- package/dist/components/adapters/SubmitButton.js.map +0 -1
- package/dist/components/adapters/TelephoneInput.d.ts +0 -25
- package/dist/components/adapters/TelephoneInput.d.ts.map +0 -1
- package/dist/components/adapters/TelephoneInput.js +0 -30
- package/dist/components/adapters/TelephoneInput.js.map +0 -1
- package/dist/components/adapters/TextInput.d.ts +0 -25
- package/dist/components/adapters/TextInput.d.ts.map +0 -1
- package/dist/components/adapters/TextInput.js +0 -28
- package/dist/components/adapters/TextInput.js.map +0 -1
- package/dist/components/adapters/Typography.d.ts +0 -25
- package/dist/components/adapters/Typography.d.ts.map +0 -1
- package/dist/components/adapters/Typography.js +0 -58
- package/dist/components/adapters/Typography.js.map +0 -1
- package/dist/components/control/OrganizationContext/OrganizationContext.d.ts +0 -40
- package/dist/components/control/OrganizationContext/OrganizationContext.d.ts.map +0 -1
- package/dist/components/control/OrganizationContext/OrganizationContext.js +0 -32
- package/dist/components/control/OrganizationContext/OrganizationContext.js.map +0 -1
- package/dist/components/control/OrganizationContext/OrganizationContextController.d.ts +0 -35
- package/dist/components/control/OrganizationContext/OrganizationContextController.d.ts.map +0 -1
- package/dist/components/control/OrganizationContext/OrganizationContextController.js +0 -55
- package/dist/components/control/OrganizationContext/OrganizationContextController.js.map +0 -1
- package/dist/components/presentation/CreateOrganization/BaseCreateOrganization.d.ts +0 -60
- package/dist/components/presentation/CreateOrganization/BaseCreateOrganization.d.ts.map +0 -1
- package/dist/components/presentation/CreateOrganization/BaseCreateOrganization.js +0 -178
- package/dist/components/presentation/CreateOrganization/BaseCreateOrganization.js.map +0 -1
- package/dist/components/presentation/CreateOrganization/BaseCreateOrganization.styles.d.ts +0 -27
- package/dist/components/presentation/CreateOrganization/BaseCreateOrganization.styles.d.ts.map +0 -1
- package/dist/components/presentation/CreateOrganization/BaseCreateOrganization.styles.js +0 -147
- package/dist/components/presentation/CreateOrganization/BaseCreateOrganization.styles.js.map +0 -1
- package/dist/components/presentation/CreateOrganization/CreateOrganization.d.ts +0 -68
- package/dist/components/presentation/CreateOrganization/CreateOrganization.d.ts.map +0 -1
- package/dist/components/presentation/CreateOrganization/CreateOrganization.js +0 -87
- package/dist/components/presentation/CreateOrganization/CreateOrganization.js.map +0 -1
- package/dist/components/presentation/Organization/BaseOrganization.d.ts +0 -67
- package/dist/components/presentation/Organization/BaseOrganization.d.ts.map +0 -1
- package/dist/components/presentation/Organization/BaseOrganization.js +0 -39
- package/dist/components/presentation/Organization/BaseOrganization.js.map +0 -1
- package/dist/components/presentation/Organization/Organization.d.ts +0 -67
- package/dist/components/presentation/Organization/Organization.d.ts.map +0 -1
- package/dist/components/presentation/Organization/Organization.js +0 -47
- package/dist/components/presentation/Organization/Organization.js.map +0 -1
- package/dist/components/presentation/OrganizationList/BaseOrganizationList.d.ts +0 -135
- package/dist/components/presentation/OrganizationList/BaseOrganizationList.d.ts.map +0 -1
- package/dist/components/presentation/OrganizationList/BaseOrganizationList.js +0 -252
- package/dist/components/presentation/OrganizationList/BaseOrganizationList.js.map +0 -1
- package/dist/components/presentation/OrganizationList/BaseOrganizationList.styles.d.ts +0 -27
- package/dist/components/presentation/OrganizationList/BaseOrganizationList.styles.d.ts.map +0 -1
- package/dist/components/presentation/OrganizationList/BaseOrganizationList.styles.js +0 -233
- package/dist/components/presentation/OrganizationList/BaseOrganizationList.styles.js.map +0 -1
- package/dist/components/presentation/OrganizationList/OrganizationList.d.ts +0 -93
- package/dist/components/presentation/OrganizationList/OrganizationList.d.ts.map +0 -1
- package/dist/components/presentation/OrganizationList/OrganizationList.js +0 -82
- package/dist/components/presentation/OrganizationList/OrganizationList.js.map +0 -1
- package/dist/components/presentation/OrganizationList/OrganizationList.styles.d.ts +0 -27
- package/dist/components/presentation/OrganizationList/OrganizationList.styles.d.ts.map +0 -1
- package/dist/components/presentation/OrganizationList/OrganizationList.styles.js +0 -72
- package/dist/components/presentation/OrganizationList/OrganizationList.styles.js.map +0 -1
- package/dist/components/presentation/OrganizationProfile/BaseOrganizationProfile.d.ts +0 -160
- package/dist/components/presentation/OrganizationProfile/BaseOrganizationProfile.d.ts.map +0 -1
- package/dist/components/presentation/OrganizationProfile/BaseOrganizationProfile.js +0 -323
- package/dist/components/presentation/OrganizationProfile/BaseOrganizationProfile.js.map +0 -1
- package/dist/components/presentation/OrganizationProfile/BaseOrganizationProfile.styles.d.ts +0 -27
- package/dist/components/presentation/OrganizationProfile/BaseOrganizationProfile.styles.d.ts.map +0 -1
- package/dist/components/presentation/OrganizationProfile/BaseOrganizationProfile.styles.js +0 -163
- package/dist/components/presentation/OrganizationProfile/BaseOrganizationProfile.styles.js.map +0 -1
- package/dist/components/presentation/OrganizationProfile/OrganizationProfile.d.ts +0 -120
- package/dist/components/presentation/OrganizationProfile/OrganizationProfile.d.ts.map +0 -1
- package/dist/components/presentation/OrganizationProfile/OrganizationProfile.js +0 -122
- package/dist/components/presentation/OrganizationProfile/OrganizationProfile.js.map +0 -1
- package/dist/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.d.ts +0 -149
- package/dist/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.d.ts.map +0 -1
- package/dist/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.js +0 -282
- package/dist/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.js.map +0 -1
- package/dist/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.styles.d.ts +0 -27
- package/dist/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.styles.d.ts.map +0 -1
- package/dist/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.styles.js +0 -234
- package/dist/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.styles.js.map +0 -1
- package/dist/components/presentation/OrganizationSwitcher/OrganizationSwitcher.d.ts +0 -71
- package/dist/components/presentation/OrganizationSwitcher/OrganizationSwitcher.d.ts.map +0 -1
- package/dist/components/presentation/OrganizationSwitcher/OrganizationSwitcher.js +0 -124
- package/dist/components/presentation/OrganizationSwitcher/OrganizationSwitcher.js.map +0 -1
- package/dist/components/presentation/auth/AcceptInvite/v2/AcceptInvite.d.ts.map +0 -1
- package/dist/components/presentation/auth/AcceptInvite/v2/AcceptInvite.js.map +0 -1
- package/dist/components/presentation/auth/AcceptInvite/v2/BaseAcceptInvite.d.ts.map +0 -1
- package/dist/components/presentation/auth/AcceptInvite/v2/BaseAcceptInvite.js.map +0 -1
- package/dist/components/presentation/auth/AcceptInvite/v2/BaseAcceptInvite.styles.d.ts.map +0 -1
- package/dist/components/presentation/auth/AcceptInvite/v2/BaseAcceptInvite.styles.js.map +0 -1
- package/dist/components/presentation/auth/InviteUser/v2/BaseInviteUser.d.ts.map +0 -1
- package/dist/components/presentation/auth/InviteUser/v2/BaseInviteUser.js.map +0 -1
- package/dist/components/presentation/auth/InviteUser/v2/BaseInviteUser.styles.d.ts.map +0 -1
- package/dist/components/presentation/auth/InviteUser/v2/BaseInviteUser.styles.js.map +0 -1
- package/dist/components/presentation/auth/InviteUser/v2/InviteUser.d.ts.map +0 -1
- package/dist/components/presentation/auth/InviteUser/v2/InviteUser.js.map +0 -1
- package/dist/components/presentation/auth/OrganizationUnitPicker/index.d.ts +0 -20
- package/dist/components/presentation/auth/OrganizationUnitPicker/index.d.ts.map +0 -1
- package/dist/components/presentation/auth/OrganizationUnitPicker/v2/OrganizationUnitPicker.d.ts +0 -30
- package/dist/components/presentation/auth/OrganizationUnitPicker/v2/OrganizationUnitPicker.d.ts.map +0 -1
- package/dist/components/presentation/auth/OrganizationUnitPicker/v2/OrganizationUnitPicker.js +0 -179
- package/dist/components/presentation/auth/OrganizationUnitPicker/v2/OrganizationUnitPicker.js.map +0 -1
- package/dist/components/presentation/auth/OrganizationUnitPicker/v2/OrganizationUnitPicker.styles.d.ts +0 -21
- package/dist/components/presentation/auth/OrganizationUnitPicker/v2/OrganizationUnitPicker.styles.d.ts.map +0 -1
- package/dist/components/presentation/auth/OrganizationUnitPicker/v2/OrganizationUnitPicker.styles.js +0 -125
- package/dist/components/presentation/auth/OrganizationUnitPicker/v2/OrganizationUnitPicker.styles.js.map +0 -1
- package/dist/components/presentation/auth/Recovery/v1/BaseRecovery.d.ts +0 -74
- package/dist/components/presentation/auth/Recovery/v1/BaseRecovery.d.ts.map +0 -1
- package/dist/components/presentation/auth/Recovery/v1/BaseRecovery.js +0 -288
- package/dist/components/presentation/auth/Recovery/v1/BaseRecovery.js.map +0 -1
- package/dist/components/presentation/auth/Recovery/v1/Recovery.d.ts +0 -26
- package/dist/components/presentation/auth/Recovery/v1/Recovery.d.ts.map +0 -1
- package/dist/components/presentation/auth/Recovery/v1/Recovery.js +0 -40
- package/dist/components/presentation/auth/Recovery/v1/Recovery.js.map +0 -1
- package/dist/components/presentation/auth/Recovery/v1/RecoveryOptionFactory.d.ts +0 -46
- package/dist/components/presentation/auth/Recovery/v1/RecoveryOptionFactory.d.ts.map +0 -1
- package/dist/components/presentation/auth/Recovery/v1/RecoveryOptionFactory.js +0 -160
- package/dist/components/presentation/auth/Recovery/v1/RecoveryOptionFactory.js.map +0 -1
- package/dist/components/presentation/auth/Recovery/v2/BaseRecovery.d.ts +0 -83
- package/dist/components/presentation/auth/Recovery/v2/BaseRecovery.d.ts.map +0 -1
- package/dist/components/presentation/auth/Recovery/v2/BaseRecovery.js +0 -373
- package/dist/components/presentation/auth/Recovery/v2/BaseRecovery.js.map +0 -1
- package/dist/components/presentation/auth/Recovery/v2/Recovery.d.ts +0 -56
- package/dist/components/presentation/auth/Recovery/v2/Recovery.d.ts.map +0 -1
- package/dist/components/presentation/auth/Recovery/v2/Recovery.js +0 -74
- package/dist/components/presentation/auth/Recovery/v2/Recovery.js.map +0 -1
- package/dist/components/presentation/auth/SignIn/v1/BaseSignIn.d.ts +0 -131
- package/dist/components/presentation/auth/SignIn/v1/BaseSignIn.d.ts.map +0 -1
- package/dist/components/presentation/auth/SignIn/v1/BaseSignIn.js +0 -729
- package/dist/components/presentation/auth/SignIn/v1/BaseSignIn.js.map +0 -1
- package/dist/components/presentation/auth/SignIn/v1/options/EmailOtp.d.ts +0 -26
- package/dist/components/presentation/auth/SignIn/v1/options/EmailOtp.d.ts.map +0 -1
- package/dist/components/presentation/auth/SignIn/v1/options/EmailOtp.js +0 -64
- package/dist/components/presentation/auth/SignIn/v1/options/EmailOtp.js.map +0 -1
- package/dist/components/presentation/auth/SignIn/v1/options/IdentifierFirst.d.ts +0 -26
- package/dist/components/presentation/auth/SignIn/v1/options/IdentifierFirst.d.ts.map +0 -1
- package/dist/components/presentation/auth/SignIn/v1/options/IdentifierFirst.js +0 -55
- package/dist/components/presentation/auth/SignIn/v1/options/IdentifierFirst.js.map +0 -1
- package/dist/components/presentation/auth/SignIn/v1/options/MultiOptionButton.d.ts +0 -27
- package/dist/components/presentation/auth/SignIn/v1/options/MultiOptionButton.d.ts.map +0 -1
- package/dist/components/presentation/auth/SignIn/v1/options/MultiOptionButton.js +0 -136
- package/dist/components/presentation/auth/SignIn/v1/options/MultiOptionButton.js.map +0 -1
- package/dist/components/presentation/auth/SignIn/v1/options/SignInOptionFactory.d.ts +0 -77
- package/dist/components/presentation/auth/SignIn/v1/options/SignInOptionFactory.d.ts.map +0 -1
- package/dist/components/presentation/auth/SignIn/v1/options/SignInOptionFactory.js +0 -143
- package/dist/components/presentation/auth/SignIn/v1/options/SignInOptionFactory.js.map +0 -1
- package/dist/components/presentation/auth/SignIn/v1/options/SmsOtp.d.ts +0 -26
- package/dist/components/presentation/auth/SignIn/v1/options/SmsOtp.d.ts.map +0 -1
- package/dist/components/presentation/auth/SignIn/v1/options/SmsOtp.js +0 -64
- package/dist/components/presentation/auth/SignIn/v1/options/SmsOtp.js.map +0 -1
- package/dist/components/presentation/auth/SignIn/v1/options/SocialButton.d.ts +0 -26
- package/dist/components/presentation/auth/SignIn/v1/options/SocialButton.d.ts.map +0 -1
- package/dist/components/presentation/auth/SignIn/v1/options/SocialButton.js +0 -36
- package/dist/components/presentation/auth/SignIn/v1/options/SocialButton.js.map +0 -1
- package/dist/components/presentation/auth/SignIn/v1/options/Totp.d.ts +0 -26
- package/dist/components/presentation/auth/SignIn/v1/options/Totp.d.ts.map +0 -1
- package/dist/components/presentation/auth/SignIn/v1/options/Totp.js +0 -64
- package/dist/components/presentation/auth/SignIn/v1/options/Totp.js.map +0 -1
- package/dist/components/presentation/auth/SignIn/v1/options/UsernamePassword.d.ts +0 -26
- package/dist/components/presentation/auth/SignIn/v1/options/UsernamePassword.d.ts.map +0 -1
- package/dist/components/presentation/auth/SignIn/v1/options/UsernamePassword.js +0 -56
- package/dist/components/presentation/auth/SignIn/v1/options/UsernamePassword.js.map +0 -1
- package/dist/components/presentation/auth/SignIn/v1/types.d.ts +0 -125
- package/dist/components/presentation/auth/SignIn/v1/types.d.ts.map +0 -1
- package/dist/components/presentation/auth/SignIn/v2/BaseSignIn.d.ts +0 -222
- package/dist/components/presentation/auth/SignIn/v2/BaseSignIn.d.ts.map +0 -1
- package/dist/components/presentation/auth/SignIn/v2/BaseSignIn.js +0 -325
- package/dist/components/presentation/auth/SignIn/v2/BaseSignIn.js.map +0 -1
- package/dist/components/presentation/auth/SignIn/v2/SignIn.d.ts +0 -165
- package/dist/components/presentation/auth/SignIn/v2/SignIn.d.ts.map +0 -1
- package/dist/components/presentation/auth/SignIn/v2/SignIn.js +0 -556
- package/dist/components/presentation/auth/SignIn/v2/SignIn.js.map +0 -1
- package/dist/components/presentation/auth/SignUp/v1/BaseSignUp.d.ts +0 -174
- package/dist/components/presentation/auth/SignUp/v1/BaseSignUp.d.ts.map +0 -1
- package/dist/components/presentation/auth/SignUp/v1/BaseSignUp.js +0 -446
- package/dist/components/presentation/auth/SignUp/v1/BaseSignUp.js.map +0 -1
- package/dist/components/presentation/auth/SignUp/v1/SignUp.d.ts +0 -39
- package/dist/components/presentation/auth/SignUp/v1/SignUp.d.ts.map +0 -1
- package/dist/components/presentation/auth/SignUp/v1/SignUp.js +0 -51
- package/dist/components/presentation/auth/SignUp/v1/SignUp.js.map +0 -1
- package/dist/components/presentation/auth/SignUp/v1/SignUpOptionFactory.d.ts +0 -46
- package/dist/components/presentation/auth/SignUp/v1/SignUpOptionFactory.d.ts.map +0 -1
- package/dist/components/presentation/auth/SignUp/v1/SignUpOptionFactory.js +0 -160
- package/dist/components/presentation/auth/SignUp/v1/SignUpOptionFactory.js.map +0 -1
- package/dist/components/presentation/auth/SignUp/v2/BaseSignUp.d.ts +0 -186
- package/dist/components/presentation/auth/SignUp/v2/BaseSignUp.d.ts.map +0 -1
- package/dist/components/presentation/auth/SignUp/v2/BaseSignUp.js +0 -674
- package/dist/components/presentation/auth/SignUp/v2/BaseSignUp.js.map +0 -1
- package/dist/components/presentation/auth/SignUp/v2/SignUp.d.ts +0 -39
- package/dist/components/presentation/auth/SignUp/v2/SignUp.d.ts.map +0 -1
- package/dist/components/presentation/auth/SignUp/v2/SignUp.js +0 -77
- package/dist/components/presentation/auth/SignUp/v2/SignUp.js.map +0 -1
- package/dist/components/primitives/Icons/Building.js +0 -73
- package/dist/components/primitives/Icons/Building.js.map +0 -1
- package/dist/contexts/Branding/BrandingContext.d.ts +0 -53
- package/dist/contexts/Branding/BrandingContext.d.ts.map +0 -1
- package/dist/contexts/Branding/BrandingContext.js +0 -10
- package/dist/contexts/Branding/BrandingContext.js.map +0 -1
- package/dist/contexts/Branding/BrandingProvider.d.ts +0 -89
- package/dist/contexts/Branding/BrandingProvider.d.ts.map +0 -1
- package/dist/contexts/Branding/BrandingProvider.js +0 -92
- package/dist/contexts/Branding/BrandingProvider.js.map +0 -1
- package/dist/contexts/Branding/useBrandingContext.d.ts +0 -45
- package/dist/contexts/Branding/useBrandingContext.d.ts.map +0 -1
- package/dist/contexts/Branding/useBrandingContext.js +0 -38
- package/dist/contexts/Branding/useBrandingContext.js.map +0 -1
- package/dist/contexts/Organization/OrganizationContext.d.ts +0 -41
- package/dist/contexts/Organization/OrganizationContext.d.ts.map +0 -1
- package/dist/contexts/Organization/OrganizationContext.js +0 -25
- package/dist/contexts/Organization/OrganizationContext.js.map +0 -1
- package/dist/contexts/Organization/OrganizationProvider.d.ts +0 -94
- package/dist/contexts/Organization/OrganizationProvider.d.ts.map +0 -1
- package/dist/contexts/Organization/OrganizationProvider.js +0 -93
- package/dist/contexts/Organization/OrganizationProvider.js.map +0 -1
- package/dist/contexts/Organization/useOrganization.d.ts +0 -105
- package/dist/contexts/Organization/useOrganization.d.ts.map +0 -1
- package/dist/contexts/Organization/useOrganization.js +0 -98
- package/dist/contexts/Organization/useOrganization.js.map +0 -1
- package/dist/contexts/Theme/v1/ThemeProvider.d.ts +0 -89
- package/dist/contexts/Theme/v1/ThemeProvider.d.ts.map +0 -1
- package/dist/contexts/Theme/v1/ThemeProvider.js +0 -186
- package/dist/contexts/Theme/v1/ThemeProvider.js.map +0 -1
- package/dist/contexts/Theme/v2/ThemeProvider.d.ts +0 -58
- package/dist/contexts/Theme/v2/ThemeProvider.d.ts.map +0 -1
- package/dist/contexts/Theme/v2/ThemeProvider.js +0 -104
- package/dist/contexts/Theme/v2/ThemeProvider.js.map +0 -1
- package/dist/hooks/useBranding.d.ts +0 -128
- package/dist/hooks/useBranding.d.ts.map +0 -1
- package/dist/hooks/useBranding.js +0 -69
- package/dist/hooks/useBranding.js.map +0 -1
- package/dist/hooks/v2/useOAuthCallback.d.ts.map +0 -1
- package/dist/hooks/v2/useOAuthCallback.js.map +0 -1
- package/dist/utils/v2/buildThemeConfigFromFlowMeta.d.ts.map +0 -1
- package/dist/utils/v2/buildThemeConfigFromFlowMeta.js.map +0 -1
- package/dist/utils/v2/flowTransformer.d.ts.map +0 -1
- package/dist/utils/v2/flowTransformer.js.map +0 -1
- package/dist/utils/v2/getAuthComponentHeadings.d.ts.map +0 -1
- package/dist/utils/v2/getAuthComponentHeadings.js.map +0 -1
- package/dist/utils/v2/passkey.d.ts.map +0 -1
- package/dist/utils/v2/passkey.js.map +0 -1
- package/dist/utils/v2/resolveTranslationsInArray.d.ts.map +0 -1
- package/dist/utils/v2/resolveTranslationsInArray.js.map +0 -1
- package/dist/utils/v2/resolveTranslationsInObject.d.ts.map +0 -1
- package/dist/utils/v2/resolveTranslationsInObject.js.map +0 -1
- /package/dist/components/presentation/auth/AcceptInvite/{v2/AcceptInvite.d.ts → AcceptInvite.d.ts} +0 -0
- /package/dist/components/presentation/auth/AcceptInvite/{v2/BaseAcceptInvite.styles.d.ts → BaseAcceptInvite.styles.d.ts} +0 -0
- /package/dist/components/presentation/auth/InviteUser/{v2/BaseInviteUser.styles.d.ts → BaseInviteUser.styles.d.ts} +0 -0
- /package/dist/components/presentation/auth/InviteUser/{v2/InviteUser.d.ts → InviteUser.d.ts} +0 -0
- /package/dist/hooks/{v2/useOAuthCallback.d.ts → useOAuthCallback.d.ts} +0 -0
- /package/dist/utils/{v2/buildThemeConfigFromFlowMeta.d.ts → buildThemeConfigFromFlowMeta.d.ts} +0 -0
- /package/dist/utils/{v2/passkey.d.ts → passkey.d.ts} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OrganizationProvider.cjs","names":["OrganizationProvider: FC<PropsWithChildren<OrganizationProviderProps>>","switchOrganization: (organization: Organization) => Promise<void>","ThunderIDRuntimeError","errorMessage: string","contextValue: OrganizationContextProps","OrganizationContext"],"sources":["../../../../src/contexts/Organization/OrganizationProvider.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 ThunderIDRuntimeError,\n Organization,\n AllOrganizationsApiResponse,\n CreateOrganizationPayload,\n TokenResponse,\n} from '@thunderid/browser';\nimport {FC, PropsWithChildren, ReactElement, useCallback, useMemo, useState} from 'react';\nimport OrganizationContext, {OrganizationContextProps} from './OrganizationContext';\n\n/**\n * Props interface of {@link OrganizationProvider}\n */\nexport interface OrganizationProviderProps {\n /**\n * Whether to automatically fetch organizations on mount\n */\n autoFetch?: boolean;\n /**\n * Function to create a new organization.\n */\n createOrganization?: (payload: CreateOrganizationPayload, sessionId: string) => Promise<Organization>;\n /**\n * Initial current organization\n */\n currentOrganization?: Organization | null;\n /**\n * Initial list of organizations\n */\n getAllOrganizations?: () => Promise<AllOrganizationsApiResponse>;\n /**\n * List of organizations the signed-in user belongs to.\n */\n myOrganizations?: Organization[];\n /**\n * Callback function called when an error occurs\n */\n onError?: (error: string) => void;\n /**\n * Callback function called when switching organizations\n */\n onOrganizationSwitch?: (organization: Organization) => Promise<TokenResponse | Response>;\n /**\n * Refetch the my organizations list.\n * @returns\n */\n revalidateMyOrganizations: () => Promise<Organization[]>;\n}\n\n/**\n * OrganizationProvider component that manages organization data and provides it through OrganizationContext.\n *\n * This provider:\n * - Fetches organization data from the organizations endpoint\n * - Manages current organization state\n * - Provides functions for switching organizations and refreshing data\n * - Handles loading states and errors\n *\n * @example\n * ```tsx\n * // Basic usage with auto-fetch (uses internal API)\n * <OrganizationProvider>\n * <App />\n * </OrganizationProvider>\n *\n * // With custom error handling\n * <OrganizationProvider onError={(error) => console.error('Organization error:', error)}>\n * <App />\n * </OrganizationProvider>\n *\n * // With custom organization switch handler\n * <OrganizationProvider\n * onOrganizationSwitch={(org) => console.log('Switched to:', org.name)}\n * >\n * <App />\n * </OrganizationProvider>\n *\n * // Disable auto-fetch (fetch manually using revalidateMyOrganizations)\n * <OrganizationProvider autoFetch={false}>\n * <App />\n * </OrganizationProvider>\n * ```\n */\nconst OrganizationProvider: FC<PropsWithChildren<OrganizationProviderProps>> = ({\n children,\n currentOrganization,\n onError,\n myOrganizations,\n onOrganizationSwitch,\n revalidateMyOrganizations,\n getAllOrganizations,\n createOrganization,\n}: PropsWithChildren<OrganizationProviderProps>): ReactElement => {\n const [isLoading, setIsLoading] = useState<boolean>(false);\n const [error, setError] = useState<string | null>(null);\n\n /**\n * Switches to a different organization\n */\n const switchOrganization: (organization: Organization) => Promise<void> = useCallback(\n async (organization: Organization): Promise<void> => {\n if (!onOrganizationSwitch) {\n throw new ThunderIDRuntimeError(\n 'onOrganizationSwitch callback is required',\n 'OrganizationProvider-SwitchError-001',\n 'react',\n 'The onOrganizationSwitch callback must be provided to handle organization switching.',\n );\n }\n\n setIsLoading(true);\n setError(null);\n\n try {\n await onOrganizationSwitch(organization);\n // The organization state will be updated by the parent provider\n } catch (switchError) {\n const errorMessage: string =\n switchError instanceof Error ? switchError.message : 'Failed to switch organization';\n setError(errorMessage);\n if (onError) {\n onError(errorMessage);\n }\n throw switchError; // Re-throw so the UI can handle it\n } finally {\n setIsLoading(false);\n }\n },\n [onOrganizationSwitch, onError],\n );\n\n const contextValue: OrganizationContextProps = useMemo(\n () => ({\n createOrganization,\n currentOrganization: currentOrganization ?? null,\n error,\n getAllOrganizations:\n getAllOrganizations ??\n ((): Promise<AllOrganizationsApiResponse> => Promise.resolve({count: 0, organizations: []})),\n isLoading,\n myOrganizations: myOrganizations ?? [],\n revalidateMyOrganizations,\n switchOrganization,\n }),\n [\n currentOrganization,\n error,\n isLoading,\n myOrganizations,\n switchOrganization,\n revalidateMyOrganizations,\n getAllOrganizations,\n createOrganization,\n ],\n );\n\n return <OrganizationContext.Provider value={contextValue}>{children}</OrganizationContext.Provider>;\n};\n\nexport default OrganizationProvider;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqGA,MAAMA,wBAA0E,EAC9E,UACA,qBACA,SACA,iBACA,sBACA,2BACA,qBACA,yBACgE;CAChE,MAAM,CAAC,WAAW,oCAAkC,MAAM;CAC1D,MAAM,CAAC,OAAO,gCAAoC,KAAK;;;;CAKvD,MAAMC,4CACJ,OAAO,iBAA8C;AACnD,MAAI,CAAC,qBACH,OAAM,IAAIC,0CACR,6CACA,wCACA,SACA,uFACD;AAGH,eAAa,KAAK;AAClB,WAAS,KAAK;AAEd,MAAI;AACF,SAAM,qBAAqB,aAAa;WAEjC,aAAa;GACpB,MAAMC,eACJ,uBAAuB,QAAQ,YAAY,UAAU;AACvD,YAAS,aAAa;AACtB,OAAI,QACF,SAAQ,aAAa;AAEvB,SAAM;YACE;AACR,gBAAa,MAAM;;IAGvB,CAAC,sBAAsB,QAAQ,CAChC;CAED,MAAMC,yCACG;EACL;EACA,qBAAqB,uBAAuB;EAC5C;EACA,qBACE,8BAC6C,QAAQ,QAAQ;GAAC,OAAO;GAAG,eAAe,EAAE;GAAC,CAAC;EAC7F;EACA,iBAAiB,mBAAmB,EAAE;EACtC;EACA;EACD,GACD;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF;AAED,QAAO,2CAACC,oCAAoB;EAAS,OAAO;EAAe;GAAwC;;AAGrG,mCAAe"}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
|
|
2
|
-
const require_OrganizationContext = require('./OrganizationContext.cjs');
|
|
3
|
-
let react = require("react");
|
|
4
|
-
react = require_rolldown_runtime.__toESM(react);
|
|
5
|
-
|
|
6
|
-
//#region src/contexts/Organization/useOrganization.ts
|
|
7
|
-
/**
|
|
8
|
-
* Hook to access the Organization context.
|
|
9
|
-
*
|
|
10
|
-
* This hook provides access to organization data including:
|
|
11
|
-
* - List of organizations the user belongs to
|
|
12
|
-
* - Current organization
|
|
13
|
-
* - Functions to switch organizations and refresh data
|
|
14
|
-
* - Function to fetch organizations programmatically
|
|
15
|
-
* - Loading states and error handling
|
|
16
|
-
*
|
|
17
|
-
* @returns {OrganizationContextProps} The organization context value containing all organization-related data and functions
|
|
18
|
-
* @throws {Error} Throws an error if used outside of OrganizationProvider
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* ```tsx
|
|
22
|
-
* import {useOrganization} from '@thunderid/react';
|
|
23
|
-
*
|
|
24
|
-
* function OrganizationSelector() {
|
|
25
|
-
* const {
|
|
26
|
-
* organizations,
|
|
27
|
-
* currentOrganization,
|
|
28
|
-
* switchOrganization,
|
|
29
|
-
* revalidateMyOrganizations,
|
|
30
|
-
* getOrganizations,
|
|
31
|
-
* isLoading,
|
|
32
|
-
* error
|
|
33
|
-
* } = useOrganization();
|
|
34
|
-
*
|
|
35
|
-
* if (isLoading) {
|
|
36
|
-
* return <div>Loading organizations...</div>;
|
|
37
|
-
* }
|
|
38
|
-
*
|
|
39
|
-
* if (error) {
|
|
40
|
-
* return <div>Error: {error}</div>;
|
|
41
|
-
* }
|
|
42
|
-
*
|
|
43
|
-
* return (
|
|
44
|
-
* <div>
|
|
45
|
-
* <h2>Current: {currentOrganization?.name}</h2>
|
|
46
|
-
* <select
|
|
47
|
-
* value={currentOrganization?.id || ''}
|
|
48
|
-
* onChange={(e) => {
|
|
49
|
-
* const org = organizations?.find(o => o.id === e.target.value);
|
|
50
|
-
* if (org) switchOrganization(org);
|
|
51
|
-
* }}
|
|
52
|
-
* >
|
|
53
|
-
* {organizations?.map(org => (
|
|
54
|
-
* <option key={org.id} value={org.id}>
|
|
55
|
-
* {org.name}
|
|
56
|
-
* </option>
|
|
57
|
-
* ))}
|
|
58
|
-
* </select>
|
|
59
|
-
* <button onClick={revalidateMyOrganizations}>
|
|
60
|
-
* Refresh Organizations
|
|
61
|
-
* </button>
|
|
62
|
-
* <button onClick={async () => {
|
|
63
|
-
* const fresh = await getOrganizations();
|
|
64
|
-
* console.log('Fresh organizations:', fresh);
|
|
65
|
-
* }}>
|
|
66
|
-
* Get Organizations Manually
|
|
67
|
-
* </button>
|
|
68
|
-
* </div>
|
|
69
|
-
* );
|
|
70
|
-
* }
|
|
71
|
-
*
|
|
72
|
-
* // Switch to a specific organization
|
|
73
|
-
* function SwitchOrgButton() {
|
|
74
|
-
* const {organizations, switchOrganization} = useOrganization();
|
|
75
|
-
*
|
|
76
|
-
* const handleSwitch = (orgId: string) => {
|
|
77
|
-
* const org = organizations?.find(o => o.id === orgId);
|
|
78
|
-
* if (org) {
|
|
79
|
-
* switchOrganization(org);
|
|
80
|
-
* }
|
|
81
|
-
* };
|
|
82
|
-
*
|
|
83
|
-
* return (
|
|
84
|
-
* <button onClick={() => handleSwitch('org-123')}>
|
|
85
|
-
* Switch to Organization
|
|
86
|
-
* </button>
|
|
87
|
-
* );
|
|
88
|
-
* }
|
|
89
|
-
* ```
|
|
90
|
-
*/
|
|
91
|
-
const useOrganization = () => {
|
|
92
|
-
const context = (0, react.useContext)(require_OrganizationContext.default);
|
|
93
|
-
if (!context) throw new Error("useOrganization must be used within an OrganizationProvider");
|
|
94
|
-
return context;
|
|
95
|
-
};
|
|
96
|
-
var useOrganization_default = useOrganization;
|
|
97
|
-
|
|
98
|
-
//#endregion
|
|
99
|
-
exports.default = useOrganization_default;
|
|
100
|
-
//# sourceMappingURL=useOrganization.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useOrganization.cjs","names":["context: OrganizationContextProps | null","OrganizationContext"],"sources":["../../../../src/contexts/Organization/useOrganization.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 {useContext} from 'react';\nimport OrganizationContext, {OrganizationContextProps} from './OrganizationContext';\n\n/**\n * Hook to access the Organization context.\n *\n * This hook provides access to organization data including:\n * - List of organizations the user belongs to\n * - Current organization\n * - Functions to switch organizations and refresh data\n * - Function to fetch organizations programmatically\n * - Loading states and error handling\n *\n * @returns {OrganizationContextProps} The organization context value containing all organization-related data and functions\n * @throws {Error} Throws an error if used outside of OrganizationProvider\n *\n * @example\n * ```tsx\n * import {useOrganization} from '@thunderid/react';\n *\n * function OrganizationSelector() {\n * const {\n * organizations,\n * currentOrganization,\n * switchOrganization,\n * revalidateMyOrganizations,\n * getOrganizations,\n * isLoading,\n * error\n * } = useOrganization();\n *\n * if (isLoading) {\n * return <div>Loading organizations...</div>;\n * }\n *\n * if (error) {\n * return <div>Error: {error}</div>;\n * }\n *\n * return (\n * <div>\n * <h2>Current: {currentOrganization?.name}</h2>\n * <select\n * value={currentOrganization?.id || ''}\n * onChange={(e) => {\n * const org = organizations?.find(o => o.id === e.target.value);\n * if (org) switchOrganization(org);\n * }}\n * >\n * {organizations?.map(org => (\n * <option key={org.id} value={org.id}>\n * {org.name}\n * </option>\n * ))}\n * </select>\n * <button onClick={revalidateMyOrganizations}>\n * Refresh Organizations\n * </button>\n * <button onClick={async () => {\n * const fresh = await getOrganizations();\n * console.log('Fresh organizations:', fresh);\n * }}>\n * Get Organizations Manually\n * </button>\n * </div>\n * );\n * }\n *\n * // Switch to a specific organization\n * function SwitchOrgButton() {\n * const {organizations, switchOrganization} = useOrganization();\n *\n * const handleSwitch = (orgId: string) => {\n * const org = organizations?.find(o => o.id === orgId);\n * if (org) {\n * switchOrganization(org);\n * }\n * };\n *\n * return (\n * <button onClick={() => handleSwitch('org-123')}>\n * Switch to Organization\n * </button>\n * );\n * }\n * ```\n */\nconst useOrganization = (): OrganizationContextProps => {\n const context: OrganizationContextProps | null = useContext(OrganizationContext);\n\n if (!context) {\n throw new Error('useOrganization must be used within an OrganizationProvider');\n }\n\n return context;\n};\n\nexport default useOrganization;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyGA,MAAM,wBAAkD;CACtD,MAAMA,gCAAsDC,oCAAoB;AAEhF,KAAI,CAAC,QACH,OAAM,IAAI,MAAM,8DAA8D;AAGhF,QAAO;;AAGT,8BAAe"}
|
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
|
|
2
|
-
const require_applyThemeToDOM = require('../../../utils/applyThemeToDOM.cjs');
|
|
3
|
-
const require_normalizeThemeConfig = require('../../../utils/normalizeThemeConfig.cjs');
|
|
4
|
-
const require_useBrandingContext = require('../../Branding/useBrandingContext.cjs');
|
|
5
|
-
const require_ThemeContext = require('../ThemeContext.cjs');
|
|
6
|
-
let __thunderid_browser = require("@thunderid/browser");
|
|
7
|
-
__thunderid_browser = require_rolldown_runtime.__toESM(__thunderid_browser);
|
|
8
|
-
let react = require("react");
|
|
9
|
-
react = require_rolldown_runtime.__toESM(react);
|
|
10
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
11
|
-
react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
|
|
12
|
-
|
|
13
|
-
//#region src/contexts/Theme/v1/ThemeProvider.tsx
|
|
14
|
-
const logger = (0, __thunderid_browser.createPackageComponentLogger)("@thunderid/react", "ThemeProvider");
|
|
15
|
-
/**
|
|
16
|
-
* ThemeProvider component that manages theme state and provides theme context to child components.
|
|
17
|
-
*
|
|
18
|
-
* This provider integrates with ThunderID branding preferences to automatically apply
|
|
19
|
-
* organization-specific themes while allowing for custom theme overrides.
|
|
20
|
-
*
|
|
21
|
-
* Features:
|
|
22
|
-
* - Automatic theme mode detection (light/dark/system/class)
|
|
23
|
-
* - Integration with ThunderID branding API through useBranding hook
|
|
24
|
-
* - Merging of branding themes with custom theme configurations
|
|
25
|
-
* - CSS variable injection for easy styling
|
|
26
|
-
* - Loading and error states for branding integration
|
|
27
|
-
*
|
|
28
|
-
* @example
|
|
29
|
-
* Basic usage with branding integration:
|
|
30
|
-
* ```tsx
|
|
31
|
-
* <ThemeProvider inheritFromBranding={true}>
|
|
32
|
-
* <App />
|
|
33
|
-
* </ThemeProvider>
|
|
34
|
-
* ```
|
|
35
|
-
*
|
|
36
|
-
* @example
|
|
37
|
-
* With custom theme overrides:
|
|
38
|
-
* ```tsx
|
|
39
|
-
* <ThemeProvider
|
|
40
|
-
* theme={{
|
|
41
|
-
* colors: {
|
|
42
|
-
* primary: { main: '#custom-color' }
|
|
43
|
-
* }
|
|
44
|
-
* }}
|
|
45
|
-
* inheritFromBranding={true}
|
|
46
|
-
* >
|
|
47
|
-
* <App />
|
|
48
|
-
* </ThemeProvider>
|
|
49
|
-
* ```
|
|
50
|
-
*
|
|
51
|
-
* @example
|
|
52
|
-
* With branding-driven theme mode:
|
|
53
|
-
* ```tsx
|
|
54
|
-
* <ThemeProvider
|
|
55
|
-
* mode="branding"
|
|
56
|
-
* inheritFromBranding={true}
|
|
57
|
-
* >
|
|
58
|
-
* <App />
|
|
59
|
-
* </ThemeProvider>
|
|
60
|
-
* ```
|
|
61
|
-
*/
|
|
62
|
-
const ThemeProvider = ({ children, theme: themeConfigProp, mode = __thunderid_browser.DEFAULT_THEME, detection = {}, inheritFromBranding = true }) => {
|
|
63
|
-
const themeConfig = require_normalizeThemeConfig.default(themeConfigProp);
|
|
64
|
-
const [colorScheme, setColorScheme] = (0, react.useState)(() => {
|
|
65
|
-
if (mode === "light" || mode === "dark") return mode;
|
|
66
|
-
if (mode === "branding") return (0, __thunderid_browser.detectThemeMode)("system", detection);
|
|
67
|
-
return (0, __thunderid_browser.detectThemeMode)(mode, detection);
|
|
68
|
-
});
|
|
69
|
-
let brandingTheme = null;
|
|
70
|
-
let brandingActiveTheme = null;
|
|
71
|
-
let isBrandingLoading = false;
|
|
72
|
-
let brandingError = null;
|
|
73
|
-
try {
|
|
74
|
-
const brandingContext = require_useBrandingContext.default();
|
|
75
|
-
brandingTheme = brandingContext.theme;
|
|
76
|
-
brandingActiveTheme = brandingContext.activeTheme;
|
|
77
|
-
isBrandingLoading = brandingContext.isLoading;
|
|
78
|
-
brandingError = brandingContext.error;
|
|
79
|
-
} catch (error) {
|
|
80
|
-
if (inheritFromBranding) logger.warn("ThemeProvider: inheritFromBranding is enabled but BrandingProvider is not available. Make sure to wrap your app with BrandingProvider or ThunderIDProvider with branding preferences.");
|
|
81
|
-
}
|
|
82
|
-
(0, react.useEffect)(() => {
|
|
83
|
-
if (inheritFromBranding && brandingActiveTheme) {
|
|
84
|
-
if (mode === "branding") setColorScheme(brandingActiveTheme);
|
|
85
|
-
else if (mode === "system" && !isBrandingLoading) setColorScheme(brandingActiveTheme);
|
|
86
|
-
}
|
|
87
|
-
}, [
|
|
88
|
-
inheritFromBranding,
|
|
89
|
-
brandingActiveTheme,
|
|
90
|
-
mode,
|
|
91
|
-
isBrandingLoading
|
|
92
|
-
]);
|
|
93
|
-
const finalThemeConfig = (0, react.useMemo)(() => {
|
|
94
|
-
if (!inheritFromBranding || !brandingTheme) return themeConfig;
|
|
95
|
-
const brandingThemeConfig = {
|
|
96
|
-
borderRadius: brandingTheme.borderRadius,
|
|
97
|
-
colors: brandingTheme.colors,
|
|
98
|
-
components: brandingTheme.components,
|
|
99
|
-
images: brandingTheme.images,
|
|
100
|
-
shadows: brandingTheme.shadows,
|
|
101
|
-
spacing: brandingTheme.spacing
|
|
102
|
-
};
|
|
103
|
-
return {
|
|
104
|
-
...brandingThemeConfig,
|
|
105
|
-
...themeConfig,
|
|
106
|
-
borderRadius: {
|
|
107
|
-
...brandingThemeConfig.borderRadius,
|
|
108
|
-
...themeConfig?.borderRadius
|
|
109
|
-
},
|
|
110
|
-
colors: {
|
|
111
|
-
...brandingThemeConfig.colors,
|
|
112
|
-
...themeConfig?.colors
|
|
113
|
-
},
|
|
114
|
-
components: {
|
|
115
|
-
...brandingThemeConfig.components,
|
|
116
|
-
...themeConfig?.components
|
|
117
|
-
},
|
|
118
|
-
images: {
|
|
119
|
-
...brandingThemeConfig.images,
|
|
120
|
-
...themeConfig?.images
|
|
121
|
-
},
|
|
122
|
-
shadows: {
|
|
123
|
-
...brandingThemeConfig.shadows,
|
|
124
|
-
...themeConfig?.shadows
|
|
125
|
-
},
|
|
126
|
-
spacing: {
|
|
127
|
-
...brandingThemeConfig.spacing,
|
|
128
|
-
...themeConfig?.spacing
|
|
129
|
-
}
|
|
130
|
-
};
|
|
131
|
-
}, [
|
|
132
|
-
inheritFromBranding,
|
|
133
|
-
brandingTheme,
|
|
134
|
-
themeConfig
|
|
135
|
-
]);
|
|
136
|
-
const theme = (0, react.useMemo)(() => (0, __thunderid_browser.createTheme)(finalThemeConfig, colorScheme === "dark"), [finalThemeConfig, colorScheme]);
|
|
137
|
-
const direction = finalThemeConfig?.direction || "ltr";
|
|
138
|
-
const handleThemeChange = (0, react.useCallback)((isDark) => {
|
|
139
|
-
setColorScheme(isDark ? "dark" : "light");
|
|
140
|
-
}, []);
|
|
141
|
-
const toggleTheme = (0, react.useCallback)(() => {
|
|
142
|
-
setColorScheme((prev) => prev === "light" ? "dark" : "light");
|
|
143
|
-
}, []);
|
|
144
|
-
(0, react.useEffect)(() => {
|
|
145
|
-
let observer = null;
|
|
146
|
-
let mediaQuery = null;
|
|
147
|
-
if (mode === "branding") return;
|
|
148
|
-
if (mode === "class") {
|
|
149
|
-
const targetElement = detection.targetElement || document.documentElement;
|
|
150
|
-
if (targetElement) observer = (0, __thunderid_browser.createClassObserver)(targetElement, handleThemeChange, detection);
|
|
151
|
-
} else if (mode === "system") {
|
|
152
|
-
if (!inheritFromBranding || !brandingActiveTheme) mediaQuery = (0, __thunderid_browser.createMediaQueryListener)(handleThemeChange);
|
|
153
|
-
}
|
|
154
|
-
return () => {
|
|
155
|
-
if (observer) observer.disconnect();
|
|
156
|
-
if (mediaQuery) if (mediaQuery.removeEventListener) mediaQuery.removeEventListener("change", handleThemeChange);
|
|
157
|
-
else mediaQuery.removeListener(handleThemeChange);
|
|
158
|
-
};
|
|
159
|
-
}, [
|
|
160
|
-
mode,
|
|
161
|
-
detection,
|
|
162
|
-
handleThemeChange,
|
|
163
|
-
inheritFromBranding,
|
|
164
|
-
brandingActiveTheme
|
|
165
|
-
]);
|
|
166
|
-
(0, react.useEffect)(() => {
|
|
167
|
-
require_applyThemeToDOM.default(theme);
|
|
168
|
-
}, [theme]);
|
|
169
|
-
(0, react.useEffect)(() => {
|
|
170
|
-
if (typeof document !== "undefined") document.documentElement.dir = direction;
|
|
171
|
-
}, [direction]);
|
|
172
|
-
const value = {
|
|
173
|
-
brandingError,
|
|
174
|
-
colorScheme,
|
|
175
|
-
direction,
|
|
176
|
-
inheritFromBranding,
|
|
177
|
-
isBrandingLoading,
|
|
178
|
-
theme,
|
|
179
|
-
toggleTheme
|
|
180
|
-
};
|
|
181
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ThemeContext.default.Provider, {
|
|
182
|
-
value,
|
|
183
|
-
children
|
|
184
|
-
});
|
|
185
|
-
};
|
|
186
|
-
var ThemeProvider_default = ThemeProvider;
|
|
187
|
-
|
|
188
|
-
//#endregion
|
|
189
|
-
exports.default = ThemeProvider_default;
|
|
190
|
-
//# sourceMappingURL=ThemeProvider.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeProvider.cjs","names":["logger: ReturnType<typeof createPackageComponentLogger>","ThemeProvider: FC<PropsWithChildren<ThemeProviderProps>>","DEFAULT_THEME","themeConfig: RecursivePartial<ThemeConfig> | undefined","normalizeThemeConfig","brandingTheme: Theme | null","brandingActiveTheme: 'light' | 'dark' | null","brandingError: Error | null","brandingContext: any","useBrandingContext","finalThemeConfig: RecursivePartial<ThemeConfig> | undefined","brandingThemeConfig: RecursivePartial<ThemeConfig>","theme: Theme","direction: string","handleThemeChange: (isDark: boolean) => void","toggleTheme: () => void","observer: MutationObserver | null","mediaQuery: MediaQueryList | null","targetElement: HTMLElement","value: any","ThemeContext"],"sources":["../../../../../src/contexts/Theme/v1/ThemeProvider.tsx"],"sourcesContent":["/**\n * Copyright (c) 2026, 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 createTheme,\n Theme,\n ThemeConfig,\n ThemeMode,\n RecursivePartial,\n detectThemeMode,\n createClassObserver,\n createMediaQueryListener,\n BrowserThemeDetection,\n ThemePreferences,\n DEFAULT_THEME,\n createPackageComponentLogger,\n} from '@thunderid/browser';\nimport {FC, PropsWithChildren, ReactElement, useEffect, useMemo, useState, useCallback} from 'react';\nimport applyThemeToDOM from '../../../utils/applyThemeToDOM';\nimport normalizeThemeConfig from '../../../utils/normalizeThemeConfig';\n\nimport useBrandingContext from '../../Branding/useBrandingContext';\nimport ThemeContext from '../ThemeContext';\n\nconst logger: ReturnType<typeof createPackageComponentLogger> = createPackageComponentLogger(\n '@thunderid/react',\n 'ThemeProvider',\n);\n\nexport interface ThemeProviderProps {\n /**\n * Configuration for theme detection when using 'class' or 'system' mode\n */\n detection?: BrowserThemeDetection;\n /**\n * Configuration for branding integration\n */\n inheritFromBranding?: ThemePreferences['inheritFromBranding'];\n /**\n * The theme mode to use for automatic detection\n * - 'light': Always use light theme\n * - 'dark': Always use dark theme\n * - 'system': Use system preference (prefers-color-scheme media query)\n * - 'class': Detect theme based on CSS classes on HTML element\n * - 'branding': Use active theme from branding preference (requires inheritFromBranding=true)\n */\n mode?: ThemeMode | 'branding';\n theme?: RecursivePartial<ThemeConfig>;\n}\n\n/**\n * ThemeProvider component that manages theme state and provides theme context to child components.\n *\n * This provider integrates with ThunderID branding preferences to automatically apply\n * organization-specific themes while allowing for custom theme overrides.\n *\n * Features:\n * - Automatic theme mode detection (light/dark/system/class)\n * - Integration with ThunderID branding API through useBranding hook\n * - Merging of branding themes with custom theme configurations\n * - CSS variable injection for easy styling\n * - Loading and error states for branding integration\n *\n * @example\n * Basic usage with branding integration:\n * ```tsx\n * <ThemeProvider inheritFromBranding={true}>\n * <App />\n * </ThemeProvider>\n * ```\n *\n * @example\n * With custom theme overrides:\n * ```tsx\n * <ThemeProvider\n * theme={{\n * colors: {\n * primary: { main: '#custom-color' }\n * }\n * }}\n * inheritFromBranding={true}\n * >\n * <App />\n * </ThemeProvider>\n * ```\n *\n * @example\n * With branding-driven theme mode:\n * ```tsx\n * <ThemeProvider\n * mode=\"branding\"\n * inheritFromBranding={true}\n * >\n * <App />\n * </ThemeProvider>\n * ```\n */\nconst ThemeProvider: FC<PropsWithChildren<ThemeProviderProps>> = ({\n children,\n theme: themeConfigProp,\n mode = DEFAULT_THEME,\n detection = {},\n inheritFromBranding = true,\n}: PropsWithChildren<ThemeProviderProps>): ReactElement => {\n const themeConfig: RecursivePartial<ThemeConfig> | undefined = normalizeThemeConfig(themeConfigProp);\n\n const [colorScheme, setColorScheme] = useState<'light' | 'dark'>(() => {\n // Initialize with detected theme mode or fallback to defaultMode\n if (mode === 'light' || mode === 'dark') {\n return mode;\n }\n // For 'branding' mode, start with system preference and update when branding loads\n if (mode === 'branding') {\n return detectThemeMode('system', detection);\n }\n return detectThemeMode(mode, detection);\n });\n\n // Use branding theme if inheritFromBranding is enabled\n // Handle case where BrandingProvider might not be available\n let brandingTheme: Theme | null = null;\n let brandingActiveTheme: 'light' | 'dark' | null = null;\n let isBrandingLoading = false;\n let brandingError: Error | null = null;\n\n try {\n const brandingContext: any = useBrandingContext();\n brandingTheme = brandingContext.theme;\n brandingActiveTheme = brandingContext.activeTheme;\n isBrandingLoading = brandingContext.isLoading;\n brandingError = brandingContext.error;\n } catch (error) {\n // BrandingProvider not available, fall back to no branding\n if (inheritFromBranding) {\n logger.warn(\n 'ThemeProvider: inheritFromBranding is enabled but BrandingProvider is not available. ' +\n 'Make sure to wrap your app with BrandingProvider or ThunderIDProvider with branding preferences.',\n );\n }\n }\n\n // Update color scheme based on branding active theme when available\n useEffect(() => {\n if (inheritFromBranding && brandingActiveTheme) {\n // Update color scheme based on mode preference\n if (mode === 'branding') {\n // Always follow branding active theme\n setColorScheme(brandingActiveTheme);\n } else if (mode === 'system' && !isBrandingLoading) {\n // For system mode, prefer branding but allow system override if no branding\n setColorScheme(brandingActiveTheme);\n }\n }\n }, [inheritFromBranding, brandingActiveTheme, mode, isBrandingLoading]);\n\n // Merge user-provided theme config with branding theme\n const finalThemeConfig: RecursivePartial<ThemeConfig> | undefined = useMemo(() => {\n if (!inheritFromBranding || !brandingTheme) {\n return themeConfig;\n }\n\n // Convert branding theme to our theme config format\n const brandingThemeConfig: RecursivePartial<ThemeConfig> = {\n borderRadius: brandingTheme.borderRadius,\n colors: brandingTheme.colors,\n components: brandingTheme.components,\n images: brandingTheme.images,\n shadows: brandingTheme.shadows,\n spacing: brandingTheme.spacing,\n };\n\n // Merge branding theme with user-provided theme config\n // User-provided config takes precedence over branding\n return {\n ...brandingThemeConfig,\n ...themeConfig,\n borderRadius: {\n ...brandingThemeConfig.borderRadius,\n ...themeConfig?.borderRadius,\n },\n colors: {\n ...brandingThemeConfig.colors,\n ...themeConfig?.colors,\n },\n components: {\n ...brandingThemeConfig.components,\n ...themeConfig?.components,\n },\n images: {\n ...brandingThemeConfig.images,\n ...themeConfig?.images,\n },\n shadows: {\n ...brandingThemeConfig.shadows,\n ...themeConfig?.shadows,\n },\n spacing: {\n ...brandingThemeConfig.spacing,\n ...themeConfig?.spacing,\n },\n };\n }, [inheritFromBranding, brandingTheme, themeConfig]);\n\n const theme: Theme = useMemo(\n () => createTheme(finalThemeConfig, colorScheme === 'dark'),\n [finalThemeConfig, colorScheme],\n );\n\n // Get direction from theme config or default to 'ltr'\n const direction: string = (finalThemeConfig as any)?.direction || 'ltr';\n\n const handleThemeChange: (isDark: boolean) => void = useCallback((isDark: boolean) => {\n setColorScheme(isDark ? 'dark' : 'light');\n }, []);\n\n const toggleTheme: () => void = useCallback(() => {\n setColorScheme((prev: 'light' | 'dark') => (prev === 'light' ? 'dark' : 'light'));\n }, []);\n\n useEffect(() => {\n let observer: MutationObserver | null = null;\n let mediaQuery: MediaQueryList | null = null;\n\n // Don't set up automatic theme detection for branding mode\n if (mode === 'branding') {\n return;\n }\n\n if (mode === 'class') {\n const targetElement: HTMLElement = detection.targetElement || document.documentElement;\n if (targetElement) {\n observer = createClassObserver(targetElement, handleThemeChange, detection);\n }\n } else if (mode === 'system') {\n // Only set up system listener if not using branding or branding hasn't loaded yet\n if (!inheritFromBranding || !brandingActiveTheme) {\n mediaQuery = createMediaQueryListener(handleThemeChange);\n }\n }\n\n return () => {\n if (observer) {\n observer.disconnect();\n }\n if (mediaQuery) {\n // Clean up media query listener\n if (mediaQuery.removeEventListener) {\n mediaQuery.removeEventListener('change', handleThemeChange as any);\n } else {\n // Fallback for older browsers\n mediaQuery.removeListener(handleThemeChange as any);\n }\n }\n };\n }, [mode, detection, handleThemeChange, inheritFromBranding, brandingActiveTheme]);\n\n useEffect(() => {\n applyThemeToDOM(theme);\n }, [theme]);\n\n // Apply direction to document\n useEffect(() => {\n if (typeof document !== 'undefined') {\n document.documentElement.dir = direction;\n }\n }, [direction]);\n\n const value: any = {\n brandingError,\n colorScheme,\n direction,\n inheritFromBranding,\n isBrandingLoading,\n theme,\n toggleTheme,\n };\n\n return <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>;\n};\n\nexport default ThemeProvider;\n"],"mappings":";;;;;;;;;;;;;AAuCA,MAAMA,+DACJ,oBACA,gBACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsED,MAAMC,iBAA4D,EAChE,UACA,OAAO,iBACP,OAAOC,mCACP,YAAY,EAAE,EACd,sBAAsB,WACmC;CACzD,MAAMC,cAAyDC,qCAAqB,gBAAgB;CAEpG,MAAM,CAAC,aAAa,4CAAmD;AAErE,MAAI,SAAS,WAAW,SAAS,OAC/B,QAAO;AAGT,MAAI,SAAS,WACX,iDAAuB,UAAU,UAAU;AAE7C,kDAAuB,MAAM,UAAU;GACvC;CAIF,IAAIC,gBAA8B;CAClC,IAAIC,sBAA+C;CACnD,IAAI,oBAAoB;CACxB,IAAIC,gBAA8B;AAElC,KAAI;EACF,MAAMC,kBAAuBC,oCAAoB;AACjD,kBAAgB,gBAAgB;AAChC,wBAAsB,gBAAgB;AACtC,sBAAoB,gBAAgB;AACpC,kBAAgB,gBAAgB;UACzB,OAAO;AAEd,MAAI,oBACF,QAAO,KACL,wLAED;;AAKL,4BAAgB;AACd,MAAI,uBAAuB,qBAEzB;OAAI,SAAS,WAEX,gBAAe,oBAAoB;YAC1B,SAAS,YAAY,CAAC,kBAE/B,gBAAe,oBAAoB;;IAGtC;EAAC;EAAqB;EAAqB;EAAM;EAAkB,CAAC;CAGvE,MAAMC,4CAA4E;AAChF,MAAI,CAAC,uBAAuB,CAAC,cAC3B,QAAO;EAIT,MAAMC,sBAAqD;GACzD,cAAc,cAAc;GAC5B,QAAQ,cAAc;GACtB,YAAY,cAAc;GAC1B,QAAQ,cAAc;GACtB,SAAS,cAAc;GACvB,SAAS,cAAc;GACxB;AAID,SAAO;GACL,GAAG;GACH,GAAG;GACH,cAAc;IACZ,GAAG,oBAAoB;IACvB,GAAG,aAAa;IACjB;GACD,QAAQ;IACN,GAAG,oBAAoB;IACvB,GAAG,aAAa;IACjB;GACD,YAAY;IACV,GAAG,oBAAoB;IACvB,GAAG,aAAa;IACjB;GACD,QAAQ;IACN,GAAG,oBAAoB;IACvB,GAAG,aAAa;IACjB;GACD,SAAS;IACP,GAAG,oBAAoB;IACvB,GAAG,aAAa;IACjB;GACD,SAAS;IACP,GAAG,oBAAoB;IACvB,GAAG,aAAa;IACjB;GACF;IACA;EAAC;EAAqB;EAAe;EAAY,CAAC;CAErD,MAAMC,sEACc,kBAAkB,gBAAgB,OAAO,EAC3D,CAAC,kBAAkB,YAAY,CAChC;CAGD,MAAMC,YAAqB,kBAA0B,aAAa;CAElE,MAAMC,4CAA4D,WAAoB;AACpF,iBAAe,SAAS,SAAS,QAAQ;IACxC,EAAE,CAAC;CAEN,MAAMC,2CAA4C;AAChD,kBAAgB,SAA4B,SAAS,UAAU,SAAS,QAAS;IAChF,EAAE,CAAC;AAEN,4BAAgB;EACd,IAAIC,WAAoC;EACxC,IAAIC,aAAoC;AAGxC,MAAI,SAAS,WACX;AAGF,MAAI,SAAS,SAAS;GACpB,MAAMC,gBAA6B,UAAU,iBAAiB,SAAS;AACvE,OAAI,cACF,yDAA+B,eAAe,mBAAmB,UAAU;aAEpE,SAAS,UAElB;OAAI,CAAC,uBAAuB,CAAC,oBAC3B,gEAAsC,kBAAkB;;AAI5D,eAAa;AACX,OAAI,SACF,UAAS,YAAY;AAEvB,OAAI,WAEF,KAAI,WAAW,oBACb,YAAW,oBAAoB,UAAU,kBAAyB;OAGlE,YAAW,eAAe,kBAAyB;;IAIxD;EAAC;EAAM;EAAW;EAAmB;EAAqB;EAAoB,CAAC;AAElF,4BAAgB;AACd,kCAAgB,MAAM;IACrB,CAAC,MAAM,CAAC;AAGX,4BAAgB;AACd,MAAI,OAAO,aAAa,YACtB,UAAS,gBAAgB,MAAM;IAEhC,CAAC,UAAU,CAAC;CAEf,MAAMC,QAAa;EACjB;EACA;EACA;EACA;EACA;EACA;EACA;EACD;AAED,QAAO,2CAACC,6BAAa;EAAgB;EAAQ;GAAiC;;AAGhF,4BAAe"}
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
|
|
2
|
-
const require_FlowMetaContext = require('../../FlowMeta/FlowMetaContext.cjs');
|
|
3
|
-
const require_applyThemeToDOM = require('../../../utils/applyThemeToDOM.cjs');
|
|
4
|
-
const require_normalizeThemeConfig = require('../../../utils/normalizeThemeConfig.cjs');
|
|
5
|
-
const require_ThemeContext = require('../ThemeContext.cjs');
|
|
6
|
-
const require_buildThemeConfigFromFlowMeta = require('../../../utils/v2/buildThemeConfigFromFlowMeta.cjs');
|
|
7
|
-
let __thunderid_browser = require("@thunderid/browser");
|
|
8
|
-
__thunderid_browser = require_rolldown_runtime.__toESM(__thunderid_browser);
|
|
9
|
-
let react = require("react");
|
|
10
|
-
react = require_rolldown_runtime.__toESM(react);
|
|
11
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
12
|
-
react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
|
|
13
|
-
|
|
14
|
-
//#region src/contexts/Theme/v2/ThemeProvider.tsx
|
|
15
|
-
/**
|
|
16
|
-
* ThemeProvider is the v2 drop-in replacement for `ThemeProvider`.
|
|
17
|
-
*
|
|
18
|
-
* It reads the design theme from the nearest `FlowMetaContext` (provided by
|
|
19
|
-
* `FlowMetaProvider`) and publishes a resolved `Theme` object through the
|
|
20
|
-
* **same** `ThemeContext` that `useTheme` consumes. This means all existing
|
|
21
|
-
* components that call `useTheme` continue to work without any changes.
|
|
22
|
-
*
|
|
23
|
-
* The `defaultColorScheme` field returned by the server is used to seed the
|
|
24
|
-
* active color scheme; the user can still toggle it locally via the
|
|
25
|
-
* `toggleTheme` value exposed in the context.
|
|
26
|
-
*
|
|
27
|
-
* @example
|
|
28
|
-
* ```tsx
|
|
29
|
-
* <FlowMetaProvider config={{ baseUrl, type: FlowMetaType.App, id: appId }}>
|
|
30
|
-
* <ThemeProvider>
|
|
31
|
-
* <App /> {/* useTheme() works here as usual *\/}
|
|
32
|
-
* </ThemeProvider>
|
|
33
|
-
* </FlowMetaProvider>
|
|
34
|
-
* ```
|
|
35
|
-
*
|
|
36
|
-
* @example
|
|
37
|
-
* With user theme overrides (user values win over server values):
|
|
38
|
-
* ```tsx
|
|
39
|
-
* <ThemeProvider theme={{ colors: { primary: { main: '#ff0000' } } }}>
|
|
40
|
-
* <App />
|
|
41
|
-
* </ThemeProvider>
|
|
42
|
-
* ```
|
|
43
|
-
*/
|
|
44
|
-
const ThemeProvider = ({ children, theme: themeOverrideProp }) => {
|
|
45
|
-
const themeOverride = require_normalizeThemeConfig.default(themeOverrideProp);
|
|
46
|
-
const flowMetaContext = (0, react.useContext)(require_FlowMetaContext.default);
|
|
47
|
-
const flowMetaTheme = flowMetaContext?.meta?.design?.theme ?? null;
|
|
48
|
-
const isLoading = flowMetaContext?.isLoading ?? false;
|
|
49
|
-
const error = flowMetaContext?.error ?? null;
|
|
50
|
-
const [colorScheme, setColorScheme] = (0, react.useState)(() => flowMetaTheme?.defaultColorScheme ?? "light");
|
|
51
|
-
(0, react.useEffect)(() => {
|
|
52
|
-
if (flowMetaTheme?.defaultColorScheme) setColorScheme(flowMetaTheme.defaultColorScheme);
|
|
53
|
-
}, [flowMetaTheme?.defaultColorScheme]);
|
|
54
|
-
const toggleTheme = (0, react.useCallback)(() => {
|
|
55
|
-
setColorScheme((prev) => prev === "light" ? "dark" : "light");
|
|
56
|
-
}, []);
|
|
57
|
-
const finalThemeConfig = (0, react.useMemo)(() => {
|
|
58
|
-
if (!flowMetaTheme) return themeOverride;
|
|
59
|
-
const metaConfig = require_buildThemeConfigFromFlowMeta.default(flowMetaTheme, colorScheme);
|
|
60
|
-
if (!themeOverride) return metaConfig;
|
|
61
|
-
return {
|
|
62
|
-
...metaConfig,
|
|
63
|
-
...themeOverride,
|
|
64
|
-
borderRadius: {
|
|
65
|
-
...metaConfig.borderRadius,
|
|
66
|
-
...themeOverride.borderRadius
|
|
67
|
-
},
|
|
68
|
-
colors: {
|
|
69
|
-
...metaConfig.colors,
|
|
70
|
-
...themeOverride.colors
|
|
71
|
-
},
|
|
72
|
-
...metaConfig.typography || themeOverride.typography ? { typography: {
|
|
73
|
-
...metaConfig.typography,
|
|
74
|
-
...themeOverride.typography
|
|
75
|
-
} } : {}
|
|
76
|
-
};
|
|
77
|
-
}, [
|
|
78
|
-
flowMetaTheme,
|
|
79
|
-
colorScheme,
|
|
80
|
-
themeOverride
|
|
81
|
-
]);
|
|
82
|
-
const theme = (0, react.useMemo)(() => (0, __thunderid_browser.createTheme)(finalThemeConfig, colorScheme === "dark"), [finalThemeConfig, colorScheme]);
|
|
83
|
-
const direction = flowMetaTheme?.direction ?? "ltr";
|
|
84
|
-
(0, react.useEffect)(() => {
|
|
85
|
-
require_applyThemeToDOM.default(theme);
|
|
86
|
-
}, [theme]);
|
|
87
|
-
(0, react.useEffect)(() => {
|
|
88
|
-
if (typeof document !== "undefined") document.documentElement.dir = direction;
|
|
89
|
-
}, [direction]);
|
|
90
|
-
const value = {
|
|
91
|
-
brandingError: error,
|
|
92
|
-
colorScheme,
|
|
93
|
-
direction,
|
|
94
|
-
inheritFromBranding: false,
|
|
95
|
-
isBrandingLoading: isLoading,
|
|
96
|
-
theme,
|
|
97
|
-
toggleTheme
|
|
98
|
-
};
|
|
99
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ThemeContext.default.Provider, {
|
|
100
|
-
value,
|
|
101
|
-
children
|
|
102
|
-
});
|
|
103
|
-
};
|
|
104
|
-
var ThemeProvider_default = ThemeProvider;
|
|
105
|
-
|
|
106
|
-
//#endregion
|
|
107
|
-
exports.default = ThemeProvider_default;
|
|
108
|
-
//# sourceMappingURL=ThemeProvider.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeProvider.cjs","names":["ThemeProvider: FC<PropsWithChildren<ThemeProviderProps>>","themeOverride: RecursivePartial<ThemeConfig> | undefined","normalizeThemeConfig","flowMetaContext: FlowMetaContextValue | null","FlowMetaContext","flowMetaTheme: FlowMetaTheme | null","isLoading: boolean","error: Error | null","toggleTheme: () => void","finalThemeConfig: RecursivePartial<ThemeConfig> | undefined","metaConfig: RecursivePartial<ThemeConfig>","buildThemeConfigFromFlowMeta","theme: Theme","direction: 'ltr' | 'rtl'","value: any","ThemeContext"],"sources":["../../../../../src/contexts/Theme/v2/ThemeProvider.tsx"],"sourcesContent":["/**\n * Copyright (c) 2026, 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 {createTheme, Theme, ThemeConfig, RecursivePartial, FlowMetaTheme} from '@thunderid/browser';\nimport {FC, PropsWithChildren, ReactElement, useCallback, useContext, useEffect, useMemo, useState} from 'react';\nimport applyThemeToDOM from '../../../utils/applyThemeToDOM';\nimport normalizeThemeConfig from '../../../utils/normalizeThemeConfig';\nimport buildThemeConfigFromFlowMeta from '../../../utils/v2/buildThemeConfigFromFlowMeta';\nimport FlowMetaContext, {FlowMetaContextValue} from '../../FlowMeta/FlowMetaContext';\nimport ThemeContext from '../ThemeContext';\n\nexport interface ThemeProviderProps {\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 brandingError: error,\n colorScheme,\n direction,\n inheritFromBranding: false,\n isBrandingLoading: isLoading,\n theme,\n toggleTheme,\n };\n\n return <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>;\n};\n\nexport default ThemeProvider;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+DA,MAAMA,iBAA4D,EAChE,UACA,OAAO,wBACkD;CACzD,MAAMC,gBAA2DC,qCAAqB,kBAAkB;CACxG,MAAMC,wCAA0DC,gCAAgB;CAEhF,MAAMC,gBAAsC,iBAAiB,MAAM,QAAQ,SAAS;CACpF,MAAMC,YAAqB,iBAAiB,aAAa;CACzD,MAAMC,QAAsB,iBAAiB,SAAS;CAGtD,MAAM,CAAC,aAAa,4CAAmD,eAAe,sBAAsB,QAAQ;AAGpH,4BAAgB;AACd,MAAI,eAAe,mBACjB,gBAAe,cAAc,mBAAmB;IAEjD,CAAC,eAAe,mBAAmB,CAAC;CAEvC,MAAMC,2CAA4C;AAChD,kBAAgB,SAA4B,SAAS,UAAU,SAAS,QAAS;IAChF,EAAE,CAAC;CAGN,MAAMC,4CAA4E;AAChF,MAAI,CAAC,cACH,QAAO;EAGT,MAAMC,aAA4CC,6CAA6B,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,sEACc,kBAAkB,gBAAgB,OAAO,EAC3D,CAAC,kBAAkB,YAAY,CAChC;CAED,MAAMC,YAA2B,eAAe,aAAa;AAG7D,4BAAgB;AACd,kCAAgB,MAAM;IACrB,CAAC,MAAM,CAAC;AAGX,4BAAgB;AACd,MAAI,OAAO,aAAa,YACtB,UAAS,gBAAgB,MAAM;IAEhC,CAAC,UAAU,CAAC;CAEf,MAAMC,QAAa;EACjB,eAAe;EACf;EACA;EACA,qBAAqB;EACrB,mBAAmB;EACnB;EACA;EACD;AAED,QAAO,2CAACC,6BAAa;EAAgB;EAAQ;GAAiC;;AAGhF,4BAAe"}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
|
-
const require_useBrandingContext = require('../contexts/Branding/useBrandingContext.cjs');
|
|
3
|
-
let __thunderid_browser = require("@thunderid/browser");
|
|
4
|
-
__thunderid_browser = require_rolldown_runtime.__toESM(__thunderid_browser);
|
|
5
|
-
|
|
6
|
-
//#region src/hooks/useBranding.ts
|
|
7
|
-
const logger = (0, __thunderid_browser.createPackageComponentLogger)("@thunderid/react", "useBranding");
|
|
8
|
-
/**
|
|
9
|
-
* React hook for accessing branding preferences from the BrandingProvider context.
|
|
10
|
-
* This hook provides access to branding preferences, theme data, and loading states.
|
|
11
|
-
*
|
|
12
|
-
* @deprecated Consider using useBrandingContext directly for better performance.
|
|
13
|
-
* This hook is maintained for backward compatibility.
|
|
14
|
-
*
|
|
15
|
-
* @param config - Configuration options (deprecated, use BrandingProvider props instead)
|
|
16
|
-
* @returns Object containing branding preference data, theme, loading state, error, and refetch function
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* Basic usage:
|
|
20
|
-
* ```tsx
|
|
21
|
-
* function MyComponent() {
|
|
22
|
-
* const { theme, activeTheme, isLoading, error } = useBranding();
|
|
23
|
-
*
|
|
24
|
-
* if (isLoading) return <div>Loading branding...</div>;
|
|
25
|
-
* if (error) return <div>Error: {error.message}</div>;
|
|
26
|
-
*
|
|
27
|
-
* return (
|
|
28
|
-
* <div style={{ color: theme?.colors?.primary?.main }}>
|
|
29
|
-
* <p>Active theme mode: {activeTheme}</p>
|
|
30
|
-
* <p>Styled with ThunderID branding</p>
|
|
31
|
-
* </div>
|
|
32
|
-
* );
|
|
33
|
-
* }
|
|
34
|
-
* ```
|
|
35
|
-
*
|
|
36
|
-
* @example
|
|
37
|
-
* For new implementations, use BrandingProvider with useBrandingContext:
|
|
38
|
-
* ```tsx
|
|
39
|
-
* // In your root component
|
|
40
|
-
* <BrandingProvider baseUrl="https://localhost:8090">
|
|
41
|
-
* <App />
|
|
42
|
-
* </BrandingProvider>
|
|
43
|
-
*
|
|
44
|
-
* // In your component
|
|
45
|
-
* function MyComponent() {
|
|
46
|
-
* const { theme, activeTheme, isLoading, error } = useBrandingContext();
|
|
47
|
-
* // ... rest of your component
|
|
48
|
-
* }
|
|
49
|
-
* ```
|
|
50
|
-
*/
|
|
51
|
-
const useBranding = () => {
|
|
52
|
-
try {
|
|
53
|
-
return require_useBrandingContext.default();
|
|
54
|
-
} catch (error) {
|
|
55
|
-
logger.warn("useBranding: BrandingProvider not available. Make sure to wrap your app with BrandingProvider or ThunderIDProvider with branding preferences.");
|
|
56
|
-
return {
|
|
57
|
-
activeTheme: null,
|
|
58
|
-
brandingPreference: null,
|
|
59
|
-
error: /* @__PURE__ */ new Error("BrandingProvider not available"),
|
|
60
|
-
fetchBranding: async () => {},
|
|
61
|
-
isLoading: false,
|
|
62
|
-
refetch: async () => {},
|
|
63
|
-
theme: null
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
var useBranding_default = useBranding;
|
|
68
|
-
|
|
69
|
-
//#endregion
|
|
70
|
-
exports.default = useBranding_default;
|
|
71
|
-
//# sourceMappingURL=useBranding.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useBranding.cjs","names":["logger: ReturnType<typeof createPackageComponentLogger>","useBrandingContext"],"sources":["../../../src/hooks/useBranding.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 {BrandingPreference, Theme, createPackageComponentLogger} from '@thunderid/browser';\nimport useBrandingContext from '../contexts/Branding/useBrandingContext';\n\nconst logger: ReturnType<typeof createPackageComponentLogger> = createPackageComponentLogger(\n '@thunderid/react',\n 'useBranding',\n);\n\n/**\n * Configuration options for the useBranding hook\n * @deprecated Use BrandingProvider instead for better performance and consistency\n */\nexport interface UseBrandingConfig {\n /**\n * @deprecated This configuration is now handled by BrandingProvider\n */\n autoFetch?: boolean;\n /**\n * @deprecated This configuration is now handled by BrandingProvider\n */\n fetcher?: (url: string, config: RequestInit) => Promise<Response>;\n /**\n * @deprecated This configuration is now handled by BrandingProvider\n */\n forceTheme?: 'light' | 'dark';\n /**\n * @deprecated This configuration is now handled by BrandingProvider\n */\n locale?: string;\n /**\n * @deprecated This configuration is now handled by BrandingProvider\n */\n name?: string;\n /**\n * @deprecated This configuration is now handled by BrandingProvider\n */\n type?: string;\n}\n\n/**\n * Return type of the useBranding hook\n */\nexport interface UseBrandingReturn {\n /**\n * The active theme mode from branding preference ('light' | 'dark')\n */\n activeTheme: 'light' | 'dark' | null;\n /**\n * The raw branding preference data\n */\n brandingPreference: BrandingPreference | null;\n /**\n * Error state\n */\n error: Error | null;\n /**\n * Function to manually fetch branding preference\n */\n fetchBranding: () => Promise<void>;\n /**\n * Loading state\n */\n isLoading: boolean;\n /**\n * Function to refetch branding preference\n * This bypasses the single-call restriction and forces a new API call\n */\n refetch: () => Promise<void>;\n /**\n * The transformed theme object\n */\n theme: Theme | null;\n}\n\n/**\n * React hook for accessing branding preferences from the BrandingProvider context.\n * This hook provides access to branding preferences, theme data, and loading states.\n *\n * @deprecated Consider using useBrandingContext directly for better performance.\n * This hook is maintained for backward compatibility.\n *\n * @param config - Configuration options (deprecated, use BrandingProvider props instead)\n * @returns Object containing branding preference data, theme, loading state, error, and refetch function\n *\n * @example\n * Basic usage:\n * ```tsx\n * function MyComponent() {\n * const { theme, activeTheme, isLoading, error } = useBranding();\n *\n * if (isLoading) return <div>Loading branding...</div>;\n * if (error) return <div>Error: {error.message}</div>;\n *\n * return (\n * <div style={{ color: theme?.colors?.primary?.main }}>\n * <p>Active theme mode: {activeTheme}</p>\n * <p>Styled with ThunderID branding</p>\n * </div>\n * );\n * }\n * ```\n *\n * @example\n * For new implementations, use BrandingProvider with useBrandingContext:\n * ```tsx\n * // In your root component\n * <BrandingProvider baseUrl=\"https://localhost:8090\">\n * <App />\n * </BrandingProvider>\n *\n * // In your component\n * function MyComponent() {\n * const { theme, activeTheme, isLoading, error } = useBrandingContext();\n * // ... rest of your component\n * }\n * ```\n */\nexport const useBranding = (): UseBrandingReturn => {\n try {\n return useBrandingContext();\n } catch (error) {\n logger.warn(\n 'useBranding: BrandingProvider not available. ' +\n 'Make sure to wrap your app with BrandingProvider or ThunderIDProvider with branding preferences.',\n );\n\n return {\n activeTheme: null,\n brandingPreference: null,\n error: new Error('BrandingProvider not available'),\n fetchBranding: async (): Promise<void> => {},\n isLoading: false,\n refetch: async (): Promise<void> => {},\n theme: null,\n };\n }\n};\n\nexport default useBranding;\n"],"mappings":";;;;;;AAqBA,MAAMA,+DACJ,oBACA,cACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+GD,MAAa,oBAAuC;AAClD,KAAI;AACF,SAAOC,oCAAoB;UACpB,OAAO;AACd,SAAO,KACL,gJAED;AAED,SAAO;GACL,aAAa;GACb,oBAAoB;GACpB,uBAAO,IAAI,MAAM,iCAAiC;GAClD,eAAe,YAA2B;GAC1C,WAAW;GACX,SAAS,YAA2B;GACpC,OAAO;GACR;;;AAIL,0BAAe"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useOAuthCallback.cjs","names":["url: URL","internalRef: any","oauthCodeProcessedRef: any","urlParams: URLSearchParams","code: string | null","nonce: string | null","state: string | null","executionIdFromUrl: string | null","error: string | null","errorDescription: string | null","storedExecutionId: string | null","executionIdToUse: string | null","response: any"],"sources":["../../../../src/hooks/v2/useOAuthCallback.ts"],"sourcesContent":["/**\n * Copyright (c) 2026, 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 {useEffect, useRef, type RefObject} from 'react';\n\nexport interface UseOAuthCallbackOptions {\n /**\n * Current executionId from component state\n */\n currentExecutionId: string | null;\n\n /**\n * SessionStorage key for executionId (defaults to 'thunderid_execution_id')\n */\n executionIdStorageKey?: string;\n\n /**\n * Whether the component is initialized and ready to process OAuth callback\n */\n isInitialized: boolean;\n\n /**\n * Whether a submission is currently in progress\n */\n isSubmitting?: boolean;\n\n /**\n * Callback when OAuth flow completes successfully\n */\n onComplete?: () => void;\n\n /**\n * Callback when OAuth flow encounters an error\n */\n onError?: (error: any) => void;\n\n /**\n * Function to handle flow response after submission\n */\n onFlowChange?: (response: any) => void;\n\n /**\n * Callback to set loading state at the start of OAuth processing\n */\n onProcessingStart?: () => void;\n\n /**\n * Function to submit OAuth code to the server\n */\n onSubmit: (payload: OAuthCallbackPayload) => Promise<any>;\n\n /**\n * Optional external ref to track processed state. If provided, the component\n * manages the ref (allowing resets on flow clear/retry). Otherwise hook manages internally.\n */\n processedRef?: RefObject<boolean>;\n\n /**\n * Additional handler for setting state (e.g., setExecutionId)\n */\n setExecutionId?: (executionId: string) => void;\n\n /**\n * Ref to mark that token validation was attempted (prevents duplicate validation)\n * Used in AcceptInvite to coordinate between OAuth callback and token validation\n */\n tokenValidationAttemptedRef?: RefObject<boolean>;\n}\n\nexport interface OAuthCallbackPayload {\n executionId: string;\n inputs: {\n code: string;\n nonce?: string;\n };\n}\n\nfunction cleanupUrlParams(): void {\n if (typeof window === 'undefined') return;\n\n const url: URL = new URL(window.location.href);\n url.searchParams.delete('code');\n url.searchParams.delete('nonce');\n url.searchParams.delete('state');\n url.searchParams.delete('error');\n url.searchParams.delete('error_description');\n\n window.history.replaceState({}, '', url.toString());\n}\n\n/**\n * Processes OAuth callbacks by detecting auth code in URL, resolving executionId, and submitting to server.\n * Used by SignIn, SignUp, and AcceptInvite components.\n */\nexport function useOAuthCallback({\n currentExecutionId,\n executionIdStorageKey = 'thunderid_execution_id',\n isInitialized,\n isSubmitting = false,\n onComplete,\n onError,\n onFlowChange,\n onProcessingStart,\n onSubmit,\n processedRef,\n setExecutionId: setExecExecutionId,\n tokenValidationAttemptedRef,\n}: UseOAuthCallbackOptions): void {\n const internalRef: any = useRef(false);\n const oauthCodeProcessedRef: any = processedRef ?? internalRef;\n\n useEffect(() => {\n if (!isInitialized || isSubmitting) {\n return;\n }\n\n const urlParams: URLSearchParams = new URLSearchParams(window.location.search);\n const code: string | null = urlParams.get('code');\n const nonce: string | null = urlParams.get('nonce');\n const state: string | null = urlParams.get('state');\n const executionIdFromUrl: string | null = urlParams.get('executionId');\n const error: string | null = urlParams.get('error');\n const errorDescription: string | null = urlParams.get('error_description');\n\n if (error) {\n oauthCodeProcessedRef.current = true;\n if (tokenValidationAttemptedRef) {\n tokenValidationAttemptedRef.current = true;\n }\n onError?.(new Error(errorDescription || error || 'OAuth authentication failed'));\n cleanupUrlParams();\n return;\n }\n\n if (!code || oauthCodeProcessedRef.current) {\n return;\n }\n\n if (tokenValidationAttemptedRef?.current) {\n return;\n }\n\n const storedExecutionId: string | null = sessionStorage.getItem(executionIdStorageKey);\n const executionIdToUse: string | null =\n currentExecutionId || storedExecutionId || executionIdFromUrl || state || null;\n\n if (!executionIdToUse) {\n oauthCodeProcessedRef.current = true;\n onError?.(new Error('Invalid flow. Missing executionId.'));\n cleanupUrlParams();\n return;\n }\n\n oauthCodeProcessedRef.current = true;\n\n if (tokenValidationAttemptedRef) {\n tokenValidationAttemptedRef.current = true;\n }\n\n onProcessingStart?.();\n\n if (!currentExecutionId && setExecExecutionId) {\n setExecExecutionId(executionIdToUse);\n }\n\n (async (): Promise<void> => {\n try {\n const payload: OAuthCallbackPayload = {\n executionId: executionIdToUse,\n inputs: {\n code,\n ...(nonce && {nonce}),\n },\n };\n\n const response: any = await onSubmit(payload);\n\n onFlowChange?.(response);\n\n if (response?.flowStatus === 'COMPLETE' || response?.status === 'COMPLETE') {\n onComplete?.();\n }\n\n if (response?.flowStatus === 'ERROR' || response?.status === 'ERROR') {\n onError?.(response);\n }\n\n cleanupUrlParams();\n } catch (err) {\n onError?.(err);\n cleanupUrlParams();\n }\n })();\n }, [\n isInitialized,\n currentExecutionId,\n isSubmitting,\n onSubmit,\n onComplete,\n onError,\n onFlowChange,\n setExecExecutionId,\n executionIdStorageKey,\n ]);\n}\n"],"mappings":";;;;;AA4FA,SAAS,mBAAyB;AAChC,KAAI,OAAO,WAAW,YAAa;CAEnC,MAAMA,MAAW,IAAI,IAAI,OAAO,SAAS,KAAK;AAC9C,KAAI,aAAa,OAAO,OAAO;AAC/B,KAAI,aAAa,OAAO,QAAQ;AAChC,KAAI,aAAa,OAAO,QAAQ;AAChC,KAAI,aAAa,OAAO,QAAQ;AAChC,KAAI,aAAa,OAAO,oBAAoB;AAE5C,QAAO,QAAQ,aAAa,EAAE,EAAE,IAAI,IAAI,UAAU,CAAC;;;;;;AAOrD,SAAgB,iBAAiB,EAC/B,oBACA,wBAAwB,0BACxB,eACA,eAAe,OACf,YACA,SACA,cACA,mBACA,UACA,cACA,gBAAgB,oBAChB,+BACgC;CAChC,MAAMC,gCAA0B,MAAM;CACtC,MAAMC,wBAA6B,gBAAgB;AAEnD,4BAAgB;AACd,MAAI,CAAC,iBAAiB,aACpB;EAGF,MAAMC,YAA6B,IAAI,gBAAgB,OAAO,SAAS,OAAO;EAC9E,MAAMC,OAAsB,UAAU,IAAI,OAAO;EACjD,MAAMC,QAAuB,UAAU,IAAI,QAAQ;EACnD,MAAMC,QAAuB,UAAU,IAAI,QAAQ;EACnD,MAAMC,qBAAoC,UAAU,IAAI,cAAc;EACtE,MAAMC,QAAuB,UAAU,IAAI,QAAQ;EACnD,MAAMC,mBAAkC,UAAU,IAAI,oBAAoB;AAE1E,MAAI,OAAO;AACT,yBAAsB,UAAU;AAChC,OAAI,4BACF,6BAA4B,UAAU;AAExC,aAAU,IAAI,MAAM,oBAAoB,SAAS,8BAA8B,CAAC;AAChF,qBAAkB;AAClB;;AAGF,MAAI,CAAC,QAAQ,sBAAsB,QACjC;AAGF,MAAI,6BAA6B,QAC/B;EAGF,MAAMC,oBAAmC,eAAe,QAAQ,sBAAsB;EACtF,MAAMC,mBACJ,sBAAsB,qBAAqB,sBAAsB,SAAS;AAE5E,MAAI,CAAC,kBAAkB;AACrB,yBAAsB,UAAU;AAChC,6BAAU,IAAI,MAAM,qCAAqC,CAAC;AAC1D,qBAAkB;AAClB;;AAGF,wBAAsB,UAAU;AAEhC,MAAI,4BACF,6BAA4B,UAAU;AAGxC,uBAAqB;AAErB,MAAI,CAAC,sBAAsB,mBACzB,oBAAmB,iBAAiB;AAGtC,GAAC,YAA2B;AAC1B,OAAI;IASF,MAAMC,WAAgB,MAAM,SARU;KACpC,aAAa;KACb,QAAQ;MACN;MACA,GAAI,SAAS,EAAC,OAAM;MACrB;KACF,CAE4C;AAE7C,mBAAe,SAAS;AAExB,QAAI,UAAU,eAAe,cAAc,UAAU,WAAW,WAC9D,eAAc;AAGhB,QAAI,UAAU,eAAe,WAAW,UAAU,WAAW,QAC3D,WAAU,SAAS;AAGrB,sBAAkB;YACX,KAAK;AACZ,cAAU,IAAI;AACd,sBAAkB;;MAElB;IACH;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"buildThemeConfigFromFlowMeta.cjs","names":["scheme: FlowMetaThemeColorScheme | undefined","borderRadius: number | undefined","borderRadiusStr: string | undefined","colors: RecursivePartial<ThemeConfig['colors']> | undefined","bg: RecursivePartial<ThemeConfig['colors']['background']>"],"sources":["../../../../src/utils/v2/buildThemeConfigFromFlowMeta.ts"],"sourcesContent":["/**\n * Copyright (c) 2026, 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 {FlowMetaTheme, FlowMetaThemeColorScheme, RecursivePartial, ThemeConfig} from '@thunderid/browser';\n\n/**\n * Converts a v2 `FlowMetaTheme` into a `RecursivePartial<ThemeConfig>` that\n * `createTheme` can consume.\n *\n * Only fields explicitly present in the FlowMeta response are included so that\n * `createTheme` can deep-merge them onto its base (light/dark) defaults without\n * accidentally dropping sibling keys that were not returned by the server.\n *\n * For example, when FlowMeta returns only `background.default` and\n * `background.paper`, only `body.main` and `surface` are set — the base\n * theme's `background.disabled` and `background.dark` are **not** overridden\n * and therefore keep their default CSS variable values.\n */\nconst buildThemeConfigFromFlowMeta = (\n flowMetaTheme: FlowMetaTheme,\n colorScheme: 'light' | 'dark',\n): RecursivePartial<ThemeConfig> => {\n const scheme: FlowMetaThemeColorScheme | undefined = flowMetaTheme.colorSchemes?.[colorScheme];\n const borderRadius: number | undefined = flowMetaTheme.shape?.borderRadius;\n const borderRadiusStr: string | undefined = borderRadius !== undefined ? `${borderRadius}px` : undefined;\n\n // Build only the colors that the server actually provided.\n // Each nested object is constructed incrementally so that absent fields are\n // simply omitted rather than set to `undefined`, which would shadow the\n // base-theme defaults inside `createTheme`.\n let colors: RecursivePartial<ThemeConfig['colors']> | undefined;\n\n if (scheme?.palette) {\n colors = {};\n\n if (scheme.palette.primary) {\n colors.primary = scheme.palette.primary;\n }\n if (scheme.palette.secondary) {\n colors.secondary = scheme.palette.secondary;\n }\n if (scheme.palette.text) {\n colors.text = scheme.palette.text;\n }\n\n // Build background incrementally to avoid replacing the full base object.\n if (scheme.palette.background) {\n const bg: RecursivePartial<ThemeConfig['colors']['background']> = {};\n\n if (scheme.palette.background.default) {\n bg.body = {main: scheme.palette.background.default};\n }\n if (scheme.palette.background.paper) {\n bg.surface = scheme.palette.background.paper;\n }\n\n if (Object.keys(bg).length > 0) {\n colors.background = bg;\n }\n }\n }\n\n return {\n ...(flowMetaTheme.direction ? {direction: flowMetaTheme.direction} : {}),\n ...(borderRadiusStr\n ? {\n borderRadius: {\n large: borderRadiusStr,\n medium: borderRadiusStr,\n small: borderRadiusStr,\n },\n }\n : {}),\n ...(colors && Object.keys(colors).length > 0 ? {colors} : {}),\n ...(flowMetaTheme.typography?.fontFamily ? {typography: {fontFamily: flowMetaTheme.typography.fontFamily}} : {}),\n };\n};\n\nexport default buildThemeConfigFromFlowMeta;\n"],"mappings":";;;;;;;;;;;;;;;AAiCA,MAAM,gCACJ,eACA,gBACkC;CAClC,MAAMA,SAA+C,cAAc,eAAe;CAClF,MAAMC,eAAmC,cAAc,OAAO;CAC9D,MAAMC,kBAAsC,iBAAiB,SAAY,GAAG,aAAa,MAAM;CAM/F,IAAIC;AAEJ,KAAI,QAAQ,SAAS;AACnB,WAAS,EAAE;AAEX,MAAI,OAAO,QAAQ,QACjB,QAAO,UAAU,OAAO,QAAQ;AAElC,MAAI,OAAO,QAAQ,UACjB,QAAO,YAAY,OAAO,QAAQ;AAEpC,MAAI,OAAO,QAAQ,KACjB,QAAO,OAAO,OAAO,QAAQ;AAI/B,MAAI,OAAO,QAAQ,YAAY;GAC7B,MAAMC,KAA4D,EAAE;AAEpE,OAAI,OAAO,QAAQ,WAAW,QAC5B,IAAG,OAAO,EAAC,MAAM,OAAO,QAAQ,WAAW,SAAQ;AAErD,OAAI,OAAO,QAAQ,WAAW,MAC5B,IAAG,UAAU,OAAO,QAAQ,WAAW;AAGzC,OAAI,OAAO,KAAK,GAAG,CAAC,SAAS,EAC3B,QAAO,aAAa;;;AAK1B,QAAO;EACL,GAAI,cAAc,YAAY,EAAC,WAAW,cAAc,WAAU,GAAG,EAAE;EACvE,GAAI,kBACA,EACE,cAAc;GACZ,OAAO;GACP,QAAQ;GACR,OAAO;GACR,EACF,GACD,EAAE;EACN,GAAI,UAAU,OAAO,KAAK,OAAO,CAAC,SAAS,IAAI,EAAC,QAAO,GAAG,EAAE;EAC5D,GAAI,cAAc,YAAY,aAAa,EAAC,YAAY,EAAC,YAAY,cAAc,WAAW,YAAW,EAAC,GAAG,EAAE;EAChH;;AAGH,2CAAe"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"flowTransformer.cjs","names":["mapping: Map<string, string>","transformedComponent: any","inputData: any","value: string","refMapping: Map<string, string>","actionMapping: Map<string, string>","inputsData: any[]","resolveTranslationsInArray","flowError: FlowErrorResponse['error']","translated: string","systemTranslated: string","fallback: string | undefined","additionalData: Record<string, any>","parsed: any"],"sources":["../../../../src/utils/v2/flowTransformer.ts"],"sourcesContent":["/**\n * Copyright (c) 2025-2026, 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\n/**\n * @fileoverview Shared flow response transformer utilities for v2 embedded flows.\n *\n * This module provides reusable transformation functions for normalizing embedded flow\n * responses from ThunderID APIs. It handles both successful responses with component\n * extraction and error responses with proper error message extraction.\n *\n * Key features:\n * - Component extraction from flow meta structure\n * - Translation string resolution in components\n * - Error response detection and message extraction\n * - Configurable error handling (throw vs return errors)\n *\n * Usage:\n * ```typescript\n * import { normalizeFlowResponse } from '../../../utils/v2/flowTransformer';\n *\n * const { executionId, components } = normalizeFlowResponse(apiResponse, t, {\n * defaultErrorKey: 'components.signIn.errors.generic'\n * });\n * ```\n *\n * This transformer is used by both SignIn and SignUp v2 components to ensure\n * consistent response handling across all embedded flows.\n */\n\nimport {EmbeddedFlowComponentV2 as EmbeddedFlowComponent, FlowMetadataResponse} from '@thunderid/browser';\nimport resolveTranslationsInArray from './resolveTranslationsInArray';\nimport {UseTranslation} from '../../hooks/useTranslation';\n\n/**\n * Generic flow error response interface that covers common error structure\n */\nexport interface FlowErrorResponse {\n error?: {\n code: string;\n description: {key: string; defaultValue?: string};\n message: {key: string; defaultValue?: string};\n };\n executionId: string;\n flowStatus: 'ERROR';\n}\n\n/**\n * Configuration options for flow transformation\n */\nexport interface FlowTransformOptions {\n /**\n * Default error message key for translation fallback\n * @default 'errors.flow.generic'\n */\n defaultErrorKey?: string;\n /**\n * Whether to resolve translation strings or keep them as i18n keys\n * @default true\n */\n resolveTranslations?: boolean;\n /**\n * Whether to throw errors or return them as normalized response\n * @default true\n */\n throwOnError?: boolean;\n}\n\n/**\n * Create a mapping from ref to identifier based on data.inputs array.\n * This handles cases where meta.components use 'ref' to reference inputs,\n * and data.inputs contain the actual 'identifier' field.\n *\n * @param response - The flow response object\n * @returns Map of ref to identifier\n */\nconst createInputRefMapping = (response: any): Map<string, string> => {\n const mapping: Map<string, string> = new Map<string, string>();\n\n if (response?.data?.inputs && Array.isArray(response.data.inputs)) {\n response.data.inputs.forEach((input: any) => {\n if (input.ref && input.identifier) {\n mapping.set(input.ref, input.identifier);\n }\n });\n }\n\n return mapping;\n};\n\n/**\n * Create a mapping from action ref to nextNode based on data.actions array.\n * This handles cases where meta.components reference actions by ref,\n * and data.actions contain the actual nextNode field for routing.\n *\n * @param response - The flow response object\n * @returns Map of action ref to nextNode\n */\nconst createActionRefMapping = (response: any): Map<string, string> => {\n const mapping: Map<string, string> = new Map<string, string>();\n\n if (response?.data?.actions && Array.isArray(response.data.actions)) {\n response.data.actions.forEach((action: any) => {\n if (action.ref && action.nextNode) {\n mapping.set(action.ref, action.nextNode);\n }\n });\n }\n\n return mapping;\n};\n\n/**\n * Apply input ref mapping to components recursively.\n * This ensures that component.ref values are mapped to the correct identifier\n * from data.inputs, enabling proper form submission.\n *\n * @param components - Array of components to transform\n * @param refMapping - Map of ref to identifier\n * @param actionMapping - Map of action ref to nextNode\n * @param inputsData - Array of input data for resolving SELECT options\n * @returns Transformed components with correct identifiers and action references\n */\nconst applyInputRefMapping = (\n components: EmbeddedFlowComponent[],\n refMapping: Map<string, string>,\n actionMapping: Map<string, string>,\n inputsData: any[] = [],\n): EmbeddedFlowComponent[] =>\n components.map((component: EmbeddedFlowComponent) => {\n const transformedComponent: any = {...component} as EmbeddedFlowComponent & {\n actionRef?: string;\n options?: {label: string; value: string}[];\n };\n\n // If this component has a ref that maps to an identifier, update it\n if (transformedComponent.ref && refMapping.has(transformedComponent.ref)) {\n transformedComponent.ref = refMapping.get(transformedComponent.ref);\n }\n\n // For SELECT components, copy options from data.inputs\n // The component.id matches the input.ref in the data structure\n if (transformedComponent.type === 'SELECT' && component.id) {\n const inputData: any = inputsData.find((input: any) => input.ref === component.id);\n if (inputData?.options) {\n transformedComponent.options = inputData.options.map((opt: any) => {\n if (typeof opt === 'string') {\n return {label: opt, value: opt};\n }\n // Safely handle non-string values to prevent React key crashes\n const value: string = typeof opt.value === 'object' ? JSON.stringify(opt.value) : String(opt.value || '');\n const label: string = typeof opt.label === 'object' ? JSON.stringify(opt.label) : String(opt.label || value);\n\n return {label, value};\n });\n }\n }\n\n // If this is an action component, map its id to the nextNode\n // Store the nextNode reference as actionRef property for later use\n if (\n transformedComponent.type === 'ACTION' &&\n transformedComponent.id &&\n actionMapping.has(transformedComponent.id)\n ) {\n transformedComponent.actionRef = actionMapping.get(transformedComponent.id);\n }\n\n // Recursively apply to nested components\n if (transformedComponent.components && Array.isArray(transformedComponent.components)) {\n transformedComponent.components = applyInputRefMapping(\n transformedComponent.components,\n refMapping,\n actionMapping,\n inputsData,\n );\n }\n\n return transformedComponent;\n });\n\n/**\n * Transform and resolve translations in components from flow response.\n * This function extracts components from the response meta structure and optionally resolves\n * any translation strings within them. It also handles mapping of input refs to identifiers\n * and action refs to nextNode values.\n *\n * @param response - The flow response object containing components in meta structure\n * @param t - Translation function from useTranslation hook\n * @param resolveTranslations - Whether to resolve translation strings or keep them as i18n keys (default: true)\n * @returns Array of flow components with resolved or unresolved translations\n */\nexport const transformComponents = (\n response: any,\n t: UseTranslation['t'],\n resolveTranslations = true,\n meta?: FlowMetadataResponse | null,\n): EmbeddedFlowComponent[] => {\n if (!response?.data?.meta?.components) {\n return [];\n }\n\n let {components} = response.data.meta;\n\n // Create mapping from ref to identifier based on data.inputs\n const refMapping: Map<string, string> = createInputRefMapping(response);\n\n // Create mapping from action ref to nextNode based on data.actions\n const actionMapping: Map<string, string> = createActionRefMapping(response);\n\n // Get inputs data for SELECT option resolution\n const inputsData: any[] = response?.data?.inputs || [];\n\n // Apply ref and action mapping if there are any mappings\n if (refMapping.size > 0 || actionMapping.size > 0 || inputsData.length > 0) {\n components = applyInputRefMapping(components, refMapping, actionMapping, inputsData);\n }\n\n return resolveTranslations ? resolveTranslationsInArray(components, t, undefined, meta) : components;\n};\n\n/**\n * Extract error message from flow error response.\n *\n * Resolution order:\n * 1. Structured `error` object: try i18n lookup via `t(error.message.key)`.\n * 2. Fallback to `defaultValue` from `message`, then `description`.\n * 3. Standard `Error.message`.\n * 4. Generic translated fallback via `defaultErrorKey`.\n */\nexport const extractErrorMessage = (\n error: FlowErrorResponse | any,\n t: UseTranslation['t'],\n defaultErrorKey = 'errors.flow.generic',\n): string => {\n if (error && typeof error === 'object' && error.error) {\n const flowError: FlowErrorResponse['error'] = error.error;\n\n // 1. Try i18n lookup on message.key first (preferred for user-facing errors)\n if (flowError?.message?.key) {\n const translated: string = t(flowError.message.key);\n if (translated && translated !== flowError.message.key) {\n return translated;\n }\n\n // If the key resolved to itself, retry under the 'system:' namespace\n const systemKey = `system.${flowError.message.key}`;\n const systemTranslated: string = t(systemKey);\n if (systemTranslated && systemTranslated !== systemKey) {\n return systemTranslated;\n }\n }\n\n // 2. Fall back to defaultValue from message, then description\n const fallback: string | undefined = flowError?.message?.defaultValue ?? flowError?.description?.defaultValue;\n if (fallback) {\n return fallback;\n }\n }\n\n // Legacy backward compatibility\n if (error && typeof error === 'object' && error.failureReason) {\n return error.failureReason;\n }\n\n if (error instanceof Error && error.message) {\n return error.message;\n }\n\n return t(defaultErrorKey);\n};\n\n/**\n * Check if a response is an error response and extract the error message.\n * This function identifies error responses by checking for ERROR status and failure reasons.\n *\n * @param response - The flow response to check\n * @param t - Translation function for error messages\n * @param defaultErrorKey - Default translation key for generic errors\n * @returns Error message string if response is an error, null otherwise\n */\nexport const checkForErrorResponse = (\n response: any,\n t: UseTranslation['t'],\n defaultErrorKey = 'errors.flow.generic',\n): string | null => {\n if (response?.flowStatus === 'ERROR') {\n return extractErrorMessage(response, t, defaultErrorKey);\n }\n\n return null;\n};\n\n/**\n * Generic flow response normalizer that handles both success and error responses.\n * This is the main transformer function that should be used by all flow components.\n *\n * @param response - The raw flow response from the API\n * @param t - Translation function from useTranslation hook\n * @param options - Configuration options for transformation behavior\n * @returns Normalized flow response with executionId and transformed components\n * @throws {any} The original response if it's an error and throwOnError is true\n */\nexport const normalizeFlowResponse = (\n response: any,\n t: UseTranslation['t'],\n options: FlowTransformOptions = {},\n meta?: FlowMetadataResponse | null,\n): {\n additionalData: Record<string, any>;\n components: EmbeddedFlowComponent[];\n executionId: string;\n} => {\n const {throwOnError = true, defaultErrorKey = 'errors.flow.generic', resolveTranslations = true} = options;\n\n // Check if this is an error response\n const errorMessage: string | null = checkForErrorResponse(response, t, defaultErrorKey);\n\n if (errorMessage && throwOnError) {\n // Throw the original response so it can be caught by error handling\n throw response;\n }\n\n const additionalData: Record<string, any> = (response?.data?.additionalData as Record<string, any>) ?? {};\n\n // The consent prompt is serialized as a JSON string (array) by the backend.\n // Parse it and wrap in the expected {purposes: [...]} structure.\n if (typeof additionalData['consentPrompt'] === 'string') {\n try {\n const parsed: any = JSON.parse(additionalData['consentPrompt']);\n additionalData['consentPrompt'] = {purposes: Array.isArray(parsed) ? parsed : []};\n } catch {\n // Leave unparseable value as-is\n }\n }\n\n return {\n additionalData,\n components: transformComponents(response, t, resolveTranslations, meta),\n executionId: response.executionId,\n };\n};\n"],"mappings":";;;;;;;;;;;AA0FA,MAAM,yBAAyB,aAAuC;CACpE,MAAMA,0BAA+B,IAAI,KAAqB;AAE9D,KAAI,UAAU,MAAM,UAAU,MAAM,QAAQ,SAAS,KAAK,OAAO,CAC/D,UAAS,KAAK,OAAO,SAAS,UAAe;AAC3C,MAAI,MAAM,OAAO,MAAM,WACrB,SAAQ,IAAI,MAAM,KAAK,MAAM,WAAW;GAE1C;AAGJ,QAAO;;;;;;;;;;AAWT,MAAM,0BAA0B,aAAuC;CACrE,MAAMA,0BAA+B,IAAI,KAAqB;AAE9D,KAAI,UAAU,MAAM,WAAW,MAAM,QAAQ,SAAS,KAAK,QAAQ,CACjE,UAAS,KAAK,QAAQ,SAAS,WAAgB;AAC7C,MAAI,OAAO,OAAO,OAAO,SACvB,SAAQ,IAAI,OAAO,KAAK,OAAO,SAAS;GAE1C;AAGJ,QAAO;;;;;;;;;;;;;AAcT,MAAM,wBACJ,YACA,YACA,eACA,aAAoB,EAAE,KAEtB,WAAW,KAAK,cAAqC;CACnD,MAAMC,uBAA4B,EAAC,GAAG,WAAU;AAMhD,KAAI,qBAAqB,OAAO,WAAW,IAAI,qBAAqB,IAAI,CACtE,sBAAqB,MAAM,WAAW,IAAI,qBAAqB,IAAI;AAKrE,KAAI,qBAAqB,SAAS,YAAY,UAAU,IAAI;EAC1D,MAAMC,YAAiB,WAAW,MAAM,UAAe,MAAM,QAAQ,UAAU,GAAG;AAClF,MAAI,WAAW,QACb,sBAAqB,UAAU,UAAU,QAAQ,KAAK,QAAa;AACjE,OAAI,OAAO,QAAQ,SACjB,QAAO;IAAC,OAAO;IAAK,OAAO;IAAI;GAGjC,MAAMC,QAAgB,OAAO,IAAI,UAAU,WAAW,KAAK,UAAU,IAAI,MAAM,GAAG,OAAO,IAAI,SAAS,GAAG;AAGzG,UAAO;IAAC,OAFc,OAAO,IAAI,UAAU,WAAW,KAAK,UAAU,IAAI,MAAM,GAAG,OAAO,IAAI,SAAS,MAAM;IAE7F;IAAM;IACrB;;AAMN,KACE,qBAAqB,SAAS,YAC9B,qBAAqB,MACrB,cAAc,IAAI,qBAAqB,GAAG,CAE1C,sBAAqB,YAAY,cAAc,IAAI,qBAAqB,GAAG;AAI7E,KAAI,qBAAqB,cAAc,MAAM,QAAQ,qBAAqB,WAAW,CACnF,sBAAqB,aAAa,qBAChC,qBAAqB,YACrB,YACA,eACA,WACD;AAGH,QAAO;EACP;;;;;;;;;;;;AAaJ,MAAa,uBACX,UACA,GACA,sBAAsB,MACtB,SAC4B;AAC5B,KAAI,CAAC,UAAU,MAAM,MAAM,WACzB,QAAO,EAAE;CAGX,IAAI,EAAC,eAAc,SAAS,KAAK;CAGjC,MAAMC,aAAkC,sBAAsB,SAAS;CAGvE,MAAMC,gBAAqC,uBAAuB,SAAS;CAG3E,MAAMC,aAAoB,UAAU,MAAM,UAAU,EAAE;AAGtD,KAAI,WAAW,OAAO,KAAK,cAAc,OAAO,KAAK,WAAW,SAAS,EACvE,cAAa,qBAAqB,YAAY,YAAY,eAAe,WAAW;AAGtF,QAAO,sBAAsBC,2CAA2B,YAAY,GAAG,QAAW,KAAK,GAAG;;;;;;;;;;;AAY5F,MAAa,uBACX,OACA,GACA,kBAAkB,0BACP;AACX,KAAI,SAAS,OAAO,UAAU,YAAY,MAAM,OAAO;EACrD,MAAMC,YAAwC,MAAM;AAGpD,MAAI,WAAW,SAAS,KAAK;GAC3B,MAAMC,aAAqB,EAAE,UAAU,QAAQ,IAAI;AACnD,OAAI,cAAc,eAAe,UAAU,QAAQ,IACjD,QAAO;GAIT,MAAM,YAAY,UAAU,UAAU,QAAQ;GAC9C,MAAMC,mBAA2B,EAAE,UAAU;AAC7C,OAAI,oBAAoB,qBAAqB,UAC3C,QAAO;;EAKX,MAAMC,WAA+B,WAAW,SAAS,gBAAgB,WAAW,aAAa;AACjG,MAAI,SACF,QAAO;;AAKX,KAAI,SAAS,OAAO,UAAU,YAAY,MAAM,cAC9C,QAAO,MAAM;AAGf,KAAI,iBAAiB,SAAS,MAAM,QAClC,QAAO,MAAM;AAGf,QAAO,EAAE,gBAAgB;;;;;;;;;;;AAY3B,MAAa,yBACX,UACA,GACA,kBAAkB,0BACA;AAClB,KAAI,UAAU,eAAe,QAC3B,QAAO,oBAAoB,UAAU,GAAG,gBAAgB;AAG1D,QAAO;;;;;;;;;;;;AAaT,MAAa,yBACX,UACA,GACA,UAAgC,EAAE,EAClC,SAKG;CACH,MAAM,EAAC,eAAe,MAAM,kBAAkB,uBAAuB,sBAAsB,SAAQ;AAKnG,KAFoC,sBAAsB,UAAU,GAAG,gBAAgB,IAEnE,aAElB,OAAM;CAGR,MAAMC,iBAAuC,UAAU,MAAM,kBAA0C,EAAE;AAIzG,KAAI,OAAO,eAAe,qBAAqB,SAC7C,KAAI;EACF,MAAMC,SAAc,KAAK,MAAM,eAAe,iBAAiB;AAC/D,iBAAe,mBAAmB,EAAC,UAAU,MAAM,QAAQ,OAAO,GAAG,SAAS,EAAE,EAAC;SAC3E;AAKV,QAAO;EACL;EACA,YAAY,oBAAoB,UAAU,GAAG,qBAAqB,KAAK;EACvE,aAAa,SAAS;EACvB"}
|