@admin-layout/tailwind-design-pro 12.2.4-alpha.9 → 12.2.4-alpha.91

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 (89) hide show
  1. package/lib/components/Layout/BasicLayout/index.d.ts.map +1 -1
  2. package/lib/components/Layout/BasicLayout/index.js +16 -2
  3. package/lib/components/Layout/BasicLayout/index.js.map +1 -1
  4. package/lib/components/Layout/GlobalHeader/NavbarSlotStrip.d.ts +12 -0
  5. package/lib/components/Layout/GlobalHeader/NavbarSlotStrip.d.ts.map +1 -0
  6. package/lib/components/Layout/GlobalHeader/NavbarSlotStrip.js +18 -0
  7. package/lib/components/Layout/GlobalHeader/NavbarSlotStrip.js.map +1 -0
  8. package/lib/components/Layout/GlobalHeader/RightContent.d.ts +1 -2
  9. package/lib/components/Layout/GlobalHeader/RightContent.d.ts.map +1 -1
  10. package/lib/components/Layout/GlobalHeader/RightContent.js +10 -72
  11. package/lib/components/Layout/GlobalHeader/RightContent.js.map +1 -1
  12. package/lib/components/Layout/GlobalHeader/RightMenu.d.ts.map +1 -1
  13. package/lib/components/Layout/GlobalHeader/RightMenu.js +16 -80
  14. package/lib/components/Layout/GlobalHeader/RightMenu.js.map +1 -1
  15. package/lib/components/Layout/GlobalHeader/SearchBar.js +1 -1
  16. package/lib/components/Layout/GlobalHeader/index.d.ts +1 -0
  17. package/lib/components/Layout/GlobalHeader/index.d.ts.map +1 -1
  18. package/lib/components/Layout/ProTailwindLayout.d.ts +1 -1
  19. package/lib/components/Layout/ProTailwindLayout.d.ts.map +1 -1
  20. package/lib/components/Layout/ProTailwindLayout.js +48 -36
  21. package/lib/components/Layout/ProTailwindLayout.js.map +1 -1
  22. package/lib/components/Layout/Sidebar/BottomMenu.d.ts.map +1 -1
  23. package/lib/components/Layout/Sidebar/BottomMenu.js +51 -78
  24. package/lib/components/Layout/Sidebar/BottomMenu.js.map +1 -1
  25. package/lib/components/Layout/Sidebar/DynamicIcon.d.ts.map +1 -1
  26. package/lib/components/Layout/Sidebar/DynamicIcon.js +80 -19
  27. package/lib/components/Layout/Sidebar/DynamicIcon.js.map +1 -1
  28. package/lib/components/Layout/Sidebar/MainSidebar.d.ts.map +1 -1
  29. package/lib/components/Layout/Sidebar/MainSidebar.js +20 -17
  30. package/lib/components/Layout/Sidebar/MainSidebar.js.map +1 -1
  31. package/lib/components/Layout/Sidebar/MainSidebarMenu.d.ts.map +1 -1
  32. package/lib/components/Layout/Sidebar/MainSidebarMenu.js +213 -36
  33. package/lib/components/Layout/Sidebar/MainSidebarMenu.js.map +1 -1
  34. package/lib/components/Layout/Sidebar/MenuDynamicDialog.d.ts +12 -0
  35. package/lib/components/Layout/Sidebar/MenuDynamicDialog.d.ts.map +1 -0
  36. package/lib/components/Layout/Sidebar/MenuDynamicDialog.js +79 -0
  37. package/lib/components/Layout/Sidebar/MenuDynamicDialog.js.map +1 -0
  38. package/lib/components/Layout/Sidebar/PerplexSidebar.d.ts.map +1 -1
  39. package/lib/components/Layout/Sidebar/PerplexSidebar.js +26 -18
  40. package/lib/components/Layout/Sidebar/PerplexSidebar.js.map +1 -1
  41. package/lib/components/Layout/Sidebar/PerplexSidebarFlyoutContext.d.ts +25 -0
  42. package/lib/components/Layout/Sidebar/PerplexSidebarFlyoutContext.d.ts.map +1 -0
  43. package/lib/components/Layout/Sidebar/PerplexSidebarFlyoutContext.js +287 -0
  44. package/lib/components/Layout/Sidebar/PerplexSidebarFlyoutContext.js.map +1 -0
  45. package/lib/components/Layout/Sidebar/PerplexSidebarMenu.d.ts.map +1 -1
  46. package/lib/components/Layout/Sidebar/PerplexSidebarMenu.js +268 -29
  47. package/lib/components/Layout/Sidebar/PerplexSidebarMenu.js.map +1 -1
  48. package/lib/components/Layout/Sidebar/SidebarRailFX.d.ts +23 -0
  49. package/lib/components/Layout/Sidebar/SidebarRailFX.d.ts.map +1 -0
  50. package/lib/components/Layout/Sidebar/SidebarRailFX.js +229 -0
  51. package/lib/components/Layout/Sidebar/SidebarRailFX.js.map +1 -0
  52. package/lib/components/Layout/TailwindLayout.js +3 -1
  53. package/lib/components/Layout/TailwindLayout.js.map +1 -1
  54. package/lib/components/Layout/getPageTitle.js +2 -2
  55. package/lib/components/Layout/getPageTitle.js.map +1 -1
  56. package/lib/components/Layout/slot-fill/RightContent.d.ts +3 -1
  57. package/lib/components/Layout/slot-fill/RightContent.d.ts.map +1 -1
  58. package/lib/components/Layout/slot-fill/RightContent.js +4 -6
  59. package/lib/components/Layout/slot-fill/RightContent.js.map +1 -1
  60. package/lib/components/SettingDrawer/hooks/useSettingsOperations.d.ts.map +1 -1
  61. package/lib/components/SettingDrawer/hooks/useSettingsOperations.js +2 -1
  62. package/lib/components/SettingDrawer/hooks/useSettingsOperations.js.map +1 -1
  63. package/lib/components/SettingDrawer/utils/constants.d.ts.map +1 -1
  64. package/lib/components/SettingDrawer/utils/constants.js +3 -0
  65. package/lib/components/SettingDrawer/utils/constants.js.map +1 -1
  66. package/lib/components/SettingsThemeApplier/SettingsThemeApplier.d.ts +10 -0
  67. package/lib/components/SettingsThemeApplier/SettingsThemeApplier.d.ts.map +1 -0
  68. package/lib/components/SettingsThemeApplier/SettingsThemeApplier.js +23 -0
  69. package/lib/components/SettingsThemeApplier/SettingsThemeApplier.js.map +1 -0
  70. package/lib/components/SettingsThemeApplier/index.d.ts +2 -0
  71. package/lib/components/SettingsThemeApplier/index.d.ts.map +1 -0
  72. package/lib/components/index.js +1 -1
  73. package/lib/components/typings.d.ts +4 -0
  74. package/lib/components/typings.d.ts.map +1 -1
  75. package/lib/compute.js +2 -2
  76. package/lib/compute.js.map +1 -1
  77. package/lib/helpers/DynamicIcon.js +7 -1
  78. package/lib/helpers/DynamicIcon.js.map +1 -1
  79. package/lib/index.d.ts +2 -0
  80. package/lib/index.d.ts.map +1 -1
  81. package/lib/index.js +1 -1
  82. package/lib/index.js.map +1 -1
  83. package/lib/routes.json +5 -2
  84. package/lib/styles/index.css +321 -0
  85. package/lib/utils/settingsTheme.d.ts +40 -0
  86. package/lib/utils/settingsTheme.d.ts.map +1 -0
  87. package/lib/utils/settingsTheme.js +106 -0
  88. package/lib/utils/settingsTheme.js.map +1 -0
  89. package/package.json +8 -7
@@ -1,4 +1,4 @@
1
- import {generateMenuPath}from'@admin-layout/client';import {useLocation,useNavigate}from'@remix-run/react';import React__default,{useState,useEffect,useCallback}from'react';import {icons}from'../../../icons.js';// Constants moved outside component
1
+ import {generateMenuPath}from'@admin-layout/client';import {useLocation,useNavigate,Link}from'@remix-run/react';import React__default,{useState,useRef,useCallback,useEffect}from'react';import {icons}from'../../../icons.js';// Constants moved outside component
2
2
  const SIDEBAR_WIDTHS = {
3
3
  COLLAPSED: 64,
4
4
  EXPANDED: 256
@@ -24,11 +24,84 @@ const isMenuItemActive = (itemPath, currentPath, routeParams, exact) => {
24
24
  }
25
25
  return false;
26
26
  };
27
- // CSS keyframes definition moved outside component
27
+ // Motion system sliding active indicator + icon micro-interactions when collapsed.
28
+ // All transforms/opacity/filter only; layout untouched. Honors prefers-reduced-motion.
29
+ const SIDEBAR_MOTION_CSS = `
30
+ .ql-rail-indicator {
31
+ position: absolute;
32
+ left: 2px;
33
+ top: 0;
34
+ width: 3px;
35
+ border-radius: 9999px;
36
+ background: hsl(var(--primary));
37
+ box-shadow: 0 0 0 0.5px hsl(var(--primary) / 0.25), 0 0 12px hsl(var(--primary) / 0.55);
38
+ pointer-events: none;
39
+ will-change: transform, height, opacity;
40
+ z-index: 1;
41
+ }
42
+ .ql-rail-indicator--animated {
43
+ transition:
44
+ transform 0.42s cubic-bezier(0.22, 1, 0.36, 1),
45
+ height 0.42s cubic-bezier(0.22, 1, 0.36, 1),
46
+ opacity 0.2s ease-out;
47
+ }
48
+ .ql-rail-icon {
49
+ transition: transform 0.24s cubic-bezier(0.22, 1, 0.36, 1), filter 0.24s ease-out;
50
+ will-change: transform;
51
+ }
52
+ .ql-rail-item:hover .ql-rail-icon {
53
+ transform: translateY(-1px) scale(1.12);
54
+ }
55
+ .ql-rail-item:active .ql-rail-icon {
56
+ transform: scale(0.94);
57
+ transition-duration: 0.1s;
58
+ }
59
+ .ql-rail-icon-active {
60
+ transform: scale(1.08);
61
+ filter: drop-shadow(0 1px 6px hsl(var(--primary) / 0.45));
62
+ }
63
+ .ql-rail-item:hover .ql-rail-icon-active {
64
+ transform: translateY(-1px) scale(1.14);
65
+ }
66
+ .ql-hover-accent {
67
+ background: hsl(var(--primary) / 0.35);
68
+ animation: qlHoverAccentIn 0.22s cubic-bezier(0.16, 1, 0.3, 1);
69
+ }
70
+ @keyframes qlHoverAccentIn {
71
+ from { opacity: 0; transform: scaleY(0.4); }
72
+ to { opacity: 1; transform: scaleY(1); }
73
+ }
74
+ @media (prefers-reduced-motion: reduce) {
75
+ .ql-rail-indicator--animated { transition: opacity 0.12s ease-out; }
76
+ .ql-rail-icon,
77
+ .ql-rail-item:hover .ql-rail-icon,
78
+ .ql-rail-item:active .ql-rail-icon,
79
+ .ql-rail-item:hover .ql-rail-icon-active { transition: none; transform: none; }
80
+ .ql-rail-icon-active { transform: none; }
81
+ .ql-hover-accent { animation: none; }
82
+ }
83
+ `;
84
+ // CSS keyframes for collapsed popup flyout
28
85
  const POPUP_ANIMATION_CSS = `
29
- @keyframes fadeIn {
30
- from { opacity: 0; transform: translateX(-10px); }
31
- to { opacity: 1; transform: translateX(0); }
86
+ @keyframes flyoutIn {
87
+ from { opacity: 0; transform: translateX(-14px) scale(0.98); filter: blur(6px); }
88
+ to { opacity: 1; transform: translateX(0) scale(1); filter: blur(0); }
89
+ }
90
+ @keyframes flyoutItemIn {
91
+ from { opacity: 0; transform: translateX(10px); }
92
+ to { opacity: 1; transform: translateX(0); }
93
+ }
94
+ .ql-popup-flyout {
95
+ animation: flyoutIn 0.26s cubic-bezier(0.16, 1, 0.3, 1) forwards;
96
+ }
97
+ .ql-popup-item {
98
+ opacity: 0;
99
+ animation: flyoutItemIn 0.34s cubic-bezier(0.22, 1, 0.36, 1) forwards;
100
+ animation-delay: calc(60ms + var(--i, 0) * 38ms);
101
+ }
102
+ @media (prefers-reduced-motion: reduce) {
103
+ .ql-popup-flyout { animation-duration: 0.01ms; filter: none; }
104
+ .ql-popup-item { animation: none; opacity: 1; }
32
105
  }
33
106
  `;
34
107
  const getTextColor = (active, navTheme) => {
@@ -98,6 +171,7 @@ const MenuItem = React__default.memo(({
98
171
  onMenuHover,
99
172
  onMenuLeave,
100
173
  onNavigate,
174
+ registerItemRef,
101
175
  ChevronUpIcon,
102
176
  ChevronDownIcon
103
177
  }) => {
@@ -110,7 +184,8 @@ const MenuItem = React__default.memo(({
110
184
  const subMenuItemPaddingLeft = `${depth * 2}rem`;
111
185
  // Determine styling based on whether it's a parent or child item
112
186
  const isParentWithChildren = hasChildren && depth === 0;
113
- const shouldApplyBackground = isActive && !isParentWithChildren || isHovered;
187
+ const isTopLevel = depth === 0 && !isHoverMenu;
188
+ const shouldApplyBackground = !isTopLevel && isActive || isTopLevel && !collapsed && isActive && !isParentWithChildren || isHovered;
114
189
  const handleMenuClick = useCallback(e => {
115
190
  // Prevent event from bubbling to parent menu items
116
191
  e.stopPropagation();
@@ -123,12 +198,13 @@ const MenuItem = React__default.memo(({
123
198
  // Handle menu toggle for items with children
124
199
  e.preventDefault();
125
200
  onToggleMenu(item.path, depth, e);
126
- } else {
127
- // For items without children, navigate to their path
128
- const targetPath = generateMenuPath(item.path, routeParams);
129
- onNavigate(targetPath);
130
201
  }
131
- }, [hasChildren, item.path, depth, onToggleMenu, routeParams, collapsed, isHoverMenu]);
202
+ }, [hasChildren, item.path, depth, onToggleMenu, collapsed, isHoverMenu]);
203
+ // Leaf items render as real <Link>s so route modules and loader data prefetch on
204
+ // hover intent (and middle-click / a11y work); parents stay divs and only toggle.
205
+ const leafTargetPath = hasChildren ? null : generateMenuPath(item.path, routeParams);
206
+ const RowElement = leafTargetPath ? Link : 'div';
207
+ const stopRowPropagation = useCallback(e => e.stopPropagation(), []);
132
208
  // Enhanced renderPopupMenu to handle nested items in collapsed mode
133
209
  const renderPopupMenu = useCallback(() => {
134
210
  if (!item.children || item.children.length === 0) return null;
@@ -144,36 +220,40 @@ const MenuItem = React__default.memo(({
144
220
  };
145
221
  // Create a recursive function to render menu items and their children
146
222
  const renderNestedItems = (items, currentDepth) => {
147
- return items.map(childItem => {
223
+ return items.map((childItem, idx) => {
148
224
  const isChildOpen = openMenus.includes(childItem.path);
149
225
  const isChildActive = isMenuItemActive(childItem.path, locationPathname, routeParams, childItem.exact);
150
226
  const hasGrandchildren = childItem.children && childItem.children.length > 0;
151
227
  return React__default.createElement("div", {
152
228
  key: childItem.path,
153
- className: "popup-menu-item"
154
- }, React__default.createElement("div", {
155
- className: `flex items-center justify-between w-full px-4 py-2.5 hover:bg-accent/20 text-sm cursor-pointer rounded-sm ${isChildActive ? 'bg-accent/10 text-primary font-medium' : 'text-foreground'} ${hasGrandchildren ? 'font-medium' : ''}`,
229
+ className: "ql-popup-item popup-menu-item",
230
+ style: {
231
+ ['--i']: idx
232
+ }
233
+ }, hasGrandchildren ? React__default.createElement("div", {
234
+ className: `flex items-center justify-between w-full px-4 py-2.5 hover:bg-accent/20 text-sm cursor-pointer rounded-sm font-medium ${isChildActive ? 'bg-accent/10 text-primary' : 'text-foreground'}`,
156
235
  onClick: e => {
157
236
  e.stopPropagation();
158
- if (hasGrandchildren) {
159
- // Handle menu toggle in collapsed mode using our helper
160
- e.preventDefault();
161
- toggleCollapsedMenu(childItem.path);
162
- } else {
163
- // For leaf nodes, navigate to the path
164
- const targetPath = generateMenuPath(childItem.path, routeParams);
165
- onNavigate(targetPath);
166
- }
237
+ // Handle menu toggle in collapsed mode using our helper
238
+ e.preventDefault();
239
+ toggleCollapsedMenu(childItem.path);
167
240
  }
168
241
  }, React__default.createElement("span", {
169
242
  className: "text-sm font-medium"
170
- }, childItem.name), hasGrandchildren && React__default.createElement("span", {
243
+ }, childItem.name), React__default.createElement("span", {
171
244
  className: "text-muted-foreground ml-2"
172
245
  }, isChildOpen ? React__default.createElement(ChevronUpIcon, {
173
246
  className: "h-4 w-4"
174
247
  }) : React__default.createElement(ChevronDownIcon, {
175
248
  className: "h-4 w-4"
176
- }))), hasGrandchildren && React__default.createElement("div", {
249
+ }))) : React__default.createElement(Link, {
250
+ to: generateMenuPath(childItem.path, routeParams),
251
+ prefetch: "intent",
252
+ className: `flex items-center justify-between w-full px-4 py-2.5 hover:bg-accent/20 text-sm cursor-pointer rounded-sm ${isChildActive ? 'bg-accent/10 text-primary font-medium' : 'text-foreground'}`,
253
+ onClick: e => e.stopPropagation()
254
+ }, React__default.createElement("span", {
255
+ className: "text-sm font-medium"
256
+ }, childItem.name)), hasGrandchildren && React__default.createElement("div", {
177
257
  className: `pl-3 border-l border-border/60 ml-3 mt-1 mb-1 ${isChildOpen ? 'block' : 'hidden'} transition-all duration-200 ease-in-out`,
178
258
  style: {
179
259
  maxHeight: isChildOpen ? '500px' : '0px',
@@ -184,13 +264,15 @@ const MenuItem = React__default.memo(({
184
264
  });
185
265
  };
186
266
  return React__default.createElement("div", {
187
- className: "fixed shadow-themed-xl rounded-themed-lg border border-border z-[999] themed-dropdown bg-card",
267
+ className: "ql-popup-flyout fixed shadow-themed-xl rounded-themed-lg border border-border z-[999] themed-dropdown bg-card",
188
268
  onClick: e => e.stopPropagation(),
189
269
  style: {
190
270
  left: `${SIDEBAR_WIDTHS[collapsed ? 'COLLAPSED' : 'EXPANDED']}px`,
191
271
  top: `${Math.max(popupPosition.top - 20, 10)}px`,
192
272
  // Adjust top position to be higher
193
- animation: 'fadeIn 0.2s ease-out forwards',
273
+ transformOrigin: 'left center',
274
+ background: 'hsl(var(--muted))',
275
+ boxShadow: '0 24px 70px -24px rgba(0,0,0,0.45)',
194
276
  maxWidth: 'calc(100vw - 120px)',
195
277
  width: 'max-content',
196
278
  minWidth: POPUP_CONFIG.MIN_WIDTH,
@@ -214,21 +296,30 @@ const MenuItem = React__default.memo(({
214
296
  }, renderNestedItems(item.children)));
215
297
  }, [item, depth, collapsed, popupPosition.top, openMenus, navTheme, locationPathname, routeParams, onToggleMenu, onNavigate, ChevronUpIcon, ChevronDownIcon]);
216
298
  return React__default.createElement("div", {
217
- className: `w-full relative group ${isHovered && collapsed && !isHoverMenu ? 'rounded-themed' : ''} ${isHovered && !isHoverMenu ? 'bg-muted' : ''}`,
299
+ ref: isTopLevel ? el => registerItemRef?.(item.path, el) : undefined,
300
+ className: `w-full relative group ${isTopLevel ? 'ql-rail-item' : ''} ${isHovered && collapsed && !isHoverMenu ? 'rounded-themed' : ''} ${isHovered && !isHoverMenu && !isTopLevel ? 'bg-muted' : ''}`,
218
301
  onMouseEnter: e => onMenuHover(e, item, isHoverMenu),
219
302
  onMouseLeave: () => onMenuLeave(item, isHoverMenu)
220
- }, React__default.createElement("div", {
303
+ }, isTopLevel && isParentWithChildren && isHovered && !isActive && React__default.createElement("span", {
304
+ className: "absolute left-0 top-1.5 bottom-1.5 w-0.5 rounded-full ql-hover-accent"
305
+ }), React__default.createElement(RowElement, {
306
+ ...(leafTargetPath ? {
307
+ to: leafTargetPath,
308
+ prefetch: 'intent',
309
+ onClick: stopRowPropagation
310
+ } : {
311
+ onClick: handleMenuClick
312
+ }),
221
313
  className: `flex items-center justify-between w-full px-1 py-2 hover:bg-muted text-sm cursor-pointer transition-colors rounded-themed mx-1 my-0.5 whitespace-nowrap overflow-hidden text-ellipsis ${shouldApplyBackground ? 'bg-muted' : ''}`,
222
314
  style: {
223
315
  paddingLeft: `calc(1rem + ${depth > 0 ? subMenuItemPaddingLeft : menuItemPaddingLeft})`
224
- },
225
- onClick: handleMenuClick
316
+ }
226
317
  }, React__default.createElement("div", {
227
318
  className: `flex items-center ${collapsed && !isHoverMenu ? 'justify-center w-full' : 'gap-3'}`
228
319
  }, item.icon ? React__default.createElement("span", {
229
- className: `flex-shrink-0 ${getIconColor(isActive, navTheme)}`
320
+ className: `flex-shrink-0 ${getIconColor(isActive, navTheme)} ${isTopLevel && collapsed ? `ql-rail-icon ${isActive ? 'ql-rail-icon-active' : ''}` : ''}`
230
321
  }, item.icon) : collapsed && !isHoverMenu ? React__default.createElement("span", {
231
- className: `flex items-center justify-center flex-shrink-0 ${getIconColor(isActive, navTheme)}`
322
+ className: `flex items-center justify-center flex-shrink-0 ${getIconColor(isActive, navTheme)} ${isTopLevel ? `text-[16px] h-6 w-6 select-none text-center ql-rail-icon ${isActive ? 'ql-rail-icon-active' : ''}` : ''}`
232
323
  }, getFirstLetter(item.name)) : null, (!collapsed || isHoverMenu) && React__default.createElement("span", {
233
324
  className: `font-medium whitespace-nowrap overflow-hidden text-ellipsis ${getTextColor(isActive, navTheme)} ${depth > 0 ? `text-xs` : ''}`
234
325
  }, item.name)), hasChildren && (!collapsed || isHoverMenu) && React__default.createElement("span", {
@@ -255,6 +346,7 @@ const MenuItem = React__default.memo(({
255
346
  onMenuHover: onMenuHover,
256
347
  onMenuLeave: onMenuLeave,
257
348
  onNavigate: onNavigate,
349
+ registerItemRef: registerItemRef,
258
350
  ChevronUpIcon: ChevronUpIcon,
259
351
  ChevronDownIcon: ChevronDownIcon
260
352
  }))));
@@ -290,11 +382,79 @@ function MainSidebarMenuComponent({
290
382
  top: 0,
291
383
  height: 0
292
384
  });
385
+ const navRef = useRef(null);
386
+ const itemRefs = useRef({});
387
+ const [indicator, setIndicator] = useState({
388
+ y: 0,
389
+ h: 0,
390
+ visible: false
391
+ });
392
+ const indicatorPrimed = useRef(false);
393
+ const [indicatorAnimated, setIndicatorAnimated] = useState(false);
293
394
  const {
294
395
  ChevronDownIcon,
295
396
  ChevronUpIcon
296
397
  } = icons;
297
398
  const navTheme = settings?.navTheme;
399
+ const registerItemRef = useCallback((path, el) => {
400
+ itemRefs.current[path] = el;
401
+ }, []);
402
+ // Tear down hover popup state on route change — mouse-leave never fires after in-popup navigation.
403
+ useEffect(() => {
404
+ setHoveredMenu(null);
405
+ }, [location.pathname]);
406
+ const isMenuItemActiveAtRoot = useCallback(itemPath => isMenuItemActive(itemPath, location.pathname, routeParams), [location.pathname, routeParams]);
407
+ const measureIndicator = useCallback(() => {
408
+ if (typeof window === 'undefined') return false;
409
+ const nav = navRef.current;
410
+ if (!nav) return false;
411
+ const activeItem = menuData.find(item => isMenuItemActiveAtRoot(item.path));
412
+ const el = activeItem ? itemRefs.current[activeItem.path] : null;
413
+ if (el) {
414
+ setIndicator({
415
+ y: el.offsetTop,
416
+ h: el.offsetHeight,
417
+ visible: true
418
+ });
419
+ return true;
420
+ }
421
+ setIndicator(prev => ({
422
+ ...prev,
423
+ visible: false
424
+ }));
425
+ return !activeItem;
426
+ }, [menuData, isMenuItemActiveAtRoot]);
427
+ const measureRef = useRef(measureIndicator);
428
+ measureRef.current = measureIndicator;
429
+ useEffect(() => {
430
+ if (typeof window === 'undefined') return;
431
+ const nav = navRef.current;
432
+ if (!nav) return;
433
+ const run = () => measureRef.current();
434
+ const ro = typeof ResizeObserver !== 'undefined' ? new ResizeObserver(run) : null;
435
+ ro?.observe(nav);
436
+ window.addEventListener('resize', run);
437
+ return () => {
438
+ ro?.disconnect();
439
+ window.removeEventListener('resize', run);
440
+ };
441
+ }, []);
442
+ useEffect(() => {
443
+ if (typeof window === 'undefined') return;
444
+ const rafs = [];
445
+ if (!measureRef.current()) {
446
+ rafs.push(requestAnimationFrame(() => {
447
+ if (!measureRef.current()) rafs.push(requestAnimationFrame(() => measureRef.current()));
448
+ }));
449
+ }
450
+ if (!indicatorPrimed.current) {
451
+ indicatorPrimed.current = true;
452
+ rafs.push(requestAnimationFrame(() => setIndicatorAnimated(true)));
453
+ } else {
454
+ setIndicatorAnimated(true);
455
+ }
456
+ return () => rafs.forEach(r => cancelAnimationFrame(r));
457
+ }, [location.pathname, menuData, routeParams, collapsed]);
298
458
  // Initialize openMenus based on the current path
299
459
  const [openMenus, setOpenMenus] = useState(() => {
300
460
  return findParentPaths(menuData, location.pathname, routeParams);
@@ -429,9 +589,25 @@ function MainSidebarMenuComponent({
429
589
  }, [navigate]);
430
590
  return React__default.createElement("div", {
431
591
  className: "overflow-hidden"
432
- }, React__default.createElement("nav", {
592
+ }, React__default.createElement("style", {
593
+ dangerouslySetInnerHTML: {
594
+ __html: SIDEBAR_MOTION_CSS
595
+ }
596
+ }), React__default.createElement("nav", {
597
+ ref: navRef,
598
+ style: {
599
+ position: 'relative'
600
+ },
433
601
  className: `mt-2 ${collapsed ? 'px-1' : 'px-2'} overflow-x-hidden`
434
- }, menuData.map(item => React__default.createElement(MenuItem, {
602
+ }, React__default.createElement("span", {
603
+ "aria-hidden": "true",
604
+ className: `ql-rail-indicator ${indicatorAnimated ? 'ql-rail-indicator--animated' : ''}`,
605
+ style: {
606
+ transform: `translateY(${indicator.y + 6}px)`,
607
+ height: `${Math.max(indicator.h - 12, 0)}px`,
608
+ opacity: indicator.visible ? 1 : 0
609
+ }
610
+ }), menuData.map(item => React__default.createElement(MenuItem, {
435
611
  key: item.path,
436
612
  item: item,
437
613
  depth: 0,
@@ -447,6 +623,7 @@ function MainSidebarMenuComponent({
447
623
  onMenuHover: handleMenuHover,
448
624
  onMenuLeave: handleMenuLeave,
449
625
  onNavigate: handleNavigate,
626
+ registerItemRef: registerItemRef,
450
627
  ChevronUpIcon: ChevronUpIcon,
451
628
  ChevronDownIcon: ChevronDownIcon
452
629
  }))));
@@ -1 +1 @@
1
- {"version":3,"file":"MainSidebarMenu.js","sources":["../../../../src/components/Layout/Sidebar/MainSidebarMenu.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"MainSidebarMenu.js","sources":["../../../../src/components/Layout/Sidebar/MainSidebarMenu.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ /**
3
+ * Loads a menu modal via switchDialogs(path) and mounts it on document.body.
4
+ * Fixes clipped “strip” modals: position:fixed inside sidebar/layout (transform,
5
+ * overflow, inline-block shells) uses the wrong containing block unless the tree
6
+ * is attached under body.
7
+ */
8
+ export declare const MenuDynamicDialog: React.FC<{
9
+ dialogPath: string;
10
+ onClose: () => void;
11
+ }>;
12
+ //# sourceMappingURL=MenuDynamicDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuDynamicDialog.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/Sidebar/MenuDynamicDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAc3D;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CAoCnF,CAAC"}
@@ -0,0 +1,79 @@
1
+ import React__default,{useState,useEffect,useRef}from'react';import {createPortal}from'react-dom';import switchDialogs from'@app/dialog/WrappedDialogsSwitch';/** Logout ships a full-screen `fixed` root; neutralize it when embedded so it cannot nest inside another transformed modal shell (fixed then resolves to a tiny box → horizontal “strip”). */
2
+ function shouldNeutralizeOuterFixedOverlay(path) {
3
+ const p = path.replace(/\\/g, '/');
4
+ return p.includes('/Logout/') && /\/Logout\/index\.js$/i.test(p);
5
+ }
6
+ /**
7
+ * Loads a menu modal via switchDialogs(path) and mounts it on document.body.
8
+ * Fixes clipped “strip” modals: position:fixed inside sidebar/layout (transform,
9
+ * overflow, inline-block shells) uses the wrong containing block unless the tree
10
+ * is attached under body.
11
+ */
12
+ const MenuDynamicDialog = ({
13
+ dialogPath,
14
+ onClose
15
+ }) => {
16
+ const [mod, setMod] = useState(null);
17
+ useEffect(() => {
18
+ let cancelled = false;
19
+ setMod(null);
20
+ switchDialogs(dialogPath).then(loaded => {
21
+ if (!cancelled) setMod(loaded);
22
+ });
23
+ return () => {
24
+ cancelled = true;
25
+ };
26
+ }, [dialogPath]);
27
+ if (typeof document === 'undefined') {
28
+ return null;
29
+ }
30
+ if (!mod) {
31
+ return createPortal(React__default.createElement("div", {
32
+ className: "fixed inset-0 z-[120] flex items-center justify-center bg-black/30"
33
+ }, React__default.createElement("span", {
34
+ className: "rounded-themed-lg bg-card px-4 py-3 text-sm text-muted-foreground shadow-themed-md"
35
+ }, "Loading...")), document.body);
36
+ }
37
+ const Inner = mod.default;
38
+ if (!shouldNeutralizeOuterFixedOverlay(dialogPath)) {
39
+ return createPortal(React__default.createElement(Inner, {
40
+ onClose: onClose
41
+ }), document.body);
42
+ }
43
+ return createPortal(React__default.createElement(LogoutFixedNeutralizedShell, {
44
+ Inner: Inner,
45
+ onClose: onClose
46
+ }), document.body);
47
+ };
48
+ /** Logout returns null after cancel; keep menu `openedModalKey` in sync by closing when its DOM unmounts. */
49
+ function LogoutFixedNeutralizedShell({
50
+ Inner,
51
+ onClose
52
+ }) {
53
+ const innerHostRef = useRef(null);
54
+ useEffect(() => {
55
+ const el = innerHostRef.current;
56
+ if (!el) return;
57
+ const syncIfEmpty = () => {
58
+ if (el.childElementCount === 0) {
59
+ onClose();
60
+ }
61
+ };
62
+ const mo = new MutationObserver(syncIfEmpty);
63
+ mo.observe(el, {
64
+ childList: true
65
+ });
66
+ return () => mo.disconnect();
67
+ }, [onClose]);
68
+ return React__default.createElement("div", {
69
+ className: "fixed inset-0 z-[120] flex items-center justify-center bg-black/50 p-4",
70
+ role: "presentation",
71
+ onClick: () => onClose()
72
+ }, React__default.createElement("div", {
73
+ ref: innerHostRef,
74
+ className: "w-full max-w-md [&>*]:!relative [&>*]:!inset-auto [&>*]:!min-h-0 [&>*]:!w-full [&>*]:!max-w-full [&>*]:!bg-transparent [&>*]:flex [&>*]:items-center [&>*]:justify-center",
75
+ onClick: e => e.stopPropagation()
76
+ }, React__default.createElement(Inner, {
77
+ onClose: onClose
78
+ })));
79
+ }export{MenuDynamicDialog};//# sourceMappingURL=MenuDynamicDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuDynamicDialog.js","sources":["../../../../src/components/Layout/Sidebar/MenuDynamicDialog.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"8JAQA;AACA,SAAS,iCAAiC,CAAC,IAAY,EAAA;QACnD,CAAA,GAAO,IAAG,CAAA,OAAK,CAAA,KAAQ,EAAK,GAAE,CAAA;AAC9B,EAAA,OAAA,CAAA,CAAO,QAAE,CAAA,UAAS,CAAA,IAAW,uBAAI,CAAA,IAAwB,CAAA,CAAI,CAAC;AAClE;AAEA;;;;;AAKG;AACI,MAAM,iBAAiB,GAA0D,CAAC;YAC9E;;;QAIH,CAAA,GAAA,EAAM,MAAM,CAAC,GAAA,QAAA,CAAA,IAAA,CAAA;WACb,CAAA,MAAA;AACI,IAAA,IAAA,SAAK,GAAA,KAAA;gBAAW;AACpB,IAAA,aAAG,CAAA,UAAA,CAAA,CAAA,IAAA,CAAA,MAAA,IAAA;AACH,MAAA,IAAA,CAAA,SAAY,EAAA,MAAA,CAAA,MAAA,CAAA;;AAEZ,IAAA,OAAE,MAAA;AACN,MAAC,SAAG,GAAU,IAAG;AAEjB,IAAA,CAAA;AACI,EAAA,CAAA,EAAA,CAAA;MACH,OAAA,QAAA,KAAA,WAAA,EAAA;IAED,OAAK,IAAM;AACP,EAAA;YAEQ;IAMZ,OAAC,YAAA,CAAAA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAED,MAAA,SAAW,EAAA;AAEX,KAAA,EAAAA,cAAK,CAAA,aAAA,CAAA,MAAA,EAAA;AACD,MAAA,SAAO,EAAA;KACV,EAAA,YAAA,CAAA,CAAA,EAAA,QAAA,CAAA,IAAA,CAAA;AAED,EAAA;AACJ,EAAE,MAAA,KAAA,GAAA,GAAA,CAAA,OAAA;AAEF,EAAA,IAAA,CAAA,iCAAA,CAAA,UAAA,CAAA,EAAA;AACA,IAAA,gDAAuC,CAAK;AACxC,MAAA;KAEA,CAAA,EAAA,SAAa,IAAE,CAAA;AACX,EAAA;AACA,EAAA,OAAA,YAAO,CAAAA,cAAA,CAAA,aAAA,CAAA,2BAAA,EAAA;gBAAE;WACT,EAAA;AACI,GAAA,CAAA,EAAA,QAAA,CAAA,IAAO,CAAA;AACH;;AAER,SAAC,2BAAC,CAAA;AACF,EAAA,KAAA;;AAEA,CAAA,EAAA;AACJ,EAAA,MAAI,YAAU,GAAA,MAAA,CAAA,IAAA,CAAA;AAEd,EAAA,SAAO,CACH,MAAA;AAKI,IAAA,MAAA,EAAA,GAAA,YAAA,CAAA,OAAA;aAKI;AAIhB,IAAC,MAAA,WAAA,GAAA,MAAA;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PerplexSidebar.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/Sidebar/PerplexSidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAO7C,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CA6TjD,CAAC"}
1
+ {"version":3,"file":"PerplexSidebar.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/Sidebar/PerplexSidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAS7C,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAwUjD,CAAC"}
@@ -1,4 +1,4 @@
1
- import React__default,{useEffect}from'react';import {useTranslation}from'react-i18next';import {getMenuSeparation}from'@admin-layout/client';import {Divider}from'./Divider.js';import {PerplexSidebarMenu}from'./PerplexSidebarMenu.js';import'@react-icons/all-files/fa/FaMoon.js';import'@react-icons/all-files/fa/FaSun.js';import {useMediaQuery}from'../../../hooks/useMediaQuery.js';import'@common-stack/components-pro';import'reflect-metadata';import'@admin-layout/client/lib/constants/layout.js';import {SideMenuLogoSlot}from'../slot-fill/SideMenuLogo.js';import {BottomMenu}from'./BottomMenu.js';import {icons}from'../../../icons.js';import {MainSidebarMenu}from'./MainSidebarMenu.js';const PerplexSidebar = props => {
1
+ import React__default,{useEffect}from'react';import {useTranslation}from'react-i18next';import {getMenuSeparation}from'@admin-layout/client';import {Divider}from'./Divider.js';import {PerplexSidebarMenu}from'./PerplexSidebarMenu.js';import {PerplexSidebarFlyoutProvider}from'./PerplexSidebarFlyoutContext.js';import'@react-icons/all-files/fa/FaMoon.js';import'@react-icons/all-files/fa/FaSun.js';import {useMediaQuery}from'../../../hooks/useMediaQuery.js';import'@common-stack/components-pro';import'reflect-metadata';import'@admin-layout/client/lib/constants/layout.js';import {SideMenuLogoSlot}from'../slot-fill/SideMenuLogo.js';import {BottomMenu}from'./BottomMenu.js';import {renderDynamicIcon}from'./DynamicIcon.js';import {icons}from'../../../icons.js';import {MainSidebarMenu}from'./MainSidebarMenu.js';import {SidebarRailFX}from'./SidebarRailFX.js';const PerplexSidebar = props => {
2
2
  const {
3
3
  isSideMenuOpen,
4
4
  closeSideMenu,
@@ -19,7 +19,6 @@ import React__default,{useEffect}from'react';import {useTranslation}from'react-i
19
19
  authorities,
20
20
  picture
21
21
  } = props;
22
- const [iconModule, setIconModule] = React__default.useState(null);
23
22
  const {
24
23
  t,
25
24
  i18n
@@ -55,15 +54,10 @@ import React__default,{useEffect}from'react';import {useTranslation}from'react-i
55
54
  splitMenus: getUILayoutValue('splitMenus'),
56
55
  upperMenuDividerName: getUILayoutValue('upperMenuDividerName'),
57
56
  middleMenuDividerName: getUILayoutValue('middleMenuDividerName'),
58
- lowerMenuDividerName: getUILayoutValue('lowerMenuDividerName')
57
+ lowerMenuDividerName: getUILayoutValue('lowerMenuDividerName'),
58
+ // Opt-in ambient rail backdrop: 'off' (default) | 'aurora' | 'webgpu'.
59
+ railFx: getUILayoutValue('railFx') || 'off'
59
60
  };
60
- useEffect(() => {
61
- if (!iconModule) {
62
- import('./DynamicIcon.js').then(module => {
63
- setIconModule(module);
64
- });
65
- }
66
- }, []);
67
61
  // Close sidebar when clicking outside on mobile
68
62
  useEffect(() => {
69
63
  const handleClickOutside = event => {
@@ -100,7 +94,7 @@ import React__default,{useEffect}from'react';import {useTranslation}from'react-i
100
94
  const updatedItem = {
101
95
  ...item,
102
96
  name: t(item.name),
103
- icon: iconModule && item.icon ? iconModule.renderDynamicIcon(item.icon) : null
97
+ icon: item.icon ? renderDynamicIcon(item.icon) : null
104
98
  };
105
99
  if (updatedItem.children) {
106
100
  updatedItem.children = updateMenuIcons(updatedItem.children);
@@ -111,6 +105,9 @@ import React__default,{useEffect}from'react';import {useTranslation}from'react-i
111
105
  ({
112
106
  menuData: updateMenuIcons(bottomMenus)
113
107
  });
108
+ const processedMiddleMenus = React__default.useMemo(() => updateMenuIcons(middleMenus), [middleMenus, i18n.language]);
109
+ const processedLowerMenus = React__default.useMemo(() => updateMenuIcons(lowerMenus), [lowerMenus, i18n.language]);
110
+ const railMenuData = React__default.useMemo(() => [...processedMiddleMenus, ...processedLowerMenus], [processedMiddleMenus, processedLowerMenus]);
114
111
  // Use CSS classes instead of theme-based styling
115
112
  const getSidebarClasses = () => {
116
113
  let classes = `text-gray-500 dark:text-gray-400 h-full flex flex-col`;
@@ -150,10 +147,19 @@ import React__default,{useEffect}from'react';import {useTranslation}from'react-i
150
147
  className: "relative"
151
148
  }), React__default.createElement("div", {
152
149
  className: "flex-grow overflow-y-auto"
153
- }, middleMenus?.length > 0 && React__default.createElement("div", {
150
+ }, React__default.createElement(PerplexSidebarFlyoutProvider, {
151
+ allMenuData: railMenuData,
152
+ routeParams: routeParams,
153
+ settings: settings,
154
+ collapsed: collapsed,
155
+ siderPinned: siderPinned,
156
+ setSiderPinned: setSiderPinned,
157
+ actor: actor,
158
+ deviceSettings: deviceSettings
159
+ }, processedMiddleMenus.length > 0 && React__default.createElement("div", {
154
160
  className: "removeBoxShadow"
155
161
  }, renderSeparator(deviceLayout?.middleMenuDividerName), React__default.createElement(PerplexSidebarMenu, {
156
- menuData: updateMenuIcons(middleMenus),
162
+ menuData: processedMiddleMenus,
157
163
  routeParams: routeParams,
158
164
  settings: settings,
159
165
  collapsed: collapsed,
@@ -161,10 +167,10 @@ import React__default,{useEffect}from'react';import {useTranslation}from'react-i
161
167
  setSiderPinned: setSiderPinned,
162
168
  actor: actor,
163
169
  deviceSettings: deviceSettings
164
- })), lowerMenus?.length > 0 && React__default.createElement("div", {
170
+ })), processedLowerMenus.length > 0 && React__default.createElement("div", {
165
171
  className: "removeBoxShadow"
166
172
  }, renderSeparator(deviceLayout?.lowerMenuDividerName), React__default.createElement(PerplexSidebarMenu, {
167
- menuData: updateMenuIcons(lowerMenus),
173
+ menuData: processedLowerMenus,
168
174
  routeParams: routeParams,
169
175
  settings: settings,
170
176
  collapsed: collapsed,
@@ -172,7 +178,7 @@ import React__default,{useEffect}from'react';import {useTranslation}from'react-i
172
178
  setSiderPinned: setSiderPinned,
173
179
  actor: actor,
174
180
  deviceSettings: deviceSettings
175
- }))));
181
+ })))));
176
182
  };
177
183
  const renderMobileSidebarContent = () => {
178
184
  return React__default.createElement("div", {
@@ -208,8 +214,10 @@ import React__default,{useEffect}from'react';import {useTranslation}from'react-i
208
214
  };
209
215
  return React__default.createElement("div", null, !isMobile && React__default.createElement("aside", {
210
216
  style: SidebarStyles,
211
- 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 w-[92px] ${showHeader && deviceLayout?.fixedHeader ? deviceLayout?.fixedSidebar ? 'h-[calc(100vh-5rem)] top-20' : 'h-[calc(100vh-5rem)]' : 'h-screen'}`
212
- }, menuHeaderRender && isSideMenuLayout && React__default.createElement("div", {
217
+ 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 w-[83px] ${showHeader && deviceLayout?.fixedHeader ? deviceLayout?.fixedSidebar ? 'h-[calc(100vh-5rem)] top-20' : 'h-[calc(100vh-5rem)]' : 'h-screen'}`
218
+ }, React__default.createElement(SidebarRailFX, {
219
+ mode: deviceLayout?.railFx
220
+ }), menuHeaderRender && isSideMenuLayout && React__default.createElement("div", {
213
221
  className: "border-b border-border py-1 flex items-center justify-center"
214
222
  }, React__default.createElement(SideMenuLogoSlot, {
215
223
  settings: settings,