@yourbestsoft/studio-screen-ui-kit 0.0.5 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './CardCollection';
|
package/dist/index2.js
CHANGED
|
@@ -1,21 +1,78 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import { HardDriveDownload as
|
|
4
|
-
import { e as
|
|
5
|
-
import { k as
|
|
1
|
+
import { jsx as e, jsxs as s } from "react/jsx-runtime";
|
|
2
|
+
import m from "classnames";
|
|
3
|
+
import { Image as h, Video as g, FileQuestion as p, HardDriveDownload as u, Share2 as y, PencilRuler as I } from "lucide-react";
|
|
4
|
+
import { d as l, e as o, B as v } from "./ToolIconButton-uQjlHv_6.js";
|
|
5
|
+
import { k as U, u as X } from "./ToolIconButton-uQjlHv_6.js";
|
|
6
6
|
import "react";
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
7
|
+
const f = [
|
|
8
|
+
"png",
|
|
9
|
+
"jpg",
|
|
10
|
+
"jpeg",
|
|
11
|
+
"gif",
|
|
12
|
+
"bmp",
|
|
13
|
+
"webp",
|
|
14
|
+
"svg",
|
|
15
|
+
"ico",
|
|
16
|
+
"tiff",
|
|
17
|
+
"heic",
|
|
18
|
+
"heif"
|
|
19
|
+
], N = [
|
|
20
|
+
"mp4",
|
|
21
|
+
"mov",
|
|
22
|
+
"avi",
|
|
23
|
+
"mkv",
|
|
24
|
+
"webm",
|
|
25
|
+
"flv",
|
|
26
|
+
"wmv",
|
|
27
|
+
"mpeg",
|
|
28
|
+
"3gp",
|
|
29
|
+
"ogv"
|
|
30
|
+
];
|
|
31
|
+
function C(t) {
|
|
32
|
+
const r = t.split(".").pop()?.toLowerCase();
|
|
33
|
+
return r ? f.includes(r) ? "image" : N.includes(r) ? "video" : "unknown" : "unknown";
|
|
34
|
+
}
|
|
35
|
+
const H = "_root_y0usf_1", b = "_cardList_y0usf_5", S = "_cardItemHeader_y0usf_16", T = "_cardItemHeaderIcon_y0usf_23", k = "_cardItemHeaderTitle_y0usf_28", x = "_cardItemHeaderAction_y0usf_34", q = "_cardItemContentImg_y0usf_38", a = {
|
|
36
|
+
root: H,
|
|
37
|
+
cardList: b,
|
|
38
|
+
cardItemHeader: S,
|
|
39
|
+
cardItemHeaderIcon: T,
|
|
40
|
+
cardItemHeaderTitle: k,
|
|
41
|
+
cardItemHeaderAction: x,
|
|
42
|
+
cardItemContentImg: q
|
|
43
|
+
}, $ = (t) => {
|
|
44
|
+
const { className: r, items: n } = t;
|
|
45
|
+
return /* @__PURE__ */ e("div", { className: m(a.cardList, r), children: n.map((i) => /* @__PURE__ */ e(w, { card: i }, i.image.id)) });
|
|
46
|
+
}, w = ({ card: t }) => {
|
|
47
|
+
const r = C(t.image.name);
|
|
48
|
+
return /* @__PURE__ */ e(l.Root, { style: { borderRadius: "0.5rem" }, children: /* @__PURE__ */ s(l.Content, { className: a.cardItem, children: [
|
|
49
|
+
/* @__PURE__ */ s("div", { className: a.cardItemHeader, children: [
|
|
50
|
+
/* @__PURE__ */ e("div", { className: a.cardItemHeaderIcon, children: r === "image" ? /* @__PURE__ */ e(h, { height: 20 }) : r === "video" ? /* @__PURE__ */ e(g, { height: 20 }) : /* @__PURE__ */ e(p, { height: 20 }) }),
|
|
51
|
+
/* @__PURE__ */ e("h5", { className: a.cardItemHeaderTitle, children: t.image.name }),
|
|
52
|
+
/* @__PURE__ */ e("div", { className: a.cardItemHeaderAction, children: t.headerAction })
|
|
53
|
+
] }),
|
|
54
|
+
/* @__PURE__ */ e("div", { className: a.cardItemContent, children: /* @__PURE__ */ e(
|
|
55
|
+
"img",
|
|
56
|
+
{
|
|
57
|
+
src: t.image.url,
|
|
58
|
+
alt: t.image.name,
|
|
59
|
+
className: a.cardItemContentImg
|
|
60
|
+
}
|
|
61
|
+
) }),
|
|
62
|
+
t.footerSection && /* @__PURE__ */ e("div", { className: a.cardItemFooter, children: t.footerSection })
|
|
63
|
+
] }) });
|
|
64
|
+
}, L = "_content_1iqyy_1", D = "_card_1iqyy_5", P = "_cardList_1iqyy_12", A = "_cardIcon_1iqyy_19", E = "_cardTitle_1iqyy_28", j = "_cardDescription_1iqyy_33", R = "_red_1iqyy_41", z = "_green_1iqyy_45", B = "_primary_1iqyy_49", c = {
|
|
65
|
+
content: L,
|
|
66
|
+
card: D,
|
|
67
|
+
cardList: P,
|
|
68
|
+
cardIcon: A,
|
|
69
|
+
cardTitle: E,
|
|
70
|
+
cardDescription: j,
|
|
71
|
+
red: R,
|
|
72
|
+
green: z,
|
|
73
|
+
primary: B
|
|
74
|
+
}, G = (t) => {
|
|
75
|
+
const { trigger: r } = t, n = [
|
|
19
76
|
{
|
|
20
77
|
action: () => {
|
|
21
78
|
console.log("Save to disk action");
|
|
@@ -23,7 +80,7 @@ const L = "_root_y0usf_1", x = "_cardList_y0usf_5", P = "_cardItemHeader_y0usf_1
|
|
|
23
80
|
bgColor: "green",
|
|
24
81
|
buttonName: "Save file",
|
|
25
82
|
description: "Export scene data to a file that can be imported later.",
|
|
26
|
-
icon: /* @__PURE__ */ e(
|
|
83
|
+
icon: /* @__PURE__ */ e(u, { size: 45 }),
|
|
27
84
|
title: "Save to disk"
|
|
28
85
|
},
|
|
29
86
|
{
|
|
@@ -33,7 +90,7 @@ const L = "_root_y0usf_1", x = "_cardList_y0usf_5", P = "_cardItemHeader_y0usf_1
|
|
|
33
90
|
bgColor: "red",
|
|
34
91
|
buttonName: "Share link",
|
|
35
92
|
description: "Export a link to share your scene with others.",
|
|
36
|
-
icon: /* @__PURE__ */ e(
|
|
93
|
+
icon: /* @__PURE__ */ e(y, { size: 45 }),
|
|
37
94
|
title: "Share via link"
|
|
38
95
|
},
|
|
39
96
|
{
|
|
@@ -43,60 +100,54 @@ const L = "_root_y0usf_1", x = "_cardList_y0usf_5", P = "_cardItemHeader_y0usf_1
|
|
|
43
100
|
bgColor: "primary",
|
|
44
101
|
buttonName: "Primer+",
|
|
45
102
|
description: "Save the scene in your Primer+ workspace.",
|
|
46
|
-
icon: /* @__PURE__ */ e(
|
|
103
|
+
icon: /* @__PURE__ */ e(I, { size: 45 }),
|
|
47
104
|
title: "Primer+"
|
|
48
105
|
}
|
|
49
106
|
];
|
|
50
|
-
return /* @__PURE__ */ s(
|
|
51
|
-
/* @__PURE__ */ e(
|
|
52
|
-
/* @__PURE__ */ s(
|
|
53
|
-
/* @__PURE__ */ e(
|
|
54
|
-
/* @__PURE__ */ e(
|
|
55
|
-
/* @__PURE__ */ e("div", { className:
|
|
56
|
-
|
|
107
|
+
return /* @__PURE__ */ s(o.Root, { children: [
|
|
108
|
+
/* @__PURE__ */ e(o.Trigger, { children: r }),
|
|
109
|
+
/* @__PURE__ */ s(o.Content, { className: c.content, children: [
|
|
110
|
+
/* @__PURE__ */ e(o.Title, { children: "Save as..." }),
|
|
111
|
+
/* @__PURE__ */ e(o.Separator, {}),
|
|
112
|
+
/* @__PURE__ */ e("div", { className: c.cardList, children: n.map((i, d) => /* @__PURE__ */ e(
|
|
113
|
+
F,
|
|
57
114
|
{
|
|
58
|
-
icon:
|
|
59
|
-
title:
|
|
60
|
-
bgColor:
|
|
61
|
-
description:
|
|
62
|
-
action:
|
|
63
|
-
buttonName:
|
|
115
|
+
icon: i.icon,
|
|
116
|
+
title: i.title,
|
|
117
|
+
bgColor: i.bgColor,
|
|
118
|
+
description: i.description,
|
|
119
|
+
action: i.action,
|
|
120
|
+
buttonName: i.buttonName
|
|
64
121
|
},
|
|
65
|
-
|
|
122
|
+
d
|
|
66
123
|
)) })
|
|
67
124
|
] })
|
|
68
125
|
] });
|
|
69
|
-
},
|
|
70
|
-
action:
|
|
71
|
-
bgColor:
|
|
72
|
-
buttonName:
|
|
73
|
-
description:
|
|
74
|
-
icon:
|
|
75
|
-
title:
|
|
76
|
-
}) => /* @__PURE__ */ s("div", { className:
|
|
77
|
-
/* @__PURE__ */ e("div", { className:
|
|
78
|
-
/* @__PURE__ */ e("h3", { className:
|
|
79
|
-
/* @__PURE__ */ e("p", { className:
|
|
126
|
+
}, F = ({
|
|
127
|
+
action: t,
|
|
128
|
+
bgColor: r = "primary",
|
|
129
|
+
buttonName: n,
|
|
130
|
+
description: i,
|
|
131
|
+
icon: d,
|
|
132
|
+
title: _
|
|
133
|
+
}) => /* @__PURE__ */ s("div", { className: c.card, children: [
|
|
134
|
+
/* @__PURE__ */ e("div", { className: m(c.cardIcon, c[r]), children: d }),
|
|
135
|
+
/* @__PURE__ */ e("h3", { className: c.cardTitle, children: _ }),
|
|
136
|
+
/* @__PURE__ */ e("p", { className: c.cardDescription, children: i }),
|
|
80
137
|
/* @__PURE__ */ e(
|
|
81
|
-
|
|
138
|
+
v,
|
|
82
139
|
{
|
|
83
|
-
onClick:
|
|
140
|
+
onClick: t,
|
|
84
141
|
fullWidth: !0,
|
|
85
|
-
className:
|
|
86
|
-
children:
|
|
142
|
+
className: m(c.button, c[r]),
|
|
143
|
+
children: n
|
|
87
144
|
}
|
|
88
145
|
)
|
|
89
146
|
] });
|
|
90
147
|
export {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
j as cardItemHeaderAction,
|
|
96
|
-
w as cardItemHeaderIcon,
|
|
97
|
-
z as cardItemHeaderTitle,
|
|
98
|
-
x as cardList,
|
|
99
|
-
L as root,
|
|
100
|
-
M as useTheme
|
|
148
|
+
$ as CardCollection,
|
|
149
|
+
G as SaveModal,
|
|
150
|
+
U as ThemeProvider,
|
|
151
|
+
X as useTheme
|
|
101
152
|
};
|
|
102
153
|
//# sourceMappingURL=index2.js.map
|
package/dist/index2.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index2.js","sources":["../src/features/save-modal/SaveModal.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport { HardDriveDownload, PencilRuler, Share2 } from 'lucide-react'\nimport { ReactNode } from 'react'\n\nimport { Dialog, Button } from '../../components'\nimport style from './save-modal.module.scss'\n\ninterface Props {\n trigger: ReactNode\n}\n\ninterface SaveOption {\n icon: ReactNode\n title: string\n description: string\n action: () => void\n buttonName: string\n bgColor?: 'red' | 'green' | 'primary'\n}\n\nexport const SaveModal = (props: Props) => {\n const { trigger } = props\n\n const saveOptions: SaveOption[] = [\n {\n action: () => {\n console.log('Save to disk action')\n },\n bgColor: 'green',\n buttonName: 'Save file',\n description: 'Export scene data to a file that can be imported later.',\n icon: <HardDriveDownload size={45} />,\n title: 'Save to disk',\n },\n {\n action: () => {\n console.log('Share link action')\n },\n bgColor: 'red',\n buttonName: 'Share link',\n description: 'Export a link to share your scene with others.',\n icon: <Share2 size={45} />,\n title: 'Share via link',\n },\n {\n action: () => {\n console.log('Save to Primer+ action')\n },\n bgColor: 'primary',\n buttonName: 'Primer+',\n description: 'Save the scene in your Primer+ workspace.',\n icon: <PencilRuler size={45} />,\n title: 'Primer+',\n },\n ]\n\n return (\n <Dialog.Root>\n <Dialog.Trigger>{trigger}</Dialog.Trigger>\n <Dialog.Content className={style.content}>\n <Dialog.Title>Save as...</Dialog.Title>\n <Dialog.Separator />\n <div className={style.cardList}>\n {saveOptions.map((option, index) => (\n <SaveCardOption\n key={index}\n icon={option.icon}\n title={option.title}\n bgColor={option.bgColor}\n description={option.description}\n action={option.action}\n buttonName={option.buttonName}\n />\n ))}\n </div>\n </Dialog.Content>\n </Dialog.Root>\n )\n}\n\nconst SaveCardOption = ({\n action,\n bgColor = 'primary',\n buttonName,\n description,\n icon,\n title,\n}: SaveOption) => {\n return (\n <div className={style.card}>\n <div className={classNames(style.cardIcon, style[bgColor])}>{icon}</div>\n <h3 className={style.cardTitle}>{title}</h3>\n <p className={style.cardDescription}>{description}</p>\n <Button\n onClick={action}\n fullWidth\n className={classNames(style.button, style[bgColor])}\n >\n {buttonName}\n </Button>\n </div>\n )\n}\n"],"names":["
|
|
1
|
+
{"version":3,"file":"index2.js","sources":["../src/utils/fileUtils.ts","../src/features/card-collection/CardCollection.tsx","../src/features/save-modal/SaveModal.tsx"],"sourcesContent":["const imageMimeTypes = [\n 'image/png',\n 'image/jpeg',\n 'image/jpg',\n 'image/gif',\n 'image/bmp',\n 'image/webp',\n 'image/svg+xml',\n 'image/x-icon',\n 'image/tiff',\n 'image/heic',\n 'image/heif',\n]\n\nconst videoMimeTypes = [\n 'video/mp4',\n 'video/quicktime',\n 'video/x-msvideo',\n 'video/x-matroska',\n 'video/webm',\n 'video/x-flv',\n 'video/x-ms-wmv',\n 'video/mpeg',\n 'video/3gpp',\n 'video/ogg',\n]\n\nconst imageExtensions = [\n 'png',\n 'jpg',\n 'jpeg',\n 'gif',\n 'bmp',\n 'webp',\n 'svg',\n 'ico',\n 'tiff',\n 'heic',\n 'heif',\n]\n\nconst videoExtensions = [\n 'mp4',\n 'mov',\n 'avi',\n 'mkv',\n 'webm',\n 'flv',\n 'wmv',\n 'mpeg',\n '3gp',\n 'ogv',\n]\n\nexport type FileType = 'image' | 'video' | 'unknown'\n\nexport function checkFileType(file: File): FileType {\n const fileType = file.type\n if (imageMimeTypes.includes(fileType)) return 'image'\n if (videoMimeTypes.includes(fileType)) return 'video'\n return 'unknown'\n}\n\nexport function checkFileTypeByExtension(filename: string): FileType {\n const extension = filename.split('.').pop()?.toLowerCase()\n\n if (!extension) return 'unknown'\n\n if (imageExtensions.includes(extension)) return 'image'\n if (videoExtensions.includes(extension)) return 'video'\n return 'unknown'\n}\n","import classNames from 'classnames'\nimport { FileQuestion, Image, Video } from 'lucide-react'\nimport { ReactNode } from 'react'\n\nimport { Card } from '../../components'\nimport { checkFileTypeByExtension } from '../../utils'\nimport s from './card-collection.module.scss'\n\ntype Item = {\n image: {\n url: string\n name: string\n id: string\n }\n headerAction?: ReactNode\n footerSection?: ReactNode\n}\n\ntype Props = {\n className?: string\n items: Item[]\n}\n\nexport const CardCollection = (props: Props) => {\n const { className, items } = props\n\n return (\n <div className={classNames(s.cardList, className)}>\n {items.map((item) => (\n <CardCollectionItem key={item.image.id} card={item} />\n ))}\n </div>\n )\n}\n\nconst CardCollectionItem = ({ card }: { card: Item }) => {\n const fileType = checkFileTypeByExtension(card.image.name)\n\n return (\n <Card.Root style={{ borderRadius: '0.5rem' }}>\n <Card.Content className={s.cardItem}>\n <div className={s.cardItemHeader}>\n <div className={s.cardItemHeaderIcon}>\n {fileType === 'image' ? (\n <Image height={20} />\n ) : fileType === 'video' ? (\n <Video height={20} />\n ) : (\n <FileQuestion height={20} />\n )}\n </div>\n <h5 className={s.cardItemHeaderTitle}>{card.image.name}</h5>\n <div className={s.cardItemHeaderAction}>{card.headerAction}</div>\n </div>\n <div className={s.cardItemContent}>\n <img\n src={card.image.url}\n alt={card.image.name}\n className={s.cardItemContentImg}\n />\n </div>\n {card.footerSection && (\n <div className={s.cardItemFooter}>{card.footerSection}</div>\n )}\n </Card.Content>\n </Card.Root>\n )\n}\n","import classNames from 'classnames'\nimport { HardDriveDownload, PencilRuler, Share2 } from 'lucide-react'\nimport { ReactNode } from 'react'\n\nimport { Dialog, Button } from '../../components'\nimport style from './save-modal.module.scss'\n\ninterface Props {\n trigger: ReactNode\n}\n\ninterface SaveOption {\n icon: ReactNode\n title: string\n description: string\n action: () => void\n buttonName: string\n bgColor?: 'red' | 'green' | 'primary'\n}\n\nexport const SaveModal = (props: Props) => {\n const { trigger } = props\n\n const saveOptions: SaveOption[] = [\n {\n action: () => {\n console.log('Save to disk action')\n },\n bgColor: 'green',\n buttonName: 'Save file',\n description: 'Export scene data to a file that can be imported later.',\n icon: <HardDriveDownload size={45} />,\n title: 'Save to disk',\n },\n {\n action: () => {\n console.log('Share link action')\n },\n bgColor: 'red',\n buttonName: 'Share link',\n description: 'Export a link to share your scene with others.',\n icon: <Share2 size={45} />,\n title: 'Share via link',\n },\n {\n action: () => {\n console.log('Save to Primer+ action')\n },\n bgColor: 'primary',\n buttonName: 'Primer+',\n description: 'Save the scene in your Primer+ workspace.',\n icon: <PencilRuler size={45} />,\n title: 'Primer+',\n },\n ]\n\n return (\n <Dialog.Root>\n <Dialog.Trigger>{trigger}</Dialog.Trigger>\n <Dialog.Content className={style.content}>\n <Dialog.Title>Save as...</Dialog.Title>\n <Dialog.Separator />\n <div className={style.cardList}>\n {saveOptions.map((option, index) => (\n <SaveCardOption\n key={index}\n icon={option.icon}\n title={option.title}\n bgColor={option.bgColor}\n description={option.description}\n action={option.action}\n buttonName={option.buttonName}\n />\n ))}\n </div>\n </Dialog.Content>\n </Dialog.Root>\n )\n}\n\nconst SaveCardOption = ({\n action,\n bgColor = 'primary',\n buttonName,\n description,\n icon,\n title,\n}: SaveOption) => {\n return (\n <div className={style.card}>\n <div className={classNames(style.cardIcon, style[bgColor])}>{icon}</div>\n <h3 className={style.cardTitle}>{title}</h3>\n <p className={style.cardDescription}>{description}</p>\n <Button\n onClick={action}\n fullWidth\n className={classNames(style.button, style[bgColor])}\n >\n {buttonName}\n </Button>\n </div>\n )\n}\n"],"names":["imageExtensions","videoExtensions","checkFileTypeByExtension","filename","extension","CardCollection","props","className","items","jsx","classNames","s","item","CardCollectionItem","card","fileType","Card","jsxs","Image","Video","FileQuestion","SaveModal","trigger","saveOptions","HardDriveDownload","Share2","PencilRuler","Dialog","style","option","index","SaveCardOption","action","bgColor","buttonName","description","icon","title","Button"],"mappings":";;;;;;AA2BA,MAAMA,IAAkB;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEMC,IAAkB;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAWO,SAASC,EAAyBC,GAA4B;AACnE,QAAMC,IAAYD,EAAS,MAAM,GAAG,EAAE,OAAO,YAAY;AAErD,SAACC,IAEDJ,EAAgB,SAASI,CAAS,IAAU,UAC5CH,EAAgB,SAASG,CAAS,IAAU,UACzC,YAJgB;AAKzB;;;;;;;;;GChDaC,IAAiB,CAACC,MAAiB;AACxC,QAAA,EAAE,WAAAC,GAAW,OAAAC,EAAA,IAAUF;AAG3B,SAAA,gBAAAG,EAAC,SAAI,WAAWC,EAAWC,EAAE,UAAUJ,CAAS,GAC7C,UAAMC,EAAA,IAAI,CAACI,MACV,gBAAAH,EAACI,KAAuC,MAAMD,KAArBA,EAAK,MAAM,EAAgB,CACrD,GACH;AAEJ,GAEMC,IAAqB,CAAC,EAAE,MAAAC,QAA2B;AACvD,QAAMC,IAAWb,EAAyBY,EAAK,MAAM,IAAI;AAEzD,SACG,gBAAAL,EAAAO,EAAK,MAAL,EAAU,OAAO,EAAE,cAAc,SAAS,GACzC,4BAACA,EAAK,SAAL,EAAa,WAAWL,EAAE,UACzB,UAAA;AAAA,IAAC,gBAAAM,EAAA,OAAA,EAAI,WAAWN,EAAE,gBAChB,UAAA;AAAA,MAAC,gBAAAF,EAAA,OAAA,EAAI,WAAWE,EAAE,oBACf,gBAAa,UACZ,gBAAAF,EAACS,GAAM,EAAA,QAAQ,GAAI,CAAA,IACjBH,MAAa,UACf,gBAAAN,EAACU,KAAM,QAAQ,GAAA,CAAI,IAElB,gBAAAV,EAAAW,GAAA,EAAa,QAAQ,GAAA,CAAI,EAE9B,CAAA;AAAA,wBACC,MAAG,EAAA,WAAWT,EAAE,qBAAsB,UAAAG,EAAK,MAAM,MAAK;AAAA,wBACtD,OAAI,EAAA,WAAWH,EAAE,sBAAuB,YAAK,aAAa,CAAA;AAAA,IAAA,GAC7D;AAAA,IACC,gBAAAF,EAAA,OAAA,EAAI,WAAWE,EAAE,iBAChB,UAAA,gBAAAF;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAKK,EAAK,MAAM;AAAA,QAChB,KAAKA,EAAK,MAAM;AAAA,QAChB,WAAWH,EAAE;AAAA,MAAA;AAAA,IAAA,GAEjB;AAAA,IACCG,EAAK,iBACH,gBAAAL,EAAA,OAAA,EAAI,WAAWE,EAAE,gBAAiB,YAAK,cAAc,CAAA;AAAA,EAAA,EAAA,CAE1D,EACF,CAAA;AAEJ;;;;;;;;;;GC/CaU,IAAY,CAACf,MAAiB;AACnC,QAAA,EAAE,SAAAgB,MAAYhB,GAEdiB,IAA4B;AAAA,IAChC;AAAA,MACE,QAAQ,MAAM;AACZ,gBAAQ,IAAI,qBAAqB;AAAA,MACnC;AAAA,MACA,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,MAAM,gBAAAd,EAACe,GAAkB,EAAA,MAAM,GAAI,CAAA;AAAA,MACnC,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,QAAQ,MAAM;AACZ,gBAAQ,IAAI,mBAAmB;AAAA,MACjC;AAAA,MACA,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,MAAM,gBAAAf,EAACgB,GAAO,EAAA,MAAM,GAAI,CAAA;AAAA,MACxB,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,QAAQ,MAAM;AACZ,gBAAQ,IAAI,wBAAwB;AAAA,MACtC;AAAA,MACA,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,MAAM,gBAAAhB,EAACiB,GAAY,EAAA,MAAM,GAAI,CAAA;AAAA,MAC7B,OAAO;AAAA,IAAA;AAAA,EAEX;AAGE,SAAA,gBAAAT,EAACU,EAAO,MAAP,EACC,UAAA;AAAA,IAAC,gBAAAlB,EAAAkB,EAAO,SAAP,EAAgB,UAAQL,EAAA,CAAA;AAAA,sBACxBK,EAAO,SAAP,EAAe,WAAWC,EAAM,SAC/B,UAAA;AAAA,MAAC,gBAAAnB,EAAAkB,EAAO,OAAP,EAAa,UAAU,aAAA,CAAA;AAAA,MACxB,gBAAAlB,EAACkB,EAAO,WAAP,EAAiB;AAAA,MAClB,gBAAAlB,EAAC,SAAI,WAAWmB,EAAM,UACnB,UAAYL,EAAA,IAAI,CAACM,GAAQC,MACxB,gBAAArB;AAAA,QAACsB;AAAA,QAAA;AAAA,UAEC,MAAMF,EAAO;AAAA,UACb,OAAOA,EAAO;AAAA,UACd,SAASA,EAAO;AAAA,UAChB,aAAaA,EAAO;AAAA,UACpB,QAAQA,EAAO;AAAA,UACf,YAAYA,EAAO;AAAA,QAAA;AAAA,QANdC;AAAA,MAAA,CAQR,EACH,CAAA;AAAA,IAAA,EACF,CAAA;AAAA,EAAA,GACF;AAEJ,GAEMC,IAAiB,CAAC;AAAA,EACtB,QAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,YAAAC;AAAA,EACA,aAAAC;AAAA,EACA,MAAAC;AAAA,EACA,OAAAC;AACF,MAEK,gBAAApB,EAAA,OAAA,EAAI,WAAWW,EAAM,MACpB,UAAA;AAAA,EAAC,gBAAAnB,EAAA,OAAA,EAAI,WAAWC,EAAWkB,EAAM,UAAUA,EAAMK,CAAO,CAAC,GAAI,UAAKG,EAAA,CAAA;AAAA,EACjE,gBAAA3B,EAAA,MAAA,EAAG,WAAWmB,EAAM,WAAY,UAAMS,GAAA;AAAA,EACtC,gBAAA5B,EAAA,KAAA,EAAE,WAAWmB,EAAM,iBAAkB,UAAYO,GAAA;AAAA,EAClD,gBAAA1B;AAAA,IAAC6B;AAAA,IAAA;AAAA,MACC,SAASN;AAAA,MACT,WAAS;AAAA,MACT,WAAWtB,EAAWkB,EAAM,QAAQA,EAAMK,CAAO,CAAC;AAAA,MAEjD,UAAAC;AAAA,IAAA;AAAA,EAAA;AACH,GACF;"}
|