keycloakify 10.0.0-rc.36 → 10.0.0-rc.38

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.
Files changed (272) hide show
  1. package/account/Fallback.d.ts +1 -2
  2. package/account/Fallback.js.map +1 -1
  3. package/account/KcContext/KcContext.d.ts +6 -6
  4. package/account/KcContext/getKcContextMock.d.ts +9 -9
  5. package/account/KcContext/getKcContextMock.js +3 -3
  6. package/account/KcContext/getKcContextMock.js.map +1 -1
  7. package/account/Template.d.ts +1 -2
  8. package/account/Template.js +7 -6
  9. package/account/Template.js.map +1 -1
  10. package/account/TemplateProps.d.ts +1 -3
  11. package/account/i18n/i18n.d.ts +9 -4
  12. package/account/i18n/i18n.js +132 -87
  13. package/account/i18n/i18n.js.map +1 -1
  14. package/account/i18n/index.d.ts +9 -2
  15. package/account/i18n/index.js +5 -1
  16. package/account/i18n/index.js.map +1 -1
  17. package/account/index.d.ts +1 -1
  18. package/account/lib/kcClsx.d.ts +9 -0
  19. package/account/lib/{useGetClassName.js → kcClsx.js} +3 -3
  20. package/account/lib/kcClsx.js.map +1 -0
  21. package/account/pages/Account.d.ts +1 -2
  22. package/account/pages/Account.js +9 -7
  23. package/account/pages/Account.js.map +1 -1
  24. package/account/pages/Applications.d.ts +1 -2
  25. package/account/pages/Applications.js +7 -7
  26. package/account/pages/Applications.js.map +1 -1
  27. package/account/pages/FederatedIdentity.d.ts +1 -2
  28. package/account/pages/FederatedIdentity.js +4 -3
  29. package/account/pages/FederatedIdentity.js.map +1 -1
  30. package/account/pages/Log.d.ts +1 -2
  31. package/account/pages/Log.js +6 -5
  32. package/account/pages/Log.js.map +1 -1
  33. package/account/pages/PageProps.d.ts +2 -4
  34. package/account/pages/Password.d.ts +1 -2
  35. package/account/pages/Password.js +10 -9
  36. package/account/pages/Password.js.map +1 -1
  37. package/account/pages/Sessions.d.ts +1 -2
  38. package/account/pages/Sessions.js +6 -6
  39. package/account/pages/Sessions.js.map +1 -1
  40. package/account/pages/Totp.d.ts +1 -2
  41. package/account/pages/Totp.js +6 -5
  42. package/account/pages/Totp.js.map +1 -1
  43. package/bin/{314.index.js → 21.index.js} +162 -4
  44. package/bin/{430.index.js → 214.index.js} +161 -2
  45. package/bin/3.index.js +81 -65
  46. package/bin/526.index.js +3 -2
  47. package/bin/538.index.js +552 -0
  48. package/bin/795.index.js +3 -2
  49. package/bin/{890.index.js → 941.index.js} +2 -159
  50. package/bin/main.js +19 -7
  51. package/lib/getKcClsx.d.ts +11 -0
  52. package/lib/getKcClsx.js +44 -0
  53. package/lib/getKcClsx.js.map +1 -0
  54. package/login/Fallback.d.ts +1 -2
  55. package/login/Fallback.js.map +1 -1
  56. package/login/KcContext/KcContext.d.ts +6 -6
  57. package/login/KcContext/getKcContextMock.d.ts +9 -9
  58. package/login/KcContext/getKcContextMock.js +3 -3
  59. package/login/KcContext/getKcContextMock.js.map +1 -1
  60. package/login/Template.d.ts +1 -2
  61. package/login/Template.js +10 -9
  62. package/login/Template.js.map +1 -1
  63. package/login/TemplateProps.d.ts +1 -3
  64. package/login/UserProfileFormFields.d.ts +5 -5
  65. package/login/UserProfileFormFields.js +35 -34
  66. package/login/UserProfileFormFields.js.map +1 -1
  67. package/login/i18n/i18n.d.ts +9 -4
  68. package/login/i18n/i18n.js +136 -91
  69. package/login/i18n/i18n.js.map +1 -1
  70. package/login/i18n/index.d.ts +9 -2
  71. package/login/i18n/index.js +5 -1
  72. package/login/i18n/index.js.map +1 -1
  73. package/login/index.d.ts +1 -1
  74. package/login/lib/kcClsx.d.ts +9 -0
  75. package/login/lib/{useGetClassName.js → kcClsx.js} +3 -3
  76. package/login/lib/kcClsx.js.map +1 -0
  77. package/login/lib/useUserProfileForm.d.ts +9 -6
  78. package/login/lib/useUserProfileForm.js +7 -5
  79. package/login/lib/useUserProfileForm.js.map +1 -1
  80. package/login/pages/Code.d.ts +1 -2
  81. package/login/pages/Code.js +6 -5
  82. package/login/pages/Code.js.map +1 -1
  83. package/login/pages/DeleteAccountConfirm.d.ts +1 -2
  84. package/login/pages/DeleteAccountConfirm.js +7 -7
  85. package/login/pages/DeleteAccountConfirm.js.map +1 -1
  86. package/login/pages/DeleteCredential.d.ts +1 -2
  87. package/login/pages/DeleteCredential.js +6 -6
  88. package/login/pages/DeleteCredential.js.map +1 -1
  89. package/login/pages/Error.d.ts +1 -2
  90. package/login/pages/Error.js +4 -3
  91. package/login/pages/Error.js.map +1 -1
  92. package/login/pages/FrontchannelLogout.d.ts +1 -2
  93. package/login/pages/FrontchannelLogout.js +4 -3
  94. package/login/pages/FrontchannelLogout.js.map +1 -1
  95. package/login/pages/IdpReviewUserProfile.d.ts +1 -2
  96. package/login/pages/IdpReviewUserProfile.js +6 -6
  97. package/login/pages/IdpReviewUserProfile.js.map +1 -1
  98. package/login/pages/Info.d.ts +1 -2
  99. package/login/pages/Info.js +4 -3
  100. package/login/pages/Info.js.map +1 -1
  101. package/login/pages/Login.d.ts +1 -2
  102. package/login/pages/Login.js +10 -8
  103. package/login/pages/Login.js.map +1 -1
  104. package/login/pages/LoginConfigTotp.d.ts +1 -2
  105. package/login/pages/LoginConfigTotp.js +8 -7
  106. package/login/pages/LoginConfigTotp.js.map +1 -1
  107. package/login/pages/LoginIdpLinkConfirm.d.ts +1 -2
  108. package/login/pages/LoginIdpLinkConfirm.js +6 -6
  109. package/login/pages/LoginIdpLinkConfirm.js.map +1 -1
  110. package/login/pages/LoginIdpLinkEmail.d.ts +1 -2
  111. package/login/pages/LoginIdpLinkEmail.js +4 -3
  112. package/login/pages/LoginIdpLinkEmail.js.map +1 -1
  113. package/login/pages/LoginOauth2DeviceVerifyUserCode.d.ts +1 -2
  114. package/login/pages/LoginOauth2DeviceVerifyUserCode.js +6 -6
  115. package/login/pages/LoginOauth2DeviceVerifyUserCode.js.map +1 -1
  116. package/login/pages/LoginOauthGrant.d.ts +1 -2
  117. package/login/pages/LoginOauthGrant.js +7 -7
  118. package/login/pages/LoginOauthGrant.js.map +1 -1
  119. package/login/pages/LoginOtp.d.ts +1 -2
  120. package/login/pages/LoginOtp.js +6 -6
  121. package/login/pages/LoginOtp.js.map +1 -1
  122. package/login/pages/LoginPageExpired.d.ts +1 -2
  123. package/login/pages/LoginPageExpired.js +4 -3
  124. package/login/pages/LoginPageExpired.js.map +1 -1
  125. package/login/pages/LoginPassword.d.ts +1 -2
  126. package/login/pages/LoginPassword.js +9 -7
  127. package/login/pages/LoginPassword.js.map +1 -1
  128. package/login/pages/LoginRecoveryAuthnCodeConfig.d.ts +1 -2
  129. package/login/pages/LoginRecoveryAuthnCodeConfig.js +9 -7
  130. package/login/pages/LoginRecoveryAuthnCodeConfig.js.map +1 -1
  131. package/login/pages/LoginRecoveryAuthnCodeInput.d.ts +1 -2
  132. package/login/pages/LoginRecoveryAuthnCodeInput.js +6 -6
  133. package/login/pages/LoginRecoveryAuthnCodeInput.js.map +1 -1
  134. package/login/pages/LoginResetOtp.d.ts +1 -2
  135. package/login/pages/LoginResetOtp.js +6 -6
  136. package/login/pages/LoginResetOtp.js.map +1 -1
  137. package/login/pages/LoginResetPassword.d.ts +1 -2
  138. package/login/pages/LoginResetPassword.js +7 -7
  139. package/login/pages/LoginResetPassword.js.map +1 -1
  140. package/login/pages/LoginUpdatePassword.d.ts +1 -2
  141. package/login/pages/LoginUpdatePassword.js +10 -9
  142. package/login/pages/LoginUpdatePassword.js.map +1 -1
  143. package/login/pages/LoginUpdateProfile.d.ts +1 -2
  144. package/login/pages/LoginUpdateProfile.js +7 -12
  145. package/login/pages/LoginUpdateProfile.js.map +1 -1
  146. package/login/pages/LoginUsername.d.ts +1 -2
  147. package/login/pages/LoginUsername.js +8 -7
  148. package/login/pages/LoginUsername.js.map +1 -1
  149. package/login/pages/LoginVerifyEmail.d.ts +1 -2
  150. package/login/pages/LoginVerifyEmail.js +4 -3
  151. package/login/pages/LoginVerifyEmail.js.map +1 -1
  152. package/login/pages/LoginX509Info.d.ts +1 -2
  153. package/login/pages/LoginX509Info.js +6 -6
  154. package/login/pages/LoginX509Info.js.map +1 -1
  155. package/login/pages/LogoutConfirm.d.ts +1 -2
  156. package/login/pages/LogoutConfirm.js +6 -6
  157. package/login/pages/LogoutConfirm.js.map +1 -1
  158. package/login/pages/PageProps.d.ts +2 -4
  159. package/login/pages/Register.d.ts +1 -2
  160. package/login/pages/Register.js +8 -16
  161. package/login/pages/Register.js.map +1 -1
  162. package/login/pages/SamlPostForm.d.ts +1 -2
  163. package/login/pages/SamlPostForm.js +4 -3
  164. package/login/pages/SamlPostForm.js.map +1 -1
  165. package/login/pages/SelectAuthenticator.d.ts +1 -2
  166. package/login/pages/SelectAuthenticator.js +6 -9
  167. package/login/pages/SelectAuthenticator.js.map +1 -1
  168. package/login/pages/Terms.d.ts +1 -2
  169. package/login/pages/Terms.js +7 -7
  170. package/login/pages/Terms.js.map +1 -1
  171. package/login/pages/UpdateEmail.d.ts +1 -2
  172. package/login/pages/UpdateEmail.js +8 -12
  173. package/login/pages/UpdateEmail.js.map +1 -1
  174. package/login/pages/WebauthnAuthenticate.d.ts +1 -2
  175. package/login/pages/WebauthnAuthenticate.js +13 -12
  176. package/login/pages/WebauthnAuthenticate.js.map +1 -1
  177. package/login/pages/WebauthnError.d.ts +1 -2
  178. package/login/pages/WebauthnError.js +7 -7
  179. package/login/pages/WebauthnError.js.map +1 -1
  180. package/login/pages/WebauthnRegister.d.ts +1 -2
  181. package/login/pages/WebauthnRegister.js +9 -8
  182. package/login/pages/WebauthnRegister.js.map +1 -1
  183. package/package.json +24 -16
  184. package/src/account/Fallback.tsx +1 -2
  185. package/src/account/KcContext/KcContext.ts +7 -7
  186. package/src/account/KcContext/getKcContextMock.ts +13 -24
  187. package/src/account/Template.tsx +8 -8
  188. package/src/account/TemplateProps.ts +1 -6
  189. package/src/account/i18n/i18n.tsx +204 -125
  190. package/src/account/i18n/index.ts +10 -2
  191. package/src/account/index.ts +1 -1
  192. package/src/account/lib/{useGetClassName.ts → kcClsx.ts} +6 -2
  193. package/src/account/pages/Account.tsx +15 -21
  194. package/src/account/pages/Applications.tsx +8 -9
  195. package/src/account/pages/FederatedIdentity.tsx +5 -5
  196. package/src/account/pages/Log.tsx +8 -8
  197. package/src/account/pages/PageProps.ts +2 -4
  198. package/src/account/pages/Password.tsx +13 -16
  199. package/src/account/pages/Sessions.tsx +9 -10
  200. package/src/account/pages/Totp.tsx +19 -28
  201. package/src/bin/keycloakify/generateSrcMainResources/generateMessageProperties.ts +2 -66
  202. package/src/bin/keycloakify/generateSrcMainResources/generateSrcMainResourcesForMainTheme.ts +7 -1
  203. package/src/bin/main.ts +15 -0
  204. package/src/bin/shared/buildOptions.ts +5 -2
  205. package/src/bin/shared/generateKcGenTs.ts +61 -0
  206. package/src/bin/tools/escapeStringForPropertiesFile.ts +64 -0
  207. package/src/bin/update-kc-gen.ts +13 -0
  208. package/src/lib/getKcClsx.ts +75 -0
  209. package/src/login/Fallback.tsx +1 -2
  210. package/src/login/KcContext/KcContext.ts +7 -7
  211. package/src/login/KcContext/getKcContextMock.ts +13 -24
  212. package/src/login/Template.tsx +36 -37
  213. package/src/login/TemplateProps.ts +1 -6
  214. package/src/login/UserProfileFormFields.tsx +66 -81
  215. package/src/login/i18n/i18n.tsx +208 -129
  216. package/src/login/i18n/index.ts +10 -2
  217. package/src/login/index.ts +1 -1
  218. package/src/login/lib/{useGetClassName.ts → kcClsx.ts} +6 -2
  219. package/src/login/lib/useUserProfileForm.tsx +29 -21
  220. package/src/login/pages/Code.tsx +10 -8
  221. package/src/login/pages/DeleteAccountConfirm.tsx +9 -10
  222. package/src/login/pages/DeleteCredential.tsx +11 -10
  223. package/src/login/pages/Error.tsx +5 -5
  224. package/src/login/pages/FrontchannelLogout.tsx +7 -5
  225. package/src/login/pages/IdpReviewUserProfile.tsx +16 -25
  226. package/src/login/pages/Info.tsx +7 -5
  227. package/src/login/pages/Login.tsx +34 -53
  228. package/src/login/pages/LoginConfigTotp.tsx +30 -38
  229. package/src/login/pages/LoginIdpLinkConfirm.tsx +10 -21
  230. package/src/login/pages/LoginIdpLinkEmail.tsx +5 -5
  231. package/src/login/pages/LoginOauth2DeviceVerifyUserCode.tsx +19 -24
  232. package/src/login/pages/LoginOauthGrant.tsx +14 -21
  233. package/src/login/pages/LoginOtp.tsx +29 -33
  234. package/src/login/pages/LoginPageExpired.tsx +5 -5
  235. package/src/login/pages/LoginPassword.tsx +23 -33
  236. package/src/login/pages/LoginRecoveryAuthnCodeConfig.tsx +21 -25
  237. package/src/login/pages/LoginRecoveryAuthnCodeInput.tsx +21 -25
  238. package/src/login/pages/LoginResetOtp.tsx +21 -25
  239. package/src/login/pages/LoginResetPassword.tsx +21 -25
  240. package/src/login/pages/LoginUpdatePassword.tsx +42 -52
  241. package/src/login/pages/LoginUpdateProfile.tsx +26 -33
  242. package/src/login/pages/LoginUsername.tsx +23 -35
  243. package/src/login/pages/LoginVerifyEmail.tsx +7 -5
  244. package/src/login/pages/LoginX509Info.tsx +27 -36
  245. package/src/login/pages/LogoutConfirm.tsx +11 -17
  246. package/src/login/pages/PageProps.ts +2 -4
  247. package/src/login/pages/Register.tsx +24 -49
  248. package/src/login/pages/SamlPostForm.tsx +5 -5
  249. package/src/login/pages/SelectAuthenticator.tsx +24 -26
  250. package/src/login/pages/Terms.tsx +11 -18
  251. package/src/login/pages/UpdateEmail.tsx +26 -36
  252. package/src/login/pages/WebauthnAuthenticate.tsx +26 -32
  253. package/src/login/pages/WebauthnError.tsx +11 -22
  254. package/src/login/pages/WebauthnRegister.tsx +20 -28
  255. package/src/tools/clsx.ts +6 -48
  256. package/src/tools/clsx_withTransform.ts +55 -0
  257. package/src/vite-plugin/vite-plugin.ts +14 -6
  258. package/tools/clsx.d.ts +3 -2
  259. package/tools/clsx.js +5 -41
  260. package/tools/clsx.js.map +1 -1
  261. package/tools/clsx_withTransform.d.ts +5 -0
  262. package/tools/clsx_withTransform.js +43 -0
  263. package/tools/clsx_withTransform.js.map +1 -0
  264. package/vite-plugin/index.js +167 -37
  265. package/account/lib/useGetClassName.d.ts +0 -7
  266. package/account/lib/useGetClassName.js.map +0 -1
  267. package/lib/useGetClassName.d.ts +0 -10
  268. package/lib/useGetClassName.js +0 -14
  269. package/lib/useGetClassName.js.map +0 -1
  270. package/login/lib/useGetClassName.d.ts +0 -7
  271. package/login/lib/useGetClassName.js.map +0 -1
  272. package/src/lib/useGetClassName.ts +0 -27
@@ -7,43 +7,32 @@ import { kcContextMocks, kcContextCommonMock } from "./kcContextMocks";
7
7
  import { exclude } from "tsafe/exclude";
8
8
 
9
9
  export function createGetKcContextMock<
10
- KcContextExtraProperties extends { properties?: Record<string, string | undefined> },
11
- KcContextExtraPropertiesPerPage extends Record<
12
- `${string}.ftl`,
13
- Record<string, unknown>
14
- >
10
+ KcContextExtension extends { properties?: Record<string, string | undefined> },
11
+ KcContextExtensionPerPage extends Record<`${string}.ftl`, Record<string, unknown>>
15
12
  >(params: {
16
- kcContextExtraProperties: KcContextExtraProperties;
17
- kcContextExtraPropertiesPerPage: KcContextExtraPropertiesPerPage;
18
- overrides?: DeepPartial<KcContextExtraProperties & KcContextBase.Common>;
13
+ kcContextExtension: KcContextExtension;
14
+ kcContextExtensionPerPage: KcContextExtensionPerPage;
15
+ overrides?: DeepPartial<KcContextExtension & KcContextBase.Common>;
19
16
  overridesPerPage?: {
20
- [PageId in
21
- | LoginThemePageId
22
- | keyof KcContextExtraPropertiesPerPage]?: DeepPartial<
17
+ [PageId in LoginThemePageId | keyof KcContextExtensionPerPage]?: DeepPartial<
23
18
  Extract<
24
- ExtendKcContext<
25
- KcContextExtraProperties,
26
- KcContextExtraPropertiesPerPage
27
- >,
19
+ ExtendKcContext<KcContextExtension, KcContextExtensionPerPage>,
28
20
  { pageId: PageId }
29
21
  >
30
22
  >;
31
23
  };
32
24
  }) {
33
25
  const {
34
- kcContextExtraProperties,
35
- kcContextExtraPropertiesPerPage,
26
+ kcContextExtension,
27
+ kcContextExtensionPerPage,
36
28
  overrides: overrides_global,
37
29
  overridesPerPage: overridesPerPage_global
38
30
  } = params;
39
31
 
40
- type KcContext = ExtendKcContext<
41
- KcContextExtraProperties,
42
- KcContextExtraPropertiesPerPage
43
- >;
32
+ type KcContext = ExtendKcContext<KcContextExtension, KcContextExtensionPerPage>;
44
33
 
45
34
  function getKcContextMock<
46
- PageId extends LoginThemePageId | keyof KcContextExtraPropertiesPerPage
35
+ PageId extends LoginThemePageId | keyof KcContextExtensionPerPage
47
36
  >(params: {
48
37
  pageId: PageId;
49
38
  overrides?: DeepPartial<Extract<KcContext, { pageId: PageId }>>;
@@ -58,8 +47,8 @@ export function createGetKcContextMock<
58
47
  );
59
48
 
60
49
  [
61
- kcContextExtraProperties,
62
- kcContextExtraPropertiesPerPage[pageId],
50
+ kcContextExtension,
51
+ kcContextExtensionPerPage[pageId],
63
52
  overrides_global,
64
53
  overridesPerPage_global?.[pageId],
65
54
  overrides
@@ -2,14 +2,14 @@ import { useEffect } from "react";
2
2
  import { assert } from "keycloakify/tools/assert";
3
3
  import { clsx } from "keycloakify/tools/clsx";
4
4
  import type { TemplateProps } from "keycloakify/login/TemplateProps";
5
- import { useGetClassName } from "keycloakify/login/lib/useGetClassName";
5
+ import { getKcClsx } from "keycloakify/login/lib/kcClsx";
6
6
  import { useInsertScriptTags } from "keycloakify/tools/useInsertScriptTags";
7
7
  import { useInsertLinkTags } from "keycloakify/tools/useInsertLinkTags";
8
8
  import { useSetClassName } from "keycloakify/tools/useSetClassName";
9
9
  import type { KcContext } from "./KcContext";
10
- import type { I18n } from "./i18n";
10
+ import { useI18n } from "./i18n";
11
11
 
12
- export default function Template(props: TemplateProps<KcContext, I18n>) {
12
+ export default function Template(props: TemplateProps<KcContext>) {
13
13
  const {
14
14
  displayInfo = false,
15
15
  displayMessage = true,
@@ -21,15 +21,14 @@ export default function Template(props: TemplateProps<KcContext, I18n>) {
21
21
  documentTitle,
22
22
  bodyClassName,
23
23
  kcContext,
24
- i18n,
25
24
  doUseDefaultCss,
26
25
  classes,
27
26
  children
28
27
  } = props;
29
28
 
30
- const { getClassName } = useGetClassName({ doUseDefaultCss, classes });
29
+ const { kcClsx } = getKcClsx({ doUseDefaultCss, classes });
31
30
 
32
- const { msg, msgStr, getChangeLocalUrl, labelBySupportedLanguageTag, currentLanguageTag } = i18n;
31
+ const { msg, msgStr, getChangeLocalUrl, labelBySupportedLanguageTag, currentLanguageTag } = useI18n({ kcContext });
33
32
 
34
33
  const { realm, locale, auth, url, message, isAppInitiatedAction, authenticationSession, scripts } = kcContext;
35
34
 
@@ -39,12 +38,12 @@ export default function Template(props: TemplateProps<KcContext, I18n>) {
39
38
 
40
39
  useSetClassName({
41
40
  qualifiedName: "html",
42
- className: getClassName("kcHtmlClass")
41
+ className: kcClsx("kcHtmlClass")
43
42
  });
44
43
 
45
44
  useSetClassName({
46
45
  qualifiedName: "body",
47
- className: bodyClassName ?? getClassName("kcBodyClass")
46
+ className: bodyClassName ?? kcClsx("kcBodyClass")
48
47
  });
49
48
 
50
49
  useEffect(() => {
@@ -116,19 +115,19 @@ export default function Template(props: TemplateProps<KcContext, I18n>) {
116
115
  }
117
116
 
118
117
  return (
119
- <div className={getClassName("kcLoginClass")}>
120
- <div id="kc-header" className={getClassName("kcHeaderClass")}>
121
- <div id="kc-header-wrapper" className={getClassName("kcHeaderWrapperClass")}>
118
+ <div className={kcClsx("kcLoginClass")}>
119
+ <div id="kc-header" className={kcClsx("kcHeaderClass")}>
120
+ <div id="kc-header-wrapper" className={kcClsx("kcHeaderWrapperClass")}>
122
121
  {msg("loginTitleHtml", realm.displayNameHtml)}
123
122
  </div>
124
123
  </div>
125
124
 
126
- <div className={getClassName("kcFormCardClass")}>
127
- <header className={getClassName("kcFormHeaderClass")}>
125
+ <div className={kcClsx("kcFormCardClass")}>
126
+ <header className={kcClsx("kcFormHeaderClass")}>
128
127
  {realm.internationalizationEnabled && (assert(locale !== undefined), locale.supported.length > 1) && (
129
- <div className={getClassName("kcLocaleMainClass")} id="kc-locale">
130
- <div id="kc-locale-wrapper" className={getClassName("kcLocaleWrapperClass")}>
131
- <div id="kc-locale-dropdown" className={clsx("menu-button-links", getClassName("kcLocaleDropDownClass"))}>
128
+ <div className={kcClsx("kcLocaleMainClass")} id="kc-locale">
129
+ <div id="kc-locale-wrapper" className={kcClsx("kcLocaleWrapperClass")}>
130
+ <div id="kc-locale-dropdown" className={clsx("menu-button-links", kcClsx("kcLocaleDropDownClass"))}>
132
131
  <button
133
132
  tabIndex={1}
134
133
  id="kc-current-locale-link"
@@ -145,14 +144,14 @@ export default function Template(props: TemplateProps<KcContext, I18n>) {
145
144
  aria-labelledby="kc-current-locale-link"
146
145
  aria-activedescendant=""
147
146
  id="language-switch1"
148
- className={getClassName("kcLocaleListClass")}
147
+ className={kcClsx("kcLocaleListClass")}
149
148
  >
150
149
  {locale.supported.map(({ languageTag }, i) => (
151
- <li key={languageTag} className={getClassName("kcLocaleListItemClass")} role="none">
150
+ <li key={languageTag} className={kcClsx("kcLocaleListItemClass")} role="none">
152
151
  <a
153
152
  role="menuitem"
154
153
  id={`language-${i + 1}`}
155
- className={getClassName("kcLocaleItemClass")}
154
+ className={kcClsx("kcLocaleItemClass")}
156
155
  href={getChangeLocalUrl(languageTag)}
157
156
  >
158
157
  {labelBySupportedLanguageTag[languageTag]}
@@ -166,8 +165,8 @@ export default function Template(props: TemplateProps<KcContext, I18n>) {
166
165
  )}
167
166
  {!(auth !== undefined && auth.showUsername && !auth.showResetCredentials) ? (
168
167
  displayRequiredFields ? (
169
- <div className={getClassName("kcContentWrapperClass")}>
170
- <div className={clsx(getClassName("kcLabelWrapperClass"), "subtitle")}>
168
+ <div className={kcClsx("kcContentWrapperClass")}>
169
+ <div className={clsx(kcClsx("kcLabelWrapperClass"), "subtitle")}>
171
170
  <span className="subtitle">
172
171
  <span className="required">*</span>
173
172
  {msg("requiredFields")}
@@ -181,19 +180,19 @@ export default function Template(props: TemplateProps<KcContext, I18n>) {
181
180
  <h1 id="kc-page-title">{headerNode}</h1>
182
181
  )
183
182
  ) : displayRequiredFields ? (
184
- <div className={getClassName("kcContentWrapperClass")}>
185
- <div className={clsx(getClassName("kcLabelWrapperClass"), "subtitle")}>
183
+ <div className={kcClsx("kcContentWrapperClass")}>
184
+ <div className={clsx(kcClsx("kcLabelWrapperClass"), "subtitle")}>
186
185
  <span className="subtitle">
187
186
  <span className="required">*</span> {msg("requiredFields")}
188
187
  </span>
189
188
  </div>
190
189
  <div className="col-md-10">
191
190
  {showUsernameNode}
192
- <div id="kc-username" className={getClassName("kcFormGroupClass")}>
191
+ <div id="kc-username" className={kcClsx("kcFormGroupClass")}>
193
192
  <label id="kc-attempted-username">{auth.attemptedUsername}</label>
194
193
  <a id="reset-login" href={url.loginRestartFlowUrl} aria-label={msgStr("restartLoginTooltip")}>
195
194
  <div className="kc-login-tooltip">
196
- <i className={getClassName("kcResetFlowIcon")}></i>
195
+ <i className={kcClsx("kcResetFlowIcon")}></i>
197
196
  <span className="kc-tooltip-text">{msg("restartLoginTooltip")}</span>
198
197
  </div>
199
198
  </a>
@@ -203,11 +202,11 @@ export default function Template(props: TemplateProps<KcContext, I18n>) {
203
202
  ) : (
204
203
  <>
205
204
  {showUsernameNode}
206
- <div id="kc-username" className={getClassName("kcFormGroupClass")}>
205
+ <div id="kc-username" className={kcClsx("kcFormGroupClass")}>
207
206
  <label id="kc-attempted-username">{auth.attemptedUsername}</label>
208
207
  <a id="reset-login" href={url.loginRestartFlowUrl} aria-label={msgStr("restartLoginTooltip")}>
209
208
  <div className="kc-login-tooltip">
210
- <i className={getClassName("kcResetFlowIcon")}></i>
209
+ <i className={kcClsx("kcResetFlowIcon")}></i>
211
210
  <span className="kc-tooltip-text">{msg("restartLoginTooltip")}</span>
212
211
  </div>
213
212
  </a>
@@ -222,18 +221,18 @@ export default function Template(props: TemplateProps<KcContext, I18n>) {
222
221
  <div
223
222
  className={clsx(
224
223
  `alert-${message.type}`,
225
- getClassName("kcAlertClass"),
224
+ kcClsx("kcAlertClass"),
226
225
  `pf-m-${message?.type === "error" ? "danger" : message.type}`
227
226
  )}
228
227
  >
229
228
  <div className="pf-c-alert__icon">
230
- {message.type === "success" && <span className={getClassName("kcFeedbackSuccessIcon")}></span>}
231
- {message.type === "warning" && <span className={getClassName("kcFeedbackWarningIcon")}></span>}
232
- {message.type === "error" && <span className={getClassName("kcFeedbackErrorIcon")}></span>}
233
- {message.type === "info" && <span className={getClassName("kcFeedbackInfoIcon")}></span>}
229
+ {message.type === "success" && <span className={kcClsx("kcFeedbackSuccessIcon")}></span>}
230
+ {message.type === "warning" && <span className={kcClsx("kcFeedbackWarningIcon")}></span>}
231
+ {message.type === "error" && <span className={kcClsx("kcFeedbackErrorIcon")}></span>}
232
+ {message.type === "info" && <span className={kcClsx("kcFeedbackInfoIcon")}></span>}
234
233
  </div>
235
234
  <span
236
- className={getClassName("kcAlertTitleClass")}
235
+ className={kcClsx("kcAlertTitleClass")}
237
236
  dangerouslySetInnerHTML={{
238
237
  __html: message.summary
239
238
  }}
@@ -243,8 +242,8 @@ export default function Template(props: TemplateProps<KcContext, I18n>) {
243
242
  {children}
244
243
  {auth !== undefined && auth.showTryAnotherWayLink && (
245
244
  <form id="kc-select-try-another-way-form" action={url.loginAction} method="post">
246
- <div className={getClassName("kcFormGroupClass")}>
247
- <div className={getClassName("kcFormGroupClass")}>
245
+ <div className={kcClsx("kcFormGroupClass")}>
246
+ <div className={kcClsx("kcFormGroupClass")}>
248
247
  <input type="hidden" name="tryAnotherWay" value="on" />
249
248
  <a
250
249
  href="#"
@@ -262,8 +261,8 @@ export default function Template(props: TemplateProps<KcContext, I18n>) {
262
261
  )}
263
262
  {socialProvidersNode}
264
263
  {displayInfo && (
265
- <div id="kc-info" className={getClassName("kcSignUpClass")}>
266
- <div id="kc-info-wrapper" className={getClassName("kcInfoAreaWrapperClass")}>
264
+ <div id="kc-info" className={kcClsx("kcSignUpClass")}>
265
+ <div id="kc-info-wrapper" className={kcClsx("kcInfoAreaWrapperClass")}>
267
266
  {infoNode}
268
267
  </div>
269
268
  </div>
@@ -1,13 +1,8 @@
1
1
  import type { ReactNode } from "react";
2
2
  import type { KcContext } from "./KcContext";
3
- import type { I18n } from "./i18n";
4
3
 
5
- export type TemplateProps<
6
- KcContext extends KcContext.Common,
7
- I18nExtended extends I18n
8
- > = {
4
+ export type TemplateProps<KcContext extends KcContext.Common> = {
9
5
  kcContext: KcContext;
10
- i18n: I18nExtended;
11
6
  doUseDefaultCss: boolean;
12
7
  classes?: Partial<Record<ClassKey, string>>;
13
8