@ipulsehq/auth-ui 1.3.2
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/README.md +35 -0
- package/dist/AuthError.d.ts +14 -0
- package/dist/AuthError.d.ts.map +1 -0
- package/dist/AuthError.js +92 -0
- package/dist/AuthError.js.map +1 -0
- package/dist/AuthLayout.d.ts +18 -0
- package/dist/AuthLayout.d.ts.map +1 -0
- package/dist/AuthLayout.js +72 -0
- package/dist/AuthLayout.js.map +1 -0
- package/dist/IPulseClientAuthError.d.ts +21 -0
- package/dist/IPulseClientAuthError.d.ts.map +1 -0
- package/dist/IPulseClientAuthError.js +48 -0
- package/dist/IPulseClientAuthError.js.map +1 -0
- package/dist/IPulseRedirectSignIn.d.ts +21 -0
- package/dist/IPulseRedirectSignIn.d.ts.map +1 -0
- package/dist/IPulseRedirectSignIn.js +65 -0
- package/dist/IPulseRedirectSignIn.js.map +1 -0
- package/dist/SignIn.d.ts +24 -0
- package/dist/SignIn.d.ts.map +1 -0
- package/dist/SignIn.js +132 -0
- package/dist/SignIn.js.map +1 -0
- package/dist/SignUp.d.ts +26 -0
- package/dist/SignUp.d.ts.map +1 -0
- package/dist/SignUp.js +96 -0
- package/dist/SignUp.js.map +1 -0
- package/dist/UserButton.d.ts +24 -0
- package/dist/UserButton.d.ts.map +1 -0
- package/dist/UserButton.js +141 -0
- package/dist/UserButton.js.map +1 -0
- package/dist/VerifyRequest.d.ts +11 -0
- package/dist/VerifyRequest.d.ts.map +1 -0
- package/dist/VerifyRequest.js +73 -0
- package/dist/VerifyRequest.js.map +1 -0
- package/dist/auth-config.d.ts +63 -0
- package/dist/auth-config.d.ts.map +1 -0
- package/dist/auth-config.js +234 -0
- package/dist/auth-config.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +45 -0
- package/dist/index.js.map +1 -0
- package/dist/shared/AuthAlert.d.ts +11 -0
- package/dist/shared/AuthAlert.d.ts.map +1 -0
- package/dist/shared/AuthAlert.js +34 -0
- package/dist/shared/AuthAlert.js.map +1 -0
- package/dist/shared/AuthButton.d.ts +20 -0
- package/dist/shared/AuthButton.d.ts.map +1 -0
- package/dist/shared/AuthButton.js +84 -0
- package/dist/shared/AuthButton.js.map +1 -0
- package/dist/shared/AuthCard.d.ts +12 -0
- package/dist/shared/AuthCard.d.ts.map +1 -0
- package/dist/shared/AuthCard.js +30 -0
- package/dist/shared/AuthCard.js.map +1 -0
- package/dist/shared/AuthDivider.d.ts +10 -0
- package/dist/shared/AuthDivider.d.ts.map +1 -0
- package/dist/shared/AuthDivider.js +17 -0
- package/dist/shared/AuthDivider.js.map +1 -0
- package/dist/shared/AuthEmailInput.d.ts +17 -0
- package/dist/shared/AuthEmailInput.d.ts.map +1 -0
- package/dist/shared/AuthEmailInput.js +81 -0
- package/dist/shared/AuthEmailInput.js.map +1 -0
- package/dist/shared/AuthFooter.d.ts +14 -0
- package/dist/shared/AuthFooter.d.ts.map +1 -0
- package/dist/shared/AuthFooter.js +21 -0
- package/dist/shared/AuthFooter.js.map +1 -0
- package/dist/shared/AuthHeader.d.ts +13 -0
- package/dist/shared/AuthHeader.d.ts.map +1 -0
- package/dist/shared/AuthHeader.js +38 -0
- package/dist/shared/AuthHeader.js.map +1 -0
- package/dist/shared/AuthTextInput.d.ts +19 -0
- package/dist/shared/AuthTextInput.d.ts.map +1 -0
- package/dist/shared/AuthTextInput.js +81 -0
- package/dist/shared/AuthTextInput.js.map +1 -0
- package/dist/shared/styles.d.ts +6 -0
- package/dist/shared/styles.d.ts.map +1 -0
- package/dist/shared/styles.js +21 -0
- package/dist/shared/styles.js.map +1 -0
- package/dist/types.d.ts +119 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +32 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +50 -0
- package/dist/utils.js.map +1 -0
- package/package.json +42 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SignIn.js","sourceRoot":"","sources":["../src/SignIn.tsx"],"names":[],"mappings":"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"}
|
package/dist/SignUp.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { AuthBranding, AuthTranslations } from './types';
|
|
3
|
+
export interface SignUpProps {
|
|
4
|
+
/** Called with name + email when user submits */
|
|
5
|
+
onEmailSubmit?: (email: string, name?: string) => void | Promise<void>;
|
|
6
|
+
/** Called when user clicks passkey button */
|
|
7
|
+
onPasskeyClick?: () => void | Promise<void>;
|
|
8
|
+
/** Whether auth is in progress */
|
|
9
|
+
isLoading?: boolean;
|
|
10
|
+
/** Custom branding */
|
|
11
|
+
branding?: AuthBranding;
|
|
12
|
+
/** Custom translations / labels */
|
|
13
|
+
translations?: AuthTranslations['signUp'];
|
|
14
|
+
/** URL to the sign-in page */
|
|
15
|
+
signInUrl?: string;
|
|
16
|
+
/** Error message to display */
|
|
17
|
+
error?: string | null;
|
|
18
|
+
/** Success message */
|
|
19
|
+
success?: string | null;
|
|
20
|
+
/** Show name field (default: true) */
|
|
21
|
+
showNameField?: boolean;
|
|
22
|
+
/** Pre-filled email (e.g. from sign-in redirect when account doesn't exist) */
|
|
23
|
+
initialEmail?: string;
|
|
24
|
+
}
|
|
25
|
+
export declare const SignUp: React.FC<SignUpProps>;
|
|
26
|
+
//# sourceMappingURL=SignUp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SignUp.d.ts","sourceRoot":"","sources":["../src/SignUp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAW9D,MAAM,WAAW,WAAW;IACxB,iDAAiD;IACjD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,6CAA6C;IAC7C,cAAc,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,kCAAkC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,mCAAmC;IACnC,YAAY,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC1C,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,sBAAsB;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,sCAAsC;IACtC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAqBD,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA6HxC,CAAC"}
|
package/dist/SignUp.js
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.SignUp = void 0;
|
|
37
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
38
|
+
const React = __importStar(require("react"));
|
|
39
|
+
const lucide_react_1 = require("lucide-react");
|
|
40
|
+
const AuthCard_1 = require("./shared/AuthCard");
|
|
41
|
+
const AuthAlert_1 = require("./shared/AuthAlert");
|
|
42
|
+
const AuthHeader_1 = require("./shared/AuthHeader");
|
|
43
|
+
const AuthFooter_1 = require("./shared/AuthFooter");
|
|
44
|
+
const AuthEmailInput_1 = require("./shared/AuthEmailInput");
|
|
45
|
+
const AuthTextInput_1 = require("./shared/AuthTextInput");
|
|
46
|
+
const AuthDivider_1 = require("./shared/AuthDivider");
|
|
47
|
+
const AuthButton_1 = require("./shared/AuthButton");
|
|
48
|
+
const utils_1 = require("./utils");
|
|
49
|
+
const DEFAULTS = {
|
|
50
|
+
title: 'Account aanmaken',
|
|
51
|
+
subtitle: 'Maak een gratis iPulse account aan',
|
|
52
|
+
nameLabel: 'Naam',
|
|
53
|
+
namePlaceholder: 'Voornaam achternaam',
|
|
54
|
+
emailLabel: 'E-mailadres',
|
|
55
|
+
emailPlaceholder: 'naam@bedrijf.nl',
|
|
56
|
+
emailButton: 'Registreren met e-mail',
|
|
57
|
+
passkeyButton: 'Registreren met Passkey',
|
|
58
|
+
orDivider: 'of',
|
|
59
|
+
loadingText: 'Bezig...',
|
|
60
|
+
footer: 'Gegarandeerd beveiligd door iPulse Auth',
|
|
61
|
+
haveAccount: 'Al een account?',
|
|
62
|
+
signInLink: 'Inloggen',
|
|
63
|
+
backLink: 'Terug naar inloggen',
|
|
64
|
+
termsLabel: 'Voorwaarden',
|
|
65
|
+
privacyLabel: 'Privacy',
|
|
66
|
+
};
|
|
67
|
+
const SignUp = ({ onEmailSubmit, onPasskeyClick, isLoading = false, branding, translations: t, signInUrl, error, success, showNameField = true, initialEmail = '', }) => {
|
|
68
|
+
const [name, setName] = React.useState('');
|
|
69
|
+
const [email, setEmail] = React.useState(initialEmail);
|
|
70
|
+
React.useEffect(() => {
|
|
71
|
+
if (initialEmail)
|
|
72
|
+
setEmail(initialEmail);
|
|
73
|
+
}, [initialEmail]);
|
|
74
|
+
const labels = { ...DEFAULTS, ...t };
|
|
75
|
+
const title = branding?.appName
|
|
76
|
+
? `Account bij ${branding.appName}`
|
|
77
|
+
: labels.title;
|
|
78
|
+
const canSubmit = email.trim().length > 0;
|
|
79
|
+
const handleSubmit = async (e) => {
|
|
80
|
+
e.preventDefault();
|
|
81
|
+
if (onEmailSubmit && canSubmit && !isLoading) {
|
|
82
|
+
await onEmailSubmit(email.trim(), name.trim() || undefined);
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
const handleEmailKeyDown = (e) => {
|
|
86
|
+
if (e.key === 'Enter') {
|
|
87
|
+
e.preventDefault();
|
|
88
|
+
if (onEmailSubmit && canSubmit && !isLoading) {
|
|
89
|
+
onEmailSubmit(email.trim(), name.trim() || undefined);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
return ((0, jsx_runtime_1.jsxs)(AuthCard_1.AuthCard, { children: [(0, jsx_runtime_1.jsx)(AuthHeader_1.AuthHeader, { branding: branding, title: title, subtitle: labels.subtitle }), error && (0, jsx_runtime_1.jsx)(AuthAlert_1.AuthAlert, { type: "error", message: error }), success && (0, jsx_runtime_1.jsx)(AuthAlert_1.AuthAlert, { type: "success", message: success }), (0, jsx_runtime_1.jsxs)("form", { onSubmit: handleSubmit, noValidate: true, style: { display: 'flex', flexDirection: 'column', gap: '1.25rem' }, children: [showNameField && ((0, jsx_runtime_1.jsx)(AuthTextInput_1.AuthTextInput, { id: "ipulse-signup-name", type: "text", value: name, onChange: setName, placeholder: labels.namePlaceholder, label: labels.nameLabel, autoComplete: "name", disabled: isLoading, autoFocus: true, icon: (0, jsx_runtime_1.jsx)(lucide_react_1.User, { size: 16 }) })), (0, jsx_runtime_1.jsx)(AuthEmailInput_1.AuthEmailInput, { id: "ipulse-signup-email", value: email, onChange: setEmail, placeholder: labels.emailPlaceholder, label: labels.emailLabel, disabled: isLoading, autoFocus: !showNameField, onKeyDown: handleEmailKeyDown }), (0, jsx_runtime_1.jsxs)(AuthButton_1.AuthPrimaryButton, { type: "submit", disabled: !canSubmit, loading: isLoading, loadingText: labels.loadingText, tabIndex: 0, children: [labels.emailButton, (0, jsx_runtime_1.jsx)(lucide_react_1.ArrowRight, { size: 16, style: { flexShrink: 0 } })] }), onPasskeyClick && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(AuthDivider_1.AuthDivider, { label: labels.orDivider }), (0, jsx_runtime_1.jsxs)(AuthButton_1.AuthOutlineButton, { type: "button", onClick: () => !isLoading && onPasskeyClick(), disabled: isLoading, tabIndex: 0, children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Fingerprint, { size: 18, style: { flexShrink: 0 } }), labels.passkeyButton] })] }))] }), signInUrl && ((0, jsx_runtime_1.jsxs)("p", { style: { textAlign: 'center', marginTop: '1.5rem', fontSize: '0.875rem', color: utils_1.cssVars.mutedFg }, children: [labels.haveAccount, ' ', (0, jsx_runtime_1.jsx)("a", { href: signInUrl, tabIndex: 0, style: { color: utils_1.cssVars.primary, fontWeight: 500, textDecoration: 'none' }, onMouseOver: (e) => (e.currentTarget.style.textDecoration = 'underline'), onMouseOut: (e) => (e.currentTarget.style.textDecoration = 'none'), children: labels.signInLink })] })), (0, jsx_runtime_1.jsx)(AuthFooter_1.AuthFooter, { branding: branding, text: labels.footer, termsLabel: labels.termsLabel, privacyLabel: labels.privacyLabel })] }));
|
|
94
|
+
};
|
|
95
|
+
exports.SignUp = SignUp;
|
|
96
|
+
//# sourceMappingURL=SignUp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SignUp.js","sourceRoot":"","sources":["../src/SignUp.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface UserButtonProps {
|
|
3
|
+
user?: {
|
|
4
|
+
name?: string | null;
|
|
5
|
+
email?: string | null;
|
|
6
|
+
image?: string | null;
|
|
7
|
+
role?: string;
|
|
8
|
+
};
|
|
9
|
+
onSignOut?: () => void | Promise<void>;
|
|
10
|
+
onManageAccount?: () => void;
|
|
11
|
+
manageAccountUrl?: string;
|
|
12
|
+
/** Additional menu items */
|
|
13
|
+
extraItems?: Array<{
|
|
14
|
+
label: string;
|
|
15
|
+
icon?: React.ReactNode;
|
|
16
|
+
onClick?: () => void;
|
|
17
|
+
href?: string;
|
|
18
|
+
danger?: boolean;
|
|
19
|
+
}>;
|
|
20
|
+
/** Show role badge */
|
|
21
|
+
showRole?: boolean;
|
|
22
|
+
}
|
|
23
|
+
export declare const UserButton: React.FC<UserButtonProps>;
|
|
24
|
+
//# sourceMappingURL=UserButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserButton.d.ts","sourceRoot":"","sources":["../src/UserButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,WAAW,eAAe;IAC5B,IAAI,CAAC,EAAE;QACH,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4BAA4B;IAC5B,UAAU,CAAC,EAAE,KAAK,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;IACH,sBAAsB;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA8KhD,CAAC"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.UserButton = void 0;
|
|
37
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
38
|
+
const React = __importStar(require("react"));
|
|
39
|
+
const lucide_react_1 = require("lucide-react");
|
|
40
|
+
const utils_1 = require("./utils");
|
|
41
|
+
const UserButton = ({ user, onSignOut, onManageAccount, manageAccountUrl, extraItems, showRole = false, }) => {
|
|
42
|
+
const [isOpen, setIsOpen] = React.useState(false);
|
|
43
|
+
const menuRef = React.useRef(null);
|
|
44
|
+
React.useEffect(() => {
|
|
45
|
+
function handleClickOutside(event) {
|
|
46
|
+
if (menuRef.current && !menuRef.current.contains(event.target)) {
|
|
47
|
+
setIsOpen(false);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
function handleEscape(event) {
|
|
51
|
+
if (event.key === 'Escape')
|
|
52
|
+
setIsOpen(false);
|
|
53
|
+
}
|
|
54
|
+
document.addEventListener('mousedown', handleClickOutside);
|
|
55
|
+
document.addEventListener('keydown', handleEscape);
|
|
56
|
+
return () => {
|
|
57
|
+
document.removeEventListener('mousedown', handleClickOutside);
|
|
58
|
+
document.removeEventListener('keydown', handleEscape);
|
|
59
|
+
};
|
|
60
|
+
}, []);
|
|
61
|
+
if (!user)
|
|
62
|
+
return null;
|
|
63
|
+
const initials = (0, utils_1.getInitials)(user.name, user.email);
|
|
64
|
+
const isAdmin = user.role === 'ADMIN' || user.role === 'admin';
|
|
65
|
+
const Avatar = ({ size = 32 }) => (user.image ? ((0, jsx_runtime_1.jsx)("img", { src: user.image, alt: user.name || 'User', style: { width: size, height: size, borderRadius: '50%', objectFit: 'cover', flexShrink: 0 } })) : ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
66
|
+
width: size, height: size, borderRadius: '50%',
|
|
67
|
+
backgroundColor: utils_1.cssVars.primary, color: utils_1.cssVars.primaryFg,
|
|
68
|
+
display: 'flex', alignItems: 'center', justifyContent: 'center',
|
|
69
|
+
fontWeight: 600, fontSize: size * 0.375, flexShrink: 0,
|
|
70
|
+
letterSpacing: '-0.02em',
|
|
71
|
+
}, children: initials })));
|
|
72
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: { position: 'relative', fontFamily: 'inherit', display: 'inline-block' }, ref: menuRef, children: [(0, jsx_runtime_1.jsx)("button", { onClick: () => setIsOpen((o) => !o), "aria-expanded": isOpen, "aria-haspopup": "true", style: {
|
|
73
|
+
display: 'flex', alignItems: 'center', gap: '0.375rem',
|
|
74
|
+
background: utils_1.cssVars.bg,
|
|
75
|
+
border: `1px solid ${utils_1.cssVars.border}`,
|
|
76
|
+
cursor: 'pointer', padding: '3px',
|
|
77
|
+
borderRadius: utils_1.cssVars.radius.full,
|
|
78
|
+
transition: 'all 0.15s',
|
|
79
|
+
boxShadow: '0 1px 3px rgba(0,0,0,0.06)',
|
|
80
|
+
outline: 'none',
|
|
81
|
+
}, onMouseOver: (e) => { e.currentTarget.style.backgroundColor = utils_1.cssVars.muted; e.currentTarget.style.borderColor = utils_1.cssVars.mutedFg; }, onMouseOut: (e) => { e.currentTarget.style.backgroundColor = utils_1.cssVars.bg; e.currentTarget.style.borderColor = utils_1.cssVars.border; }, onFocus: (e) => { e.currentTarget.style.boxShadow = `0 0 0 2px ${utils_1.cssVars.primary}`; }, onBlur: (e) => { e.currentTarget.style.boxShadow = '0 1px 3px rgba(0,0,0,0.06)'; }, children: (0, jsx_runtime_1.jsx)(Avatar, { size: 30 }) }), isOpen && ((0, jsx_runtime_1.jsxs)("div", { role: "menu", style: {
|
|
82
|
+
position: 'absolute', top: 'calc(100% + 0.5rem)', right: 0,
|
|
83
|
+
width: '272px',
|
|
84
|
+
backgroundColor: utils_1.cssVars.card,
|
|
85
|
+
borderRadius: utils_1.cssVars.radius.lg,
|
|
86
|
+
boxShadow: '0 10px 40px -10px rgba(0,0,0,0.15), 0 4px 16px -4px rgba(0,0,0,0.08)',
|
|
87
|
+
border: `1px solid ${utils_1.cssVars.borderMuted}`,
|
|
88
|
+
overflow: 'hidden', zIndex: 100,
|
|
89
|
+
color: utils_1.cssVars.cardFg,
|
|
90
|
+
animation: 'ipulse-fadein 0.12s ease-out',
|
|
91
|
+
}, children: [(0, jsx_runtime_1.jsxs)("div", { style: {
|
|
92
|
+
padding: '1rem',
|
|
93
|
+
borderBottom: `1px solid ${utils_1.cssVars.borderMuted}`,
|
|
94
|
+
display: 'flex', alignItems: 'center', gap: '0.75rem',
|
|
95
|
+
}, children: [(0, jsx_runtime_1.jsx)(Avatar, { size: 40 }), (0, jsx_runtime_1.jsxs)("div", { style: { flex: 1, minWidth: 0 }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', alignItems: 'center', gap: '0.375rem' }, children: [(0, jsx_runtime_1.jsx)("p", { style: {
|
|
96
|
+
margin: 0, fontWeight: 600, fontSize: '0.875rem',
|
|
97
|
+
overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap',
|
|
98
|
+
}, children: user.name || 'Gebruiker' }), showRole && isAdmin && ((0, jsx_runtime_1.jsx)("span", { style: {
|
|
99
|
+
fontSize: '0.625rem', fontWeight: 700, letterSpacing: '0.04em',
|
|
100
|
+
textTransform: 'uppercase', padding: '1px 5px',
|
|
101
|
+
borderRadius: utils_1.cssVars.radius.sm,
|
|
102
|
+
backgroundColor: 'color-mix(in oklch, var(--color-primary, #0a0a0a) 12%, transparent)',
|
|
103
|
+
color: utils_1.cssVars.primary, flexShrink: 0,
|
|
104
|
+
}, children: "Admin" }))] }), (0, jsx_runtime_1.jsx)("p", { style: {
|
|
105
|
+
margin: 0, color: utils_1.cssVars.mutedFg, fontSize: '0.75rem',
|
|
106
|
+
overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap',
|
|
107
|
+
}, children: user.email })] })] }), (0, jsx_runtime_1.jsxs)("div", { style: { padding: '0.375rem' }, children: [(onManageAccount || manageAccountUrl) && ((0, jsx_runtime_1.jsx)(MenuItem, { icon: (0, jsx_runtime_1.jsx)(lucide_react_1.Settings, { size: 15 }), label: "Account beheren", href: manageAccountUrl, onClick: () => { setIsOpen(false); onManageAccount?.(); } })), extraItems?.map((item, i) => ((0, jsx_runtime_1.jsx)(MenuItem, { icon: item.icon, label: item.label, href: item.href, onClick: () => { setIsOpen(false); item.onClick?.(); }, danger: item.danger }, i))), (onManageAccount || manageAccountUrl || extraItems?.length) && ((0, jsx_runtime_1.jsx)("div", { style: { height: '1px', backgroundColor: utils_1.cssVars.borderMuted, margin: '0.375rem 0' } })), onSignOut && ((0, jsx_runtime_1.jsx)(MenuItem, { icon: (0, jsx_runtime_1.jsx)(lucide_react_1.LogOut, { size: 15 }), label: "Uitloggen", onClick: () => { setIsOpen(false); onSignOut(); }, danger: true }))] })] })), (0, jsx_runtime_1.jsx)("style", { children: `
|
|
108
|
+
@keyframes ipulse-fadein {
|
|
109
|
+
from { opacity: 0; transform: translateY(-4px) scale(0.98); }
|
|
110
|
+
to { opacity: 1; transform: translateY(0) scale(1); }
|
|
111
|
+
}
|
|
112
|
+
` })] }));
|
|
113
|
+
};
|
|
114
|
+
exports.UserButton = UserButton;
|
|
115
|
+
function MenuItem({ icon, label, onClick, href, danger = false, }) {
|
|
116
|
+
const style = {
|
|
117
|
+
width: '100%', textAlign: 'left',
|
|
118
|
+
padding: '0.5rem 0.625rem',
|
|
119
|
+
background: 'transparent', border: 'none',
|
|
120
|
+
fontSize: '0.875rem', cursor: 'pointer',
|
|
121
|
+
borderRadius: utils_1.cssVars.radius.sm,
|
|
122
|
+
display: 'flex', alignItems: 'center', gap: '0.5rem',
|
|
123
|
+
color: danger ? utils_1.cssVars.destructive : 'inherit',
|
|
124
|
+
transition: 'background-color 0.12s',
|
|
125
|
+
textDecoration: 'none',
|
|
126
|
+
};
|
|
127
|
+
const content = ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [icon && (0, jsx_runtime_1.jsx)("span", { style: { opacity: 0.75, flexShrink: 0 }, children: icon }), (0, jsx_runtime_1.jsx)("span", { style: { flex: 1 }, children: label }), href && !onClick && (0, jsx_runtime_1.jsx)(lucide_react_1.ExternalLink, { size: 11, style: { opacity: 0.4 } })] }));
|
|
128
|
+
const hover = (e) => {
|
|
129
|
+
e.currentTarget.style.backgroundColor = danger
|
|
130
|
+
? 'color-mix(in oklch, var(--color-destructive, #ef4444) 8%, transparent)'
|
|
131
|
+
: utils_1.cssVars.muted;
|
|
132
|
+
};
|
|
133
|
+
const unhover = (e) => {
|
|
134
|
+
e.currentTarget.style.backgroundColor = 'transparent';
|
|
135
|
+
};
|
|
136
|
+
if (href && !onClick) {
|
|
137
|
+
return ((0, jsx_runtime_1.jsx)("a", { href: href, style: style, onMouseOver: hover, onMouseOut: unhover, children: content }));
|
|
138
|
+
}
|
|
139
|
+
return ((0, jsx_runtime_1.jsx)("button", { type: "button", style: style, onClick: onClick, onMouseOver: hover, onMouseOut: unhover, children: content }));
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=UserButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserButton.js","sourceRoot":"","sources":["../src/UserButton.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { AuthTranslations } from './types';
|
|
3
|
+
export interface VerifyRequestProps {
|
|
4
|
+
email?: string;
|
|
5
|
+
onResend?: () => void | Promise<void>;
|
|
6
|
+
onBack?: () => void;
|
|
7
|
+
isResending?: boolean;
|
|
8
|
+
translations?: AuthTranslations['verifyRequest'];
|
|
9
|
+
}
|
|
10
|
+
export declare const VerifyRequest: React.FC<VerifyRequestProps>;
|
|
11
|
+
//# sourceMappingURL=VerifyRequest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VerifyRequest.d.ts","sourceRoot":"","sources":["../src/VerifyRequest.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAIhD,MAAM,WAAW,kBAAkB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAC;CACpD;AAWD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAmItD,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VerifyRequest = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const lucide_react_1 = require("lucide-react");
|
|
6
|
+
const AuthCard_1 = require("./shared/AuthCard");
|
|
7
|
+
const utils_1 = require("./utils");
|
|
8
|
+
const DEFAULTS = {
|
|
9
|
+
title: 'Check je e-mail',
|
|
10
|
+
description: 'We hebben een inloglink gestuurd naar',
|
|
11
|
+
checkInbox: 'Klik op de link in de e-mail om in te loggen. Check ook je spamfolder als je de e-mail niet ziet.',
|
|
12
|
+
didNotReceive: 'Geen e-mail ontvangen?',
|
|
13
|
+
resendButton: 'Opnieuw versturen',
|
|
14
|
+
backToSignIn: 'Terug naar inloggen',
|
|
15
|
+
};
|
|
16
|
+
const VerifyRequest = ({ email, onResend, onBack, isResending = false, translations: t, }) => {
|
|
17
|
+
const labels = { ...DEFAULTS, ...t };
|
|
18
|
+
return ((0, jsx_runtime_1.jsx)(AuthCard_1.AuthCard, { children: (0, jsx_runtime_1.jsxs)("div", { style: { textAlign: 'center' }, children: [(0, jsx_runtime_1.jsx)("div", { style: {
|
|
19
|
+
width: '72px',
|
|
20
|
+
height: '72px',
|
|
21
|
+
borderRadius: '50%',
|
|
22
|
+
background: `color-mix(in oklch, ${utils_1.cssVars.primary} 10%, transparent)`,
|
|
23
|
+
display: 'flex',
|
|
24
|
+
alignItems: 'center',
|
|
25
|
+
justifyContent: 'center',
|
|
26
|
+
margin: '0 auto 1.75rem auto',
|
|
27
|
+
animation: 'ipulse-fadein 0.4s ease-out',
|
|
28
|
+
}, children: (0, jsx_runtime_1.jsx)(lucide_react_1.Mail, { size: 32, style: { color: utils_1.cssVars.primary } }) }), (0, jsx_runtime_1.jsx)("h1", { style: {
|
|
29
|
+
fontSize: '1.5rem',
|
|
30
|
+
fontWeight: 700,
|
|
31
|
+
margin: '0 0 0.75rem 0',
|
|
32
|
+
letterSpacing: '-0.025em',
|
|
33
|
+
}, children: labels.title }), (0, jsx_runtime_1.jsx)("p", { style: { margin: '0 0 0.25rem 0', color: utils_1.cssVars.mutedFg, fontSize: '0.9375rem', lineHeight: 1.6 }, children: labels.description }), email && ((0, jsx_runtime_1.jsx)("p", { style: { margin: '0 0 1.25rem 0', fontWeight: 600, fontSize: '0.9375rem' }, children: email })), (0, jsx_runtime_1.jsx)("p", { style: { margin: '0 0 2rem 0', color: utils_1.cssVars.mutedFg, fontSize: '0.875rem', lineHeight: 1.65 }, children: labels.checkInbox }), onResend && ((0, jsx_runtime_1.jsxs)("div", { style: { marginBottom: '1.5rem' }, children: [(0, jsx_runtime_1.jsx)("p", { style: { fontSize: '0.875rem', color: utils_1.cssVars.mutedFg, marginBottom: '0.75rem', margin: '0 0 0.75rem 0' }, children: labels.didNotReceive }), (0, jsx_runtime_1.jsxs)("button", { type: "button", onClick: () => !isResending && onResend(), disabled: isResending, tabIndex: 0, style: {
|
|
34
|
+
padding: '0.625rem 1.25rem',
|
|
35
|
+
borderRadius: utils_1.cssVars.radius.md,
|
|
36
|
+
border: `1.5px solid ${utils_1.cssVars.border}`,
|
|
37
|
+
backgroundColor: 'transparent',
|
|
38
|
+
color: utils_1.cssVars.fg,
|
|
39
|
+
cursor: isResending ? 'not-allowed' : 'pointer',
|
|
40
|
+
fontSize: '0.875rem',
|
|
41
|
+
fontWeight: 500,
|
|
42
|
+
display: 'inline-flex',
|
|
43
|
+
alignItems: 'center',
|
|
44
|
+
gap: '0.5rem',
|
|
45
|
+
transition: 'background-color 0.15s, box-shadow 0.15s',
|
|
46
|
+
opacity: isResending ? 0.6 : 1,
|
|
47
|
+
outline: 'none',
|
|
48
|
+
}, onMouseOver: (e) => {
|
|
49
|
+
if (!isResending)
|
|
50
|
+
e.currentTarget.style.backgroundColor = utils_1.cssVars.muted;
|
|
51
|
+
}, onMouseOut: (e) => {
|
|
52
|
+
e.currentTarget.style.backgroundColor = 'transparent';
|
|
53
|
+
}, onFocus: (e) => {
|
|
54
|
+
e.currentTarget.style.boxShadow = `0 0 0 3px color-mix(in oklch, ${utils_1.cssVars.primary} 15%, transparent)`;
|
|
55
|
+
}, onBlur: (e) => {
|
|
56
|
+
e.currentTarget.style.boxShadow = 'none';
|
|
57
|
+
}, children: [(0, jsx_runtime_1.jsx)(lucide_react_1.RefreshCcw, { size: 14, style: isResending ? { animation: 'ipulse-spin 0.8s linear infinite' } : undefined }), labels.resendButton] })] })), onBack && ((0, jsx_runtime_1.jsxs)("button", { type: "button", onClick: onBack, tabIndex: 0, style: {
|
|
58
|
+
background: 'none',
|
|
59
|
+
border: 'none',
|
|
60
|
+
cursor: 'pointer',
|
|
61
|
+
color: utils_1.cssVars.mutedFg,
|
|
62
|
+
fontSize: '0.875rem',
|
|
63
|
+
display: 'inline-flex',
|
|
64
|
+
alignItems: 'center',
|
|
65
|
+
gap: '0.375rem',
|
|
66
|
+
padding: '0.25rem 0.5rem',
|
|
67
|
+
borderRadius: utils_1.cssVars.radius.sm,
|
|
68
|
+
transition: 'color 0.15s',
|
|
69
|
+
outline: 'none',
|
|
70
|
+
}, onMouseOver: (e) => (e.currentTarget.style.color = utils_1.cssVars.fg), onMouseOut: (e) => (e.currentTarget.style.color = utils_1.cssVars.mutedFg), onFocus: (e) => (e.currentTarget.style.color = utils_1.cssVars.fg), onBlur: (e) => (e.currentTarget.style.color = utils_1.cssVars.mutedFg), children: [(0, jsx_runtime_1.jsx)(lucide_react_1.ArrowLeft, { size: 14 }), labels.backToSignIn] }))] }) }));
|
|
71
|
+
};
|
|
72
|
+
exports.VerifyRequest = VerifyRequest;
|
|
73
|
+
//# sourceMappingURL=VerifyRequest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VerifyRequest.js","sourceRoot":"","sources":["../src/VerifyRequest.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared iPulse OAuth auth config for NextAuth.
|
|
3
|
+
* Use in PulseGuard, PulseFiles, PulseSync, etc.
|
|
4
|
+
*
|
|
5
|
+
* Required env: IPULSE_ISSUER, IPULSE_CLIENT_ID, IPULSE_CLIENT_SECRET
|
|
6
|
+
*/
|
|
7
|
+
import type { NextAuthConfig } from 'next-auth';
|
|
8
|
+
export interface IPulseProviderOptions {
|
|
9
|
+
/** Extra OAuth scopes (default: 'openid email profile') */
|
|
10
|
+
scope?: string;
|
|
11
|
+
}
|
|
12
|
+
/** iPulse OIDC provider config for NextAuth providers array */
|
|
13
|
+
export declare function getIPulseProvider(options?: IPulseProviderOptions): {
|
|
14
|
+
id: string;
|
|
15
|
+
name: string;
|
|
16
|
+
type: "oidc";
|
|
17
|
+
issuer: string;
|
|
18
|
+
clientId: string;
|
|
19
|
+
clientSecret: string;
|
|
20
|
+
wellKnown: string;
|
|
21
|
+
authorization: {
|
|
22
|
+
params: {
|
|
23
|
+
scope: string;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
profile(profile: {
|
|
27
|
+
sub?: string;
|
|
28
|
+
email?: string;
|
|
29
|
+
name?: string;
|
|
30
|
+
image?: string;
|
|
31
|
+
role?: string;
|
|
32
|
+
}): {
|
|
33
|
+
id: string | undefined;
|
|
34
|
+
email: string | undefined;
|
|
35
|
+
name: string | undefined;
|
|
36
|
+
image: string | undefined;
|
|
37
|
+
role: string | undefined;
|
|
38
|
+
};
|
|
39
|
+
checks: ("pkce" | "state")[];
|
|
40
|
+
};
|
|
41
|
+
export interface IPulseAuthConfigOptions {
|
|
42
|
+
/** Custom sign-in path (default: '/sign-in') */
|
|
43
|
+
signIn?: string;
|
|
44
|
+
/** Custom error path (default: '/auth-error') */
|
|
45
|
+
error?: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Returns NextAuth config for iPulse OAuth.
|
|
49
|
+
* Spread into NextAuth({ ...authConfig, providers: [...], cookies: {...} })
|
|
50
|
+
*/
|
|
51
|
+
export declare function createIPulseAuthConfig(options?: IPulseAuthConfigOptions): NextAuthConfig;
|
|
52
|
+
export interface CreateIPulseNextAuthOptions {
|
|
53
|
+
/** App name for cookie prefix (e.g. pulseguard, pulsefiles, pulsesync) */
|
|
54
|
+
appName: string;
|
|
55
|
+
/** OAuth scope (default: 'openid email profile') */
|
|
56
|
+
scope?: string;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Creates full NextAuth instance for iPulse OAuth clients.
|
|
60
|
+
* Reduces auth.ts to a single call.
|
|
61
|
+
*/
|
|
62
|
+
export declare function createIPulseNextAuth(options: CreateIPulseNextAuthOptions): import("next-auth").NextAuthResult;
|
|
63
|
+
//# sourceMappingURL=auth-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-config.d.ts","sourceRoot":"","sources":["../src/auth-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAI/C,MAAM,WAAW,qBAAqB;IACpC,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,qBAAqB;;;;;;;;;;;;;qBAe5C;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;;YASlE,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE;EAEpD;AAgED,MAAM,WAAW,uBAAuB;IACtC,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,cAAc,CAwFxF;AAED,MAAM,WAAW,2BAA2B;IAC1C,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAA;IACf,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,sCAiCxE"}
|