mogh_ui 1.2.7 → 1.2.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/dist/components/tabbed-page.cjs +30 -3
- package/dist/components/tabbed-page.cjs.map +1 -1
- package/dist/components/tabbed-page.d.ts +11 -1
- package/dist/components/tabbed-page.d.ts.map +1 -1
- package/dist/components/tabbed-page.js +28 -2
- package/dist/components/tabbed-page.js.map +1 -1
- package/package.json +1 -1
|
@@ -18,24 +18,50 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var tabbed_page_exports = {};
|
|
20
20
|
__export(tabbed_page_exports, {
|
|
21
|
-
TabbedPage: () => TabbedPage
|
|
21
|
+
TabbedPage: () => TabbedPage,
|
|
22
|
+
tabSlug: () => tabSlug
|
|
22
23
|
});
|
|
23
24
|
module.exports = __toCommonJS(tabbed_page_exports);
|
|
24
25
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
25
26
|
var import_core = require("@mantine/core");
|
|
26
27
|
var import_hooks = require("@mantine/hooks");
|
|
28
|
+
var import_react = require("react");
|
|
29
|
+
var import_react_router_dom = require("react-router-dom");
|
|
27
30
|
var import_page = require("./page");
|
|
28
31
|
var import_lucide_react = require("lucide-react");
|
|
32
|
+
function tabSlug(tab) {
|
|
33
|
+
return tab.toLowerCase().replace(/\s+/g, "-");
|
|
34
|
+
}
|
|
29
35
|
function TabbedPage({
|
|
30
36
|
storageKey,
|
|
37
|
+
queryKey = "tab",
|
|
31
38
|
tabs,
|
|
32
39
|
...tabsProps
|
|
33
40
|
}) {
|
|
34
41
|
const defaultTab = tabs[0]?.tab;
|
|
35
|
-
const [
|
|
42
|
+
const [storedTab, setStoredTab] = (0, import_hooks.useLocalStorage)({
|
|
36
43
|
key: storageKey,
|
|
37
44
|
defaultValue: defaultTab
|
|
38
45
|
});
|
|
46
|
+
const [searchParams, setSearchParams] = (0, import_react_router_dom.useSearchParams)();
|
|
47
|
+
const querySlug = queryKey ? searchParams.get(queryKey) : null;
|
|
48
|
+
const queryTab = querySlug ? tabs.find(({ tab }) => tabSlug(tab) === querySlug)?.tab : void 0;
|
|
49
|
+
const selectedTab = queryTab ?? storedTab;
|
|
50
|
+
const setSelectedTab = (0, import_react.useCallback)(
|
|
51
|
+
(tab) => {
|
|
52
|
+
setStoredTab(tab);
|
|
53
|
+
if (queryKey) {
|
|
54
|
+
setSearchParams(
|
|
55
|
+
(params) => {
|
|
56
|
+
params.set(queryKey, tabSlug(tab));
|
|
57
|
+
return params;
|
|
58
|
+
},
|
|
59
|
+
{ replace: true }
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
[queryKey, setStoredTab, setSearchParams]
|
|
64
|
+
);
|
|
39
65
|
const Content = tabs.find((tab) => tab.tab === selectedTab)?.content ?? (() => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.Center, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.CircleQuestionMark, { size: 22 }) }));
|
|
40
66
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
41
67
|
import_core.Tabs,
|
|
@@ -61,6 +87,7 @@ function TabbedPage({
|
|
|
61
87
|
}
|
|
62
88
|
// Annotate the CommonJS export names for ESM import in node:
|
|
63
89
|
0 && (module.exports = {
|
|
64
|
-
TabbedPage
|
|
90
|
+
TabbedPage,
|
|
91
|
+
tabSlug
|
|
65
92
|
});
|
|
66
93
|
//# sourceMappingURL=tabbed-page.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/tabbed-page.tsx"],"sourcesContent":["import {\n Center,\n DefaultMantineColor,\n Group,\n Tabs,\n TabsProps,\n Text,\n} from \"@mantine/core\";\nimport { useLocalStorage } from \"@mantine/hooks\";\nimport { FC } from \"react\";\nimport { Page } from \"./page\";\nimport { CircleQuestionMark } from \"lucide-react\";\n\nexport type TabbedPageItem<Tab extends string> = {\n tab: Tab;\n icon?: FC<{ size?: string | number }>;\n content?: FC;\n};\n\nexport interface TabbedPageProps<Tab extends string> extends TabsProps {\n /** Store current tab on localStorage */\n storageKey: string;\n tabs: TabbedPageItem<Tab>[];\n}\n\nexport function TabbedPage<Tab extends string>({\n storageKey,\n tabs,\n ...tabsProps\n}: TabbedPageProps<Tab>) {\n const defaultTab = tabs[0]?.tab;\n const [
|
|
1
|
+
{"version":3,"sources":["../../src/components/tabbed-page.tsx"],"sourcesContent":["import {\n Center,\n DefaultMantineColor,\n Group,\n Tabs,\n TabsProps,\n Text,\n} from \"@mantine/core\";\nimport { useLocalStorage } from \"@mantine/hooks\";\nimport { FC, useCallback } from \"react\";\nimport { useSearchParams } from \"react-router-dom\";\nimport { Page } from \"./page\";\nimport { CircleQuestionMark } from \"lucide-react\";\n\nexport type TabbedPageItem<Tab extends string> = {\n tab: Tab;\n icon?: FC<{ size?: string | number }>;\n content?: FC;\n};\n\nexport interface TabbedPageProps<Tab extends string> extends TabsProps {\n /** Store current tab on localStorage */\n storageKey: string;\n /**\n * Sync the selected tab with this url query param, so links\n * can target a specific tab, eg. `/settings?tab=secret-providers`.\n * Tabs are matched by slug (lowercased, spaces to '-').\n * The query takes priority over localStorage.\n * Default: \"tab\". Pass false to disable.\n */\n queryKey?: string | false;\n tabs: TabbedPageItem<Tab>[];\n}\n\n/** \"Secret Providers\" => \"secret-providers\" */\nexport function tabSlug(tab: string) {\n return tab.toLowerCase().replace(/\\s+/g, \"-\");\n}\n\nexport function TabbedPage<Tab extends string>({\n storageKey,\n queryKey = \"tab\",\n tabs,\n ...tabsProps\n}: TabbedPageProps<Tab>) {\n const defaultTab = tabs[0]?.tab;\n const [storedTab, setStoredTab] = useLocalStorage<Tab>({\n key: storageKey,\n defaultValue: defaultTab,\n });\n\n const [searchParams, setSearchParams] = useSearchParams();\n const querySlug = queryKey ? searchParams.get(queryKey) : null;\n const queryTab = querySlug\n ? tabs.find(({ tab }) => tabSlug(tab) === querySlug)?.tab\n : undefined;\n\n const selectedTab = queryTab ?? storedTab;\n const setSelectedTab = useCallback(\n (tab: Tab) => {\n setStoredTab(tab);\n if (queryKey) {\n setSearchParams(\n (params) => {\n params.set(queryKey, tabSlug(tab));\n return params;\n },\n { replace: true },\n );\n }\n },\n [queryKey, setStoredTab, setSearchParams],\n );\n\n const Content =\n tabs.find((tab) => tab.tab === selectedTab)?.content ??\n (() => (\n <Center>\n <CircleQuestionMark size={22} />\n </Center>\n ));\n return (\n <Tabs\n value={selectedTab}\n onChange={(tab) => setSelectedTab((tab as Tab) ?? defaultTab)}\n {...tabsProps}\n >\n <Page\n customTitle={\n <Tabs.List>\n {tabs.map(({ tab, icon }) => {\n const Icon = icon ?? CircleQuestionMark;\n return (\n <Tabs.Tab key={tab} value={tab}>\n <Group opacity={tab === selectedTab ? 1 : 0.6}>\n <Icon size={20} />\n <Text fz=\"h3\">{tab}</Text>\n </Group>\n </Tabs.Tab>\n );\n })}\n </Tabs.List>\n }\n >\n <Content />\n </Page>\n </Tabs>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA8EQ;AA9ER,kBAOO;AACP,mBAAgC;AAChC,mBAAgC;AAChC,8BAAgC;AAChC,kBAAqB;AACrB,0BAAmC;AAuB5B,SAAS,QAAQ,KAAa;AACnC,SAAO,IAAI,YAAY,EAAE,QAAQ,QAAQ,GAAG;AAC9C;AAEO,SAAS,WAA+B;AAAA,EAC7C;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA,GAAG;AACL,GAAyB;AACvB,QAAM,aAAa,KAAK,CAAC,GAAG;AAC5B,QAAM,CAAC,WAAW,YAAY,QAAI,8BAAqB;AAAA,IACrD,KAAK;AAAA,IACL,cAAc;AAAA,EAChB,CAAC;AAED,QAAM,CAAC,cAAc,eAAe,QAAI,yCAAgB;AACxD,QAAM,YAAY,WAAW,aAAa,IAAI,QAAQ,IAAI;AAC1D,QAAM,WAAW,YACb,KAAK,KAAK,CAAC,EAAE,IAAI,MAAM,QAAQ,GAAG,MAAM,SAAS,GAAG,MACpD;AAEJ,QAAM,cAAc,YAAY;AAChC,QAAM,qBAAiB;AAAA,IACrB,CAAC,QAAa;AACZ,mBAAa,GAAG;AAChB,UAAI,UAAU;AACZ;AAAA,UACE,CAAC,WAAW;AACV,mBAAO,IAAI,UAAU,QAAQ,GAAG,CAAC;AACjC,mBAAO;AAAA,UACT;AAAA,UACA,EAAE,SAAS,KAAK;AAAA,QAClB;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,UAAU,cAAc,eAAe;AAAA,EAC1C;AAEA,QAAM,UACJ,KAAK,KAAK,CAAC,QAAQ,IAAI,QAAQ,WAAW,GAAG,YAC5C,MACC,4CAAC,sBACC,sDAAC,0CAAmB,MAAM,IAAI,GAChC;AAEJ,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAO;AAAA,MACP,UAAU,CAAC,QAAQ,eAAgB,OAAe,UAAU;AAAA,MAC3D,GAAG;AAAA,MAEJ;AAAA,QAAC;AAAA;AAAA,UACC,aACE,4CAAC,iBAAK,MAAL,EACE,eAAK,IAAI,CAAC,EAAE,KAAK,KAAK,MAAM;AAC3B,kBAAM,OAAO,QAAQ;AACrB,mBACE,4CAAC,iBAAK,KAAL,EAAmB,OAAO,KACzB,uDAAC,qBAAM,SAAS,QAAQ,cAAc,IAAI,KACxC;AAAA,0DAAC,QAAK,MAAM,IAAI;AAAA,cAChB,4CAAC,oBAAK,IAAG,MAAM,eAAI;AAAA,eACrB,KAJa,GAKf;AAAA,UAEJ,CAAC,GACH;AAAA,UAGF,sDAAC,WAAQ;AAAA;AAAA,MACX;AAAA;AAAA,EACF;AAEJ;","names":[]}
|
|
@@ -10,7 +10,17 @@ export type TabbedPageItem<Tab extends string> = {
|
|
|
10
10
|
export interface TabbedPageProps<Tab extends string> extends TabsProps {
|
|
11
11
|
/** Store current tab on localStorage */
|
|
12
12
|
storageKey: string;
|
|
13
|
+
/**
|
|
14
|
+
* Sync the selected tab with this url query param, so links
|
|
15
|
+
* can target a specific tab, eg. `/settings?tab=secret-providers`.
|
|
16
|
+
* Tabs are matched by slug (lowercased, spaces to '-').
|
|
17
|
+
* The query takes priority over localStorage.
|
|
18
|
+
* Default: "tab". Pass false to disable.
|
|
19
|
+
*/
|
|
20
|
+
queryKey?: string | false;
|
|
13
21
|
tabs: TabbedPageItem<Tab>[];
|
|
14
22
|
}
|
|
15
|
-
|
|
23
|
+
/** "Secret Providers" => "secret-providers" */
|
|
24
|
+
export declare function tabSlug(tab: string): string;
|
|
25
|
+
export declare function TabbedPage<Tab extends string>({ storageKey, queryKey, tabs, ...tabsProps }: TabbedPageProps<Tab>): import("react").JSX.Element;
|
|
16
26
|
//# sourceMappingURL=tabbed-page.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabbed-page.d.ts","sourceRoot":"","sources":["../../src/components/tabbed-page.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,SAAS,EAEV,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"tabbed-page.d.ts","sourceRoot":"","sources":["../../src/components/tabbed-page.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,SAAS,EAEV,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,EAAE,EAAe,MAAM,OAAO,CAAC;AAKxC,MAAM,MAAM,cAAc,CAAC,GAAG,SAAS,MAAM,IAAI;IAC/C,GAAG,EAAE,GAAG,CAAC;IACT,IAAI,CAAC,EAAE,EAAE,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,EAAE,CAAC;CACd,CAAC;AAEF,MAAM,WAAW,eAAe,CAAC,GAAG,SAAS,MAAM,CAAE,SAAQ,SAAS;IACpE,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC1B,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;CAC7B;AAED,+CAA+C;AAC/C,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,UAElC;AAED,wBAAgB,UAAU,CAAC,GAAG,SAAS,MAAM,EAAE,EAC7C,UAAU,EACV,QAAgB,EAChB,IAAI,EACJ,GAAG,SAAS,EACb,EAAE,eAAe,CAAC,GAAG,CAAC,+BAgEtB"}
|
|
@@ -6,18 +6,43 @@ import {
|
|
|
6
6
|
Text
|
|
7
7
|
} from "@mantine/core";
|
|
8
8
|
import { useLocalStorage } from "@mantine/hooks";
|
|
9
|
+
import { useCallback } from "react";
|
|
10
|
+
import { useSearchParams } from "react-router-dom";
|
|
9
11
|
import { Page } from "./page";
|
|
10
12
|
import { CircleQuestionMark } from "lucide-react";
|
|
13
|
+
function tabSlug(tab) {
|
|
14
|
+
return tab.toLowerCase().replace(/\s+/g, "-");
|
|
15
|
+
}
|
|
11
16
|
function TabbedPage({
|
|
12
17
|
storageKey,
|
|
18
|
+
queryKey = "tab",
|
|
13
19
|
tabs,
|
|
14
20
|
...tabsProps
|
|
15
21
|
}) {
|
|
16
22
|
const defaultTab = tabs[0]?.tab;
|
|
17
|
-
const [
|
|
23
|
+
const [storedTab, setStoredTab] = useLocalStorage({
|
|
18
24
|
key: storageKey,
|
|
19
25
|
defaultValue: defaultTab
|
|
20
26
|
});
|
|
27
|
+
const [searchParams, setSearchParams] = useSearchParams();
|
|
28
|
+
const querySlug = queryKey ? searchParams.get(queryKey) : null;
|
|
29
|
+
const queryTab = querySlug ? tabs.find(({ tab }) => tabSlug(tab) === querySlug)?.tab : void 0;
|
|
30
|
+
const selectedTab = queryTab ?? storedTab;
|
|
31
|
+
const setSelectedTab = useCallback(
|
|
32
|
+
(tab) => {
|
|
33
|
+
setStoredTab(tab);
|
|
34
|
+
if (queryKey) {
|
|
35
|
+
setSearchParams(
|
|
36
|
+
(params) => {
|
|
37
|
+
params.set(queryKey, tabSlug(tab));
|
|
38
|
+
return params;
|
|
39
|
+
},
|
|
40
|
+
{ replace: true }
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
[queryKey, setStoredTab, setSearchParams]
|
|
45
|
+
);
|
|
21
46
|
const Content = tabs.find((tab) => tab.tab === selectedTab)?.content ?? (() => /* @__PURE__ */ jsx(Center, { children: /* @__PURE__ */ jsx(CircleQuestionMark, { size: 22 }) }));
|
|
22
47
|
return /* @__PURE__ */ jsx(
|
|
23
48
|
Tabs,
|
|
@@ -42,6 +67,7 @@ function TabbedPage({
|
|
|
42
67
|
);
|
|
43
68
|
}
|
|
44
69
|
export {
|
|
45
|
-
TabbedPage
|
|
70
|
+
TabbedPage,
|
|
71
|
+
tabSlug
|
|
46
72
|
};
|
|
47
73
|
//# sourceMappingURL=tabbed-page.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/tabbed-page.tsx"],"sourcesContent":["import {\n Center,\n DefaultMantineColor,\n Group,\n Tabs,\n TabsProps,\n Text,\n} from \"@mantine/core\";\nimport { useLocalStorage } from \"@mantine/hooks\";\nimport { FC } from \"react\";\nimport { Page } from \"./page\";\nimport { CircleQuestionMark } from \"lucide-react\";\n\nexport type TabbedPageItem<Tab extends string> = {\n tab: Tab;\n icon?: FC<{ size?: string | number }>;\n content?: FC;\n};\n\nexport interface TabbedPageProps<Tab extends string> extends TabsProps {\n /** Store current tab on localStorage */\n storageKey: string;\n tabs: TabbedPageItem<Tab>[];\n}\n\nexport function TabbedPage<Tab extends string>({\n storageKey,\n tabs,\n ...tabsProps\n}: TabbedPageProps<Tab>) {\n const defaultTab = tabs[0]?.tab;\n const [
|
|
1
|
+
{"version":3,"sources":["../../src/components/tabbed-page.tsx"],"sourcesContent":["import {\n Center,\n DefaultMantineColor,\n Group,\n Tabs,\n TabsProps,\n Text,\n} from \"@mantine/core\";\nimport { useLocalStorage } from \"@mantine/hooks\";\nimport { FC, useCallback } from \"react\";\nimport { useSearchParams } from \"react-router-dom\";\nimport { Page } from \"./page\";\nimport { CircleQuestionMark } from \"lucide-react\";\n\nexport type TabbedPageItem<Tab extends string> = {\n tab: Tab;\n icon?: FC<{ size?: string | number }>;\n content?: FC;\n};\n\nexport interface TabbedPageProps<Tab extends string> extends TabsProps {\n /** Store current tab on localStorage */\n storageKey: string;\n /**\n * Sync the selected tab with this url query param, so links\n * can target a specific tab, eg. `/settings?tab=secret-providers`.\n * Tabs are matched by slug (lowercased, spaces to '-').\n * The query takes priority over localStorage.\n * Default: \"tab\". Pass false to disable.\n */\n queryKey?: string | false;\n tabs: TabbedPageItem<Tab>[];\n}\n\n/** \"Secret Providers\" => \"secret-providers\" */\nexport function tabSlug(tab: string) {\n return tab.toLowerCase().replace(/\\s+/g, \"-\");\n}\n\nexport function TabbedPage<Tab extends string>({\n storageKey,\n queryKey = \"tab\",\n tabs,\n ...tabsProps\n}: TabbedPageProps<Tab>) {\n const defaultTab = tabs[0]?.tab;\n const [storedTab, setStoredTab] = useLocalStorage<Tab>({\n key: storageKey,\n defaultValue: defaultTab,\n });\n\n const [searchParams, setSearchParams] = useSearchParams();\n const querySlug = queryKey ? searchParams.get(queryKey) : null;\n const queryTab = querySlug\n ? tabs.find(({ tab }) => tabSlug(tab) === querySlug)?.tab\n : undefined;\n\n const selectedTab = queryTab ?? storedTab;\n const setSelectedTab = useCallback(\n (tab: Tab) => {\n setStoredTab(tab);\n if (queryKey) {\n setSearchParams(\n (params) => {\n params.set(queryKey, tabSlug(tab));\n return params;\n },\n { replace: true },\n );\n }\n },\n [queryKey, setStoredTab, setSearchParams],\n );\n\n const Content =\n tabs.find((tab) => tab.tab === selectedTab)?.content ??\n (() => (\n <Center>\n <CircleQuestionMark size={22} />\n </Center>\n ));\n return (\n <Tabs\n value={selectedTab}\n onChange={(tab) => setSelectedTab((tab as Tab) ?? defaultTab)}\n {...tabsProps}\n >\n <Page\n customTitle={\n <Tabs.List>\n {tabs.map(({ tab, icon }) => {\n const Icon = icon ?? CircleQuestionMark;\n return (\n <Tabs.Tab key={tab} value={tab}>\n <Group opacity={tab === selectedTab ? 1 : 0.6}>\n <Icon size={20} />\n <Text fz=\"h3\">{tab}</Text>\n </Group>\n </Tabs.Tab>\n );\n })}\n </Tabs.List>\n }\n >\n <Content />\n </Page>\n </Tabs>\n );\n}\n"],"mappings":"AA8EQ,cAgBU,YAhBV;AA9ER;AAAA,EACE;AAAA,EAEA;AAAA,EACA;AAAA,EAEA;AAAA,OACK;AACP,SAAS,uBAAuB;AAChC,SAAa,mBAAmB;AAChC,SAAS,uBAAuB;AAChC,SAAS,YAAY;AACrB,SAAS,0BAA0B;AAuB5B,SAAS,QAAQ,KAAa;AACnC,SAAO,IAAI,YAAY,EAAE,QAAQ,QAAQ,GAAG;AAC9C;AAEO,SAAS,WAA+B;AAAA,EAC7C;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA,GAAG;AACL,GAAyB;AACvB,QAAM,aAAa,KAAK,CAAC,GAAG;AAC5B,QAAM,CAAC,WAAW,YAAY,IAAI,gBAAqB;AAAA,IACrD,KAAK;AAAA,IACL,cAAc;AAAA,EAChB,CAAC;AAED,QAAM,CAAC,cAAc,eAAe,IAAI,gBAAgB;AACxD,QAAM,YAAY,WAAW,aAAa,IAAI,QAAQ,IAAI;AAC1D,QAAM,WAAW,YACb,KAAK,KAAK,CAAC,EAAE,IAAI,MAAM,QAAQ,GAAG,MAAM,SAAS,GAAG,MACpD;AAEJ,QAAM,cAAc,YAAY;AAChC,QAAM,iBAAiB;AAAA,IACrB,CAAC,QAAa;AACZ,mBAAa,GAAG;AAChB,UAAI,UAAU;AACZ;AAAA,UACE,CAAC,WAAW;AACV,mBAAO,IAAI,UAAU,QAAQ,GAAG,CAAC;AACjC,mBAAO;AAAA,UACT;AAAA,UACA,EAAE,SAAS,KAAK;AAAA,QAClB;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,UAAU,cAAc,eAAe;AAAA,EAC1C;AAEA,QAAM,UACJ,KAAK,KAAK,CAAC,QAAQ,IAAI,QAAQ,WAAW,GAAG,YAC5C,MACC,oBAAC,UACC,8BAAC,sBAAmB,MAAM,IAAI,GAChC;AAEJ,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAO;AAAA,MACP,UAAU,CAAC,QAAQ,eAAgB,OAAe,UAAU;AAAA,MAC3D,GAAG;AAAA,MAEJ;AAAA,QAAC;AAAA;AAAA,UACC,aACE,oBAAC,KAAK,MAAL,EACE,eAAK,IAAI,CAAC,EAAE,KAAK,KAAK,MAAM;AAC3B,kBAAM,OAAO,QAAQ;AACrB,mBACE,oBAAC,KAAK,KAAL,EAAmB,OAAO,KACzB,+BAAC,SAAM,SAAS,QAAQ,cAAc,IAAI,KACxC;AAAA,kCAAC,QAAK,MAAM,IAAI;AAAA,cAChB,oBAAC,QAAK,IAAG,MAAM,eAAI;AAAA,eACrB,KAJa,GAKf;AAAA,UAEJ,CAAC,GACH;AAAA,UAGF,8BAAC,WAAQ;AAAA;AAAA,MACX;AAAA;AAAA,EACF;AAEJ;","names":[]}
|