@admin-layout/tailwind-design-pro 12.2.4-alpha.2 → 12.2.4-alpha.20

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.
Files changed (60) hide show
  1. package/README.md +80 -0
  2. package/lib/components/LanguageMenu/LanguageMenu.d.ts.map +1 -1
  3. package/lib/components/LanguageMenu/LanguageMenu.js +6 -2
  4. package/lib/components/LanguageMenu/LanguageMenu.js.map +1 -1
  5. package/lib/components/Layout/BasicLayout/index.d.ts.map +1 -1
  6. package/lib/components/Layout/BasicLayout/index.js +13 -5
  7. package/lib/components/Layout/BasicLayout/index.js.map +1 -1
  8. package/lib/components/Layout/BasicLayout/utils.js +1 -1
  9. package/lib/components/Layout/BasicLayout/utils.js.map +1 -1
  10. package/lib/components/Layout/GlobalFooter/BottomMenuDropdown.js +1 -1
  11. package/lib/components/Layout/GlobalFooter/BottomMenuDropdown.js.map +1 -1
  12. package/lib/components/Layout/GlobalHeader/NavbarSlotStrip.d.ts +12 -0
  13. package/lib/components/Layout/GlobalHeader/NavbarSlotStrip.d.ts.map +1 -0
  14. package/lib/components/Layout/GlobalHeader/NavbarSlotStrip.js +18 -0
  15. package/lib/components/Layout/GlobalHeader/NavbarSlotStrip.js.map +1 -0
  16. package/lib/components/Layout/GlobalHeader/RightContent.d.ts +1 -2
  17. package/lib/components/Layout/GlobalHeader/RightContent.d.ts.map +1 -1
  18. package/lib/components/Layout/GlobalHeader/RightContent.js +10 -72
  19. package/lib/components/Layout/GlobalHeader/RightContent.js.map +1 -1
  20. package/lib/components/Layout/GlobalHeader/index.d.ts +1 -0
  21. package/lib/components/Layout/GlobalHeader/index.d.ts.map +1 -1
  22. package/lib/components/Layout/ProTailwindLayout.d.ts +19 -8
  23. package/lib/components/Layout/ProTailwindLayout.d.ts.map +1 -1
  24. package/lib/components/Layout/ProTailwindLayout.js +227 -76
  25. package/lib/components/Layout/ProTailwindLayout.js.map +1 -1
  26. package/lib/components/Layout/Sidebar/BottomMenu.d.ts.map +1 -1
  27. package/lib/components/Layout/Sidebar/BottomMenu.js +4 -4
  28. package/lib/components/Layout/Sidebar/BottomMenu.js.map +1 -1
  29. package/lib/components/Layout/Sidebar/MainSidebar.d.ts.map +1 -1
  30. package/lib/components/Layout/Sidebar/MainSidebar.js +10 -3
  31. package/lib/components/Layout/Sidebar/MainSidebar.js.map +1 -1
  32. package/lib/components/Layout/Sidebar/PerplexSidebarMenu.d.ts.map +1 -1
  33. package/lib/components/Layout/Sidebar/PerplexSidebarMenu.js +53 -14
  34. package/lib/components/Layout/Sidebar/PerplexSidebarMenu.js.map +1 -1
  35. package/lib/components/Layout/TailwindLayout.d.ts.map +1 -1
  36. package/lib/components/Layout/TailwindLayout.js +19 -2
  37. package/lib/components/Layout/TailwindLayout.js.map +1 -1
  38. package/lib/components/Layout/defaultPermissions.d.ts +134 -0
  39. package/lib/components/Layout/defaultPermissions.d.ts.map +1 -0
  40. package/lib/components/Layout/defaultPermissions.js +134 -0
  41. package/lib/components/Layout/defaultPermissions.js.map +1 -0
  42. package/lib/components/Layout/slot-fill/RightContent.d.ts +3 -1
  43. package/lib/components/Layout/slot-fill/RightContent.d.ts.map +1 -1
  44. package/lib/components/Layout/slot-fill/RightContent.js +4 -6
  45. package/lib/components/Layout/slot-fill/RightContent.js.map +1 -1
  46. package/lib/components/SettingDrawer/hooks/useSettingsOperations.d.ts.map +1 -1
  47. package/lib/components/SettingDrawer/hooks/useSettingsOperations.js +13 -9
  48. package/lib/components/SettingDrawer/hooks/useSettingsOperations.js.map +1 -1
  49. package/lib/components/SettingDrawer/utils/transformers.d.ts +16 -0
  50. package/lib/components/SettingDrawer/utils/transformers.d.ts.map +1 -1
  51. package/lib/components/SettingDrawer/utils/transformers.js +39 -2
  52. package/lib/components/SettingDrawer/utils/transformers.js.map +1 -1
  53. package/lib/components/index.js +1 -1
  54. package/lib/components/typings.d.ts +2 -0
  55. package/lib/components/typings.d.ts.map +1 -1
  56. package/lib/compute.d.ts.map +1 -1
  57. package/lib/compute.js +1 -1
  58. package/lib/compute.js.map +1 -1
  59. package/lib/routes.json +2 -1
  60. package/package.json +7 -6
@@ -1,23 +1,31 @@
1
1
  import { filterRoutesWithLocale, transformData, addProLayoutParentKeys, removeUnnecessaryProperties, menuDataRender } from '@admin-layout/client';
2
2
  import { matchParentRoute } from '@admin-layout/client/lib/utils/parentRoute.js';
3
3
  import { getAvailableCategories, getMenusByAdvancedFilter } from '@common-stack/client-react/lib/utils/filteredRoutes.js';
4
- import { useMatches } from '@remix-run/react';
4
+ import { useLoaderData, useMatches } from '@remix-run/react';
5
5
  import { ClientContainerService } from 'common';
6
6
  import * as React from 'react';
7
7
  import { useSelector } from 'react-redux';
8
8
  import { createSelector } from 'reselect';
9
+ import { defaultPermissions } from './defaultPermissions.js';
9
10
  import { config } from '../../config/env-config.js';
10
11
  import BasicLayoutEnhanced from './TailwindLayout.js';
11
- import stylesheet from '../../styles/index.css?url';
12
- const selectOrgName = state => state.platform.orgName;
13
- const selectSettings = state => state.settings;
12
+ import stylesheet from '../../styles/index.css?url'; // Cache for SPA mode menu data to avoid re-fetching on every route change
13
+ let cachedSpaMenuData = null;
14
+ // Safe selectors that handle undefined state slices in SPA mode
15
+ const selectOrgName = state => state?.platform?.orgName ?? '';
16
+ const selectSettings = state => state?.settings ?? {};
14
17
  const selector = createSelector([selectOrgName, selectSettings], (orgName, settings) => ({
15
18
  orgName,
16
19
  settings
17
20
  }));
18
- /**
19
- * Filter menu items based on user visibility settings using filteredRoutes utilities
20
- */
21
+ const handle = {
22
+ i18n: 'menu'
23
+ };
24
+ const links = () => [{
25
+ rel: 'stylesheet',
26
+ href: stylesheet
27
+ }];
28
+ //helper func
21
29
  function filterMenuItemsByVisibility(menuData, settings) {
22
30
  if (!menuData || !Array.isArray(menuData)) return [];
23
31
  const hiddenMenuCategories = settings?.hiddenMenuCategories || [];
@@ -67,13 +75,220 @@ function filterMenuItemsByVisibility(menuData, settings) {
67
75
  };
68
76
  return filterItemsRecursively(filteredByCategory);
69
77
  }
70
- const ProTailwindLayout = props => {
78
+ // NOTE: No HydrateFallback exported - we use SSR so the server-rendered content displays immediately.
79
+ // HydrateFallback should only be used for client-only routes that can't render until clientLoader runs.
80
+ // loader or action
81
+ async function loader(params) {
71
82
  const {
72
- loaderData: {
73
- permissions,
74
- newMenuData
83
+ routeConfig
84
+ } = params.context;
85
+ let parentRoute = null;
86
+ try {
87
+ parentRoute = matchParentRoute(routeConfig, config.LAYOUT_ROOT);
88
+ } catch (e) {
89
+ console.log('[ProTailwindLayout loader] Error matching parent route:', e);
90
+ }
91
+ // Handle case when parentRoute is null or doesn't have routes
92
+ const routes = parentRoute?.routes || [];
93
+ if (routes.length === 0) {
94
+ console.warn('[ProTailwindLayout loader] No routes found for LAYOUT_ROOT:', config.LAYOUT_ROOT);
95
+ }
96
+ const routeWithLocale = filterRoutesWithLocale(routes);
97
+ const routeWithChildren = transformData(routeWithLocale);
98
+ const menuDataWithParentKeys = addProLayoutParentKeys(routeWithChildren);
99
+ menuDataWithParentKeys.forEach(item => removeUnnecessaryProperties(item));
100
+ let permissions = params?._dataContext?.permissions;
101
+ let apolloState = params?._dataContext?.apolloState;
102
+ if (!permissions) {
103
+ throw new Error('Permissions not found');
104
+ }
105
+ if (!apolloState) {
106
+ throw new Error('ApolloState not found');
107
+ }
108
+ const newMenuData = menuDataRender(routeWithLocale, permissions);
109
+ // returnInfo: {"keys":["newMenuData","apolloState","permissions"],"hasOptions":false}
110
+ return {
111
+ data: [newMenuData, apolloState, permissions]
112
+ };
113
+ }
114
+ async function clientLoader({
115
+ serverLoader
116
+ }) {
117
+ // In SPA mode (ssr: false), serverLoader throws an error when called
118
+ // We check the Remix context to determine if we're in SPA mode
119
+ const remixContext = typeof window !== 'undefined' ? window.__remixContext : null;
120
+ // In SPA mode, isSpaMode is true. In SSR mode, it's false or undefined.
121
+ const isSPAMode = remixContext?.isSpaMode === true;
122
+ console.log('[ProTailwindLayout clientLoader] Starting...', {
123
+ isSPAMode,
124
+ hasRemixContext: !!remixContext,
125
+ remixContextKeys: remixContext ? Object.keys(remixContext) : []
126
+ });
127
+ let loaderData = null;
128
+ let hasValidServerData = false;
129
+ // Only attempt to call serverLoader in SSR mode
130
+ // In SPA mode, serverLoader() will throw "You cannot call serverLoader() in SPA Mode"
131
+ if (!isSPAMode) {
132
+ try {
133
+ console.log('[ProTailwindLayout clientLoader] Calling serverLoader (SSR mode)...');
134
+ loaderData = await serverLoader();
135
+ hasValidServerData = loaderData && loaderData.newMenuData && loaderData.newMenuData.length > 0;
136
+ console.log('[ProTailwindLayout clientLoader] serverLoader result:', {
137
+ hasLoaderData: !!loaderData,
138
+ hasNewMenuData: !!loaderData?.newMenuData,
139
+ menuDataLength: loaderData?.newMenuData?.length || 0,
140
+ hasValidServerData
141
+ });
142
+ } catch (e) {
143
+ // If serverLoader fails, we'll fall back to SPA mode data generation
144
+ // This can happen if the server doesn't return expected data
145
+ console.warn('[ProTailwindLayout clientLoader] serverLoader failed:', e);
146
+ }
147
+ } else {
148
+ console.log('[ProTailwindLayout clientLoader] Skipping serverLoader (SPA mode detected)');
149
+ }
150
+ if (hasValidServerData) {
151
+ // SSR mode - hydrate apollo cache and organization context
152
+ const {
153
+ apolloState
154
+ } = loaderData;
155
+ try {
156
+ const {
157
+ container
158
+ } = window.__CLIENT_SERVICE__;
159
+ // const apolloCache = container.get(ClientTypes.InMemoryCache);
160
+ // apolloCache.restore(apolloState);
161
+ const organizationContext = container.get(ClientContainerService.IOrganizationContextService);
162
+ organizationContext.hydrate(apolloState);
163
+ } catch (e) {
164
+ console.error('[ProTailwindLayout clientLoader] Error in client hydrate:', e);
165
+ }
166
+ console.log('[ProTailwindLayout clientLoader] Returning SSR data with', loaderData.newMenuData.length, 'menu items');
167
+ return loaderData;
168
+ }
169
+ // SPA mode - get route config from window.__ROUTES_CONFIG__ or fetch from routes-config.json
170
+ console.log('[ProTailwindLayout clientLoader] Entering SPA mode route generation...');
171
+ // Return cached data if available to avoid unnecessary fetches on route changes
172
+ if (cachedSpaMenuData && cachedSpaMenuData.newMenuData.length > 0) {
173
+ console.log('[ProTailwindLayout clientLoader] Returning cached SPA menu data');
174
+ return cachedSpaMenuData;
175
+ }
176
+ try {
177
+ // First try to get routes config from window global variable
178
+ // If not available, fall back to fetching from routes-config.json
179
+ let routeConfig = [];
180
+ if (typeof window !== 'undefined' && window.__ROUTES_CONFIG__) {
181
+ console.log('[ProTailwindLayout clientLoader] Using window.__ROUTES_CONFIG__');
182
+ // Handle both array format and object format { routes: [...] }
183
+ const windowConfig = window.__ROUTES_CONFIG__;
184
+ routeConfig = Array.isArray(windowConfig) ? windowConfig : windowConfig?.routes || [];
185
+ }
186
+ if (!routeConfig.length) {
187
+ // Fetch routes-config.json as fallback
188
+ // Try multiple paths since Vite serves files differently in dev vs prod
189
+ console.log('[ProTailwindLayout clientLoader] Fetching routes-config.json...');
190
+ const pathsToTry = ['/app/routes-config.json', '/routes-config.json', './routes-config.json'];
191
+ for (const path of pathsToTry) {
192
+ try {
193
+ const response = await fetch(path);
194
+ if (response.ok) {
195
+ const jsonData = await response.json();
196
+ // Handle both array format and object format { routes: [...] }
197
+ routeConfig = Array.isArray(jsonData) ? jsonData : jsonData?.routes || [];
198
+ console.log('[ProTailwindLayout clientLoader] Fetched routes-config.json from', path);
199
+ break;
200
+ }
201
+ } catch (fetchError) {
202
+ console.warn('[ProTailwindLayout clientLoader] Failed to fetch from', path);
203
+ }
204
+ }
205
+ if (!routeConfig.length) {
206
+ console.warn('[ProTailwindLayout clientLoader] Could not fetch routes-config.json from any path');
207
+ }
75
208
  }
76
- } = props;
209
+ console.log('[ProTailwindLayout clientLoader] routeConfig:', {
210
+ isArray: Array.isArray(routeConfig),
211
+ length: routeConfig?.length || 0,
212
+ topLevelKeys: routeConfig?.map?.(r => r.key) || []
213
+ });
214
+ // Transform routes to menu format - the config already has hierarchical structure with nested routes
215
+ const transformToMenuData = routes => {
216
+ return routes.filter(r => !r.hideInMenu && !r.isResourceRoute && !r.path?.includes('/resources/')).map(route => {
217
+ const menuItem = {
218
+ key: route.key,
219
+ name: route.name,
220
+ path: route.path,
221
+ icon: route.icon,
222
+ position: route.position,
223
+ priority: route.priority,
224
+ exact: route.exact
225
+ };
226
+ // Recursively transform child routes
227
+ if (route.routes && route.routes.length > 0) {
228
+ menuItem.children = transformToMenuData(route.routes);
229
+ }
230
+ return menuItem;
231
+ });
232
+ };
233
+ // Find the root layout and get its child routes for menu
234
+ // Look for the layout route that contains child routes for the sidebar menu
235
+ const rootLayout = routeConfig.find?.(r => (r.key === 'root-layout' || r.path?.includes(':orgName')) && r.routes && r.routes.length > 0);
236
+ const menuRoutes = rootLayout?.routes || routeConfig;
237
+ console.log('[ProTailwindLayout clientLoader] Root layout found:', !!rootLayout, rootLayout?.key, rootLayout?.path);
238
+ console.log('[ProTailwindLayout clientLoader] Menu routes count:', menuRoutes?.length || 0);
239
+ const menuData = transformToMenuData(menuRoutes || []);
240
+ console.log('[ProTailwindLayout clientLoader] Final menuData:', {
241
+ length: menuData.length,
242
+ items: menuData.map(m => ({
243
+ key: m.key,
244
+ name: m.name,
245
+ path: m.path,
246
+ icon: m.icon,
247
+ childrenCount: m.children?.length || 0
248
+ }))
249
+ });
250
+ // Cache the result for subsequent route changes
251
+ cachedSpaMenuData = {
252
+ newMenuData: menuData,
253
+ permissions: defaultPermissions,
254
+ apolloState: {}
255
+ };
256
+ return cachedSpaMenuData;
257
+ } catch (e) {
258
+ console.error('[ProTailwindLayout clientLoader] Error generating menu data in SPA mode:', e);
259
+ console.error('[ProTailwindLayout clientLoader] Error details:', {
260
+ name: e.name,
261
+ message: e.message,
262
+ stack: e.stack
263
+ });
264
+ return {
265
+ newMenuData: [],
266
+ permissions: {},
267
+ apolloState: {}
268
+ };
269
+ }
270
+ }
271
+ // NOTE: We intentionally do NOT set clientLoader.hydrate = true
272
+ // This means:
273
+ // - Initial page load: Uses server loader data directly (instant SSR)
274
+ // - Client navigation: clientLoader runs to fetch/transform data
275
+ // - No HydrateFallback needed since SSR content renders immediately
276
+ const shouldRevalidate = ({
277
+ currentParams,
278
+ nextParams
279
+ }) => {
280
+ return currentParams.orgName !== nextParams.orgName;
281
+ };
282
+ function ProTailwindLayout(props) {
283
+ // Use Remix's useLoaderData to get data from clientLoader/loader
284
+ const loaderData = useLoaderData() || {
285
+ permissions: null,
286
+ newMenuData: []
287
+ };
288
+ const {
289
+ permissions = defaultPermissions,
290
+ newMenuData = []
291
+ } = loaderData || {};
77
292
  const matches = useMatches();
78
293
  const current = matches[matches.length - 1];
79
294
  const {
@@ -116,69 +331,5 @@ const ProTailwindLayout = props => {
116
331
  menuData: filteredMenuData,
117
332
  fullMenuData: newMenuData
118
333
  });
119
- };
120
- const handle = {
121
- i18n: 'menu'
122
- };
123
- const links = () => [{
124
- rel: 'stylesheet',
125
- href: stylesheet
126
- }];
127
- const loader = async params => {
128
- const {
129
- routeConfig
130
- } = params.context;
131
- let parentRoute = {};
132
- try {
133
- parentRoute = matchParentRoute(routeConfig, config.LAYOUT_ROOT);
134
- } catch (e) {
135
- console.log(e);
136
- }
137
- const routeWithLocale = filterRoutesWithLocale(parentRoute['routes']);
138
- const routeWithChildren = transformData(routeWithLocale);
139
- const menuDataWithParentKeys = addProLayoutParentKeys(routeWithChildren);
140
- menuDataWithParentKeys.forEach(item => removeUnnecessaryProperties(item));
141
- let permissions = params?._dataContext?.permissions;
142
- let apolloState = params?._dataContext?.apolloState;
143
- if (!permissions) {
144
- throw new Error('Permissions not found');
145
- }
146
- if (!apolloState) {
147
- throw new Error('ApolloState not found');
148
- }
149
- const newMenuData = menuDataRender(routeWithLocale, permissions);
150
- // returnInfo: {"keys":["newMenuData","apolloState"],"hasOptions":false}
151
- return {
152
- data: [newMenuData, apolloState]
153
- };
154
- };
155
- async function clientLoader({
156
- request,
157
- params,
158
- serverLoader
159
- }) {
160
- // During client-side navigations, we hit our exposed API endpoints directly
161
- // do not restore apollo state in cache memory as it can rewrite newer data
162
- const loaderData = await serverLoader();
163
- const {
164
- apolloState
165
- } = loaderData;
166
- try {
167
- const {
168
- container
169
- } = window.__CLIENT_SERVICE__;
170
- const organizationContext = container.get(ClientContainerService.IOrganizationContextService);
171
- organizationContext.hydrate(apolloState);
172
- } catch (e) {
173
- console.error('Error in client hydrate');
174
- console.error(e);
175
- }
176
- return loaderData;
177
334
  }
178
- const shouldRevalidate = ({
179
- currentParams,
180
- nextParams
181
- }) => {
182
- return currentParams.orgName !== nextParams.orgName;
183
- };
184
335
  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":["TailwindLayout"],"mappings":"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"}
1
+ {"version":3,"file":"ProTailwindLayout.js","sources":["../../../src/components/Layout/ProTailwindLayout.tsx"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"BottomMenu.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/Sidebar/BottomMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgD,MAAM,OAAO,CAAC;AAOrE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAgBhD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAuUhD,CAAC"}
1
+ {"version":3,"file":"BottomMenu.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/Sidebar/BottomMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgD,MAAM,OAAO,CAAC;AAOrE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAgBhD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAyUhD,CAAC"}
@@ -34,13 +34,13 @@ const BottomMenu = ({
34
34
  t: key => key
35
35
  }; // Mock translation function
36
36
  // const cancelRef = React.useRef();
37
- const {
38
- profile = {}
39
- } = useAppSelector(state => state?.user || {});
37
+ // Memoized selector to avoid returning new references
38
+ const userState = useAppSelector(state => state?.user);
39
+ const profile = userState?.profile || {};
40
40
  const {
41
41
  nickname,
42
42
  picture: profilePicture
43
- } = profile || {};
43
+ } = profile;
44
44
  const onOpen = () => setIsOpen(true);
45
45
  const onClose = () => setIsOpen(false);
46
46
  const toggleMenu = () => setIsOpen(!isOpen);
@@ -1 +1 @@
1
- {"version":3,"file":"BottomMenu.js","sources":["../../../../src/components/Layout/Sidebar/BottomMenu.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"BottomMenu.js","sources":["../../../../src/components/Layout/Sidebar/BottomMenu.tsx"],"sourcesContent":[null],"names":["React","RouterLink"],"mappings":"yTASA,MAAM,eAAe,GAAkB,CAAC;MACpC;;;eAIQ,EAAA,SAAc,IAAI,QAAQ,CAAA,IAAA,CAAA;kBACtB;AACJ,IAAA,IAAA,CAAA,MAAG,EAAA;mBACN,CAAA,IAAA,CAAA,CAAA,IAAA,CAAA,SAAA,IAAA;QACF,SAAI,CAAA,SAAA,CAAA;AAEP,MAAA,CAAA,CAAA;AACJ,IAAE;AAEF,EAAA,CAAA,EAAA,EAAO;SAUH,uBAAkB,CAAA,aAAa,CAAG,MAAA,CAAA,OAA+B,EAAA;IACjE,OAAO,EAAA;AACP,GAAA,CAAA,GAAAA,cAAO,CAAA,aAAc,CAAE,KAAA,EAAA,IAAA,EAAA,YAAqB,CAAK;AACjD,CAAA;AACQ,MAAC,UAAU,GAAC,CAAG;UACvB;aAEA;AACA,EAAA,iBAAe;AACf,EAAA,QAAM;UACA;aAEA;UACA;;AAEN,CAAA,KAAA;AACA,EAAA,MAAA,CAAA,uBAAwB,CAAA,GAAQ,QAAQ,EAAE;QAE1C,CAAA,MAAA,EAAA,SAAA,CAAA,GAAA,QAAA,CAAA,KAAA,CAAA;QACA,CAAA,cAAe,EAAA,iBAAA,CAAA,GAAAA,cAAA,CAAA,QAAA,CAAA,IAAA,CAAA;AACX,EAAA,MAAA,OAAM,GAAA,MAAA,CAAA,IAAA,CAAA;AACF,EAAA,MAAA;;;AAGJ,IAAA,CAAA,EAAA,GAAE,IAAA;;AAGF;AACI;iBACI,GAAA,cAAiB,CAAA,KAAA,IAAA,KAAA,EAAA,IAAA,CAAA;eACpB,GAAA,SAAA,EAAA,OAAA,IAAA,EAAA;AACL,EAAA,MAAA;YAEI;AACA,IAAA,OAAA,EAAA;AACA,GAAA,GAAA,OAAA;QACJ,MAAC,GAAA,MAAA,SAAA,CAAA,IAAA,CAAA;AAED,EAAA,MAAA,OAAO,GAAG,MAAE,SAAA,CAAA,KAAA,CAAA;AACR,EAAA,MAAA,UAAA,GAAS,MAAA,SAAA,CAAA,CAAA;AACT,EAAA,MAAA,gBAAS,GAAA,QAAA,EAAA,IAAoB,SAAS,IAAE,CAAA,GAAA,KAAA,SAAc,CAAA;AAC1D,EAAA,MAAA,eAAE,GAAA,QAAA,EAAA,MAAA,CAAA,IAAA,IAAA,IAAA,CAAA,GAAA,KAAA,cAAA,CAAA;AACN;WAEM,CAAA,MAAA;UACA,kBAAsB,GAAA,KAAA,IAAW;AACnC,MAAA,IAAE,QAAa,OAAE,IAAA,CAAA,OAAA,CAAA,OAAA,CAAA,QAAA,CAAA,KAAA,CAAA,MAAA,CAAA,EAAA;AACb,QAAA,SAAO,CAAA,KAAA,CAAA;;AAEH,IAAA,CAAA;;AAER,IAAA,MAAG,YAAA,GAAA,KAAA,IAAA;MACP,IAAA,SAAe,KAAA,QAAA,EAAA;AACX,QAAA,SAAA,CAAA,KAAa,CAAA;AACjB,MAAC;AAED,IAAA,CAAA;QACI,MAAI,EAAI;AACJ,MAAA,QAAA,CAAA,gBAAY,CAAA,WAAA,EAAA,kBAAA,CAAA;cACf,CAAA,gBAAA,CAAA,SAAA,EAAA,YAAA,CAAA;;iBAEG;cACH,CAAA,mBAAA,CAAA,WAAA,EAAA,kBAAA,CAAA;AACD,MAAA,QAAA,CAAO,mBAAiB,CAAA,SAAQ,EAAM,YAAO,CAAA;AACjD,IAAA,CAAC;AAED,EAAA,CAAA,EAAA,CAAA,MAAM,CAAA,CAAA;QACF,WAAA,GAAA,QAAA,EAAA,MAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,UAAwC,CAAA,EAAA,GAAA,CAAA,CAAA,IAAA;QACxC,CAAA,CAAA,CAAA,UAAa,EAAA;AAEb,MAAA,MAAA,IACI,GAAA,gBAAA,CAAA,CAAA,CAAA,IAAA,EAAA,WACW,CAAA;;AAEH,QAAA,GAAA,CAAA;AACJ,QAAA;;AAKC,IAAA;AAGb,EAAA,CAAA,CAAA;AAEA,EAAA,SAAA,CAAA,MAAA;;;AAGG,EAAA,MAAA,cAAA,GAAA,IAAA,IAAA;AAEH,IAAA,IAAA,IAAM,IAAA,IAAA,CAAA,OAAkB,CAAC,MAAM,CAAA,KAAE,CAAA,EAAA;aAC7B,IAAA;;QAEA,IAAA,IAAA,IAAA,CAAA,OAAA,CAAA,OAAA,CAAA,KAAA,CAAA,EAAA;aACA,YAAgB,CAAA,MAAM,EAAI,EAAE,CAAA;;AAE5B,IAAA,OAAA,CAAI,cAAc,CAAC,CAAA,OAAK,CAAA,QAAY,GAAA,CAAA;;wBASxB,GAAA,IAAA,IAAA;;AAAsD,IAAA,MAAA;;UAIjE;AACD,MAAA;YAOQ;yBACK,CACI,aACf,CAAA,QAAA,EAAA;AACN,MAAE,OAAA,EAAA,MAAA;QAEF,iBAAmB,CAAG,GAAG,CAAA;QACrB,SAAI,CAAA,KAAW,CAAA,CAAA;AACf,MAAA,CAAA;AACA,MAAA,wFAA4E;AAC5E,MAAA,IAAA,EAAA;AACA,KAAA,EAAAA,cAAA,CAAA,aAAiB,CAAA,KAAG,EAAA;AAEpB,MAAA,SAAI,EAAA;wBAAmC,CAAA,cAAe,CAAA,CAAA;AACtD,EAAA,CAAA;;AACA;;AACA;uBAAwC,GAAG;;kBAGjC,iBAAiB,KAAE,CAAI,IAAE,CAAG;AAElC;;AAIgB,MAAA,MAAA;AACI,MAAA,IAAA;AAGQ,MAAA;;AAEJ;AAGR,IAAA,IAAA,cAAA,CAAA,IAAA,CAAA,QAAA,CAAA,EAAA;yCAGA,CAAA,GAAA,EAAA;;;;AAYoB,QAAA,SAAA,EAAA,6DAAU;;6CAEd;;qCAGA,CAAA,EAAAA,cAAA,CAAA,aAAA,CAAA,MACI,EAAA;AAOA,QAAA,SAAA,EAAA;;;AAaA,IAAA,OAAAA,cAAA,CAAA,aAAA,CAAAC,IAAA,EAAA;;;AAWxC,MAAA,SAAG,EAAA,6EAAA;AACP,MAAE,IAAA,EAAA;AAEF,KAAA,EAAAD,cACI,CAAA,aAAA,CAAA,KAAA,EAAA;eACI,EAAA;AACI,KAAA,EAAA,iBAAA,CAAA,IAAA,CAAA,CAAA,EAAA,IAAA,CAAA;AACI,EAAA,CAAA;;sBAGC,EAAA;AAaW,IAAA,MAAA,UAAA,GAAA,SAAA,EAAA,UAAA,EAAA,mBACkB,KAAA,IACd,CAAA;qBAOf,GAAQ,SAAI,EAAA,WAAA,EAAA,MAAA,CAAA,CAAA,IAAM,CAAA,CAAA,KAAS,KAAC,IAAA,CAAA;AAGhC,IAAA,MAAA,UAAM,GACH,SAAA,EAAA,UAAA,EAAA,MACI,CAAA,CAAA,IAAA,CAAA,CAAA,KAAU,KAAA,IAAA,CAAA;AAMT,IAAA,MAAA,WAAA,GAAA,SAAW,EAAA,aAAqB,MAAK,CAAE,CAAC,IACrC,CAAA,CAAA,KAAA,KAAA,IAAA,CAAA;kBAOH,EAAA,MAAS,iBAAc,qBAAyB,CAAA,GAAA,UAAa,CAAA;AAG7D,IAAA,IAAA,WAAA,EAAA,MAAW,GAAA,CAAA,EAAA,WAAiB,cACzB,CAAA,MAAA,CAAA,GAAA,WAAA,CAAA;kBAMH,EAAA,MAAO,iBAAoB,GAAE,WAAY,CACtC,MAAA,CAAA,GAAA,UAAA,CAAA;qBAOY,MAAA,GAAA,CAAA,EAAA,WAAA,GAAA,WAAc,OAAC,CAAA,GAAA,WAAmB,CAAA;AAC9B,IAAA,OAAA,WAAA,CAAA,GAAA,CAAA,CAAA,IAAA,EAAA,CAAA,KAAA;AACA,MAAA,MAAA;AAEH,QAAA,UAAA;AAQhB,QAAA,GAAA;AAEA,QAAA;;qBAeO,cAAA,IAAAA,cAAA,CAAA,aAAM,CAAS,KAAC,EAAA;;AAOvB,QAAA,SAAA,EAAA;SAQZA,cAAA,CAAA,aAEP,CAAA,KAAA,EAAA;AACN,QAAE,SAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"MainSidebar.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/Sidebar/MainSidebar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAIzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAO7C,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CA0R9C,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"MainSidebar.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/Sidebar/MainSidebar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAIzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAO7C,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAmS9C,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -11,7 +11,8 @@ import {getMenuSeparation}from'@admin-layout/client';import React__default,{useE
11
11
  showHeader,
12
12
  menuHeaderRender,
13
13
  deviceSettings,
14
- isSideMenuLayout
14
+ isSideMenuLayout,
15
+ navbarSlotStripHeight = 0
15
16
  } = props;
16
17
  const [iconModule, setIconModule] = React__default.useState(null);
17
18
  const {
@@ -188,8 +189,14 @@ import {getMenuSeparation}from'@admin-layout/client';import React__default,{useE
188
189
  }))));
189
190
  };
190
191
  return React__default.createElement("div", null, !isMobile && React__default.createElement("aside", {
191
- className: `${deviceLayout?.fixedSidebar ? 'fixed' : 'relative'} border-r border-border z-20 bg-card text-card-foreground md:block flex-shrink-0 transition-all duration-300 ease-in-out ${collapsed ? 'w-16' : 'w-64'} ${showHeader && deviceLayout?.fixedHeader ? deviceLayout?.fixedSidebar ? 'h-[calc(100vh-5rem)] top-20' : 'h-[calc(100vh-5rem)]' : 'h-screen'}`,
192
- style: SidebarStyles
192
+ className: `${deviceLayout?.fixedSidebar ? 'fixed' : 'relative'} border-r border-border z-20 bg-card text-card-foreground md:block flex-shrink-0 transition-all duration-300 ease-in-out ${collapsed ? 'w-16' : 'w-64'} ${navbarSlotStripHeight > 0 ? '' : showHeader && deviceLayout?.fixedHeader ? deviceLayout?.fixedSidebar ? 'h-[calc(100vh-5rem)] top-20' : 'h-[calc(100vh-5rem)]' : 'h-screen'}`,
193
+ style: {
194
+ ...SidebarStyles,
195
+ ...(navbarSlotStripHeight > 0 && {
196
+ top: deviceLayout?.fixedSidebar ? navbarSlotStripHeight : undefined,
197
+ height: `calc(100vh - ${navbarSlotStripHeight}px)`
198
+ })
199
+ }
193
200
  }, menuHeaderRender && isSideMenuLayout && React__default.createElement("div", {
194
201
  className: "border-b border-border py-1 flex items-center justify-center"
195
202
  }, React__default.createElement(SideMenuLogoSlot, {
@@ -1 +1 @@
1
- {"version":3,"file":"MainSidebar.js","sources":["../../../../src/components/Layout/Sidebar/MainSidebar.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"MainSidebar.js","sources":["../../../../src/components/Layout/Sidebar/MainSidebar.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"PerplexSidebarMenu.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/Sidebar/PerplexSidebarMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAM3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,GAAG,GAAG,CAqa/D,CAAC"}
1
+ {"version":3,"file":"PerplexSidebarMenu.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/Sidebar/PerplexSidebarMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAM3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,GAAG,GAAG,CA4c/D,CAAC"}
@@ -90,6 +90,7 @@ import React__default,{useState,useRef}from'react';import {useSelector}from'@xst
90
90
  window.clearTimeout(hoverOpenTimeout.current);
91
91
  hoverOpenTimeout.current = null;
92
92
  }
93
+ // Always update the current hovered menu ref
93
94
  currentHoveredMenu.current = item.path;
94
95
  // Update which item is being hovered and its children data
95
96
  if (hoveredMenu !== item.path) {
@@ -97,6 +98,10 @@ import React__default,{useState,useRef}from'react';import {useSelector}from'@xst
97
98
  setActiveMenuItem(item);
98
99
  // If we're already showing a menu, just update content without closing/reopening
99
100
  if (flyoutVisible) {
101
+ // If menu is closing, cancel the close and reopen
102
+ if (menuTransition === 'closing') {
103
+ setMenuTransition('opening');
104
+ }
100
105
  // Just update the hovered menu path without animation
101
106
  setHoveredMenu(item.path);
102
107
  } else {
@@ -105,6 +110,13 @@ import React__default,{useState,useRef}from'react';import {useSelector}from'@xst
105
110
  setFlyoutVisible(true);
106
111
  setHoveredMenu(item.path);
107
112
  }
113
+ } else {
114
+ // Same menu item, but ensure state is consistent
115
+ // This handles the case where we re-enter after leaving
116
+ if (!flyoutVisible || menuTransition === 'closing') {
117
+ setMenuTransition('opening');
118
+ setFlyoutVisible(true);
119
+ }
108
120
  }
109
121
  // If a different top-level item is hovered while pinned, update pinnedPath
110
122
  if (depth === 0 && pinnedPath) {
@@ -127,20 +139,33 @@ import React__default,{useState,useRef}from'react';import {useSelector}from'@xst
127
139
  window.clearTimeout(hoverOpenTimeout.current);
128
140
  hoverOpenTimeout.current = null;
129
141
  }
130
- currentHoveredMenu.current = null;
131
- // Add a longer delay before closing the menu
142
+ // Don't immediately clear currentHoveredMenu - wait to see if user moves to flyout
143
+ // The flyout's onMouseEnter will restore it if user moves there
144
+ // If user moves to content, the timeout will clear it
145
+ // Add a delay before closing the menu to allow movement to flyout
132
146
  hoverCloseTimeout.current = window.setTimeout(() => {
133
- if (!currentHoveredMenu.current) {
134
- // Only close if we're not currently hovering any menu
135
- setMenuTransition('closing');
136
- // Additional delay to complete closing animation
137
- setTimeout(() => {
138
- if (!currentHoveredMenu.current) {
139
- setFlyoutVisible(false);
140
- setHoveredMenu(null);
141
- }
142
- }, 150);
147
+ // Check if we're still hovering the flyout (activeMenuItem matches)
148
+ if (activeMenuItem?.path === item.path) {
149
+ // User is hovering the flyout, don't close
150
+ return;
151
+ }
152
+ // Check if we re-entered the menu item
153
+ if (currentHoveredMenu.current === item.path) {
154
+ // User re-entered menu item, don't close
155
+ return;
143
156
  }
157
+ // Safe to close now
158
+ currentHoveredMenu.current = null;
159
+ setMenuTransition('closing');
160
+ // Additional delay to complete closing animation
161
+ setTimeout(() => {
162
+ // Double-check before closing
163
+ if (activeMenuItem?.path !== item.path && currentHoveredMenu.current !== item.path) {
164
+ setFlyoutVisible(false);
165
+ setHoveredMenu(null);
166
+ setActiveMenuItem(null);
167
+ }
168
+ }, 150);
144
169
  }, 300); // Extended delay to give more time to move between items
145
170
  }
146
171
  };
@@ -199,23 +224,37 @@ import React__default,{useState,useRef}from'react';import {useSelector}from'@xst
199
224
  ...SidebarStyles
200
225
  },
201
226
  onMouseEnter: () => {
227
+ // Clear any pending close timeouts
202
228
  if (hoverCloseTimeout.current) {
203
229
  window.clearTimeout(hoverCloseTimeout.current);
204
230
  hoverCloseTimeout.current = null;
205
231
  }
206
- // Keep the flyout open while hovering it
232
+ // Restore the hovered menu ref when entering the flyout
233
+ // This ensures state consistency when moving between menu item and flyout
234
+ if (activeMenuItem) {
235
+ currentHoveredMenu.current = activeMenuItem.path;
236
+ // Ensure flyout is visible and in opening state
237
+ if (!flyoutVisible || menuTransition === 'closing') {
238
+ setMenuTransition('opening');
239
+ setFlyoutVisible(true);
240
+ }
241
+ }
207
242
  },
208
243
  onMouseLeave: () => {
209
244
  if (pinnedPath === item.path) return; // don't close if pinned
245
+ // Clear any existing timeouts
210
246
  if (hoverCloseTimeout.current) {
211
247
  window.clearTimeout(hoverCloseTimeout.current);
212
248
  }
213
- currentHoveredMenu.current = null;
249
+ // Don't immediately set to null - wait for timeout
250
+ // This allows re-entering the menu item to restore state
214
251
  setMenuTransition('closing');
215
252
  hoverCloseTimeout.current = window.setTimeout(() => {
253
+ // Only close if we're still not hovering anything
216
254
  if (!currentHoveredMenu.current) {
217
255
  setFlyoutVisible(false);
218
256
  setHoveredMenu(null);
257
+ setActiveMenuItem(null);
219
258
  }
220
259
  }, 150);
221
260
  }