sanitas-ui-design-system 1.1.0 → 1.1.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/dist/Button-DZGHhKoc.js +73 -0
- package/dist/Button-DZGHhKoc.js.map +1 -0
- package/dist/assets/Button.css +1 -1
- package/dist/index.js +1 -1
- package/dist/styles/index.css +1 -1
- package/dist/ui/components/Button/Button.d.ts +3 -1
- package/dist/ui/components/Button/Button.d.ts.map +1 -1
- package/dist/ui/index.js +1 -1
- package/package.json +84 -85
- package/dist/Button-3zP54AO8.js +0 -60
- package/dist/Button-3zP54AO8.js.map +0 -1
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
export type ButtonVariant = 'primary' | 'secondary' | 'success' | 'danger' | 'outline' | 'ghost' | 'white' | 'icon';
|
|
2
|
+
export type ButtonVariant = 'primary' | 'secondary' | 'success' | 'danger' | 'outline' | 'ghost' | 'white' | 'icon' | 'static';
|
|
3
3
|
export type ButtonSize = 'small' | 'medium' | 'large';
|
|
4
|
+
export type ButtonRounded = 'none' | 'sm' | 'base' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full';
|
|
4
5
|
type BaseButtonProps = {
|
|
5
6
|
variant?: ButtonVariant;
|
|
6
7
|
size?: ButtonSize;
|
|
8
|
+
rounded?: ButtonRounded;
|
|
7
9
|
fullWidth?: boolean;
|
|
8
10
|
loading?: boolean;
|
|
9
11
|
children: React.ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/Button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,cAAc,CAAA;AAiBrB,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/Button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,cAAc,CAAA;AAiBrB,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAA;AAC9H,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAA;AACrD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAA;AAEhG,KAAK,eAAe,GAAG;IACrB,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,KAAK,cAAc,GAAG,eAAe,GACnC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,MAAM,eAAe,CAAC,GAAG;IAC3E,IAAI,CAAC,EAAE,KAAK,CAAA;IACZ,EAAE,CAAC,EAAE,KAAK,CAAA;CACX,CAAA;AAEH,KAAK,YAAY,GAAG,eAAe,GACjC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,MAAM,eAAe,CAAC,GAAG;IAC3E,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,KAAK,CAAA;CACX,CAAA;AAEH,KAAK,kBAAkB,GAAG,eAAe,GAAG;IAC1C,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,KAAK,CAAA;CACb,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,cAAc,GAAG,YAAY,GAAG,kBAAkB,CAAA;AA+G5E,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA+BxC,CAAA"}
|
package/dist/ui/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,85 +1,84 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "sanitas-ui-design-system",
|
|
3
|
-
"version": "1.1.
|
|
4
|
-
"description": "Design System compartido para los microfrontends de Sanitas",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "./dist/index.js",
|
|
7
|
-
"module": "./dist/index.js",
|
|
8
|
-
"types": "./dist/index.d.ts",
|
|
9
|
-
"repository": {
|
|
10
|
-
"type": "git",
|
|
11
|
-
"url": "git+https://github.com/proyectosti_keralty/sanitas-ui.git"
|
|
12
|
-
},
|
|
13
|
-
"publishConfig": {
|
|
14
|
-
"registry": "https://registry.npmjs.org",
|
|
15
|
-
"access": "public"
|
|
16
|
-
},
|
|
17
|
-
"exports": {
|
|
18
|
-
".": {
|
|
19
|
-
"import": "./dist/index.js",
|
|
20
|
-
"types": "./dist/index.d.ts"
|
|
21
|
-
},
|
|
22
|
-
"./ui": {
|
|
23
|
-
"import": "./dist/ui/index.js",
|
|
24
|
-
"types": "./dist/ui/index.d.ts"
|
|
25
|
-
},
|
|
26
|
-
"./tokens": {
|
|
27
|
-
"import": "./dist/tokens/index.js",
|
|
28
|
-
"types": "./dist/tokens/index.d.ts"
|
|
29
|
-
},
|
|
30
|
-
"./icons": {
|
|
31
|
-
"import": "./dist/icons/index.js",
|
|
32
|
-
"types": "./dist/icons/index.d.ts"
|
|
33
|
-
},
|
|
34
|
-
"./styles": "./dist/styles/index.css",
|
|
35
|
-
"./tokens.css": "./dist/tokens/tokens.css",
|
|
36
|
-
"./theme.css": "./dist/theme/theme.css",
|
|
37
|
-
"./package.json": "./package.json"
|
|
38
|
-
},
|
|
39
|
-
"files": [
|
|
40
|
-
"dist",
|
|
41
|
-
"README.md"
|
|
42
|
-
],
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
"
|
|
51
|
-
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"react"
|
|
55
|
-
|
|
56
|
-
"
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"@
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
"@
|
|
65
|
-
"@
|
|
66
|
-
"@
|
|
67
|
-
"@
|
|
68
|
-
"@
|
|
69
|
-
"@
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
"
|
|
82
|
-
"
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "sanitas-ui-design-system",
|
|
3
|
+
"version": "1.1.2",
|
|
4
|
+
"description": "Design System compartido para los microfrontends de Sanitas",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/proyectosti_keralty/sanitas-ui.git"
|
|
12
|
+
},
|
|
13
|
+
"publishConfig": {
|
|
14
|
+
"registry": "https://registry.npmjs.org",
|
|
15
|
+
"access": "public"
|
|
16
|
+
},
|
|
17
|
+
"exports": {
|
|
18
|
+
".": {
|
|
19
|
+
"import": "./dist/index.js",
|
|
20
|
+
"types": "./dist/index.d.ts"
|
|
21
|
+
},
|
|
22
|
+
"./ui": {
|
|
23
|
+
"import": "./dist/ui/index.js",
|
|
24
|
+
"types": "./dist/ui/index.d.ts"
|
|
25
|
+
},
|
|
26
|
+
"./tokens": {
|
|
27
|
+
"import": "./dist/tokens/index.js",
|
|
28
|
+
"types": "./dist/tokens/index.d.ts"
|
|
29
|
+
},
|
|
30
|
+
"./icons": {
|
|
31
|
+
"import": "./dist/icons/index.js",
|
|
32
|
+
"types": "./dist/icons/index.d.ts"
|
|
33
|
+
},
|
|
34
|
+
"./styles": "./dist/styles/index.css",
|
|
35
|
+
"./tokens.css": "./dist/tokens/tokens.css",
|
|
36
|
+
"./theme.css": "./dist/theme/theme.css",
|
|
37
|
+
"./package.json": "./package.json"
|
|
38
|
+
},
|
|
39
|
+
"files": [
|
|
40
|
+
"dist",
|
|
41
|
+
"README.md"
|
|
42
|
+
],
|
|
43
|
+
"keywords": [
|
|
44
|
+
"sanitas",
|
|
45
|
+
"ui",
|
|
46
|
+
"components",
|
|
47
|
+
"react"
|
|
48
|
+
],
|
|
49
|
+
"author": "",
|
|
50
|
+
"license": "MIT",
|
|
51
|
+
"peerDependencies": {
|
|
52
|
+
"react": "^19.0.0",
|
|
53
|
+
"react-dom": "^19.0.0",
|
|
54
|
+
"@tanstack/react-router": "^1.132.0"
|
|
55
|
+
},
|
|
56
|
+
"devDependencies": {
|
|
57
|
+
"@tanstack/react-router": "^1.132.0",
|
|
58
|
+
"@storybook/addon-essentials": "^8.5.2",
|
|
59
|
+
"@storybook/addon-interactions": "^8.5.2",
|
|
60
|
+
"@storybook/addon-links": "^8.5.2",
|
|
61
|
+
"@storybook/blocks": "^8.5.2",
|
|
62
|
+
"@storybook/react": "^8.5.2",
|
|
63
|
+
"@storybook/react-vite": "^8.5.2",
|
|
64
|
+
"@storybook/test": "^8.5.2",
|
|
65
|
+
"@tailwindcss/vite": "^4.0.6",
|
|
66
|
+
"@types/node": "^22.10.2",
|
|
67
|
+
"@types/react": "^19.2.0",
|
|
68
|
+
"@types/react-dom": "^19.2.0",
|
|
69
|
+
"@vitejs/plugin-react": "^5.1.2",
|
|
70
|
+
"react": "^19.2.0",
|
|
71
|
+
"react-dom": "^19.2.0",
|
|
72
|
+
"storybook": "^8.5.2",
|
|
73
|
+
"tailwindcss": "^4.0.6",
|
|
74
|
+
"typescript": "^5.7.2",
|
|
75
|
+
"vite": "^7.2.4",
|
|
76
|
+
"vite-plugin-dts": "^4.3.0"
|
|
77
|
+
},
|
|
78
|
+
"scripts": {
|
|
79
|
+
"dev": "vite build --watch",
|
|
80
|
+
"build": "tsc && vite build",
|
|
81
|
+
"storybook": "storybook dev -p 6006",
|
|
82
|
+
"build-storybook": "storybook build"
|
|
83
|
+
}
|
|
84
|
+
}
|
package/dist/Button-3zP54AO8.js
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { jsx as o, jsxs as A, Fragment as S } from "react/jsx-runtime";
|
|
2
|
-
const f = () => {
|
|
3
|
-
try {
|
|
4
|
-
return require("@tanstack/react-router").Link;
|
|
5
|
-
} catch {
|
|
6
|
-
return null;
|
|
7
|
-
}
|
|
8
|
-
}, d = f(), B = "primary", _ = "medium", E = "button", N = "buttonIcon", g = {
|
|
9
|
-
primary: "isPrimary",
|
|
10
|
-
secondary: "isSecondary",
|
|
11
|
-
success: "isSuccess",
|
|
12
|
-
danger: "isDanger",
|
|
13
|
-
outline: "isOutline",
|
|
14
|
-
ghost: "isGhost",
|
|
15
|
-
white: "isWhite",
|
|
16
|
-
icon: "isIcon"
|
|
17
|
-
}, k = {
|
|
18
|
-
small: "isSmall",
|
|
19
|
-
medium: "isMedium",
|
|
20
|
-
large: "isLarge"
|
|
21
|
-
}, R = (n, t, e, r, s) => [
|
|
22
|
-
E,
|
|
23
|
-
g[n],
|
|
24
|
-
k[t],
|
|
25
|
-
e && "isFullWidth",
|
|
26
|
-
r && "isLoading",
|
|
27
|
-
s
|
|
28
|
-
].filter(Boolean).join(" "), P = ({ icon: n, children: t }) => /* @__PURE__ */ A(S, { children: [
|
|
29
|
-
n && /* @__PURE__ */ o("span", { className: N, children: n }),
|
|
30
|
-
t
|
|
31
|
-
] }), b = (n) => "to" in n && !!n.to, C = (n) => "href" in n && !!n.href, I = (n, t, e) => d ? /* @__PURE__ */ o(d, { to: n, className: t, children: e }) : (process.env.NODE_ENV === "development" && console.warn('Button: La prop "to" requiere @tanstack/react-router instalado'), null), y = (n, t, e, r) => {
|
|
32
|
-
const { target: s, rel: i, ...a } = r;
|
|
33
|
-
return /* @__PURE__ */ o("a", { href: n, className: t, target: s, rel: i, ...a, children: e });
|
|
34
|
-
}, T = (n, t, e, r, s) => /* @__PURE__ */ o("button", { className: n, disabled: e || r, ...s, children: t }), D = (n) => {
|
|
35
|
-
const {
|
|
36
|
-
variant: t = B,
|
|
37
|
-
size: e = _,
|
|
38
|
-
fullWidth: r = !1,
|
|
39
|
-
loading: s = !1,
|
|
40
|
-
children: i,
|
|
41
|
-
icon: a,
|
|
42
|
-
className: m = "",
|
|
43
|
-
...u
|
|
44
|
-
} = n, c = R(t, e, r, s, m), l = /* @__PURE__ */ o(P, { icon: a, children: i });
|
|
45
|
-
if (b(n))
|
|
46
|
-
return I(n.to, c, l);
|
|
47
|
-
if (C(n))
|
|
48
|
-
return y(
|
|
49
|
-
n.href,
|
|
50
|
-
c,
|
|
51
|
-
l,
|
|
52
|
-
u
|
|
53
|
-
);
|
|
54
|
-
const { disabled: L, ...h } = u;
|
|
55
|
-
return T(c, l, L || !1, s, h);
|
|
56
|
-
};
|
|
57
|
-
export {
|
|
58
|
-
D as B
|
|
59
|
-
};
|
|
60
|
-
//# sourceMappingURL=Button-3zP54AO8.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Button-3zP54AO8.js","sources":["../src/ui/components/Button/Button.tsx"],"sourcesContent":["import React from 'react'\r\nimport './Button.css'\r\n\r\nconst loadReactRouterLink = (): any => {\r\n try {\r\n return require('@tanstack/react-router').Link\r\n } catch {\r\n return null\r\n }\r\n}\r\n\r\nconst RouterLink = loadReactRouterLink()\r\n\r\nconst DEFAULT_VARIANT = 'primary'\r\nconst DEFAULT_SIZE = 'medium'\r\nconst BASE_BUTTON_CLASS = 'button'\r\nconst ICON_WRAPPER_CLASS = 'buttonIcon'\r\n\r\nexport type ButtonVariant = 'primary' | 'secondary' | 'success' | 'danger' | 'outline' | 'ghost' | 'white' | 'icon'\r\nexport type ButtonSize = 'small' | 'medium' | 'large'\r\n\r\ntype BaseButtonProps = {\r\n variant?: ButtonVariant\r\n size?: ButtonSize\r\n fullWidth?: boolean\r\n loading?: boolean\r\n children: React.ReactNode\r\n icon?: React.ReactNode\r\n className?: string\r\n}\r\n\r\ntype ButtonAsButton = BaseButtonProps &\r\n Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, keyof BaseButtonProps> & {\r\n href?: never\r\n to?: never\r\n }\r\n\r\ntype ButtonAsLink = BaseButtonProps &\r\n Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, keyof BaseButtonProps> & {\r\n href: string\r\n to?: never\r\n }\r\n\r\ntype ButtonAsRouterLink = BaseButtonProps & {\r\n to: string\r\n href?: never\r\n}\r\n\r\nexport type ButtonProps = ButtonAsButton | ButtonAsLink | ButtonAsRouterLink\r\n\r\nconst VARIANT_CLASS_MAP: Record<ButtonVariant, string> = {\r\n primary: 'isPrimary',\r\n secondary: 'isSecondary',\r\n success: 'isSuccess',\r\n danger: 'isDanger',\r\n outline: 'isOutline',\r\n ghost: 'isGhost',\r\n white: 'isWhite',\r\n icon: 'isIcon',\r\n}\r\n\r\nconst SIZE_CLASS_MAP: Record<ButtonSize, string> = {\r\n small: 'isSmall',\r\n medium: 'isMedium',\r\n large: 'isLarge',\r\n}\r\n\r\nconst buildClassNames = (\r\n variant: ButtonVariant,\r\n size: ButtonSize,\r\n fullWidth: boolean,\r\n loading: boolean,\r\n className: string\r\n): string => {\r\n const classes = [\r\n BASE_BUTTON_CLASS,\r\n VARIANT_CLASS_MAP[variant],\r\n SIZE_CLASS_MAP[size],\r\n fullWidth && 'isFullWidth',\r\n loading && 'isLoading',\r\n className,\r\n ]\r\n\r\n return classes.filter(Boolean).join(' ')\r\n}\r\n\r\nconst ButtonContent: React.FC<{ icon?: React.ReactNode; children: React.ReactNode }> = ({ icon, children }) => (\r\n <>\r\n {icon && <span className={ICON_WRAPPER_CLASS}>{icon}</span>}\r\n {children}\r\n </>\r\n)\r\n\r\nconst isRouterLinkButton = (props: ButtonProps): props is ButtonAsRouterLink => {\r\n return 'to' in props && Boolean(props.to)\r\n}\r\n\r\nconst isExternalLinkButton = (props: ButtonProps): props is ButtonAsLink => {\r\n return 'href' in props && Boolean(props.href)\r\n}\r\n\r\nconst renderRouterLink = (to: string, className: string, content: React.ReactNode) => {\r\n if (!RouterLink) {\r\n if (process.env.NODE_ENV === 'development') {\r\n console.warn('Button: La prop \"to\" requiere @tanstack/react-router instalado')\r\n }\r\n return null\r\n }\r\n\r\n return (\r\n <RouterLink to={to} className={className}>\r\n {content}\r\n </RouterLink>\r\n )\r\n}\r\n\r\nconst renderExternalLink = (\r\n href: string,\r\n className: string,\r\n content: React.ReactNode,\r\n linkProps: React.AnchorHTMLAttributes<HTMLAnchorElement>\r\n) => {\r\n const { target, rel, ...restLinkProps } = linkProps\r\n return (\r\n <a href={href} className={className} target={target} rel={rel} {...restLinkProps}>\r\n {content}\r\n </a>\r\n )\r\n}\r\n\r\nconst renderButton = (\r\n className: string,\r\n content: React.ReactNode,\r\n disabled: boolean,\r\n loading: boolean,\r\n buttonProps: React.ButtonHTMLAttributes<HTMLButtonElement>\r\n) => {\r\n return (\r\n <button className={className} disabled={disabled || loading} {...buttonProps}>\r\n {content}\r\n </button>\r\n )\r\n}\r\n\r\nexport const Button: React.FC<ButtonProps> = (props) => {\r\n const {\r\n variant = DEFAULT_VARIANT,\r\n size = DEFAULT_SIZE,\r\n fullWidth = false,\r\n loading = false,\r\n children,\r\n icon,\r\n className = '',\r\n ...restProps\r\n } = props\r\n\r\n const classNames = buildClassNames(variant, size, fullWidth, loading, className)\r\n const content = <ButtonContent icon={icon}>{children}</ButtonContent>\r\n\r\n if (isRouterLinkButton(props)) {\r\n return renderRouterLink(props.to, classNames, content)\r\n }\r\n\r\n if (isExternalLinkButton(props)) {\r\n return renderExternalLink(\r\n props.href,\r\n classNames,\r\n content,\r\n restProps as React.AnchorHTMLAttributes<HTMLAnchorElement>\r\n )\r\n }\r\n\r\n const { disabled, ...buttonProps } = restProps as React.ButtonHTMLAttributes<HTMLButtonElement>\r\n return renderButton(classNames, content, disabled || false, loading, buttonProps)\r\n}\r\n"],"names":["loadReactRouterLink","RouterLink","DEFAULT_VARIANT","DEFAULT_SIZE","BASE_BUTTON_CLASS","ICON_WRAPPER_CLASS","VARIANT_CLASS_MAP","SIZE_CLASS_MAP","buildClassNames","variant","size","fullWidth","loading","className","ButtonContent","icon","children","jsxs","Fragment","jsx","isRouterLinkButton","props","isExternalLinkButton","renderRouterLink","to","content","renderExternalLink","href","linkProps","target","rel","restLinkProps","renderButton","disabled","buttonProps","Button","restProps","classNames"],"mappings":";AAGA,MAAMA,IAAsB,MAAW;AACrC,MAAI;AACF,WAAO,QAAQ,wBAAwB,EAAE;AAAA,EAC3C,QAAQ;AACN,WAAO;AAAA,EACT;AACF,GAEMC,IAAaD,EAAA,GAEbE,IAAkB,WAClBC,IAAe,UACfC,IAAoB,UACpBC,IAAqB,cAkCrBC,IAAmD;AAAA,EACvD,SAAS;AAAA,EACT,WAAW;AAAA,EACX,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM;AACR,GAEMC,IAA6C;AAAA,EACjD,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AACT,GAEMC,IAAkB,CACtBC,GACAC,GACAC,GACAC,GACAC,MAEgB;AAAA,EACdT;AAAA,EACAE,EAAkBG,CAAO;AAAA,EACzBF,EAAeG,CAAI;AAAA,EACnBC,KAAa;AAAA,EACbC,KAAW;AAAA,EACXC;AAAA,EAGa,OAAO,OAAO,EAAE,KAAK,GAAG,GAGnCC,IAAiF,CAAC,EAAE,MAAAC,GAAM,UAAAC,EAAA,MAC9F,gBAAAC,EAAAC,GAAA,EACG,UAAA;AAAA,EAAAH,KAAQ,gBAAAI,EAAC,QAAA,EAAK,WAAWd,GAAqB,UAAAU,GAAK;AAAA,EACnDC;AAAA,GACH,GAGII,IAAqB,CAACC,MACnB,QAAQA,KAAS,EAAQA,EAAM,IAGlCC,IAAuB,CAACD,MACrB,UAAUA,KAAS,EAAQA,EAAM,MAGpCE,IAAmB,CAACC,GAAYX,GAAmBY,MAClDxB,IAQH,gBAAAkB,EAAClB,GAAA,EAAW,IAAAuB,GAAQ,WAAAX,GACjB,UAAAY,GACH,KATI,QAAQ,IAAI,aAAa,iBAC3B,QAAQ,KAAK,gEAAgE,GAExE,OAULC,IAAqB,CACzBC,GACAd,GACAY,GACAG,MACG;AACH,QAAM,EAAE,QAAAC,GAAQ,KAAAC,GAAK,GAAGC,MAAkBH;AAC1C,SACE,gBAAAT,EAAC,OAAE,MAAAQ,GAAY,WAAAd,GAAsB,QAAAgB,GAAgB,KAAAC,GAAW,GAAGC,GAChE,UAAAN,EAAA,CACH;AAEJ,GAEMO,IAAe,CACnBnB,GACAY,GACAQ,GACArB,GACAsB,MAGE,gBAAAf,EAAC,YAAO,WAAAN,GAAsB,UAAUoB,KAAYrB,GAAU,GAAGsB,GAC9D,UAAAT,EAAA,CACH,GAISU,IAAgC,CAACd,MAAU;AACtD,QAAM;AAAA,IACJ,SAAAZ,IAAUP;AAAA,IACV,MAAAQ,IAAOP;AAAA,IACP,WAAAQ,IAAY;AAAA,IACZ,SAAAC,IAAU;AAAA,IACV,UAAAI;AAAA,IACA,MAAAD;AAAA,IACA,WAAAF,IAAY;AAAA,IACZ,GAAGuB;AAAA,EAAA,IACDf,GAEEgB,IAAa7B,EAAgBC,GAASC,GAAMC,GAAWC,GAASC,CAAS,GACzEY,IAAU,gBAAAN,EAACL,GAAA,EAAc,MAAAC,GAAa,UAAAC,EAAA,CAAS;AAErD,MAAII,EAAmBC,CAAK;AAC1B,WAAOE,EAAiBF,EAAM,IAAIgB,GAAYZ,CAAO;AAGvD,MAAIH,EAAqBD,CAAK;AAC5B,WAAOK;AAAA,MACLL,EAAM;AAAA,MACNgB;AAAA,MACAZ;AAAA,MACAW;AAAA,IAAA;AAIJ,QAAM,EAAE,UAAAH,GAAU,GAAGC,EAAA,IAAgBE;AACrC,SAAOJ,EAAaK,GAAYZ,GAASQ,KAAY,IAAOrB,GAASsB,CAAW;AAClF;"}
|