@oussemasahbeni/keycloakify-login-shadcn 250004.0.2 → 250004.0.7

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 (174) hide show
  1. package/keycloak-theme/components/ui/alert.tsx +4 -4
  2. package/keycloak-theme/components/ui/dropdown-menu.tsx +5 -5
  3. package/keycloak-theme/components/ui/input.tsx +1 -1
  4. package/keycloak-theme/components/ui/select.tsx +4 -4
  5. package/keycloak-theme/components/ui/separator.tsx +1 -1
  6. package/keycloak-theme/login/KcContext.ts +23 -19
  7. package/keycloak-theme/login/KcPage.tsx +47 -60
  8. package/keycloak-theme/login/assets/img/auth-logo.svg +100 -100
  9. package/keycloak-theme/login/assets/img/shape.svg +71 -71
  10. package/keycloak-theme/login/components/LogoutOtherSessions.tsx +26 -26
  11. package/keycloak-theme/login/components/PasswordWrapper.tsx +35 -35
  12. package/keycloak-theme/login/components/Template/Template.tsx +227 -226
  13. package/keycloak-theme/login/components/Template/index.ts +1 -1
  14. package/keycloak-theme/login/components/Template/useInitializeTemplate.ts +61 -61
  15. package/keycloak-theme/login/components/UserProfileFormFields/AddRemoveButtonsMultiValuedAttribute.tsx +61 -61
  16. package/keycloak-theme/login/components/UserProfileFormFields/DO_MAKE_USER_CONFIRM_PASSWORD.ts +2 -2
  17. package/keycloak-theme/login/components/UserProfileFormFields/FieldErrors.tsx +28 -28
  18. package/keycloak-theme/login/components/UserProfileFormFields/GroupLabel.tsx +70 -70
  19. package/keycloak-theme/login/components/UserProfileFormFields/InputFieldByType.tsx +58 -58
  20. package/keycloak-theme/login/components/UserProfileFormFields/InputTag.tsx +116 -116
  21. package/keycloak-theme/login/components/UserProfileFormFields/InputTagSelects.tsx +135 -135
  22. package/keycloak-theme/login/components/UserProfileFormFields/SelectTag.tsx +114 -114
  23. package/keycloak-theme/login/components/UserProfileFormFields/TextareaTag.tsx +42 -42
  24. package/keycloak-theme/login/components/UserProfileFormFields/UserProfileFormFields.tsx +127 -127
  25. package/keycloak-theme/login/components/UserProfileFormFields/index.ts +1 -1
  26. package/keycloak-theme/login/i18n.ts +47 -51
  27. package/keycloak-theme/login/mocks/getKcContextMock.ts +22 -18
  28. package/keycloak-theme/login/pages/PageIndex.tsx +134 -134
  29. package/keycloak-theme/login/pages/code/Page.stories.tsx +62 -78
  30. package/keycloak-theme/login/pages/code/Page.tsx +89 -89
  31. package/keycloak-theme/login/pages/code/index.ts +3 -3
  32. package/keycloak-theme/login/pages/delete-account-confirm/Page.stories.tsx +39 -46
  33. package/keycloak-theme/login/pages/delete-account-confirm/Page.tsx +63 -63
  34. package/keycloak-theme/login/pages/delete-account-confirm/index.ts +3 -3
  35. package/keycloak-theme/login/pages/delete-credential/Page.stories.tsx +26 -30
  36. package/keycloak-theme/login/pages/delete-credential/Page.tsx +51 -51
  37. package/keycloak-theme/login/pages/delete-credential/index.ts +3 -3
  38. package/keycloak-theme/login/pages/error/Page.stories.tsx +47 -58
  39. package/keycloak-theme/login/pages/error/Page.tsx +42 -42
  40. package/keycloak-theme/login/pages/error/index.ts +3 -3
  41. package/keycloak-theme/login/pages/frontchannel-logout/Page.stories.tsx +25 -32
  42. package/keycloak-theme/login/pages/frontchannel-logout/Page.tsx +84 -84
  43. package/keycloak-theme/login/pages/frontchannel-logout/index.ts +3 -3
  44. package/keycloak-theme/login/pages/idp-review-user-profile/Page.stories.tsx +46 -58
  45. package/keycloak-theme/login/pages/idp-review-user-profile/Page.tsx +52 -52
  46. package/keycloak-theme/login/pages/idp-review-user-profile/index.ts +3 -3
  47. package/keycloak-theme/login/pages/info/Page.stories.tsx +50 -60
  48. package/keycloak-theme/login/pages/info/Page.tsx +92 -92
  49. package/keycloak-theme/login/pages/link-idp-action/Page.stories.tsx +32 -16
  50. package/keycloak-theme/login/pages/link-idp-action/Page.tsx +43 -43
  51. package/keycloak-theme/login/pages/link-idp-action/index.ts +3 -3
  52. package/keycloak-theme/login/pages/login/Form.tsx +242 -242
  53. package/keycloak-theme/login/pages/login/Info.tsx +29 -29
  54. package/keycloak-theme/login/pages/login/Page.stories.tsx +345 -365
  55. package/keycloak-theme/login/pages/login/Page.tsx +44 -44
  56. package/keycloak-theme/login/pages/login/SocialProviders.tsx +107 -107
  57. package/keycloak-theme/login/pages/login/index.ts +3 -3
  58. package/keycloak-theme/login/pages/login/providers/apple.svg +3 -3
  59. package/keycloak-theme/login/pages/login/providers/bitbucket.svg +11 -11
  60. package/keycloak-theme/login/pages/login/providers/discord.svg +4 -4
  61. package/keycloak-theme/login/pages/login/providers/facebook.svg +5 -5
  62. package/keycloak-theme/login/pages/login/providers/github.svg +3 -3
  63. package/keycloak-theme/login/pages/login/providers/gitlab.svg +7 -7
  64. package/keycloak-theme/login/pages/login/providers/google.svg +7 -7
  65. package/keycloak-theme/login/pages/login/providers/instagram.svg +31 -31
  66. package/keycloak-theme/login/pages/login/providers/linkedin.svg +3 -3
  67. package/keycloak-theme/login/pages/login/providers/microsoft.svg +6 -6
  68. package/keycloak-theme/login/pages/login/providers/oidc.svg +5 -5
  69. package/keycloak-theme/login/pages/login/providers/openshift.svg +7 -7
  70. package/keycloak-theme/login/pages/login/providers/paypal.svg +6 -6
  71. package/keycloak-theme/login/pages/login/providers/slack.svg +11 -11
  72. package/keycloak-theme/login/pages/login/providers/stackoverflow.svg +5 -5
  73. package/keycloak-theme/login/pages/login/providers/x.svg +3 -3
  74. package/keycloak-theme/login/pages/login/useProviderLogos.tsx +39 -39
  75. package/keycloak-theme/login/pages/login/useScript.tsx +62 -62
  76. package/keycloak-theme/login/pages/login-config-totp/Page.stories.tsx +45 -59
  77. package/keycloak-theme/login/pages/login-config-totp/Page.tsx +240 -240
  78. package/keycloak-theme/login/pages/login-config-totp/index.ts +3 -3
  79. package/keycloak-theme/login/pages/login-idp-link-confirm/Page.stories.tsx +30 -34
  80. package/keycloak-theme/login/pages/login-idp-link-confirm/Page.tsx +43 -43
  81. package/keycloak-theme/login/pages/login-idp-link-confirm/index.ts +3 -3
  82. package/keycloak-theme/login/pages/login-idp-link-confirm-override/Page.stories.tsx +16 -22
  83. package/keycloak-theme/login/pages/login-idp-link-confirm-override/Page.tsx +47 -47
  84. package/keycloak-theme/login/pages/login-idp-link-confirm-override/index.ts +3 -3
  85. package/keycloak-theme/login/pages/login-idp-link-email/Page.stories.tsx +54 -62
  86. package/keycloak-theme/login/pages/login-idp-link-email/Page.tsx +54 -54
  87. package/keycloak-theme/login/pages/login-idp-link-email/index.ts +3 -3
  88. package/keycloak-theme/login/pages/login-oauth-grant/Page.stories.tsx +39 -45
  89. package/keycloak-theme/login/pages/login-oauth-grant/Page.tsx +126 -126
  90. package/keycloak-theme/login/pages/login-oauth-grant/index.ts +3 -3
  91. package/keycloak-theme/login/pages/login-oauth2-device-verify-user-code/Page.stories.tsx +38 -48
  92. package/keycloak-theme/login/pages/login-oauth2-device-verify-user-code/Page.tsx +58 -58
  93. package/keycloak-theme/login/pages/login-oauth2-device-verify-user-code/index.ts +3 -3
  94. package/keycloak-theme/login/pages/login-otp/Page.stories.tsx +82 -96
  95. package/keycloak-theme/login/pages/login-otp/Page.tsx +108 -108
  96. package/keycloak-theme/login/pages/login-otp/index.ts +3 -3
  97. package/keycloak-theme/login/pages/login-page-expired/Page.stories.tsx +28 -36
  98. package/keycloak-theme/login/pages/login-page-expired/Page.tsx +47 -47
  99. package/keycloak-theme/login/pages/login-page-expired/index.ts +3 -3
  100. package/keycloak-theme/login/pages/login-passkeys-conditional-authenticate/Page.stories.tsx +20 -0
  101. package/keycloak-theme/login/pages/login-passkeys-conditional-authenticate/Page.tsx +233 -233
  102. package/keycloak-theme/login/pages/login-passkeys-conditional-authenticate/index.ts +3 -3
  103. package/keycloak-theme/login/pages/login-passkeys-conditional-authenticate/useScript.tsx +63 -63
  104. package/keycloak-theme/login/pages/login-password/Page.stories.tsx +55 -56
  105. package/keycloak-theme/login/pages/login-password/Page.tsx +149 -149
  106. package/keycloak-theme/login/pages/login-password/index.ts +3 -3
  107. package/keycloak-theme/login/pages/login-password/useScript.tsx +63 -63
  108. package/keycloak-theme/login/pages/login-recovery-authn-code-config/Page.stories.tsx +28 -36
  109. package/keycloak-theme/login/pages/login-recovery-authn-code-config/Page.tsx +181 -181
  110. package/keycloak-theme/login/pages/login-recovery-authn-code-config/index.ts +3 -3
  111. package/keycloak-theme/login/pages/login-recovery-authn-code-config/useScript.tsx +145 -145
  112. package/keycloak-theme/login/pages/login-recovery-authn-code-input/Page.stories.tsx +16 -22
  113. package/keycloak-theme/login/pages/login-recovery-authn-code-input/Page.tsx +70 -70
  114. package/keycloak-theme/login/pages/login-recovery-authn-code-input/index.ts +3 -3
  115. package/keycloak-theme/login/pages/login-reset-otp/Page.stories.tsx +62 -74
  116. package/keycloak-theme/login/pages/login-reset-otp/Page.tsx +86 -86
  117. package/keycloak-theme/login/pages/login-reset-otp/index.ts +3 -3
  118. package/keycloak-theme/login/pages/login-reset-password/Form.tsx +68 -68
  119. package/keycloak-theme/login/pages/login-reset-password/Page.stories.tsx +44 -54
  120. package/keycloak-theme/login/pages/login-reset-password/Page.tsx +27 -27
  121. package/keycloak-theme/login/pages/login-reset-password/index.ts +3 -3
  122. package/keycloak-theme/login/pages/login-update-password/Page.stories.tsx +40 -50
  123. package/keycloak-theme/login/pages/login-update-password/Page.tsx +111 -111
  124. package/keycloak-theme/login/pages/login-update-password/index.ts +3 -3
  125. package/keycloak-theme/login/pages/login-update-profile/Page.stories.tsx +28 -36
  126. package/keycloak-theme/login/pages/login-update-profile/Page.tsx +68 -68
  127. package/keycloak-theme/login/pages/login-update-profile/index.ts +3 -3
  128. package/keycloak-theme/login/pages/login-username/Page.stories.tsx +32 -42
  129. package/keycloak-theme/login/pages/login-username/Page.tsx +246 -246
  130. package/keycloak-theme/login/pages/login-username/index.ts +3 -3
  131. package/keycloak-theme/login/pages/login-username/useScript.tsx +62 -62
  132. package/keycloak-theme/login/pages/login-verify-email/Page.stories.tsx +68 -80
  133. package/keycloak-theme/login/pages/login-verify-email/Page.tsx +38 -38
  134. package/keycloak-theme/login/pages/login-verify-email/index.ts +3 -3
  135. package/keycloak-theme/login/pages/login-x509-info/Page.stories.tsx +29 -37
  136. package/keycloak-theme/login/pages/login-x509-info/Page.tsx +75 -75
  137. package/keycloak-theme/login/pages/login-x509-info/index.ts +3 -3
  138. package/keycloak-theme/login/pages/logout-confirm/Page.stories.tsx +34 -42
  139. package/keycloak-theme/login/pages/logout-confirm/Page.tsx +53 -53
  140. package/keycloak-theme/login/pages/logout-confirm/index.ts +3 -3
  141. package/keycloak-theme/login/pages/register/Form.tsx +106 -106
  142. package/keycloak-theme/login/pages/register/Page.stories.tsx +23 -6
  143. package/keycloak-theme/login/pages/register/Page.tsx +26 -26
  144. package/keycloak-theme/login/pages/register/TermsAcceptance.tsx +56 -56
  145. package/keycloak-theme/login/pages/register/index.ts +3 -3
  146. package/keycloak-theme/login/pages/saml-post-form/Page.stories.tsx +16 -22
  147. package/keycloak-theme/login/pages/saml-post-form/Page.tsx +66 -66
  148. package/keycloak-theme/login/pages/saml-post-form/index.ts +3 -3
  149. package/keycloak-theme/login/pages/select-authenticator/Page.stories.tsx +83 -95
  150. package/keycloak-theme/login/pages/select-authenticator/Page.tsx +100 -100
  151. package/keycloak-theme/login/pages/select-authenticator/index.ts +3 -3
  152. package/keycloak-theme/login/pages/select-organization/Page.stories.tsx +62 -49
  153. package/keycloak-theme/login/pages/select-organization/Page.tsx +126 -126
  154. package/keycloak-theme/login/pages/select-organization/index.ts +3 -3
  155. package/keycloak-theme/login/pages/terms/Page.stories.tsx +15 -0
  156. package/keycloak-theme/login/pages/terms/Page.tsx +51 -51
  157. package/keycloak-theme/login/pages/terms/index.ts +3 -3
  158. package/keycloak-theme/login/pages/update-email/Page.stories.tsx +27 -35
  159. package/keycloak-theme/login/pages/update-email/Page.tsx +62 -62
  160. package/keycloak-theme/login/pages/update-email/index.ts +3 -3
  161. package/keycloak-theme/login/pages/webauthn-authenticate/Page.stories.tsx +112 -126
  162. package/keycloak-theme/login/pages/webauthn-authenticate/Page.tsx +202 -202
  163. package/keycloak-theme/login/pages/webauthn-authenticate/index.ts +3 -3
  164. package/keycloak-theme/login/pages/webauthn-authenticate/useScript.tsx +55 -55
  165. package/keycloak-theme/login/pages/webauthn-error/Page.stories.tsx +54 -66
  166. package/keycloak-theme/login/pages/webauthn-error/Page.tsx +73 -73
  167. package/keycloak-theme/login/pages/webauthn-error/index.ts +3 -3
  168. package/keycloak-theme/login/pages/webauthn-register/Page.stories.tsx +39 -49
  169. package/keycloak-theme/login/pages/webauthn-register/Page.tsx +78 -78
  170. package/keycloak-theme/login/pages/webauthn-register/index.ts +3 -3
  171. package/keycloak-theme/login/pages/webauthn-register/useScript.tsx +62 -62
  172. package/keycloak-theme/login/shared/getColorScheme.ts +45 -0
  173. package/keycloak-theme/login/styleLevelCustomization.tsx +36 -17
  174. package/package.json +6 -5
@@ -1,51 +1,47 @@
1
- import { i18nBuilder } from "@keycloakify/login-ui/i18n";
2
- import type { ThemeName } from "../kc.gen";
3
-
4
- /** @see: https://docs.keycloakify.dev/features/i18n */
5
- const { I18nProvider, useI18n } = i18nBuilder
6
- .withThemeName<ThemeName>()
7
- .withCustomTranslations({
8
- en: {
9
- welcomeMessage:
10
- "Welcome to Acme inc - Your gateway to seamless planning and organization.",
11
- loginAccountTitle: "Login to your account",
12
- registerTitle: "Register a new account",
13
- email: "Email",
14
- enterCredentials: "Enter your credentials below to login",
15
- noAccount: "Don't have an account?",
16
- doRegister: "Sign up",
17
- home: "Home",
18
- "organization.selectTitle": "Choose Your Organization",
19
- "organization.pickPlaceholder": "Pick an organization to continue"
20
- },
21
- ar: {
22
- welcomeMessage: "مرحبًا بك في Acme inc - بوابتك إلى التخطيط والتنظيم السلس.",
23
- loginAccountTitle: "تسجيل الدخول إلى حسابك",
24
- registerTitle: "تسجيل حساب جديد",
25
- email: "البريد الإلكتروني",
26
- enterCredentials: "أدخل بيانات الاعتماد الخاصة بك أدناه لتسجيل الدخول",
27
- doRegister: "إنشاء حساب",
28
- noAccount: "ليس لديك حساب؟",
29
- home: "الصفحة الرئيسية",
30
-
31
- "organization.selectTitle": "اختر مؤسستك",
32
- "organization.pickPlaceholder": "اختر مؤسسة للمتابعة"
33
- },
34
- fr: {
35
- welcomeMessage:
36
- "Bienvenue sur Acme inc Votre passerelle vers une planification et une organisation sans faille.",
37
- loginAccountTitle: "Connectez-vous à votre compte",
38
- registerTitle: "Créer un nouveau compte",
39
- email: "E-mail",
40
- enterCredentials:
41
- "Entrez vos informations d'identification ci-dessous pour vous connecter",
42
- doRegister: "S'inscrire",
43
- noAccount: "Vous n'avez pas de compte?",
44
- home: "Accueil",
45
- "organization.selectTitle": "Choisissez Votre Organisation",
46
- "organization.pickPlaceholder": "Sélectionnez une organisation pour continuer"
47
- }
48
- })
49
- .build();
50
-
51
- export { I18nProvider, useI18n };
1
+ import { i18nBuilder } from "@keycloakify/login-ui/i18n";
2
+ import type { ThemeName } from "../kc.gen";
3
+
4
+ /** @see: https://docs.keycloakify.dev/features/i18n */
5
+ const { I18nProvider, useI18n } = i18nBuilder
6
+ .withThemeName<ThemeName>()
7
+ .withCustomTranslations({
8
+ en: {
9
+ welcomeMessage:
10
+ "Welcome to Acme inc - Your gateway to seamless planning and organization.",
11
+ loginAccountTitle: "Login to your account",
12
+ registerTitle: "Register a new account",
13
+ email: "Email",
14
+ enterCredentials: "Enter your credentials below to login",
15
+ noAccount: "Don't have an account?",
16
+ doRegister: "Sign up",
17
+ "organization.selectTitle": "Choose Your Organization",
18
+ "organization.pickPlaceholder": "Pick an organization to continue"
19
+ },
20
+ ar: {
21
+ welcomeMessage: "مرحبًا بك في Acme inc - بوابتك إلى التخطيط والتنظيم السلس.",
22
+ loginAccountTitle: "تسجيل الدخول إلى حسابك",
23
+ registerTitle: "تسجيل حساب جديد",
24
+ email: "البريد الإلكتروني",
25
+ enterCredentials: "أدخل بيانات الاعتماد الخاصة بك أدناه لتسجيل الدخول",
26
+ doRegister: "إنشاء حساب",
27
+ noAccount: "ليس لديك حساب؟",
28
+ "organization.selectTitle": "اختر مؤسستك",
29
+ "organization.pickPlaceholder": "اختر مؤسسة للمتابعة"
30
+ },
31
+ fr: {
32
+ welcomeMessage:
33
+ "Bienvenue sur Acme inc Votre passerelle vers une planification et une organisation sans faille.",
34
+ loginAccountTitle: "Connectez-vous à votre compte",
35
+ registerTitle: "Créer un nouveau compte",
36
+ email: "E-mail",
37
+ enterCredentials:
38
+ "Entrez vos informations d'identification ci-dessous pour vous connecter",
39
+ doRegister: "S'inscrire",
40
+ noAccount: "Vous n'avez pas de compte?",
41
+ "organization.selectTitle": "Choisissez Votre Organisation",
42
+ "organization.pickPlaceholder": "Sélectionnez une organisation pour continuer"
43
+ }
44
+ })
45
+ .build();
46
+
47
+ export { I18nProvider, useI18n };
@@ -1,18 +1,22 @@
1
- import { createGetKcContextMock } from "@keycloakify/login-ui/KcContext/getKcContextMock";
2
- import type { KcContextExtension, KcContextExtensionPerPage } from "../KcContext";
3
- import { themeNames, kcEnvDefaults } from "../../kc.gen";
4
-
5
- const kcContextExtension: KcContextExtension = {
6
- themeName: themeNames[0],
7
- properties: {
8
- ...kcEnvDefaults
9
- }
10
- };
11
- const kcContextExtensionPerPage: KcContextExtensionPerPage = {};
12
-
13
- export const { getKcContextMock } = createGetKcContextMock({
14
- kcContextExtension,
15
- kcContextExtensionPerPage,
16
- overrides: {},
17
- overridesPerPage: {}
18
- });
1
+ import { createGetKcContextMock } from "@keycloakify/login-ui/KcContext/getKcContextMock";
2
+ import { kcEnvDefaults, themeNames } from "../../kc.gen";
3
+ import type { KcContextExtension, KcContextExtensionPerPage } from "../KcContext";
4
+
5
+ const kcContextExtension: KcContextExtension = {
6
+ themeName: themeNames[0],
7
+ client: {
8
+ baseUrl: "https://my-theme.keycloakify.dev"
9
+ },
10
+ darkMode: true,
11
+ properties: {
12
+ ...kcEnvDefaults
13
+ }
14
+ };
15
+ const kcContextExtensionPerPage: KcContextExtensionPerPage = {};
16
+
17
+ export const { getKcContextMock } = createGetKcContextMock({
18
+ kcContextExtension,
19
+ kcContextExtensionPerPage,
20
+ overrides: {},
21
+ overridesPerPage: {}
22
+ });
@@ -1,134 +1,134 @@
1
-
2
- import { Suspense, lazy } from "react";
3
- import { useKcContext } from "../KcContext";
4
-
5
-
6
- const Page_login = lazy(() => import("./login"));
7
- const Page_register = lazy(() => import("./register"));
8
- const Page_info = lazy(() => import("./info"));
9
- const Page_error = lazy(() => import("./error"));
10
- const Page_login_reset_password = lazy(() => import("./login-reset-password"));
11
- const Page_login_verify_email = lazy(() => import("./login-verify-email"));
12
- const Page_terms = lazy(() => import("./terms"));
13
- const Page_login_oauth2_device_verify_user_code = lazy(() => import("./login-oauth2-device-verify-user-code"));
14
- const Page_login_oauth_grant = lazy(() => import("./login-oauth-grant"));
15
- const Page_login_otp = lazy(() => import("./login-otp"));
16
- const Page_login_password = lazy(() => import("./login-password"));
17
- const Page_login_username = lazy(() => import("./login-username"));
18
- const Page_webauthn_authenticate = lazy(() => import("./webauthn-authenticate"));
19
- const Page_webauthn_register = lazy(() => import("./webauthn-register"));
20
- const Page_login_update_password = lazy(() => import("./login-update-password"));
21
- const Page_link_idp_action = lazy(() => import("./link-idp-action"));
22
- const Page_login_update_profile = lazy(() => import("./login-update-profile"));
23
- const Page_login_idp_link_confirm = lazy(() => import("./login-idp-link-confirm"));
24
- const Page_login_page_expired = lazy(() => import("./login-page-expired"));
25
- const Page_login_idp_link_email = lazy(() => import("./login-idp-link-email"));
26
- const Page_login_config_totp = lazy(() => import("./login-config-totp"));
27
- const Page_logout_confirm = lazy(() => import("./logout-confirm"));
28
- const Page_idp_review_user_profile = lazy(() => import("./idp-review-user-profile"));
29
- const Page_update_email = lazy(() => import("./update-email"));
30
- const Page_select_authenticator = lazy(() => import("./select-authenticator"));
31
- const Page_saml_post_form = lazy(() => import("./saml-post-form"));
32
- const Page_delete_credential = lazy(() => import("./delete-credential"));
33
- const Page_code = lazy(() => import("./code"));
34
- const Page_delete_account_confirm = lazy(() => import("./delete-account-confirm"));
35
- const Page_frontchannel_logout = lazy(() => import("./frontchannel-logout"));
36
- const Page_login_recovery_authn_code_config = lazy(() => import("./login-recovery-authn-code-config"));
37
- const Page_login_recovery_authn_code_input = lazy(() => import("./login-recovery-authn-code-input"));
38
- const Page_login_reset_otp = lazy(() => import("./login-reset-otp"));
39
- const Page_login_x509_info = lazy(() => import("./login-x509-info"));
40
- const Page_webauthn_error = lazy(() => import("./webauthn-error"));
41
- const Page_login_passkeys_conditional_authenticate = lazy(() => import("./login-passkeys-conditional-authenticate"));
42
- const Page_login_idp_link_confirm_override = lazy(() => import("./login-idp-link-confirm-override"));
43
- const Page_select_organization = lazy(() => import("./select-organization"));
44
-
45
- export function PageIndex() {
46
- const { kcContext } = useKcContext();
47
-
48
- return (
49
-
50
- <Suspense>
51
- {(() => {
52
- switch (kcContext.pageId) {
53
- case "login.ftl":
54
- return <Page_login />;
55
- case "register.ftl":
56
- return <Page_register />;
57
- case "info.ftl":
58
- return <Page_info />;
59
- case "error.ftl":
60
- return <Page_error />;
61
- case "login-reset-password.ftl":
62
- return <Page_login_reset_password />;
63
- case "login-verify-email.ftl":
64
- return <Page_login_verify_email />;
65
- case "terms.ftl":
66
- return <Page_terms />;
67
- case "login-oauth2-device-verify-user-code.ftl":
68
- return <Page_login_oauth2_device_verify_user_code />;
69
- case "login-oauth-grant.ftl":
70
- return <Page_login_oauth_grant />;
71
- case "login-otp.ftl":
72
- return <Page_login_otp />;
73
- case "login-username.ftl":
74
- return <Page_login_username />;
75
- case "login-password.ftl":
76
- return <Page_login_password />;
77
- case "webauthn-authenticate.ftl":
78
- return <Page_webauthn_authenticate />;
79
- case "webauthn-register.ftl":
80
- return <Page_webauthn_register />;
81
- case "login-update-password.ftl":
82
- return <Page_login_update_password />;
83
- case "link-idp-action.ftl":
84
- return <Page_link_idp_action />;
85
- case "login-update-profile.ftl":
86
- return <Page_login_update_profile />;
87
- case "login-idp-link-confirm.ftl":
88
- return <Page_login_idp_link_confirm />;
89
- case "login-idp-link-email.ftl":
90
- return <Page_login_idp_link_email />;
91
- case "login-page-expired.ftl":
92
- return <Page_login_page_expired />;
93
- case "login-config-totp.ftl":
94
- return <Page_login_config_totp />;
95
- case "logout-confirm.ftl":
96
- return <Page_logout_confirm />;
97
- case "idp-review-user-profile.ftl":
98
- return <Page_idp_review_user_profile />;
99
- case "update-email.ftl":
100
- return <Page_update_email />;
101
- case "select-authenticator.ftl":
102
- return <Page_select_authenticator />;
103
- case "saml-post-form.ftl":
104
- return <Page_saml_post_form />;
105
- case "delete-credential.ftl":
106
- return <Page_delete_credential />;
107
- case "code.ftl":
108
- return <Page_code />;
109
- case "delete-account-confirm.ftl":
110
- return <Page_delete_account_confirm />;
111
- case "frontchannel-logout.ftl":
112
- return <Page_frontchannel_logout />;
113
- case "login-recovery-authn-code-config.ftl":
114
- return <Page_login_recovery_authn_code_config />;
115
- case "login-recovery-authn-code-input.ftl":
116
- return <Page_login_recovery_authn_code_input />;
117
- case "login-reset-otp.ftl":
118
- return <Page_login_reset_otp />;
119
- case "login-x509-info.ftl":
120
- return <Page_login_x509_info />;
121
- case "webauthn-error.ftl":
122
- return <Page_webauthn_error />;
123
- case "login-passkeys-conditional-authenticate.ftl":
124
- return <Page_login_passkeys_conditional_authenticate />;
125
- case "login-idp-link-confirm-override.ftl":
126
- return <Page_login_idp_link_confirm_override />;
127
- case "select-organization.ftl":
128
- return <Page_select_organization />;
129
- }
130
-
131
- })()}
132
- </Suspense>
133
- );
134
- }
1
+
2
+ import { Suspense, lazy } from "react";
3
+ import { useKcContext } from "../KcContext";
4
+
5
+
6
+ const Page_login = lazy(() => import("./login"));
7
+ const Page_register = lazy(() => import("./register"));
8
+ const Page_info = lazy(() => import("./info"));
9
+ const Page_error = lazy(() => import("./error"));
10
+ const Page_login_reset_password = lazy(() => import("./login-reset-password"));
11
+ const Page_login_verify_email = lazy(() => import("./login-verify-email"));
12
+ const Page_terms = lazy(() => import("./terms"));
13
+ const Page_login_oauth2_device_verify_user_code = lazy(() => import("./login-oauth2-device-verify-user-code"));
14
+ const Page_login_oauth_grant = lazy(() => import("./login-oauth-grant"));
15
+ const Page_login_otp = lazy(() => import("./login-otp"));
16
+ const Page_login_password = lazy(() => import("./login-password"));
17
+ const Page_login_username = lazy(() => import("./login-username"));
18
+ const Page_webauthn_authenticate = lazy(() => import("./webauthn-authenticate"));
19
+ const Page_webauthn_register = lazy(() => import("./webauthn-register"));
20
+ const Page_login_update_password = lazy(() => import("./login-update-password"));
21
+ const Page_link_idp_action = lazy(() => import("./link-idp-action"));
22
+ const Page_login_update_profile = lazy(() => import("./login-update-profile"));
23
+ const Page_login_idp_link_confirm = lazy(() => import("./login-idp-link-confirm"));
24
+ const Page_login_page_expired = lazy(() => import("./login-page-expired"));
25
+ const Page_login_idp_link_email = lazy(() => import("./login-idp-link-email"));
26
+ const Page_login_config_totp = lazy(() => import("./login-config-totp"));
27
+ const Page_logout_confirm = lazy(() => import("./logout-confirm"));
28
+ const Page_idp_review_user_profile = lazy(() => import("./idp-review-user-profile"));
29
+ const Page_update_email = lazy(() => import("./update-email"));
30
+ const Page_select_authenticator = lazy(() => import("./select-authenticator"));
31
+ const Page_saml_post_form = lazy(() => import("./saml-post-form"));
32
+ const Page_delete_credential = lazy(() => import("./delete-credential"));
33
+ const Page_code = lazy(() => import("./code"));
34
+ const Page_delete_account_confirm = lazy(() => import("./delete-account-confirm"));
35
+ const Page_frontchannel_logout = lazy(() => import("./frontchannel-logout"));
36
+ const Page_login_recovery_authn_code_config = lazy(() => import("./login-recovery-authn-code-config"));
37
+ const Page_login_recovery_authn_code_input = lazy(() => import("./login-recovery-authn-code-input"));
38
+ const Page_login_reset_otp = lazy(() => import("./login-reset-otp"));
39
+ const Page_login_x509_info = lazy(() => import("./login-x509-info"));
40
+ const Page_webauthn_error = lazy(() => import("./webauthn-error"));
41
+ const Page_login_passkeys_conditional_authenticate = lazy(() => import("./login-passkeys-conditional-authenticate"));
42
+ const Page_login_idp_link_confirm_override = lazy(() => import("./login-idp-link-confirm-override"));
43
+ const Page_select_organization = lazy(() => import("./select-organization"));
44
+
45
+ export function PageIndex() {
46
+ const { kcContext } = useKcContext();
47
+
48
+ return (
49
+
50
+ <Suspense>
51
+ {(() => {
52
+ switch (kcContext.pageId) {
53
+ case "login.ftl":
54
+ return <Page_login />;
55
+ case "register.ftl":
56
+ return <Page_register />;
57
+ case "info.ftl":
58
+ return <Page_info />;
59
+ case "error.ftl":
60
+ return <Page_error />;
61
+ case "login-reset-password.ftl":
62
+ return <Page_login_reset_password />;
63
+ case "login-verify-email.ftl":
64
+ return <Page_login_verify_email />;
65
+ case "terms.ftl":
66
+ return <Page_terms />;
67
+ case "login-oauth2-device-verify-user-code.ftl":
68
+ return <Page_login_oauth2_device_verify_user_code />;
69
+ case "login-oauth-grant.ftl":
70
+ return <Page_login_oauth_grant />;
71
+ case "login-otp.ftl":
72
+ return <Page_login_otp />;
73
+ case "login-username.ftl":
74
+ return <Page_login_username />;
75
+ case "login-password.ftl":
76
+ return <Page_login_password />;
77
+ case "webauthn-authenticate.ftl":
78
+ return <Page_webauthn_authenticate />;
79
+ case "webauthn-register.ftl":
80
+ return <Page_webauthn_register />;
81
+ case "login-update-password.ftl":
82
+ return <Page_login_update_password />;
83
+ case "link-idp-action.ftl":
84
+ return <Page_link_idp_action />;
85
+ case "login-update-profile.ftl":
86
+ return <Page_login_update_profile />;
87
+ case "login-idp-link-confirm.ftl":
88
+ return <Page_login_idp_link_confirm />;
89
+ case "login-idp-link-email.ftl":
90
+ return <Page_login_idp_link_email />;
91
+ case "login-page-expired.ftl":
92
+ return <Page_login_page_expired />;
93
+ case "login-config-totp.ftl":
94
+ return <Page_login_config_totp />;
95
+ case "logout-confirm.ftl":
96
+ return <Page_logout_confirm />;
97
+ case "idp-review-user-profile.ftl":
98
+ return <Page_idp_review_user_profile />;
99
+ case "update-email.ftl":
100
+ return <Page_update_email />;
101
+ case "select-authenticator.ftl":
102
+ return <Page_select_authenticator />;
103
+ case "saml-post-form.ftl":
104
+ return <Page_saml_post_form />;
105
+ case "delete-credential.ftl":
106
+ return <Page_delete_credential />;
107
+ case "code.ftl":
108
+ return <Page_code />;
109
+ case "delete-account-confirm.ftl":
110
+ return <Page_delete_account_confirm />;
111
+ case "frontchannel-logout.ftl":
112
+ return <Page_frontchannel_logout />;
113
+ case "login-recovery-authn-code-config.ftl":
114
+ return <Page_login_recovery_authn_code_config />;
115
+ case "login-recovery-authn-code-input.ftl":
116
+ return <Page_login_recovery_authn_code_input />;
117
+ case "login-reset-otp.ftl":
118
+ return <Page_login_reset_otp />;
119
+ case "login-x509-info.ftl":
120
+ return <Page_login_x509_info />;
121
+ case "webauthn-error.ftl":
122
+ return <Page_webauthn_error />;
123
+ case "login-passkeys-conditional-authenticate.ftl":
124
+ return <Page_login_passkeys_conditional_authenticate />;
125
+ case "login-idp-link-confirm-override.ftl":
126
+ return <Page_login_idp_link_confirm_override />;
127
+ case "select-organization.ftl":
128
+ return <Page_select_organization />;
129
+ }
130
+
131
+ })()}
132
+ </Suspense>
133
+ );
134
+ }
@@ -11,93 +11,77 @@ export default meta;
11
11
 
12
12
  type Story = StoryObj<typeof meta>;
13
13
 
14
- export const Default: Story = {
15
- render: () => <KcPageStory />
14
+ export const Default: Story = {};
15
+
16
+ export const Arabic: Story = {
17
+ args: {
18
+ kcContext: {
19
+ locale: {
20
+ currentLanguageTag: "ar",
21
+ rtl: true
22
+ }
23
+ }
24
+ }
16
25
  };
17
26
 
18
- export const WithDarkModeDisabled: Story = {
19
- render: () => (
20
- <KcPageStory
21
- kcContext={{
22
- properties: {
23
- ENABLE_THEME_TOGGLE: "false"
24
- }
25
- }}
26
- />
27
- )
27
+ export const French: Story = {
28
+ args: {
29
+ kcContext: {
30
+ locale: {
31
+ currentLanguageTag: "fr",
32
+ rtl: false
33
+ }
34
+ }
35
+ }
28
36
  };
29
37
 
30
- export const WithDarkModeEnabled: Story = {
31
- render: () => (
32
- <KcPageStory
33
- kcContext={{
34
- properties: {
35
- ENABLE_THEME_TOGGLE: "true"
36
- }
37
- }}
38
- />
39
- )
38
+
39
+ /**
40
+ * This reflects the state when "Dark Theme" is set to "Disabled" in the realm settings
41
+ * (Theme configuration tab of the Keycloak Admin UI).
42
+ *
43
+ * You should enable this configuration if you want to hide the "dark mode switch"
44
+ * and ensure that the theme always renders in light mode, even if the user's system
45
+ * preference is set to dark.
46
+ */
47
+ export const WithDarkModeForbidden: Story = {
48
+ args: {
49
+ kcContext: {
50
+ darkMode: false
51
+ }
52
+ }
40
53
  };
41
54
 
42
55
  export const WithErrorCode: Story = {
43
- render: () => (
44
- <KcPageStory
45
- kcContext={{
46
- code: {
47
- success: false,
48
- error: "Failed to generate code"
49
- }
50
- }}
51
- />
52
- )
53
- };
54
- export const Arabic: Story = {
55
- render: () => (
56
- <KcPageStory
57
- kcContext={{
58
- locale: {
59
- currentLanguageTag: "ar",
60
- rtl: true
61
- }
62
- }}
63
- />
64
- )
65
- };
66
- export const French: Story = {
67
- render: () => (
68
- <KcPageStory
69
- kcContext={{
70
- locale: {
71
- currentLanguageTag: "fr"
72
- }
73
- }}
74
- />
75
- )
56
+ args: {
57
+ kcContext: {
58
+ code: {
59
+ success: false,
60
+ error: "Failed to generate code"
61
+ }
62
+ }
63
+ }
76
64
  };
77
65
  export const WithFrenchLanguage: Story = {
78
- render: () => (
79
- <KcPageStory
80
- kcContext={{
81
- locale: {
82
- currentLanguageTag: "fr"
83
- },
84
- code: {
85
- success: true,
86
- code: "XYZ789"
87
- }
88
- }}
89
- />
90
- )
66
+ args: {
67
+ kcContext: {
68
+ locale: {
69
+ currentLanguageTag: "fr"
70
+ },
71
+ code: {
72
+ success: true,
73
+ code: "XYZ789"
74
+ }
75
+ }
76
+ }
91
77
  };
92
78
  export const WithHtmlErrorMessage: Story = {
93
- render: () => (
94
- <KcPageStory
95
- kcContext={{
96
- code: {
97
- success: false,
98
- error: "Something went wrong. <a href='https://example.com'>Try again</a>"
99
- }
100
- }}
101
- />
102
- )
79
+ args: {
80
+ kcContext: {
81
+ code: {
82
+ success: false,
83
+ error: "Something went wrong. <a href='https://example.com'>Try again</a>"
84
+ }
85
+ }
86
+ }
103
87
  };