@oussemasahbeni/keycloakify-login-shadcn 250004.0.7 → 250004.0.8

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 (104) hide show
  1. package/keycloak-theme/components/langauges.tsx +1 -1
  2. package/keycloak-theme/components/theme-toggle.tsx +0 -1
  3. package/keycloak-theme/components/ui/alert.tsx +1 -2
  4. package/keycloak-theme/components/ui/button.tsx +1 -2
  5. package/keycloak-theme/components/ui/card.tsx +0 -1
  6. package/keycloak-theme/components/ui/checkbox.tsx +0 -1
  7. package/keycloak-theme/components/ui/dropdown-menu.tsx +14 -4
  8. package/keycloak-theme/components/ui/field.tsx +0 -1
  9. package/keycloak-theme/components/ui/input-otp.tsx +0 -1
  10. package/keycloak-theme/components/ui/input.tsx +0 -1
  11. package/keycloak-theme/components/ui/label.tsx +1 -2
  12. package/keycloak-theme/components/ui/radio-group.tsx +0 -1
  13. package/keycloak-theme/components/ui/select.tsx +12 -4
  14. package/keycloak-theme/components/ui/separator.tsx +0 -1
  15. package/keycloak-theme/components/ui/tooltip.tsx +0 -1
  16. package/keycloak-theme/login/KcPage.tsx +2 -4
  17. package/keycloak-theme/login/components/LogoutOtherSessions.tsx +3 -5
  18. package/keycloak-theme/login/components/PasswordWrapper.tsx +4 -4
  19. package/keycloak-theme/login/components/Template/Template.tsx +108 -56
  20. package/keycloak-theme/login/components/UserProfileFormFields/AddRemoveButtonsMultiValuedAttribute.tsx +7 -3
  21. package/keycloak-theme/login/components/UserProfileFormFields/FieldErrors.tsx +8 -4
  22. package/keycloak-theme/login/components/UserProfileFormFields/GroupLabel.tsx +33 -14
  23. package/keycloak-theme/login/components/UserProfileFormFields/InputFieldByType.tsx +9 -2
  24. package/keycloak-theme/login/components/UserProfileFormFields/InputLabel.tsx +0 -1
  25. package/keycloak-theme/login/components/UserProfileFormFields/InputTag.tsx +25 -8
  26. package/keycloak-theme/login/components/UserProfileFormFields/InputTagSelects.tsx +30 -16
  27. package/keycloak-theme/login/components/UserProfileFormFields/SelectTag.tsx +32 -11
  28. package/keycloak-theme/login/components/UserProfileFormFields/TextareaTag.tsx +19 -7
  29. package/keycloak-theme/login/components/UserProfileFormFields/UserProfileFormFields.tsx +11 -5
  30. package/keycloak-theme/login/mocks/KcPageStory.tsx +6 -2
  31. package/keycloak-theme/login/pages/PageIndex.tsx +0 -4
  32. package/keycloak-theme/login/pages/code/Page.stories.tsx +4 -5
  33. package/keycloak-theme/login/pages/code/Page.tsx +6 -6
  34. package/keycloak-theme/login/pages/delete-account-confirm/Page.stories.tsx +0 -2
  35. package/keycloak-theme/login/pages/delete-account-confirm/Page.tsx +3 -6
  36. package/keycloak-theme/login/pages/delete-credential/Page.stories.tsx +0 -1
  37. package/keycloak-theme/login/pages/delete-credential/Page.tsx +11 -6
  38. package/keycloak-theme/login/pages/error/Page.stories.tsx +0 -1
  39. package/keycloak-theme/login/pages/error/Page.tsx +13 -12
  40. package/keycloak-theme/login/pages/frontchannel-logout/Page.tsx +2 -4
  41. package/keycloak-theme/login/pages/idp-review-user-profile/Page.stories.tsx +0 -1
  42. package/keycloak-theme/login/pages/idp-review-user-profile/Page.tsx +2 -5
  43. package/keycloak-theme/login/pages/info/Page.tsx +8 -6
  44. package/keycloak-theme/login/pages/link-idp-action/Page.tsx +5 -3
  45. package/keycloak-theme/login/pages/login/Form.tsx +52 -52
  46. package/keycloak-theme/login/pages/login/Page.stories.tsx +4 -3
  47. package/keycloak-theme/login/pages/login/Page.tsx +0 -1
  48. package/keycloak-theme/login/pages/login/SocialProviders.tsx +8 -22
  49. package/keycloak-theme/login/pages/login-config-totp/Page.stories.tsx +0 -1
  50. package/keycloak-theme/login/pages/login-config-totp/Page.tsx +25 -12
  51. package/keycloak-theme/login/pages/login-idp-link-confirm/Page.stories.tsx +0 -1
  52. package/keycloak-theme/login/pages/login-idp-link-confirm/Page.tsx +4 -7
  53. package/keycloak-theme/login/pages/login-idp-link-confirm-override/Page.stories.tsx +0 -1
  54. package/keycloak-theme/login/pages/login-idp-link-confirm-override/Page.tsx +4 -7
  55. package/keycloak-theme/login/pages/login-idp-link-email/Page.stories.tsx +0 -1
  56. package/keycloak-theme/login/pages/login-idp-link-email/Page.tsx +4 -7
  57. package/keycloak-theme/login/pages/login-oauth-grant/Page.tsx +21 -11
  58. package/keycloak-theme/login/pages/login-oauth2-device-verify-user-code/Page.tsx +5 -7
  59. package/keycloak-theme/login/pages/login-otp/Page.stories.tsx +0 -1
  60. package/keycloak-theme/login/pages/login-otp/Page.tsx +35 -26
  61. package/keycloak-theme/login/pages/login-page-expired/Page.stories.tsx +0 -1
  62. package/keycloak-theme/login/pages/login-page-expired/Page.tsx +4 -6
  63. package/keycloak-theme/login/pages/login-passkeys-conditional-authenticate/Page.tsx +153 -96
  64. package/keycloak-theme/login/pages/login-password/Page.tsx +14 -15
  65. package/keycloak-theme/login/pages/login-password/useScript.tsx +0 -1
  66. package/keycloak-theme/login/pages/login-recovery-authn-code-config/Page.tsx +5 -8
  67. package/keycloak-theme/login/pages/login-recovery-authn-code-input/Page.tsx +2 -3
  68. package/keycloak-theme/login/pages/login-reset-otp/Page.stories.tsx +0 -1
  69. package/keycloak-theme/login/pages/login-reset-otp/Page.tsx +3 -4
  70. package/keycloak-theme/login/pages/login-reset-password/Form.tsx +5 -6
  71. package/keycloak-theme/login/pages/login-reset-password/Page.stories.tsx +0 -1
  72. package/keycloak-theme/login/pages/login-reset-password/Page.tsx +3 -3
  73. package/keycloak-theme/login/pages/login-update-password/Page.stories.tsx +0 -1
  74. package/keycloak-theme/login/pages/login-update-password/Page.tsx +5 -7
  75. package/keycloak-theme/login/pages/login-update-profile/Page.stories.tsx +0 -1
  76. package/keycloak-theme/login/pages/login-update-profile/Page.tsx +6 -7
  77. package/keycloak-theme/login/pages/login-username/Page.stories.tsx +0 -1
  78. package/keycloak-theme/login/pages/login-username/Page.tsx +6 -6
  79. package/keycloak-theme/login/pages/login-verify-email/Page.stories.tsx +0 -1
  80. package/keycloak-theme/login/pages/login-verify-email/Page.tsx +3 -4
  81. package/keycloak-theme/login/pages/login-x509-info/Page.stories.tsx +0 -1
  82. package/keycloak-theme/login/pages/login-x509-info/Page.tsx +3 -6
  83. package/keycloak-theme/login/pages/logout-confirm/Page.stories.tsx +0 -1
  84. package/keycloak-theme/login/pages/logout-confirm/Page.tsx +3 -6
  85. package/keycloak-theme/login/pages/register/Form.tsx +8 -7
  86. package/keycloak-theme/login/pages/register/Page.stories.tsx +17 -8
  87. package/keycloak-theme/login/pages/register/TermsAcceptance.tsx +6 -7
  88. package/keycloak-theme/login/pages/saml-post-form/Page.stories.tsx +0 -1
  89. package/keycloak-theme/login/pages/saml-post-form/Page.tsx +4 -6
  90. package/keycloak-theme/login/pages/select-authenticator/Page.stories.tsx +0 -1
  91. package/keycloak-theme/login/pages/select-authenticator/Page.tsx +3 -6
  92. package/keycloak-theme/login/pages/select-organization/Page.tsx +5 -8
  93. package/keycloak-theme/login/pages/terms/Page.tsx +1 -3
  94. package/keycloak-theme/login/pages/update-email/Page.stories.tsx +0 -1
  95. package/keycloak-theme/login/pages/update-email/Page.tsx +6 -7
  96. package/keycloak-theme/login/pages/webauthn-authenticate/Page.stories.tsx +0 -1
  97. package/keycloak-theme/login/pages/webauthn-authenticate/Page.tsx +50 -46
  98. package/keycloak-theme/login/pages/webauthn-error/Page.stories.tsx +2 -5
  99. package/keycloak-theme/login/pages/webauthn-error/Page.tsx +3 -6
  100. package/keycloak-theme/login/pages/webauthn-register/Page.stories.tsx +0 -1
  101. package/keycloak-theme/login/pages/webauthn-register/Page.tsx +4 -4
  102. package/keycloak-theme/login/styleLevelCustomization.tsx +4 -6
  103. package/keycloak-theme/public/site.webmanifest +11 -1
  104. package/package.json +2 -2
@@ -1,23 +1,28 @@
1
1
  import { Button } from "@/components/ui/button";
2
2
  import { Input } from "@/components/ui/input";
3
- import { useI18n } from '@/login/i18n';
4
- import { useKcContext } from '@/login/KcContext';
5
- import { useKcClsx } from '@keycloakify/login-ui/useKcClsx';
3
+ import { useI18n } from "@/login/i18n";
4
+ import { useKcContext } from "@/login/KcContext";
5
+ import { useKcClsx } from "@keycloakify/login-ui/useKcClsx";
6
6
  import { clsx } from "keycloakify/tools/clsx";
7
7
  import { Fingerprint, Shield } from "lucide-react";
8
8
  import { Fragment } from "react";
9
9
  import { assert } from "tsafe/assert";
10
10
  import { Template } from "../../components/Template";
11
- import { useScript } from './useScript';
11
+ import { useScript } from "./useScript";
12
12
 
13
13
  export function Page() {
14
-
15
14
  const { kcContext } = useKcContext();
16
15
  assert(kcContext.pageId === "webauthn-authenticate.ftl");
17
16
 
18
17
  const { kcClsx } = useKcClsx();
19
18
 
20
- const { url, realm, registrationDisabled, authenticators, shouldDisplayAuthenticators } = kcContext;
19
+ const {
20
+ url,
21
+ realm,
22
+ registrationDisabled,
23
+ authenticators,
24
+ shouldDisplayAuthenticators
25
+ } = kcContext;
21
26
 
22
27
  const { msg, msgStr, advancedMsg } = useI18n();
23
28
 
@@ -25,7 +30,6 @@ export function Page() {
25
30
 
26
31
  useScript({ webAuthnButtonId });
27
32
 
28
-
29
33
  return (
30
34
  <Template
31
35
  displayInfo={realm.registrationAllowed && !registrationDisabled}
@@ -127,46 +131,46 @@ export function Page() {
127
131
  {authenticator.transports
128
132
  .displayNameProperties
129
133
  ?.length && (
130
- <div
131
- id={`kc-webauthn-authenticator-transport-${i}`}
132
- className="text-xs text-muted-foreground mt-1"
133
- >
134
- {authenticator.transports.displayNameProperties
135
- .map(
136
- (
137
- displayNameProperty,
138
- i,
139
- arr
140
- ) => ({
141
- displayNameProperty,
142
- hasNext:
143
- i !==
144
- arr.length - 1
145
- })
134
+ <div
135
+ id={`kc-webauthn-authenticator-transport-${i}`}
136
+ className="text-xs text-muted-foreground mt-1"
137
+ >
138
+ {authenticator.transports.displayNameProperties
139
+ .map(
140
+ (
141
+ displayNameProperty,
142
+ i,
143
+ arr
144
+ ) => ({
145
+ displayNameProperty,
146
+ hasNext:
147
+ i !==
148
+ arr.length - 1
149
+ })
150
+ )
151
+ .map(
152
+ ({
153
+ displayNameProperty,
154
+ hasNext
155
+ }) => (
156
+ <Fragment
157
+ key={
158
+ displayNameProperty
159
+ }
160
+ >
161
+ {advancedMsg(
162
+ displayNameProperty
163
+ )}
164
+ {hasNext && (
165
+ <span>
166
+ ,{" "}
167
+ </span>
168
+ )}
169
+ </Fragment>
146
170
  )
147
- .map(
148
- ({
149
- displayNameProperty,
150
- hasNext
151
- }) => (
152
- <Fragment
153
- key={
154
- displayNameProperty
155
- }
156
- >
157
- {advancedMsg(
158
- displayNameProperty
159
- )}
160
- {hasNext && (
161
- <span>
162
- ,{" "}
163
- </span>
164
- )}
165
- </Fragment>
166
- )
167
- )}
168
- </div>
169
- )}
171
+ )}
172
+ </div>
173
+ )}
170
174
 
171
175
  <div className="text-xs text-muted-foreground mt-1">
172
176
  <span
@@ -1,6 +1,5 @@
1
1
  import { createKcPageStory, type Meta, type StoryObj } from "../../mocks/KcPageStory";
2
2
 
3
-
4
3
  const { KcPageStory } = createKcPageStory({ pageId: "webauthn-error.ftl" });
5
4
 
6
5
  const meta = {
@@ -69,8 +68,7 @@ export const WithAppInitiatedAction: Story = {
69
68
  },
70
69
  isAppInitiatedAction: true,
71
70
  message: {
72
- summary:
73
- "WebAuthn authentication failed. You can try again or cancel.",
71
+ summary: "WebAuthn authentication failed. You can try again or cancel.",
74
72
  type: "error"
75
73
  }
76
74
  }
@@ -91,8 +89,7 @@ export const WithJavaScriptDisabled: Story = {
91
89
  },
92
90
  isAppInitiatedAction: false,
93
91
  message: {
94
- summary:
95
- "JavaScript is disabled or not working. Please retry manually.",
92
+ summary: "JavaScript is disabled or not working. Please retry manually.",
96
93
  type: "warning"
97
94
  }
98
95
  }
@@ -1,6 +1,6 @@
1
1
  import { Button } from "@/components/ui/button";
2
- import { useI18n } from '@/login/i18n';
3
- import { useKcContext } from '@/login/KcContext';
2
+ import { useI18n } from "@/login/i18n";
3
+ import { useKcContext } from "@/login/KcContext";
4
4
  import { assert } from "tsafe/assert";
5
5
  import { Template } from "../../components/Template";
6
6
 
@@ -13,10 +13,7 @@ export function Page() {
13
13
  const { msg, msgStr } = useI18n();
14
14
 
15
15
  return (
16
- <Template
17
- displayMessage
18
- headerNode={msg("webauthn-error-title")}
19
- >
16
+ <Template displayMessage headerNode={msg("webauthn-error-title")}>
20
17
  <div className="space-y-4">
21
18
  <form
22
19
  id="kc-error-credential-form"
@@ -1,6 +1,5 @@
1
1
  import { createKcPageStory, type Meta, type StoryObj } from "../../mocks/KcPageStory";
2
2
 
3
-
4
3
  const { KcPageStory } = createKcPageStory({ pageId: "webauthn-register.ftl" });
5
4
 
6
5
  const meta = {
@@ -1,10 +1,10 @@
1
1
  import { Button } from "@/components/ui/button";
2
- import { LogoutOtherSessions } from '@/login/components/LogoutOtherSessions';
3
- import { useI18n } from '@/login/i18n';
4
- import { useKcContext } from '@/login/KcContext';
2
+ import { LogoutOtherSessions } from "@/login/components/LogoutOtherSessions";
3
+ import { useI18n } from "@/login/i18n";
4
+ import { useKcContext } from "@/login/KcContext";
5
5
  import { assert } from "tsafe/assert";
6
6
  import { Template } from "../../components/Template";
7
- import { useScript } from './useScript';
7
+ import { useScript } from "./useScript";
8
8
 
9
9
  export function Page() {
10
10
  const { kcContext } = useKcContext();
@@ -1,8 +1,8 @@
1
- import { ThemeProvider } from '@/components/theme-provider';
1
+ import { ThemeProvider } from "@/components/theme-provider";
2
2
  import type { ClassKey } from "@keycloakify/login-ui/useKcClsx";
3
3
  import type { ReactNode } from "react";
4
- import { useKcContext } from './KcContext';
5
- import { getTheme } from './shared/getColorScheme';
4
+ import { useKcContext } from "./KcContext";
5
+ import { getTheme } from "./shared/getColorScheme";
6
6
 
7
7
  type Classes = { [key in ClassKey]?: string };
8
8
 
@@ -19,7 +19,6 @@ function Provider(props: { children: ReactNode }) {
19
19
 
20
20
  const { kcContext } = useKcContext();
21
21
 
22
-
23
22
  return (
24
23
  <ThemeProvider defaultTheme={getTheme(kcContext.darkMode)}>
25
24
  {children}
@@ -27,10 +26,9 @@ function Provider(props: { children: ReactNode }) {
27
26
  );
28
27
  }
29
28
 
30
-
31
29
  export function useStyleLevelCustomization(): StyleLevelCustomization {
32
30
  return {
33
31
  doUseDefaultCss: false,
34
32
  Provider
35
33
  };
36
- }
34
+ }
@@ -1 +1,11 @@
1
- {"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
1
+ {
2
+ "name": "",
3
+ "short_name": "",
4
+ "icons": [
5
+ { "src": "/android-chrome-192x192.png", "sizes": "192x192", "type": "image/png" },
6
+ { "src": "/android-chrome-512x512.png", "sizes": "512x512", "type": "image/png" }
7
+ ],
8
+ "theme_color": "#ffffff",
9
+ "background_color": "#ffffff",
10
+ "display": "standalone"
11
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oussemasahbeni/keycloakify-login-shadcn",
3
- "version": "250004.0.7",
3
+ "version": "250004.0.8",
4
4
  "description": "Keycloakify Shadcn Theme extensions",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -13,6 +13,7 @@
13
13
  "keycloak-theme"
14
14
  ],
15
15
  "peerDependencies": {
16
+ "@keycloakify/login-ui": "~250004.6.5",
16
17
  "@radix-ui/react-checkbox": "^1.3.3",
17
18
  "@radix-ui/react-dialog": "^1.1.15",
18
19
  "@radix-ui/react-dropdown-menu": "^2.1.16",
@@ -28,7 +29,6 @@
28
29
  "clsx": "^2.1.1",
29
30
  "cmdk": "^1.1.1",
30
31
  "input-otp": "^1.4.2",
31
- "@keycloakify/login-ui": "~250004.6.5",
32
32
  "lucide-react": "^0.473.0",
33
33
  "react-icons": "^5.5.0",
34
34
  "tailwind-merge": "^2.6.0",