@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
@@ -38,13 +38,13 @@ const Alert = React.forwardRef<
38
38
  <div className="flex items-start gap-3">
39
39
  {showIcon && (
40
40
  <>
41
- {variant === "info" && <Info className="h-5 w-5 flex-shrink-0" />}
42
- {variant === "error" && <XCircle className="h-5 w-5 flex-shrink-0" />}
41
+ {variant === "info" && <Info className="h-5 w-5 shrink-0" />}
42
+ {variant === "error" && <XCircle className="h-5 w-5 shrink-0" />}
43
43
  {variant === "warning" && (
44
- <AlertTriangle className="h-5 w-5 flex-shrink-0" />
44
+ <AlertTriangle className="h-5 w-5 shrink-0" />
45
45
  )}
46
46
  {variant === "success" && (
47
- <MdCheckCircle className="h-5 w-5 flex-shrink-0" />
47
+ <MdCheckCircle className="h-5 w-5 shrink-0" />
48
48
  )}
49
49
  </>
50
50
  )}
@@ -44,7 +44,7 @@ const DropdownMenuSubContent = React.forwardRef<
44
44
  <DropdownMenuPrimitive.SubContent
45
45
  ref={ref}
46
46
  className={cn(
47
- "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-dropdown-menu-content-transform-origin]",
47
+ "z-50 min-w-32 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-dropdown-menu-content-transform-origin]",
48
48
  className
49
49
  )}
50
50
  {...props}
@@ -61,7 +61,7 @@ const DropdownMenuContent = React.forwardRef<
61
61
  ref={ref}
62
62
  sideOffset={sideOffset}
63
63
  className={cn(
64
- "z-50 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md",
64
+ "z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-32 overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md",
65
65
  "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-dropdown-menu-content-transform-origin]",
66
66
  className
67
67
  )}
@@ -80,7 +80,7 @@ const DropdownMenuItem = React.forwardRef<
80
80
  <DropdownMenuPrimitive.Item
81
81
  ref={ref}
82
82
  className={cn(
83
- "relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0",
83
+ "relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0",
84
84
  inset && "pl-8",
85
85
  className
86
86
  )}
@@ -96,7 +96,7 @@ const DropdownMenuCheckboxItem = React.forwardRef<
96
96
  <DropdownMenuPrimitive.CheckboxItem
97
97
  ref={ref}
98
98
  className={cn(
99
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
99
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
100
100
  className
101
101
  )}
102
102
  checked={checked}
@@ -119,7 +119,7 @@ const DropdownMenuRadioItem = React.forwardRef<
119
119
  <DropdownMenuPrimitive.RadioItem
120
120
  ref={ref}
121
121
  className={cn(
122
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
122
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
123
123
  className
124
124
  )}
125
125
  {...props}
@@ -9,7 +9,7 @@ const Input = React.forwardRef<HTMLInputElement, React.ComponentProps<"input">>(
9
9
  type={type}
10
10
  className={cn(
11
11
  "flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
12
- "group-[[data-invalid=true]]/field:border-destructive group-[[data-invalid=true]]/field:focus-visible:ring-destructive",
12
+ "group-data-[invalid=true]/field:border-destructive group-data-[invalid=true]/field:focus-visible:ring-destructive",
13
13
  "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
14
14
  className
15
15
  )}
@@ -17,7 +17,7 @@ const SelectTrigger = React.forwardRef<
17
17
  <SelectPrimitive.Trigger
18
18
  ref={ref}
19
19
  className={cn(
20
- "flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
20
+ "flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background data-placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
21
21
  className
22
22
  )}
23
23
  {...props}
@@ -66,7 +66,7 @@ const SelectContent = React.forwardRef<
66
66
  <SelectPrimitive.Content
67
67
  ref={ref}
68
68
  className={cn(
69
- "relative z-50 max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-select-content-transform-origin]",
69
+ "relative z-50 max-h-[--radix-select-content-available-height] min-w-32 overflow-y-auto overflow-x-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-select-content-transform-origin]",
70
70
  position === "popper" &&
71
71
  "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
72
72
  className
@@ -79,7 +79,7 @@ const SelectContent = React.forwardRef<
79
79
  className={cn(
80
80
  "p-1",
81
81
  position === "popper" &&
82
- "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
82
+ "h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width)"
83
83
  )}
84
84
  >
85
85
  {children}
@@ -109,7 +109,7 @@ const SelectItem = React.forwardRef<
109
109
  <SelectPrimitive.Item
110
110
  ref={ref}
111
111
  className={cn(
112
- "relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
112
+ "relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
113
113
  className
114
114
  )}
115
115
  {...props}
@@ -15,7 +15,7 @@ const Separator = React.forwardRef<
15
15
  orientation={orientation}
16
16
  className={cn(
17
17
  "shrink-0 bg-border",
18
- orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]",
18
+ orientation === "horizontal" ? "h-px w-full" : "h-full w-px",
19
19
  className
20
20
  )}
21
21
  {...props}
@@ -1,19 +1,23 @@
1
- import {
2
- type ExtendKcContext,
3
- createUseKcContext
4
- } from "@keycloakify/login-ui/KcContext";
5
- import type { KcEnvName, ThemeName } from "../kc.gen";
6
-
7
- export type KcContextExtension = {
8
- themeName: ThemeName;
9
- properties: Record<KcEnvName, string> & {};
10
- // NOTE: Here you can declare more properties to extend the KcContext
11
- // See: https://docs.keycloakify.dev/faq-and-help/some-values-you-need-are-missing-from-in-kccontext
12
- };
13
-
14
- // eslint-disable-next-line @typescript-eslint/no-empty-object-type
15
- export type KcContextExtensionPerPage = {};
16
-
17
- export type KcContext = ExtendKcContext<KcContextExtension, KcContextExtensionPerPage>;
18
-
19
- export const { useKcContext, KcContextProvider } = createUseKcContext<KcContext>();
1
+ import {
2
+ type ExtendKcContext,
3
+ createUseKcContext
4
+ } from "@keycloakify/login-ui/KcContext";
5
+ import type { KcEnvName, ThemeName } from "../kc.gen";
6
+
7
+ export type KcContextExtension = {
8
+ themeName: ThemeName;
9
+ properties: Record<KcEnvName, string> & {};
10
+ // NOTE: Here you can declare more properties to extend the KcContext
11
+ // See: https://docs.keycloakify.dev/faq-and-help/some-values-you-need-are-missing-from-in-kccontext
12
+ client: {
13
+ baseUrl?: string;
14
+ };
15
+ darkMode?: boolean;
16
+ };
17
+
18
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
19
+ export type KcContextExtensionPerPage = {};
20
+
21
+ export type KcContext = ExtendKcContext<KcContextExtension, KcContextExtensionPerPage>;
22
+
23
+ export const { useKcContext, KcContextProvider } = createUseKcContext<KcContext>();
@@ -1,60 +1,47 @@
1
- import { ThemeProvider } from '@/components/theme-provider';
2
- import { useExclusiveAppInstanceEffect } from "@keycloakify/login-ui/tools/useExclusiveAppInstanceEffect";
3
- import { KcClsxProvider } from "@keycloakify/login-ui/useKcClsx";
4
- import type { ReactNode } from "react";
5
- import { assert } from "tsafe/assert";
6
- import { type KcContext, KcContextProvider } from "./KcContext";
7
- import { I18nProvider } from "./i18n";
8
- import "./index.css";
9
- import { PageIndex } from "./pages/PageIndex";
10
- import { useStyleLevelCustomization } from "./styleLevelCustomization";
11
-
12
-
13
- export default function KcPage(props: { kcContext: KcContext }) {
14
- const { kcContext } = props;
15
-
16
- const defaultTheme = (): "light" | "dark" | "system" => {
17
- if (kcContext.properties.ENABLE_THEME_TOGGLE !== "true") {
18
- // If theme toggle is disabled, use the default os theme setting
19
- return window.matchMedia &&
20
- window.matchMedia("(prefers-color-scheme: dark)").matches
21
- ? "dark"
22
- : "light";
23
- }
24
- return "system";
25
- };
26
-
27
- return (
28
- <KcContextProvider kcContext={kcContext}>
29
- <I18nProvider kcContext={kcContext}>
30
- <StyleLevelCustomization>
31
- <ThemeProvider defaultTheme={defaultTheme()} storageKey="theme">
32
- <PageIndex />
33
- </ThemeProvider>
34
-
35
- </StyleLevelCustomization>
36
- </I18nProvider>
37
- </KcContextProvider>
38
- );
39
- }
40
-
41
- function StyleLevelCustomization(props: { children: ReactNode }) {
42
- const { children } = props;
43
-
44
- const { doUseDefaultCss, classes, loadCustomStylesheet, Provider } = useStyleLevelCustomization();
45
-
46
- useExclusiveAppInstanceEffect({
47
- effectId: "loadCustomStylesheet",
48
- isEnabled: loadCustomStylesheet !== undefined,
49
- effect: () => {
50
- assert(loadCustomStylesheet !== undefined);
51
- loadCustomStylesheet();
52
- }
53
- });
54
-
55
- return (
56
- <KcClsxProvider doUseDefaultCss={doUseDefaultCss} classes={classes}>
57
- {Provider === undefined ? children : <Provider>{children}</Provider>}
58
- </KcClsxProvider>
59
- );
60
- }
1
+ import { useExclusiveAppInstanceEffect } from "@keycloakify/login-ui/tools/useExclusiveAppInstanceEffect";
2
+ import { KcClsxProvider } from "@keycloakify/login-ui/useKcClsx";
3
+ import type { ReactNode } from "react";
4
+ import { assert } from "tsafe/assert";
5
+ import { type KcContext, KcContextProvider } from "./KcContext";
6
+ import { I18nProvider } from "./i18n";
7
+ import "./index.css";
8
+ import { PageIndex } from "./pages/PageIndex";
9
+ import { useStyleLevelCustomization } from "./styleLevelCustomization";
10
+
11
+
12
+
13
+
14
+ export default function KcPage(props: { kcContext: KcContext }) {
15
+ const { kcContext } = props;
16
+
17
+ return (
18
+ <KcContextProvider kcContext={kcContext}>
19
+ <I18nProvider kcContext={kcContext}>
20
+ <StyleLevelCustomization>
21
+ <PageIndex />
22
+ </StyleLevelCustomization>
23
+ </I18nProvider>
24
+ </KcContextProvider>
25
+ );
26
+ }
27
+
28
+ function StyleLevelCustomization(props: { children: ReactNode }) {
29
+ const { children } = props;
30
+
31
+ const { doUseDefaultCss, classes, loadCustomStylesheet, Provider } = useStyleLevelCustomization();
32
+
33
+ useExclusiveAppInstanceEffect({
34
+ effectId: "loadCustomStylesheet",
35
+ isEnabled: loadCustomStylesheet !== undefined,
36
+ effect: () => {
37
+ assert(loadCustomStylesheet !== undefined);
38
+ loadCustomStylesheet();
39
+ }
40
+ });
41
+
42
+ return (
43
+ <KcClsxProvider doUseDefaultCss={doUseDefaultCss} classes={classes}>
44
+ {Provider === undefined ? children : <Provider>{children}</Provider>}
45
+ </KcClsxProvider>
46
+ );
47
+ }
@@ -1,101 +1,101 @@
1
- <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path
3
- d="M0 12.6316C0 5.65535 5.65535 0 12.6316 0H35.3684C42.3446 0 48 5.65535 48 12.6316V35.3684C48 42.3446 42.3446 48 35.3684 48H12.6316C5.65535 48 0 42.3446 0 35.3684V12.6316Z"
4
- fill="#465FFF" />
5
- <path
6
- d="M0 12.6316C0 5.65535 5.65535 0 12.6316 0H35.3684C42.3446 0 48 5.65535 48 12.6316V35.3684C48 42.3446 42.3446 48 35.3684 48H12.6316C5.65535 48 0 42.3446 0 35.3684V12.6316Z"
7
- fill="#465FFF" />
8
- <g filter="url(#filter0_d_0_1)">
9
- <path
10
- d="M12.6357 12.6323C12.6357 11.237 13.7668 10.106 15.162 10.106C16.5573 10.106 17.6884 11.237 17.6884 12.6323V35.3691C17.6884 36.7644 16.5573 37.8954 15.162 37.8954C13.7668 37.8954 12.6357 36.7644 12.6357 35.3691V12.6323Z"
11
- fill="white" />
12
- </g>
13
- <g filter="url(#filter1_d_0_1)">
14
- <path
15
- d="M22.1133 22.7353C22.1133 21.3401 23.2443 20.209 24.6396 20.209C26.0348 20.209 27.1659 21.3401 27.1659 22.7353V35.3669C27.1659 36.7621 26.0348 37.8932 24.6396 37.8932C23.2443 37.8932 22.1133 36.7621 22.1133 35.3669V22.7353Z"
16
- fill="white" fill-opacity="0.9" />
17
- </g>
18
- <path
19
- d="M0 12.6316C0 5.65535 5.65535 0 12.6316 0H35.3684C42.3446 0 48 5.65535 48 12.6316V35.3684C48 42.3446 42.3446 48 35.3684 48H12.6316C5.65535 48 0 42.3446 0 35.3684V12.6316Z"
20
- fill="#465FFF" />
21
- <path
22
- d="M0 12.6316C0 5.65535 5.65535 0 12.6316 0H35.3684C42.3446 0 48 5.65535 48 12.6316V35.3684C48 42.3446 42.3446 48 35.3684 48H12.6316C5.65535 48 0 42.3446 0 35.3684V12.6316Z"
23
- fill="#465FFF" />
24
- <g filter="url(#filter2_d_0_1)">
25
- <path
26
- d="M12.6357 12.6323C12.6357 11.237 13.7668 10.106 15.162 10.106C16.5573 10.106 17.6884 11.237 17.6884 12.6323V35.3691C17.6884 36.7644 16.5573 37.8954 15.162 37.8954C13.7668 37.8954 12.6357 36.7644 12.6357 35.3691V12.6323Z"
27
- fill="white" />
28
- </g>
29
- <g filter="url(#filter3_d_0_1)">
30
- <path
31
- d="M22.1133 22.7353C22.1133 21.3401 23.2443 20.209 24.6396 20.209C26.0348 20.209 27.1659 21.3401 27.1659 22.7353V35.3669C27.1659 36.7621 26.0348 37.8932 24.6396 37.8932C23.2443 37.8932 22.1133 36.7621 22.1133 35.3669V22.7353Z"
32
- fill="white" fill-opacity="0.9" />
33
- </g>
34
- <g filter="url(#filter4_d_0_1)">
35
- <path
36
- d="M31.582 16.4189C31.582 15.0236 32.7131 13.8926 34.1083 13.8926C35.5036 13.8926 36.6346 15.0236 36.6346 16.4189V35.3663C36.6346 36.7615 35.5036 37.8926 34.1083 37.8926C32.7131 37.8926 31.582 36.7615 31.582 35.3663V16.4189Z"
37
- fill="white" fill-opacity="0.7" />
38
- </g>
39
- <defs>
40
- <filter id="filter0_d_0_1" x="11.6357" y="9.60596" width="7.05267" height="29.7894" filterUnits="userSpaceOnUse"
41
- color-interpolation-filters="sRGB">
42
- <feFlood flood-opacity="0" result="BackgroundImageFix" />
43
- <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
44
- result="hardAlpha" />
45
- <feOffset dy="0.5" />
46
- <feGaussianBlur stdDeviation="0.5" />
47
- <feComposite in2="hardAlpha" operator="out" />
48
- <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12 0" />
49
- <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1" />
50
- <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape" />
51
- </filter>
52
- <filter id="filter1_d_0_1" x="21.1133" y="19.709" width="7.05261" height="19.6842" filterUnits="userSpaceOnUse"
53
- color-interpolation-filters="sRGB">
54
- <feFlood flood-opacity="0" result="BackgroundImageFix" />
55
- <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
56
- result="hardAlpha" />
57
- <feOffset dy="0.5" />
58
- <feGaussianBlur stdDeviation="0.5" />
59
- <feComposite in2="hardAlpha" operator="out" />
60
- <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12 0" />
61
- <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1" />
62
- <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape" />
63
- </filter>
64
- <filter id="filter2_d_0_1" x="11.6357" y="9.60596" width="7.05267" height="29.7894" filterUnits="userSpaceOnUse"
65
- color-interpolation-filters="sRGB">
66
- <feFlood flood-opacity="0" result="BackgroundImageFix" />
67
- <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
68
- result="hardAlpha" />
69
- <feOffset dy="0.5" />
70
- <feGaussianBlur stdDeviation="0.5" />
71
- <feComposite in2="hardAlpha" operator="out" />
72
- <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12 0" />
73
- <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1" />
74
- <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape" />
75
- </filter>
76
- <filter id="filter3_d_0_1" x="21.1133" y="19.709" width="7.05261" height="19.6842" filterUnits="userSpaceOnUse"
77
- color-interpolation-filters="sRGB">
78
- <feFlood flood-opacity="0" result="BackgroundImageFix" />
79
- <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
80
- result="hardAlpha" />
81
- <feOffset dy="0.5" />
82
- <feGaussianBlur stdDeviation="0.5" />
83
- <feComposite in2="hardAlpha" operator="out" />
84
- <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12 0" />
85
- <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1" />
86
- <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape" />
87
- </filter>
88
- <filter id="filter4_d_0_1" x="30.582" y="13.3926" width="7.05261" height="26" filterUnits="userSpaceOnUse"
89
- color-interpolation-filters="sRGB">
90
- <feFlood flood-opacity="0" result="BackgroundImageFix" />
91
- <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
92
- result="hardAlpha" />
93
- <feOffset dy="0.5" />
94
- <feGaussianBlur stdDeviation="0.5" />
95
- <feComposite in2="hardAlpha" operator="out" />
96
- <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12 0" />
97
- <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1" />
98
- <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape" />
99
- </filter>
100
- </defs>
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path
3
+ d="M0 12.6316C0 5.65535 5.65535 0 12.6316 0H35.3684C42.3446 0 48 5.65535 48 12.6316V35.3684C48 42.3446 42.3446 48 35.3684 48H12.6316C5.65535 48 0 42.3446 0 35.3684V12.6316Z"
4
+ fill="#465FFF" />
5
+ <path
6
+ d="M0 12.6316C0 5.65535 5.65535 0 12.6316 0H35.3684C42.3446 0 48 5.65535 48 12.6316V35.3684C48 42.3446 42.3446 48 35.3684 48H12.6316C5.65535 48 0 42.3446 0 35.3684V12.6316Z"
7
+ fill="#465FFF" />
8
+ <g filter="url(#filter0_d_0_1)">
9
+ <path
10
+ d="M12.6357 12.6323C12.6357 11.237 13.7668 10.106 15.162 10.106C16.5573 10.106 17.6884 11.237 17.6884 12.6323V35.3691C17.6884 36.7644 16.5573 37.8954 15.162 37.8954C13.7668 37.8954 12.6357 36.7644 12.6357 35.3691V12.6323Z"
11
+ fill="white" />
12
+ </g>
13
+ <g filter="url(#filter1_d_0_1)">
14
+ <path
15
+ d="M22.1133 22.7353C22.1133 21.3401 23.2443 20.209 24.6396 20.209C26.0348 20.209 27.1659 21.3401 27.1659 22.7353V35.3669C27.1659 36.7621 26.0348 37.8932 24.6396 37.8932C23.2443 37.8932 22.1133 36.7621 22.1133 35.3669V22.7353Z"
16
+ fill="white" fill-opacity="0.9" />
17
+ </g>
18
+ <path
19
+ d="M0 12.6316C0 5.65535 5.65535 0 12.6316 0H35.3684C42.3446 0 48 5.65535 48 12.6316V35.3684C48 42.3446 42.3446 48 35.3684 48H12.6316C5.65535 48 0 42.3446 0 35.3684V12.6316Z"
20
+ fill="#465FFF" />
21
+ <path
22
+ d="M0 12.6316C0 5.65535 5.65535 0 12.6316 0H35.3684C42.3446 0 48 5.65535 48 12.6316V35.3684C48 42.3446 42.3446 48 35.3684 48H12.6316C5.65535 48 0 42.3446 0 35.3684V12.6316Z"
23
+ fill="#465FFF" />
24
+ <g filter="url(#filter2_d_0_1)">
25
+ <path
26
+ d="M12.6357 12.6323C12.6357 11.237 13.7668 10.106 15.162 10.106C16.5573 10.106 17.6884 11.237 17.6884 12.6323V35.3691C17.6884 36.7644 16.5573 37.8954 15.162 37.8954C13.7668 37.8954 12.6357 36.7644 12.6357 35.3691V12.6323Z"
27
+ fill="white" />
28
+ </g>
29
+ <g filter="url(#filter3_d_0_1)">
30
+ <path
31
+ d="M22.1133 22.7353C22.1133 21.3401 23.2443 20.209 24.6396 20.209C26.0348 20.209 27.1659 21.3401 27.1659 22.7353V35.3669C27.1659 36.7621 26.0348 37.8932 24.6396 37.8932C23.2443 37.8932 22.1133 36.7621 22.1133 35.3669V22.7353Z"
32
+ fill="white" fill-opacity="0.9" />
33
+ </g>
34
+ <g filter="url(#filter4_d_0_1)">
35
+ <path
36
+ d="M31.582 16.4189C31.582 15.0236 32.7131 13.8926 34.1083 13.8926C35.5036 13.8926 36.6346 15.0236 36.6346 16.4189V35.3663C36.6346 36.7615 35.5036 37.8926 34.1083 37.8926C32.7131 37.8926 31.582 36.7615 31.582 35.3663V16.4189Z"
37
+ fill="white" fill-opacity="0.7" />
38
+ </g>
39
+ <defs>
40
+ <filter id="filter0_d_0_1" x="11.6357" y="9.60596" width="7.05267" height="29.7894" filterUnits="userSpaceOnUse"
41
+ color-interpolation-filters="sRGB">
42
+ <feFlood flood-opacity="0" result="BackgroundImageFix" />
43
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
44
+ result="hardAlpha" />
45
+ <feOffset dy="0.5" />
46
+ <feGaussianBlur stdDeviation="0.5" />
47
+ <feComposite in2="hardAlpha" operator="out" />
48
+ <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12 0" />
49
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1" />
50
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape" />
51
+ </filter>
52
+ <filter id="filter1_d_0_1" x="21.1133" y="19.709" width="7.05261" height="19.6842" filterUnits="userSpaceOnUse"
53
+ color-interpolation-filters="sRGB">
54
+ <feFlood flood-opacity="0" result="BackgroundImageFix" />
55
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
56
+ result="hardAlpha" />
57
+ <feOffset dy="0.5" />
58
+ <feGaussianBlur stdDeviation="0.5" />
59
+ <feComposite in2="hardAlpha" operator="out" />
60
+ <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12 0" />
61
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1" />
62
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape" />
63
+ </filter>
64
+ <filter id="filter2_d_0_1" x="11.6357" y="9.60596" width="7.05267" height="29.7894" filterUnits="userSpaceOnUse"
65
+ color-interpolation-filters="sRGB">
66
+ <feFlood flood-opacity="0" result="BackgroundImageFix" />
67
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
68
+ result="hardAlpha" />
69
+ <feOffset dy="0.5" />
70
+ <feGaussianBlur stdDeviation="0.5" />
71
+ <feComposite in2="hardAlpha" operator="out" />
72
+ <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12 0" />
73
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1" />
74
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape" />
75
+ </filter>
76
+ <filter id="filter3_d_0_1" x="21.1133" y="19.709" width="7.05261" height="19.6842" filterUnits="userSpaceOnUse"
77
+ color-interpolation-filters="sRGB">
78
+ <feFlood flood-opacity="0" result="BackgroundImageFix" />
79
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
80
+ result="hardAlpha" />
81
+ <feOffset dy="0.5" />
82
+ <feGaussianBlur stdDeviation="0.5" />
83
+ <feComposite in2="hardAlpha" operator="out" />
84
+ <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12 0" />
85
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1" />
86
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape" />
87
+ </filter>
88
+ <filter id="filter4_d_0_1" x="30.582" y="13.3926" width="7.05261" height="26" filterUnits="userSpaceOnUse"
89
+ color-interpolation-filters="sRGB">
90
+ <feFlood flood-opacity="0" result="BackgroundImageFix" />
91
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
92
+ result="hardAlpha" />
93
+ <feOffset dy="0.5" />
94
+ <feGaussianBlur stdDeviation="0.5" />
95
+ <feComposite in2="hardAlpha" operator="out" />
96
+ <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12 0" />
97
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1" />
98
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape" />
99
+ </filter>
100
+ </defs>
101
101
  </svg>