@oussemasahbeni/keycloakify-login-shadcn 250004.0.3 → 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 (169) hide show
  1. package/keycloak-theme/login/KcContext.ts +23 -23
  2. package/keycloak-theme/login/KcPage.tsx +47 -47
  3. package/keycloak-theme/login/assets/img/auth-logo.svg +100 -100
  4. package/keycloak-theme/login/assets/img/shape.svg +71 -71
  5. package/keycloak-theme/login/components/LogoutOtherSessions.tsx +26 -26
  6. package/keycloak-theme/login/components/PasswordWrapper.tsx +35 -35
  7. package/keycloak-theme/login/components/Template/Template.tsx +227 -227
  8. package/keycloak-theme/login/components/Template/index.ts +1 -1
  9. package/keycloak-theme/login/components/Template/useInitializeTemplate.ts +61 -61
  10. package/keycloak-theme/login/components/UserProfileFormFields/AddRemoveButtonsMultiValuedAttribute.tsx +61 -61
  11. package/keycloak-theme/login/components/UserProfileFormFields/DO_MAKE_USER_CONFIRM_PASSWORD.ts +2 -2
  12. package/keycloak-theme/login/components/UserProfileFormFields/FieldErrors.tsx +28 -28
  13. package/keycloak-theme/login/components/UserProfileFormFields/GroupLabel.tsx +70 -70
  14. package/keycloak-theme/login/components/UserProfileFormFields/InputFieldByType.tsx +58 -58
  15. package/keycloak-theme/login/components/UserProfileFormFields/InputTag.tsx +116 -116
  16. package/keycloak-theme/login/components/UserProfileFormFields/InputTagSelects.tsx +135 -135
  17. package/keycloak-theme/login/components/UserProfileFormFields/SelectTag.tsx +114 -114
  18. package/keycloak-theme/login/components/UserProfileFormFields/TextareaTag.tsx +42 -42
  19. package/keycloak-theme/login/components/UserProfileFormFields/UserProfileFormFields.tsx +127 -127
  20. package/keycloak-theme/login/components/UserProfileFormFields/index.ts +1 -1
  21. package/keycloak-theme/login/i18n.ts +47 -47
  22. package/keycloak-theme/login/mocks/getKcContextMock.ts +22 -22
  23. package/keycloak-theme/login/pages/PageIndex.tsx +134 -134
  24. package/keycloak-theme/login/pages/code/Page.stories.tsx +54 -66
  25. package/keycloak-theme/login/pages/code/Page.tsx +89 -89
  26. package/keycloak-theme/login/pages/code/index.ts +3 -3
  27. package/keycloak-theme/login/pages/delete-account-confirm/Page.stories.tsx +39 -46
  28. package/keycloak-theme/login/pages/delete-account-confirm/Page.tsx +63 -63
  29. package/keycloak-theme/login/pages/delete-account-confirm/index.ts +3 -3
  30. package/keycloak-theme/login/pages/delete-credential/Page.stories.tsx +26 -30
  31. package/keycloak-theme/login/pages/delete-credential/Page.tsx +51 -51
  32. package/keycloak-theme/login/pages/delete-credential/index.ts +3 -3
  33. package/keycloak-theme/login/pages/error/Page.stories.tsx +47 -58
  34. package/keycloak-theme/login/pages/error/Page.tsx +42 -42
  35. package/keycloak-theme/login/pages/error/index.ts +3 -3
  36. package/keycloak-theme/login/pages/frontchannel-logout/Page.stories.tsx +25 -32
  37. package/keycloak-theme/login/pages/frontchannel-logout/Page.tsx +84 -84
  38. package/keycloak-theme/login/pages/frontchannel-logout/index.ts +3 -3
  39. package/keycloak-theme/login/pages/idp-review-user-profile/Page.stories.tsx +46 -58
  40. package/keycloak-theme/login/pages/idp-review-user-profile/Page.tsx +52 -52
  41. package/keycloak-theme/login/pages/idp-review-user-profile/index.ts +3 -3
  42. package/keycloak-theme/login/pages/info/Page.stories.tsx +50 -60
  43. package/keycloak-theme/login/pages/info/Page.tsx +92 -92
  44. package/keycloak-theme/login/pages/link-idp-action/Page.stories.tsx +32 -16
  45. package/keycloak-theme/login/pages/link-idp-action/Page.tsx +43 -43
  46. package/keycloak-theme/login/pages/link-idp-action/index.ts +3 -3
  47. package/keycloak-theme/login/pages/login/Form.tsx +242 -242
  48. package/keycloak-theme/login/pages/login/Info.tsx +29 -29
  49. package/keycloak-theme/login/pages/login/Page.stories.tsx +345 -365
  50. package/keycloak-theme/login/pages/login/Page.tsx +44 -44
  51. package/keycloak-theme/login/pages/login/SocialProviders.tsx +107 -107
  52. package/keycloak-theme/login/pages/login/index.ts +3 -3
  53. package/keycloak-theme/login/pages/login/providers/apple.svg +3 -3
  54. package/keycloak-theme/login/pages/login/providers/bitbucket.svg +11 -11
  55. package/keycloak-theme/login/pages/login/providers/discord.svg +4 -4
  56. package/keycloak-theme/login/pages/login/providers/facebook.svg +5 -5
  57. package/keycloak-theme/login/pages/login/providers/github.svg +3 -3
  58. package/keycloak-theme/login/pages/login/providers/gitlab.svg +7 -7
  59. package/keycloak-theme/login/pages/login/providers/google.svg +7 -7
  60. package/keycloak-theme/login/pages/login/providers/instagram.svg +31 -31
  61. package/keycloak-theme/login/pages/login/providers/linkedin.svg +3 -3
  62. package/keycloak-theme/login/pages/login/providers/microsoft.svg +6 -6
  63. package/keycloak-theme/login/pages/login/providers/oidc.svg +5 -5
  64. package/keycloak-theme/login/pages/login/providers/openshift.svg +7 -7
  65. package/keycloak-theme/login/pages/login/providers/paypal.svg +6 -6
  66. package/keycloak-theme/login/pages/login/providers/slack.svg +11 -11
  67. package/keycloak-theme/login/pages/login/providers/stackoverflow.svg +5 -5
  68. package/keycloak-theme/login/pages/login/providers/x.svg +3 -3
  69. package/keycloak-theme/login/pages/login/useProviderLogos.tsx +39 -39
  70. package/keycloak-theme/login/pages/login/useScript.tsx +62 -62
  71. package/keycloak-theme/login/pages/login-config-totp/Page.stories.tsx +45 -59
  72. package/keycloak-theme/login/pages/login-config-totp/Page.tsx +240 -240
  73. package/keycloak-theme/login/pages/login-config-totp/index.ts +3 -3
  74. package/keycloak-theme/login/pages/login-idp-link-confirm/Page.stories.tsx +30 -34
  75. package/keycloak-theme/login/pages/login-idp-link-confirm/Page.tsx +43 -43
  76. package/keycloak-theme/login/pages/login-idp-link-confirm/index.ts +3 -3
  77. package/keycloak-theme/login/pages/login-idp-link-confirm-override/Page.stories.tsx +16 -22
  78. package/keycloak-theme/login/pages/login-idp-link-confirm-override/Page.tsx +47 -47
  79. package/keycloak-theme/login/pages/login-idp-link-confirm-override/index.ts +3 -3
  80. package/keycloak-theme/login/pages/login-idp-link-email/Page.stories.tsx +54 -62
  81. package/keycloak-theme/login/pages/login-idp-link-email/Page.tsx +54 -54
  82. package/keycloak-theme/login/pages/login-idp-link-email/index.ts +3 -3
  83. package/keycloak-theme/login/pages/login-oauth-grant/Page.stories.tsx +39 -45
  84. package/keycloak-theme/login/pages/login-oauth-grant/Page.tsx +126 -126
  85. package/keycloak-theme/login/pages/login-oauth-grant/index.ts +3 -3
  86. package/keycloak-theme/login/pages/login-oauth2-device-verify-user-code/Page.stories.tsx +38 -48
  87. package/keycloak-theme/login/pages/login-oauth2-device-verify-user-code/Page.tsx +58 -58
  88. package/keycloak-theme/login/pages/login-oauth2-device-verify-user-code/index.ts +3 -3
  89. package/keycloak-theme/login/pages/login-otp/Page.stories.tsx +82 -96
  90. package/keycloak-theme/login/pages/login-otp/Page.tsx +108 -108
  91. package/keycloak-theme/login/pages/login-otp/index.ts +3 -3
  92. package/keycloak-theme/login/pages/login-page-expired/Page.stories.tsx +28 -36
  93. package/keycloak-theme/login/pages/login-page-expired/Page.tsx +47 -47
  94. package/keycloak-theme/login/pages/login-page-expired/index.ts +3 -3
  95. package/keycloak-theme/login/pages/login-passkeys-conditional-authenticate/Page.stories.tsx +20 -0
  96. package/keycloak-theme/login/pages/login-passkeys-conditional-authenticate/Page.tsx +233 -233
  97. package/keycloak-theme/login/pages/login-passkeys-conditional-authenticate/index.ts +3 -3
  98. package/keycloak-theme/login/pages/login-passkeys-conditional-authenticate/useScript.tsx +63 -63
  99. package/keycloak-theme/login/pages/login-password/Page.stories.tsx +55 -56
  100. package/keycloak-theme/login/pages/login-password/Page.tsx +149 -149
  101. package/keycloak-theme/login/pages/login-password/index.ts +3 -3
  102. package/keycloak-theme/login/pages/login-password/useScript.tsx +63 -63
  103. package/keycloak-theme/login/pages/login-recovery-authn-code-config/Page.stories.tsx +28 -36
  104. package/keycloak-theme/login/pages/login-recovery-authn-code-config/Page.tsx +181 -181
  105. package/keycloak-theme/login/pages/login-recovery-authn-code-config/index.ts +3 -3
  106. package/keycloak-theme/login/pages/login-recovery-authn-code-config/useScript.tsx +145 -145
  107. package/keycloak-theme/login/pages/login-recovery-authn-code-input/Page.stories.tsx +16 -22
  108. package/keycloak-theme/login/pages/login-recovery-authn-code-input/Page.tsx +70 -70
  109. package/keycloak-theme/login/pages/login-recovery-authn-code-input/index.ts +3 -3
  110. package/keycloak-theme/login/pages/login-reset-otp/Page.stories.tsx +62 -74
  111. package/keycloak-theme/login/pages/login-reset-otp/Page.tsx +86 -86
  112. package/keycloak-theme/login/pages/login-reset-otp/index.ts +3 -3
  113. package/keycloak-theme/login/pages/login-reset-password/Form.tsx +68 -68
  114. package/keycloak-theme/login/pages/login-reset-password/Page.stories.tsx +44 -54
  115. package/keycloak-theme/login/pages/login-reset-password/Page.tsx +27 -27
  116. package/keycloak-theme/login/pages/login-reset-password/index.ts +3 -3
  117. package/keycloak-theme/login/pages/login-update-password/Page.stories.tsx +40 -50
  118. package/keycloak-theme/login/pages/login-update-password/Page.tsx +111 -111
  119. package/keycloak-theme/login/pages/login-update-password/index.ts +3 -3
  120. package/keycloak-theme/login/pages/login-update-profile/Page.stories.tsx +28 -36
  121. package/keycloak-theme/login/pages/login-update-profile/Page.tsx +68 -68
  122. package/keycloak-theme/login/pages/login-update-profile/index.ts +3 -3
  123. package/keycloak-theme/login/pages/login-username/Page.stories.tsx +32 -42
  124. package/keycloak-theme/login/pages/login-username/Page.tsx +246 -246
  125. package/keycloak-theme/login/pages/login-username/index.ts +3 -3
  126. package/keycloak-theme/login/pages/login-username/useScript.tsx +62 -62
  127. package/keycloak-theme/login/pages/login-verify-email/Page.stories.tsx +68 -80
  128. package/keycloak-theme/login/pages/login-verify-email/Page.tsx +38 -38
  129. package/keycloak-theme/login/pages/login-verify-email/index.ts +3 -3
  130. package/keycloak-theme/login/pages/login-x509-info/Page.stories.tsx +29 -37
  131. package/keycloak-theme/login/pages/login-x509-info/Page.tsx +75 -75
  132. package/keycloak-theme/login/pages/login-x509-info/index.ts +3 -3
  133. package/keycloak-theme/login/pages/logout-confirm/Page.stories.tsx +34 -42
  134. package/keycloak-theme/login/pages/logout-confirm/Page.tsx +53 -53
  135. package/keycloak-theme/login/pages/logout-confirm/index.ts +3 -3
  136. package/keycloak-theme/login/pages/register/Form.tsx +106 -106
  137. package/keycloak-theme/login/pages/register/Page.stories.tsx +23 -6
  138. package/keycloak-theme/login/pages/register/Page.tsx +26 -26
  139. package/keycloak-theme/login/pages/register/TermsAcceptance.tsx +56 -56
  140. package/keycloak-theme/login/pages/register/index.ts +3 -3
  141. package/keycloak-theme/login/pages/saml-post-form/Page.stories.tsx +16 -22
  142. package/keycloak-theme/login/pages/saml-post-form/Page.tsx +66 -66
  143. package/keycloak-theme/login/pages/saml-post-form/index.ts +3 -3
  144. package/keycloak-theme/login/pages/select-authenticator/Page.stories.tsx +83 -95
  145. package/keycloak-theme/login/pages/select-authenticator/Page.tsx +100 -100
  146. package/keycloak-theme/login/pages/select-authenticator/index.ts +3 -3
  147. package/keycloak-theme/login/pages/select-organization/Page.stories.tsx +62 -49
  148. package/keycloak-theme/login/pages/select-organization/Page.tsx +126 -126
  149. package/keycloak-theme/login/pages/select-organization/index.ts +3 -3
  150. package/keycloak-theme/login/pages/terms/Page.stories.tsx +15 -0
  151. package/keycloak-theme/login/pages/terms/Page.tsx +51 -51
  152. package/keycloak-theme/login/pages/terms/index.ts +3 -3
  153. package/keycloak-theme/login/pages/update-email/Page.stories.tsx +27 -35
  154. package/keycloak-theme/login/pages/update-email/Page.tsx +62 -62
  155. package/keycloak-theme/login/pages/update-email/index.ts +3 -3
  156. package/keycloak-theme/login/pages/webauthn-authenticate/Page.stories.tsx +112 -126
  157. package/keycloak-theme/login/pages/webauthn-authenticate/Page.tsx +202 -202
  158. package/keycloak-theme/login/pages/webauthn-authenticate/index.ts +3 -3
  159. package/keycloak-theme/login/pages/webauthn-authenticate/useScript.tsx +55 -55
  160. package/keycloak-theme/login/pages/webauthn-error/Page.stories.tsx +54 -66
  161. package/keycloak-theme/login/pages/webauthn-error/Page.tsx +73 -73
  162. package/keycloak-theme/login/pages/webauthn-error/index.ts +3 -3
  163. package/keycloak-theme/login/pages/webauthn-register/Page.stories.tsx +39 -49
  164. package/keycloak-theme/login/pages/webauthn-register/Page.tsx +78 -78
  165. package/keycloak-theme/login/pages/webauthn-register/index.ts +3 -3
  166. package/keycloak-theme/login/pages/webauthn-register/useScript.tsx +62 -62
  167. package/keycloak-theme/login/shared/getColorScheme.ts +45 -45
  168. package/keycloak-theme/login/styleLevelCustomization.tsx +35 -35
  169. package/package.json +5 -1
@@ -1,62 +1,62 @@
1
- import { useInsertScriptTags } from "@keycloakify/login-ui/tools/useInsertScriptTags";
2
- import { waitForElementMountedOnDom } from "@keycloakify/login-ui/tools/waitForElementMountedOnDom";
3
- import { useEffect } from "react";
4
- import { assert } from "tsafe/assert";
5
- import { useKcContext } from "../../KcContext";
6
- import { useI18n } from "../../i18n";
7
-
8
- export function useScript(params: { webAuthnButtonId: string }) {
9
- const { webAuthnButtonId } = params;
10
-
11
- const { kcContext } = useKcContext();
12
- assert(kcContext.pageId === "webauthn-register.ftl");
13
-
14
- const { msgStr, isFetchingTranslations } = useI18n();
15
-
16
- const { insertScriptTags } = useInsertScriptTags({
17
- effectId: "LoginRecoveryAuthnCodeConfig",
18
- scriptTags: [
19
- {
20
- type: "module",
21
- textContent: () => `
22
- import { registerByWebAuthn } from "${import.meta.env.BASE_URL}keycloak-theme/login/js/webauthnRegister.js";
23
- const registerButton = document.getElementById('${webAuthnButtonId}');
24
- registerButton.addEventListener("click", function() {
25
- const input = {
26
- challenge : '${kcContext.challenge}',
27
- userid : '${kcContext.userid}',
28
- username : '${kcContext.username}',
29
- signatureAlgorithms : ${JSON.stringify(kcContext.signatureAlgorithms)},
30
- rpEntityName : ${JSON.stringify(kcContext.rpEntityName)},
31
- rpId : ${JSON.stringify(kcContext.rpId)},
32
- attestationConveyancePreference : ${JSON.stringify(kcContext.attestationConveyancePreference)},
33
- authenticatorAttachment : ${JSON.stringify(kcContext.authenticatorAttachment)},
34
- requireResidentKey : ${JSON.stringify(kcContext.requireResidentKey)},
35
- userVerificationRequirement : ${JSON.stringify(kcContext.userVerificationRequirement)},
36
- createTimeout : ${kcContext.createTimeout},
37
- excludeCredentialIds : ${JSON.stringify(kcContext.excludeCredentialIds)},
38
- initLabel : ${JSON.stringify(msgStr("webauthn-registration-init-label"))},
39
- initLabelPrompt : ${JSON.stringify(msgStr("webauthn-registration-init-label-prompt"))},
40
- errmsg : ${JSON.stringify(msgStr("webauthn-unsupported-browser-text"))}
41
- };
42
- registerByWebAuthn(input);
43
- });
44
- `
45
- }
46
- ]
47
- });
48
-
49
- useEffect(() => {
50
- if (isFetchingTranslations) {
51
- return;
52
- }
53
-
54
- (async () => {
55
- await waitForElementMountedOnDom({
56
- elementId: webAuthnButtonId
57
- });
58
-
59
- insertScriptTags();
60
- })();
61
- }, [isFetchingTranslations]);
62
- }
1
+ import { useInsertScriptTags } from "@keycloakify/login-ui/tools/useInsertScriptTags";
2
+ import { waitForElementMountedOnDom } from "@keycloakify/login-ui/tools/waitForElementMountedOnDom";
3
+ import { useEffect } from "react";
4
+ import { assert } from "tsafe/assert";
5
+ import { useKcContext } from "../../KcContext";
6
+ import { useI18n } from "../../i18n";
7
+
8
+ export function useScript(params: { webAuthnButtonId: string }) {
9
+ const { webAuthnButtonId } = params;
10
+
11
+ const { kcContext } = useKcContext();
12
+ assert(kcContext.pageId === "webauthn-register.ftl");
13
+
14
+ const { msgStr, isFetchingTranslations } = useI18n();
15
+
16
+ const { insertScriptTags } = useInsertScriptTags({
17
+ effectId: "LoginRecoveryAuthnCodeConfig",
18
+ scriptTags: [
19
+ {
20
+ type: "module",
21
+ textContent: () => `
22
+ import { registerByWebAuthn } from "${import.meta.env.BASE_URL}keycloak-theme/login/js/webauthnRegister.js";
23
+ const registerButton = document.getElementById('${webAuthnButtonId}');
24
+ registerButton.addEventListener("click", function() {
25
+ const input = {
26
+ challenge : '${kcContext.challenge}',
27
+ userid : '${kcContext.userid}',
28
+ username : '${kcContext.username}',
29
+ signatureAlgorithms : ${JSON.stringify(kcContext.signatureAlgorithms)},
30
+ rpEntityName : ${JSON.stringify(kcContext.rpEntityName)},
31
+ rpId : ${JSON.stringify(kcContext.rpId)},
32
+ attestationConveyancePreference : ${JSON.stringify(kcContext.attestationConveyancePreference)},
33
+ authenticatorAttachment : ${JSON.stringify(kcContext.authenticatorAttachment)},
34
+ requireResidentKey : ${JSON.stringify(kcContext.requireResidentKey)},
35
+ userVerificationRequirement : ${JSON.stringify(kcContext.userVerificationRequirement)},
36
+ createTimeout : ${kcContext.createTimeout},
37
+ excludeCredentialIds : ${JSON.stringify(kcContext.excludeCredentialIds)},
38
+ initLabel : ${JSON.stringify(msgStr("webauthn-registration-init-label"))},
39
+ initLabelPrompt : ${JSON.stringify(msgStr("webauthn-registration-init-label-prompt"))},
40
+ errmsg : ${JSON.stringify(msgStr("webauthn-unsupported-browser-text"))}
41
+ };
42
+ registerByWebAuthn(input);
43
+ });
44
+ `
45
+ }
46
+ ]
47
+ });
48
+
49
+ useEffect(() => {
50
+ if (isFetchingTranslations) {
51
+ return;
52
+ }
53
+
54
+ (async () => {
55
+ await waitForElementMountedOnDom({
56
+ elementId: webAuthnButtonId
57
+ });
58
+
59
+ insertScriptTags();
60
+ })();
61
+ }, [isFetchingTranslations]);
62
+ }
@@ -1,45 +1,45 @@
1
- const SESSION_STORAGE_KEY = "kc-color-scheme";
2
-
3
- export function getTheme(
4
- kcContextDarkMode: boolean | undefined
5
- ): "dark" | "light" | "system" {
6
- from_admin_policy: {
7
- if (kcContextDarkMode === undefined || kcContextDarkMode === true) {
8
- break from_admin_policy;
9
- }
10
- return "light";
11
- }
12
-
13
- from_url: {
14
- const url = new URL(window.location.href);
15
-
16
- const value = url.searchParams.get("dark");
17
-
18
- if (value === null) {
19
- break from_url;
20
- }
21
-
22
- {
23
- url.searchParams.delete("dark");
24
- window.history.replaceState({}, "", url.toString());
25
- }
26
-
27
- const isDark = value === "true";
28
-
29
- sessionStorage.setItem(SESSION_STORAGE_KEY, `${isDark}`);
30
-
31
- return isDark ? "dark" : "light";
32
- }
33
-
34
- from_session_storage: {
35
- const value = sessionStorage.getItem(SESSION_STORAGE_KEY);
36
-
37
- if (value === null) {
38
- break from_session_storage;
39
- }
40
-
41
- return value === "true" ? "dark" : "light";
42
- }
43
-
44
- return "system";
45
- }
1
+ const SESSION_STORAGE_KEY = "kc-color-scheme";
2
+
3
+ export function getTheme(
4
+ kcContextDarkMode: boolean | undefined
5
+ ): "dark" | "light" | "system" {
6
+ from_admin_policy: {
7
+ if (kcContextDarkMode === undefined || kcContextDarkMode === true) {
8
+ break from_admin_policy;
9
+ }
10
+ return "light";
11
+ }
12
+
13
+ from_url: {
14
+ const url = new URL(window.location.href);
15
+
16
+ const value = url.searchParams.get("dark");
17
+
18
+ if (value === null) {
19
+ break from_url;
20
+ }
21
+
22
+ {
23
+ url.searchParams.delete("dark");
24
+ window.history.replaceState({}, "", url.toString());
25
+ }
26
+
27
+ const isDark = value === "true";
28
+
29
+ sessionStorage.setItem(SESSION_STORAGE_KEY, `${isDark}`);
30
+
31
+ return isDark ? "dark" : "light";
32
+ }
33
+
34
+ from_session_storage: {
35
+ const value = sessionStorage.getItem(SESSION_STORAGE_KEY);
36
+
37
+ if (value === null) {
38
+ break from_session_storage;
39
+ }
40
+
41
+ return value === "true" ? "dark" : "light";
42
+ }
43
+
44
+ return "system";
45
+ }
@@ -1,36 +1,36 @@
1
- import { ThemeProvider } from '@/components/theme-provider';
2
- import type { ClassKey } from "@keycloakify/login-ui/useKcClsx";
3
- import type { ReactNode } from "react";
4
- import { useKcContext } from './KcContext';
5
- import { getTheme } from './shared/getColorScheme';
6
-
7
- type Classes = { [key in ClassKey]?: string };
8
-
9
- type StyleLevelCustomization = {
10
- doUseDefaultCss: boolean;
11
- classes?: Classes;
12
- loadCustomStylesheet?: () => void;
13
- Provider?: (props: { children: ReactNode }) => ReactNode;
14
- };
15
-
16
- // eslint-disable-next-line react-refresh/only-export-components
17
- function Provider(props: { children: ReactNode }) {
18
- const { children } = props;
19
-
20
- const { kcContext } = useKcContext();
21
-
22
-
23
- return (
24
- <ThemeProvider defaultTheme={getTheme(kcContext.darkMode)}>
25
- {children}
26
- </ThemeProvider>
27
- );
28
- }
29
-
30
-
31
- export function useStyleLevelCustomization(): StyleLevelCustomization {
32
- return {
33
- doUseDefaultCss: false,
34
- Provider
35
- };
1
+ import { ThemeProvider } from '@/components/theme-provider';
2
+ import type { ClassKey } from "@keycloakify/login-ui/useKcClsx";
3
+ import type { ReactNode } from "react";
4
+ import { useKcContext } from './KcContext';
5
+ import { getTheme } from './shared/getColorScheme';
6
+
7
+ type Classes = { [key in ClassKey]?: string };
8
+
9
+ type StyleLevelCustomization = {
10
+ doUseDefaultCss: boolean;
11
+ classes?: Classes;
12
+ loadCustomStylesheet?: () => void;
13
+ Provider?: (props: { children: ReactNode }) => ReactNode;
14
+ };
15
+
16
+ // eslint-disable-next-line react-refresh/only-export-components
17
+ function Provider(props: { children: ReactNode }) {
18
+ const { children } = props;
19
+
20
+ const { kcContext } = useKcContext();
21
+
22
+
23
+ return (
24
+ <ThemeProvider defaultTheme={getTheme(kcContext.darkMode)}>
25
+ {children}
26
+ </ThemeProvider>
27
+ );
28
+ }
29
+
30
+
31
+ export function useStyleLevelCustomization(): StyleLevelCustomization {
32
+ return {
33
+ doUseDefaultCss: false,
34
+ Provider
35
+ };
36
36
  }
package/package.json CHANGED
@@ -1,8 +1,12 @@
1
1
  {
2
2
  "name": "@oussemasahbeni/keycloakify-login-shadcn",
3
- "version": "250004.0.3",
3
+ "version": "250004.0.7",
4
4
  "description": "Keycloakify Shadcn Theme extensions",
5
5
  "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/Oussemasahbeni/keycloakify-shadcn-starter.git"
9
+ },
6
10
  "type": "module",
7
11
  "main": "keycloak-theme/login/index.js",
8
12
  "files": [