@b3-crow/ui-kit 0.0.36 → 0.0.37
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/dist/components/inputs/EmailTagInput.d.ts +3 -1
- package/dist/components/inputs/EmailTagInput.d.ts.map +1 -1
- package/dist/components/inputs/EmailTagInput.js +25 -19
- package/dist/components/inputs/EmailTagInput.js.map +1 -1
- package/dist/components/layout/SegmentedControl.d.ts +2 -2
- package/dist/components/layout/SegmentedControl.d.ts.map +1 -1
- package/dist/components/layout/SegmentedControl.js +6 -6
- package/dist/components/layout/SegmentedControl.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,7 +3,9 @@ interface EmailTagInputProps {
|
|
|
3
3
|
onEmailsChange: (emails: string[]) => void;
|
|
4
4
|
error?: string;
|
|
5
5
|
onInvalidEmail?: (email: string) => void;
|
|
6
|
+
onInputChange?: (value: string) => void;
|
|
7
|
+
children?: React.ReactNode;
|
|
6
8
|
}
|
|
7
|
-
export declare function EmailTagInput({ emails, onEmailsChange, error, onInvalidEmail, }: EmailTagInputProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export declare function EmailTagInput({ emails, onEmailsChange, error, onInvalidEmail, onInputChange, children, }: EmailTagInputProps): import("react/jsx-runtime").JSX.Element;
|
|
8
10
|
export {};
|
|
9
11
|
//# sourceMappingURL=EmailTagInput.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmailTagInput.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/EmailTagInput.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EmailTagInput.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/EmailTagInput.tsx"],"names":[],"mappings":"AAMA,UAAU,kBAAkB;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAMD,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,cAAc,EACd,KAAK,EACL,cAAc,EACd,aAAa,EACb,QAAQ,GACT,EAAE,kBAAkB,2CAqGpB"}
|
|
@@ -3,10 +3,28 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
import { useState } from 'react';
|
|
4
4
|
import { LuX } from 'react-icons/lu';
|
|
5
5
|
const isValidEmail = (email) => {
|
|
6
|
-
return /^[^\s@]+@[^\s@]
|
|
6
|
+
return /^[^\s@]+@[^\s@][^\s.@]*\.[^\s@]+$/.test(email);
|
|
7
7
|
};
|
|
8
|
-
export function EmailTagInput({ emails, onEmailsChange, error, onInvalidEmail, }) {
|
|
8
|
+
export function EmailTagInput({ emails, onEmailsChange, error, onInvalidEmail, onInputChange, children, }) {
|
|
9
9
|
const [inputValue, setInputValue] = useState('');
|
|
10
|
+
const addEmail = () => {
|
|
11
|
+
const trimmedEmail = inputValue.trim();
|
|
12
|
+
if (trimmedEmail && !emails.includes(trimmedEmail)) {
|
|
13
|
+
if (isValidEmail(trimmedEmail)) {
|
|
14
|
+
onEmailsChange([...emails, trimmedEmail]);
|
|
15
|
+
setInputValue('');
|
|
16
|
+
onInputChange?.('');
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
onInvalidEmail?.(trimmedEmail);
|
|
20
|
+
setInputValue('');
|
|
21
|
+
onInputChange?.('');
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
const removeEmail = (index) => {
|
|
26
|
+
onEmailsChange(emails.filter((_, i) => i !== index));
|
|
27
|
+
};
|
|
10
28
|
const handleKeyDown = (e) => {
|
|
11
29
|
if (e.key === 'Enter') {
|
|
12
30
|
e.preventDefault();
|
|
@@ -26,36 +44,24 @@ export function EmailTagInput({ emails, onEmailsChange, error, onInvalidEmail, }
|
|
|
26
44
|
if (isValidEmail(emailToAdd)) {
|
|
27
45
|
onEmailsChange([...emails, emailToAdd]);
|
|
28
46
|
setInputValue('');
|
|
47
|
+
onInputChange?.('');
|
|
29
48
|
}
|
|
30
49
|
else {
|
|
31
50
|
onInvalidEmail?.(emailToAdd);
|
|
32
51
|
setInputValue('');
|
|
52
|
+
onInputChange?.('');
|
|
33
53
|
}
|
|
34
54
|
}
|
|
35
55
|
else {
|
|
36
56
|
setInputValue('');
|
|
57
|
+
onInputChange?.('');
|
|
37
58
|
}
|
|
38
59
|
}
|
|
39
60
|
else {
|
|
40
61
|
setInputValue(value);
|
|
62
|
+
onInputChange?.(value);
|
|
41
63
|
}
|
|
42
64
|
};
|
|
43
|
-
|
|
44
|
-
const trimmedEmail = inputValue.trim();
|
|
45
|
-
if (trimmedEmail && !emails.includes(trimmedEmail)) {
|
|
46
|
-
if (isValidEmail(trimmedEmail)) {
|
|
47
|
-
onEmailsChange([...emails, trimmedEmail]);
|
|
48
|
-
setInputValue('');
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
onInvalidEmail?.(trimmedEmail);
|
|
52
|
-
setInputValue('');
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
const removeEmail = (index) => {
|
|
57
|
-
onEmailsChange(emails.filter((_, i) => i !== index));
|
|
58
|
-
};
|
|
59
|
-
return (_jsxs("div", { className: "space-y-2", children: [_jsx("label", { className: "text-xs font-medium text-gray-300 ml-1 block", children: "Email addresses" }), _jsxs("div", { className: `w-full bg-white/5 border ${error ? 'border-red-500/30' : 'border-white/5'} rounded-2xl px-3 py-2 flex flex-wrap gap-2 focus-within:border-violet-500/30 transition-colors shadow-inner min-h-[52px] items-center`, children: [emails.map((email, index) => (_jsxs("span", { className: "bg-violet-500/20 border border-violet-500/20 text-violet-100 text-[11px] font-medium px-2 py-0.5 rounded-md flex items-center gap-1", children: [email, _jsx("button", { type: "button", onClick: () => removeEmail(index), className: "hover:text-white text-violet-300 focus:outline-none flex items-center", children: _jsx(LuX, { className: "w-3 h-3" }) })] }, index))), _jsx("input", { type: "text", value: inputValue, onChange: handleChange, onKeyDown: handleKeyDown, className: "bg-transparent border-none focus:ring-0 focus:outline-none text-sm p-0 text-gray-300 placeholder:text-gray-600 flex-grow min-w-[120px] h-6", placeholder: emails.length === 0 ? 'name@company.com' : '' })] }), _jsx("p", { className: "text-[10px] text-gray-500 ml-1", children: "Press Enter, Space, or Comma to add multiple emails." }), error && _jsx("p", { className: "text-[10px] text-red-400 ml-1", children: error })] }));
|
|
65
|
+
return (_jsxs("div", { className: "space-y-2 relative", children: [_jsx("label", { className: "text-xs font-medium text-gray-300 ml-1 block", children: "Email addresses" }), _jsxs("div", { className: `w-full bg-white/5 border ${error ? 'border-red-500/30' : 'border-white/5'} rounded-2xl px-3 py-2 flex flex-wrap gap-2 focus-within:border-violet-500/30 transition-colors shadow-inner min-h-[52px] items-center`, children: [emails.map((email, index) => (_jsxs("span", { className: "bg-violet-500/20 border border-violet-500/20 text-violet-100 text-[11px] font-medium px-2 py-0.5 rounded-md flex items-center gap-1", children: [email, _jsx("button", { type: "button", onClick: () => removeEmail(index), className: "hover:text-white text-violet-300 focus:outline-none flex items-center", children: _jsx(LuX, { className: "w-3 h-3" }) })] }, index))), _jsx("input", { type: "text", value: inputValue, onChange: handleChange, onKeyDown: handleKeyDown, className: "bg-transparent border-none focus:ring-0 focus:outline-none text-sm p-0 text-gray-300 placeholder:text-gray-600 flex-grow min-w-[120px] h-6", placeholder: emails.length === 0 ? 'name@company.com' : '' })] }), children, _jsx("p", { className: "text-[10px] text-gray-500 ml-1", children: "Press Enter, Space, or Comma to add multiple emails." }), error && _jsx("p", { className: "text-[10px] text-red-400 ml-1", children: error })] }));
|
|
60
66
|
}
|
|
61
67
|
//# sourceMappingURL=EmailTagInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmailTagInput.js","sourceRoot":"","sources":["../../../src/components/inputs/EmailTagInput.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;
|
|
1
|
+
{"version":3,"file":"EmailTagInput.js","sourceRoot":"","sources":["../../../src/components/inputs/EmailTagInput.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAWrC,MAAM,YAAY,GAAG,CAAC,KAAa,EAAW,EAAE;IAC9C,OAAO,mCAAmC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,EAC5B,MAAM,EACN,cAAc,EACd,KAAK,EACL,cAAc,EACd,aAAa,EACb,QAAQ,GACW;IACnB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEjD,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;QACvC,IAAI,YAAY,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACnD,IAAI,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC/B,cAAc,CAAC,CAAC,GAAG,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;gBAC1C,aAAa,CAAC,EAAE,CAAC,CAAC;gBAClB,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,cAAc,EAAE,CAAC,YAAY,CAAC,CAAC;gBAC/B,aAAa,CAAC,EAAE,CAAC,CAAC;gBAClB,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,EAAE;QACpC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,CAAkC,EAAE,EAAE;QAC3D,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;YACtB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,QAAQ,EAAE,CAAC;QACb,CAAC;aAAM,IACL,CAAC,CAAC,GAAG,KAAK,WAAW;YACrB,UAAU,KAAK,EAAE;YACjB,MAAM,CAAC,MAAM,GAAG,CAAC,EACjB,CAAC;YACD,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,CAAsC,EAAE,EAAE;QAC9D,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAE7B,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACtD,IAAI,UAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/C,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC7B,cAAc,CAAC,CAAC,GAAG,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;oBACxC,aAAa,CAAC,EAAE,CAAC,CAAC;oBAClB,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;gBACtB,CAAC;qBAAM,CAAC;oBACN,cAAc,EAAE,CAAC,UAAU,CAAC,CAAC;oBAC7B,aAAa,CAAC,EAAE,CAAC,CAAC;oBAClB,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC,EAAE,CAAC,CAAC;gBAClB,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,oBAAoB,aACjC,gBAAO,SAAS,EAAC,8CAA8C,gCAEvD,EACR,eACE,SAAS,EAAE,4BACT,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,gBAChC,wIAAwI,aAEvI,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC5B,gBAEE,SAAS,EAAC,qIAAqI,aAE9I,KAAK,EACN,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EACjC,SAAS,EAAC,uEAAuE,YAEjF,KAAC,GAAG,IAAC,SAAS,EAAC,SAAS,GAAG,GACpB,KAVJ,KAAK,CAWL,CACR,CAAC,EACF,gBACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,aAAa,EACxB,SAAS,EAAC,4IAA4I,EACtJ,WAAW,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,GAC1D,IACE,EACL,QAAQ,EACT,YAAG,SAAS,EAAC,gCAAgC,qEAEzC,EACH,KAAK,IAAI,YAAG,SAAS,EAAC,+BAA+B,YAAE,KAAK,GAAK,IAC9D,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -3,7 +3,7 @@ export interface SegmentedControlOption<T extends string = string> {
|
|
|
3
3
|
value: T;
|
|
4
4
|
}
|
|
5
5
|
export interface SegmentedControlProps<T extends string = string> {
|
|
6
|
-
options:
|
|
6
|
+
options: SegmentedControlOption<T>[];
|
|
7
7
|
defaultValue?: T;
|
|
8
8
|
value?: T;
|
|
9
9
|
onChange?: (value: T) => void;
|
|
@@ -12,5 +12,5 @@ export interface SegmentedControlProps<T extends string = string> {
|
|
|
12
12
|
className?: string;
|
|
13
13
|
size?: 'sm' | 'md' | 'lg';
|
|
14
14
|
}
|
|
15
|
-
export declare function SegmentedControl<T extends string = string>({ options, defaultValue, value: controlledValue, onChange, label, description, className, size, }: SegmentedControlProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export declare function SegmentedControl<T extends string = string>({ options, defaultValue, value: controlledValue, onChange, label, description, className, size, }: SegmentedControlProps<T>): import("react/jsx-runtime").JSX.Element | null;
|
|
16
16
|
//# sourceMappingURL=SegmentedControl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentedControl.d.ts","sourceRoot":"","sources":["../../../src/components/layout/SegmentedControl.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,CAAC;CACV;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAC9D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"SegmentedControl.d.ts","sourceRoot":"","sources":["../../../src/components/layout/SegmentedControl.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,CAAC;CACV;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAC9D,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;IACrC,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EAC1D,OAAO,EACP,YAAY,EACZ,KAAK,EAAE,eAAe,EACtB,QAAQ,EACR,KAAK,EACL,WAAW,EACX,SAAc,EACd,IAAW,GACZ,EAAE,qBAAqB,CAAC,CAAC,CAAC,kDA0D1B"}
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import { cn } from '../../lib/utils';
|
|
4
4
|
export function SegmentedControl({ options, defaultValue, value: controlledValue, onChange, label, description, className = '', size = 'md', }) {
|
|
5
|
-
const [internalValue, setInternalValue] = useState(defaultValue ?? options[0]
|
|
5
|
+
const [internalValue, setInternalValue] = useState(defaultValue ?? options[0]?.value);
|
|
6
6
|
const selected = controlledValue ?? internalValue;
|
|
7
7
|
const handleToggle = (value) => {
|
|
8
8
|
if (controlledValue === undefined) {
|
|
@@ -15,10 +15,10 @@ export function SegmentedControl({ options, defaultValue, value: controlledValue
|
|
|
15
15
|
md: 'px-5 py-1.5 text-sm',
|
|
16
16
|
lg: 'px-7 py-2 text-base',
|
|
17
17
|
};
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
if (!options || options.length === 0)
|
|
19
|
+
return null;
|
|
20
|
+
return (_jsxs("div", { className: cn('flex flex-col items-center gap-2', className), children: [label && (_jsx("span", { className: "text-xs uppercase tracking-wider text-gray-500 font-medium", children: label })), _jsx("div", { role: "radiogroup", "aria-label": label, className: "flex items-center bg-white/[0.03] border border-white/10 rounded-full p-1 relative", children: options.map(option => (_jsx("button", { type: "button", role: "radio", "aria-checked": selected === option.value, onClick: () => handleToggle(option.value), className: cn('font-medium transition-colors rounded-full relative z-10', sizeStyles[size], selected === option.value
|
|
21
|
+
? 'text-white bg-white/10 shadow-sm'
|
|
22
|
+
: 'text-gray-400 hover:text-white'), children: option.label }, option.value))) }), description && (_jsx("span", { className: "text-[10px] text-violet-400/80", children: description }))] }));
|
|
23
23
|
}
|
|
24
24
|
//# sourceMappingURL=SegmentedControl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentedControl.js","sourceRoot":"","sources":["../../../src/components/layout/SegmentedControl.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAkBrC,MAAM,UAAU,gBAAgB,CAA4B,EAC1D,OAAO,EACP,YAAY,EACZ,KAAK,EAAE,eAAe,EACtB,QAAQ,EACR,KAAK,EACL,WAAW,EACX,SAAS,GAAG,EAAE,EACd,IAAI,GAAG,IAAI,GACc;IACzB,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAChD,YAAY,IAAI,OAAO,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"SegmentedControl.js","sourceRoot":"","sources":["../../../src/components/layout/SegmentedControl.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAkBrC,MAAM,UAAU,gBAAgB,CAA4B,EAC1D,OAAO,EACP,YAAY,EACZ,KAAK,EAAE,eAAe,EACtB,QAAQ,EACR,KAAK,EACL,WAAW,EACX,SAAS,GAAG,EAAE,EACd,IAAI,GAAG,IAAI,GACc;IACzB,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAChD,YAAY,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAClC,CAAC;IAEF,MAAM,QAAQ,GAAG,eAAe,IAAI,aAAa,CAAC;IAElD,MAAM,YAAY,GAAG,CAAC,KAAQ,EAAE,EAAE;QAChC,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAClC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QACD,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG;QACjB,EAAE,EAAE,mBAAmB;QACvB,EAAE,EAAE,qBAAqB;QACzB,EAAE,EAAE,qBAAqB;KAC1B,CAAC;IAEF,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAElD,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,kCAAkC,EAAE,SAAS,CAAC,aAC9D,KAAK,IAAI,CACR,eAAM,SAAS,EAAC,4DAA4D,YACzE,KAAK,GACD,CACR,EACD,cACE,IAAI,EAAC,YAAY,gBACL,KAAK,EACjB,SAAS,EAAC,oFAAoF,YAE7F,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CACrB,iBAEE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,OAAO,kBACE,QAAQ,KAAK,MAAM,CAAC,KAAK,EACvC,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,SAAS,EAAE,EAAE,CACX,0DAA0D,EAC1D,UAAU,CAAC,IAAI,CAAC,EAChB,QAAQ,KAAK,MAAM,CAAC,KAAK;wBACvB,CAAC,CAAC,kCAAkC;wBACpC,CAAC,CAAC,gCAAgC,CACrC,YAEA,MAAM,CAAC,KAAK,IAbR,MAAM,CAAC,KAAK,CAcV,CACV,CAAC,GACE,EACL,WAAW,IAAI,CACd,eAAM,SAAS,EAAC,gCAAgC,YAAE,WAAW,GAAQ,CACtE,IACG,CACP,CAAC;AACJ,CAAC"}
|