keycloakify 10.0.0-rc.100 → 10.0.0-rc.102
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/Template.js +3 -1
- package/account/Template.js.map +1 -1
- package/account/pages/Totp.js +5 -1
- package/account/pages/Totp.js.map +1 -1
- package/bin/440.index.js +1 -1
- package/bin/893.index.js +1 -0
- package/bin/shared/downloadKeycloakDefaultTheme.js.map +1 -1
- package/login/Template.js +9 -3
- package/login/Template.js.map +1 -1
- package/login/TemplateProps.d.ts +0 -1
- package/login/UserProfileFormFields.js +1 -1
- package/login/UserProfileFormFields.js.map +1 -1
- package/login/lib/useUserProfileForm.js +3 -1
- package/login/lib/useUserProfileForm.js.map +1 -1
- package/login/pages/Error.js +1 -1
- package/login/pages/Error.js.map +1 -1
- package/login/pages/Info.js +14 -2
- package/login/pages/Info.js.map +1 -1
- package/login/pages/Login.js +6 -2
- package/login/pages/Login.js.map +1 -1
- package/login/pages/LoginConfigTotp.js +5 -1
- package/login/pages/LoginConfigTotp.js.map +1 -1
- package/login/pages/LoginOtp.js +3 -1
- package/login/pages/LoginOtp.js.map +1 -1
- package/login/pages/LoginPassword.js +3 -1
- package/login/pages/LoginPassword.js.map +1 -1
- package/login/pages/LoginRecoveryAuthnCodeInput.js +3 -1
- package/login/pages/LoginRecoveryAuthnCodeInput.js.map +1 -1
- package/login/pages/LoginResetPassword.js +3 -1
- package/login/pages/LoginResetPassword.js.map +1 -1
- package/login/pages/LoginUpdatePassword.js +5 -1
- package/login/pages/LoginUpdatePassword.js.map +1 -1
- package/login/pages/Register.js +3 -1
- package/login/pages/Register.js.map +1 -1
- package/package.json +1 -1
- package/src/account/Template.tsx +6 -1
- package/src/account/pages/Totp.tsx +16 -6
- package/src/bin/keycloakify/generateResources/readExtraPageNames.ts +1 -4
- package/src/bin/shared/downloadKeycloakDefaultTheme.ts +1 -0
- package/src/login/Template.tsx +21 -41
- package/src/login/TemplateProps.ts +0 -1
- package/src/login/UserProfileFormFields.tsx +1 -1
- package/src/login/lib/useUserProfileForm.tsx +8 -1
- package/src/login/pages/Error.tsx +1 -1
- package/src/login/pages/Info.tsx +25 -5
- package/src/login/pages/Login.tsx +20 -9
- package/src/login/pages/LoginConfigTotp.tsx +16 -6
- package/src/login/pages/LoginOtp.tsx +8 -3
- package/src/login/pages/LoginPassword.tsx +8 -3
- package/src/login/pages/LoginRecoveryAuthnCodeInput.tsx +8 -3
- package/src/login/pages/LoginResetPassword.tsx +8 -3
- package/src/login/pages/LoginUpdatePassword.tsx +16 -6
- package/src/login/pages/Register.tsx +8 -3
- package/stories/login/pages/Login.stories.tsx +1 -1
- package/vite-plugin/index.js +1 -0
@@ -19,7 +19,7 @@ export default function Error(props: PageProps<Extract<KcContext, { pageId: "err
|
|
19
19
|
headerNode={msg("errorTitle")}
|
20
20
|
>
|
21
21
|
<div id="kc-error-message">
|
22
|
-
<p className="instruction"
|
22
|
+
<p className="instruction" dangerouslySetInnerHTML={{ __html: message.summary }} />
|
23
23
|
{!skipLink && client !== undefined && client.baseUrl !== undefined && (
|
24
24
|
<p>
|
25
25
|
<a id="backToApplication" href={client.baseUrl}>
|
package/src/login/pages/Info.tsx
CHANGED
@@ -16,13 +16,33 @@ export default function Info(props: PageProps<Extract<KcContext, { pageId: "info
|
|
16
16
|
doUseDefaultCss={doUseDefaultCss}
|
17
17
|
classes={classes}
|
18
18
|
displayMessage={false}
|
19
|
-
headerNode={
|
19
|
+
headerNode={
|
20
|
+
<span
|
21
|
+
dangerouslySetInnerHTML={{
|
22
|
+
__html: messageHeader ?? message.summary
|
23
|
+
}}
|
24
|
+
/>
|
25
|
+
}
|
20
26
|
>
|
21
27
|
<div id="kc-info-message">
|
22
|
-
<p
|
23
|
-
|
24
|
-
{
|
25
|
-
|
28
|
+
<p
|
29
|
+
className="instruction"
|
30
|
+
dangerouslySetInnerHTML={{
|
31
|
+
__html: (() => {
|
32
|
+
let html = message.summary;
|
33
|
+
|
34
|
+
if (requiredActions) {
|
35
|
+
html += "<b>";
|
36
|
+
|
37
|
+
html += requiredActions.map(requiredAction => msgStr(`requiredAction.${requiredAction}` as const)).join(",");
|
38
|
+
|
39
|
+
html += "</b>";
|
40
|
+
}
|
41
|
+
|
42
|
+
return html;
|
43
|
+
})()
|
44
|
+
}}
|
45
|
+
/>
|
26
46
|
{(() => {
|
27
47
|
if (skipLink) {
|
28
48
|
return null;
|
@@ -60,9 +60,10 @@ export default function Login(props: PageProps<Extract<KcContext, { pageId: "log
|
|
60
60
|
href={p.loginUrl}
|
61
61
|
>
|
62
62
|
{p.iconClasses && <i className={clsx(kcClsx("kcCommonLogoIdP"), p.iconClasses)} aria-hidden="true"></i>}
|
63
|
-
<span
|
64
|
-
{p.
|
65
|
-
|
63
|
+
<span
|
64
|
+
className={clsx(kcClsx("kcFormSocialAccountNameClass"), p.iconClasses && "kc-social-icon-text")}
|
65
|
+
dangerouslySetInnerHTML={{ __html: p.displayName }}
|
66
|
+
></span>
|
66
67
|
</a>
|
67
68
|
</li>
|
68
69
|
))}
|
@@ -105,9 +106,14 @@ export default function Login(props: PageProps<Extract<KcContext, { pageId: "log
|
|
105
106
|
aria-invalid={messagesPerField.existsError("username", "password")}
|
106
107
|
/>
|
107
108
|
{messagesPerField.existsError("username", "password") && (
|
108
|
-
<span
|
109
|
-
|
110
|
-
|
109
|
+
<span
|
110
|
+
id="input-error"
|
111
|
+
className={kcClsx("kcInputErrorMessageClass")}
|
112
|
+
aria-live="polite"
|
113
|
+
dangerouslySetInnerHTML={{
|
114
|
+
__html: messagesPerField.getFirstError("username", "password")
|
115
|
+
}}
|
116
|
+
/>
|
111
117
|
)}
|
112
118
|
</div>
|
113
119
|
)}
|
@@ -128,9 +134,14 @@ export default function Login(props: PageProps<Extract<KcContext, { pageId: "log
|
|
128
134
|
/>
|
129
135
|
</PasswordWrapper>
|
130
136
|
{usernameHidden && messagesPerField.existsError("username", "password") && (
|
131
|
-
<span
|
132
|
-
|
133
|
-
|
137
|
+
<span
|
138
|
+
id="input-error"
|
139
|
+
className={kcClsx("kcInputErrorMessageClass")}
|
140
|
+
aria-live="polite"
|
141
|
+
dangerouslySetInnerHTML={{
|
142
|
+
__html: messagesPerField.getFirstError("username", "password")
|
143
|
+
}}
|
144
|
+
/>
|
134
145
|
)}
|
135
146
|
</div>
|
136
147
|
|
@@ -112,9 +112,14 @@ export default function LoginConfigTotp(props: PageProps<Extract<KcContext, { pa
|
|
112
112
|
/>
|
113
113
|
|
114
114
|
{messagesPerField.existsError("totp") && (
|
115
|
-
<span
|
116
|
-
|
117
|
-
|
115
|
+
<span
|
116
|
+
id="input-error-otp-code"
|
117
|
+
className={kcClsx("kcInputErrorMessageClass")}
|
118
|
+
aria-live="polite"
|
119
|
+
dangerouslySetInnerHTML={{
|
120
|
+
__html: messagesPerField.get("totp")
|
121
|
+
}}
|
122
|
+
/>
|
118
123
|
)}
|
119
124
|
</div>
|
120
125
|
<input type="hidden" id="totpSecret" name="totpSecret" value={totp.totpSecret} />
|
@@ -138,9 +143,14 @@ export default function LoginConfigTotp(props: PageProps<Extract<KcContext, { pa
|
|
138
143
|
aria-invalid={messagesPerField.existsError("userLabel")}
|
139
144
|
/>
|
140
145
|
{messagesPerField.existsError("userLabel") && (
|
141
|
-
<span
|
142
|
-
|
143
|
-
|
146
|
+
<span
|
147
|
+
id="input-error-otp-label"
|
148
|
+
className={kcClsx("kcInputErrorMessageClass")}
|
149
|
+
aria-live="polite"
|
150
|
+
dangerouslySetInnerHTML={{
|
151
|
+
__html: messagesPerField.get("userLabel")
|
152
|
+
}}
|
153
|
+
/>
|
144
154
|
)}
|
145
155
|
</div>
|
146
156
|
</div>
|
@@ -70,9 +70,14 @@ export default function LoginOtp(props: PageProps<Extract<KcContext, { pageId: "
|
|
70
70
|
aria-invalid={messagesPerField.existsError("totp")}
|
71
71
|
/>
|
72
72
|
{messagesPerField.existsError("totp") && (
|
73
|
-
<span
|
74
|
-
|
75
|
-
|
73
|
+
<span
|
74
|
+
id="input-error-otp-code"
|
75
|
+
className={kcClsx("kcInputErrorMessageClass")}
|
76
|
+
aria-live="polite"
|
77
|
+
dangerouslySetInnerHTML={{
|
78
|
+
__html: messagesPerField.get("totp")
|
79
|
+
}}
|
80
|
+
/>
|
76
81
|
)}
|
77
82
|
</div>
|
78
83
|
</div>
|
@@ -60,9 +60,14 @@ export default function LoginPassword(props: PageProps<Extract<KcContext, { page
|
|
60
60
|
</PasswordWrapper>
|
61
61
|
|
62
62
|
{messagesPerField.existsError("password") && (
|
63
|
-
<span
|
64
|
-
|
65
|
-
|
63
|
+
<span
|
64
|
+
id="input-error-password"
|
65
|
+
className={kcClsx("kcInputErrorMessageClass")}
|
66
|
+
aria-live="polite"
|
67
|
+
dangerouslySetInnerHTML={{
|
68
|
+
__html: messagesPerField.get("password")
|
69
|
+
}}
|
70
|
+
/>
|
66
71
|
)}
|
67
72
|
</div>
|
68
73
|
<div className={kcClsx("kcFormGroupClass", "kcFormSettingClass")}>
|
@@ -43,9 +43,14 @@ export default function LoginRecoveryAuthnCodeInput(props: PageProps<Extract<KcC
|
|
43
43
|
autoFocus
|
44
44
|
/>
|
45
45
|
{messagesPerField.existsError("recoveryCodeInput") && (
|
46
|
-
<span
|
47
|
-
|
48
|
-
|
46
|
+
<span
|
47
|
+
id="input-error"
|
48
|
+
className={kcClsx("kcInputErrorMessageClass")}
|
49
|
+
aria-live="polite"
|
50
|
+
dangerouslySetInnerHTML={{
|
51
|
+
__html: messagesPerField.get("recoveryCodeInput")
|
52
|
+
}}
|
53
|
+
/>
|
49
54
|
)}
|
50
55
|
</div>
|
51
56
|
</div>
|
@@ -48,9 +48,14 @@ export default function LoginResetPassword(props: PageProps<Extract<KcContext, {
|
|
48
48
|
aria-invalid={messagesPerField.existsError("username")}
|
49
49
|
/>
|
50
50
|
{messagesPerField.existsError("username") && (
|
51
|
-
<span
|
52
|
-
|
53
|
-
|
51
|
+
<span
|
52
|
+
id="input-error-username"
|
53
|
+
className={kcClsx("kcInputErrorMessageClass")}
|
54
|
+
aria-live="polite"
|
55
|
+
dangerouslySetInnerHTML={{
|
56
|
+
__html: messagesPerField.get("username")
|
57
|
+
}}
|
58
|
+
/>
|
54
59
|
)}
|
55
60
|
</div>
|
56
61
|
</div>
|
@@ -46,9 +46,14 @@ export default function LoginUpdatePassword(props: PageProps<Extract<KcContext,
|
|
46
46
|
</PasswordWrapper>
|
47
47
|
|
48
48
|
{messagesPerField.existsError("password") && (
|
49
|
-
<span
|
50
|
-
|
51
|
-
|
49
|
+
<span
|
50
|
+
id="input-error-password"
|
51
|
+
className={kcClsx("kcInputErrorMessageClass")}
|
52
|
+
aria-live="polite"
|
53
|
+
dangerouslySetInnerHTML={{
|
54
|
+
__html: messagesPerField.get("password")
|
55
|
+
}}
|
56
|
+
/>
|
52
57
|
)}
|
53
58
|
</div>
|
54
59
|
</div>
|
@@ -74,9 +79,14 @@ export default function LoginUpdatePassword(props: PageProps<Extract<KcContext,
|
|
74
79
|
</PasswordWrapper>
|
75
80
|
|
76
81
|
{messagesPerField.existsError("password-confirm") && (
|
77
|
-
<span
|
78
|
-
|
79
|
-
|
82
|
+
<span
|
83
|
+
id="input-error-password-confirm"
|
84
|
+
className={kcClsx("kcInputErrorMessageClass")}
|
85
|
+
aria-live="polite"
|
86
|
+
dangerouslySetInnerHTML={{
|
87
|
+
__html: messagesPerField.get("password-confirm")
|
88
|
+
}}
|
89
|
+
/>
|
80
90
|
)}
|
81
91
|
</div>
|
82
92
|
|
@@ -118,9 +118,14 @@ function TermsAcceptance(props: {
|
|
118
118
|
</div>
|
119
119
|
{messagesPerField.existsError("termsAccepted") && (
|
120
120
|
<div className={kcClsx("kcLabelWrapperClass")}>
|
121
|
-
<span
|
122
|
-
|
123
|
-
|
121
|
+
<span
|
122
|
+
id="input-error-terms-accepted"
|
123
|
+
className={kcClsx("kcInputErrorMessageClass")}
|
124
|
+
aria-live="polite"
|
125
|
+
dangerouslySetInnerHTML={{
|
126
|
+
__html: messagesPerField.get("termsAccepted")
|
127
|
+
}}
|
128
|
+
/>
|
124
129
|
</div>
|
125
130
|
)}
|
126
131
|
</div>
|
@@ -212,7 +212,7 @@ export const WithErrorMessage: Story = {
|
|
212
212
|
<KcPageStory
|
213
213
|
kcContext={{
|
214
214
|
message: {
|
215
|
-
summary: "The time allotted for the connection has elapsed
|
215
|
+
summary: "The time allotted for the connection has elapsed.<br/>The login process will restart from the beginning.",
|
216
216
|
type: "error"
|
217
217
|
}
|
218
218
|
}}
|
package/vite-plugin/index.js
CHANGED
@@ -5188,6 +5188,7 @@ async function downloadKeycloakDefaultTheme(params) {
|
|
5188
5188
|
(0,external_path_.join)("patternfly", "dist", "fonts", "fontawesome-webfont.woff2"),
|
5189
5189
|
(0,external_path_.join)("patternfly", "dist", "fonts", "PatternFlyIcons-webfont.ttf"),
|
5190
5190
|
(0,external_path_.join)("patternfly", "dist", "fonts", "PatternFlyIcons-webfont.woff"),
|
5191
|
+
(0,external_path_.join)("patternfly", "dist", "img", "bg-login.jpg"),
|
5191
5192
|
(0,external_path_.join)("jquery", "dist", "jquery.min.js")
|
5192
5193
|
];
|
5193
5194
|
}
|