keycloakify 10.0.0-rc.37 → 10.0.0-rc.39
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/account/Fallback.d.ts +1 -2
- package/account/Fallback.js.map +1 -1
- package/account/KcContext/KcContext.d.ts +6 -6
- package/account/KcContext/getKcContextMock.d.ts +9 -9
- package/account/KcContext/getKcContextMock.js +3 -3
- package/account/KcContext/getKcContextMock.js.map +1 -1
- package/account/Template.d.ts +1 -2
- package/account/Template.js +7 -6
- package/account/Template.js.map +1 -1
- package/account/TemplateProps.d.ts +1 -3
- package/account/i18n/i18n.d.ts +9 -4
- package/account/i18n/i18n.js +132 -87
- package/account/i18n/i18n.js.map +1 -1
- package/account/i18n/index.d.ts +9 -2
- package/account/i18n/index.js +5 -1
- package/account/i18n/index.js.map +1 -1
- package/account/lib/kcClsx.d.ts +9 -0
- package/account/lib/{useGetClassName.js → kcClsx.js} +3 -3
- package/account/lib/kcClsx.js.map +1 -0
- package/account/pages/Account.d.ts +1 -2
- package/account/pages/Account.js +9 -7
- package/account/pages/Account.js.map +1 -1
- package/account/pages/Applications.d.ts +1 -2
- package/account/pages/Applications.js +7 -7
- package/account/pages/Applications.js.map +1 -1
- package/account/pages/FederatedIdentity.d.ts +1 -2
- package/account/pages/FederatedIdentity.js +4 -3
- package/account/pages/FederatedIdentity.js.map +1 -1
- package/account/pages/Log.d.ts +1 -2
- package/account/pages/Log.js +6 -5
- package/account/pages/Log.js.map +1 -1
- package/account/pages/PageProps.d.ts +2 -4
- package/account/pages/Password.d.ts +1 -2
- package/account/pages/Password.js +10 -9
- package/account/pages/Password.js.map +1 -1
- package/account/pages/Sessions.d.ts +1 -2
- package/account/pages/Sessions.js +6 -6
- package/account/pages/Sessions.js.map +1 -1
- package/account/pages/Totp.d.ts +1 -2
- package/account/pages/Totp.js +6 -5
- package/account/pages/Totp.js.map +1 -1
- package/bin/193.index.js +13 -13
- package/bin/{430.index.js → 214.index.js} +161 -2
- package/bin/3.index.js +165 -149
- package/bin/322.index.js +595 -0
- package/bin/453.index.js +3 -3
- package/bin/526.index.js +42 -632
- package/bin/538.index.js +563 -0
- package/bin/932.index.js +7 -7
- package/bin/{890.index.js → 941.index.js} +2 -159
- package/bin/944.index.js +621 -0
- package/bin/961.index.js +5 -5
- package/bin/97.index.js +3 -3
- package/bin/{314.index.js → 98.index.js} +217 -48
- package/bin/main.js +20 -8
- package/lib/getKcClsx.d.ts +11 -0
- package/lib/getKcClsx.js +55 -0
- package/lib/getKcClsx.js.map +1 -0
- package/login/Fallback.d.ts +2 -2
- package/login/Fallback.js.map +1 -1
- package/login/KcContext/KcContext.d.ts +6 -6
- package/login/KcContext/getKcContextMock.d.ts +9 -9
- package/login/KcContext/getKcContextMock.js +3 -3
- package/login/KcContext/getKcContextMock.js.map +1 -1
- package/login/Template.d.ts +1 -2
- package/login/Template.js +10 -9
- package/login/Template.js.map +1 -1
- package/login/TemplateProps.d.ts +1 -3
- package/login/UserProfileFormFields.d.ts +6 -5
- package/login/UserProfileFormFields.js +35 -36
- package/login/UserProfileFormFields.js.map +1 -1
- package/login/i18n/i18n.d.ts +9 -4
- package/login/i18n/i18n.js +136 -91
- package/login/i18n/i18n.js.map +1 -1
- package/login/i18n/index.d.ts +9 -2
- package/login/i18n/index.js +5 -1
- package/login/i18n/index.js.map +1 -1
- package/login/lib/kcClsx.d.ts +9 -0
- package/login/lib/{useGetClassName.js → kcClsx.js} +3 -3
- package/login/lib/kcClsx.js.map +1 -0
- package/login/lib/useUserProfileForm.d.ts +9 -6
- package/login/lib/useUserProfileForm.js +7 -5
- package/login/lib/useUserProfileForm.js.map +1 -1
- package/login/pages/Code.d.ts +1 -2
- package/login/pages/Code.js +6 -5
- package/login/pages/Code.js.map +1 -1
- package/login/pages/DeleteAccountConfirm.d.ts +1 -2
- package/login/pages/DeleteAccountConfirm.js +7 -7
- package/login/pages/DeleteAccountConfirm.js.map +1 -1
- package/login/pages/DeleteCredential.d.ts +1 -2
- package/login/pages/DeleteCredential.js +6 -6
- package/login/pages/DeleteCredential.js.map +1 -1
- package/login/pages/Error.d.ts +1 -2
- package/login/pages/Error.js +4 -3
- package/login/pages/Error.js.map +1 -1
- package/login/pages/FrontchannelLogout.d.ts +1 -2
- package/login/pages/FrontchannelLogout.js +4 -3
- package/login/pages/FrontchannelLogout.js.map +1 -1
- package/login/pages/IdpReviewUserProfile.d.ts +2 -2
- package/login/pages/IdpReviewUserProfile.js +6 -6
- package/login/pages/IdpReviewUserProfile.js.map +1 -1
- package/login/pages/Info.d.ts +1 -2
- package/login/pages/Info.js +4 -3
- package/login/pages/Info.js.map +1 -1
- package/login/pages/Login.d.ts +1 -2
- package/login/pages/Login.js +10 -8
- package/login/pages/Login.js.map +1 -1
- package/login/pages/LoginConfigTotp.d.ts +1 -2
- package/login/pages/LoginConfigTotp.js +8 -7
- package/login/pages/LoginConfigTotp.js.map +1 -1
- package/login/pages/LoginIdpLinkConfirm.d.ts +1 -2
- package/login/pages/LoginIdpLinkConfirm.js +6 -6
- package/login/pages/LoginIdpLinkConfirm.js.map +1 -1
- package/login/pages/LoginIdpLinkEmail.d.ts +1 -2
- package/login/pages/LoginIdpLinkEmail.js +4 -3
- package/login/pages/LoginIdpLinkEmail.js.map +1 -1
- package/login/pages/LoginOauth2DeviceVerifyUserCode.d.ts +1 -2
- package/login/pages/LoginOauth2DeviceVerifyUserCode.js +6 -6
- package/login/pages/LoginOauth2DeviceVerifyUserCode.js.map +1 -1
- package/login/pages/LoginOauthGrant.d.ts +1 -2
- package/login/pages/LoginOauthGrant.js +7 -7
- package/login/pages/LoginOauthGrant.js.map +1 -1
- package/login/pages/LoginOtp.d.ts +1 -2
- package/login/pages/LoginOtp.js +6 -6
- package/login/pages/LoginOtp.js.map +1 -1
- package/login/pages/LoginPageExpired.d.ts +1 -2
- package/login/pages/LoginPageExpired.js +4 -3
- package/login/pages/LoginPageExpired.js.map +1 -1
- package/login/pages/LoginPassword.d.ts +1 -2
- package/login/pages/LoginPassword.js +9 -7
- package/login/pages/LoginPassword.js.map +1 -1
- package/login/pages/LoginRecoveryAuthnCodeConfig.d.ts +1 -2
- package/login/pages/LoginRecoveryAuthnCodeConfig.js +9 -7
- package/login/pages/LoginRecoveryAuthnCodeConfig.js.map +1 -1
- package/login/pages/LoginRecoveryAuthnCodeInput.d.ts +1 -2
- package/login/pages/LoginRecoveryAuthnCodeInput.js +6 -6
- package/login/pages/LoginRecoveryAuthnCodeInput.js.map +1 -1
- package/login/pages/LoginResetOtp.d.ts +1 -2
- package/login/pages/LoginResetOtp.js +6 -6
- package/login/pages/LoginResetOtp.js.map +1 -1
- package/login/pages/LoginResetPassword.d.ts +1 -2
- package/login/pages/LoginResetPassword.js +7 -7
- package/login/pages/LoginResetPassword.js.map +1 -1
- package/login/pages/LoginUpdatePassword.d.ts +1 -2
- package/login/pages/LoginUpdatePassword.js +10 -9
- package/login/pages/LoginUpdatePassword.js.map +1 -1
- package/login/pages/LoginUpdateProfile.d.ts +2 -2
- package/login/pages/LoginUpdateProfile.js +7 -12
- package/login/pages/LoginUpdateProfile.js.map +1 -1
- package/login/pages/LoginUsername.d.ts +1 -2
- package/login/pages/LoginUsername.js +8 -7
- package/login/pages/LoginUsername.js.map +1 -1
- package/login/pages/LoginVerifyEmail.d.ts +1 -2
- package/login/pages/LoginVerifyEmail.js +4 -3
- package/login/pages/LoginVerifyEmail.js.map +1 -1
- package/login/pages/LoginX509Info.d.ts +1 -2
- package/login/pages/LoginX509Info.js +6 -6
- package/login/pages/LoginX509Info.js.map +1 -1
- package/login/pages/LogoutConfirm.d.ts +1 -2
- package/login/pages/LogoutConfirm.js +6 -6
- package/login/pages/LogoutConfirm.js.map +1 -1
- package/login/pages/PageProps.d.ts +2 -4
- package/login/pages/Register.d.ts +2 -2
- package/login/pages/Register.js +8 -16
- package/login/pages/Register.js.map +1 -1
- package/login/pages/SamlPostForm.d.ts +1 -2
- package/login/pages/SamlPostForm.js +4 -3
- package/login/pages/SamlPostForm.js.map +1 -1
- package/login/pages/SelectAuthenticator.d.ts +1 -2
- package/login/pages/SelectAuthenticator.js +6 -9
- package/login/pages/SelectAuthenticator.js.map +1 -1
- package/login/pages/Terms.d.ts +1 -2
- package/login/pages/Terms.js +6 -6
- package/login/pages/Terms.js.map +1 -1
- package/login/pages/UpdateEmail.d.ts +2 -2
- package/login/pages/UpdateEmail.js +8 -12
- package/login/pages/UpdateEmail.js.map +1 -1
- package/login/pages/WebauthnAuthenticate.d.ts +1 -2
- package/login/pages/WebauthnAuthenticate.js +13 -12
- package/login/pages/WebauthnAuthenticate.js.map +1 -1
- package/login/pages/WebauthnError.d.ts +1 -2
- package/login/pages/WebauthnError.js +7 -7
- package/login/pages/WebauthnError.js.map +1 -1
- package/login/pages/WebauthnRegister.d.ts +1 -2
- package/login/pages/WebauthnRegister.js +9 -8
- package/login/pages/WebauthnRegister.js.map +1 -1
- package/package.json +27 -22
- package/src/account/Fallback.tsx +1 -2
- package/src/account/KcContext/KcContext.ts +7 -7
- package/src/account/KcContext/getKcContextMock.ts +13 -24
- package/src/account/Template.tsx +8 -8
- package/src/account/TemplateProps.ts +1 -6
- package/src/account/i18n/i18n.tsx +204 -125
- package/src/account/i18n/index.ts +10 -2
- package/src/account/lib/{useGetClassName.ts → kcClsx.ts} +6 -2
- package/src/account/pages/Account.tsx +15 -21
- package/src/account/pages/Applications.tsx +8 -9
- package/src/account/pages/FederatedIdentity.tsx +5 -5
- package/src/account/pages/Log.tsx +8 -8
- package/src/account/pages/PageProps.ts +2 -4
- package/src/account/pages/Password.tsx +13 -16
- package/src/account/pages/Sessions.tsx +9 -10
- package/src/account/pages/Totp.tsx +19 -28
- package/src/bin/add-story.ts +3 -3
- package/src/bin/copy-keycloak-resources-to-public.ts +3 -3
- package/src/bin/download-keycloak-default-theme.ts +5 -5
- package/src/bin/eject-page.ts +3 -3
- package/src/bin/initialize-email-theme.ts +5 -5
- package/src/bin/keycloakify/buildJars/buildJar.ts +14 -14
- package/src/bin/keycloakify/buildJars/buildJars.ts +8 -8
- package/src/bin/keycloakify/buildJars/generatePom.ts +9 -9
- package/src/bin/keycloakify/generateFtl/generateFtl.ts +12 -12
- package/src/bin/keycloakify/generateSrcMainResources/bringInAccountV1.ts +7 -7
- package/src/bin/keycloakify/generateSrcMainResources/generateMessageProperties.ts +2 -66
- package/src/bin/keycloakify/generateSrcMainResources/generateSrcMainResources.ts +9 -9
- package/src/bin/keycloakify/generateSrcMainResources/generateSrcMainResourcesForMainTheme.ts +30 -24
- package/src/bin/keycloakify/generateSrcMainResources/generateSrcMainResourcesForThemeVariant.ts +8 -8
- package/src/bin/keycloakify/generateStartKeycloakTestingContainer.ts +9 -9
- package/src/bin/keycloakify/keycloakify.ts +11 -11
- package/src/bin/keycloakify/replacers/replaceImportsInCssCode.ts +6 -6
- package/src/bin/keycloakify/replacers/replaceImportsInInlineCssCode.ts +7 -7
- package/src/bin/keycloakify/replacers/replaceImportsInJsCode/replaceImportsInJsCode.ts +10 -10
- package/src/bin/keycloakify/replacers/replaceImportsInJsCode/vite.ts +13 -13
- package/src/bin/keycloakify/replacers/replaceImportsInJsCode/webpack.ts +11 -11
- package/src/bin/main.ts +17 -2
- package/src/bin/shared/{buildOptions.ts → buildContext.ts} +65 -51
- package/src/bin/shared/copyKeycloakResourcesToPublic.ts +12 -12
- package/src/bin/shared/downloadKeycloakDefaultTheme.ts +7 -7
- package/src/bin/shared/downloadKeycloakStaticResources.ts +7 -7
- package/src/bin/shared/generateKcGenTs.ts +61 -0
- package/src/bin/shared/getThemeSrcDirPath.ts +3 -3
- package/src/bin/start-keycloak/appBuild.ts +11 -11
- package/src/bin/start-keycloak/keycloakifyBuild.ts +7 -7
- package/src/bin/start-keycloak/start-keycloak.ts +34 -22
- package/src/bin/tools/escapeStringForPropertiesFile.ts +64 -0
- package/src/bin/tools/getNpmWorkspaceRootDirPath.ts +3 -3
- package/src/bin/update-kc-gen.ts +13 -0
- package/src/lib/getKcClsx.ts +89 -0
- package/src/login/Fallback.tsx +2 -2
- package/src/login/KcContext/KcContext.ts +7 -7
- package/src/login/KcContext/getKcContextMock.ts +13 -24
- package/src/login/Template.tsx +36 -37
- package/src/login/TemplateProps.ts +1 -6
- package/src/login/UserProfileFormFields.tsx +67 -84
- package/src/login/i18n/i18n.tsx +208 -129
- package/src/login/i18n/index.ts +10 -2
- package/src/login/lib/{useGetClassName.ts → kcClsx.ts} +6 -2
- package/src/login/lib/useUserProfileForm.tsx +29 -21
- package/src/login/pages/Code.tsx +10 -8
- package/src/login/pages/DeleteAccountConfirm.tsx +9 -10
- package/src/login/pages/DeleteCredential.tsx +11 -10
- package/src/login/pages/Error.tsx +5 -5
- package/src/login/pages/FrontchannelLogout.tsx +7 -5
- package/src/login/pages/IdpReviewUserProfile.tsx +18 -21
- package/src/login/pages/Info.tsx +7 -5
- package/src/login/pages/Login.tsx +34 -53
- package/src/login/pages/LoginConfigTotp.tsx +30 -38
- package/src/login/pages/LoginIdpLinkConfirm.tsx +10 -21
- package/src/login/pages/LoginIdpLinkEmail.tsx +5 -5
- package/src/login/pages/LoginOauth2DeviceVerifyUserCode.tsx +19 -24
- package/src/login/pages/LoginOauthGrant.tsx +14 -21
- package/src/login/pages/LoginOtp.tsx +29 -33
- package/src/login/pages/LoginPageExpired.tsx +5 -5
- package/src/login/pages/LoginPassword.tsx +23 -33
- package/src/login/pages/LoginRecoveryAuthnCodeConfig.tsx +21 -25
- package/src/login/pages/LoginRecoveryAuthnCodeInput.tsx +21 -25
- package/src/login/pages/LoginResetOtp.tsx +21 -25
- package/src/login/pages/LoginResetPassword.tsx +21 -25
- package/src/login/pages/LoginUpdatePassword.tsx +42 -52
- package/src/login/pages/LoginUpdateProfile.tsx +29 -30
- package/src/login/pages/LoginUsername.tsx +23 -35
- package/src/login/pages/LoginVerifyEmail.tsx +7 -5
- package/src/login/pages/LoginX509Info.tsx +27 -36
- package/src/login/pages/LogoutConfirm.tsx +11 -17
- package/src/login/pages/PageProps.ts +2 -4
- package/src/login/pages/Register.tsx +27 -46
- package/src/login/pages/SamlPostForm.tsx +5 -5
- package/src/login/pages/SelectAuthenticator.tsx +24 -26
- package/src/login/pages/Terms.tsx +9 -16
- package/src/login/pages/UpdateEmail.tsx +29 -33
- package/src/login/pages/WebauthnAuthenticate.tsx +26 -32
- package/src/login/pages/WebauthnError.tsx +11 -22
- package/src/login/pages/WebauthnRegister.tsx +20 -28
- package/src/tools/clsx.ts +6 -48
- package/src/tools/clsx_withTransform.ts +55 -0
- package/src/vite-plugin/vite-plugin.ts +29 -21
- package/tools/clsx.d.ts +3 -2
- package/tools/clsx.js +5 -41
- package/tools/clsx.js.map +1 -1
- package/tools/clsx_withTransform.d.ts +5 -0
- package/tools/clsx_withTransform.js +43 -0
- package/tools/clsx_withTransform.js.map +1 -0
- package/vite-plugin/index.js +243 -102
- package/vite-plugin/vite-plugin.d.ts +3 -3
- package/account/lib/useGetClassName.d.ts +0 -7
- package/account/lib/useGetClassName.js.map +0 -1
- package/bin/795.index.js +0 -1197
- package/lib/isStorybook.d.ts +0 -1
- package/lib/isStorybook.js +0 -3
- package/lib/isStorybook.js.map +0 -1
- package/lib/useGetClassName.d.ts +0 -10
- package/lib/useGetClassName.js +0 -14
- package/lib/useGetClassName.js.map +0 -1
- package/login/lib/useGetClassName.d.ts +0 -7
- package/login/lib/useGetClassName.js.map +0 -1
- package/src/lib/isStorybook.ts +0 -3
- package/src/lib/useGetClassName.ts +0 -27
@@ -1,16 +1,16 @@
|
|
1
1
|
import type { PageProps } from "keycloakify/login/pages/PageProps";
|
2
2
|
import type { KcContext } from "../KcContext";
|
3
|
-
import
|
3
|
+
import { useI18n } from "../i18n";
|
4
4
|
|
5
|
-
export default function LoginIdpLinkEmail(props: PageProps<Extract<KcContext, { pageId: "login-idp-link-email.ftl" }
|
6
|
-
const { kcContext,
|
5
|
+
export default function LoginIdpLinkEmail(props: PageProps<Extract<KcContext, { pageId: "login-idp-link-email.ftl" }>>) {
|
6
|
+
const { kcContext, doUseDefaultCss, Template, classes } = props;
|
7
7
|
|
8
8
|
const { url, realm, brokerContext, idpAlias } = kcContext;
|
9
9
|
|
10
|
-
const { msg } =
|
10
|
+
const { msg } = useI18n({ kcContext });
|
11
11
|
|
12
12
|
return (
|
13
|
-
<Template {
|
13
|
+
<Template kcContext={kcContext} doUseDefaultCss={doUseDefaultCss} classes={classes} headerNode={msg("emailLinkIdpTitle", idpAlias)}>
|
14
14
|
<p id="instruction1" className="instruction">
|
15
15
|
{msg("emailLinkIdp1", idpAlias, brokerContext.username, realm.displayName)}
|
16
16
|
</p>
|
@@ -1,62 +1,57 @@
|
|
1
|
-
import {
|
2
|
-
import { useGetClassName } from "keycloakify/login/lib/useGetClassName";
|
1
|
+
import { getKcClsx } from "keycloakify/login/lib/kcClsx";
|
3
2
|
import { PageProps } from "keycloakify/login/pages/PageProps";
|
4
|
-
import { I18n } from "../i18n";
|
5
3
|
import { KcContext } from "../KcContext";
|
4
|
+
import { useI18n } from "../i18n";
|
6
5
|
|
7
6
|
export default function LoginOauth2DeviceVerifyUserCode(
|
8
|
-
props: PageProps<Extract<KcContext, { pageId: "login-oauth2-device-verify-user-code.ftl" }
|
7
|
+
props: PageProps<Extract<KcContext, { pageId: "login-oauth2-device-verify-user-code.ftl" }>>
|
9
8
|
) {
|
10
|
-
const { kcContext,
|
9
|
+
const { kcContext, doUseDefaultCss, classes, Template } = props;
|
11
10
|
const { url } = kcContext;
|
12
11
|
|
13
|
-
const { msg, msgStr } =
|
12
|
+
const { msg, msgStr } = useI18n({ kcContext });
|
14
13
|
|
15
|
-
const {
|
14
|
+
const { kcClsx } = getKcClsx({
|
16
15
|
doUseDefaultCss,
|
17
16
|
classes
|
18
17
|
});
|
19
18
|
|
20
19
|
return (
|
21
|
-
<Template {
|
20
|
+
<Template kcContext={kcContext} doUseDefaultCss={doUseDefaultCss} classes={classes} headerNode={msg("oauth2DeviceVerificationTitle")}>
|
22
21
|
<form
|
23
22
|
id="kc-user-verify-device-user-code-form"
|
24
|
-
className={
|
23
|
+
className={kcClsx("kcFormClass")}
|
25
24
|
action={url.oauth2DeviceVerificationAction}
|
26
25
|
method="post"
|
27
26
|
>
|
28
|
-
<div className={
|
29
|
-
<div className={
|
30
|
-
<label htmlFor="device-user-code" className={
|
27
|
+
<div className={kcClsx("kcFormGroupClass")}>
|
28
|
+
<div className={kcClsx("kcLabelWrapperClass")}>
|
29
|
+
<label htmlFor="device-user-code" className={kcClsx("kcLabelClass")}>
|
31
30
|
{msg("verifyOAuth2DeviceUserCode")}
|
32
31
|
</label>
|
33
32
|
</div>
|
34
33
|
|
35
|
-
<div className={
|
34
|
+
<div className={kcClsx("kcInputWrapperClass")}>
|
36
35
|
<input
|
37
36
|
id="device-user-code"
|
38
37
|
name="device_user_code"
|
39
38
|
autoComplete="off"
|
40
39
|
type="text"
|
41
|
-
className={
|
40
|
+
className={kcClsx("kcInputClass")}
|
42
41
|
autoFocus
|
43
42
|
/>
|
44
43
|
</div>
|
45
44
|
</div>
|
46
45
|
|
47
|
-
<div className={
|
48
|
-
<div id="kc-form-options" className={
|
49
|
-
<div className={
|
46
|
+
<div className={kcClsx("kcFormGroupClass")}>
|
47
|
+
<div id="kc-form-options" className={kcClsx("kcFormOptionsClass")}>
|
48
|
+
<div className={kcClsx("kcFormOptionsWrapperClass")}></div>
|
50
49
|
</div>
|
51
50
|
|
52
|
-
<div id="kc-form-buttons" className={
|
53
|
-
<div className={
|
51
|
+
<div id="kc-form-buttons" className={kcClsx("kcFormButtonsClass")}>
|
52
|
+
<div className={kcClsx("kcFormButtonsWrapperClass")}>
|
54
53
|
<input
|
55
|
-
className={
|
56
|
-
getClassName("kcButtonClass"),
|
57
|
-
getClassName("kcButtonPrimaryClass"),
|
58
|
-
getClassName("kcButtonLargeClass")
|
59
|
-
)}
|
54
|
+
className={kcClsx("kcButtonClass", "kcButtonPrimaryClass", "kcButtonLargeClass")}
|
60
55
|
type="submit"
|
61
56
|
value={msgStr("doSubmit")}
|
62
57
|
/>
|
@@ -1,23 +1,24 @@
|
|
1
|
-
import {
|
2
|
-
import { useGetClassName } from "keycloakify/login/lib/useGetClassName";
|
1
|
+
import { getKcClsx } from "keycloakify/login/lib/kcClsx";
|
3
2
|
import { PageProps } from "keycloakify/login/pages/PageProps";
|
4
3
|
import { KcContext } from "../KcContext";
|
5
|
-
import {
|
4
|
+
import { useI18n } from "../i18n";
|
6
5
|
|
7
|
-
export default function LoginOauthGrant(props: PageProps<Extract<KcContext, { pageId: "login-oauth-grant.ftl" }
|
8
|
-
const { kcContext,
|
6
|
+
export default function LoginOauthGrant(props: PageProps<Extract<KcContext, { pageId: "login-oauth-grant.ftl" }>>) {
|
7
|
+
const { kcContext, doUseDefaultCss, classes, Template } = props;
|
9
8
|
const { url, oauth, client } = kcContext;
|
10
9
|
|
11
|
-
const { msg, msgStr, advancedMsg, advancedMsgStr } =
|
10
|
+
const { msg, msgStr, advancedMsg, advancedMsgStr } = useI18n({ kcContext });
|
12
11
|
|
13
|
-
const {
|
12
|
+
const { kcClsx } = getKcClsx({
|
14
13
|
doUseDefaultCss,
|
15
14
|
classes
|
16
15
|
});
|
17
16
|
|
18
17
|
return (
|
19
18
|
<Template
|
20
|
-
{
|
19
|
+
kcContext={kcContext}
|
20
|
+
doUseDefaultCss={doUseDefaultCss}
|
21
|
+
classes={classes}
|
21
22
|
bodyClassName="oauth"
|
22
23
|
headerNode={
|
23
24
|
<>
|
@@ -68,30 +69,22 @@ export default function LoginOauthGrant(props: PageProps<Extract<KcContext, { pa
|
|
68
69
|
|
69
70
|
<form className="form-actions" action={url.oauthAction} method="POST">
|
70
71
|
<input type="hidden" name="code" value={oauth.code} />
|
71
|
-
<div className={
|
72
|
+
<div className={kcClsx("kcFormGroupClass")}>
|
72
73
|
<div id="kc-form-options">
|
73
|
-
<div className={
|
74
|
+
<div className={kcClsx("kcFormOptionsWrapperClass")}></div>
|
74
75
|
</div>
|
75
76
|
|
76
77
|
<div id="kc-form-buttons">
|
77
|
-
<div className={
|
78
|
+
<div className={kcClsx("kcFormButtonsWrapperClass")}>
|
78
79
|
<input
|
79
|
-
className={
|
80
|
-
getClassName("kcButtonClass"),
|
81
|
-
getClassName("kcButtonPrimaryClass"),
|
82
|
-
getClassName("kcButtonLargeClass")
|
83
|
-
)}
|
80
|
+
className={kcClsx("kcButtonClass", "kcButtonPrimaryClass", "kcButtonLargeClass")}
|
84
81
|
name="accept"
|
85
82
|
id="kc-login"
|
86
83
|
type="submit"
|
87
84
|
value={msgStr("doYes")}
|
88
85
|
/>
|
89
86
|
<input
|
90
|
-
className={
|
91
|
-
getClassName("kcButtonClass"),
|
92
|
-
getClassName("kcButtonDefaultClass"),
|
93
|
-
getClassName("kcButtonLargeClass")
|
94
|
-
)}
|
87
|
+
className={kcClsx("kcButtonClass", "kcButtonDefaultClass", "kcButtonLargeClass")}
|
95
88
|
name="cancel"
|
96
89
|
id="kc-cancel"
|
97
90
|
type="submit"
|
@@ -1,48 +1,49 @@
|
|
1
1
|
import { Fragment } from "react";
|
2
|
-
import {
|
3
|
-
import { useGetClassName } from "keycloakify/login/lib/useGetClassName";
|
2
|
+
import { getKcClsx } from "keycloakify/login/lib/kcClsx";
|
4
3
|
import type { PageProps } from "keycloakify/login/pages/PageProps";
|
5
4
|
import type { KcContext } from "../KcContext";
|
6
|
-
import
|
5
|
+
import { useI18n } from "../i18n";
|
7
6
|
|
8
|
-
export default function LoginOtp(props: PageProps<Extract<KcContext, { pageId: "login-otp.ftl" }
|
9
|
-
const { kcContext,
|
7
|
+
export default function LoginOtp(props: PageProps<Extract<KcContext, { pageId: "login-otp.ftl" }>>) {
|
8
|
+
const { kcContext, doUseDefaultCss, Template, classes } = props;
|
10
9
|
|
11
|
-
const {
|
10
|
+
const { kcClsx } = getKcClsx({
|
12
11
|
doUseDefaultCss,
|
13
12
|
classes
|
14
13
|
});
|
15
14
|
|
16
15
|
const { otpLogin, url, messagesPerField } = kcContext;
|
17
16
|
|
18
|
-
const { msg, msgStr } =
|
17
|
+
const { msg, msgStr } = useI18n({ kcContext });
|
19
18
|
|
20
19
|
return (
|
21
20
|
<Template
|
22
|
-
{
|
21
|
+
kcContext={kcContext}
|
22
|
+
doUseDefaultCss={doUseDefaultCss}
|
23
|
+
classes={classes}
|
23
24
|
displayMessage={!messagesPerField.existsError("totp")}
|
24
25
|
headerNode={msg("doLogIn")}
|
25
26
|
>
|
26
|
-
<form id="kc-otp-login-form" className={
|
27
|
+
<form id="kc-otp-login-form" className={kcClsx("kcFormClass")} action={url.loginAction} method="post">
|
27
28
|
{otpLogin.userOtpCredentials.length > 1 && (
|
28
|
-
<div className={
|
29
|
-
<div className={
|
29
|
+
<div className={kcClsx("kcFormGroupClass")}>
|
30
|
+
<div className={kcClsx("kcInputWrapperClass")}>
|
30
31
|
{otpLogin.userOtpCredentials.map((otpCredential, index) => (
|
31
32
|
<Fragment key={index}>
|
32
33
|
<input
|
33
34
|
id={`kc-otp-credential-${index}`}
|
34
|
-
className={
|
35
|
+
className={kcClsx("kcLoginOTPListInputClass")}
|
35
36
|
type="radio"
|
36
37
|
name="selectedCredentialId"
|
37
38
|
value={otpCredential.id}
|
38
39
|
defaultChecked={otpCredential.id === otpLogin.selectedCredentialId}
|
39
40
|
/>
|
40
|
-
<label htmlFor={`kc-otp-credential-${index}`} className={
|
41
|
-
<span className={
|
42
|
-
<span className={
|
43
|
-
<i className={
|
41
|
+
<label htmlFor={`kc-otp-credential-${index}`} className={kcClsx("kcLoginOTPListClass")} tabIndex={index}>
|
42
|
+
<span className={kcClsx("kcLoginOTPListItemHeaderClass")}>
|
43
|
+
<span className={kcClsx("kcLoginOTPListItemIconBodyClass")}>
|
44
|
+
<i className={kcClsx("kcLoginOTPListItemIconClass")} aria-hidden="true"></i>
|
44
45
|
</span>
|
45
|
-
<span className={
|
46
|
+
<span className={kcClsx("kcLoginOTPListItemTitleClass")}>{otpCredential.userLabel}</span>
|
46
47
|
</span>
|
47
48
|
</label>
|
48
49
|
</Fragment>
|
@@ -51,42 +52,37 @@ export default function LoginOtp(props: PageProps<Extract<KcContext, { pageId: "
|
|
51
52
|
</div>
|
52
53
|
)}
|
53
54
|
|
54
|
-
<div className={
|
55
|
-
<div className={
|
56
|
-
<label htmlFor="otp" className={
|
55
|
+
<div className={kcClsx("kcFormGroupClass")}>
|
56
|
+
<div className={kcClsx("kcLabelWrapperClass")}>
|
57
|
+
<label htmlFor="otp" className={kcClsx("kcLabelClass")}>
|
57
58
|
{msg("loginOtpOneTime")}
|
58
59
|
</label>
|
59
60
|
</div>
|
60
|
-
<div className={
|
61
|
+
<div className={kcClsx("kcInputWrapperClass")}>
|
61
62
|
<input
|
62
63
|
id="otp"
|
63
64
|
name="otp"
|
64
65
|
autoComplete="off"
|
65
66
|
type="text"
|
66
|
-
className={
|
67
|
+
className={kcClsx("kcInputClass")}
|
67
68
|
autoFocus
|
68
69
|
aria-invalid={messagesPerField.existsError("totp")}
|
69
70
|
/>
|
70
71
|
{messagesPerField.existsError("totp") && (
|
71
|
-
<span id="input-error-otp-code" className={
|
72
|
+
<span id="input-error-otp-code" className={kcClsx("kcInputErrorMessageClass")} aria-live="polite">
|
72
73
|
{messagesPerField.get("totp")}
|
73
74
|
</span>
|
74
75
|
)}
|
75
76
|
</div>
|
76
77
|
</div>
|
77
78
|
|
78
|
-
<div className={
|
79
|
-
<div id="kc-form-options" className={
|
80
|
-
<div className={
|
79
|
+
<div className={kcClsx("kcFormGroupClass")}>
|
80
|
+
<div id="kc-form-options" className={kcClsx("kcFormOptionsClass")}>
|
81
|
+
<div className={kcClsx("kcFormOptionsWrapperClass")}></div>
|
81
82
|
</div>
|
82
|
-
<div id="kc-form-buttons" className={
|
83
|
+
<div id="kc-form-buttons" className={kcClsx("kcFormButtonsClass")}>
|
83
84
|
<input
|
84
|
-
className={
|
85
|
-
getClassName("kcButtonClass"),
|
86
|
-
getClassName("kcButtonPrimaryClass"),
|
87
|
-
getClassName("kcButtonBlockClass"),
|
88
|
-
getClassName("kcButtonLargeClass")
|
89
|
-
)}
|
85
|
+
className={kcClsx("kcButtonClass", "kcButtonPrimaryClass", "kcButtonBlockClass", "kcButtonLargeClass")}
|
90
86
|
name="login"
|
91
87
|
id="kc-login"
|
92
88
|
type="submit"
|
@@ -1,16 +1,16 @@
|
|
1
1
|
import type { PageProps } from "keycloakify/login/pages/PageProps";
|
2
2
|
import type { KcContext } from "../KcContext";
|
3
|
-
import
|
3
|
+
import { useI18n } from "../i18n";
|
4
4
|
|
5
|
-
export default function LoginPageExpired(props: PageProps<Extract<KcContext, { pageId: "login-page-expired.ftl" }
|
6
|
-
const { kcContext,
|
5
|
+
export default function LoginPageExpired(props: PageProps<Extract<KcContext, { pageId: "login-page-expired.ftl" }>>) {
|
6
|
+
const { kcContext, doUseDefaultCss, Template, classes } = props;
|
7
7
|
|
8
8
|
const { url } = kcContext;
|
9
9
|
|
10
|
-
const { msg } =
|
10
|
+
const { msg } = useI18n({ kcContext });
|
11
11
|
|
12
12
|
return (
|
13
|
-
<Template {
|
13
|
+
<Template kcContext={kcContext} doUseDefaultCss={doUseDefaultCss} classes={classes} headerNode={msg("pageExpiredTitle")}>
|
14
14
|
<p id="instruction1" className="instruction">
|
15
15
|
{msg("pageExpiredMsg1")}
|
16
16
|
<a id="loginRestartLink" href={url.loginRestartFlowUrl}>
|
@@ -1,28 +1,31 @@
|
|
1
1
|
import { useState, useEffect, useReducer } from "react";
|
2
2
|
import { clsx } from "keycloakify/tools/clsx";
|
3
3
|
import { assert } from "tsafe/assert";
|
4
|
-
import {
|
4
|
+
import { getKcClsx, type KcClsx } from "keycloakify/login/lib/kcClsx";
|
5
5
|
import type { PageProps } from "keycloakify/login/pages/PageProps";
|
6
6
|
import type { KcContext } from "../KcContext";
|
7
|
-
import type
|
7
|
+
import { useI18n, type I18n } from "../i18n";
|
8
8
|
|
9
|
-
export default function LoginPassword(props: PageProps<Extract<KcContext, { pageId: "login-password.ftl" }
|
10
|
-
const { kcContext,
|
9
|
+
export default function LoginPassword(props: PageProps<Extract<KcContext, { pageId: "login-password.ftl" }>>) {
|
10
|
+
const { kcContext, doUseDefaultCss, Template, classes } = props;
|
11
11
|
|
12
|
-
const {
|
12
|
+
const { kcClsx } = getKcClsx({
|
13
13
|
doUseDefaultCss,
|
14
14
|
classes
|
15
15
|
});
|
16
16
|
|
17
17
|
const { realm, url, messagesPerField } = kcContext;
|
18
18
|
|
19
|
+
const i18n = useI18n({ kcContext });
|
19
20
|
const { msg, msgStr } = i18n;
|
20
21
|
|
21
22
|
const [isLoginButtonDisabled, setIsLoginButtonDisabled] = useState(false);
|
22
23
|
|
23
24
|
return (
|
24
25
|
<Template
|
25
|
-
{
|
26
|
+
kcContext={kcContext}
|
27
|
+
doUseDefaultCss={doUseDefaultCss}
|
28
|
+
classes={classes}
|
26
29
|
headerNode={msg("doLogIn")}
|
27
30
|
displayMessage={!messagesPerField.existsError("password")}
|
28
31
|
>
|
@@ -37,17 +40,17 @@ export default function LoginPassword(props: PageProps<Extract<KcContext, { page
|
|
37
40
|
action={url.loginAction}
|
38
41
|
method="post"
|
39
42
|
>
|
40
|
-
<div className={clsx(
|
43
|
+
<div className={clsx(kcClsx("kcFormGroupClass"), "no-bottom-margin")}>
|
41
44
|
<hr />
|
42
|
-
<label htmlFor="password" className={
|
45
|
+
<label htmlFor="password" className={kcClsx("kcLabelClass")}>
|
43
46
|
{msg("password")}
|
44
47
|
</label>
|
45
48
|
|
46
|
-
<PasswordWrapper
|
49
|
+
<PasswordWrapper kcClsx={kcClsx} i18n={i18n} passwordInputId="password">
|
47
50
|
<input
|
48
51
|
tabIndex={2}
|
49
52
|
id="password"
|
50
|
-
className={
|
53
|
+
className={kcClsx("kcInputClass")}
|
51
54
|
name="password"
|
52
55
|
type="password"
|
53
56
|
autoFocus
|
@@ -57,14 +60,14 @@ export default function LoginPassword(props: PageProps<Extract<KcContext, { page
|
|
57
60
|
</PasswordWrapper>
|
58
61
|
|
59
62
|
{messagesPerField.existsError("password") && (
|
60
|
-
<span id="input-error-password" className={
|
63
|
+
<span id="input-error-password" className={kcClsx("kcInputErrorMessageClass")} aria-live="polite">
|
61
64
|
{messagesPerField.get("password")}
|
62
65
|
</span>
|
63
66
|
)}
|
64
67
|
</div>
|
65
|
-
<div className={
|
68
|
+
<div className={kcClsx("kcFormGroupClass", "kcFormSettingClass")}>
|
66
69
|
<div id="kc-form-options" />
|
67
|
-
<div className={
|
70
|
+
<div className={kcClsx("kcFormOptionsWrapperClass")}>
|
68
71
|
{realm.resetPasswordAllowed && (
|
69
72
|
<span>
|
70
73
|
<a tabIndex={5} href={url.loginResetCredentialsUrl}>
|
@@ -74,15 +77,10 @@ export default function LoginPassword(props: PageProps<Extract<KcContext, { page
|
|
74
77
|
)}
|
75
78
|
</div>
|
76
79
|
</div>
|
77
|
-
<div id="kc-form-buttons" className={
|
80
|
+
<div id="kc-form-buttons" className={kcClsx("kcFormGroupClass")}>
|
78
81
|
<input
|
79
82
|
tabIndex={4}
|
80
|
-
className={
|
81
|
-
getClassName("kcButtonClass"),
|
82
|
-
getClassName("kcButtonPrimaryClass"),
|
83
|
-
getClassName("kcButtonBlockClass"),
|
84
|
-
getClassName("kcButtonLargeClass")
|
85
|
-
)}
|
83
|
+
className={kcClsx("kcButtonClass", "kcButtonPrimaryClass", "kcButtonBlockClass", "kcButtonLargeClass")}
|
86
84
|
name="login"
|
87
85
|
id="kc-login"
|
88
86
|
type="submit"
|
@@ -97,13 +95,8 @@ export default function LoginPassword(props: PageProps<Extract<KcContext, { page
|
|
97
95
|
);
|
98
96
|
}
|
99
97
|
|
100
|
-
function PasswordWrapper(props: {
|
101
|
-
|
102
|
-
i18n: I18n;
|
103
|
-
passwordInputId: string;
|
104
|
-
children: JSX.Element;
|
105
|
-
}) {
|
106
|
-
const { getClassName, i18n, passwordInputId, children } = props;
|
98
|
+
function PasswordWrapper(props: { kcClsx: KcClsx; i18n: I18n; passwordInputId: string; children: JSX.Element }) {
|
99
|
+
const { kcClsx, i18n, passwordInputId, children } = props;
|
107
100
|
|
108
101
|
const { msgStr } = i18n;
|
109
102
|
|
@@ -118,19 +111,16 @@ function PasswordWrapper(props: {
|
|
118
111
|
}, [isPasswordRevealed]);
|
119
112
|
|
120
113
|
return (
|
121
|
-
<div className={
|
114
|
+
<div className={kcClsx("kcInputGroup")}>
|
122
115
|
{children}
|
123
116
|
<button
|
124
117
|
type="button"
|
125
|
-
className={
|
118
|
+
className={kcClsx("kcFormPasswordVisibilityButtonClass")}
|
126
119
|
aria-label={msgStr(isPasswordRevealed ? "hidePassword" : "showPassword")}
|
127
120
|
aria-controls={passwordInputId}
|
128
121
|
onClick={toggleIsPasswordRevealed}
|
129
122
|
>
|
130
|
-
<i
|
131
|
-
className={getClassName(isPasswordRevealed ? "kcFormPasswordVisibilityIconHide" : "kcFormPasswordVisibilityIconShow")}
|
132
|
-
aria-hidden
|
133
|
-
/>
|
123
|
+
<i className={kcClsx(isPasswordRevealed ? "kcFormPasswordVisibilityIconHide" : "kcFormPasswordVisibilityIconShow")} aria-hidden />
|
134
124
|
</button>
|
135
125
|
</div>
|
136
126
|
);
|
@@ -1,21 +1,22 @@
|
|
1
1
|
import { useEffect } from "react";
|
2
2
|
import { clsx } from "keycloakify/tools/clsx";
|
3
|
-
import {
|
3
|
+
import { getKcClsx, type KcClsx } from "keycloakify/login/lib/kcClsx";
|
4
4
|
import { useInsertScriptTags } from "keycloakify/tools/useInsertScriptTags";
|
5
5
|
import type { PageProps } from "keycloakify/login/pages/PageProps";
|
6
6
|
import type { KcContext } from "../KcContext";
|
7
|
-
import type
|
7
|
+
import { useI18n, type I18n } from "../i18n";
|
8
8
|
|
9
|
-
export default function LoginRecoveryAuthnCodeConfig(props: PageProps<Extract<KcContext, { pageId: "login-recovery-authn-code-config.ftl" }
|
10
|
-
const { kcContext,
|
9
|
+
export default function LoginRecoveryAuthnCodeConfig(props: PageProps<Extract<KcContext, { pageId: "login-recovery-authn-code-config.ftl" }>>) {
|
10
|
+
const { kcContext, doUseDefaultCss, Template, classes } = props;
|
11
11
|
|
12
|
-
const {
|
12
|
+
const { kcClsx } = getKcClsx({
|
13
13
|
doUseDefaultCss,
|
14
14
|
classes
|
15
15
|
});
|
16
16
|
|
17
17
|
const { recoveryAuthnCodesConfigBean, isAppInitiatedAction } = kcContext;
|
18
18
|
|
19
|
+
const i18n = useI18n({ kcContext });
|
19
20
|
const { msg, msgStr } = i18n;
|
20
21
|
|
21
22
|
const { insertScriptTags } = useInsertScriptTags({
|
@@ -144,8 +145,8 @@ export default function LoginRecoveryAuthnCodeConfig(props: PageProps<Extract<Kc
|
|
144
145
|
}, []);
|
145
146
|
|
146
147
|
return (
|
147
|
-
<Template {
|
148
|
-
<div className={clsx("pf-c-alert", "pf-m-warning", "pf-m-inline",
|
148
|
+
<Template kcContext={kcContext} doUseDefaultCss={doUseDefaultCss} classes={classes} headerNode={msg("recovery-code-config-header")}>
|
149
|
+
<div className={clsx("pf-c-alert", "pf-m-warning", "pf-m-inline", kcClsx("kcRecoveryCodesWarning"))} aria-label="Warning alert">
|
149
150
|
<div className="pf-c-alert__icon">
|
150
151
|
<i className="pficon-warning-triangle-o" aria-hidden="true" />
|
151
152
|
</div>
|
@@ -158,7 +159,7 @@ export default function LoginRecoveryAuthnCodeConfig(props: PageProps<Extract<Kc
|
|
158
159
|
</div>
|
159
160
|
</div>
|
160
161
|
|
161
|
-
<ol id="kc-recovery-codes-list" className={
|
162
|
+
<ol id="kc-recovery-codes-list" className={kcClsx("kcRecoveryCodesList")}>
|
162
163
|
{recoveryAuthnCodesConfigBean.generatedRecoveryAuthnCodesList.map((code, index) => (
|
163
164
|
<li key={index}>
|
164
165
|
<span>{index + 1}:</span> {code.slice(0, 4)}-{code.slice(4, 8)}-{code.slice(8)}
|
@@ -167,7 +168,7 @@ export default function LoginRecoveryAuthnCodeConfig(props: PageProps<Extract<Kc
|
|
167
168
|
</ol>
|
168
169
|
|
169
170
|
{/* actions */}
|
170
|
-
<div className={
|
171
|
+
<div className={kcClsx("kcRecoveryCodesActions")}>
|
171
172
|
<button id="printRecoveryCodes" className={clsx("pf-c-button", "pf-m-link")} type="button">
|
172
173
|
<i className="pficon-print" aria-hidden="true" /> {msg("recovery-codes-print")}
|
173
174
|
</button>
|
@@ -180,9 +181,9 @@ export default function LoginRecoveryAuthnCodeConfig(props: PageProps<Extract<Kc
|
|
180
181
|
</div>
|
181
182
|
|
182
183
|
{/* confirmation checkbox */}
|
183
|
-
<div className={
|
184
|
+
<div className={kcClsx("kcFormOptionsClass")}>
|
184
185
|
<input
|
185
|
-
className={
|
186
|
+
className={kcClsx("kcCheckInputClass")}
|
186
187
|
type="checkbox"
|
187
188
|
id="kcRecoveryCodesConfirmationCheck"
|
188
189
|
name="kcRecoveryCodesConfirmationCheck"
|
@@ -194,25 +195,25 @@ export default function LoginRecoveryAuthnCodeConfig(props: PageProps<Extract<Kc
|
|
194
195
|
<label htmlFor="kcRecoveryCodesConfirmationCheck">{msg("recovery-codes-confirmation-message")}</label>
|
195
196
|
</div>
|
196
197
|
|
197
|
-
<form action={kcContext.url.loginAction} className={
|
198
|
+
<form action={kcContext.url.loginAction} className={kcClsx("kcFormGroupClass")} id="kc-recovery-codes-settings-form" method="post">
|
198
199
|
<input type="hidden" name="generatedRecoveryAuthnCodes" value={recoveryAuthnCodesConfigBean.generatedRecoveryAuthnCodesAsString} />
|
199
200
|
<input type="hidden" name="generatedAt" value={recoveryAuthnCodesConfigBean.generatedAt} />
|
200
201
|
<input type="hidden" id="userLabel" name="userLabel" value={msgStr("recovery-codes-label-default")} />
|
201
202
|
|
202
|
-
<LogoutOtherSessions {
|
203
|
+
<LogoutOtherSessions kcClsx={kcClsx} i18n={i18n} />
|
203
204
|
|
204
205
|
{isAppInitiatedAction ? (
|
205
206
|
<>
|
206
207
|
<input
|
207
208
|
type="submit"
|
208
|
-
className={
|
209
|
+
className={kcClsx("kcButtonClass", "kcButtonPrimaryClass", "kcButtonLargeClass")}
|
209
210
|
id="saveRecoveryAuthnCodesBtn"
|
210
211
|
value={msgStr("recovery-codes-action-complete")}
|
211
212
|
disabled
|
212
213
|
/>
|
213
214
|
<button
|
214
215
|
type="submit"
|
215
|
-
className={
|
216
|
+
className={kcClsx("kcButtonClass", "kcButtonDefaultClass", "kcButtonLargeClass")}
|
216
217
|
id="cancelRecoveryAuthnCodesBtn"
|
217
218
|
name="cancel-aia"
|
218
219
|
value="true"
|
@@ -223,12 +224,7 @@ export default function LoginRecoveryAuthnCodeConfig(props: PageProps<Extract<Kc
|
|
223
224
|
) : (
|
224
225
|
<input
|
225
226
|
type="submit"
|
226
|
-
className={
|
227
|
-
getClassName("kcButtonClass"),
|
228
|
-
getClassName("kcButtonPrimaryClass"),
|
229
|
-
getClassName("kcButtonBlockClass"),
|
230
|
-
getClassName("kcButtonLargeClass")
|
231
|
-
)}
|
227
|
+
className={kcClsx("kcButtonClass", "kcButtonPrimaryClass", "kcButtonBlockClass", "kcButtonLargeClass")}
|
232
228
|
id="saveRecoveryAuthnCodesBtn"
|
233
229
|
value={msgStr("recovery-codes-action-complete")}
|
234
230
|
disabled
|
@@ -239,14 +235,14 @@ export default function LoginRecoveryAuthnCodeConfig(props: PageProps<Extract<Kc
|
|
239
235
|
);
|
240
236
|
}
|
241
237
|
|
242
|
-
function LogoutOtherSessions(props: {
|
243
|
-
const {
|
238
|
+
function LogoutOtherSessions(props: { kcClsx: KcClsx; i18n: I18n }) {
|
239
|
+
const { kcClsx, i18n } = props;
|
244
240
|
|
245
241
|
const { msg } = i18n;
|
246
242
|
|
247
243
|
return (
|
248
|
-
<div id="kc-form-options" className={
|
249
|
-
<div className={
|
244
|
+
<div id="kc-form-options" className={kcClsx("kcFormOptionsClass")}>
|
245
|
+
<div className={kcClsx("kcFormOptionsWrapperClass")}>
|
250
246
|
<div className="checkbox">
|
251
247
|
<label>
|
252
248
|
<input type="checkbox" id="logout-sessions" name="logout-sessions" value="on" defaultChecked={true} />
|