@admin-layout/tailwind-design-pro 10.0.9-alpha.2 → 10.0.9-alpha.6
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/lib/components/Layout/BasicLayout/index.d.ts.map +1 -1
- package/lib/components/Layout/BasicLayout/index.js +11 -24
- package/lib/components/Layout/BasicLayout/index.js.map +1 -1
- package/lib/components/Layout/GlobalHeader/Header.d.ts.map +1 -1
- package/lib/components/Layout/GlobalHeader/Header.js +8 -4
- package/lib/components/Layout/GlobalHeader/Header.js.map +1 -1
- package/lib/components/Layout/ProTailwindLayout.d.ts +2 -0
- package/lib/components/Layout/ProTailwindLayout.d.ts.map +1 -1
- package/lib/components/Layout/ProTailwindLayout.js +6 -1
- package/lib/components/Layout/ProTailwindLayout.js.map +1 -1
- package/lib/components/Layout/Sidebar/Sidebar.d.ts +1 -0
- package/lib/components/Layout/Sidebar/Sidebar.d.ts.map +1 -1
- package/lib/components/Layout/Sidebar/Sidebar.js +27 -9
- package/lib/components/Layout/Sidebar/Sidebar.js.map +1 -1
- package/lib/components/Layout/Sidebar/SidebarMenu.d.ts +3 -5
- package/lib/components/Layout/Sidebar/SidebarMenu.d.ts.map +1 -1
- package/lib/components/Layout/Sidebar/SidebarMenu.js +40 -36
- package/lib/components/Layout/Sidebar/SidebarMenu.js.map +1 -1
- package/lib/components/Layout/slot-fill/AdditionalSettings.d.ts +4 -0
- package/lib/components/Layout/slot-fill/AdditionalSettings.d.ts.map +1 -0
- package/lib/components/Layout/slot-fill/AdditionalSettings.js +7 -0
- package/lib/components/Layout/slot-fill/AdditionalSettings.js.map +1 -0
- package/lib/components/Layout/slot-fill/index.d.ts +1 -0
- package/lib/components/Layout/slot-fill/index.d.ts.map +1 -1
- package/lib/components/SettingDrawer/SettingDrawer.d.ts.map +1 -1
- package/lib/components/SettingDrawer/SettingDrawer.js +32 -12
- package/lib/components/SettingDrawer/SettingDrawer.js.map +1 -1
- package/lib/components/SettingDrawer/ThemeColor.d.ts.map +1 -1
- package/lib/components/SettingDrawer/ThemeColor.js +3 -0
- package/lib/components/SettingDrawer/ThemeColor.js.map +1 -1
- package/lib/components/SettingDrawer/types.d.ts +11 -1
- package/lib/components/SettingDrawer/types.d.ts.map +1 -1
- package/lib/components/ThemeProvider/ThemeProvider.d.ts +18 -0
- package/lib/components/ThemeProvider/ThemeProvider.d.ts.map +1 -0
- package/lib/components/ThemeProvider/ThemeProvider.js +63 -0
- package/lib/components/ThemeProvider/ThemeProvider.js.map +1 -0
- package/lib/components/ThemeProvider/ThemeToggle.d.ts +7 -0
- package/lib/components/ThemeProvider/ThemeToggle.d.ts.map +1 -0
- package/lib/components/ThemeProvider/index.d.ts +7 -0
- package/lib/components/ThemeProvider/index.d.ts.map +1 -0
- package/lib/components/ThemeProvider/themeRegistry.d.ts +3 -0
- package/lib/components/ThemeProvider/themeRegistry.d.ts.map +1 -0
- package/lib/components/ThemeProvider/themeRegistry.js +388 -0
- package/lib/components/ThemeProvider/themeRegistry.js.map +1 -0
- package/lib/components/ThemeProvider/themeUtils.d.ts +26 -0
- package/lib/components/ThemeProvider/themeUtils.d.ts.map +1 -0
- package/lib/components/ThemeProvider/themeUtils.js +135 -0
- package/lib/components/ThemeProvider/themeUtils.js.map +1 -0
- package/lib/components/ThemeProvider/types.d.ts +112 -0
- package/lib/components/ThemeProvider/types.d.ts.map +1 -0
- package/lib/components/typings.d.ts +8 -0
- package/lib/components/typings.d.ts.map +1 -1
- package/lib/compute.js +1 -0
- package/lib/icons.d.ts +14 -0
- package/lib/icons.d.ts.map +1 -0
- package/lib/icons.js +13 -0
- package/lib/icons.js.map +1 -0
- package/lib/index.d.ts +0 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/machines/settingsMachine.d.ts.map +1 -1
- package/lib/machines/settingsMachine.js +2 -1
- package/lib/machines/settingsMachine.js.map +1 -1
- package/lib/routes.json +1 -0
- package/lib/styles/index.css +438 -46
- package/package.json +4 -4
- package/lib/utils/index.d.ts +0 -2
- package/lib/utils/index.d.ts.map +0 -1
- package/lib/utils/index.js +0 -13
- package/lib/utils/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/BasicLayout/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiE,MAAM,OAAO,CAAC;AAOtF,OAAO,EACH,gBAAgB,EAGhB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/BasicLayout/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiE,MAAM,OAAO,CAAC;AAOtF,OAAO,EACH,gBAAgB,EAGhB,iBAAiB,EAGpB,MAAM,sBAAsB,CAAC;AAM9B,eAAO,MAAM,mBAAmB;;;;;uCA6B/B,CAAC;AAgCF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAC9B,gBAAgB,GAAG,iBAAiB,GAAG;IAAE,WAAW,CAAC,EAAE,GAAG,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAqI3F,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {jsx,jsxs}from'react/jsx-runtime';import {
|
|
2
|
-
const useHorizontalScroll = ({
|
|
1
|
+
import {jsx,jsxs}from'react/jsx-runtime';import {useState,useRef,useEffect}from'react';import {Sidebar}from'../Sidebar/Sidebar.js';import {GlobalHeader}from'../GlobalHeader/Header.js';import {useLocation,Outlet}from'@remix-run/react';import warning from'warning';import {omit}from'lodash-es';import {SettingDrawer}from'../../SettingDrawer/SettingDrawer.js';import {defaultSettings,useComponentSize,getMenuSeparation,getThemeColors}from'@admin-layout/client';import isBrowser from'../../../utils/isBrowser/index.js';import {getPageTitleInfo}from'../getPageTitle.js';import {GlobalFooter}from'../GlobalFooter/Footer.js';import {ThemeProvider}from'../../ThemeProvider/ThemeProvider.js';const useHorizontalScroll = ({
|
|
3
2
|
scrolled,
|
|
4
3
|
setScrolled,
|
|
5
4
|
setSearchOptionsShown,
|
|
@@ -61,7 +60,7 @@ const BasicLayout = props => {
|
|
|
61
60
|
...props
|
|
62
61
|
};
|
|
63
62
|
const [scrolled, setScrolled] = useState(false);
|
|
64
|
-
const [collapsed, setCollapsed] = useState();
|
|
63
|
+
const [collapsed, setCollapsed] = useState(false);
|
|
65
64
|
const {
|
|
66
65
|
children,
|
|
67
66
|
onCollapse: propsOnCollapse,
|
|
@@ -85,7 +84,7 @@ const BasicLayout = props => {
|
|
|
85
84
|
actor
|
|
86
85
|
} = propsWithSettings;
|
|
87
86
|
const [isSideMenuOpen, setIsSideMenuOpen] = useState(false);
|
|
88
|
-
|
|
87
|
+
useState(false);
|
|
89
88
|
const location = useLocation();
|
|
90
89
|
const [scrollEnd, setScrollEnd] = useState(false);
|
|
91
90
|
const [searchOptionsShown, setSearchOptionsShown] = useState(false);
|
|
@@ -134,35 +133,22 @@ const BasicLayout = props => {
|
|
|
134
133
|
if (heightBody < window.innerHeight - heightHeader - heightFooter) setFooterFixed(true);else setFooterFixed(false);
|
|
135
134
|
}
|
|
136
135
|
}, [heightHeader, heightBody, heightFooter]);
|
|
137
|
-
useEffect(() => {
|
|
138
|
-
if (settings?.navTheme === 'light') {
|
|
139
|
-
setIsDarkMode(false);
|
|
140
|
-
document.documentElement.classList.remove('dark');
|
|
141
|
-
} else if (settings?.navTheme === 'dark') {
|
|
142
|
-
document.documentElement.classList.add('dark');
|
|
143
|
-
setIsDarkMode(true);
|
|
144
|
-
} else {
|
|
145
|
-
setIsDarkMode(false);
|
|
146
|
-
document.documentElement.classList.remove('dark');
|
|
147
|
-
}
|
|
148
|
-
}, [settings]);
|
|
149
136
|
const toggleSideMenu = () => {
|
|
150
137
|
setIsSideMenuOpen(!isSideMenuOpen);
|
|
151
138
|
};
|
|
152
139
|
const closeSideMenu = () => {
|
|
153
140
|
setIsSideMenuOpen(false);
|
|
154
141
|
};
|
|
155
|
-
return jsx(
|
|
156
|
-
|
|
157
|
-
isDarkMode
|
|
158
|
-
},
|
|
142
|
+
return jsx(ThemeProvider, {
|
|
143
|
+
settings: settings,
|
|
159
144
|
children: jsxs("div", {
|
|
160
|
-
className:
|
|
145
|
+
className: "flex h-screen bg-background font-sans",
|
|
161
146
|
children: [settings?.layout.navigationMode !== 'topbar' && settings?.regions.showMenu && !settings?.layout.splitMenus && jsx(Sidebar, {
|
|
162
147
|
isSideMenuOpen: isSideMenuOpen,
|
|
163
148
|
closeSideMenu: closeSideMenu,
|
|
164
149
|
menuData: menuData,
|
|
165
|
-
collapsed:
|
|
150
|
+
collapsed: collapsed,
|
|
151
|
+
setCollapsed: setCollapsed,
|
|
166
152
|
routeParams: routeParams,
|
|
167
153
|
settings: settings
|
|
168
154
|
}), jsxs("div", {
|
|
@@ -177,9 +163,10 @@ const BasicLayout = props => {
|
|
|
177
163
|
primaryColor: primaryColor,
|
|
178
164
|
settings: settings,
|
|
179
165
|
onSettingChange: onSettingChange,
|
|
180
|
-
actor: actor
|
|
166
|
+
actor: actor,
|
|
167
|
+
colorList: getThemeColors(settings?.theme)
|
|
181
168
|
}), jsx("main", {
|
|
182
|
-
className: "h-full overflow-y-auto",
|
|
169
|
+
className: "h-full overflow-y-auto bg-background text-foreground",
|
|
183
170
|
children: jsx("div", {
|
|
184
171
|
className: "container px-6 mx-auto grid",
|
|
185
172
|
children: jsx(Outlet, {})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/Layout/BasicLayout/index.tsx"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/Layout/BasicLayout/index.tsx"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/GlobalHeader/Header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/GlobalHeader/Header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAInD,MAAM,WAAW,sBAAsB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,UAAU,EAAE,GAAG,CAAC;IAChB,WAAW,EAAE;QACT,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACzB,CAAC;IACF,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,cAAc,CAAC,EAAE,GAAG,CAAC;CACxB;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,GAAG,GAAG,CAwE/D,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {jsx,jsxs}from'react/jsx-runtime';import React__default from'react';import {
|
|
1
|
+
import {jsx,jsxs}from'react/jsx-runtime';import React__default from'react';import {Link}from'@remix-run/react';import {RightContent}from'./RightContent.js';import {icons}from'../../../icons.js';const GlobalHeader = props => {
|
|
2
2
|
const {
|
|
3
3
|
theme,
|
|
4
4
|
layout,
|
|
@@ -8,6 +8,10 @@ import {jsx,jsxs}from'react/jsx-runtime';import React__default from'react';impor
|
|
|
8
8
|
settings,
|
|
9
9
|
toggleSideMenu
|
|
10
10
|
} = props;
|
|
11
|
+
const {
|
|
12
|
+
MenuIcon,
|
|
13
|
+
SearchIcon
|
|
14
|
+
} = icons;
|
|
11
15
|
// Calculate header styles
|
|
12
16
|
const headerStyles = React__default.useMemo(() => ({
|
|
13
17
|
backgroundColor: settings?.navTheme === 'realDark' ? '#222' : '',
|
|
@@ -15,7 +19,7 @@ import {jsx,jsxs}from'react/jsx-runtime';import React__default from'react';impor
|
|
|
15
19
|
}), [settings]);
|
|
16
20
|
if (!settings?.regions?.showHeader) return null;
|
|
17
21
|
return jsx("header", {
|
|
18
|
-
className: "z-10 py-4
|
|
22
|
+
className: "z-10 py-4 dark:bg-gray-800",
|
|
19
23
|
style: headerStyles,
|
|
20
24
|
children: jsxs("div", {
|
|
21
25
|
className: "container flex items-center justify-end h-full px-6 mx-auto text-gray-700 dark:text-gray-200",
|
|
@@ -23,7 +27,7 @@ import {jsx,jsxs}from'react/jsx-runtime';import React__default from'react';impor
|
|
|
23
27
|
className: "p-1 mr-5 -ml-1 rounded-md md:hidden focus:outline-none focus:shadow-outline-purple",
|
|
24
28
|
onClick: toggleSideMenu,
|
|
25
29
|
"aria-label": "Menu",
|
|
26
|
-
children: jsx(
|
|
30
|
+
children: jsx(MenuIcon, {
|
|
27
31
|
className: "w-6 h-6"
|
|
28
32
|
})
|
|
29
33
|
}), settings?.layout?.navigationMode === 'topbar' || settings?.layout.splitMenus ? jsxs(Link, {
|
|
@@ -42,7 +46,7 @@ import {jsx,jsxs}from'react/jsx-runtime';import React__default from'react';impor
|
|
|
42
46
|
style: headerStyles,
|
|
43
47
|
children: [jsx("div", {
|
|
44
48
|
className: "absolute inset-y-0 flex items-center pl-2",
|
|
45
|
-
children: jsx(
|
|
49
|
+
children: jsx(SearchIcon, {
|
|
46
50
|
className: "w-4 h-4"
|
|
47
51
|
})
|
|
48
52
|
}), jsx("input", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.js","sources":["../../../../src/components/Layout/GlobalHeader/Header.tsx"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Header.js","sources":["../../../../src/components/Layout/GlobalHeader/Header.tsx"],"sourcesContent":[null],"names":[],"mappings":"kMAqBa,MAAA,YAAY,GAA2C,KAAC,IAAS;AAC1E,EAAA,MAAA;AACA,IAAA,KAAA;IAEA,MAA0B;IAC1B,UAAM;AAGM,IAAA,WAAA;AACA,IAAA,SAAK;AACgB,IAAA,QACpB;AAGb,IAAA;AAAoC,GAAA,GAAA,KAAA;AACpC,EAAA,MAAA;AAyDJ,IAAE,QAAA;AAEF,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import type { LinksFunction } from '@remix-run/node';
|
|
2
3
|
import { BasicLayoutProps } from '@admin-layout/client';
|
|
3
4
|
declare const ProTailwindLayout: React.FC<BasicLayoutProps & {
|
|
4
5
|
loaderData?: any;
|
|
@@ -7,6 +8,7 @@ export default ProTailwindLayout;
|
|
|
7
8
|
export declare const handle: {
|
|
8
9
|
i18n: string;
|
|
9
10
|
};
|
|
11
|
+
export declare const links: LinksFunction;
|
|
10
12
|
export declare const loader: (params: any) => Promise<{
|
|
11
13
|
newMenuData: import("@common-stack/client-react").IMenuData[];
|
|
12
14
|
apolloState: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProTailwindLayout.d.ts","sourceRoot":"","sources":["../../../src/components/Layout/ProTailwindLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAOH,gBAAgB,EACnB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"ProTailwindLayout.d.ts","sourceRoot":"","sources":["../../../src/components/Layout/ProTailwindLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAOH,gBAAgB,EACnB,MAAM,sBAAsB,CAAC;AAc9B,QAAA,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,GAAG;IAAE,UAAU,CAAC,EAAE,GAAG,CAAA;CAAE,CASxE,CAAC;AACF,eAAe,iBAAiB,CAAC;AAEjC,eAAO,MAAM,MAAM;;CAElB,CAAC;AACF,eAAO,MAAM,KAAK,EAAE,aAA+D,CAAC;AAEpF,eAAO,MAAM,MAAM;;;EA2BlB,CAAC;AAEF,wBAAsB,YAAY,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE;;;;CAAA,gBAkBnE;AAED,eAAO,MAAM,gBAAgB;;;aAE5B,CAAC"}
|
|
@@ -7,6 +7,7 @@ import { ClientTypes } from '@common-stack/client-core';
|
|
|
7
7
|
import { createSelector } from 'reselect';
|
|
8
8
|
import BasicLayoutEnhanced from './TailwindLayout.js';
|
|
9
9
|
import { config } from '../../config/env-config.js';
|
|
10
|
+
import stylesheet from '../../styles/index.css?url';
|
|
10
11
|
const selectOrgName = state => state.platform.orgName;
|
|
11
12
|
const selector = createSelector([selectOrgName], orgName => ({
|
|
12
13
|
orgName
|
|
@@ -33,6 +34,10 @@ const ProTailwindLayout = props => {
|
|
|
33
34
|
const handle = {
|
|
34
35
|
i18n: 'menu'
|
|
35
36
|
};
|
|
37
|
+
const links = () => [{
|
|
38
|
+
rel: 'stylesheet',
|
|
39
|
+
href: stylesheet
|
|
40
|
+
}];
|
|
36
41
|
const loader = async params => {
|
|
37
42
|
const {
|
|
38
43
|
routeConfig
|
|
@@ -92,4 +97,4 @@ const shouldRevalidate = ({
|
|
|
92
97
|
}) => {
|
|
93
98
|
return currentParams.orgName !== nextParams.orgName;
|
|
94
99
|
};
|
|
95
|
-
export { clientLoader, ProTailwindLayout as default, handle, loader, shouldRevalidate }; //# sourceMappingURL=ProTailwindLayout.js.map
|
|
100
|
+
export { clientLoader, ProTailwindLayout as default, handle, links, loader, shouldRevalidate }; //# sourceMappingURL=ProTailwindLayout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProTailwindLayout.js","sources":["../../../src/components/Layout/ProTailwindLayout.tsx"],"sourcesContent":[null],"names":["_jsx","TailwindLayout"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ProTailwindLayout.js","sources":["../../../src/components/Layout/ProTailwindLayout.tsx"],"sourcesContent":[null],"names":["_jsx","TailwindLayout"],"mappings":"+jBAqBA,MAAM,aAAa,GAAG,KAAC,IAAO,KAAG,CAAA,QAAM,CAAA,OAAS;AAEhD,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,aAAa,CAAC,EAAE,YAAY;AAE7D,EAAA;;AAII,MAAA,iBAAoB,GAAA,KAAA,IAAW;AAG/B,EAAA,MAAA;AACA,IAAA,UAAQ,EAAA;AACZ,MAAE,WAAA;AACF,MAAA;AAEA;AACI,GAAA,GAAA,KAAY;EACd,MAAA;AACF,IAAA;AAEA,GAAM,GAAA,WAAa,CAAA,SAAQ,QAAQ,MAAI,CAAA,CAAA;AACnC,EAAA,MAAA,MAAmB,GAAA;IACnB,OAAI,EAAA;AACJ,GAAA;SACeA,GAAA,CAAAC;IACf,WAAC,EAAA,MAAA;IAAC,WAAgB,EAAA,WAAA;AACd,IAAA,QAAA,EAAA;IACJ;;;AAKA,EAAA,IAAA,EAAA;AACA;cACkB,MAAA,CAAM;KACpB,EAAA,YAAY;AACZ,EAAA,IAAA,EAAA;;AAEY,MAAA,MAAA,GAAE,MAAC,MAAA,IAAA;AACf,EAAA,MAAA;IACJ;MACoD,MAAA,CAAA,OAAA;AACpD,EAAA,IAAA,WAAiB,GAAA,EAAA;MACV;eACQ,GAAA,gBAAA,CAAA,WAAA,EAAA,MAAA,CAAA,WAAA,CAAA;WACA,CAAA,EAAA;WACb,CAAA,GAAA,CAAA,CAAA,CAAA;AACN;AAEA,EAAM,MAAM,eAAsB,GAAA,sBAAY,CAAA,WAAQ,CAAA,QAAc,CAAA,CAAA;QACY,iBAAA,GAAA,aAAA,CAAA,eAAA,CAAA;AAC5E,EAAA,MAAA,sBAAyB,GAAA,sBAAe,CAAA,iBAAA,CAAA;AACxC,EAAA,sBAAqB,CAAA,gBAAc,2BAAA,CAAA,IAAA,CAAA,CAAA;AAEnC,EAAA,IAAA,WAAK,GAAA,MAAA,EAAA,YAAA,EAAA,WAAA;AACD,EAAA,IAAA,WAAiB,GAAA,MAAA;kBAEX,EAAA;AACN,IAAA,MAAA,IAAA,KAAW,CAAC,uBAAqB,CAAA;;AAGjC,EAAA,IAAA,CAAA,WAAA,EAAA;IACJ,MAAC,IAAA,KAAA,CAAA,uBAAA,CAAA;;AACG;AACA,EAAA,MAAA,WAAQ,GAAM,cAAG,CAAA,sBAAA,EAAA,WAAA,EAAA,oBAAA,IAAA,WAAA,CAAA;SACpB;AACD,IAAA;AACJ,IAAC;AAED,GAAM;AACF;AACF,eAAA,YAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/Sidebar/Sidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,UAAU,YAAY;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,QAAQ,EAAE,GAAG,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE;QACT,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACzB,CAAC;IACF,QAAQ,CAAC,EAAE,GAAG,CAAC;CAClB;AAED,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/Sidebar/Sidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,UAAU,YAAY;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,QAAQ,EAAE,GAAG,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,WAAW,EAAE;QACT,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACzB,CAAC;IACF,QAAQ,CAAC,EAAE,GAAG,CAAC;CAClB;AAED,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAiM1C,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import {jsxs,jsx}from'react/jsx-runtime';import React__default,{useState,useEffect}from'react';import {Link}from'@remix-run/react';import {useTranslation}from'react-i18next';import
|
|
1
|
+
import {jsxs,jsx}from'react/jsx-runtime';import React__default,{useState,useEffect}from'react';import {Link}from'@remix-run/react';import {useTranslation}from'react-i18next';import BottomMenuDropDown from'../GlobalFooter/BottomMenuDropdown.js';import {getMenuSeparation}from'@admin-layout/client';import {Divider}from'./Divider.js';import {SidebarMenu}from'./SidebarMenu.js';import {RightContent}from'../GlobalHeader/RightContent.js';import {icons}from'../../../icons.js';const Sidebar = props => {
|
|
2
2
|
const {
|
|
3
3
|
isSideMenuOpen,
|
|
4
4
|
closeSideMenu,
|
|
5
5
|
menuData,
|
|
6
6
|
collapsed,
|
|
7
7
|
routeParams,
|
|
8
|
-
settings
|
|
8
|
+
settings,
|
|
9
|
+
setCollapsed
|
|
9
10
|
} = props;
|
|
10
11
|
useState(false);
|
|
11
12
|
const [iconModule, setIconModule] = React__default.useState(null);
|
|
@@ -13,6 +14,14 @@ import {jsxs,jsx}from'react/jsx-runtime';import React__default,{useState,useEffe
|
|
|
13
14
|
t,
|
|
14
15
|
i18n
|
|
15
16
|
} = useTranslation('menu');
|
|
17
|
+
const {
|
|
18
|
+
OutlineDashIcon,
|
|
19
|
+
ChevronBackCircleIcon,
|
|
20
|
+
ChevronForwardCircleIcon
|
|
21
|
+
} = icons;
|
|
22
|
+
const toggleCollapsed = () => {
|
|
23
|
+
setCollapsed(!collapsed);
|
|
24
|
+
};
|
|
16
25
|
// Close sidebar when clicking outside on mobile
|
|
17
26
|
useEffect(() => {
|
|
18
27
|
const handleClickOutside = event => {
|
|
@@ -62,7 +71,7 @@ import {jsxs,jsx}from'react/jsx-runtime';import React__default,{useState,useEffe
|
|
|
62
71
|
color: settings?.navTheme === 'realDark' ? '#fff' : ''
|
|
63
72
|
}), [settings]);
|
|
64
73
|
const renderSidebarContent = () => jsxs("div", {
|
|
65
|
-
className: "py-4 text-gray-500 dark:text-gray-400",
|
|
74
|
+
className: "py-4 text-gray-500 dark:text-gray-400 relative",
|
|
66
75
|
style: SidebarStyles,
|
|
67
76
|
children: [jsxs(Link, {
|
|
68
77
|
to: "/",
|
|
@@ -71,9 +80,16 @@ import {jsxs,jsx}from'react/jsx-runtime';import React__default,{useState,useEffe
|
|
|
71
80
|
children: [jsx("img", {
|
|
72
81
|
src: settings?.logo,
|
|
73
82
|
className: "w-[28px]"
|
|
74
|
-
}), "
|
|
83
|
+
}), !collapsed && jsx("span", {
|
|
84
|
+
children: settings?.title
|
|
85
|
+
})]
|
|
86
|
+
}), jsx("button", {
|
|
87
|
+
onClick: toggleCollapsed,
|
|
88
|
+
className: "rounded-md hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors text-[22px] absolute right-[0px] top-[63px]",
|
|
89
|
+
"aria-label": collapsed ? 'Expand sidebar' : 'Collapse sidebar',
|
|
90
|
+
children: collapsed ? jsx(ChevronForwardCircleIcon, {}) : jsx(ChevronBackCircleIcon, {})
|
|
75
91
|
}), jsxs("div", {
|
|
76
|
-
className: "min-h-[
|
|
92
|
+
className: "min-h-[93vh]",
|
|
77
93
|
children: [jsxs("div", {
|
|
78
94
|
style: {
|
|
79
95
|
flex: 1,
|
|
@@ -86,8 +102,9 @@ import {jsxs,jsx}from'react/jsx-runtime';import React__default,{useState,useEffe
|
|
|
86
102
|
children: [jsx(SidebarMenu, {
|
|
87
103
|
menuData: updateMenuIcons(middleMenu),
|
|
88
104
|
routeParams: routeParams,
|
|
89
|
-
settings: settings
|
|
90
|
-
|
|
105
|
+
settings: settings,
|
|
106
|
+
collapsed: collapsed
|
|
107
|
+
}), collapsed && true ? jsx(OutlineDashIcon, {
|
|
91
108
|
className: "ant-divider",
|
|
92
109
|
style: {
|
|
93
110
|
marginLeft: '17px',
|
|
@@ -117,7 +134,8 @@ import {jsxs,jsx}from'react/jsx-runtime';import React__default,{useState,useEffe
|
|
|
117
134
|
children: jsx(SidebarMenu, {
|
|
118
135
|
menuData: updateMenuIcons(lowerMenus),
|
|
119
136
|
routeParams: routeParams,
|
|
120
|
-
settings: settings
|
|
137
|
+
settings: settings,
|
|
138
|
+
collapsed: collapsed
|
|
121
139
|
})
|
|
122
140
|
})]
|
|
123
141
|
}), settings?.layout?.navigationMode === 'sidebar' && jsx(RightContent, {
|
|
@@ -136,7 +154,7 @@ import {jsxs,jsx}from'react/jsx-runtime';import React__default,{useState,useEffe
|
|
|
136
154
|
});
|
|
137
155
|
return jsxs("div", {
|
|
138
156
|
children: [jsx("aside", {
|
|
139
|
-
className:
|
|
157
|
+
className: `z-20 hidden h-full overflow-y-auto bg-white dark:bg-gray-800 md:block flex-shrink-0 transition-all duration-300 ease-in-out ${collapsed ? 'w-20' : 'w-64'}`,
|
|
140
158
|
style: SidebarStyles,
|
|
141
159
|
children: renderSidebarContent()
|
|
142
160
|
}), isSideMenuOpen && jsx("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sidebar.js","sources":["../../../../src/components/Layout/Sidebar/Sidebar.tsx"],"sourcesContent":[null],"names":["React","_jsxs","_jsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Sidebar.js","sources":["../../../../src/components/Layout/Sidebar/Sidebar.tsx"],"sourcesContent":[null],"names":["React","_jsxs","_jsx"],"mappings":"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"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
settings: any;
|
|
5
|
-
}) => import("react/jsx-runtime").JSX.Element;
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { SidebarMenuProps } from '../../typings';
|
|
3
|
+
export declare const SidebarMenu: React.FC<SidebarMenuProps>;
|
|
6
4
|
//# sourceMappingURL=SidebarMenu.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SidebarMenu.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/Sidebar/SidebarMenu.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SidebarMenu.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/Sidebar/SidebarMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAKxC,OAAO,EAAgB,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAE/D,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAsGlD,CAAC"}
|
|
@@ -1,47 +1,45 @@
|
|
|
1
|
-
import {jsx,jsxs}from'react/jsx-runtime';import {useState}from'react';import {
|
|
1
|
+
import {jsx,jsxs}from'react/jsx-runtime';import {useState}from'react';import {Link}from'@remix-run/react';import {generateMenuPath}from'@admin-layout/client';import {generateLightShade}from'../BasicLayout/utils.js';import {icons}from'../../../icons.js';const SidebarMenu = ({
|
|
2
2
|
menuData,
|
|
3
3
|
routeParams,
|
|
4
|
-
settings
|
|
4
|
+
settings,
|
|
5
|
+
collapsed
|
|
5
6
|
}) => {
|
|
6
|
-
// Track open menus by their depth level
|
|
7
7
|
const [openMenusByLevel, setOpenMenusByLevel] = useState({});
|
|
8
|
-
// Track the currently active menu item
|
|
9
8
|
const [activePath, setActivePath] = useState('/dashboard');
|
|
9
|
+
const [hoveredMenu, setHoveredMenu] = useState(null);
|
|
10
|
+
const {
|
|
11
|
+
ChevronDownIcon,
|
|
12
|
+
ChevronRightIcon
|
|
13
|
+
} = icons;
|
|
10
14
|
const toggleMenu = (path, depth, e) => {
|
|
11
|
-
// Prevent link navigation when clicking on a parent menu with children
|
|
12
15
|
e.preventDefault();
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
if (newState[depth] === path) {
|
|
19
|
-
newState[depth] = null;
|
|
20
|
-
}
|
|
21
|
-
// Otherwise, close any other menu at this depth level and open this one
|
|
22
|
-
else {
|
|
23
|
-
newState[depth] = path;
|
|
24
|
-
}
|
|
25
|
-
return newState;
|
|
26
|
-
});
|
|
16
|
+
if (collapsed) return;
|
|
17
|
+
setOpenMenusByLevel(prev => ({
|
|
18
|
+
...prev,
|
|
19
|
+
[depth]: prev[depth] === path ? null : path
|
|
20
|
+
}));
|
|
27
21
|
};
|
|
28
22
|
const handleMenuClick = (path, hasChildren, depth, e) => {
|
|
29
|
-
if (hasChildren) {
|
|
23
|
+
if (hasChildren && !collapsed) {
|
|
30
24
|
toggleMenu(path, depth, e);
|
|
31
25
|
} else {
|
|
32
|
-
// For leaf items, set as active and allow navigation
|
|
33
26
|
setActivePath(path);
|
|
34
27
|
}
|
|
35
28
|
};
|
|
36
|
-
const
|
|
29
|
+
const getFirstLetter = name => {
|
|
30
|
+
return name.charAt(0).toUpperCase();
|
|
31
|
+
};
|
|
32
|
+
const renderMenuItem = (item, depth = 0, isHoverMenu = false) => {
|
|
37
33
|
const hasChildren = item.children && item.children.length > 0;
|
|
38
34
|
const isOpen = openMenusByLevel[depth] === item.path;
|
|
39
35
|
const isActive = activePath === item.path;
|
|
36
|
+
const isHovered = hoveredMenu === item.path;
|
|
40
37
|
const paddingLeft = `${depth * 1}rem`;
|
|
41
|
-
|
|
42
|
-
let bgColor = generateLightShade(settings?.primaryColor, 0.89);
|
|
38
|
+
const bgColor = generateLightShade(settings?.primaryColor, 0.89);
|
|
43
39
|
return jsxs("div", {
|
|
44
|
-
className: "w-full",
|
|
40
|
+
className: "w-full relative group",
|
|
41
|
+
onMouseEnter: () => collapsed && !isHoverMenu && setHoveredMenu(item.path),
|
|
42
|
+
onMouseLeave: () => collapsed && !isHoverMenu && setHoveredMenu(null),
|
|
45
43
|
children: [jsxs(Link, {
|
|
46
44
|
to: generateMenuPath(item?.path, routeParams),
|
|
47
45
|
className: `flex items-center justify-between w-full px-4 py-2 hover:bg-gray-100 text-sm cursor-pointer transition-colors rounded-md mx-1 my-0.5`,
|
|
@@ -51,38 +49,44 @@ import {jsx,jsxs}from'react/jsx-runtime';import {useState}from'react';import {Fa
|
|
|
51
49
|
},
|
|
52
50
|
onClick: e => handleMenuClick(item.path, hasChildren, depth, e),
|
|
53
51
|
children: [jsxs("div", {
|
|
54
|
-
className:
|
|
55
|
-
children: [item.icon
|
|
52
|
+
className: `flex items-center ${collapsed && !isHoverMenu ? 'justify-center w-full' : 'gap-3'}`,
|
|
53
|
+
children: [item.icon ? jsx("span", {
|
|
56
54
|
style: {
|
|
57
55
|
color: isActive ? settings?.primaryColor : ''
|
|
58
56
|
},
|
|
59
57
|
children: item.icon
|
|
60
|
-
})
|
|
61
|
-
className:
|
|
58
|
+
}) : collapsed && !isHoverMenu ? jsx("span", {
|
|
59
|
+
className: "w-8 h-8 flex items-center justify-center rounded-full bg-gray-100",
|
|
60
|
+
style: {
|
|
61
|
+
color: isActive ? settings?.primaryColor : ''
|
|
62
|
+
},
|
|
63
|
+
children: getFirstLetter(item.name)
|
|
64
|
+
}) : null, (!collapsed || isHoverMenu) && jsx("span", {
|
|
65
|
+
className: "font-medium whitespace-nowrap",
|
|
62
66
|
style: {
|
|
63
67
|
color: isActive ? settings?.primaryColor : ''
|
|
64
68
|
},
|
|
65
69
|
children: item.name
|
|
66
70
|
})]
|
|
67
|
-
}), hasChildren && jsx("span", {
|
|
71
|
+
}), hasChildren && (!collapsed || isHoverMenu) && jsx("span", {
|
|
68
72
|
style: {
|
|
69
73
|
color: isActive ? settings?.primaryColor : ''
|
|
70
74
|
},
|
|
71
|
-
children: isOpen ? jsx(
|
|
75
|
+
children: isOpen ? jsx(ChevronDownIcon, {
|
|
72
76
|
className: "h-4 w-4"
|
|
73
|
-
}) : jsx(
|
|
77
|
+
}) : jsx(ChevronRightIcon, {
|
|
74
78
|
className: "h-4 w-4"
|
|
75
79
|
})
|
|
76
80
|
})]
|
|
77
|
-
}), hasChildren && isOpen && jsx("div", {
|
|
78
|
-
className:
|
|
79
|
-
children: item.children.map(child => renderMenuItem(child, depth + 1))
|
|
81
|
+
}), hasChildren && (isOpen && !collapsed || collapsed && isHovered) && jsx("div", {
|
|
82
|
+
className: `transition-all duration-200 ease-in-out ${collapsed && !isHoverMenu ? 'absolute left-full top-0 ml-2 bg-white shadow-lg rounded-md py-2 min-w-[200px] z-50' : ''}`,
|
|
83
|
+
children: item.children.map(child => renderMenuItem(child, depth + 1, collapsed && !isHoverMenu))
|
|
80
84
|
})]
|
|
81
85
|
}, item.path);
|
|
82
86
|
};
|
|
83
87
|
return jsx("div", {
|
|
84
88
|
children: jsx("nav", {
|
|
85
|
-
className:
|
|
89
|
+
className: `mt-2 ${collapsed ? 'px-1' : 'px-2'}`,
|
|
86
90
|
children: menuData.map(item => renderMenuItem(item))
|
|
87
91
|
})
|
|
88
92
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SidebarMenu.js","sources":["../../../../src/components/Layout/Sidebar/SidebarMenu.tsx"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SidebarMenu.js","sources":["../../../../src/components/Layout/Sidebar/SidebarMenu.tsx"],"sourcesContent":[null],"names":[],"mappings":"6PAOO,MAAM,WAAW,GAA+B,CAAC;UAC9C;aACW;UACX;AACN,EAAA;MAEM;QACF,CAAC,gBAAe,EAAG,mBAAA,CAAA,GAAA,QAAA,CAAA,EAAA,CAAA;AACnB,EAAA,MAAA,CAAA,UAAa,EAAA,aAAA,CAAA,GAAA,QAAA,CAAA,YAAA,CAAA;oBAAS,EAAA,cAAA,CAAA,GAAA,QAAA,CAAA,IAAA,CAAA;AAEtB,EAAA,MAAA;AACI,IAAA,eAAO;AACP,IAAA;AACH,GAAA,GAAA,KAAE;AACP,EAAA,MAAE,UAAA,GAAA,CAAA,IAAA,EAAA,KAAA,EAAA,CAAA,KAAA;IAEF,CAAM,CAAA,cAAA,EAAA;AACF,IAAA,IAAA,SAAe,EAAA;AACX,IAAA,mBAAW,CAAI,IAAA;SAClB,IAAA;eAAO,IAAA,CAAA,KAAA,CAAA,KAAA,IAAA,GAAA,IAAA,GAAA;;;AAGZ,EAAA,MAAE,eAAA,GAAA,CAAA,IAAA,EAAA,WAAA,EAAA,KAAA,EAAA,CAAA,KAAA;AAEF,IAAA,IAAA,WAAoB,IAAA,CAAA,WAAoB;gBAC7B,CAAA,IAAW,EAAA,KAAE,EAAE,CAAW,CAAA;AACrC,KAAC,MAAC;AAEF,MAAA,aAAoB,CAAA,IAAA,CAAA;AAChB;;AAEA,EAAA,MAAA,cAAc,GAAG,IAAA,IAAA;AACjB,IAAA,OAAA,YAAe,CAAG,CAAA,CAAA,WAAW;AAC7B,GAAA;QACA,cAAgB,GAAA,CAAA,IAAA,EAAA,KAAA,GAAA,CAAA,EAAmB,WAAsB,GAAA,KAAA,KAAE;AAE3D,IAAA,MAAA,WACI,GAAA,IAAA,CAAA,QAEa,IAAA,wBAAwB;AA+CjB,IAAA,MAAA,MAAA,GAAA,gBAAuF,CAAA,KAAA,CAAA,KAAA,IAAA,CAAA,IAAA;AACvF,IAAA,MAAA,QAAA,GAAA,UAGP,KAAA,IAAA,CAAA,IAAA;AAKrB,IAAA,MAAE,SAAA,GAAA,WAAA,KAAA,IAAA,CAAA,IAAA;AAEF,IAAA,MAAA,WACI,GAAA,CAAA,EAAA,KAAA,GAAA,CACI,CAAK,GAAA,CAAA;AAGjB,IAAE,MAAA,OAAA,GAAA,kBAAA,CAAA,QAAA,EAAA,YAAA,EAAA,IAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const ADDITIONAL_SETTINGS_SLOT_FILL_NAME = "additional_settings_slot_fill";
|
|
2
|
+
export declare const AdditionalSettingsSlot: (props: any) => import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
export declare const AdditionalSettingsFillCard: (props: any) => import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
//# sourceMappingURL=AdditionalSettings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdditionalSettings.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/slot-fill/AdditionalSettings.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,kCAAkC,kCAAkC,CAAC;AAElF,eAAO,MAAM,sBAAsB,yDAElC,CAAC;AAEF,eAAO,MAAM,0BAA0B,yDAEtC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import {jsx}from'react/jsx-runtime';import {Slot}from'@common-stack/components-pro';const ADDITIONAL_SETTINGS_SLOT_FILL_NAME = 'additional_settings_slot_fill';
|
|
2
|
+
const AdditionalSettingsSlot = props => {
|
|
3
|
+
return jsx(Slot, {
|
|
4
|
+
name: ADDITIONAL_SETTINGS_SLOT_FILL_NAME,
|
|
5
|
+
fillProps: props
|
|
6
|
+
});
|
|
7
|
+
};export{ADDITIONAL_SETTINGS_SLOT_FILL_NAME,AdditionalSettingsSlot};//# sourceMappingURL=AdditionalSettings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdditionalSettings.js","sources":["../../../../src/components/Layout/slot-fill/AdditionalSettings.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"oFAIO,MAAM,kCAAkC,GAAG;AAErC,MAAA,sBAAsB,GAAG,KAAC,IAAS;SACrCA,GAAA,CAAA,IAAK,EAAA;AAChB,IAAE,IAAA,EAAA,kCAAA;AAEF,IAAA,SAAa,EAAA;IACT;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/slot-fill/index.tsx"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/slot-fill/index.tsx"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingDrawer.d.ts","sourceRoot":"","sources":["../../../src/components/SettingDrawer/SettingDrawer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"SettingDrawer.d.ts","sourceRoot":"","sources":["../../../src/components/SettingDrawer/SettingDrawer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAc/B,OAAO,EAAsB,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAsRjE,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAgNtD,CAAC"}
|