@admin-layout/tailwind-design-pro 12.2.4-alpha.9 → 12.2.4-alpha.90
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 +16 -2
- package/lib/components/Layout/BasicLayout/index.js.map +1 -1
- package/lib/components/Layout/GlobalHeader/NavbarSlotStrip.d.ts +12 -0
- package/lib/components/Layout/GlobalHeader/NavbarSlotStrip.d.ts.map +1 -0
- package/lib/components/Layout/GlobalHeader/NavbarSlotStrip.js +18 -0
- package/lib/components/Layout/GlobalHeader/NavbarSlotStrip.js.map +1 -0
- package/lib/components/Layout/GlobalHeader/RightContent.d.ts +1 -2
- package/lib/components/Layout/GlobalHeader/RightContent.d.ts.map +1 -1
- package/lib/components/Layout/GlobalHeader/RightContent.js +10 -72
- package/lib/components/Layout/GlobalHeader/RightContent.js.map +1 -1
- package/lib/components/Layout/GlobalHeader/RightMenu.d.ts.map +1 -1
- package/lib/components/Layout/GlobalHeader/RightMenu.js +16 -80
- package/lib/components/Layout/GlobalHeader/RightMenu.js.map +1 -1
- package/lib/components/Layout/GlobalHeader/SearchBar.js +1 -1
- package/lib/components/Layout/GlobalHeader/index.d.ts +1 -0
- package/lib/components/Layout/GlobalHeader/index.d.ts.map +1 -1
- package/lib/components/Layout/ProTailwindLayout.d.ts +1 -1
- package/lib/components/Layout/ProTailwindLayout.d.ts.map +1 -1
- package/lib/components/Layout/ProTailwindLayout.js +48 -36
- package/lib/components/Layout/ProTailwindLayout.js.map +1 -1
- package/lib/components/Layout/Sidebar/BottomMenu.d.ts.map +1 -1
- package/lib/components/Layout/Sidebar/BottomMenu.js +51 -78
- package/lib/components/Layout/Sidebar/BottomMenu.js.map +1 -1
- package/lib/components/Layout/Sidebar/DynamicIcon.d.ts.map +1 -1
- package/lib/components/Layout/Sidebar/DynamicIcon.js +80 -19
- package/lib/components/Layout/Sidebar/DynamicIcon.js.map +1 -1
- package/lib/components/Layout/Sidebar/MainSidebar.d.ts.map +1 -1
- package/lib/components/Layout/Sidebar/MainSidebar.js +20 -17
- package/lib/components/Layout/Sidebar/MainSidebar.js.map +1 -1
- package/lib/components/Layout/Sidebar/MainSidebarMenu.d.ts.map +1 -1
- package/lib/components/Layout/Sidebar/MainSidebarMenu.js +185 -16
- package/lib/components/Layout/Sidebar/MainSidebarMenu.js.map +1 -1
- package/lib/components/Layout/Sidebar/MenuDynamicDialog.d.ts +12 -0
- package/lib/components/Layout/Sidebar/MenuDynamicDialog.d.ts.map +1 -0
- package/lib/components/Layout/Sidebar/MenuDynamicDialog.js +79 -0
- package/lib/components/Layout/Sidebar/MenuDynamicDialog.js.map +1 -0
- package/lib/components/Layout/Sidebar/PerplexSidebar.d.ts.map +1 -1
- package/lib/components/Layout/Sidebar/PerplexSidebar.js +26 -18
- package/lib/components/Layout/Sidebar/PerplexSidebar.js.map +1 -1
- package/lib/components/Layout/Sidebar/PerplexSidebarFlyoutContext.d.ts +25 -0
- package/lib/components/Layout/Sidebar/PerplexSidebarFlyoutContext.d.ts.map +1 -0
- package/lib/components/Layout/Sidebar/PerplexSidebarFlyoutContext.js +287 -0
- package/lib/components/Layout/Sidebar/PerplexSidebarFlyoutContext.js.map +1 -0
- package/lib/components/Layout/Sidebar/PerplexSidebarMenu.d.ts.map +1 -1
- package/lib/components/Layout/Sidebar/PerplexSidebarMenu.js +268 -29
- package/lib/components/Layout/Sidebar/PerplexSidebarMenu.js.map +1 -1
- package/lib/components/Layout/Sidebar/SidebarRailFX.d.ts +23 -0
- package/lib/components/Layout/Sidebar/SidebarRailFX.d.ts.map +1 -0
- package/lib/components/Layout/Sidebar/SidebarRailFX.js +229 -0
- package/lib/components/Layout/Sidebar/SidebarRailFX.js.map +1 -0
- package/lib/components/Layout/TailwindLayout.js +3 -1
- package/lib/components/Layout/TailwindLayout.js.map +1 -1
- package/lib/components/Layout/getPageTitle.js +2 -2
- package/lib/components/Layout/getPageTitle.js.map +1 -1
- package/lib/components/Layout/slot-fill/RightContent.d.ts +3 -1
- package/lib/components/Layout/slot-fill/RightContent.d.ts.map +1 -1
- package/lib/components/Layout/slot-fill/RightContent.js +4 -6
- package/lib/components/Layout/slot-fill/RightContent.js.map +1 -1
- package/lib/components/SettingDrawer/hooks/useSettingsOperations.d.ts.map +1 -1
- package/lib/components/SettingDrawer/hooks/useSettingsOperations.js +2 -1
- package/lib/components/SettingDrawer/hooks/useSettingsOperations.js.map +1 -1
- package/lib/components/SettingDrawer/utils/constants.d.ts.map +1 -1
- package/lib/components/SettingDrawer/utils/constants.js +3 -0
- package/lib/components/SettingDrawer/utils/constants.js.map +1 -1
- package/lib/components/SettingsThemeApplier/SettingsThemeApplier.d.ts +10 -0
- package/lib/components/SettingsThemeApplier/SettingsThemeApplier.d.ts.map +1 -0
- package/lib/components/SettingsThemeApplier/SettingsThemeApplier.js +23 -0
- package/lib/components/SettingsThemeApplier/SettingsThemeApplier.js.map +1 -0
- package/lib/components/SettingsThemeApplier/index.d.ts +2 -0
- package/lib/components/SettingsThemeApplier/index.d.ts.map +1 -0
- package/lib/components/index.js +1 -1
- package/lib/components/typings.d.ts +4 -0
- package/lib/components/typings.d.ts.map +1 -1
- package/lib/compute.js +2 -2
- package/lib/compute.js.map +1 -1
- package/lib/helpers/DynamicIcon.js +7 -1
- package/lib/helpers/DynamicIcon.js.map +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/routes.json +5 -2
- package/lib/styles/index.css +321 -0
- package/lib/utils/settingsTheme.d.ts +40 -0
- package/lib/utils/settingsTheme.d.ts.map +1 -0
- package/lib/utils/settingsTheme.js +106 -0
- package/lib/utils/settingsTheme.js.map +1 -0
- package/package.json +8 -7
|
@@ -1,4 +1,74 @@
|
|
|
1
|
-
import React__default,{useState,useRef}from'react';import {useSelector}from'@xstate/react';import {useLocation,Link}from'@remix-run/react';import {generateMenuPath}from'@admin-layout/client';import {icons}from'../../../icons.js';
|
|
1
|
+
import React__default,{useState,useRef,useEffect}from'react';import {useSelector}from'@xstate/react';import {useLocation,Link}from'@remix-run/react';import {generateMenuPath}from'@admin-layout/client';import {icons}from'../../../icons.js';import {usePerplexSidebarFlyoutContext}from'./PerplexSidebarFlyoutContext.js';// Motion system for the icon rail — sliding active indicator + icon micro-interactions.
|
|
2
|
+
// All transforms/opacity/filter only; layout untouched. Honors prefers-reduced-motion.
|
|
3
|
+
const RAIL_MOTION_CSS = `
|
|
4
|
+
/* Staggered entrance for the top-level rail items. opacity + transform are
|
|
5
|
+
compositor-only, so the reveal is GPU-accelerated and never reflows. Runs once
|
|
6
|
+
on mount; the per-item delay is set inline via --ql-rail-i. */
|
|
7
|
+
.ql-rail-enter {
|
|
8
|
+
animation: qlRailItemIn 0.34s cubic-bezier(0.16, 1, 0.3, 1) both;
|
|
9
|
+
animation-delay: calc(var(--ql-rail-i, 0) * 45ms);
|
|
10
|
+
will-change: transform, opacity;
|
|
11
|
+
}
|
|
12
|
+
@keyframes qlRailItemIn {
|
|
13
|
+
from { opacity: 0; transform: translateX(-8px) scale(0.92); }
|
|
14
|
+
to { opacity: 1; transform: translateX(0) scale(1); }
|
|
15
|
+
}
|
|
16
|
+
.ql-rail-indicator {
|
|
17
|
+
position: absolute;
|
|
18
|
+
left: 2px;
|
|
19
|
+
top: 0;
|
|
20
|
+
width: 3px;
|
|
21
|
+
border-radius: 9999px;
|
|
22
|
+
background: hsl(var(--primary));
|
|
23
|
+
box-shadow: 0 0 0 0.5px hsl(var(--primary) / 0.25), 0 0 12px hsl(var(--primary) / 0.55);
|
|
24
|
+
pointer-events: none;
|
|
25
|
+
will-change: transform, height, opacity;
|
|
26
|
+
z-index: 1;
|
|
27
|
+
}
|
|
28
|
+
.ql-rail-indicator--animated {
|
|
29
|
+
transition:
|
|
30
|
+
transform 0.42s cubic-bezier(0.22, 1, 0.36, 1),
|
|
31
|
+
height 0.42s cubic-bezier(0.22, 1, 0.36, 1),
|
|
32
|
+
opacity 0.2s ease-out;
|
|
33
|
+
}
|
|
34
|
+
.ql-rail-icon {
|
|
35
|
+
transition: transform 0.24s cubic-bezier(0.22, 1, 0.36, 1), filter 0.24s ease-out;
|
|
36
|
+
will-change: transform;
|
|
37
|
+
}
|
|
38
|
+
.ql-rail-item:hover .ql-rail-icon {
|
|
39
|
+
transform: translateY(-1px) scale(1.12);
|
|
40
|
+
}
|
|
41
|
+
.ql-rail-item:active .ql-rail-icon {
|
|
42
|
+
transform: scale(0.94);
|
|
43
|
+
transition-duration: 0.1s;
|
|
44
|
+
}
|
|
45
|
+
.ql-rail-icon-active {
|
|
46
|
+
transform: scale(1.08);
|
|
47
|
+
filter: drop-shadow(0 1px 6px hsl(var(--primary) / 0.45));
|
|
48
|
+
}
|
|
49
|
+
.ql-rail-item:hover .ql-rail-icon-active {
|
|
50
|
+
transform: translateY(-1px) scale(1.14);
|
|
51
|
+
}
|
|
52
|
+
.ql-hover-accent {
|
|
53
|
+
background: hsl(var(--primary) / 0.35);
|
|
54
|
+
animation: qlHoverAccentIn 0.22s cubic-bezier(0.16, 1, 0.3, 1);
|
|
55
|
+
}
|
|
56
|
+
@keyframes qlHoverAccentIn {
|
|
57
|
+
from { opacity: 0; transform: scaleY(0.4); }
|
|
58
|
+
to { opacity: 1; transform: scaleY(1); }
|
|
59
|
+
}
|
|
60
|
+
@media (prefers-reduced-motion: reduce) {
|
|
61
|
+
.ql-rail-indicator--animated { transition: opacity 0.12s ease-out; }
|
|
62
|
+
.ql-rail-icon,
|
|
63
|
+
.ql-rail-item:hover .ql-rail-icon,
|
|
64
|
+
.ql-rail-item:active .ql-rail-icon,
|
|
65
|
+
.ql-rail-item:hover .ql-rail-icon-active { transition: none; transform: none; }
|
|
66
|
+
.ql-rail-icon-active { transform: none; }
|
|
67
|
+
.ql-hover-accent { animation: none; }
|
|
68
|
+
.ql-rail-enter { animation: none; }
|
|
69
|
+
}
|
|
70
|
+
`;
|
|
71
|
+
const PerplexSidebarMenu = ({
|
|
2
72
|
menuData,
|
|
3
73
|
routeParams,
|
|
4
74
|
settings,
|
|
@@ -6,10 +76,13 @@ import React__default,{useState,useRef}from'react';import {useSelector}from'@xst
|
|
|
6
76
|
siderPinned,
|
|
7
77
|
setSiderPinned,
|
|
8
78
|
actor,
|
|
9
|
-
deviceSettings = {}
|
|
79
|
+
deviceSettings = {},
|
|
80
|
+
// Provide empty object as default
|
|
81
|
+
sectionBreakIndex
|
|
10
82
|
}) => {
|
|
83
|
+
const sharedFlyout = usePerplexSidebarFlyoutContext();
|
|
11
84
|
const [openMenus, setOpenMenus] = useState([]);
|
|
12
|
-
const [
|
|
85
|
+
const [localHoveredMenu, setLocalHoveredMenu] = useState(null);
|
|
13
86
|
const [activeMenuItem, setActiveMenuItem] = useState(null);
|
|
14
87
|
const [popupPosition, setPopupPosition] = useState({
|
|
15
88
|
top: 0,
|
|
@@ -20,6 +93,19 @@ import React__default,{useState,useRef}from'react';import {useSelector}from'@xst
|
|
|
20
93
|
const hoverCloseTimeout = React__default.useRef(null);
|
|
21
94
|
const hoverOpenTimeout = React__default.useRef(null);
|
|
22
95
|
const currentHoveredMenu = useRef(null);
|
|
96
|
+
const hoveredMenu = sharedFlyout?.hoveredMenu ?? localHoveredMenu;
|
|
97
|
+
const setHoveredMenu = sharedFlyout ? () => undefined : setLocalHoveredMenu;
|
|
98
|
+
// Refs + state for the shared "magic" active indicator that springs between items.
|
|
99
|
+
const navRef = useRef(null);
|
|
100
|
+
const itemRefs = useRef({});
|
|
101
|
+
const [indicator, setIndicator] = useState({
|
|
102
|
+
y: 0,
|
|
103
|
+
h: 0,
|
|
104
|
+
visible: false
|
|
105
|
+
});
|
|
106
|
+
// Suppresses the very first slide (so the bar fades in place instead of flying from y=0).
|
|
107
|
+
const indicatorPrimed = useRef(false);
|
|
108
|
+
const [indicatorAnimated, setIndicatorAnimated] = useState(false);
|
|
23
109
|
const {
|
|
24
110
|
PushpinLineIcon,
|
|
25
111
|
PushpinFillIcon
|
|
@@ -29,6 +115,31 @@ import React__default,{useState,useRef}from'react';import {useSelector}from'@xst
|
|
|
29
115
|
const pinnedPath = machineState?.context?.sidebar?.pinnedPath || null;
|
|
30
116
|
// Extract showHeader with fallback to true if not defined
|
|
31
117
|
const showHeader = deviceSettings && deviceSettings.header && deviceSettings.header.showHeader !== undefined ? deviceSettings.header.showHeader : true;
|
|
118
|
+
// Tear down any transient hover/flyout state whenever the route changes.
|
|
119
|
+
// Navigating from inside a flyout (or while hovering a parent) never fires the
|
|
120
|
+
// mouse-leave handlers, so hoveredMenu/flyoutVisible/activeMenuItem would otherwise
|
|
121
|
+
// stay stuck — leaving the parent item highlighted and the flyout panel covering
|
|
122
|
+
// the content. Pinned flyouts are intentionally kept open.
|
|
123
|
+
useEffect(() => {
|
|
124
|
+
if (hoverCloseTimeout.current) {
|
|
125
|
+
window.clearTimeout(hoverCloseTimeout.current);
|
|
126
|
+
hoverCloseTimeout.current = null;
|
|
127
|
+
}
|
|
128
|
+
if (hoverOpenTimeout.current) {
|
|
129
|
+
window.clearTimeout(hoverOpenTimeout.current);
|
|
130
|
+
hoverOpenTimeout.current = null;
|
|
131
|
+
}
|
|
132
|
+
if (pinnedPath) {
|
|
133
|
+
// Keep the pinned flyout open and highlighted; just drop any other hover.
|
|
134
|
+
currentHoveredMenu.current = pinnedPath;
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
currentHoveredMenu.current = null;
|
|
138
|
+
setFlyoutVisible(false);
|
|
139
|
+
setHoveredMenu(null);
|
|
140
|
+
setActiveMenuItem(null);
|
|
141
|
+
setMenuTransition('opening');
|
|
142
|
+
}, [location.pathname, pinnedPath]);
|
|
32
143
|
const isMenuItemActive = itemPath => {
|
|
33
144
|
const currentPath = location.pathname;
|
|
34
145
|
const menuPath = generateMenuPath(itemPath, routeParams);
|
|
@@ -42,6 +153,67 @@ import React__default,{useState,useRef}from'react';import {useSelector}from'@xst
|
|
|
42
153
|
}
|
|
43
154
|
return false;
|
|
44
155
|
};
|
|
156
|
+
// Measure the active top-level item and move the shared indicator to it.
|
|
157
|
+
// Returns true once it has settled (placed on an item, or no active item exists).
|
|
158
|
+
const measureIndicator = () => {
|
|
159
|
+
if (typeof window === 'undefined') return false;
|
|
160
|
+
const nav = navRef.current;
|
|
161
|
+
if (!nav) return false;
|
|
162
|
+
const activeItem = menuData.find(item => isMenuItemActive(item.path));
|
|
163
|
+
const el = activeItem ? itemRefs.current[activeItem.path] : null;
|
|
164
|
+
if (el) {
|
|
165
|
+
setIndicator({
|
|
166
|
+
y: el.offsetTop,
|
|
167
|
+
h: el.offsetHeight,
|
|
168
|
+
visible: true
|
|
169
|
+
});
|
|
170
|
+
return true;
|
|
171
|
+
}
|
|
172
|
+
setIndicator(prev => ({
|
|
173
|
+
...prev,
|
|
174
|
+
visible: false
|
|
175
|
+
}));
|
|
176
|
+
// "Settled" only if there is genuinely no active item to point at.
|
|
177
|
+
return !activeItem;
|
|
178
|
+
};
|
|
179
|
+
// Keep a ref to the latest closure so observers always see current data.
|
|
180
|
+
const measureRef = useRef(measureIndicator);
|
|
181
|
+
measureRef.current = measureIndicator;
|
|
182
|
+
// Re-measure whenever the rail actually lays out or resizes. ResizeObserver
|
|
183
|
+
// fires once on observe (after layout) — the most reliable signal that item
|
|
184
|
+
// geometry is ready — and again on async menu load, hydration, or viewport change.
|
|
185
|
+
useEffect(() => {
|
|
186
|
+
if (typeof window === 'undefined') return;
|
|
187
|
+
const nav = navRef.current;
|
|
188
|
+
if (!nav) return;
|
|
189
|
+
const run = () => measureRef.current();
|
|
190
|
+
const ro = typeof ResizeObserver !== 'undefined' ? new ResizeObserver(run) : null;
|
|
191
|
+
ro?.observe(nav);
|
|
192
|
+
window.addEventListener('resize', run);
|
|
193
|
+
return () => {
|
|
194
|
+
ro?.disconnect();
|
|
195
|
+
window.removeEventListener('resize', run);
|
|
196
|
+
};
|
|
197
|
+
}, []);
|
|
198
|
+
// On navigation / data change: measure now (+ a couple of frame retries for the
|
|
199
|
+
// hydration race) and enable the sliding transition after the first placement.
|
|
200
|
+
useEffect(() => {
|
|
201
|
+
if (typeof window === 'undefined') return;
|
|
202
|
+
const rafs = [];
|
|
203
|
+
if (!measureRef.current()) {
|
|
204
|
+
rafs.push(requestAnimationFrame(() => {
|
|
205
|
+
if (!measureRef.current()) rafs.push(requestAnimationFrame(() => measureRef.current()));
|
|
206
|
+
}));
|
|
207
|
+
}
|
|
208
|
+
if (!indicatorPrimed.current) {
|
|
209
|
+
indicatorPrimed.current = true;
|
|
210
|
+
rafs.push(requestAnimationFrame(() => setIndicatorAnimated(true)));
|
|
211
|
+
} else {
|
|
212
|
+
setIndicatorAnimated(true);
|
|
213
|
+
}
|
|
214
|
+
return () => rafs.forEach(r => cancelAnimationFrame(r));
|
|
215
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
216
|
+
}, [location.pathname, menuData, routeParams, collapsed]);
|
|
45
217
|
const toggleMenu = (path, depth, e) => {
|
|
46
218
|
e.preventDefault();
|
|
47
219
|
if (collapsed) return;
|
|
@@ -67,6 +239,10 @@ import React__default,{useState,useRef}from'react';import {useSelector}from'@xst
|
|
|
67
239
|
return parts[0] || name;
|
|
68
240
|
};
|
|
69
241
|
const handleMenuHover = (e, item, isHoverMenu, depth = 0) => {
|
|
242
|
+
if (sharedFlyout) {
|
|
243
|
+
sharedFlyout.handleMenuHover(e, item, isHoverMenu, depth);
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
70
246
|
// Only set hover state if the menu has children
|
|
71
247
|
const canShowHoverPopup = collapsed && !isHoverMenu || !collapsed && depth === 0 && !isHoverMenu;
|
|
72
248
|
if (item.children && item.children.length > 0 && canShowHoverPopup) {
|
|
@@ -130,6 +306,10 @@ import React__default,{useState,useRef}from'react';import {useSelector}from'@xst
|
|
|
130
306
|
}
|
|
131
307
|
};
|
|
132
308
|
const handleMenuLeave = (item, isHoverMenu) => {
|
|
309
|
+
if (sharedFlyout) {
|
|
310
|
+
sharedFlyout.handleMenuLeave(item, isHoverMenu);
|
|
311
|
+
return;
|
|
312
|
+
}
|
|
133
313
|
if (!isHoverMenu) {
|
|
134
314
|
// Clear any existing timeouts
|
|
135
315
|
if (hoverCloseTimeout.current) {
|
|
@@ -210,18 +390,30 @@ import React__default,{useState,useRef}from'react';import {useSelector}from'@xst
|
|
|
210
390
|
// Single persistent flyout component for all menus
|
|
211
391
|
const renderSingleFlyout = () => {
|
|
212
392
|
if (!flyoutVisible || !activeMenuItem) return null;
|
|
213
|
-
const sidebarWidth =
|
|
393
|
+
const sidebarWidth = 83; // Updated fixed sidebar rail width (10% narrower)
|
|
214
394
|
const item = activeMenuItem; // Use the currently active menu item
|
|
395
|
+
// Anchor the flyout to the vertical position of the hovered rail item (measured in
|
|
396
|
+
// handleMenuHover), so moving Notion -> Marketplace slides the panel to the new
|
|
397
|
+
// item instead of leaving it as a static full-height column. Clamp to keep it on
|
|
398
|
+
// screen. The `top`/`max-height` change is CSS-transitioned (see .ql-flyout-anchored),
|
|
399
|
+
// so the panel glides between items while its content cross-fades.
|
|
400
|
+
const minTop = !showHeader ? 8 : 16;
|
|
401
|
+
const anchorTop = Math.max(minTop, Math.round(popupPosition.top || minTop));
|
|
215
402
|
return React__default.createElement("div", {
|
|
216
|
-
className: `fixed
|
|
403
|
+
className: `fixed z-[999] flex flex-col overflow-hidden border border-border menu-${menuTransition} ql-flyout-anchored`,
|
|
217
404
|
style: {
|
|
218
405
|
left: `${sidebarWidth}px`,
|
|
219
|
-
top:
|
|
220
|
-
|
|
406
|
+
top: `${anchorTop}px`,
|
|
407
|
+
maxHeight: `calc(100vh - ${anchorTop}px - 16px)`,
|
|
221
408
|
width: '228px',
|
|
222
409
|
maxWidth: 'calc(100vw - 100px)',
|
|
410
|
+
transformOrigin: 'left top',
|
|
411
|
+
borderRadius: '12px',
|
|
412
|
+
boxShadow: '0 24px 70px -24px rgba(0,0,0,0.45)',
|
|
223
413
|
pointerEvents: menuTransition === 'closing' ? 'none' : 'auto',
|
|
224
|
-
...SidebarStyles
|
|
414
|
+
...SidebarStyles,
|
|
415
|
+
// solid opaque fill — after the spread so nothing clears it
|
|
416
|
+
backgroundColor: settings?.navTheme === 'realDark' ? '#222' : 'hsl(var(--popover))'
|
|
225
417
|
},
|
|
226
418
|
onMouseEnter: () => {
|
|
227
419
|
// Clear any pending close timeouts
|
|
@@ -261,19 +453,40 @@ import React__default,{useState,useRef}from'react';import {useSelector}from'@xst
|
|
|
261
453
|
}, React__default.createElement("style", {
|
|
262
454
|
dangerouslySetInnerHTML: {
|
|
263
455
|
__html: `
|
|
264
|
-
@keyframes
|
|
265
|
-
from { opacity: 0; transform: translateX(-
|
|
266
|
-
to
|
|
456
|
+
@keyframes flyoutIn {
|
|
457
|
+
from { opacity: 0; transform: translateX(-14px) scale(0.98); filter: blur(6px); }
|
|
458
|
+
to { opacity: 1; transform: translateX(0) scale(1); filter: blur(0); }
|
|
267
459
|
}
|
|
268
|
-
@keyframes
|
|
269
|
-
from { opacity: 1; transform: translateX(0); }
|
|
270
|
-
to
|
|
460
|
+
@keyframes flyoutOut {
|
|
461
|
+
from { opacity: 1; transform: translateX(0) scale(1); filter: blur(0); }
|
|
462
|
+
to { opacity: 0; transform: translateX(-10px) scale(0.99); filter: blur(4px); }
|
|
271
463
|
}
|
|
272
464
|
.menu-opening {
|
|
273
|
-
animation:
|
|
465
|
+
animation: flyoutIn 0.26s cubic-bezier(0.16, 1, 0.3, 1) forwards;
|
|
274
466
|
}
|
|
275
467
|
.menu-closing {
|
|
276
|
-
animation:
|
|
468
|
+
animation: flyoutOut 0.16s cubic-bezier(0.4, 0, 1, 1) forwards;
|
|
469
|
+
}
|
|
470
|
+
/* Slide the anchored panel between rail items as the hover target
|
|
471
|
+
changes. top/max-height only — no layout thrash on the rail. */
|
|
472
|
+
.ql-flyout-anchored {
|
|
473
|
+
transition:
|
|
474
|
+
top 0.3s cubic-bezier(0.22, 1, 0.36, 1),
|
|
475
|
+
max-height 0.3s cubic-bezier(0.22, 1, 0.36, 1);
|
|
476
|
+
}
|
|
477
|
+
@keyframes flyoutItemIn {
|
|
478
|
+
from { opacity: 0; transform: translateX(10px); }
|
|
479
|
+
to { opacity: 1; transform: translateX(0); }
|
|
480
|
+
}
|
|
481
|
+
.ql-flyout-item {
|
|
482
|
+
opacity: 0;
|
|
483
|
+
animation: flyoutItemIn 0.34s cubic-bezier(0.22, 1, 0.36, 1) forwards;
|
|
484
|
+
animation-delay: calc(60ms + var(--i, 0) * 38ms);
|
|
485
|
+
}
|
|
486
|
+
@media (prefers-reduced-motion: reduce) {
|
|
487
|
+
.menu-opening, .menu-closing { animation-duration: 0.01ms; filter: none; }
|
|
488
|
+
.ql-flyout-item { animation: none; opacity: 1; }
|
|
489
|
+
.ql-flyout-anchored { transition: none; }
|
|
277
490
|
}
|
|
278
491
|
`
|
|
279
492
|
}
|
|
@@ -290,16 +503,16 @@ import React__default,{useState,useRef}from'react';import {useSelector}from'@xst
|
|
|
290
503
|
}) : React__default.createElement(PushpinLineIcon, {
|
|
291
504
|
className: "h-4 w-4"
|
|
292
505
|
}))), React__default.createElement("div", {
|
|
293
|
-
className: "overflow-y-auto overflow-x-hidden py-1"
|
|
506
|
+
className: "overflow-y-auto overflow-x-hidden py-1 flex-1 min-h-0"
|
|
507
|
+
}, item.children?.map((child, idx) => React__default.createElement("div", {
|
|
508
|
+
key: child.path,
|
|
509
|
+
className: "ql-flyout-item w-full min-w-max hover:text-primary",
|
|
294
510
|
style: {
|
|
295
|
-
|
|
511
|
+
['--i']: idx
|
|
296
512
|
}
|
|
297
|
-
}, item.children?.map(child => React__default.createElement("div", {
|
|
298
|
-
key: child.path,
|
|
299
|
-
className: "w-full min-w-max hover:text-primary"
|
|
300
513
|
}, renderMenuItem(child, 1, true)))));
|
|
301
514
|
};
|
|
302
|
-
const renderMenuItem = (item, depth = 0, isHoverMenu = false) => {
|
|
515
|
+
const renderMenuItem = (item, depth = 0, isHoverMenu = false, index = 0) => {
|
|
303
516
|
const hasChildren = item.children && item.children.length > 0;
|
|
304
517
|
const isOpen = openMenus.includes(item.path);
|
|
305
518
|
const isActive = isMenuItemActive(item.path);
|
|
@@ -310,11 +523,17 @@ import React__default,{useState,useRef}from'react';import {useSelector}from'@xst
|
|
|
310
523
|
const shouldApplyBackground = isHovered || !isParentWithChildren && isActive;
|
|
311
524
|
return React__default.createElement("div", {
|
|
312
525
|
key: item.path,
|
|
313
|
-
|
|
526
|
+
ref: depth === 0 && !isHoverMenu ? el => {
|
|
527
|
+
itemRefs.current[item.path] = el;
|
|
528
|
+
} : undefined,
|
|
529
|
+
className: `w-full relative group hover:text-primary ${depth === 0 && !isHoverMenu ? 'ql-rail-item ql-rail-enter' : ''}`,
|
|
530
|
+
style: depth === 0 && !isHoverMenu ? {
|
|
531
|
+
['--ql-rail-i']: index
|
|
532
|
+
} : undefined,
|
|
314
533
|
onMouseEnter: e => handleMenuHover(e, item, isHoverMenu, depth),
|
|
315
534
|
onMouseLeave: () => handleMenuLeave(item, isHoverMenu)
|
|
316
|
-
}, depth === 0 &&
|
|
317
|
-
className: "absolute left-0 top-1 bottom-1 w-0.5
|
|
535
|
+
}, depth === 0 && isParentWithChildren && isHovered && !isActive && React__default.createElement("span", {
|
|
536
|
+
className: "absolute left-0 top-1.5 bottom-1.5 w-0.5 rounded-full ql-hover-accent"
|
|
318
537
|
}), React__default.createElement(Link, {
|
|
319
538
|
to: hasChildren && (collapsed || !collapsed && depth === 0) && !isHoverMenu ? '#' : generateMenuPath(item?.path, routeParams),
|
|
320
539
|
className: `flex hover:text-primary items-center justify-between w-full px-1 py-2 text-xs cursor-pointer transition-colors mx-1 my-1 whitespace-nowrap overflow-hidden text-ellipsis ${shouldApplyBackground ? 'text-primary' : undefined}`,
|
|
@@ -325,12 +544,12 @@ import React__default,{useState,useRef}from'react';import {useSelector}from'@xst
|
|
|
325
544
|
}, React__default.createElement("div", {
|
|
326
545
|
className: `flex ${depth === 0 && !isHoverMenu ? 'flex-col items-center justify-center w-full gap-1' : 'items-center gap-3'}`
|
|
327
546
|
}, item.icon ? React__default.createElement("span", {
|
|
328
|
-
className: `flex-shrink-0 ${isActive ? 'text-primary' : 'text-muted-foreground'} ${depth === 0 && !isHoverMenu ?
|
|
547
|
+
className: `flex-shrink-0 ${isActive ? 'text-primary' : 'text-muted-foreground'} ${depth === 0 && !isHoverMenu ? `text-[20px] ql-rail-icon ${isActive ? 'ql-rail-icon-active' : ''}` : ''}`,
|
|
329
548
|
style: {
|
|
330
549
|
color: !isActive && settings?.navTheme === 'realDark' ? '#fff' : undefined
|
|
331
550
|
}
|
|
332
551
|
}, item.icon) : React__default.createElement("span", {
|
|
333
|
-
className: `flex items-center justify-center flex-shrink-0 ${isActive ? 'text-primary' : 'text-muted-foreground'} ${depth === 0 && !isHoverMenu ?
|
|
552
|
+
className: `flex items-center justify-center flex-shrink-0 ${isActive ? 'text-primary' : 'text-muted-foreground'} ${depth === 0 && !isHoverMenu ? `text-[16px] h-6 w-6 select-none text-center ql-rail-icon ${isActive ? 'ql-rail-icon-active' : ''}` : ''}`,
|
|
334
553
|
style: {
|
|
335
554
|
color: !isActive && settings?.navTheme === 'realDark' ? '#fff' : undefined
|
|
336
555
|
}
|
|
@@ -351,7 +570,27 @@ import React__default,{useState,useRef}from'react';import {useSelector}from'@xst
|
|
|
351
570
|
};
|
|
352
571
|
return React__default.createElement("div", {
|
|
353
572
|
className: "overflow-hidden"
|
|
354
|
-
}, React__default.createElement("
|
|
573
|
+
}, React__default.createElement("style", {
|
|
574
|
+
dangerouslySetInnerHTML: {
|
|
575
|
+
__html: RAIL_MOTION_CSS
|
|
576
|
+
}
|
|
577
|
+
}), React__default.createElement("nav", {
|
|
578
|
+
ref: navRef,
|
|
579
|
+
style: {
|
|
580
|
+
position: 'relative'
|
|
581
|
+
},
|
|
355
582
|
className: `mt-2 ${collapsed ? 'px-1' : 'px-2'} overflow-x-hidden`
|
|
356
|
-
},
|
|
583
|
+
}, React__default.createElement("span", {
|
|
584
|
+
"aria-hidden": "true",
|
|
585
|
+
className: `ql-rail-indicator ${indicatorAnimated ? 'ql-rail-indicator--animated' : ''}`,
|
|
586
|
+
style: {
|
|
587
|
+
transform: `translateY(${indicator.y + 6}px)`,
|
|
588
|
+
height: `${Math.max(indicator.h - 12, 0)}px`,
|
|
589
|
+
opacity: indicator.visible ? 1 : 0
|
|
590
|
+
}
|
|
591
|
+
}), menuData.map((item, i) => React__default.createElement(React__default.Fragment, {
|
|
592
|
+
key: item.path
|
|
593
|
+
}, sectionBreakIndex === i && React__default.createElement("hr", {
|
|
594
|
+
className: "border-t border-border my-1"
|
|
595
|
+
}), renderMenuItem(item, 0, false, i)))), !sharedFlyout && renderSingleFlyout());
|
|
357
596
|
};export{PerplexSidebarMenu};//# sourceMappingURL=PerplexSidebarMenu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PerplexSidebarMenu.js","sources":["../../../../src/components/Layout/Sidebar/PerplexSidebarMenu.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PerplexSidebarMenu.js","sources":["../../../../src/components/Layout/Sidebar/PerplexSidebarMenu.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"6TASA;AACA;AACA,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmEvB;AAEM,MAAM,kBAAkB,GAAqC,CAAC;AASjE,EAAA,QAAA;AAEA,EAAA,WAAM;UACA;WACC;aACA;AACP,EAAA,cAAO;OACP;gBACO,GAAA,EAAA;;;AAGP,CAAA,KAAA;AACA,EAAA,MAAA,eAAiB,8BAAgC;AACjD,EAAA,MAAA,CAAA,SAAM,EAAA,YAAiB,CAAA,GAAA,QAAe,CAAG,EAAE,CAAC;QAC5C,CAAA,gBAAA,EAAA,mBAAA,CAAA,GAAA,QAAA,CAAA,IAAA,CAAA;AACA,EAAA,MAAA,CAAA,cAAe,EAAM,iBAA2B,CAAA,GAAA,QAAA,CAAA,IAAA,CAAA;AAChD,EAAA,MAAA,CAAA,aAAiB,EAAA,gBAA+C,CAAA,GAAA,QAAA,CAAA;AAChE,IAAA,GAAA,EAAA,CAAM;AACF,IAAA,QAAI;AACJ,GAAA,CAAA;AACA,EAAA,MAAA,CAAA,cAAc,EAAA,iBAAA,CAAA,GAAA,QAAA,CAAA,SAAA,CAAA;AACjB,EAAA,MAAE,CAAA,aAAA,EAAA,gBAAA,CAAA,GAAA,QAAA,CAAA,KAAA,CAAA;QACH,iBAAA,GAAAA,cAAA,CAAA,MAAA,CAAA,IAAA,CAAA;AACA,EAAA,MAAA,mBAAqBA,cAAG,CAAA,MAAO,CAAK,IAAE,CAAA;QACtC,kBAAO,GAAiB,MAAE,CAAA,IAAA,CAAA;QAC1B,WAAQ,GAAA,YAAiB,EAAA,WAAe,IAAA,gBAAiB;AACzD,EAAA,MAAA,cAAiB,GAAA,YAAc,GAAA,MAAA,SAAA,GAAA,mBAAA;AAC/B;QACA,MAAM,GAAA,MAAc,CAAA,IAAA,CAAA;QACpB,QAAA,GAAA,MAAA,CAAA,EAAA,CAAA;AACA,EAAA,MAAA,CAAA,SAAM,EAAU,YACZ,CAAA,GAAA;AACI,IAAA,CAAA,EAAA,CAAA;QACA;IAER,OAAA,EAAA;IACA;;QAEA,eAAA,GAAA,MAAA,CAAA,KAAA,CAAA;QACA,CAAA,iBAAA,EAAA,oBAAA,CAAA,GAAA,QAAA,CAAA,KAA2D,CAAA;QAC3D;AACI,IAEI,eAAA;;AAEJ,GAAA,GAAA,KAAA;AACI,EAAA,MAAA,QAAA,GAAO,WAAA,EAAa;AACpB,EAAA,MAAA,YAAA,GAAA,WAAiB,CAAA,KAAU,EAAA,KAAK,IAAA,KAAA,CAAA;QACpC,UAAC,GAAA,YAAA,EAAA,OAAA,EAAA,OAAA,EAAA,UAAA,IAAA,IAAA;;kBAGG,GAAA,cAAA,IAAA,cAAA,CAAA,MAAA,IAAA,cAAA,CAAA,MAAA,CAA0E,UAAA,KAAA,SAAA,GAAA,cAAA,CAAA,MAAA,CAAA,UAAA,GAAA,IAAA;AAC1E;;;AAIJ;;WAEA,CAAA,MAAA;QACA,iBAAiB,CAAC,OAAM,EAAA;YACxB,CAAA,YAAiB,CAAC,iBAAW,CAAA,OAAA,CAAA;MAChC,yBAAsB,GAAA,IAAW;AAElC,IAAA;AACI,IAAA,IAAA,gBAAM,CAAW,OAAG,EAAA;YACpB,CAAA,YAAiB,CAAA,gBAAiB,QAAQ,CAAA;sBAE5B,CAAA,OAAA,GAAA,IAAA;AACd,IAAA;AACI,IAAA,IAAA,UAAA;;wBAGJ,CAAA,OAAA,GAAA,UAAA;;AAEI,IAAA;sBACH,CAAA,OAAA,GAAA,IAAA;AAED,IAAA,gBAAY,CAAC,KAAA,CAAA;AACjB,IAAA,cAAE,CAAA,IAAA,CAAA;IAEF,iBAAA,CAAA,IAAA,CAAA;IACA,iBAAA,CAAA,SAAA,CAAA;KACA,CAAA,QAAM,CAAA,QAAA,EAAA,UAAiC,CAAA,CAAA;QACnC,gBAAW,GAAM,QAAK,IAAA;AAAa,IAAA,MAAA,cAAY,QAAC,CAAA,QAAA;AAChD,IAAA,MAAA,QAAS,GAAG,gBAAe,CAAA,QAAA,EAAA,WAAA,CAAA;AAC3B;AAAU,IAAA,IAAA,WAAO,KAAK,QAAC,EAAA;AACvB,MAAA,OAAA;AACA,IAAA;;AAEI,IAAA,IAAA,QAAA,IAAA,WAAkB,CAAE,UAAU,CAAA;AAC9B,MAAA,OAAA,IAAA;;AAEJ,IAAA,OAAA,KAAA;;;AAGJ;QACA,gBAAA,GAAA,MAAA;AACA,IAAA,IAAA,aAAgB,KAAG,WAAO,EAAA,OAAgB,KAAE;AAC5C,IAAA,MAAA,GAAA,GAAW,MAAO,CAAA,OAAG;IAErB,IAAA,CAAA,GAAA,EAAA,OAAA,KAAA;IACA,MAAA,UAAA,GAAA,QAAA,CAAA,IAAA,CAAA,IAAA,IAAA,gBAAA,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA;IACA,MAAA,EAAA,GAAA,UAAA,GAAA,QAAA,CAAA,OAAA,CAAA,UAAA,CAAA,IAAA,CAAA,GAAA,IAAA;IACA,IAAA,EAAA,EAAA;kBACQ,CAAO;aAAwB,CAAA,SAAO;AAC1C,QAAA,CAAA,EAAA,EAAA,CAAM,YAAY;AAClB,QAAA,OAAK,EAAG;;aACR,IAAS;AACT,IAAA;AACA,IAAA,YAAI,CAAA,IAAQ,KAAK;AACjB,MAAA,GAAA,IAAA;AACA,MAAA,OAAA,EAAO;;AAEH;AACJ,IAAA,OAAE,CAAA,UAAA;;;QAIN,UAAA,GAAA,MAAA,CAAA,gBAAA,CAAA;YACA,CAAS,OAAM,GAAA,gBAAA;;;;AAGX,EAAA,SAAA,CAAI,MAAC;AACD,IAAA,IAAA,OAAA,MAAS,KACL,WAAA,EAAA;AACI,IAAA,MAAA,GAAA,GAAA,MAAK,CAAA,OAAA;AAAsB,IAAA,IAAA,CAAA,GAAA,EAAA;aAC9B,GACH,MAAA,UAAA,CAAA,OAAA,EAAA;UACL,EAAA,GAAA,OAAA,cAAA,KAAA,WAAA,GAAA,IAAA,cAAA,CAAA,GAAA,CAAA,GAAA,IAAA;AACD,IAAA,EAAA,EAAA,OAAK,CAAA,GAAA,CAAA;AACD,IAAA,MAAA,CAAA,gBAAe,CAAC,QAAO,EAAG,GAAA,CAAI;AAC9B,IAAA,OAAA,MAAK;QACT,EAAC,UAAA,EAAA;aAAM,mBAAC,CAAA,QAAA,EAAA,GAAA,CAAA;;QAER;AACA;;AAEJ,EAAA,SAAI,CAAA,MAAS;IAEb,IAAA,OAAM,WAAc,WAA6B,EAAmB;UAC9D,IAAA,GAAA,EAAA;AACF,IAAA,IAAA,CAAA,UAAI,CAAA,OAAS,EAAA,EAAA;eAAE,CAAA,qBAAO,CAAA,MAAA;AAEtB,QAAA,IAAA,CAAA,UAAc,CAAA,OAAQ,EAAA,EAAA,IAAA,CAAA,IAAA,CAAA,qBAAA,CAAA,MAAA,UAAA,CAAA,OAAA,EAAA,CAAA,CAAA;AAClB,MAAA,CAAA,CAAA,CAAA;AACI,IAAA;wBACH,CAAA,OAAA,EAAA;qBAAO,CAAA,OAAA,GAAA,IAAA;AACJ,MAAA,IAAA,CAAA,IAAA,CAAA,qBAAqB,CAAC,MAAC,oBAAA,CAAA,IAAA,CAAA,CAAA,CAAA;;AAE/B,MAAA,oBAAG,CAAA,IAAA,CAAA;AACP,IAAA;IAEA,OAAM,MAAA,IAAA,CAAA,OAAmB,CAAA,CAAA,IAAc,oBAAqC,CAAmB,CAAA,CAAE,CAAA;AAC7F;AACI,EAAA,CAAA,EAAA,CAAA,QAAA,CAAA,QAAW,EAAA,UAAW,WAAK,EAAA,SAAA,CAAA,CAAA;QAC/B,UAAC,GAAA,CAAA,IAAA,EAAA,KAAA,EAAA,CAAA,KAAA;AACL,IAAA,CAAC,CAAC,cAAA,EAAA;AAEF,IAAA,IAAA,SAAM,EAAA;gBACK,CAAA,IAAK,IAAA;AAChB,MAAE,IAAA,IAAA,CAAA,QAAA,CAAA,IAAA,CAAA,EAAA;AAEF,QAAA,OAAM,IAAA,CAAA,MAAgB,CAAA,QAAgB,IAAA,KAAA,IAAA,CAAA;AAClC,MAAA,CAAA,MAAK;AAAM,QAAA,OAAA,CAAA,GAAO,IAAG,EAAA,IAAA,CAAA;;AAErB,IAAA,CAAA,CAAA;AACJ,EAAA,CAAA;AAEA,EAAA,MAAA,eAAM,GAAe,CAAA,IAAuB,EAAE,WAAoB,EAAA,KAAsB,EAAA,CAAA,KAAgB;QACpG,WAAI,IAAA,CAAY,SAAG,EAAA;gBACf,CAAA,IAAA,EAAA,KAAa,EAAA,CAAA,CAAA;;;QAGjB,cAAA,GAAA,IAAA,IAAA;WACA,IAAM,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,WAAqB,EAAA;AAC3B,EAAA,CAAA;AACI,EAAA,MAAA,YAAM,GAAA,IAAO;AACb,IAAA,IAAA,CAAA,IAAA,EAAA,OAAU,EAAA;eAEV,GAAA,IAAA,CAAA,IAAA,EAAA,CAAA,KAAA,CAAA,KAAA,CAAA;AACA,IAAA,OAAA,KAAA,CAAA,CAAM,CAAA,IAAA,IAAA;AACN,EAAA,CAAA;AACA,EAAA,MAAA,eAAM,GAAM,CAAG,CAAA,EAAA,MAAS,WAAG,EAAA,KAAc,GAAG,CAAA,KAAM;sBACxC;kBAAQ,CAAG,eAAU,CAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,KAAA,CAAA;AAE/B,MAAA;AACI,IAAA;;AAEH,IAAA,MAAA,iBAAE,GAAA,SAAA,IAAA,CAAA,WAAA,IAAA,CAAA,SAAA,IAAA,KAAA,KAAA,CAAA,IAAA,CAAA,WAAA;YAEH,CAAA,QAAA,IAAA,IAAA,CAAA,QAAA,CAAA,MAA8B,GAAA,CAAA,IAAA,iBAAA,EAAA;AAC9B,MAAA,MAAA,OAAI,GAAA,CAAA,CAAA,aAAkB;AAClB,MAAA,MAAA,IAAA,GAAA,OAAO,CAAA;AACP;YACJ,cAAC,GAAA,MAAA,CAAA,WAAA;AACD,MAAA,IAAA,GAAA,GAAI,IAAA,CAAA,GAAA;AACA,MAAA,MAAA,MAAA,GAAA,IAAO,CAAA,GAAA,CAAA,CAAA,EAAA,oBAA8B,CAAA,CAAA;AACrC,MAAA,IAAA,GAAA,GAAA,MAAA,EAAA,GAAA,GAAA,MAAiB;sBACpB,CAAA;aAED,GAAA;AACA,QAAA,MAAA,EAAA,IAAA,CAAA;;AAGA;2BACI,CAAA,OAAA,EAAA;2BACA,CAAA,iBAAwB,CAAA,OAAA,CAAA;yBAExB,CAAA,OAAA,GAAA,IAAA;;0BAEI,CAAA,OAAA,EAAA;AACA,QAAA,MAAA,CAAA,YAAI,CAAA,gBAAmB,CAAA,OAAS,CAAA;wBAC5B,CAAA,OAAA,GAAA,IAAA;;;AAGJ,MAAA,kBAAA,CAAA,OAAA,GAAe,IAAI,CAAC,IAAI;;qBACrB,KAAC,IAAA,CAAA,IAAA,EAAA;;yBAEJ,CAAA,IAAA,CAAA;;AAEA,QAAA,IAAA,aAAA,EAAA;;cAEP,cAAA,KAAA,SAAA,EAAA;6BAAO,CAAA,SAAA,CAAA;;;AAGJ,UAAA,cAAK,CAAA,IAAA,CAAA,IAAa,CAAA;;;2BAGjB,CAAA,SAAA,CAAA;0BACJ,CAAA,IAAA,CAAA;wBAED,CAAA,IAAA,CAAA,IAAA,CAAA;AACA,QAAA;;AAEQ;AACA;AACH,QAAA,IAAA,CAAA,aAAE,IAAA,cAAA,KAAA,SAAA,EAAA;2BACN,CAAA,SAAA,CAAA;UACJ,gBAAA,CAAA,IAAA,CAAA;AACL,QAAE;AAEF,MAAA;;AAEQ,MAAA,IAAA,KAAA,KAAA,CAAA,IAAa,UAAA,EAAA;aACb,EAAA,IAAO,CAAA;UACV,IAAA,EAAA,kBAAA;UACD,KAAK,EAAA;YACD,oBAAA,EAAA,IAAA,CAAA;AACA;AACI,SAAA,CAAA;;AAEJ,IAAA;AACI,EAAA,CAAA;AACA,EAAA,MAAA,eAAA,GAAA,CAAA,IAAA,EAAiB,WAAU,KAAK;oBACnC,EAAA;kBAED,CAAA,eAAA,CAAA,IAAA,EAAA,WAAA,CAAA;;;oBAIA,EAAA;;2BAEI,CAAA,OAAA,EAAA;2BACI,CAAA,iBAAyB,QAAK,CAAI;;0BAElC,CAAO,OAAA,EAAA;2BACV,CAAA,gBAAA,CAAA,OAAA,CAAA;wBACD,CAAA,OAAA,GAAA,IAAA;;;;;;AAMA,MAAA,iBAAA,CAAA,OAAA,GAAkB,MAAC,CAAA,UAAe,CAAA,MAAA;;0BAGlC,EAAA,IAAA,KAAA,IAAA,CAAA,IAAA,EAAA;;;AAGI,QAAA;;8BAEI,CAAA,OAAc,KAAK,IAAE,CAAA,IAAA,EAAA;;;;AAIjC;QACJ,kBAAC,CAAA,OAAA,GAAA,IAAA;AACL,QAAE,iBAAA,CAAA,SAAA,CAAA;;AAKU,QAAA,UAAA,CAAA,MAAiB;AACjB;AACH,UACJ,IAAA,cACH,EAAA,IAAA,KAAA,IAAA,CAAA,IAAA,IAAA,kBAAA,CAAA,OAAA,KAAA,IAAA,CAAA,IAAA,EAAA;AAEF,4BAAuB,CAAA,KAAO,CAAA;YACxB,cAAgB,CAAC,IAAA,CAAA;YACjB,iBAAkB,CAAA,IAAA,CAAA;AACpB,UAAA;QACA,CAAA,EAAA,GAAK,CAAE;AACH,MAAA,CAAA,EAAA,GAAA,CAAA,CAAA;AACA,IAAA;AACH,EAAA,CAAA;QAED,aAAA,GAAAA,cAAA,CAAA,OAAA,CAAA,OAAA;mBACI,EAAA,QAAa,EAAA,QAAA,KAAA,UAAA,GAAA,MAAA,GAAA,SAAA;AACb,IAAA,KAAA,EAAA,uBAAoB,UAA2B,GAAA,iBAA2C,GAAA;AACtF,GAAA,CAAA,EAAA,CAAA,QAAA,CAAA,CAAA;AACI,EAAA,MAAA,iBAAI,GAAI,CAAC,CAAA,EAAA,IAAI,KAAK;AAAY,IAAA,CAAA,CAAA,cAAA,EAAA;AAC9B,IAAA,CAAA,CAAA,eAAA,EAAA;iCACU,KAAQ,IAAA,GAAA,IAAA,GAAc,IAAC;AAC7B,IAAA,KAAA,EAAA,IAAA,CAAA;AAAW,MAAA,IAAA,EAAA,kBAAA;;4BAElB,EAAA;AACD;AACJ,KAAA,CAAA;;kBAGI,EAAA;0BACA,GAAA,CAAA,KAAkB,EAAA,UAAU,KAAA;mBAC5B,IAAA,IAAA,KAAe,EAAA;kBACf,CAAA,IAAA,KAAA,UAAsB,EAAC,OAAA,IAAA;cAC1B,IAAA,CAAA,QAAA,EAAA;YACJ,MAAA,KAAA,GAAA,cAAA,CAAA,IAAA,CAAA,QAAA,EAAA,UAAA,CAAA;gBAAO,KAAA,EAAA,OAAA,KAAA;;;QAGR,OAAC,IAAA;AAED,MAAA,CAAA;AACJ,MAAE,MAAA,QAAA,GAAA,cAAA,CAAA,QAAA,EAAA,IAAA,CAAA;MAEF,IAAA,QAAA,EAAA;QACA,iBAAM,CAAA,QAAwB,CAAA;AAC1B,QAAA,cAAK,CAAA,IAAa,CAAA;AAAqB,QAAA,gBAAY,CAAA,IAAA,CAAA;AAEnD,MAAA;AACA,IAAA,CAAA,MAAA;sBAEA,CAAA,KAAA,CAAA;oBACA,CAAA,IAAA,CAAA;;kBAEA,CAAA,CAAA,WAAA,CAAA;;AAEA;AACA,EAAA,MAAA,kBAAkB,GAAA,MAAS;QAE3B,CAAA,yCAEQ,IAAS;sBAEC,GAAG,EAAA,CAAA;iBACT,cAAQ,CAAA;;AAER;AACA;AACA;AACA;AACA,IAAA,MAAA,MAAA,GAAA,CAAA,UAAW,GAAA,CAAA,GAAA,EAAA;mBACX,GAAA,IAAA,CAAA,GAAa,CAAE,MAAA,EAAA,IAAA,CAAA,KAAc,CAAK,aAAY,CAAA,GAAA,IAAS,MAAM,CAAA,CAAA;AAC7D,IAAA,OAAAA,cAAA,CAAA,aAAG,CAAA,KAAa,EAAA;iBAChB,CAAA,sEAA4D,EAAA,cAAA,CAAA,mBAAA,CAAA;AAC5D,MAAA,KAAA,EAAA;cACH,CACD,EAAA,YAAc,CAAA,EAAG,CAAA;gBACb,SAAA,CAAA,EAAA,CAAA;AACA,QAAA,SAAA,EAAA,CAAI,aAAA,EAAA,SAAkB,CAAO,UAAG,CAAA;AAC5B,QAAA,KAAA,EAAA,OAAA;AACA,QAAA,QAAA,EAAA,qBAAkB;uBACrB,EAAA,UAAA;oBACD,EAAA,MAAA;iBACA,EAAA,oCAAA;qBACI,EAAA,cAAiB,KAAA,SAAA,GAAA,MAAA,GAAA,MAAA;AACjB,QAAA,GAAA,aAAA;;AAEA,QAAA,eAAA,EAAK,QAAA,EAAA,uBAA+B,GAAK,MAAA,GAAS;;0BAE9C;;6BAEP,CAAA,OAAA,EAAA;AACL,UAAA,MACA,CAAA,YAAc,CAAA,iBAAK,CAAA,OAAA,CAAA;AACf,UAAA,iBAAI,CAAA,OAAe,GAAA,IAAK;AAAM,QAAA;;AAG9B;AACI,QAAA,IAAA,cAAM,EAAC;4BACV,CAAA,OAAA,GAAA,cAAA,CAAA,IAAA;;4BAGD,IAAA,cAAA,KAAA,SAAA,EAAA;6BACA,CAAA,SAAkB,CAAA;4BAElB,CAAA,IAAiB,CAAC;;AAEd,QAAA;;0BAEI;2BACA,IAAA,CAAA,IAAA,EAAA,OAAkB;;6BAElB,CAAA,OAAA,EAAA;gBACX,CAAA,YAAA,CAAA,iBAAA,CAAA,OAAA,CAAA;AAED,QAAA;AAEQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCH;;;AAID;AAGA;;AAyBhB;AAEA;AACI;;;AAGA;AACA;;AAGA;;AAGA,KAAA,CAAA,EAAAA,cAAA,CAAA,aACI,CAAA,KAAA,EAAA;AAIY,MAAA,SAAA,EAAC;mCACK,CAAA;iBACH;AACH,KAAA,EAAA,IAAA,CAAA,IAAA,CAAC,EAACA,cAAA,CAAA,aAED,SAAE,EAAA;AASV,MAAA,SAAA,EAAK,4DAA4D;kBAGlE,EAAA,UAAA,KAAC,KACG,IACI,aAAW;AACP,MAAA,OAAA,EAAA,CAAA,IAAA,iBAAK,CAAA,CAAA,EAAA,IAAA,CAAA,IAAA;sBACH,IAAA,CAAA,IAAA,GAAAA,cAAiB,CAAA,aAAY,CAAA,eAEvC,EAAA;AAII,MAAA,SAAA,EAAA;qCAEK,CAAC,eAAM,EAAA;iBAEhB;AAGY,KAAA,CAAA,CAAA,CAAA,EAAAA,cAAA,CAAA,aAAE,CAAA,KAAA,EAAA;;oBAIT,EAAA,GAAK,CAAA,CAAA,KAAO,EACT,GAAA,KAAAA,cAAA,CAAA,aAAA,CAAA,KACI,EAAA;;AAGQ,MAAA,SAAA,EAAA,oDAED;AACH,MAAA,KAAA,EAAA;AACH,QAAA,CAAA,KAAA,GAAA;;AAaO,KAAA,EAAA,cAAA,CAAA,KAAA,EAAC,CAAC,EACV,IACA,KAAK;AACD,EAAA,CAAA;AACH,EAAA,MAAA,cAAA,GAAA,CAAA,iBAEc,WAAW,GAEjC,KAAA,EAAA,KAAA,GAAA,CAAA,KAAA;qBACA,GAAA,IAAK,CAAA,QAAW,IAAA,IAAA,CAAA,QACb,CAAA,MAAA,GAAA,CAAA;AAKQ,IAAA,MAAA,MAAA,GAAA,SAAA,CAAA,QAAQ,CAAA,IAAA,CAAA,IAAQ,CAAK;AACxB,IAAA,MAAA,QAAA,GAAA,gBACM,CAAI,IAAC,CAAI,IAEf;iCASY,KACA,IAAA,CAAA,IAAQ;AACL,IAAA,MAAA,WAAA,GAAA,CAAA,EAAA,KAAA,GAAE,CAAA,CAAA,GAAM,CAAA;AACR;AACX,IAAA,MAAA,uBAEI,WAKlB,IAAA,KAAA,KAAA,CAAA;AAKN,IAAA,MAAA,qBAAe,GAAM,SAAK,IAAS,CAAA;AAOhD,IAAA,OAAEA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAEF,MAAA,GAAA,EAAO,IACH,CAAA,IAAA;AACI,MAAA,GAAA,EAAA,KAAA,KAAA,CAAA,IAAA,CAAA,WAAA;QACA,QAAA,CAAA,OAAA,CAAA,IAAA,CAAA,IAAA,CAAA,GACI,EAAG;AAKH,MAAA,CAAA,GAAA,SAAA;AAIQ,MAAA,SAAA,EAAA,CAAA,yCAAuC,EAAC,KAAK,KAAA,CAAA,IAAA,CAAA,WAAA,GAAA,4BAAA,GAAA,EAAA,CAAA,CAAA;AAC7C,MAAA,KAAA,EAAA,KAAA,KAAA,CAAA,IAAQ,CAAA,WAAY,GAAA;sBACpB,GAAA;mBACH;kBAEJ,EAAQ,CAAC,IAAI,eACV,CAAA,CAAA,EAAA,IAAA,EAAA,WAAC,EAAA,KAAM,CAAA;AACF,MAAA,YAAA,EAAA,MAAA,eAAuB,CAAA;AACvB,KAAA,EAAA,KAAA,KAAA,CAAA,IAAA,oBAAwB,IAAK,SAGpC,IAAA,CAAA,QAAA,IAAAA,cAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AAEL,MAAA;AAGb,KAAE,CAAA,EAAAA,cAAA,CAAA,aAAA,CAAA,IAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* SidebarRailFX — an opt-in ambient backdrop that lives *behind* the icon rail.
|
|
4
|
+
*
|
|
5
|
+
* mode:
|
|
6
|
+
* 'off' — render nothing (default; zero cost).
|
|
7
|
+
* 'aurora' — lightweight CSS-only drifting aurora (works everywhere).
|
|
8
|
+
* 'webgpu' — a GPU shader aurora when the browser supports WebGPU,
|
|
9
|
+
* gracefully falling back to the CSS aurora otherwise.
|
|
10
|
+
*
|
|
11
|
+
* It is purely decorative: `pointer-events: none`, sits at `z-index: -1` inside
|
|
12
|
+
* the rail's stacking context (above the card background, below the icons), and
|
|
13
|
+
* honors `prefers-reduced-motion` by holding a static frame.
|
|
14
|
+
*/
|
|
15
|
+
export type RailFxMode = 'off' | 'aurora' | 'webgpu';
|
|
16
|
+
interface SidebarRailFXProps {
|
|
17
|
+
mode?: RailFxMode;
|
|
18
|
+
/** Brand color as an `r,g,b` triplet in 0..1. Defaults to a calm indigo. */
|
|
19
|
+
rgb?: [number, number, number];
|
|
20
|
+
}
|
|
21
|
+
export declare const SidebarRailFX: React.FC<SidebarRailFXProps>;
|
|
22
|
+
export default SidebarRailFX;
|
|
23
|
+
//# sourceMappingURL=SidebarRailFX.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SidebarRailFX.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/Sidebar/SidebarRailFX.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAEjD;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAErD,UAAU,kBAAkB;IACxB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,4EAA4E;IAC5E,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AA4CD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAuKtD,CAAC;AAEF,eAAe,aAAa,CAAC"}
|