@plumile/ui 0.1.125 → 0.1.131
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 +6 -0
- package/lib/esm/admin/organisms/admin_sidebar/adminSidebar.css.js +2 -1
- package/lib/esm/admin/organisms/admin_topbar/adminTopbar.css.js +1 -1
- package/lib/esm/admin/theme/BackofficeThemeProvider.js +43 -0
- package/lib/esm/admin/theme/BackofficeThemeProvider.js.map +1 -0
- package/lib/esm/admin/theme/adminDensity.css.js +1 -1
- package/lib/esm/admin/theme/adminSurface.css.js +1 -1
- package/lib/esm/atomic/atoms/badge/badge.css.js.map +1 -1
- package/lib/esm/atomic/atoms/button/button.css.js +2 -2
- package/lib/esm/atomic/atoms/button/button.css.js.map +1 -1
- package/lib/esm/atomic/atoms/checkbox/checkbox.css.js.map +1 -1
- package/lib/esm/atomic/atoms/input/input.css.js.map +1 -1
- package/lib/esm/atomic/atoms/textarea/textarea.css.js.map +1 -1
- package/lib/esm/atomic/molecules/breadcrumb_navigation/breadcrumbNavigation.css.js.map +1 -1
- package/lib/esm/atomic/molecules/checkbox_field/checkboxField.css.js.map +1 -1
- package/lib/esm/atomic/molecules/form/formStyles.css.js.map +1 -1
- package/lib/esm/atomic/molecules/markdown/LazyMarkdownRenderer.css.js +1 -1
- package/lib/esm/atomic/molecules/markdown/components/MarkdownArticleContainer.css.js +1 -0
- package/lib/esm/atomic/molecules/markdown/components/MarkdownArticleContainer.css.js.map +1 -1
- package/lib/esm/atomic/molecules/markdown/components/MarkdownCodeCopyButton.css.js.map +1 -1
- package/lib/esm/atomic/molecules/markdown/components/MarkdownDelete.css.js.map +1 -1
- package/lib/esm/atomic/molecules/markdown/components/MarkdownEmphasis.css.js.map +1 -1
- package/lib/esm/atomic/molecules/markdown/components/MarkdownFootnoteReference.css.js.map +1 -1
- package/lib/esm/atomic/molecules/markdown/components/MarkdownHeading.css.js +0 -1
- package/lib/esm/atomic/molecules/markdown/components/MarkdownHeading.css.js.map +1 -1
- package/lib/esm/atomic/molecules/markdown/components/MarkdownInlineCode.css.js.map +1 -1
- package/lib/esm/atomic/molecules/markdown/components/MarkdownLink.css.js.map +1 -1
- package/lib/esm/atomic/molecules/markdown/components/MarkdownList.css.js.map +1 -1
- package/lib/esm/atomic/molecules/markdown/components/MarkdownListItem.css.js.map +1 -1
- package/lib/esm/atomic/molecules/markdown/components/MarkdownMark.css.js.map +1 -1
- package/lib/esm/atomic/molecules/markdown/components/MarkdownMermaidBlock.js +1 -1
- package/lib/esm/atomic/molecules/markdown/components/MarkdownMermaidBlock.js.map +1 -1
- package/lib/esm/atomic/molecules/markdown/components/MarkdownParagraph.css.js.map +1 -1
- package/lib/esm/atomic/molecules/markdown/components/MarkdownStrong.css.js.map +1 -1
- package/lib/esm/atomic/molecules/markdown/components/MarkdownSubscript.css.js.map +1 -1
- package/lib/esm/atomic/molecules/markdown/components/MarkdownSuperscript.css.js.map +1 -1
- package/lib/esm/atomic/molecules/markdown/components/MarkdownTable.css.js.map +1 -1
- package/lib/esm/atomic/molecules/markdown/components/MarkdownTableCaption.css.js.map +1 -1
- package/lib/esm/atomic/molecules/markdown/components/MarkdownTableCell.css.js.map +1 -1
- package/lib/esm/atomic/molecules/markdown/components/MarkdownTableRow.css.js.map +1 -1
- package/lib/esm/atomic/molecules/markdown/components/MarkdownTaskListItem.css.js.map +1 -1
- package/lib/esm/atomic/molecules/markdown/components/MarkdownText.css.js.map +1 -1
- package/lib/esm/atomic/molecules/tabs/tabs.css.js.map +1 -1
- package/lib/esm/atomic/molecules/toast/toast.css.js.map +1 -1
- package/lib/esm/atomic/organisms/sidebar/navigationSidebar.css.js.map +1 -1
- package/lib/esm/atomic/organisms/sidebar/sidebar.css.js.map +1 -1
- package/lib/esm/backoffice/atoms/tag/Tag.js +9 -8
- package/lib/esm/backoffice/atoms/tag/Tag.js.map +1 -1
- package/lib/esm/backoffice/layout/backofficeLayoutTokens.js +1 -1
- package/lib/esm/backoffice/layout/backofficeLayoutTokens.js.map +1 -1
- package/lib/esm/backoffice/molecules/backoffice_filter_drawer/backofficeFilterDrawer.css.js.map +1 -1
- package/lib/esm/backoffice/molecules/backoffice_relations_menu/backofficeRelationsMenu.css.js.map +1 -1
- package/lib/esm/backoffice/molecules/backoffice_tabs/backofficeTabs.css.js +2 -2
- package/lib/esm/backoffice/molecules/backoffice_tabs/backofficeTabs.css.js.map +1 -1
- package/lib/esm/backoffice/molecules/filter_chip_row/filterChipRow.css.js.map +1 -1
- package/lib/esm/backoffice/molecules/sidebar_nav_item/sidebarNavItem.css.js +1 -1
- package/lib/esm/backoffice/molecules/sidebar_nav_item/sidebarNavItem.css.js.map +1 -1
- package/lib/esm/backoffice/molecules/sidebar_nav_section/sidebarNavSection.css.js.map +1 -1
- package/lib/esm/backoffice/molecules/sidebar_profile_menu/sidebarProfileMenu.css.js.map +1 -1
- package/lib/esm/backoffice/templates/detail_page_template/detailPageTemplate.css.js +1 -1
- package/lib/esm/backoffice/templates/list_page_template/listPageTemplate.css.js +1 -1
- package/lib/esm/backoffice/templates/list_page_template/listPageTemplate.css.js.map +1 -1
- package/lib/esm/components/charts/MetricHistoryChart.js +1 -1
- package/lib/esm/components/charts/MetricHistoryChart.js.map +1 -1
- package/lib/esm/components/charts/TimeSeriesLineChart.js +34 -34
- package/lib/esm/components/charts/TimeSeriesLineChart.js.map +1 -1
- package/lib/esm/components/dashboard/section_nav/SectionNav.css.js.map +1 -1
- package/lib/esm/components/dashboard/segmented_nav/SegmentedNav.css.js.map +1 -1
- package/lib/esm/components/data-table/DataTable.css.js +44 -44
- package/lib/esm/components/data-table/DataTable.css.js.map +1 -1
- package/lib/esm/components/data-table/ResponsiveRecordList.css.js +1 -1
- package/lib/esm/components/data-table/ResponsiveRecordList.css.js.map +1 -1
- package/lib/esm/components/data-table/VirtualizedConnectionTable.js +1 -1
- package/lib/esm/components/layout/PageShell.css.js.map +1 -1
- package/lib/esm/components/media/imagePreviewModal.css.js.map +1 -1
- package/lib/esm/components/routing/routePendingBar.css.js.map +1 -1
- package/lib/esm/components/select/SimpleSelect.css.js.map +1 -1
- package/lib/esm/index.js +255 -256
- package/lib/esm/internal/charts/timeSeriesLineChartHelpers.js +54 -4
- package/lib/esm/internal/charts/timeSeriesLineChartHelpers.js.map +1 -1
- package/lib/esm/shared/backofficeTableDensity.css.js +1 -1
- package/lib/esm/shared/currencyAmount.js +36 -23
- package/lib/esm/shared/currencyAmount.js.map +1 -1
- package/lib/esm/style.css +1 -1
- package/lib/esm/theme/ThemeProvider.js +28 -26
- package/lib/esm/theme/ThemeProvider.js.map +1 -1
- package/lib/esm/theme/backofficeTheme.css.js +4092 -0
- package/lib/esm/theme/backofficeTheme.css.js.map +1 -0
- package/lib/esm/theme/index.js +11 -11
- package/lib/esm/theme/publicTheme.css.js +4091 -0
- package/lib/esm/theme/publicTheme.css.js.map +1 -0
- package/lib/esm/theme/sprinkles.css.js.map +1 -1
- package/lib/esm/theme/theme.css.js +6129 -3
- package/lib/esm/theme/theme.css.js.map +1 -1
- package/lib/esm/theme/themeContract.css.js +2329 -0
- package/lib/esm/theme/themeContract.css.js.map +1 -0
- package/lib/types/admin/theme/BackofficeThemeProvider.d.ts +18 -0
- package/lib/types/admin/theme/BackofficeThemeProvider.d.ts.map +1 -0
- package/lib/types/backoffice/atoms/tag/Tag.d.ts +2 -1
- package/lib/types/backoffice/atoms/tag/Tag.d.ts.map +1 -1
- package/lib/types/components/charts/TimeSeriesLineChart.d.ts +2 -0
- package/lib/types/components/charts/TimeSeriesLineChart.d.ts.map +1 -1
- package/lib/types/components/data-table/DataTable.css.d.ts.map +1 -1
- package/lib/types/index.d.ts +2 -3
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/internal/charts/timeSeriesLineChartHelpers.d.ts +20 -0
- package/lib/types/internal/charts/timeSeriesLineChartHelpers.d.ts.map +1 -1
- package/lib/types/shared/currencyAmount.d.ts +5 -1
- package/lib/types/shared/currencyAmount.d.ts.map +1 -1
- package/lib/types/theme/ThemeProvider.d.ts +3 -1
- package/lib/types/theme/ThemeProvider.d.ts.map +1 -1
- package/lib/types/theme/backofficeTheme.css.d.ts +4291 -0
- package/lib/types/theme/backofficeTheme.css.d.ts.map +1 -0
- package/lib/types/theme/index.d.ts +1 -1
- package/lib/types/theme/index.d.ts.map +1 -1
- package/lib/types/theme/publicTheme.css.d.ts +4296 -0
- package/lib/types/theme/publicTheme.css.d.ts.map +1 -0
- package/lib/types/theme/theme.css.d.ts +3 -3
- package/lib/types/theme/theme.css.d.ts.map +1 -1
- package/lib/types/theme/{themeContract.d.ts → themeContract.css.d.ts} +1 -1
- package/lib/types/theme/{theme-light.css.d.ts.map → themeContract.css.d.ts.map} +1 -1
- package/package.json +3 -3
- package/lib/esm/admin/theme/AdminThemeProvider.js +0 -15
- package/lib/esm/admin/theme/AdminThemeProvider.js.map +0 -1
- package/lib/esm/admin/theme/adminTheme.css.js +0 -13
- package/lib/esm/admin/theme/adminTheme.css.js.map +0 -1
- package/lib/esm/theme/theme-dark.css.js +0 -8
- package/lib/esm/theme/theme-dark.css.js.map +0 -1
- package/lib/esm/theme/theme-light.css.js +0 -2049
- package/lib/esm/theme/theme-light.css.js.map +0 -1
- package/lib/esm/theme/themeContract.js +0 -1051
- package/lib/esm/theme/themeContract.js.map +0 -1
- package/lib/types/admin/theme/AdminThemeProvider.d.ts +0 -9
- package/lib/types/admin/theme/AdminThemeProvider.d.ts.map +0 -1
- package/lib/types/admin/theme/adminTheme.css.d.ts +0 -2
- package/lib/types/admin/theme/adminTheme.css.d.ts.map +0 -1
- package/lib/types/theme/theme-dark.css.d.ts +0 -2
- package/lib/types/theme/theme-dark.css.d.ts.map +0 -1
- package/lib/types/theme/theme-light.css.d.ts +0 -2146
- package/lib/types/theme/themeContract.d.ts.map +0 -1
|
@@ -1,56 +1,58 @@
|
|
|
1
1
|
import "./accessibility.css.js";
|
|
2
2
|
import "./global.css.js";
|
|
3
|
-
import {
|
|
3
|
+
import { publicDarkThemeClass as e, publicLightThemeClass as t } from "./theme.css.js";
|
|
4
4
|
import { createContext as n, useContext as r, useEffect as i, useMemo as a, useState as o } from "react";
|
|
5
5
|
import { jsx as s } from "react/jsx-runtime";
|
|
6
6
|
//#region src/theme/ThemeProvider.tsx
|
|
7
|
-
var c = n(void 0), l = "plumile-theme-mode", u = () => typeof window > "u" || typeof window.matchMedia != "function" ? "light" : window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light", d = (e, t) => e === "system" ? t : e, f = (e) => {
|
|
7
|
+
var c = n(void 0), l = "plumile-theme-mode", u = () => typeof window > "u" || typeof window.matchMedia != "function" ? "light" : window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light", d = (e, t) => e === "system" ? t : e, f = (e) => e === "system" || e === "light" || e === "dark", p = (e, t = l) => {
|
|
8
8
|
if (typeof window > "u") return e;
|
|
9
|
-
let
|
|
10
|
-
return
|
|
11
|
-
},
|
|
12
|
-
let [
|
|
9
|
+
let n = window.localStorage.getItem(t);
|
|
10
|
+
return f(n) ? n : e;
|
|
11
|
+
}, m = (e) => e.split(/\s+/).filter(Boolean), h = ({ children: n, defaultMode: r = "system" }) => {
|
|
12
|
+
let [f, h] = o(() => p(r)), [g, _] = o(() => u()), v = d(f, g);
|
|
13
13
|
i(() => {
|
|
14
|
-
if (
|
|
14
|
+
if (f === "system" && typeof window < "u" && typeof window.matchMedia == "function") {
|
|
15
15
|
let e = window.matchMedia("(prefers-color-scheme: dark)"), t = (t) => {
|
|
16
16
|
if (t?.matches ?? e.matches) {
|
|
17
|
-
|
|
17
|
+
_("dark");
|
|
18
18
|
return;
|
|
19
19
|
}
|
|
20
|
-
|
|
20
|
+
_("light");
|
|
21
21
|
};
|
|
22
22
|
return t(e), e.addEventListener("change", t), () => {
|
|
23
23
|
e.removeEventListener("change", t);
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
|
-
}, [
|
|
27
|
-
typeof window > "u" || window.localStorage.setItem(l,
|
|
28
|
-
}, [
|
|
26
|
+
}, [f]), i(() => {
|
|
27
|
+
typeof window > "u" || window.localStorage.setItem(l, f);
|
|
28
|
+
}, [f]), i(() => {
|
|
29
29
|
if (typeof document > "u") return;
|
|
30
|
-
let n = document.
|
|
31
|
-
return
|
|
32
|
-
n.classList.remove(t, e);
|
|
30
|
+
let n = document.body, r = t;
|
|
31
|
+
return v === "dark" && (r = e), n.classList.remove(...m(t), ...m(e)), n.classList.add(...m(r)), () => {
|
|
32
|
+
n.classList.remove(...m(t), ...m(e));
|
|
33
33
|
};
|
|
34
|
-
}, [
|
|
35
|
-
let
|
|
36
|
-
mode:
|
|
37
|
-
resolvedTheme:
|
|
38
|
-
setMode:
|
|
39
|
-
}), [
|
|
34
|
+
}, [v]);
|
|
35
|
+
let y = a(() => ({
|
|
36
|
+
mode: f,
|
|
37
|
+
resolvedTheme: v,
|
|
38
|
+
setMode: h
|
|
39
|
+
}), [f, v]);
|
|
40
40
|
return /* @__PURE__ */ s(c.Provider, {
|
|
41
|
-
value:
|
|
41
|
+
value: y,
|
|
42
42
|
children: n
|
|
43
43
|
});
|
|
44
|
-
},
|
|
44
|
+
}, g = () => {
|
|
45
45
|
let e = r(c);
|
|
46
46
|
if (e == null) throw Error("useTheme must be used within a ThemeProvider");
|
|
47
47
|
return e;
|
|
48
|
-
},
|
|
48
|
+
}, _ = {
|
|
49
49
|
getSystemTheme: u,
|
|
50
|
+
isThemeMode: f,
|
|
50
51
|
resolveTheme: d,
|
|
51
|
-
readStoredMode:
|
|
52
|
+
readStoredMode: p,
|
|
53
|
+
splitClassName: m
|
|
52
54
|
};
|
|
53
55
|
//#endregion
|
|
54
|
-
export { l as THEME_MODE_KEY,
|
|
56
|
+
export { l as THEME_MODE_KEY, h as ThemeProvider, _ as __test, g as useTheme };
|
|
55
57
|
|
|
56
58
|
//# sourceMappingURL=ThemeProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeProvider.js","names":[],"sources":["../../../src/theme/ThemeProvider.tsx"],"sourcesContent":["import {\n type JSX,\n type ReactNode,\n createContext,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from 'react';\n\nimport './accessibility.css.js';\nimport './global.css.js';\nimport {
|
|
1
|
+
{"version":3,"file":"ThemeProvider.js","names":[],"sources":["../../../src/theme/ThemeProvider.tsx"],"sourcesContent":["import {\n type JSX,\n type ReactNode,\n createContext,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from 'react';\n\nimport './accessibility.css.js';\nimport './global.css.js';\nimport { publicDarkThemeClass, publicLightThemeClass } from './theme.css.js';\n\nexport type ThemeMode = 'system' | 'light' | 'dark';\nexport type ResolvedTheme = 'light' | 'dark';\n\ntype ThemeContextValue = {\n mode: ThemeMode;\n resolvedTheme: ResolvedTheme;\n setMode: (mode: ThemeMode) => void;\n};\n\nconst ThemeContext = createContext<ThemeContextValue | undefined>(undefined);\n\nexport const THEME_MODE_KEY = 'plumile-theme-mode';\n\ntype ThemeProviderProps = {\n children: ReactNode;\n defaultMode?: ThemeMode;\n};\n\nconst getSystemTheme = (): ResolvedTheme => {\n if (\n typeof window === 'undefined' ||\n typeof window.matchMedia !== 'function'\n ) {\n return 'light';\n }\n\n if (window.matchMedia('(prefers-color-scheme: dark)').matches) {\n return 'dark';\n }\n\n return 'light';\n};\n\nconst resolveTheme = (\n mode: ThemeMode,\n systemTheme: ResolvedTheme,\n): ResolvedTheme => {\n if (mode === 'system') {\n return systemTheme;\n }\n\n return mode;\n};\n\nconst isThemeMode = (value: string | null): value is ThemeMode => {\n return value === 'system' || value === 'light' || value === 'dark';\n};\n\nconst readStoredMode = (\n defaultMode: ThemeMode,\n storageKey = THEME_MODE_KEY,\n): ThemeMode => {\n if (typeof window === 'undefined') {\n return defaultMode;\n }\n\n const storage = window.localStorage;\n const savedMode = storage.getItem(storageKey);\n\n if (isThemeMode(savedMode)) {\n return savedMode;\n }\n\n return defaultMode;\n};\n\nconst splitClassName = (className: string): string[] => {\n return className.split(/\\s+/).filter(Boolean);\n};\n\nexport const ThemeProvider = ({\n children,\n defaultMode = 'system',\n}: ThemeProviderProps): JSX.Element => {\n const [mode, setMode] = useState<ThemeMode>(() => {\n return readStoredMode(defaultMode);\n });\n const [systemTheme, setSystemTheme] = useState<ResolvedTheme>(() => {\n return getSystemTheme();\n });\n const resolvedTheme = resolveTheme(mode, systemTheme);\n\n useEffect(() => {\n if (\n mode === 'system' &&\n typeof window !== 'undefined' &&\n typeof window.matchMedia === 'function'\n ) {\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n\n const updateSystemTheme = (\n event?: MediaQueryList | MediaQueryListEvent,\n ): void => {\n const matchesDarkTheme = event?.matches ?? mediaQuery.matches;\n\n if (matchesDarkTheme) {\n setSystemTheme('dark');\n return;\n }\n\n setSystemTheme('light');\n };\n\n updateSystemTheme(mediaQuery);\n mediaQuery.addEventListener('change', updateSystemTheme);\n\n return () => {\n mediaQuery.removeEventListener('change', updateSystemTheme);\n };\n }\n\n return undefined;\n }, [mode]);\n\n useEffect(() => {\n if (typeof window === 'undefined') {\n return undefined;\n }\n\n const storage = window.localStorage;\n storage.setItem(THEME_MODE_KEY, mode);\n return undefined;\n }, [mode]);\n\n useEffect(() => {\n if (typeof document === 'undefined') {\n return undefined;\n }\n\n const root = document.body;\n let themeClass = publicLightThemeClass;\n\n if (resolvedTheme === 'dark') {\n themeClass = publicDarkThemeClass;\n }\n\n root.classList.remove(\n ...splitClassName(publicLightThemeClass),\n ...splitClassName(publicDarkThemeClass),\n );\n root.classList.add(...splitClassName(themeClass));\n\n return () => {\n root.classList.remove(\n ...splitClassName(publicLightThemeClass),\n ...splitClassName(publicDarkThemeClass),\n );\n };\n }, [resolvedTheme]);\n\n const value = useMemo(() => {\n return {\n mode,\n resolvedTheme,\n setMode,\n };\n }, [mode, resolvedTheme]);\n\n return (\n <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>\n );\n};\n\nexport const useTheme = (): ThemeContextValue => {\n const context = useContext(ThemeContext);\n\n if (context == null) {\n throw new Error('useTheme must be used within a ThemeProvider');\n }\n\n return context;\n};\n\nexport const __test = {\n getSystemTheme,\n isThemeMode,\n resolveTheme,\n readStoredMode,\n splitClassName,\n} as const;\n"],"mappings":";;;;;;AAuBA,IAAM,IAAe,EAA6C,KAAA,EAAU,EAE/D,IAAiB,sBAOxB,UAEF,OAAO,SAAW,OAClB,OAAO,OAAO,cAAe,aAEtB,UAGL,OAAO,WAAW,+BAA+B,CAAC,UAC7C,SAGF,SAGH,KACJ,GACA,MAEI,MAAS,WACJ,IAGF,GAGH,KAAe,MACZ,MAAU,YAAY,MAAU,WAAW,MAAU,QAGxD,KACJ,GACA,IAAa,MACC;CACd,IAAI,OAAO,SAAW,KACpB,OAAO;CAIT,IAAM,IADU,OAAO,aACG,QAAQ,EAAW;CAM7C,OAJI,EAAY,EAAU,GACjB,IAGF;GAGH,KAAkB,MACf,EAAU,MAAM,MAAM,CAAC,OAAO,QAAQ,EAGlC,KAAiB,EAC5B,aACA,iBAAc,eACuB;CACrC,IAAM,CAAC,GAAM,KAAW,QACf,EAAe,EAAY,CAClC,EACI,CAAC,GAAa,KAAkB,QAC7B,GAAgB,CACvB,EACI,IAAgB,EAAa,GAAM,EAAY;CA4CrD,AA1CA,QAAgB;EACd,IACE,MAAS,YACT,OAAO,SAAW,OAClB,OAAO,OAAO,cAAe,YAC7B;GACA,IAAM,IAAa,OAAO,WAAW,+BAA+B,EAE9D,KACJ,MACS;IAGT,IAFyB,GAAO,WAAW,EAAW,SAEhC;KACpB,EAAe,OAAO;KACtB;;IAGF,EAAe,QAAQ;;GAMzB,OAHA,EAAkB,EAAW,EAC7B,EAAW,iBAAiB,UAAU,EAAkB,QAE3C;IACX,EAAW,oBAAoB,UAAU,EAAkB;;;IAK9D,CAAC,EAAK,CAAC,EAEV,QAAgB;EACV,OAAO,SAAW,OAKtB,OADuB,aACf,QAAQ,GAAgB,EAAK;IAEpC,CAAC,EAAK,CAAC,EAEV,QAAgB;EACd,IAAI,OAAO,WAAa,KACtB;EAGF,IAAM,IAAO,SAAS,MAClB,IAAa;EAYjB,OAVI,MAAkB,WACpB,IAAa,IAGf,EAAK,UAAU,OACb,GAAG,EAAe,EAAsB,EACxC,GAAG,EAAe,EAAqB,CACxC,EACD,EAAK,UAAU,IAAI,GAAG,EAAe,EAAW,CAAC,QAEpC;GACX,EAAK,UAAU,OACb,GAAG,EAAe,EAAsB,EACxC,GAAG,EAAe,EAAqB,CACxC;;IAEF,CAAC,EAAc,CAAC;CAEnB,IAAM,IAAQ,SACL;EACL;EACA;EACA;EACD,GACA,CAAC,GAAM,EAAc,CAAC;CAEzB,OACE,kBAAC,EAAa,UAAd;EAA8B;EAAQ;EAAiC,CAAA;GAI9D,UAAoC;CAC/C,IAAM,IAAU,EAAW,EAAa;CAExC,IAAI,KAAW,MACb,MAAU,MAAM,+CAA+C;CAGjE,OAAO;GAGI,IAAS;CACpB;CACA;CACA;CACA;CACA;CACD"}
|