@oussemasahbeni/keycloakify-login-shadcn 250004.0.3 → 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.
- package/keycloak-theme/components/langauges.tsx +1 -1
- package/keycloak-theme/components/theme-toggle.tsx +0 -1
- package/keycloak-theme/components/ui/alert.tsx +1 -2
- package/keycloak-theme/components/ui/button.tsx +1 -2
- package/keycloak-theme/components/ui/card.tsx +0 -1
- package/keycloak-theme/components/ui/checkbox.tsx +0 -1
- package/keycloak-theme/components/ui/dropdown-menu.tsx +14 -4
- package/keycloak-theme/components/ui/field.tsx +0 -1
- package/keycloak-theme/components/ui/input-otp.tsx +0 -1
- package/keycloak-theme/components/ui/input.tsx +0 -1
- package/keycloak-theme/components/ui/label.tsx +1 -2
- package/keycloak-theme/components/ui/radio-group.tsx +0 -1
- package/keycloak-theme/components/ui/select.tsx +12 -4
- package/keycloak-theme/components/ui/separator.tsx +0 -1
- package/keycloak-theme/components/ui/tooltip.tsx +0 -1
- package/keycloak-theme/login/KcContext.ts +23 -23
- package/keycloak-theme/login/KcPage.tsx +45 -47
- package/keycloak-theme/login/assets/img/auth-logo.svg +100 -100
- package/keycloak-theme/login/assets/img/shape.svg +71 -71
- package/keycloak-theme/login/components/LogoutOtherSessions.tsx +24 -26
- package/keycloak-theme/login/components/PasswordWrapper.tsx +35 -35
- package/keycloak-theme/login/components/Template/Template.tsx +279 -227
- package/keycloak-theme/login/components/Template/index.ts +1 -1
- package/keycloak-theme/login/components/Template/useInitializeTemplate.ts +61 -61
- package/keycloak-theme/login/components/UserProfileFormFields/AddRemoveButtonsMultiValuedAttribute.tsx +65 -61
- package/keycloak-theme/login/components/UserProfileFormFields/DO_MAKE_USER_CONFIRM_PASSWORD.ts +2 -2
- package/keycloak-theme/login/components/UserProfileFormFields/FieldErrors.tsx +33 -29
- package/keycloak-theme/login/components/UserProfileFormFields/GroupLabel.tsx +90 -71
- package/keycloak-theme/login/components/UserProfileFormFields/InputFieldByType.tsx +66 -59
- package/keycloak-theme/login/components/UserProfileFormFields/InputLabel.tsx +0 -1
- package/keycloak-theme/login/components/UserProfileFormFields/InputTag.tsx +133 -116
- package/keycloak-theme/login/components/UserProfileFormFields/InputTagSelects.tsx +150 -136
- package/keycloak-theme/login/components/UserProfileFormFields/SelectTag.tsx +135 -114
- package/keycloak-theme/login/components/UserProfileFormFields/TextareaTag.tsx +55 -43
- package/keycloak-theme/login/components/UserProfileFormFields/UserProfileFormFields.tsx +133 -127
- package/keycloak-theme/login/components/UserProfileFormFields/index.ts +1 -1
- package/keycloak-theme/login/i18n.ts +47 -47
- package/keycloak-theme/login/mocks/KcPageStory.tsx +6 -2
- package/keycloak-theme/login/mocks/getKcContextMock.ts +22 -22
- package/keycloak-theme/login/pages/PageIndex.tsx +130 -134
- package/keycloak-theme/login/pages/code/Page.stories.tsx +57 -70
- package/keycloak-theme/login/pages/code/Page.tsx +89 -89
- package/keycloak-theme/login/pages/code/index.ts +3 -3
- package/keycloak-theme/login/pages/delete-account-confirm/Page.stories.tsx +37 -46
- package/keycloak-theme/login/pages/delete-account-confirm/Page.tsx +60 -63
- package/keycloak-theme/login/pages/delete-account-confirm/index.ts +3 -3
- package/keycloak-theme/login/pages/delete-credential/Page.stories.tsx +25 -30
- package/keycloak-theme/login/pages/delete-credential/Page.tsx +56 -51
- package/keycloak-theme/login/pages/delete-credential/index.ts +3 -3
- package/keycloak-theme/login/pages/error/Page.stories.tsx +46 -58
- package/keycloak-theme/login/pages/error/Page.tsx +43 -42
- package/keycloak-theme/login/pages/error/index.ts +3 -3
- package/keycloak-theme/login/pages/frontchannel-logout/Page.stories.tsx +25 -32
- package/keycloak-theme/login/pages/frontchannel-logout/Page.tsx +82 -84
- package/keycloak-theme/login/pages/frontchannel-logout/index.ts +3 -3
- package/keycloak-theme/login/pages/idp-review-user-profile/Page.stories.tsx +46 -59
- package/keycloak-theme/login/pages/idp-review-user-profile/Page.tsx +49 -52
- package/keycloak-theme/login/pages/idp-review-user-profile/index.ts +3 -3
- package/keycloak-theme/login/pages/info/Page.stories.tsx +50 -60
- package/keycloak-theme/login/pages/info/Page.tsx +94 -92
- package/keycloak-theme/login/pages/link-idp-action/Page.stories.tsx +32 -16
- package/keycloak-theme/login/pages/link-idp-action/Page.tsx +45 -43
- package/keycloak-theme/login/pages/link-idp-action/index.ts +3 -3
- package/keycloak-theme/login/pages/login/Form.tsx +242 -242
- package/keycloak-theme/login/pages/login/Info.tsx +29 -29
- package/keycloak-theme/login/pages/login/Page.stories.tsx +346 -365
- package/keycloak-theme/login/pages/login/Page.tsx +43 -44
- package/keycloak-theme/login/pages/login/SocialProviders.tsx +93 -107
- package/keycloak-theme/login/pages/login/index.ts +3 -3
- package/keycloak-theme/login/pages/login/providers/apple.svg +3 -3
- package/keycloak-theme/login/pages/login/providers/bitbucket.svg +11 -11
- package/keycloak-theme/login/pages/login/providers/discord.svg +4 -4
- package/keycloak-theme/login/pages/login/providers/facebook.svg +5 -5
- package/keycloak-theme/login/pages/login/providers/github.svg +3 -3
- package/keycloak-theme/login/pages/login/providers/gitlab.svg +7 -7
- package/keycloak-theme/login/pages/login/providers/google.svg +7 -7
- package/keycloak-theme/login/pages/login/providers/instagram.svg +31 -31
- package/keycloak-theme/login/pages/login/providers/linkedin.svg +3 -3
- package/keycloak-theme/login/pages/login/providers/microsoft.svg +6 -6
- package/keycloak-theme/login/pages/login/providers/oidc.svg +5 -5
- package/keycloak-theme/login/pages/login/providers/openshift.svg +7 -7
- package/keycloak-theme/login/pages/login/providers/paypal.svg +6 -6
- package/keycloak-theme/login/pages/login/providers/slack.svg +11 -11
- package/keycloak-theme/login/pages/login/providers/stackoverflow.svg +5 -5
- package/keycloak-theme/login/pages/login/providers/x.svg +3 -3
- package/keycloak-theme/login/pages/login/useProviderLogos.tsx +39 -39
- package/keycloak-theme/login/pages/login/useScript.tsx +62 -62
- package/keycloak-theme/login/pages/login-config-totp/Page.stories.tsx +45 -60
- package/keycloak-theme/login/pages/login-config-totp/Page.tsx +253 -240
- package/keycloak-theme/login/pages/login-config-totp/index.ts +3 -3
- package/keycloak-theme/login/pages/login-idp-link-confirm/Page.stories.tsx +30 -35
- package/keycloak-theme/login/pages/login-idp-link-confirm/Page.tsx +40 -43
- package/keycloak-theme/login/pages/login-idp-link-confirm/index.ts +3 -3
- package/keycloak-theme/login/pages/login-idp-link-confirm-override/Page.stories.tsx +16 -23
- package/keycloak-theme/login/pages/login-idp-link-confirm-override/Page.tsx +44 -47
- package/keycloak-theme/login/pages/login-idp-link-confirm-override/index.ts +3 -3
- package/keycloak-theme/login/pages/login-idp-link-email/Page.stories.tsx +54 -63
- package/keycloak-theme/login/pages/login-idp-link-email/Page.tsx +51 -54
- package/keycloak-theme/login/pages/login-idp-link-email/index.ts +3 -3
- package/keycloak-theme/login/pages/login-oauth-grant/Page.stories.tsx +39 -45
- package/keycloak-theme/login/pages/login-oauth-grant/Page.tsx +136 -126
- package/keycloak-theme/login/pages/login-oauth-grant/index.ts +3 -3
- package/keycloak-theme/login/pages/login-oauth2-device-verify-user-code/Page.stories.tsx +38 -48
- package/keycloak-theme/login/pages/login-oauth2-device-verify-user-code/Page.tsx +56 -58
- package/keycloak-theme/login/pages/login-oauth2-device-verify-user-code/index.ts +3 -3
- package/keycloak-theme/login/pages/login-otp/Page.stories.tsx +82 -97
- package/keycloak-theme/login/pages/login-otp/Page.tsx +117 -108
- package/keycloak-theme/login/pages/login-otp/index.ts +3 -3
- package/keycloak-theme/login/pages/login-page-expired/Page.stories.tsx +28 -37
- package/keycloak-theme/login/pages/login-page-expired/Page.tsx +45 -47
- package/keycloak-theme/login/pages/login-page-expired/index.ts +3 -3
- package/keycloak-theme/login/pages/login-passkeys-conditional-authenticate/Page.stories.tsx +20 -0
- package/keycloak-theme/login/pages/login-passkeys-conditional-authenticate/Page.tsx +290 -233
- package/keycloak-theme/login/pages/login-passkeys-conditional-authenticate/index.ts +3 -3
- package/keycloak-theme/login/pages/login-passkeys-conditional-authenticate/useScript.tsx +63 -63
- package/keycloak-theme/login/pages/login-password/Page.stories.tsx +55 -56
- package/keycloak-theme/login/pages/login-password/Page.tsx +148 -149
- package/keycloak-theme/login/pages/login-password/index.ts +3 -3
- package/keycloak-theme/login/pages/login-password/useScript.tsx +62 -63
- package/keycloak-theme/login/pages/login-recovery-authn-code-config/Page.stories.tsx +28 -36
- package/keycloak-theme/login/pages/login-recovery-authn-code-config/Page.tsx +178 -181
- package/keycloak-theme/login/pages/login-recovery-authn-code-config/index.ts +3 -3
- package/keycloak-theme/login/pages/login-recovery-authn-code-config/useScript.tsx +145 -145
- package/keycloak-theme/login/pages/login-recovery-authn-code-input/Page.stories.tsx +16 -22
- package/keycloak-theme/login/pages/login-recovery-authn-code-input/Page.tsx +69 -70
- package/keycloak-theme/login/pages/login-recovery-authn-code-input/index.ts +3 -3
- package/keycloak-theme/login/pages/login-reset-otp/Page.stories.tsx +62 -75
- package/keycloak-theme/login/pages/login-reset-otp/Page.tsx +85 -86
- package/keycloak-theme/login/pages/login-reset-otp/index.ts +3 -3
- package/keycloak-theme/login/pages/login-reset-password/Form.tsx +67 -68
- package/keycloak-theme/login/pages/login-reset-password/Page.stories.tsx +44 -55
- package/keycloak-theme/login/pages/login-reset-password/Page.tsx +27 -27
- package/keycloak-theme/login/pages/login-reset-password/index.ts +3 -3
- package/keycloak-theme/login/pages/login-update-password/Page.stories.tsx +40 -51
- package/keycloak-theme/login/pages/login-update-password/Page.tsx +109 -111
- package/keycloak-theme/login/pages/login-update-password/index.ts +3 -3
- package/keycloak-theme/login/pages/login-update-profile/Page.stories.tsx +28 -37
- package/keycloak-theme/login/pages/login-update-profile/Page.tsx +67 -68
- package/keycloak-theme/login/pages/login-update-profile/index.ts +3 -3
- package/keycloak-theme/login/pages/login-username/Page.stories.tsx +32 -43
- package/keycloak-theme/login/pages/login-username/Page.tsx +246 -246
- package/keycloak-theme/login/pages/login-username/index.ts +3 -3
- package/keycloak-theme/login/pages/login-username/useScript.tsx +62 -62
- package/keycloak-theme/login/pages/login-verify-email/Page.stories.tsx +68 -81
- package/keycloak-theme/login/pages/login-verify-email/Page.tsx +37 -38
- package/keycloak-theme/login/pages/login-verify-email/index.ts +3 -3
- package/keycloak-theme/login/pages/login-x509-info/Page.stories.tsx +29 -38
- package/keycloak-theme/login/pages/login-x509-info/Page.tsx +72 -75
- package/keycloak-theme/login/pages/login-x509-info/index.ts +3 -3
- package/keycloak-theme/login/pages/logout-confirm/Page.stories.tsx +34 -43
- package/keycloak-theme/login/pages/logout-confirm/Page.tsx +50 -53
- package/keycloak-theme/login/pages/logout-confirm/index.ts +3 -3
- package/keycloak-theme/login/pages/register/Form.tsx +107 -106
- package/keycloak-theme/login/pages/register/Page.stories.tsx +40 -14
- package/keycloak-theme/login/pages/register/Page.tsx +26 -26
- package/keycloak-theme/login/pages/register/TermsAcceptance.tsx +55 -56
- package/keycloak-theme/login/pages/register/index.ts +3 -3
- package/keycloak-theme/login/pages/saml-post-form/Page.stories.tsx +16 -23
- package/keycloak-theme/login/pages/saml-post-form/Page.tsx +64 -66
- package/keycloak-theme/login/pages/saml-post-form/index.ts +3 -3
- package/keycloak-theme/login/pages/select-authenticator/Page.stories.tsx +83 -96
- package/keycloak-theme/login/pages/select-authenticator/Page.tsx +97 -100
- package/keycloak-theme/login/pages/select-authenticator/index.ts +3 -3
- package/keycloak-theme/login/pages/select-organization/Page.stories.tsx +62 -49
- package/keycloak-theme/login/pages/select-organization/Page.tsx +123 -126
- package/keycloak-theme/login/pages/select-organization/index.ts +3 -3
- package/keycloak-theme/login/pages/terms/Page.stories.tsx +15 -0
- package/keycloak-theme/login/pages/terms/Page.tsx +49 -51
- package/keycloak-theme/login/pages/terms/index.ts +3 -3
- package/keycloak-theme/login/pages/update-email/Page.stories.tsx +27 -36
- package/keycloak-theme/login/pages/update-email/Page.tsx +61 -62
- package/keycloak-theme/login/pages/update-email/index.ts +3 -3
- package/keycloak-theme/login/pages/webauthn-authenticate/Page.stories.tsx +112 -127
- package/keycloak-theme/login/pages/webauthn-authenticate/Page.tsx +206 -202
- package/keycloak-theme/login/pages/webauthn-authenticate/index.ts +3 -3
- package/keycloak-theme/login/pages/webauthn-authenticate/useScript.tsx +55 -55
- package/keycloak-theme/login/pages/webauthn-error/Page.stories.tsx +52 -67
- package/keycloak-theme/login/pages/webauthn-error/Page.tsx +70 -73
- package/keycloak-theme/login/pages/webauthn-error/index.ts +3 -3
- package/keycloak-theme/login/pages/webauthn-register/Page.stories.tsx +39 -50
- package/keycloak-theme/login/pages/webauthn-register/Page.tsx +78 -78
- package/keycloak-theme/login/pages/webauthn-register/index.ts +3 -3
- package/keycloak-theme/login/pages/webauthn-register/useScript.tsx +62 -62
- package/keycloak-theme/login/shared/getColorScheme.ts +45 -45
- package/keycloak-theme/login/styleLevelCustomization.tsx +34 -36
- package/keycloak-theme/public/site.webmanifest +11 -1
- package/package.json +6 -2
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
DropdownMenuItem,
|
|
5
5
|
DropdownMenuTrigger
|
|
6
6
|
} from "@/components/ui/dropdown-menu";
|
|
7
|
-
import { useI18n } from
|
|
7
|
+
import { useI18n } from "@/login/i18n";
|
|
8
8
|
import { IoCheckmark, IoLanguage } from "react-icons/io5";
|
|
9
9
|
import { Button } from "./ui/button";
|
|
10
10
|
|
|
@@ -17,7 +17,6 @@ export function ModeToggle() {
|
|
|
17
17
|
<Button variant="outline" size="icon" onClick={toggleTheme}>
|
|
18
18
|
<Sun className="h-[1.2rem] w-[1.2rem] rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0" />
|
|
19
19
|
<Moon className="absolute h-[1.2rem] w-[1.2rem] rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100" />
|
|
20
|
-
<span className="sr-only">Toggle theme</span>
|
|
21
20
|
</Button>
|
|
22
21
|
);
|
|
23
22
|
}
|
|
@@ -27,7 +27,7 @@ const alertVariants = cva(
|
|
|
27
27
|
const Alert = React.forwardRef<
|
|
28
28
|
HTMLDivElement,
|
|
29
29
|
React.HTMLAttributes<HTMLDivElement> &
|
|
30
|
-
|
|
30
|
+
VariantProps<typeof alertVariants> & { showIcon?: boolean }
|
|
31
31
|
>(({ className, showIcon = true, variant, ...props }, ref) => (
|
|
32
32
|
<div
|
|
33
33
|
ref={ref}
|
|
@@ -79,4 +79,3 @@ const AlertDescription = React.forwardRef<
|
|
|
79
79
|
AlertDescription.displayName = "AlertDescription";
|
|
80
80
|
|
|
81
81
|
export { Alert, AlertDescription, AlertTitle };
|
|
82
|
-
|
|
@@ -35,7 +35,7 @@ const buttonVariants = cva(
|
|
|
35
35
|
|
|
36
36
|
export interface ButtonProps
|
|
37
37
|
extends React.ButtonHTMLAttributes<HTMLButtonElement>,
|
|
38
|
-
|
|
38
|
+
VariantProps<typeof buttonVariants> {
|
|
39
39
|
asChild?: boolean;
|
|
40
40
|
}
|
|
41
41
|
|
|
@@ -54,4 +54,3 @@ const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
|
|
|
54
54
|
Button.displayName = "Button";
|
|
55
55
|
|
|
56
56
|
export { Button, buttonVariants };
|
|
57
|
-
|
|
@@ -174,9 +174,19 @@ const DropdownMenuShortcut = ({
|
|
|
174
174
|
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
175
175
|
|
|
176
176
|
export {
|
|
177
|
-
DropdownMenu,
|
|
178
|
-
|
|
177
|
+
DropdownMenu,
|
|
178
|
+
DropdownMenuCheckboxItem,
|
|
179
|
+
DropdownMenuContent,
|
|
180
|
+
DropdownMenuGroup,
|
|
181
|
+
DropdownMenuItem,
|
|
182
|
+
DropdownMenuLabel,
|
|
183
|
+
DropdownMenuPortal,
|
|
184
|
+
DropdownMenuRadioGroup,
|
|
185
|
+
DropdownMenuRadioItem,
|
|
186
|
+
DropdownMenuSeparator,
|
|
187
|
+
DropdownMenuShortcut,
|
|
188
|
+
DropdownMenuSub,
|
|
179
189
|
DropdownMenuSubContent,
|
|
180
|
-
DropdownMenuSubTrigger,
|
|
190
|
+
DropdownMenuSubTrigger,
|
|
191
|
+
DropdownMenuTrigger
|
|
181
192
|
};
|
|
182
|
-
|
|
@@ -11,7 +11,7 @@ const labelVariants = cva(
|
|
|
11
11
|
const Label = React.forwardRef<
|
|
12
12
|
React.ElementRef<typeof LabelPrimitive.Root>,
|
|
13
13
|
React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &
|
|
14
|
-
|
|
14
|
+
VariantProps<typeof labelVariants>
|
|
15
15
|
>(({ className, ...props }, ref) => (
|
|
16
16
|
<LabelPrimitive.Root
|
|
17
17
|
ref={ref}
|
|
@@ -22,4 +22,3 @@ const Label = React.forwardRef<
|
|
|
22
22
|
Label.displayName = LabelPrimitive.Root.displayName;
|
|
23
23
|
|
|
24
24
|
export { Label };
|
|
25
|
-
|
|
@@ -68,7 +68,7 @@ const SelectContent = React.forwardRef<
|
|
|
68
68
|
className={cn(
|
|
69
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
|
|
73
73
|
)}
|
|
74
74
|
position={position}
|
|
@@ -79,7 +79,7 @@ const SelectContent = React.forwardRef<
|
|
|
79
79
|
className={cn(
|
|
80
80
|
"p-1",
|
|
81
81
|
position === "popper" &&
|
|
82
|
-
|
|
82
|
+
"h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width)"
|
|
83
83
|
)}
|
|
84
84
|
>
|
|
85
85
|
{children}
|
|
@@ -137,6 +137,14 @@ const SelectSeparator = React.forwardRef<
|
|
|
137
137
|
SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
|
|
138
138
|
|
|
139
139
|
export {
|
|
140
|
-
Select,
|
|
140
|
+
Select,
|
|
141
|
+
SelectContent,
|
|
142
|
+
SelectGroup,
|
|
143
|
+
SelectItem,
|
|
144
|
+
SelectLabel,
|
|
145
|
+
SelectScrollDownButton,
|
|
146
|
+
SelectScrollUpButton,
|
|
147
|
+
SelectSeparator,
|
|
148
|
+
SelectTrigger,
|
|
149
|
+
SelectValue
|
|
141
150
|
};
|
|
142
|
-
|
|
@@ -1,23 +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
|
-
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
|
+
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,47 +1,45 @@
|
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
);
|
|
47
|
-
}
|
|
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
|
+
export default function KcPage(props: { kcContext: KcContext }) {
|
|
12
|
+
const { kcContext } = props;
|
|
13
|
+
|
|
14
|
+
return (
|
|
15
|
+
<KcContextProvider kcContext={kcContext}>
|
|
16
|
+
<I18nProvider kcContext={kcContext}>
|
|
17
|
+
<StyleLevelCustomization>
|
|
18
|
+
<PageIndex />
|
|
19
|
+
</StyleLevelCustomization>
|
|
20
|
+
</I18nProvider>
|
|
21
|
+
</KcContextProvider>
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function StyleLevelCustomization(props: { children: ReactNode }) {
|
|
26
|
+
const { children } = props;
|
|
27
|
+
|
|
28
|
+
const { doUseDefaultCss, classes, loadCustomStylesheet, Provider } =
|
|
29
|
+
useStyleLevelCustomization();
|
|
30
|
+
|
|
31
|
+
useExclusiveAppInstanceEffect({
|
|
32
|
+
effectId: "loadCustomStylesheet",
|
|
33
|
+
isEnabled: loadCustomStylesheet !== undefined,
|
|
34
|
+
effect: () => {
|
|
35
|
+
assert(loadCustomStylesheet !== undefined);
|
|
36
|
+
loadCustomStylesheet();
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
return (
|
|
41
|
+
<KcClsxProvider doUseDefaultCss={doUseDefaultCss} classes={classes}>
|
|
42
|
+
{Provider === undefined ? children : <Provider>{children}</Provider>}
|
|
43
|
+
</KcClsxProvider>
|
|
44
|
+
);
|
|
45
|
+
}
|
|
@@ -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>
|