@mks2508/sidebar-headless 0.2.0 → 0.2.1
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/dist/index.cjs +53167 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.js +350 -437
- package/dist/index.js.map +1 -1
- package/package.json +106 -106
package/dist/index.js
CHANGED
|
@@ -1,29 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var tailwindMerge = require('tailwind-merge');
|
|
7
|
-
|
|
8
|
-
function _interopNamespace(e) {
|
|
9
|
-
if (e && e.__esModule) return e;
|
|
10
|
-
var n = Object.create(null);
|
|
11
|
-
if (e) {
|
|
12
|
-
Object.keys(e).forEach(function (k) {
|
|
13
|
-
if (k !== 'default') {
|
|
14
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
15
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
16
|
-
enumerable: true,
|
|
17
|
-
get: function () { return e[k]; }
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
n.default = e;
|
|
23
|
-
return Object.freeze(n);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
var React4__namespace = /*#__PURE__*/_interopNamespace(React4);
|
|
1
|
+
import * as React4 from 'react';
|
|
2
|
+
import { createContext, memo, useRef, useState, useMemo, Children, isValidElement, cloneElement, useEffect, forwardRef, useId, useContext, useCallback, useLayoutEffect, useInsertionEffect, Fragment as Fragment$1, createElement, Component as Component$1 } from 'react';
|
|
3
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
4
|
+
import { clsx } from 'clsx';
|
|
5
|
+
import { twMerge } from 'tailwind-merge';
|
|
27
6
|
|
|
28
7
|
var __defProp = Object.defineProperty;
|
|
29
8
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
@@ -100,7 +79,7 @@ var init_Icon = __esm({
|
|
|
100
79
|
"node_modules/lucide-react/dist/esm/Icon.js"() {
|
|
101
80
|
init_defaultAttributes();
|
|
102
81
|
init_utils();
|
|
103
|
-
Icon =
|
|
82
|
+
Icon = forwardRef(
|
|
104
83
|
({
|
|
105
84
|
color: color2 = "currentColor",
|
|
106
85
|
size = 24,
|
|
@@ -110,7 +89,7 @@ var init_Icon = __esm({
|
|
|
110
89
|
children,
|
|
111
90
|
iconNode,
|
|
112
91
|
...rest
|
|
113
|
-
}, ref) =>
|
|
92
|
+
}, ref) => createElement(
|
|
114
93
|
"svg",
|
|
115
94
|
{
|
|
116
95
|
ref,
|
|
@@ -124,7 +103,7 @@ var init_Icon = __esm({
|
|
|
124
103
|
...rest
|
|
125
104
|
},
|
|
126
105
|
[
|
|
127
|
-
...iconNode.map(([tag, attrs]) =>
|
|
106
|
+
...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),
|
|
128
107
|
...Array.isArray(children) ? children : [children]
|
|
129
108
|
]
|
|
130
109
|
)
|
|
@@ -137,8 +116,8 @@ var init_createLucideIcon = __esm({
|
|
|
137
116
|
init_utils();
|
|
138
117
|
init_Icon();
|
|
139
118
|
createLucideIcon = (iconName, iconNode) => {
|
|
140
|
-
const Component4 =
|
|
141
|
-
({ className, ...props }, ref) =>
|
|
119
|
+
const Component4 = forwardRef(
|
|
120
|
+
({ className, ...props }, ref) => createElement(Icon, {
|
|
142
121
|
ref,
|
|
143
122
|
iconNode,
|
|
144
123
|
className: mergeClasses(
|
|
@@ -39911,8 +39890,8 @@ var DEFAULT_LIQUID_GLASS_CONFIG = {
|
|
|
39911
39890
|
*/
|
|
39912
39891
|
enableCylinderTitle: false
|
|
39913
39892
|
};
|
|
39914
|
-
var SubContentContext =
|
|
39915
|
-
var SidebarContext =
|
|
39893
|
+
var SubContentContext = createContext(null);
|
|
39894
|
+
var SidebarContext = createContext(null);
|
|
39916
39895
|
function SidebarProvider({
|
|
39917
39896
|
children,
|
|
39918
39897
|
defaultOpen = DEFAULT_CONFIG.defaultOpen,
|
|
@@ -39931,69 +39910,69 @@ function SidebarProvider({
|
|
|
39931
39910
|
enableTooltip = true,
|
|
39932
39911
|
liquidGlass: liquidGlassProp
|
|
39933
39912
|
}) {
|
|
39934
|
-
const [internalOpen, setInternalOpen] =
|
|
39913
|
+
const [internalOpen, setInternalOpen] = useState(defaultOpen);
|
|
39935
39914
|
const open = controlledOpen !== void 0 ? controlledOpen : internalOpen;
|
|
39936
|
-
const setOpen =
|
|
39915
|
+
const setOpen = useCallback((newOpen) => {
|
|
39937
39916
|
if (controlledOpen === void 0) {
|
|
39938
39917
|
setInternalOpen(newOpen);
|
|
39939
39918
|
}
|
|
39940
39919
|
onOpenChange?.(newOpen);
|
|
39941
39920
|
}, [controlledOpen, onOpenChange]);
|
|
39942
|
-
const navRef =
|
|
39943
|
-
const contentRef =
|
|
39944
|
-
const indicatorRef =
|
|
39945
|
-
const [items, setItems] =
|
|
39946
|
-
const [showIndicatorForKeyboard, setShowIndicatorForKeyboard] =
|
|
39947
|
-
const [isOverItems, setIsOverItems] =
|
|
39948
|
-
const [currentItemElement, setCurrentItemElement] =
|
|
39949
|
-
const [subContentMap] =
|
|
39950
|
-
const registerSubContent =
|
|
39921
|
+
const navRef = useRef(null);
|
|
39922
|
+
const contentRef = useRef(null);
|
|
39923
|
+
const indicatorRef = useRef(null);
|
|
39924
|
+
const [items, setItems] = useState([]);
|
|
39925
|
+
const [showIndicatorForKeyboard, setShowIndicatorForKeyboard] = useState(false);
|
|
39926
|
+
const [isOverItems, setIsOverItems] = useState(false);
|
|
39927
|
+
const [currentItemElement, setCurrentItemElement] = useState(null);
|
|
39928
|
+
const [subContentMap] = useState(() => /* @__PURE__ */ new Map());
|
|
39929
|
+
const registerSubContent = useCallback((itemId, data) => {
|
|
39951
39930
|
subContentMap.set(itemId, data);
|
|
39952
39931
|
}, [subContentMap]);
|
|
39953
|
-
const unregisterSubContent =
|
|
39932
|
+
const unregisterSubContent = useCallback((itemId) => {
|
|
39954
39933
|
subContentMap.delete(itemId);
|
|
39955
39934
|
}, [subContentMap]);
|
|
39956
|
-
const getSubContent =
|
|
39935
|
+
const getSubContent = useCallback((itemId) => {
|
|
39957
39936
|
return subContentMap.get(itemId);
|
|
39958
39937
|
}, [subContentMap]);
|
|
39959
|
-
const registerItem =
|
|
39938
|
+
const registerItem = useCallback((element) => {
|
|
39960
39939
|
setItems((prev) => {
|
|
39961
39940
|
if (prev.includes(element)) return prev;
|
|
39962
39941
|
return [...prev, element];
|
|
39963
39942
|
});
|
|
39964
39943
|
}, []);
|
|
39965
|
-
const unregisterItem =
|
|
39944
|
+
const unregisterItem = useCallback((element) => {
|
|
39966
39945
|
setItems((prev) => prev.filter((item) => item !== element));
|
|
39967
39946
|
}, []);
|
|
39968
|
-
const dimensions =
|
|
39947
|
+
const dimensions = useMemo(
|
|
39969
39948
|
() => ({
|
|
39970
39949
|
...DEFAULT_DIMENSIONS,
|
|
39971
39950
|
...dimensionsProp
|
|
39972
39951
|
}),
|
|
39973
39952
|
[dimensionsProp]
|
|
39974
39953
|
);
|
|
39975
|
-
const safeAreas =
|
|
39954
|
+
const safeAreas = useMemo(
|
|
39976
39955
|
() => ({
|
|
39977
39956
|
...DEFAULT_SAFE_AREAS,
|
|
39978
39957
|
...safeAreasProp
|
|
39979
39958
|
}),
|
|
39980
39959
|
[safeAreasProp]
|
|
39981
39960
|
);
|
|
39982
|
-
const animations2 =
|
|
39961
|
+
const animations2 = useMemo(
|
|
39983
39962
|
() => ({
|
|
39984
39963
|
...DEFAULT_ANIMATIONS,
|
|
39985
39964
|
...animationsProp
|
|
39986
39965
|
}),
|
|
39987
39966
|
[animationsProp]
|
|
39988
39967
|
);
|
|
39989
|
-
const liquidGlass =
|
|
39968
|
+
const liquidGlass = useMemo(
|
|
39990
39969
|
() => ({
|
|
39991
39970
|
...DEFAULT_LIQUID_GLASS_CONFIG,
|
|
39992
39971
|
...liquidGlassProp
|
|
39993
39972
|
}),
|
|
39994
39973
|
[liquidGlassProp]
|
|
39995
39974
|
);
|
|
39996
|
-
const contextValue =
|
|
39975
|
+
const contextValue = useMemo(
|
|
39997
39976
|
() => ({
|
|
39998
39977
|
defaultOpen,
|
|
39999
39978
|
open,
|
|
@@ -40053,7 +40032,7 @@ function SidebarProvider({
|
|
|
40053
40032
|
setCurrentItemElement
|
|
40054
40033
|
]
|
|
40055
40034
|
);
|
|
40056
|
-
const subContentContextValue =
|
|
40035
|
+
const subContentContextValue = useMemo(
|
|
40057
40036
|
() => ({
|
|
40058
40037
|
subContentMap,
|
|
40059
40038
|
registerSubContent,
|
|
@@ -40062,7 +40041,7 @@ function SidebarProvider({
|
|
|
40062
40041
|
}),
|
|
40063
40042
|
[subContentMap, registerSubContent, unregisterSubContent, getSubContent]
|
|
40064
40043
|
);
|
|
40065
|
-
return /* @__PURE__ */
|
|
40044
|
+
return /* @__PURE__ */ jsx(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(SubContentContext.Provider, { value: subContentContextValue, children }) });
|
|
40066
40045
|
}
|
|
40067
40046
|
function Sidebar({
|
|
40068
40047
|
children,
|
|
@@ -40086,7 +40065,7 @@ function Sidebar({
|
|
|
40086
40065
|
}) {
|
|
40087
40066
|
const isRenderProp = typeof children === "function";
|
|
40088
40067
|
const Component4 = as || "div";
|
|
40089
|
-
return /* @__PURE__ */
|
|
40068
|
+
return /* @__PURE__ */ jsx(
|
|
40090
40069
|
SidebarProvider,
|
|
40091
40070
|
{
|
|
40092
40071
|
defaultOpen,
|
|
@@ -40103,7 +40082,7 @@ function Sidebar({
|
|
|
40103
40082
|
enableFluidIndicator,
|
|
40104
40083
|
enableTooltip,
|
|
40105
40084
|
liquidGlass,
|
|
40106
|
-
children: /* @__PURE__ */
|
|
40085
|
+
children: /* @__PURE__ */ jsx(Component4, { className, style, children: isRenderProp ? children({
|
|
40107
40086
|
open: open ?? defaultOpen,
|
|
40108
40087
|
collapsed: !open && collapseMode === "collapse",
|
|
40109
40088
|
collapseMode,
|
|
@@ -40113,10 +40092,10 @@ function Sidebar({
|
|
|
40113
40092
|
);
|
|
40114
40093
|
}
|
|
40115
40094
|
function cn(...inputs) {
|
|
40116
|
-
return
|
|
40095
|
+
return twMerge(clsx(inputs));
|
|
40117
40096
|
}
|
|
40118
40097
|
function useSidebarContext() {
|
|
40119
|
-
const context =
|
|
40098
|
+
const context = useContext(SidebarContext);
|
|
40120
40099
|
if (!context) {
|
|
40121
40100
|
throw new Error(
|
|
40122
40101
|
"useSidebarContext debe ser utilizado dentro de un componente <Sidebar> o <SidebarProvider>. Aseg\xFArate de que tu componente est\xE9 envuelto correctamente en la jerarqu\xEDa del Sidebar."
|
|
@@ -40125,7 +40104,7 @@ function useSidebarContext() {
|
|
|
40125
40104
|
return context;
|
|
40126
40105
|
}
|
|
40127
40106
|
function useSubContent() {
|
|
40128
|
-
const context =
|
|
40107
|
+
const context = useContext(SubContentContext);
|
|
40129
40108
|
if (!context) {
|
|
40130
40109
|
throw new Error("useSubContent must be used within a <Sidebar> component");
|
|
40131
40110
|
}
|
|
@@ -40143,17 +40122,17 @@ function useSidebarIndicator() {
|
|
|
40143
40122
|
currentItemElement,
|
|
40144
40123
|
setCurrentItemElement
|
|
40145
40124
|
} = useSidebarContext();
|
|
40146
|
-
const [isHovering, setIsHovering] =
|
|
40147
|
-
const [refsReady, setRefsReady] =
|
|
40148
|
-
const [hoveredItemId, setHoveredItemId] =
|
|
40149
|
-
const [hoveredLabel, setHoveredLabel] =
|
|
40150
|
-
const rafRef =
|
|
40151
|
-
|
|
40125
|
+
const [isHovering, setIsHovering] = useState(false);
|
|
40126
|
+
const [refsReady, setRefsReady] = useState(false);
|
|
40127
|
+
const [hoveredItemId, setHoveredItemId] = useState(null);
|
|
40128
|
+
const [hoveredLabel, setHoveredLabel] = useState(null);
|
|
40129
|
+
const rafRef = useRef(null);
|
|
40130
|
+
useEffect(() => {
|
|
40152
40131
|
if (indicatorRef.current && navRef.current && contentRef.current) {
|
|
40153
40132
|
setRefsReady(true);
|
|
40154
40133
|
}
|
|
40155
40134
|
}, [indicatorRef, navRef, contentRef, indicatorRef.current, navRef.current, contentRef.current]);
|
|
40156
|
-
const handleMouseMove =
|
|
40135
|
+
const handleMouseMove = useCallback(
|
|
40157
40136
|
(e) => {
|
|
40158
40137
|
if (!indicatorRef.current || !navRef.current || !contentRef.current) {
|
|
40159
40138
|
return;
|
|
@@ -40189,10 +40168,10 @@ function useSidebarIndicator() {
|
|
|
40189
40168
|
},
|
|
40190
40169
|
[indicatorRef, navRef, contentRef]
|
|
40191
40170
|
);
|
|
40192
|
-
const handleMouseEnter =
|
|
40171
|
+
const handleMouseEnter = useCallback(() => {
|
|
40193
40172
|
setIsHovering(true);
|
|
40194
40173
|
}, []);
|
|
40195
|
-
const handleMouseLeave =
|
|
40174
|
+
const handleMouseLeave = useCallback(() => {
|
|
40196
40175
|
setIsHovering(false);
|
|
40197
40176
|
setIsOverItems(false);
|
|
40198
40177
|
setShowIndicatorForKeyboard(false);
|
|
@@ -40202,11 +40181,11 @@ function useSidebarIndicator() {
|
|
|
40202
40181
|
cancelAnimationFrame(rafRef.current);
|
|
40203
40182
|
}
|
|
40204
40183
|
}, [setShowIndicatorForKeyboard, setIsOverItems]);
|
|
40205
|
-
const handleFocus =
|
|
40184
|
+
const handleFocus = useCallback(() => {
|
|
40206
40185
|
setIsHovering(true);
|
|
40207
40186
|
setIsOverItems(true);
|
|
40208
40187
|
}, [setIsOverItems]);
|
|
40209
|
-
const handleBlur =
|
|
40188
|
+
const handleBlur = useCallback(
|
|
40210
40189
|
(e) => {
|
|
40211
40190
|
if (!navRef.current?.contains(e.relatedTarget)) {
|
|
40212
40191
|
setIsHovering(false);
|
|
@@ -40216,7 +40195,7 @@ function useSidebarIndicator() {
|
|
|
40216
40195
|
},
|
|
40217
40196
|
[navRef, setShowIndicatorForKeyboard, setIsOverItems]
|
|
40218
40197
|
);
|
|
40219
|
-
const clearHoveredState =
|
|
40198
|
+
const clearHoveredState = useCallback(() => {
|
|
40220
40199
|
setHoveredLabel(null);
|
|
40221
40200
|
setHoveredItemId(null);
|
|
40222
40201
|
setCurrentItemElement(null);
|
|
@@ -40246,8 +40225,8 @@ function useSidebarKeyboard() {
|
|
|
40246
40225
|
setIsOverItems,
|
|
40247
40226
|
setCurrentItemElement
|
|
40248
40227
|
} = useSidebarContext();
|
|
40249
|
-
const [focusedIndex, setFocusedIndex] =
|
|
40250
|
-
const updateIndicatorForFocus =
|
|
40228
|
+
const [focusedIndex, setFocusedIndex] = useState(-1);
|
|
40229
|
+
const updateIndicatorForFocus = useCallback(
|
|
40251
40230
|
(index, itemsOverride) => {
|
|
40252
40231
|
if (!indicatorRef.current || !navRef.current) return;
|
|
40253
40232
|
const itemsToUse = itemsOverride || items;
|
|
@@ -40264,7 +40243,7 @@ function useSidebarKeyboard() {
|
|
|
40264
40243
|
},
|
|
40265
40244
|
[indicatorRef, navRef, items, setShowIndicatorForKeyboard, setIsOverItems, setCurrentItemElement]
|
|
40266
40245
|
);
|
|
40267
|
-
|
|
40246
|
+
useEffect(() => {
|
|
40268
40247
|
const handleKeyDown = (e) => {
|
|
40269
40248
|
if (!contentRef.current) return;
|
|
40270
40249
|
const sidebarItems = Array.from(
|
|
@@ -40345,7 +40324,7 @@ try {
|
|
|
40345
40324
|
console.warn("@liquid-svg-glass/core is not installed. Liquid glass effects will be disabled.");
|
|
40346
40325
|
}
|
|
40347
40326
|
function useLiquidGlass(geometry, visual, enableChromaticAberration = false) {
|
|
40348
|
-
return
|
|
40327
|
+
return useMemo(() => {
|
|
40349
40328
|
const result = generateDisplacementMap(geometry, visual, enableChromaticAberration);
|
|
40350
40329
|
return {
|
|
40351
40330
|
dataUri: result.dataUri,
|
|
@@ -40650,10 +40629,10 @@ var generateFastKeyframes = (from, to) => {
|
|
|
40650
40629
|
];
|
|
40651
40630
|
};
|
|
40652
40631
|
function useFluidAnimation() {
|
|
40653
|
-
const previousPositionRef =
|
|
40654
|
-
const animationRef =
|
|
40655
|
-
const lastChangeTimestampRef =
|
|
40656
|
-
const animate =
|
|
40632
|
+
const previousPositionRef = useRef(null);
|
|
40633
|
+
const animationRef = useRef(null);
|
|
40634
|
+
const lastChangeTimestampRef = useRef(0);
|
|
40635
|
+
const animate = useCallback((element, targetPosition) => {
|
|
40657
40636
|
const now2 = Date.now();
|
|
40658
40637
|
const timeSinceLastChange = now2 - lastChangeTimestampRef.current;
|
|
40659
40638
|
const isFastMode = timeSinceLastChange < 200 && lastChangeTimestampRef.current > 0;
|
|
@@ -40696,7 +40675,7 @@ function useFluidAnimation() {
|
|
|
40696
40675
|
};
|
|
40697
40676
|
return animation;
|
|
40698
40677
|
}, []);
|
|
40699
|
-
const reset =
|
|
40678
|
+
const reset = useCallback(() => {
|
|
40700
40679
|
if (animationRef.current) {
|
|
40701
40680
|
animationRef.current.cancel();
|
|
40702
40681
|
animationRef.current = null;
|
|
@@ -40715,10 +40694,10 @@ function FluidHoverIndicator({
|
|
|
40715
40694
|
className = "",
|
|
40716
40695
|
containerRef
|
|
40717
40696
|
}) {
|
|
40718
|
-
const indicatorRef =
|
|
40697
|
+
const indicatorRef = useRef(null);
|
|
40719
40698
|
const { animate, reset } = useFluidAnimation();
|
|
40720
|
-
const isFirstRender =
|
|
40721
|
-
|
|
40699
|
+
const isFirstRender = useRef(true);
|
|
40700
|
+
useEffect(() => {
|
|
40722
40701
|
console.log("\u{1F3A8} [FluidHoverIndicator] useEffect:", {
|
|
40723
40702
|
hasTargetElement: !!targetElement,
|
|
40724
40703
|
hasIndicatorRef: !!indicatorRef.current,
|
|
@@ -40753,7 +40732,7 @@ function FluidHoverIndicator({
|
|
|
40753
40732
|
}
|
|
40754
40733
|
animate(indicatorRef.current, position);
|
|
40755
40734
|
}, [targetElement, isVisible, animate, reset, containerRef]);
|
|
40756
|
-
return /* @__PURE__ */
|
|
40735
|
+
return /* @__PURE__ */ jsx(
|
|
40757
40736
|
"div",
|
|
40758
40737
|
{
|
|
40759
40738
|
ref: indicatorRef,
|
|
@@ -40783,7 +40762,7 @@ function FluidHoverIndicator({
|
|
|
40783
40762
|
// Force hide when not visible
|
|
40784
40763
|
opacity: isVisible ? void 0 : 0
|
|
40785
40764
|
},
|
|
40786
|
-
children: /* @__PURE__ */
|
|
40765
|
+
children: /* @__PURE__ */ jsx(
|
|
40787
40766
|
"div",
|
|
40788
40767
|
{
|
|
40789
40768
|
className: "absolute inset-0 rounded-xl bg-gradient-to-br from-primary/40 to-transparent opacity-80",
|
|
@@ -40800,14 +40779,14 @@ function FluidHoverIndicatorV2({
|
|
|
40800
40779
|
containerRef,
|
|
40801
40780
|
enableChromaticAberration = false
|
|
40802
40781
|
}) {
|
|
40803
|
-
const indicatorRef =
|
|
40782
|
+
const indicatorRef = useRef(null);
|
|
40804
40783
|
const { animate, reset } = useFluidAnimation();
|
|
40805
|
-
const isFirstRender =
|
|
40784
|
+
const isFirstRender = useRef(true);
|
|
40806
40785
|
const { dataUri, filterAttributes, chromaticAberrationSVG } = useSidebarLiquidGlass(
|
|
40807
40786
|
"indicator",
|
|
40808
40787
|
{ enableChromaticAberration }
|
|
40809
40788
|
);
|
|
40810
|
-
|
|
40789
|
+
useEffect(() => {
|
|
40811
40790
|
console.log("\u{1F52C} Liquid Glass V2 Data:", {
|
|
40812
40791
|
hasDataUri: !!dataUri,
|
|
40813
40792
|
dataUriLength: dataUri?.length || 0,
|
|
@@ -40821,7 +40800,7 @@ function FluidHoverIndicatorV2({
|
|
|
40821
40800
|
}
|
|
40822
40801
|
});
|
|
40823
40802
|
}, [dataUri, filterAttributes, chromaticAberrationSVG, enableChromaticAberration]);
|
|
40824
|
-
|
|
40803
|
+
useEffect(() => {
|
|
40825
40804
|
if (!targetElement || !indicatorRef.current || !isVisible) {
|
|
40826
40805
|
if (!isVisible && indicatorRef.current) {
|
|
40827
40806
|
reset();
|
|
@@ -40850,7 +40829,7 @@ function FluidHoverIndicatorV2({
|
|
|
40850
40829
|
}
|
|
40851
40830
|
animate(indicatorRef.current, position);
|
|
40852
40831
|
}, [targetElement, isVisible, animate, reset, containerRef]);
|
|
40853
|
-
return /* @__PURE__ */
|
|
40832
|
+
return /* @__PURE__ */ jsxs(
|
|
40854
40833
|
"div",
|
|
40855
40834
|
{
|
|
40856
40835
|
ref: indicatorRef,
|
|
@@ -40876,8 +40855,8 @@ function FluidHoverIndicatorV2({
|
|
|
40876
40855
|
opacity: isVisible ? void 0 : 0
|
|
40877
40856
|
},
|
|
40878
40857
|
children: [
|
|
40879
|
-
/* @__PURE__ */
|
|
40880
|
-
/* @__PURE__ */
|
|
40858
|
+
/* @__PURE__ */ jsx("svg", { className: "absolute inset-0 pointer-events-none w-full h-full", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs("filter", { id: "liquid-glass-indicator", colorInterpolationFilters: "sRGB", children: [
|
|
40859
|
+
/* @__PURE__ */ jsx(
|
|
40881
40860
|
"feImage",
|
|
40882
40861
|
{
|
|
40883
40862
|
x: "0",
|
|
@@ -40888,8 +40867,8 @@ function FluidHoverIndicatorV2({
|
|
|
40888
40867
|
href: dataUri
|
|
40889
40868
|
}
|
|
40890
40869
|
),
|
|
40891
|
-
!enableChromaticAberration && /* @__PURE__ */
|
|
40892
|
-
/* @__PURE__ */
|
|
40870
|
+
!enableChromaticAberration && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
40871
|
+
/* @__PURE__ */ jsx(
|
|
40893
40872
|
"feDisplacementMap",
|
|
40894
40873
|
{
|
|
40895
40874
|
in: "SourceGraphic",
|
|
@@ -40900,7 +40879,7 @@ function FluidHoverIndicatorV2({
|
|
|
40900
40879
|
result: "dispRed"
|
|
40901
40880
|
}
|
|
40902
40881
|
),
|
|
40903
|
-
/* @__PURE__ */
|
|
40882
|
+
/* @__PURE__ */ jsx(
|
|
40904
40883
|
"feColorMatrix",
|
|
40905
40884
|
{
|
|
40906
40885
|
in: "dispRed",
|
|
@@ -40909,7 +40888,7 @@ function FluidHoverIndicatorV2({
|
|
|
40909
40888
|
result: "red"
|
|
40910
40889
|
}
|
|
40911
40890
|
),
|
|
40912
|
-
/* @__PURE__ */
|
|
40891
|
+
/* @__PURE__ */ jsx(
|
|
40913
40892
|
"feDisplacementMap",
|
|
40914
40893
|
{
|
|
40915
40894
|
in: "SourceGraphic",
|
|
@@ -40920,7 +40899,7 @@ function FluidHoverIndicatorV2({
|
|
|
40920
40899
|
result: "dispGreen"
|
|
40921
40900
|
}
|
|
40922
40901
|
),
|
|
40923
|
-
/* @__PURE__ */
|
|
40902
|
+
/* @__PURE__ */ jsx(
|
|
40924
40903
|
"feColorMatrix",
|
|
40925
40904
|
{
|
|
40926
40905
|
in: "dispGreen",
|
|
@@ -40929,7 +40908,7 @@ function FluidHoverIndicatorV2({
|
|
|
40929
40908
|
result: "green"
|
|
40930
40909
|
}
|
|
40931
40910
|
),
|
|
40932
|
-
/* @__PURE__ */
|
|
40911
|
+
/* @__PURE__ */ jsx(
|
|
40933
40912
|
"feDisplacementMap",
|
|
40934
40913
|
{
|
|
40935
40914
|
in: "SourceGraphic",
|
|
@@ -40940,7 +40919,7 @@ function FluidHoverIndicatorV2({
|
|
|
40940
40919
|
result: "dispBlue"
|
|
40941
40920
|
}
|
|
40942
40921
|
),
|
|
40943
|
-
/* @__PURE__ */
|
|
40922
|
+
/* @__PURE__ */ jsx(
|
|
40944
40923
|
"feColorMatrix",
|
|
40945
40924
|
{
|
|
40946
40925
|
in: "dispBlue",
|
|
@@ -40949,9 +40928,9 @@ function FluidHoverIndicatorV2({
|
|
|
40949
40928
|
result: "blue"
|
|
40950
40929
|
}
|
|
40951
40930
|
),
|
|
40952
|
-
/* @__PURE__ */
|
|
40953
|
-
/* @__PURE__ */
|
|
40954
|
-
/* @__PURE__ */
|
|
40931
|
+
/* @__PURE__ */ jsx("feBlend", { in: "red", in2: "green", mode: "screen", result: "rg" }),
|
|
40932
|
+
/* @__PURE__ */ jsx("feBlend", { in: "rg", in2: "blue", mode: "screen", result: "output" }),
|
|
40933
|
+
/* @__PURE__ */ jsx(
|
|
40955
40934
|
"feGaussianBlur",
|
|
40956
40935
|
{
|
|
40957
40936
|
in: "output",
|
|
@@ -40959,8 +40938,8 @@ function FluidHoverIndicatorV2({
|
|
|
40959
40938
|
}
|
|
40960
40939
|
)
|
|
40961
40940
|
] }),
|
|
40962
|
-
enableChromaticAberration && chromaticAberrationSVG && /* @__PURE__ */
|
|
40963
|
-
/* @__PURE__ */
|
|
40941
|
+
enableChromaticAberration && chromaticAberrationSVG && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
40942
|
+
/* @__PURE__ */ jsx(
|
|
40964
40943
|
"feDisplacementMap",
|
|
40965
40944
|
{
|
|
40966
40945
|
in: "SourceGraphic",
|
|
@@ -40971,8 +40950,8 @@ function FluidHoverIndicatorV2({
|
|
|
40971
40950
|
result: "displaced"
|
|
40972
40951
|
}
|
|
40973
40952
|
),
|
|
40974
|
-
/* @__PURE__ */
|
|
40975
|
-
/* @__PURE__ */
|
|
40953
|
+
/* @__PURE__ */ jsx("g", { dangerouslySetInnerHTML: { __html: chromaticAberrationSVG } }),
|
|
40954
|
+
/* @__PURE__ */ jsx(
|
|
40976
40955
|
"feGaussianBlur",
|
|
40977
40956
|
{
|
|
40978
40957
|
in: "chromaticAberration",
|
|
@@ -40981,7 +40960,7 @@ function FluidHoverIndicatorV2({
|
|
|
40981
40960
|
)
|
|
40982
40961
|
] })
|
|
40983
40962
|
] }) }) }),
|
|
40984
|
-
/* @__PURE__ */
|
|
40963
|
+
/* @__PURE__ */ jsx(
|
|
40985
40964
|
"div",
|
|
40986
40965
|
{
|
|
40987
40966
|
className: "absolute inset-0 rounded-xl pointer-events-none",
|
|
@@ -40995,7 +40974,7 @@ function FluidHoverIndicatorV2({
|
|
|
40995
40974
|
}
|
|
40996
40975
|
}
|
|
40997
40976
|
),
|
|
40998
|
-
/* @__PURE__ */
|
|
40977
|
+
/* @__PURE__ */ jsx(
|
|
40999
40978
|
"div",
|
|
41000
40979
|
{
|
|
41001
40980
|
className: "absolute inset-0 rounded-xl border border-primary/60",
|
|
@@ -41023,7 +41002,7 @@ function FluidHoverIndicatorV2({
|
|
|
41023
41002
|
function SidebarFluidIndicator({ targetElement, isVisible }) {
|
|
41024
41003
|
const { navRef, liquidGlass } = useSidebarContext();
|
|
41025
41004
|
if (liquidGlass.enableLiquidGlassV2) {
|
|
41026
|
-
return /* @__PURE__ */
|
|
41005
|
+
return /* @__PURE__ */ jsx(
|
|
41027
41006
|
FluidHoverIndicatorV2,
|
|
41028
41007
|
{
|
|
41029
41008
|
targetElement,
|
|
@@ -41034,7 +41013,7 @@ function SidebarFluidIndicator({ targetElement, isVisible }) {
|
|
|
41034
41013
|
}
|
|
41035
41014
|
);
|
|
41036
41015
|
}
|
|
41037
|
-
return /* @__PURE__ */
|
|
41016
|
+
return /* @__PURE__ */ jsx(
|
|
41038
41017
|
FluidHoverIndicator,
|
|
41039
41018
|
{
|
|
41040
41019
|
targetElement,
|
|
@@ -41045,8 +41024,8 @@ function SidebarFluidIndicator({ targetElement, isVisible }) {
|
|
|
41045
41024
|
);
|
|
41046
41025
|
}
|
|
41047
41026
|
function useTooltipDirection() {
|
|
41048
|
-
const prevIndexRef =
|
|
41049
|
-
const currentIndexRef =
|
|
41027
|
+
const prevIndexRef = useRef(null);
|
|
41028
|
+
const currentIndexRef = useRef(null);
|
|
41050
41029
|
const getDirection = (currentIndex) => {
|
|
41051
41030
|
const prev = prevIndexRef.current;
|
|
41052
41031
|
prevIndexRef.current = currentIndexRef.current;
|
|
@@ -41075,20 +41054,20 @@ function useTextCylinder({
|
|
|
41075
41054
|
easing = "cubic-bezier(0.4, 0.0, 0.2, 1)",
|
|
41076
41055
|
direction = "forward"
|
|
41077
41056
|
}) {
|
|
41078
|
-
const [currentIndex, setCurrentIndex] =
|
|
41079
|
-
const [isAnimating, setIsAnimating] =
|
|
41080
|
-
const [isPaused, setIsPaused] =
|
|
41081
|
-
const animationRef =
|
|
41082
|
-
const intervalRef =
|
|
41083
|
-
const next =
|
|
41057
|
+
const [currentIndex, setCurrentIndex] = useState(0);
|
|
41058
|
+
const [isAnimating, setIsAnimating] = useState(false);
|
|
41059
|
+
const [isPaused, setIsPaused] = useState(false);
|
|
41060
|
+
const animationRef = useRef(null);
|
|
41061
|
+
const intervalRef = useRef(null);
|
|
41062
|
+
const next = useCallback(() => {
|
|
41084
41063
|
if (items.length === 0) return;
|
|
41085
41064
|
setCurrentIndex((prev2) => (prev2 + 1) % items.length);
|
|
41086
41065
|
}, [items.length]);
|
|
41087
|
-
const prev =
|
|
41066
|
+
const prev = useCallback(() => {
|
|
41088
41067
|
if (items.length === 0) return;
|
|
41089
41068
|
setCurrentIndex((prev2) => (prev2 - 1 + items.length) % items.length);
|
|
41090
41069
|
}, [items.length]);
|
|
41091
|
-
const goTo =
|
|
41070
|
+
const goTo = useCallback(
|
|
41092
41071
|
(index) => {
|
|
41093
41072
|
if (index < 0 || index >= items.length) {
|
|
41094
41073
|
console.warn(`[useTextCylinder] \xCDndice ${index} fuera de rango (0-${items.length - 1})`);
|
|
@@ -41098,24 +41077,24 @@ function useTextCylinder({
|
|
|
41098
41077
|
},
|
|
41099
41078
|
[items.length]
|
|
41100
41079
|
);
|
|
41101
|
-
const pause =
|
|
41080
|
+
const pause = useCallback(() => {
|
|
41102
41081
|
setIsPaused(true);
|
|
41103
41082
|
if (intervalRef.current) {
|
|
41104
41083
|
clearInterval(intervalRef.current);
|
|
41105
41084
|
intervalRef.current = null;
|
|
41106
41085
|
}
|
|
41107
41086
|
}, []);
|
|
41108
|
-
const resume =
|
|
41087
|
+
const resume = useCallback(() => {
|
|
41109
41088
|
setIsPaused(false);
|
|
41110
41089
|
}, []);
|
|
41111
|
-
const toggle =
|
|
41090
|
+
const toggle = useCallback(() => {
|
|
41112
41091
|
if (isPaused) {
|
|
41113
41092
|
resume();
|
|
41114
41093
|
} else {
|
|
41115
41094
|
pause();
|
|
41116
41095
|
}
|
|
41117
41096
|
}, [isPaused, pause, resume]);
|
|
41118
|
-
|
|
41097
|
+
useEffect(() => {
|
|
41119
41098
|
if (!autoRotate || isPaused || items.length <= 1) {
|
|
41120
41099
|
return;
|
|
41121
41100
|
}
|
|
@@ -41132,7 +41111,7 @@ function useTextCylinder({
|
|
|
41132
41111
|
}
|
|
41133
41112
|
};
|
|
41134
41113
|
}, [autoRotate, isPaused, autoRotateInterval, direction, items.length, next, prev]);
|
|
41135
|
-
|
|
41114
|
+
useEffect(() => {
|
|
41136
41115
|
return () => {
|
|
41137
41116
|
if (animationRef.current) {
|
|
41138
41117
|
try {
|
|
@@ -41193,12 +41172,12 @@ function TextCylinder({
|
|
|
41193
41172
|
easing,
|
|
41194
41173
|
direction
|
|
41195
41174
|
});
|
|
41196
|
-
const cylinderRef =
|
|
41197
|
-
const containerRef =
|
|
41198
|
-
const prevIndexRef =
|
|
41199
|
-
const currentRotationRef =
|
|
41175
|
+
const cylinderRef = useRef(null);
|
|
41176
|
+
const containerRef = useRef(null);
|
|
41177
|
+
const prevIndexRef = useRef(state.currentIndex);
|
|
41178
|
+
const currentRotationRef = useRef(0);
|
|
41200
41179
|
const anglePerFace = 360 / items.length;
|
|
41201
|
-
|
|
41180
|
+
useEffect(() => {
|
|
41202
41181
|
if (!cylinderRef.current) return;
|
|
41203
41182
|
const cylinder = cylinderRef.current;
|
|
41204
41183
|
const targetIndex = state.currentIndex;
|
|
@@ -41263,13 +41242,13 @@ function TextCylinder({
|
|
|
41263
41242
|
onRotationComplete,
|
|
41264
41243
|
animationRef
|
|
41265
41244
|
]);
|
|
41266
|
-
|
|
41245
|
+
useEffect(() => {
|
|
41267
41246
|
if (containerRef.current) {
|
|
41268
41247
|
containerRef.current.style.setProperty("--cylinder-perspective", `${perspective}px`);
|
|
41269
41248
|
}
|
|
41270
41249
|
}, [perspective]);
|
|
41271
41250
|
return {
|
|
41272
|
-
cylinderElement: /* @__PURE__ */
|
|
41251
|
+
cylinderElement: /* @__PURE__ */ jsx(
|
|
41273
41252
|
"div",
|
|
41274
41253
|
{
|
|
41275
41254
|
ref: containerRef,
|
|
@@ -41278,7 +41257,7 @@ function TextCylinder({
|
|
|
41278
41257
|
width: typeof width === "number" ? `${width}px` : width,
|
|
41279
41258
|
height: typeof height === "number" ? `${height}px` : height
|
|
41280
41259
|
},
|
|
41281
|
-
children: /* @__PURE__ */
|
|
41260
|
+
children: /* @__PURE__ */ jsx(
|
|
41282
41261
|
"div",
|
|
41283
41262
|
{
|
|
41284
41263
|
ref: cylinderRef,
|
|
@@ -41301,7 +41280,7 @@ function TextCylinder({
|
|
|
41301
41280
|
} else {
|
|
41302
41281
|
faceOpacity = isActive ? 1 : 0.4;
|
|
41303
41282
|
}
|
|
41304
|
-
return /* @__PURE__ */
|
|
41283
|
+
return /* @__PURE__ */ jsx(
|
|
41305
41284
|
"div",
|
|
41306
41285
|
{
|
|
41307
41286
|
className: cn(text_cylinder_default.face, isVisible ? text_cylinder_default.visible : text_cylinder_default.hidden, faceClassName),
|
|
@@ -41325,10 +41304,10 @@ function TextCylinder({
|
|
|
41325
41304
|
function useTitleHistory({
|
|
41326
41305
|
maxHistory = 10
|
|
41327
41306
|
} = {}) {
|
|
41328
|
-
const [titles, setTitles] =
|
|
41329
|
-
const [currentIndex, setCurrentIndex] =
|
|
41330
|
-
const isFirstRenderRef =
|
|
41331
|
-
const addTitle =
|
|
41307
|
+
const [titles, setTitles] = useState([]);
|
|
41308
|
+
const [currentIndex, setCurrentIndex] = useState(0);
|
|
41309
|
+
const isFirstRenderRef = useRef(true);
|
|
41310
|
+
const addTitle = useCallback(
|
|
41332
41311
|
(newTitle, direction) => {
|
|
41333
41312
|
if (isFirstRenderRef.current) {
|
|
41334
41313
|
setTitles([newTitle]);
|
|
@@ -41366,7 +41345,7 @@ function useTitleHistory({
|
|
|
41366
41345
|
},
|
|
41367
41346
|
[maxHistory]
|
|
41368
41347
|
);
|
|
41369
|
-
const reset =
|
|
41348
|
+
const reset = useCallback(() => {
|
|
41370
41349
|
setTitles([]);
|
|
41371
41350
|
setCurrentIndex(0);
|
|
41372
41351
|
isFirstRenderRef.current = true;
|
|
@@ -41389,12 +41368,12 @@ function TooltipTitleCylinder({
|
|
|
41389
41368
|
const { titles, addTitle, reset } = useTitleHistory({
|
|
41390
41369
|
maxHistory
|
|
41391
41370
|
});
|
|
41392
|
-
|
|
41371
|
+
useEffect(() => {
|
|
41393
41372
|
if (title) {
|
|
41394
41373
|
addTitle(title, direction);
|
|
41395
41374
|
}
|
|
41396
41375
|
}, [title, direction, addTitle]);
|
|
41397
|
-
|
|
41376
|
+
useEffect(() => {
|
|
41398
41377
|
return () => {
|
|
41399
41378
|
reset();
|
|
41400
41379
|
};
|
|
@@ -41417,7 +41396,7 @@ function getChildKey(child, index) {
|
|
|
41417
41396
|
if (child.props?.href) return child.props.href;
|
|
41418
41397
|
return `item-${index}`;
|
|
41419
41398
|
}
|
|
41420
|
-
var SidebarTooltip =
|
|
41399
|
+
var SidebarTooltip = memo(function SidebarTooltip2({
|
|
41421
41400
|
children,
|
|
41422
41401
|
title,
|
|
41423
41402
|
debug = false,
|
|
@@ -41429,35 +41408,35 @@ var SidebarTooltip = React4.memo(function SidebarTooltip2({
|
|
|
41429
41408
|
enableTooltipItemAnimations = true,
|
|
41430
41409
|
enableCylinderTitle = false
|
|
41431
41410
|
}) {
|
|
41432
|
-
const tooltipRef =
|
|
41433
|
-
const contentGridRef =
|
|
41434
|
-
const previousChildrenKeysRef =
|
|
41435
|
-
const previousTitleRef =
|
|
41436
|
-
const isFirstRenderRef =
|
|
41437
|
-
const [isTransitioning, setIsTransitioning] =
|
|
41411
|
+
const tooltipRef = useRef(null);
|
|
41412
|
+
const contentGridRef = useRef(null);
|
|
41413
|
+
const previousChildrenKeysRef = useRef(/* @__PURE__ */ new Set());
|
|
41414
|
+
const previousTitleRef = useRef(void 0);
|
|
41415
|
+
const isFirstRenderRef = useRef(true);
|
|
41416
|
+
const [isTransitioning, setIsTransitioning] = useState(false);
|
|
41438
41417
|
const { getDirection } = useTooltipDirection();
|
|
41439
|
-
const currentChildrenKeys =
|
|
41418
|
+
const currentChildrenKeys = useMemo(() => {
|
|
41440
41419
|
const keys = /* @__PURE__ */ new Set();
|
|
41441
|
-
|
|
41442
|
-
if (
|
|
41420
|
+
Children.forEach(children, (child, index) => {
|
|
41421
|
+
if (isValidElement(child)) {
|
|
41443
41422
|
keys.add(getChildKey(child, index));
|
|
41444
41423
|
}
|
|
41445
41424
|
});
|
|
41446
41425
|
return keys;
|
|
41447
41426
|
}, [children]);
|
|
41448
41427
|
const titleChanged = previousTitleRef.current !== void 0 && previousTitleRef.current !== title;
|
|
41449
|
-
const currentDirection =
|
|
41450
|
-
const firstChild =
|
|
41451
|
-
if (
|
|
41428
|
+
const currentDirection = useMemo(() => {
|
|
41429
|
+
const firstChild = Children.toArray(children)[0];
|
|
41430
|
+
if (isValidElement(firstChild)) {
|
|
41452
41431
|
return getDirection(0);
|
|
41453
41432
|
}
|
|
41454
41433
|
return "down";
|
|
41455
41434
|
}, [children, getDirection]);
|
|
41456
|
-
const processedChildren =
|
|
41435
|
+
const processedChildren = useMemo(() => {
|
|
41457
41436
|
const prevKeys = previousChildrenKeysRef.current;
|
|
41458
41437
|
const isFirstRender = isFirstRenderRef.current;
|
|
41459
|
-
return
|
|
41460
|
-
if (!
|
|
41438
|
+
return Children.map(children, (child, index) => {
|
|
41439
|
+
if (!isValidElement(child)) return child;
|
|
41461
41440
|
const childKey = getChildKey(child, index);
|
|
41462
41441
|
const isNew = !prevKeys.has(childKey);
|
|
41463
41442
|
let animationState = "static";
|
|
@@ -41468,14 +41447,14 @@ var SidebarTooltip = React4.memo(function SidebarTooltip2({
|
|
|
41468
41447
|
animationState = "entering";
|
|
41469
41448
|
}
|
|
41470
41449
|
}
|
|
41471
|
-
return
|
|
41450
|
+
return cloneElement(child, {
|
|
41472
41451
|
key: childKey,
|
|
41473
41452
|
animationOrder: index,
|
|
41474
41453
|
animationState
|
|
41475
41454
|
});
|
|
41476
41455
|
});
|
|
41477
41456
|
}, [children, enableTooltipItemAnimations]);
|
|
41478
|
-
|
|
41457
|
+
useEffect(() => {
|
|
41479
41458
|
previousChildrenKeysRef.current = currentChildrenKeys;
|
|
41480
41459
|
previousTitleRef.current = title;
|
|
41481
41460
|
if (isFirstRenderRef.current) {
|
|
@@ -41488,7 +41467,7 @@ var SidebarTooltip = React4.memo(function SidebarTooltip2({
|
|
|
41488
41467
|
}
|
|
41489
41468
|
}, [currentChildrenKeys, title, titleChanged]);
|
|
41490
41469
|
const liquidGlassData = enableLiquidGlass ? useSidebarLiquidGlass("tooltip", { enableChromaticAberration }) : null;
|
|
41491
|
-
|
|
41470
|
+
useEffect(() => {
|
|
41492
41471
|
if (!tooltipRef.current) return;
|
|
41493
41472
|
const animation = tooltipRef.current.animate(
|
|
41494
41473
|
[
|
|
@@ -41517,10 +41496,10 @@ var SidebarTooltip = React4.memo(function SidebarTooltip2({
|
|
|
41517
41496
|
translate: "0 -50%",
|
|
41518
41497
|
zIndex: 50
|
|
41519
41498
|
};
|
|
41520
|
-
return /* @__PURE__ */
|
|
41521
|
-
enableLiquidGlass && liquidGlassData && /* @__PURE__ */
|
|
41522
|
-
/* @__PURE__ */
|
|
41523
|
-
/* @__PURE__ */
|
|
41499
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
41500
|
+
enableLiquidGlass && liquidGlassData && /* @__PURE__ */ jsx("svg", { className: "absolute inset-0 pointer-events-none w-0 h-0", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsxs("defs", { children: [
|
|
41501
|
+
/* @__PURE__ */ jsxs("filter", { id: "liquid-glass-tooltip", colorInterpolationFilters: "sRGB", children: [
|
|
41502
|
+
/* @__PURE__ */ jsx(
|
|
41524
41503
|
"feImage",
|
|
41525
41504
|
{
|
|
41526
41505
|
x: "0",
|
|
@@ -41531,7 +41510,7 @@ var SidebarTooltip = React4.memo(function SidebarTooltip2({
|
|
|
41531
41510
|
href: liquidGlassData.dataUri
|
|
41532
41511
|
}
|
|
41533
41512
|
),
|
|
41534
|
-
/* @__PURE__ */
|
|
41513
|
+
/* @__PURE__ */ jsx(
|
|
41535
41514
|
"feDisplacementMap",
|
|
41536
41515
|
{
|
|
41537
41516
|
in: "SourceGraphic",
|
|
@@ -41542,7 +41521,7 @@ var SidebarTooltip = React4.memo(function SidebarTooltip2({
|
|
|
41542
41521
|
result: "displaced"
|
|
41543
41522
|
}
|
|
41544
41523
|
),
|
|
41545
|
-
/* @__PURE__ */
|
|
41524
|
+
/* @__PURE__ */ jsx(
|
|
41546
41525
|
"feGaussianBlur",
|
|
41547
41526
|
{
|
|
41548
41527
|
in: "displaced",
|
|
@@ -41550,9 +41529,9 @@ var SidebarTooltip = React4.memo(function SidebarTooltip2({
|
|
|
41550
41529
|
}
|
|
41551
41530
|
)
|
|
41552
41531
|
] }),
|
|
41553
|
-
enableBackdropExtension && /* @__PURE__ */
|
|
41532
|
+
enableBackdropExtension && /* @__PURE__ */ jsx("mask", { id: "tooltip-backdrop-mask", children: /* @__PURE__ */ jsx("rect", { x: "0", y: "0", width: "100%", height: "100%", fill: "white" }) })
|
|
41554
41533
|
] }) }),
|
|
41555
|
-
/* @__PURE__ */
|
|
41534
|
+
/* @__PURE__ */ jsx("style", { dangerouslySetInnerHTML: {
|
|
41556
41535
|
__html: `
|
|
41557
41536
|
@keyframes activatePointerEvents {
|
|
41558
41537
|
to { pointer-events: all; }
|
|
@@ -41584,7 +41563,7 @@ var SidebarTooltip = React4.memo(function SidebarTooltip2({
|
|
|
41584
41563
|
}
|
|
41585
41564
|
`
|
|
41586
41565
|
} }),
|
|
41587
|
-
debug && /* @__PURE__ */
|
|
41566
|
+
debug && /* @__PURE__ */ jsx(
|
|
41588
41567
|
"div",
|
|
41589
41568
|
{
|
|
41590
41569
|
className: "absolute text-[9px] text-pink-300 font-mono bg-black/70 px-1.5 py-0.5 rounded pointer-events-none z-50",
|
|
@@ -41596,7 +41575,7 @@ var SidebarTooltip = React4.memo(function SidebarTooltip2({
|
|
|
41596
41575
|
children: "SAFETY TRIANGLE"
|
|
41597
41576
|
}
|
|
41598
41577
|
),
|
|
41599
|
-
/* @__PURE__ */
|
|
41578
|
+
/* @__PURE__ */ jsxs(
|
|
41600
41579
|
"div",
|
|
41601
41580
|
{
|
|
41602
41581
|
ref: tooltipRef,
|
|
@@ -41604,7 +41583,7 @@ var SidebarTooltip = React4.memo(function SidebarTooltip2({
|
|
|
41604
41583
|
style: anchorStyles,
|
|
41605
41584
|
onMouseLeave,
|
|
41606
41585
|
children: [
|
|
41607
|
-
enableLiquidGlass && enableBackdropExtension && /* @__PURE__ */
|
|
41586
|
+
enableLiquidGlass && enableBackdropExtension && /* @__PURE__ */ jsx(
|
|
41608
41587
|
"div",
|
|
41609
41588
|
{
|
|
41610
41589
|
className: "absolute inset-0 rounded-lg pointer-events-none",
|
|
@@ -41620,7 +41599,7 @@ var SidebarTooltip = React4.memo(function SidebarTooltip2({
|
|
|
41620
41599
|
}
|
|
41621
41600
|
}
|
|
41622
41601
|
),
|
|
41623
|
-
/* @__PURE__ */
|
|
41602
|
+
/* @__PURE__ */ jsxs(
|
|
41624
41603
|
"div",
|
|
41625
41604
|
{
|
|
41626
41605
|
className: cn(
|
|
@@ -41636,8 +41615,8 @@ var SidebarTooltip = React4.memo(function SidebarTooltip2({
|
|
|
41636
41615
|
transform: "translateZ(0)"
|
|
41637
41616
|
} : void 0,
|
|
41638
41617
|
children: [
|
|
41639
|
-
enableLiquidGlass && enableEdgeGlass3D && /* @__PURE__ */
|
|
41640
|
-
/* @__PURE__ */
|
|
41618
|
+
enableLiquidGlass && enableEdgeGlass3D && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
41619
|
+
/* @__PURE__ */ jsx(
|
|
41641
41620
|
"div",
|
|
41642
41621
|
{
|
|
41643
41622
|
className: "absolute inset-0 rounded-lg pointer-events-none",
|
|
@@ -41650,10 +41629,10 @@ var SidebarTooltip = React4.memo(function SidebarTooltip2({
|
|
|
41650
41629
|
willChange: "backdrop-filter",
|
|
41651
41630
|
transform: "translateZ(0)"
|
|
41652
41631
|
},
|
|
41653
|
-
children: debug && /* @__PURE__ */
|
|
41632
|
+
children: debug && /* @__PURE__ */ jsx("div", { className: "absolute top-1 left-1 text-[8px] text-cyan-300 font-mono bg-black/70 px-1 rounded", children: "DEPTH" })
|
|
41654
41633
|
}
|
|
41655
41634
|
),
|
|
41656
|
-
/* @__PURE__ */
|
|
41635
|
+
/* @__PURE__ */ jsx(
|
|
41657
41636
|
"div",
|
|
41658
41637
|
{
|
|
41659
41638
|
className: "absolute inset-0 rounded-lg pointer-events-none",
|
|
@@ -41667,36 +41646,36 @@ var SidebarTooltip = React4.memo(function SidebarTooltip2({
|
|
|
41667
41646
|
willChange: "backdrop-filter",
|
|
41668
41647
|
transform: "translateZ(0)"
|
|
41669
41648
|
},
|
|
41670
|
-
children: debug && /* @__PURE__ */
|
|
41649
|
+
children: debug && /* @__PURE__ */ jsx("div", { className: "absolute top-1 right-1 text-[8px] text-purple-300 font-mono bg-black/70 px-1 rounded", children: "SURFACE" })
|
|
41671
41650
|
}
|
|
41672
41651
|
)
|
|
41673
41652
|
] }),
|
|
41674
|
-
/* @__PURE__ */
|
|
41675
|
-
/* @__PURE__ */
|
|
41676
|
-
/* @__PURE__ */
|
|
41677
|
-
title && /* @__PURE__ */
|
|
41678
|
-
enableCylinderTitle ? /* @__PURE__ */
|
|
41653
|
+
/* @__PURE__ */ jsx("div", { className: "absolute -left-1 -top-6 h-12 w-12 rounded-full bg-primary/10 blur-xl pointer-events-none z-0" }),
|
|
41654
|
+
/* @__PURE__ */ jsx("div", { className: "absolute -right-1 -bottom-6 h-12 w-12 rounded-full bg-primary/10 blur-xl pointer-events-none z-0" }),
|
|
41655
|
+
/* @__PURE__ */ jsxs("div", { className: "sidebar-tooltip-content relative pointer-events-auto", style: { zIndex: 10 }, children: [
|
|
41656
|
+
title && /* @__PURE__ */ jsxs("div", { className: "flex items-center px-4 py-3 font-medium border-b border-border/50 text-foreground relative", children: [
|
|
41657
|
+
enableCylinderTitle ? /* @__PURE__ */ jsx(
|
|
41679
41658
|
TooltipTitleCylinder,
|
|
41680
41659
|
{
|
|
41681
41660
|
title,
|
|
41682
41661
|
direction: currentDirection
|
|
41683
41662
|
}
|
|
41684
|
-
) : /* @__PURE__ */
|
|
41685
|
-
debug && /* @__PURE__ */
|
|
41686
|
-
enableLiquidGlass && /* @__PURE__ */
|
|
41687
|
-
enableEdgeGlass3D && /* @__PURE__ */
|
|
41688
|
-
enableChromaticAberration && /* @__PURE__ */
|
|
41689
|
-
enableTooltipItemAnimations && /* @__PURE__ */
|
|
41690
|
-
enableCylinderTitle && /* @__PURE__ */
|
|
41663
|
+
) : /* @__PURE__ */ jsx("span", { children: title }),
|
|
41664
|
+
debug && /* @__PURE__ */ jsxs("span", { className: "ml-auto text-[8px] text-purple-400 font-mono space-x-1", children: [
|
|
41665
|
+
enableLiquidGlass && /* @__PURE__ */ jsx("span", { children: "GLASS" }),
|
|
41666
|
+
enableEdgeGlass3D && /* @__PURE__ */ jsx("span", { children: "3D" }),
|
|
41667
|
+
enableChromaticAberration && /* @__PURE__ */ jsx("span", { children: "CA" }),
|
|
41668
|
+
enableTooltipItemAnimations && /* @__PURE__ */ jsx("span", { children: "ITEMS" }),
|
|
41669
|
+
enableCylinderTitle && /* @__PURE__ */ jsx("span", { children: "CYLINDER" })
|
|
41691
41670
|
] })
|
|
41692
41671
|
] }),
|
|
41693
|
-
/* @__PURE__ */
|
|
41672
|
+
/* @__PURE__ */ jsx(
|
|
41694
41673
|
"div",
|
|
41695
41674
|
{
|
|
41696
41675
|
ref: contentGridRef,
|
|
41697
41676
|
className: "tooltip-content-grid",
|
|
41698
41677
|
"data-state": "open",
|
|
41699
|
-
children: /* @__PURE__ */
|
|
41678
|
+
children: /* @__PURE__ */ jsx("div", { className: "tooltip-content-inner", children: /* @__PURE__ */ jsx("div", { className: "max-h-[calc(100vh-200px)] overflow-y-auto py-2", children: /* @__PURE__ */ jsx("div", { className: "space-y-0.5 px-2", children: processedChildren }) }) })
|
|
41700
41679
|
}
|
|
41701
41680
|
)
|
|
41702
41681
|
] })
|
|
@@ -41964,7 +41943,7 @@ function generateIndicatorStyles(isVisible) {
|
|
|
41964
41943
|
width: "0.25rem"
|
|
41965
41944
|
};
|
|
41966
41945
|
}
|
|
41967
|
-
var SidebarNav =
|
|
41946
|
+
var SidebarNav = forwardRef(function SidebarNav2({ children, className = "", style, "aria-label": ariaLabel, as, ...props }, forwardedRef) {
|
|
41968
41947
|
const {
|
|
41969
41948
|
defaultOpen,
|
|
41970
41949
|
navRef,
|
|
@@ -41981,13 +41960,13 @@ var SidebarNav = React4.forwardRef(function SidebarNav2({ children, className =
|
|
|
41981
41960
|
debug,
|
|
41982
41961
|
liquidGlass
|
|
41983
41962
|
} = useSidebarContext();
|
|
41984
|
-
const localNavRef =
|
|
41963
|
+
const localNavRef = useRef(null);
|
|
41985
41964
|
const sidebarGlass = useSidebarLiquidGlass("sidebar", {
|
|
41986
41965
|
enableChromaticAberration: liquidGlass.enableChromaticAberration,
|
|
41987
41966
|
...liquidGlass.presetOverrides
|
|
41988
41967
|
// Aplicar overrides configurables desde UI
|
|
41989
41968
|
});
|
|
41990
|
-
|
|
41969
|
+
useEffect(() => {
|
|
41991
41970
|
const node = localNavRef.current;
|
|
41992
41971
|
if (!node) return;
|
|
41993
41972
|
if (navRef && "current" in navRef) {
|
|
@@ -42014,7 +41993,7 @@ var SidebarNav = React4.forwardRef(function SidebarNav2({ children, className =
|
|
|
42014
41993
|
const { getSubContent } = useSubContent();
|
|
42015
41994
|
const subContentData = hoveredItemId ? getSubContent(hoveredItemId) : null;
|
|
42016
41995
|
useSidebarKeyboard();
|
|
42017
|
-
const sidebarStyles =
|
|
41996
|
+
const sidebarStyles = useMemo(
|
|
42018
41997
|
() => generateSidebarStyles({
|
|
42019
41998
|
dimensions: { ...DEFAULT_DIMENSIONS, ...dimensions },
|
|
42020
41999
|
animations: { ...DEFAULT_ANIMATIONS, ...animations2 },
|
|
@@ -42027,20 +42006,20 @@ var SidebarNav = React4.forwardRef(function SidebarNav2({ children, className =
|
|
|
42027
42006
|
);
|
|
42028
42007
|
const Component4 = as || "nav";
|
|
42029
42008
|
const shouldShowToggle = collapseMode === "collapse" || hideBehaviour === "showIndicator";
|
|
42030
|
-
const styleKey =
|
|
42009
|
+
const styleKey = useMemo(
|
|
42031
42010
|
() => `${dimensions.collapsedWidth}-${dimensions.expandedWidth}-${layoutBehaviour}-${JSON.stringify(dimensions.visualStyle || {})}`,
|
|
42032
42011
|
[dimensions, layoutBehaviour, dimensions.visualStyle]
|
|
42033
42012
|
);
|
|
42034
|
-
return /* @__PURE__ */
|
|
42035
|
-
/* @__PURE__ */
|
|
42036
|
-
/* @__PURE__ */
|
|
42013
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
42014
|
+
/* @__PURE__ */ jsx("style", { dangerouslySetInnerHTML: { __html: sidebarStyles } }, styleKey),
|
|
42015
|
+
/* @__PURE__ */ jsxs(
|
|
42037
42016
|
"div",
|
|
42038
42017
|
{
|
|
42039
42018
|
className: `sidebar-wrapper ${SIDEBAR_TAILWIND_CLASSES.wrapper} ${className}`,
|
|
42040
42019
|
style,
|
|
42041
42020
|
"data-layout": layoutBehaviour,
|
|
42042
42021
|
children: [
|
|
42043
|
-
/* @__PURE__ */
|
|
42022
|
+
/* @__PURE__ */ jsx(
|
|
42044
42023
|
"input",
|
|
42045
42024
|
{
|
|
42046
42025
|
type: "checkbox",
|
|
@@ -42050,27 +42029,27 @@ var SidebarNav = React4.forwardRef(function SidebarNav2({ children, className =
|
|
|
42050
42029
|
"aria-label": "Toggle sidebar"
|
|
42051
42030
|
}
|
|
42052
42031
|
),
|
|
42053
|
-
shouldShowToggle && /* @__PURE__ */
|
|
42032
|
+
shouldShowToggle && /* @__PURE__ */ jsx("div", { className: `toggle-button-wrapper ${SIDEBAR_TAILWIND_CLASSES.toggleButtonWrapper}`, children: /* @__PURE__ */ jsx(
|
|
42054
42033
|
"label",
|
|
42055
42034
|
{
|
|
42056
42035
|
htmlFor: toggleId,
|
|
42057
42036
|
className: `${SIDEBAR_TAILWIND_CLASSES.toggleButton} bg-zinc-800 border border-zinc-700 hover:bg-zinc-700 ${collapseMode === "hide" && hideBehaviour === "showIndicator" ? "shadow-lg" : ""}`,
|
|
42058
42037
|
"aria-label": "Toggle sidebar",
|
|
42059
|
-
children: /* @__PURE__ */
|
|
42038
|
+
children: /* @__PURE__ */ jsx(
|
|
42060
42039
|
"svg",
|
|
42061
42040
|
{
|
|
42062
42041
|
className: "toggle-icon w-3 h-3 text-zinc-400",
|
|
42063
42042
|
fill: "none",
|
|
42064
42043
|
stroke: "currentColor",
|
|
42065
42044
|
viewBox: "0 0 24 24",
|
|
42066
|
-
children: collapseMode === "hide" ? /* @__PURE__ */
|
|
42045
|
+
children: collapseMode === "hide" ? /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) : /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" })
|
|
42067
42046
|
}
|
|
42068
42047
|
)
|
|
42069
42048
|
}
|
|
42070
42049
|
) }),
|
|
42071
|
-
debug && liquidGlass.enableLiquidGlassV2 && /* @__PURE__ */
|
|
42072
|
-
liquidGlass.enableLiquidGlassV2 && /* @__PURE__ */
|
|
42073
|
-
/* @__PURE__ */
|
|
42050
|
+
debug && liquidGlass.enableLiquidGlassV2 && /* @__PURE__ */ jsx("div", { className: "absolute top-2 right-2 z-50 px-2 py-1 bg-purple-500/90 text-white text-xs rounded font-mono", children: "\u{1F9EA} Liquid Glass V2 Active" }),
|
|
42051
|
+
liquidGlass.enableLiquidGlassV2 && /* @__PURE__ */ jsx("svg", { className: "absolute inset-0 pointer-events-none w-0 h-0", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs("filter", { id: "sidebar-liquid-glass", colorInterpolationFilters: "sRGB", children: [
|
|
42052
|
+
/* @__PURE__ */ jsx(
|
|
42074
42053
|
"feImage",
|
|
42075
42054
|
{
|
|
42076
42055
|
x: "0",
|
|
@@ -42081,8 +42060,8 @@ var SidebarNav = React4.forwardRef(function SidebarNav2({ children, className =
|
|
|
42081
42060
|
href: sidebarGlass.dataUri
|
|
42082
42061
|
}
|
|
42083
42062
|
),
|
|
42084
|
-
!liquidGlass.enableChromaticAberration && /* @__PURE__ */
|
|
42085
|
-
/* @__PURE__ */
|
|
42063
|
+
!liquidGlass.enableChromaticAberration && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
42064
|
+
/* @__PURE__ */ jsx(
|
|
42086
42065
|
"feDisplacementMap",
|
|
42087
42066
|
{
|
|
42088
42067
|
in: "SourceGraphic",
|
|
@@ -42093,7 +42072,7 @@ var SidebarNav = React4.forwardRef(function SidebarNav2({ children, className =
|
|
|
42093
42072
|
result: "dispRed"
|
|
42094
42073
|
}
|
|
42095
42074
|
),
|
|
42096
|
-
/* @__PURE__ */
|
|
42075
|
+
/* @__PURE__ */ jsx(
|
|
42097
42076
|
"feColorMatrix",
|
|
42098
42077
|
{
|
|
42099
42078
|
in: "dispRed",
|
|
@@ -42102,7 +42081,7 @@ var SidebarNav = React4.forwardRef(function SidebarNav2({ children, className =
|
|
|
42102
42081
|
result: "red"
|
|
42103
42082
|
}
|
|
42104
42083
|
),
|
|
42105
|
-
/* @__PURE__ */
|
|
42084
|
+
/* @__PURE__ */ jsx(
|
|
42106
42085
|
"feDisplacementMap",
|
|
42107
42086
|
{
|
|
42108
42087
|
in: "SourceGraphic",
|
|
@@ -42113,7 +42092,7 @@ var SidebarNav = React4.forwardRef(function SidebarNav2({ children, className =
|
|
|
42113
42092
|
result: "dispGreen"
|
|
42114
42093
|
}
|
|
42115
42094
|
),
|
|
42116
|
-
/* @__PURE__ */
|
|
42095
|
+
/* @__PURE__ */ jsx(
|
|
42117
42096
|
"feColorMatrix",
|
|
42118
42097
|
{
|
|
42119
42098
|
in: "dispGreen",
|
|
@@ -42122,7 +42101,7 @@ var SidebarNav = React4.forwardRef(function SidebarNav2({ children, className =
|
|
|
42122
42101
|
result: "green"
|
|
42123
42102
|
}
|
|
42124
42103
|
),
|
|
42125
|
-
/* @__PURE__ */
|
|
42104
|
+
/* @__PURE__ */ jsx(
|
|
42126
42105
|
"feDisplacementMap",
|
|
42127
42106
|
{
|
|
42128
42107
|
in: "SourceGraphic",
|
|
@@ -42133,7 +42112,7 @@ var SidebarNav = React4.forwardRef(function SidebarNav2({ children, className =
|
|
|
42133
42112
|
result: "dispBlue"
|
|
42134
42113
|
}
|
|
42135
42114
|
),
|
|
42136
|
-
/* @__PURE__ */
|
|
42115
|
+
/* @__PURE__ */ jsx(
|
|
42137
42116
|
"feColorMatrix",
|
|
42138
42117
|
{
|
|
42139
42118
|
in: "dispBlue",
|
|
@@ -42142,9 +42121,9 @@ var SidebarNav = React4.forwardRef(function SidebarNav2({ children, className =
|
|
|
42142
42121
|
result: "blue"
|
|
42143
42122
|
}
|
|
42144
42123
|
),
|
|
42145
|
-
/* @__PURE__ */
|
|
42146
|
-
/* @__PURE__ */
|
|
42147
|
-
/* @__PURE__ */
|
|
42124
|
+
/* @__PURE__ */ jsx("feBlend", { in: "red", in2: "green", mode: "screen", result: "rg" }),
|
|
42125
|
+
/* @__PURE__ */ jsx("feBlend", { in: "rg", in2: "blue", mode: "screen", result: "output" }),
|
|
42126
|
+
/* @__PURE__ */ jsx(
|
|
42148
42127
|
"feGaussianBlur",
|
|
42149
42128
|
{
|
|
42150
42129
|
in: "output",
|
|
@@ -42152,8 +42131,8 @@ var SidebarNav = React4.forwardRef(function SidebarNav2({ children, className =
|
|
|
42152
42131
|
}
|
|
42153
42132
|
)
|
|
42154
42133
|
] }),
|
|
42155
|
-
liquidGlass.enableChromaticAberration && sidebarGlass.chromaticAberrationSVG && /* @__PURE__ */
|
|
42156
|
-
/* @__PURE__ */
|
|
42134
|
+
liquidGlass.enableChromaticAberration && sidebarGlass.chromaticAberrationSVG && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
42135
|
+
/* @__PURE__ */ jsx(
|
|
42157
42136
|
"feDisplacementMap",
|
|
42158
42137
|
{
|
|
42159
42138
|
in: "SourceGraphic",
|
|
@@ -42164,8 +42143,8 @@ var SidebarNav = React4.forwardRef(function SidebarNav2({ children, className =
|
|
|
42164
42143
|
result: "displaced"
|
|
42165
42144
|
}
|
|
42166
42145
|
),
|
|
42167
|
-
/* @__PURE__ */
|
|
42168
|
-
/* @__PURE__ */
|
|
42146
|
+
/* @__PURE__ */ jsx("g", { dangerouslySetInnerHTML: { __html: sidebarGlass.chromaticAberrationSVG } }),
|
|
42147
|
+
/* @__PURE__ */ jsx(
|
|
42169
42148
|
"feGaussianBlur",
|
|
42170
42149
|
{
|
|
42171
42150
|
in: "chromaticAberration",
|
|
@@ -42174,7 +42153,7 @@ var SidebarNav = React4.forwardRef(function SidebarNav2({ children, className =
|
|
|
42174
42153
|
)
|
|
42175
42154
|
] })
|
|
42176
42155
|
] }) }) }),
|
|
42177
|
-
/* @__PURE__ */
|
|
42156
|
+
/* @__PURE__ */ jsxs(
|
|
42178
42157
|
Component4,
|
|
42179
42158
|
{
|
|
42180
42159
|
ref: localNavRef,
|
|
@@ -42188,7 +42167,7 @@ var SidebarNav = React4.forwardRef(function SidebarNav2({ children, className =
|
|
|
42188
42167
|
"aria-label": ariaLabel || SIDEBAR_ARIA_LABELS.mainNavigation,
|
|
42189
42168
|
...props,
|
|
42190
42169
|
children: [
|
|
42191
|
-
liquidGlass.enableLiquidGlassV2 && /* @__PURE__ */
|
|
42170
|
+
liquidGlass.enableLiquidGlassV2 && /* @__PURE__ */ jsx(
|
|
42192
42171
|
"div",
|
|
42193
42172
|
{
|
|
42194
42173
|
className: "absolute inset-0 pointer-events-none",
|
|
@@ -42202,7 +42181,7 @@ var SidebarNav = React4.forwardRef(function SidebarNav2({ children, className =
|
|
|
42202
42181
|
}
|
|
42203
42182
|
}
|
|
42204
42183
|
),
|
|
42205
|
-
/* @__PURE__ */
|
|
42184
|
+
/* @__PURE__ */ jsx(
|
|
42206
42185
|
"div",
|
|
42207
42186
|
{
|
|
42208
42187
|
ref: indicatorRef,
|
|
@@ -42223,8 +42202,8 @@ var SidebarNav = React4.forwardRef(function SidebarNav2({ children, className =
|
|
|
42223
42202
|
const itemRect = currentItemElement.getBoundingClientRect();
|
|
42224
42203
|
const top = itemRect.top - navRect.top;
|
|
42225
42204
|
const height = itemRect.height;
|
|
42226
|
-
return /* @__PURE__ */
|
|
42227
|
-
/* @__PURE__ */
|
|
42205
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
42206
|
+
/* @__PURE__ */ jsx("style", { dangerouslySetInnerHTML: {
|
|
42228
42207
|
__html: `
|
|
42229
42208
|
@keyframes threshold-pulse {
|
|
42230
42209
|
0%, 100% {
|
|
@@ -42238,7 +42217,7 @@ var SidebarNav = React4.forwardRef(function SidebarNav2({ children, className =
|
|
|
42238
42217
|
}
|
|
42239
42218
|
`
|
|
42240
42219
|
} }),
|
|
42241
|
-
/* @__PURE__ */
|
|
42220
|
+
/* @__PURE__ */ jsx(
|
|
42242
42221
|
"div",
|
|
42243
42222
|
{
|
|
42244
42223
|
className: "absolute pointer-events-none",
|
|
@@ -42251,7 +42230,7 @@ var SidebarNav = React4.forwardRef(function SidebarNav2({ children, className =
|
|
|
42251
42230
|
zIndex: 200,
|
|
42252
42231
|
animation: "threshold-pulse 2s ease-in-out infinite"
|
|
42253
42232
|
},
|
|
42254
|
-
children: /* @__PURE__ */
|
|
42233
|
+
children: /* @__PURE__ */ jsxs(
|
|
42255
42234
|
"div",
|
|
42256
42235
|
{
|
|
42257
42236
|
className: "absolute -top-4 right-2 text-[8px] text-amber-300 font-mono bg-black/90 px-1.5 py-0.5 rounded whitespace-nowrap",
|
|
@@ -42264,7 +42243,7 @@ var SidebarNav = React4.forwardRef(function SidebarNav2({ children, className =
|
|
|
42264
42243
|
)
|
|
42265
42244
|
}
|
|
42266
42245
|
),
|
|
42267
|
-
/* @__PURE__ */
|
|
42246
|
+
/* @__PURE__ */ jsx(
|
|
42268
42247
|
"div",
|
|
42269
42248
|
{
|
|
42270
42249
|
className: "absolute pointer-events-none",
|
|
@@ -42277,7 +42256,7 @@ var SidebarNav = React4.forwardRef(function SidebarNav2({ children, className =
|
|
|
42277
42256
|
zIndex: 200,
|
|
42278
42257
|
animation: "threshold-pulse 2s ease-in-out infinite 1s"
|
|
42279
42258
|
},
|
|
42280
|
-
children: /* @__PURE__ */
|
|
42259
|
+
children: /* @__PURE__ */ jsxs(
|
|
42281
42260
|
"div",
|
|
42282
42261
|
{
|
|
42283
42262
|
className: "absolute -bottom-4 right-2 text-[8px] text-red-300 font-mono bg-black/90 px-1.5 py-0.5 rounded whitespace-nowrap",
|
|
@@ -42294,16 +42273,16 @@ var SidebarNav = React4.forwardRef(function SidebarNav2({ children, className =
|
|
|
42294
42273
|
)
|
|
42295
42274
|
] });
|
|
42296
42275
|
})(),
|
|
42297
|
-
enableFluidIndicator && /* @__PURE__ */
|
|
42298
|
-
/* @__PURE__ */
|
|
42276
|
+
enableFluidIndicator && /* @__PURE__ */ jsx(SidebarFluidIndicator, { targetElement: currentItemElement, isVisible }),
|
|
42277
|
+
/* @__PURE__ */ jsx("div", { className: "relative z-10 h-full flex flex-col", children })
|
|
42299
42278
|
]
|
|
42300
42279
|
}
|
|
42301
42280
|
)
|
|
42302
42281
|
]
|
|
42303
42282
|
}
|
|
42304
42283
|
),
|
|
42305
|
-
enableTooltip && /* @__PURE__ */
|
|
42306
|
-
subContentData && /* @__PURE__ */
|
|
42284
|
+
enableTooltip && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
42285
|
+
subContentData && /* @__PURE__ */ jsx(
|
|
42307
42286
|
SidebarTooltip,
|
|
42308
42287
|
{
|
|
42309
42288
|
title: subContentData.title,
|
|
@@ -42318,8 +42297,8 @@ var SidebarNav = React4.forwardRef(function SidebarNav2({ children, className =
|
|
|
42318
42297
|
children: subContentData.subContent
|
|
42319
42298
|
}
|
|
42320
42299
|
),
|
|
42321
|
-
!subContentData && hoveredLabel && /* @__PURE__ */
|
|
42322
|
-
/* @__PURE__ */
|
|
42300
|
+
!subContentData && hoveredLabel && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
42301
|
+
/* @__PURE__ */ jsx("style", { dangerouslySetInnerHTML: {
|
|
42323
42302
|
__html: `
|
|
42324
42303
|
@keyframes activatePointerEventsSimple {
|
|
42325
42304
|
to { pointer-events: all; }
|
|
@@ -42351,7 +42330,7 @@ var SidebarNav = React4.forwardRef(function SidebarNav2({ children, className =
|
|
|
42351
42330
|
}
|
|
42352
42331
|
`
|
|
42353
42332
|
} }),
|
|
42354
|
-
debug && /* @__PURE__ */
|
|
42333
|
+
debug && /* @__PURE__ */ jsx(
|
|
42355
42334
|
"div",
|
|
42356
42335
|
{
|
|
42357
42336
|
className: "absolute text-[9px] text-pink-300 font-mono bg-black/70 px-1.5 py-0.5 rounded pointer-events-none z-50",
|
|
@@ -42367,7 +42346,7 @@ var SidebarNav = React4.forwardRef(function SidebarNav2({ children, className =
|
|
|
42367
42346
|
children: "SAFETY \u25B3"
|
|
42368
42347
|
}
|
|
42369
42348
|
),
|
|
42370
|
-
/* @__PURE__ */
|
|
42349
|
+
/* @__PURE__ */ jsx(
|
|
42371
42350
|
"div",
|
|
42372
42351
|
{
|
|
42373
42352
|
className: "sidebar-tooltip-simple min-w-32",
|
|
@@ -42381,7 +42360,7 @@ var SidebarNav = React4.forwardRef(function SidebarNav2({ children, className =
|
|
|
42381
42360
|
zIndex: 50
|
|
42382
42361
|
},
|
|
42383
42362
|
onMouseLeave: clearHoveredState,
|
|
42384
|
-
children: /* @__PURE__ */
|
|
42363
|
+
children: /* @__PURE__ */ jsx(
|
|
42385
42364
|
"div",
|
|
42386
42365
|
{
|
|
42387
42366
|
className: cn(
|
|
@@ -42391,7 +42370,7 @@ var SidebarNav = React4.forwardRef(function SidebarNav2({ children, className =
|
|
|
42391
42370
|
style: liquidGlass.enableLiquidGlassV2 ? {
|
|
42392
42371
|
background: "rgba(24, 24, 27, 0.2) !important"
|
|
42393
42372
|
} : void 0,
|
|
42394
|
-
children: /* @__PURE__ */
|
|
42373
|
+
children: /* @__PURE__ */ jsx("span", { className: "text-sm text-foreground pointer-events-auto", children: hoveredLabel })
|
|
42395
42374
|
}
|
|
42396
42375
|
)
|
|
42397
42376
|
}
|
|
@@ -42409,25 +42388,25 @@ try {
|
|
|
42409
42388
|
} catch {
|
|
42410
42389
|
}
|
|
42411
42390
|
function SVGChevronIcon({ collapseMode }) {
|
|
42412
|
-
return /* @__PURE__ */
|
|
42391
|
+
return /* @__PURE__ */ jsx("svg", { className: "toggle-icon w-3 h-3 text-zinc-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: collapseMode === "hide" ? /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) : /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }) });
|
|
42413
42392
|
}
|
|
42414
42393
|
function LucideChevronIcon({ collapseMode }) {
|
|
42415
42394
|
if (!ChevronLeft2 || !ChevronRight2) {
|
|
42416
|
-
return /* @__PURE__ */
|
|
42395
|
+
return /* @__PURE__ */ jsx(SVGChevronIcon, { collapseMode });
|
|
42417
42396
|
}
|
|
42418
42397
|
const IconComponent = collapseMode === "hide" ? ChevronRight2 : ChevronLeft2;
|
|
42419
|
-
return /* @__PURE__ */
|
|
42398
|
+
return /* @__PURE__ */ jsx(IconComponent, { className: "toggle-icon w-3 h-3 text-zinc-400" });
|
|
42420
42399
|
}
|
|
42421
42400
|
function DefaultToggleIcon({
|
|
42422
42401
|
collapseMode,
|
|
42423
42402
|
iconLibrary
|
|
42424
42403
|
}) {
|
|
42425
42404
|
if (iconLibrary === "lucide" /* LUCIDE */ && ChevronLeft2 && ChevronRight2) {
|
|
42426
|
-
return /* @__PURE__ */
|
|
42405
|
+
return /* @__PURE__ */ jsx(LucideChevronIcon, { collapseMode });
|
|
42427
42406
|
}
|
|
42428
|
-
return /* @__PURE__ */
|
|
42407
|
+
return /* @__PURE__ */ jsx(SVGChevronIcon, { collapseMode });
|
|
42429
42408
|
}
|
|
42430
|
-
var SidebarToggle =
|
|
42409
|
+
var SidebarToggle = forwardRef(
|
|
42431
42410
|
function SidebarToggle2({ children, iconLibrary, className = "", style, "aria-label": ariaLabel, as, ...props }, ref) {
|
|
42432
42411
|
const { open, setOpen, toggleId, collapseMode } = useSidebarContext();
|
|
42433
42412
|
const isRenderProp = typeof children === "function";
|
|
@@ -42445,8 +42424,8 @@ var SidebarToggle = React4.forwardRef(
|
|
|
42445
42424
|
...props
|
|
42446
42425
|
};
|
|
42447
42426
|
if (!as || as === "label") {
|
|
42448
|
-
return /* @__PURE__ */
|
|
42449
|
-
/* @__PURE__ */
|
|
42427
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
42428
|
+
/* @__PURE__ */ jsx(
|
|
42450
42429
|
"input",
|
|
42451
42430
|
{
|
|
42452
42431
|
type: "checkbox",
|
|
@@ -42457,10 +42436,10 @@ var SidebarToggle = React4.forwardRef(
|
|
|
42457
42436
|
"aria-label": ariaLabel || SIDEBAR_ARIA_LABELS.toggleSidebar
|
|
42458
42437
|
}
|
|
42459
42438
|
),
|
|
42460
|
-
/* @__PURE__ */
|
|
42439
|
+
/* @__PURE__ */ jsx("label", { ref, htmlFor: toggleId, ...commonProps, children: isRenderProp ? children(toggleState) : children ? children : /* @__PURE__ */ jsx(DefaultToggleIcon, { collapseMode, iconLibrary }) })
|
|
42461
42440
|
] });
|
|
42462
42441
|
}
|
|
42463
|
-
return /* @__PURE__ */
|
|
42442
|
+
return /* @__PURE__ */ jsx(
|
|
42464
42443
|
Component4,
|
|
42465
42444
|
{
|
|
42466
42445
|
ref,
|
|
@@ -42468,17 +42447,17 @@ var SidebarToggle = React4.forwardRef(
|
|
|
42468
42447
|
"aria-expanded": open,
|
|
42469
42448
|
role: "button",
|
|
42470
42449
|
...commonProps,
|
|
42471
|
-
children: isRenderProp ? children(toggleState) : children ? children : /* @__PURE__ */
|
|
42450
|
+
children: isRenderProp ? children(toggleState) : children ? children : /* @__PURE__ */ jsx(DefaultToggleIcon, { collapseMode, iconLibrary })
|
|
42472
42451
|
}
|
|
42473
42452
|
);
|
|
42474
42453
|
}
|
|
42475
42454
|
);
|
|
42476
|
-
var SidebarContent =
|
|
42455
|
+
var SidebarContent = forwardRef(function SidebarContent2({ children, className = "", style, as, ...props }, forwardedRef) {
|
|
42477
42456
|
const { contentRef, debug, safeAreas } = useSidebarContext();
|
|
42478
42457
|
const Component4 = as || "div";
|
|
42479
|
-
const localContentRef =
|
|
42458
|
+
const localContentRef = useRef(null);
|
|
42480
42459
|
const contentHeight = 100 - safeAreas.topPercent - safeAreas.bottomPercent;
|
|
42481
|
-
|
|
42460
|
+
useEffect(() => {
|
|
42482
42461
|
const node = localContentRef.current;
|
|
42483
42462
|
if (!node) return;
|
|
42484
42463
|
if (contentRef && "current" in contentRef) {
|
|
@@ -42491,7 +42470,7 @@ var SidebarContent = React4.forwardRef(function SidebarContent2({ children, clas
|
|
|
42491
42470
|
}
|
|
42492
42471
|
}, [contentRef, forwardedRef]);
|
|
42493
42472
|
const debugClasses = debug ? "bg-zinc-900/70 border-y-2 border-dashed border-emerald-400/60 relative" : "";
|
|
42494
|
-
return /* @__PURE__ */
|
|
42473
|
+
return /* @__PURE__ */ jsxs(
|
|
42495
42474
|
Component4,
|
|
42496
42475
|
{
|
|
42497
42476
|
ref: localContentRef,
|
|
@@ -42503,7 +42482,7 @@ var SidebarContent = React4.forwardRef(function SidebarContent2({ children, clas
|
|
|
42503
42482
|
role: SIDEBAR_ARIA_ROLES.list,
|
|
42504
42483
|
...props,
|
|
42505
42484
|
children: [
|
|
42506
|
-
debug && /* @__PURE__ */
|
|
42485
|
+
debug && /* @__PURE__ */ jsxs("span", { className: "absolute top-1 right-1 text-[10px] text-emerald-300 font-mono z-50 bg-black/60 px-1.5 py-0.5 rounded", children: [
|
|
42507
42486
|
"CONTENT ",
|
|
42508
42487
|
contentHeight,
|
|
42509
42488
|
"%"
|
|
@@ -42513,7 +42492,7 @@ var SidebarContent = React4.forwardRef(function SidebarContent2({ children, clas
|
|
|
42513
42492
|
}
|
|
42514
42493
|
);
|
|
42515
42494
|
});
|
|
42516
|
-
var SidebarIndicator =
|
|
42495
|
+
var SidebarIndicator = forwardRef(
|
|
42517
42496
|
function SidebarIndicator2({ children, className = "", style, as, ...props }, forwardedRef) {
|
|
42518
42497
|
const { indicatorRef } = useSidebarContext();
|
|
42519
42498
|
const { isVisible } = useSidebarIndicator();
|
|
@@ -42544,9 +42523,9 @@ var SidebarIndicator = React4.forwardRef(
|
|
|
42544
42523
|
}
|
|
42545
42524
|
};
|
|
42546
42525
|
if (isRenderProp) {
|
|
42547
|
-
return /* @__PURE__ */
|
|
42526
|
+
return /* @__PURE__ */ jsx(Component4, { ref: setRefs, ...props, children: children(indicatorState) });
|
|
42548
42527
|
}
|
|
42549
|
-
return /* @__PURE__ */
|
|
42528
|
+
return /* @__PURE__ */ jsx(
|
|
42550
42529
|
Component4,
|
|
42551
42530
|
{
|
|
42552
42531
|
ref: setRefs,
|
|
@@ -42560,7 +42539,7 @@ var SidebarIndicator = React4.forwardRef(
|
|
|
42560
42539
|
);
|
|
42561
42540
|
}
|
|
42562
42541
|
);
|
|
42563
|
-
var SidebarSafeArea =
|
|
42542
|
+
var SidebarSafeArea = forwardRef(
|
|
42564
42543
|
function SidebarSafeArea2({ children, position, percent: percent2, className = "", style, as, ...props }, ref) {
|
|
42565
42544
|
const context = useSidebarContext();
|
|
42566
42545
|
percent2 ?? (position === "top" ? context.dimensions.collapsedWidth : context.dimensions.collapsedWidth);
|
|
@@ -42572,7 +42551,7 @@ var SidebarSafeArea = React4.forwardRef(
|
|
|
42572
42551
|
...style
|
|
42573
42552
|
};
|
|
42574
42553
|
if (debug) {
|
|
42575
|
-
return /* @__PURE__ */
|
|
42554
|
+
return /* @__PURE__ */ jsx(
|
|
42576
42555
|
Component4,
|
|
42577
42556
|
{
|
|
42578
42557
|
ref,
|
|
@@ -42584,8 +42563,8 @@ var SidebarSafeArea = React4.forwardRef(
|
|
|
42584
42563
|
borderTop: position === "bottom" ? `2px dashed ${SIDEBAR_DEBUG_PATTERNS.borderColor}` : void 0
|
|
42585
42564
|
},
|
|
42586
42565
|
...props,
|
|
42587
|
-
children: /* @__PURE__ */
|
|
42588
|
-
/* @__PURE__ */
|
|
42566
|
+
children: /* @__PURE__ */ jsxs("div", { className: `${SIDEBAR_TAILWIND_CLASSES.safeArea} relative h-full`, children: [
|
|
42567
|
+
/* @__PURE__ */ jsxs("span", { className: "absolute top-2 left-2 text-[10px] text-emerald-300 font-mono z-50 bg-black/60 px-1.5 py-0.5 rounded", children: [
|
|
42589
42568
|
"SAFE ",
|
|
42590
42569
|
actualPercent,
|
|
42591
42570
|
"% (",
|
|
@@ -42597,7 +42576,7 @@ var SidebarSafeArea = React4.forwardRef(
|
|
|
42597
42576
|
}
|
|
42598
42577
|
);
|
|
42599
42578
|
}
|
|
42600
|
-
return /* @__PURE__ */
|
|
42579
|
+
return /* @__PURE__ */ jsx(
|
|
42601
42580
|
Component4,
|
|
42602
42581
|
{
|
|
42603
42582
|
ref,
|
|
@@ -42615,7 +42594,7 @@ function SidebarSubContent({ children, title }) {
|
|
|
42615
42594
|
return null;
|
|
42616
42595
|
}
|
|
42617
42596
|
SidebarSubContent.displayName = "SidebarSubContent";
|
|
42618
|
-
var SidebarItem =
|
|
42597
|
+
var SidebarItem = forwardRef(function SidebarItem2({
|
|
42619
42598
|
href,
|
|
42620
42599
|
icon,
|
|
42621
42600
|
label,
|
|
@@ -42632,14 +42611,14 @@ var SidebarItem = React4.forwardRef(function SidebarItem2({
|
|
|
42632
42611
|
}, forwardedRef) {
|
|
42633
42612
|
const { registerItem, unregisterItem } = useSidebarContext();
|
|
42634
42613
|
const { registerSubContent, unregisterSubContent } = useSubContent();
|
|
42635
|
-
const [isHovered, setIsHovered] =
|
|
42636
|
-
const [isFocused, setIsFocused] =
|
|
42637
|
-
const itemId =
|
|
42614
|
+
const [isHovered, setIsHovered] = useState(false);
|
|
42615
|
+
const [isFocused, setIsFocused] = useState(false);
|
|
42616
|
+
const itemId = useId();
|
|
42638
42617
|
let subContentElement = null;
|
|
42639
42618
|
let otherChildren = null;
|
|
42640
42619
|
if (children && typeof children !== "function") {
|
|
42641
|
-
|
|
42642
|
-
if (
|
|
42620
|
+
Children.forEach(children, (child) => {
|
|
42621
|
+
if (isValidElement(child) && child.type === SidebarSubContent) {
|
|
42643
42622
|
subContentElement = child;
|
|
42644
42623
|
} else {
|
|
42645
42624
|
otherChildren = child;
|
|
@@ -42682,14 +42661,14 @@ var SidebarItem = React4.forwardRef(function SidebarItem2({
|
|
|
42682
42661
|
}
|
|
42683
42662
|
onClick?.();
|
|
42684
42663
|
};
|
|
42685
|
-
|
|
42664
|
+
useEffect(() => {
|
|
42686
42665
|
const element = forwardedRef && "current" in forwardedRef ? forwardedRef.current : null;
|
|
42687
42666
|
if (element) {
|
|
42688
42667
|
registerItem(element);
|
|
42689
42668
|
return () => unregisterItem(element);
|
|
42690
42669
|
}
|
|
42691
42670
|
}, [registerItem, unregisterItem, forwardedRef]);
|
|
42692
|
-
|
|
42671
|
+
useEffect(() => {
|
|
42693
42672
|
if (subContentElement) {
|
|
42694
42673
|
const subContentData = {
|
|
42695
42674
|
itemId,
|
|
@@ -42721,13 +42700,13 @@ var SidebarItem = React4.forwardRef(function SidebarItem2({
|
|
|
42721
42700
|
...props
|
|
42722
42701
|
};
|
|
42723
42702
|
if (isRenderProp) {
|
|
42724
|
-
return /* @__PURE__ */
|
|
42703
|
+
return /* @__PURE__ */ jsx(Component4, { ...baseProps, children: children(itemState) });
|
|
42725
42704
|
}
|
|
42726
42705
|
if (otherChildren) {
|
|
42727
|
-
return /* @__PURE__ */
|
|
42706
|
+
return /* @__PURE__ */ jsx(Component4, { href, ...linkProps, ...baseProps, children: otherChildren });
|
|
42728
42707
|
}
|
|
42729
|
-
return /* @__PURE__ */
|
|
42730
|
-
icon && /* @__PURE__ */
|
|
42708
|
+
return /* @__PURE__ */ jsxs(Component4, { href, ...linkProps, ...baseProps, children: [
|
|
42709
|
+
icon && /* @__PURE__ */ jsx(
|
|
42731
42710
|
"span",
|
|
42732
42711
|
{
|
|
42733
42712
|
className: "sidebar-item-icon-wrapper relative z-[15] inline-flex items-center justify-center p-2 rounded-xl transition-all duration-300",
|
|
@@ -42736,7 +42715,7 @@ var SidebarItem = React4.forwardRef(function SidebarItem2({
|
|
|
42736
42715
|
children: icon
|
|
42737
42716
|
}
|
|
42738
42717
|
),
|
|
42739
|
-
label && /* @__PURE__ */
|
|
42718
|
+
label && /* @__PURE__ */ jsx("span", { className: "sidebar-item-label sr-only", children: label })
|
|
42740
42719
|
] });
|
|
42741
42720
|
});
|
|
42742
42721
|
function SidebarSubLink({
|
|
@@ -42756,7 +42735,7 @@ function SidebarSubLink({
|
|
|
42756
42735
|
...style,
|
|
42757
42736
|
...animationOrder !== void 0 && { "--animation-order": animationOrder }
|
|
42758
42737
|
};
|
|
42759
|
-
return /* @__PURE__ */
|
|
42738
|
+
return /* @__PURE__ */ jsxs(
|
|
42760
42739
|
Component4,
|
|
42761
42740
|
{
|
|
42762
42741
|
href,
|
|
@@ -42771,16 +42750,16 @@ function SidebarSubLink({
|
|
|
42771
42750
|
"data-state": animationState,
|
|
42772
42751
|
"data-animation-order": animationOrder,
|
|
42773
42752
|
children: [
|
|
42774
|
-
icon && /* @__PURE__ */
|
|
42775
|
-
/* @__PURE__ */
|
|
42753
|
+
icon && /* @__PURE__ */ jsx("span", { className: "mr-2 text-muted-foreground", children: icon }),
|
|
42754
|
+
/* @__PURE__ */ jsx("span", { children })
|
|
42776
42755
|
]
|
|
42777
42756
|
}
|
|
42778
42757
|
);
|
|
42779
42758
|
}
|
|
42780
42759
|
SidebarSubLink.displayName = "SidebarSubLink";
|
|
42781
|
-
var LayoutGroupContext =
|
|
42760
|
+
var LayoutGroupContext = createContext({});
|
|
42782
42761
|
function useConstant(init) {
|
|
42783
|
-
const ref =
|
|
42762
|
+
const ref = useRef(null);
|
|
42784
42763
|
if (ref.current === null) {
|
|
42785
42764
|
ref.current = init();
|
|
42786
42765
|
}
|
|
@@ -42791,8 +42770,8 @@ function useConstant(init) {
|
|
|
42791
42770
|
var isBrowser = typeof window !== "undefined";
|
|
42792
42771
|
|
|
42793
42772
|
// node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs
|
|
42794
|
-
var useIsomorphicLayoutEffect = isBrowser ?
|
|
42795
|
-
var PresenceContext = /* @__PURE__ */
|
|
42773
|
+
var useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;
|
|
42774
|
+
var PresenceContext = /* @__PURE__ */ createContext(null);
|
|
42796
42775
|
|
|
42797
42776
|
// node_modules/motion-utils/dist/es/array.mjs
|
|
42798
42777
|
function addUniqueItem(arr, item) {
|
|
@@ -45868,7 +45847,7 @@ var isMotionValue = (value) => Boolean(value && value.getVelocity);
|
|
|
45868
45847
|
// node_modules/motion-dom/dist/es/value/types/utils/find.mjs
|
|
45869
45848
|
var valueTypes = [...dimensionValueTypes, color, complex];
|
|
45870
45849
|
var findValueType = (v) => valueTypes.find(testValueType(v));
|
|
45871
|
-
var MotionConfigContext =
|
|
45850
|
+
var MotionConfigContext = createContext({
|
|
45872
45851
|
transformPagePoint: (p) => p,
|
|
45873
45852
|
isStatic: false,
|
|
45874
45853
|
reducedMotion: "never"
|
|
@@ -45905,11 +45884,11 @@ function composeRefs(...refs) {
|
|
|
45905
45884
|
};
|
|
45906
45885
|
}
|
|
45907
45886
|
function useComposedRefs(...refs) {
|
|
45908
|
-
return
|
|
45887
|
+
return React4.useCallback(composeRefs(...refs), refs);
|
|
45909
45888
|
}
|
|
45910
45889
|
|
|
45911
45890
|
// node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs
|
|
45912
|
-
var PopChildMeasure = class extends
|
|
45891
|
+
var PopChildMeasure = class extends React4.Component {
|
|
45913
45892
|
getSnapshotBeforeUpdate(prevProps) {
|
|
45914
45893
|
const element = this.props.childRef.current;
|
|
45915
45894
|
if (element && prevProps.isPresent && !this.props.isPresent) {
|
|
@@ -45934,18 +45913,18 @@ var PopChildMeasure = class extends React4__namespace.Component {
|
|
|
45934
45913
|
}
|
|
45935
45914
|
};
|
|
45936
45915
|
function PopChild({ children, isPresent, anchorX, root }) {
|
|
45937
|
-
const id3 =
|
|
45938
|
-
const ref =
|
|
45939
|
-
const size =
|
|
45916
|
+
const id3 = useId();
|
|
45917
|
+
const ref = useRef(null);
|
|
45918
|
+
const size = useRef({
|
|
45940
45919
|
width: 0,
|
|
45941
45920
|
height: 0,
|
|
45942
45921
|
top: 0,
|
|
45943
45922
|
left: 0,
|
|
45944
45923
|
right: 0
|
|
45945
45924
|
});
|
|
45946
|
-
const { nonce } =
|
|
45925
|
+
const { nonce } = useContext(MotionConfigContext);
|
|
45947
45926
|
const composedRef = useComposedRefs(ref, children?.ref);
|
|
45948
|
-
|
|
45927
|
+
useInsertionEffect(() => {
|
|
45949
45928
|
const { width, height, top, left, right } = size.current;
|
|
45950
45929
|
if (isPresent || !ref.current || !width || !height)
|
|
45951
45930
|
return;
|
|
@@ -45973,15 +45952,15 @@ function PopChild({ children, isPresent, anchorX, root }) {
|
|
|
45973
45952
|
}
|
|
45974
45953
|
};
|
|
45975
45954
|
}, [isPresent]);
|
|
45976
|
-
return
|
|
45955
|
+
return jsx(PopChildMeasure, { isPresent, childRef: ref, sizeRef: size, children: React4.cloneElement(children, { ref: composedRef }) });
|
|
45977
45956
|
}
|
|
45978
45957
|
|
|
45979
45958
|
// node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs
|
|
45980
45959
|
var PresenceChild = ({ children, initial, isPresent, onExitComplete, custom, presenceAffectsLayout, mode, anchorX, root }) => {
|
|
45981
45960
|
const presenceChildren = useConstant(newChildrenMap);
|
|
45982
|
-
const id3 =
|
|
45961
|
+
const id3 = useId();
|
|
45983
45962
|
let isReusedContext = true;
|
|
45984
|
-
let context =
|
|
45963
|
+
let context = useMemo(() => {
|
|
45985
45964
|
isReusedContext = false;
|
|
45986
45965
|
return {
|
|
45987
45966
|
id: id3,
|
|
@@ -46005,39 +45984,39 @@ var PresenceChild = ({ children, initial, isPresent, onExitComplete, custom, pre
|
|
|
46005
45984
|
if (presenceAffectsLayout && isReusedContext) {
|
|
46006
45985
|
context = { ...context };
|
|
46007
45986
|
}
|
|
46008
|
-
|
|
45987
|
+
useMemo(() => {
|
|
46009
45988
|
presenceChildren.forEach((_, key) => presenceChildren.set(key, false));
|
|
46010
45989
|
}, [isPresent]);
|
|
46011
|
-
|
|
45990
|
+
React4.useEffect(() => {
|
|
46012
45991
|
!isPresent && !presenceChildren.size && onExitComplete && onExitComplete();
|
|
46013
45992
|
}, [isPresent]);
|
|
46014
45993
|
if (mode === "popLayout") {
|
|
46015
|
-
children =
|
|
45994
|
+
children = jsx(PopChild, { isPresent, anchorX, root, children });
|
|
46016
45995
|
}
|
|
46017
|
-
return
|
|
45996
|
+
return jsx(PresenceContext.Provider, { value: context, children });
|
|
46018
45997
|
};
|
|
46019
45998
|
function newChildrenMap() {
|
|
46020
45999
|
return /* @__PURE__ */ new Map();
|
|
46021
46000
|
}
|
|
46022
46001
|
function usePresence(subscribe = true) {
|
|
46023
|
-
const context =
|
|
46002
|
+
const context = useContext(PresenceContext);
|
|
46024
46003
|
if (context === null)
|
|
46025
46004
|
return [true, null];
|
|
46026
46005
|
const { isPresent, onExitComplete, register } = context;
|
|
46027
|
-
const id3 =
|
|
46028
|
-
|
|
46006
|
+
const id3 = useId();
|
|
46007
|
+
useEffect(() => {
|
|
46029
46008
|
if (subscribe) {
|
|
46030
46009
|
return register(id3);
|
|
46031
46010
|
}
|
|
46032
46011
|
}, [subscribe]);
|
|
46033
|
-
const safeToRemove =
|
|
46012
|
+
const safeToRemove = useCallback(() => subscribe && onExitComplete && onExitComplete(id3), [id3, onExitComplete, subscribe]);
|
|
46034
46013
|
return !isPresent && onExitComplete ? [false, safeToRemove] : [true];
|
|
46035
46014
|
}
|
|
46036
46015
|
var getChildKey2 = (child) => child.key || "";
|
|
46037
46016
|
function onlyElements(children) {
|
|
46038
46017
|
const filtered = [];
|
|
46039
|
-
|
|
46040
|
-
if (
|
|
46018
|
+
Children.forEach(children, (child) => {
|
|
46019
|
+
if (isValidElement(child))
|
|
46041
46020
|
filtered.push(child);
|
|
46042
46021
|
});
|
|
46043
46022
|
return filtered;
|
|
@@ -46046,13 +46025,13 @@ function onlyElements(children) {
|
|
|
46046
46025
|
// node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs
|
|
46047
46026
|
var AnimatePresence = ({ children, custom, initial = true, onExitComplete, presenceAffectsLayout = true, mode = "sync", propagate = false, anchorX = "left", root }) => {
|
|
46048
46027
|
const [isParentPresent, safeToRemove] = usePresence(propagate);
|
|
46049
|
-
const presentChildren =
|
|
46028
|
+
const presentChildren = useMemo(() => onlyElements(children), [children]);
|
|
46050
46029
|
const presentKeys = propagate && !isParentPresent ? [] : presentChildren.map(getChildKey2);
|
|
46051
|
-
const isInitialRender =
|
|
46052
|
-
const pendingPresentChildren =
|
|
46030
|
+
const isInitialRender = useRef(true);
|
|
46031
|
+
const pendingPresentChildren = useRef(presentChildren);
|
|
46053
46032
|
const exitComplete = useConstant(() => /* @__PURE__ */ new Map());
|
|
46054
|
-
const [diffedChildren, setDiffedChildren] =
|
|
46055
|
-
const [renderedChildren, setRenderedChildren] =
|
|
46033
|
+
const [diffedChildren, setDiffedChildren] = useState(presentChildren);
|
|
46034
|
+
const [renderedChildren, setRenderedChildren] = useState(presentChildren);
|
|
46056
46035
|
useIsomorphicLayoutEffect(() => {
|
|
46057
46036
|
isInitialRender.current = false;
|
|
46058
46037
|
pendingPresentChildren.current = presentChildren;
|
|
@@ -46088,8 +46067,8 @@ var AnimatePresence = ({ children, custom, initial = true, onExitComplete, prese
|
|
|
46088
46067
|
if (process.env.NODE_ENV !== "production" && mode === "wait" && renderedChildren.length > 1) {
|
|
46089
46068
|
console.warn(`You're attempting to animate multiple children within AnimatePresence, but its mode is set to "wait". This will lead to odd visual behaviour.`);
|
|
46090
46069
|
}
|
|
46091
|
-
const { forceRender } =
|
|
46092
|
-
return
|
|
46070
|
+
const { forceRender } = useContext(LayoutGroupContext);
|
|
46071
|
+
return jsx(Fragment, { children: renderedChildren.map((child) => {
|
|
46093
46072
|
const key = getChildKey2(child);
|
|
46094
46073
|
const isPresent = propagate && !isParentPresent ? false : presentChildren === renderedChildren || presentKeys.includes(key);
|
|
46095
46074
|
const onExit = () => {
|
|
@@ -46110,10 +46089,10 @@ var AnimatePresence = ({ children, custom, initial = true, onExitComplete, prese
|
|
|
46110
46089
|
onExitComplete && onExitComplete();
|
|
46111
46090
|
}
|
|
46112
46091
|
};
|
|
46113
|
-
return
|
|
46092
|
+
return jsx(PresenceChild, { isPresent, initial: !isInitialRender.current || initial ? void 0 : false, custom, presenceAffectsLayout, mode, root, onExitComplete: isPresent ? void 0 : onExit, anchorX, children: child }, key);
|
|
46114
46093
|
}) });
|
|
46115
46094
|
};
|
|
46116
|
-
var LazyContext =
|
|
46095
|
+
var LazyContext = createContext({ strict: false });
|
|
46117
46096
|
|
|
46118
46097
|
// node_modules/framer-motion/dist/es/motion/features/definitions.mjs
|
|
46119
46098
|
var featureProps = {
|
|
@@ -46213,7 +46192,7 @@ function filterProps(props, isDom, forwardMotionProps) {
|
|
|
46213
46192
|
}
|
|
46214
46193
|
return filteredProps;
|
|
46215
46194
|
}
|
|
46216
|
-
var MotionContext = /* @__PURE__ */
|
|
46195
|
+
var MotionContext = /* @__PURE__ */ createContext({});
|
|
46217
46196
|
|
|
46218
46197
|
// node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs
|
|
46219
46198
|
function isAnimationControls(v) {
|
|
@@ -46259,8 +46238,8 @@ function getCurrentTreeVariants(props, context) {
|
|
|
46259
46238
|
|
|
46260
46239
|
// node_modules/framer-motion/dist/es/context/MotionContext/create.mjs
|
|
46261
46240
|
function useCreateMotionContext(props) {
|
|
46262
|
-
const { initial, animate } = getCurrentTreeVariants(props,
|
|
46263
|
-
return
|
|
46241
|
+
const { initial, animate } = getCurrentTreeVariants(props, useContext(MotionContext));
|
|
46242
|
+
return useMemo(() => ({ initial, animate }), [variantLabelsAsDependency(initial), variantLabelsAsDependency(animate)]);
|
|
46264
46243
|
}
|
|
46265
46244
|
function variantLabelsAsDependency(prop) {
|
|
46266
46245
|
return Array.isArray(prop) ? prop.join(" ") : prop;
|
|
@@ -46378,7 +46357,7 @@ function copyRawValuesOnly(target, source, props) {
|
|
|
46378
46357
|
}
|
|
46379
46358
|
}
|
|
46380
46359
|
function useInitialMotionValues({ transformTemplate }, visualState) {
|
|
46381
|
-
return
|
|
46360
|
+
return useMemo(() => {
|
|
46382
46361
|
const state = createHtmlRenderState();
|
|
46383
46362
|
buildHTMLStyles(state, visualState, transformTemplate);
|
|
46384
46363
|
return Object.assign({}, state.vars, state.style);
|
|
@@ -46479,7 +46458,7 @@ var isSVGTag = (tag) => typeof tag === "string" && tag.toLowerCase() === "svg";
|
|
|
46479
46458
|
|
|
46480
46459
|
// node_modules/framer-motion/dist/es/render/svg/use-props.mjs
|
|
46481
46460
|
function useSVGProps(props, visualState, _isStatic, Component4) {
|
|
46482
|
-
const visualProps =
|
|
46461
|
+
const visualProps = useMemo(() => {
|
|
46483
46462
|
const state = createSvgRenderState();
|
|
46484
46463
|
buildSVGAttrs(state, visualState, isSVGTag(Component4), props.transformTemplate, props.style);
|
|
46485
46464
|
return {
|
|
@@ -46556,10 +46535,10 @@ function useRender(Component4, props, ref, { latestValues }, isStatic, forwardMo
|
|
|
46556
46535
|
const useVisualProps = isSVGComponent(Component4) ? useSVGProps : useHTMLProps;
|
|
46557
46536
|
const visualProps = useVisualProps(props, latestValues, isStatic, Component4);
|
|
46558
46537
|
const filteredProps = filterProps(props, typeof Component4 === "string", forwardMotionProps);
|
|
46559
|
-
const elementProps = Component4 !==
|
|
46538
|
+
const elementProps = Component4 !== Fragment$1 ? { ...filteredProps, ...visualProps, ref } : {};
|
|
46560
46539
|
const { children } = props;
|
|
46561
|
-
const renderedChildren =
|
|
46562
|
-
return
|
|
46540
|
+
const renderedChildren = useMemo(() => isMotionValue(children) ? children.get() : children, [children]);
|
|
46541
|
+
return createElement(Component4, {
|
|
46563
46542
|
...elementProps,
|
|
46564
46543
|
children: renderedChildren
|
|
46565
46544
|
});
|
|
@@ -46645,8 +46624,8 @@ function makeLatestValues(props, context, presenceContext, scrapeMotionValues) {
|
|
|
46645
46624
|
return values;
|
|
46646
46625
|
}
|
|
46647
46626
|
var makeUseVisualState = (config) => (props, isStatic) => {
|
|
46648
|
-
const context =
|
|
46649
|
-
const presenceContext =
|
|
46627
|
+
const context = useContext(MotionContext);
|
|
46628
|
+
const presenceContext = useContext(PresenceContext);
|
|
46650
46629
|
const make = () => makeState(config, props, context, presenceContext);
|
|
46651
46630
|
return isStatic ? make() : useConstant(make);
|
|
46652
46631
|
};
|
|
@@ -46697,7 +46676,7 @@ function isRefObject(ref) {
|
|
|
46697
46676
|
|
|
46698
46677
|
// node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs
|
|
46699
46678
|
function useMotionRef(visualState, visualElement, externalRef) {
|
|
46700
|
-
return
|
|
46679
|
+
return useCallback(
|
|
46701
46680
|
(instance) => {
|
|
46702
46681
|
if (instance) {
|
|
46703
46682
|
visualState.onMount && visualState.onMount(instance);
|
|
@@ -46731,15 +46710,15 @@ var camelToDash = (str) => str.replace(/([a-z])([A-Z])/gu, "$1-$2").toLowerCase(
|
|
|
46731
46710
|
// node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs
|
|
46732
46711
|
var optimizedAppearDataId = "framerAppearId";
|
|
46733
46712
|
var optimizedAppearDataAttribute = "data-" + camelToDash(optimizedAppearDataId);
|
|
46734
|
-
var SwitchLayoutGroupContext =
|
|
46713
|
+
var SwitchLayoutGroupContext = createContext({});
|
|
46735
46714
|
|
|
46736
46715
|
// node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs
|
|
46737
46716
|
function useVisualElement(Component4, visualState, props, createVisualElement, ProjectionNodeConstructor) {
|
|
46738
|
-
const { visualElement: parent } =
|
|
46739
|
-
const lazyContext =
|
|
46740
|
-
const presenceContext =
|
|
46741
|
-
const reducedMotionConfig =
|
|
46742
|
-
const visualElementRef =
|
|
46717
|
+
const { visualElement: parent } = useContext(MotionContext);
|
|
46718
|
+
const lazyContext = useContext(LazyContext);
|
|
46719
|
+
const presenceContext = useContext(PresenceContext);
|
|
46720
|
+
const reducedMotionConfig = useContext(MotionConfigContext).reducedMotion;
|
|
46721
|
+
const visualElementRef = useRef(null);
|
|
46743
46722
|
createVisualElement = createVisualElement || lazyContext.renderer;
|
|
46744
46723
|
if (!visualElementRef.current && createVisualElement) {
|
|
46745
46724
|
visualElementRef.current = createVisualElement(Component4, {
|
|
@@ -46752,18 +46731,18 @@ function useVisualElement(Component4, visualState, props, createVisualElement, P
|
|
|
46752
46731
|
});
|
|
46753
46732
|
}
|
|
46754
46733
|
const visualElement = visualElementRef.current;
|
|
46755
|
-
const initialLayoutGroupConfig =
|
|
46734
|
+
const initialLayoutGroupConfig = useContext(SwitchLayoutGroupContext);
|
|
46756
46735
|
if (visualElement && !visualElement.projection && ProjectionNodeConstructor && (visualElement.type === "html" || visualElement.type === "svg")) {
|
|
46757
46736
|
createProjectionNode(visualElementRef.current, props, ProjectionNodeConstructor, initialLayoutGroupConfig);
|
|
46758
46737
|
}
|
|
46759
|
-
const isMounted =
|
|
46760
|
-
|
|
46738
|
+
const isMounted = useRef(false);
|
|
46739
|
+
useInsertionEffect(() => {
|
|
46761
46740
|
if (visualElement && isMounted.current) {
|
|
46762
46741
|
visualElement.update(props, presenceContext);
|
|
46763
46742
|
}
|
|
46764
46743
|
});
|
|
46765
46744
|
const optimisedAppearId = props[optimizedAppearDataAttribute];
|
|
46766
|
-
const wantsHandoff =
|
|
46745
|
+
const wantsHandoff = useRef(Boolean(optimisedAppearId) && !window.MotionHandoffIsComplete?.(optimisedAppearId) && window.MotionHasOptimisedAnimation?.(optimisedAppearId));
|
|
46767
46746
|
useIsomorphicLayoutEffect(() => {
|
|
46768
46747
|
if (!visualElement)
|
|
46769
46748
|
return;
|
|
@@ -46775,7 +46754,7 @@ function useVisualElement(Component4, visualState, props, createVisualElement, P
|
|
|
46775
46754
|
visualElement.animationState.animateChanges();
|
|
46776
46755
|
}
|
|
46777
46756
|
});
|
|
46778
|
-
|
|
46757
|
+
useEffect(() => {
|
|
46779
46758
|
if (!visualElement)
|
|
46780
46759
|
return;
|
|
46781
46760
|
if (!wantsHandoff.current && visualElement.animationState) {
|
|
@@ -46826,7 +46805,7 @@ function createMotionComponent(Component4, { forwardMotionProps = false } = {},
|
|
|
46826
46805
|
function MotionDOMComponent(props, externalRef) {
|
|
46827
46806
|
let MeasureLayout2;
|
|
46828
46807
|
const configAndProps = {
|
|
46829
|
-
...
|
|
46808
|
+
...useContext(MotionConfigContext),
|
|
46830
46809
|
...props,
|
|
46831
46810
|
layoutId: useLayoutId(props)
|
|
46832
46811
|
};
|
|
@@ -46839,19 +46818,19 @@ function createMotionComponent(Component4, { forwardMotionProps = false } = {},
|
|
|
46839
46818
|
MeasureLayout2 = layoutProjection.MeasureLayout;
|
|
46840
46819
|
context.visualElement = useVisualElement(Component4, visualState, configAndProps, createVisualElement, layoutProjection.ProjectionNode);
|
|
46841
46820
|
}
|
|
46842
|
-
return
|
|
46821
|
+
return jsxs(MotionContext.Provider, { value: context, children: [MeasureLayout2 && context.visualElement ? jsx(MeasureLayout2, { visualElement: context.visualElement, ...configAndProps }) : null, useRender(Component4, props, useMotionRef(visualState, context.visualElement, externalRef), visualState, isStatic, forwardMotionProps)] });
|
|
46843
46822
|
}
|
|
46844
46823
|
MotionDOMComponent.displayName = `motion.${typeof Component4 === "string" ? Component4 : `create(${Component4.displayName ?? Component4.name ?? ""})`}`;
|
|
46845
|
-
const ForwardRefMotionComponent =
|
|
46824
|
+
const ForwardRefMotionComponent = forwardRef(MotionDOMComponent);
|
|
46846
46825
|
ForwardRefMotionComponent[motionComponentSymbol] = Component4;
|
|
46847
46826
|
return ForwardRefMotionComponent;
|
|
46848
46827
|
}
|
|
46849
46828
|
function useLayoutId({ layoutId }) {
|
|
46850
|
-
const layoutGroupId =
|
|
46829
|
+
const layoutGroupId = useContext(LayoutGroupContext).id;
|
|
46851
46830
|
return layoutGroupId && layoutId !== void 0 ? layoutGroupId + "-" + layoutId : layoutId;
|
|
46852
46831
|
}
|
|
46853
46832
|
function useStrictMode(configAndProps, preloadedFeatures) {
|
|
46854
|
-
const isStrict =
|
|
46833
|
+
const isStrict = useContext(LazyContext).strict;
|
|
46855
46834
|
if (process.env.NODE_ENV !== "production" && preloadedFeatures && isStrict) {
|
|
46856
46835
|
const strictMessage = "You have rendered a `motion` component within a `LazyMotion` component. This will break tree shaking. Import and render a `m` component instead.";
|
|
46857
46836
|
configAndProps.ignoreStrict ? warning(false, strictMessage, "lazy-strict-mode") : invariant(false, strictMessage, "lazy-strict-mode");
|
|
@@ -47601,7 +47580,7 @@ var SVGVisualElement = class extends DOMVisualElement {
|
|
|
47601
47580
|
// node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs
|
|
47602
47581
|
var createDomVisualElement = (Component4, options) => {
|
|
47603
47582
|
return isSVGComponent(Component4) ? new SVGVisualElement(options) : new HTMLVisualElement(options, {
|
|
47604
|
-
allowProjection: Component4 !==
|
|
47583
|
+
allowProjection: Component4 !== Fragment$1
|
|
47605
47584
|
});
|
|
47606
47585
|
};
|
|
47607
47586
|
|
|
@@ -48978,7 +48957,7 @@ var correctBoxShadow = {
|
|
|
48978
48957
|
|
|
48979
48958
|
// node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs
|
|
48980
48959
|
var hasTakenAnySnapshot = false;
|
|
48981
|
-
var MeasureLayoutWithContext = class extends
|
|
48960
|
+
var MeasureLayoutWithContext = class extends Component$1 {
|
|
48982
48961
|
/**
|
|
48983
48962
|
* This only mounts projection nodes for components that
|
|
48984
48963
|
* need measuring, we might want to do it for all components
|
|
@@ -49066,8 +49045,8 @@ var MeasureLayoutWithContext = class extends React4.Component {
|
|
|
49066
49045
|
};
|
|
49067
49046
|
function MeasureLayout(props) {
|
|
49068
49047
|
const [isPresent, safeToRemove] = usePresence();
|
|
49069
|
-
const layoutGroup =
|
|
49070
|
-
return
|
|
49048
|
+
const layoutGroup = useContext(LayoutGroupContext);
|
|
49049
|
+
return jsx(MeasureLayoutWithContext, { ...props, layoutGroup, switchLayoutGroup: useContext(SwitchLayoutGroupContext), isPresent, safeToRemove });
|
|
49071
49050
|
}
|
|
49072
49051
|
var defaultScaleCorrectors = {
|
|
49073
49052
|
borderRadius: {
|
|
@@ -50751,7 +50730,7 @@ var DEFAULT_GLASS_CONFIG = {
|
|
|
50751
50730
|
borderOpacity: 0.18
|
|
50752
50731
|
};
|
|
50753
50732
|
var falsyToString = (value) => typeof value === "boolean" ? `${value}` : value === 0 ? "0" : value;
|
|
50754
|
-
var cx = clsx
|
|
50733
|
+
var cx = clsx;
|
|
50755
50734
|
var cva = (base, config) => (props) => {
|
|
50756
50735
|
var _config_compoundVariants;
|
|
50757
50736
|
if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);
|
|
@@ -51080,10 +51059,10 @@ function detectIOSVersion() {
|
|
|
51080
51059
|
}
|
|
51081
51060
|
function useIOSSafariFix(config = {}) {
|
|
51082
51061
|
const { enableScrollFix = true, enableKeyboardFix = true, onKeyboardVisibilityChange, debug = false } = config;
|
|
51083
|
-
const iosInfoRef =
|
|
51084
|
-
const isKeyboardVisibleRef =
|
|
51085
|
-
const initialViewportHeightRef =
|
|
51086
|
-
const log =
|
|
51062
|
+
const iosInfoRef = useRef(detectIOSVersion());
|
|
51063
|
+
const isKeyboardVisibleRef = useRef(false);
|
|
51064
|
+
const initialViewportHeightRef = useRef(null);
|
|
51065
|
+
const log = useCallback(
|
|
51087
51066
|
(message, ...args) => {
|
|
51088
51067
|
if (debug) {
|
|
51089
51068
|
console.log(`[iOS Safari Fix] ${message}`, ...args);
|
|
@@ -51091,7 +51070,7 @@ function useIOSSafariFix(config = {}) {
|
|
|
51091
51070
|
},
|
|
51092
51071
|
[debug]
|
|
51093
51072
|
);
|
|
51094
|
-
|
|
51073
|
+
useEffect(() => {
|
|
51095
51074
|
const iosInfo = iosInfoRef.current;
|
|
51096
51075
|
if (!iosInfo.hasViewportBugs || !enableScrollFix) {
|
|
51097
51076
|
return;
|
|
@@ -51105,7 +51084,7 @@ function useIOSSafariFix(config = {}) {
|
|
|
51105
51084
|
document.documentElement.classList.remove("ios-safari-fix", "ios-26-fix");
|
|
51106
51085
|
};
|
|
51107
51086
|
}, [enableScrollFix, log]);
|
|
51108
|
-
|
|
51087
|
+
useEffect(() => {
|
|
51109
51088
|
const iosInfo = iosInfoRef.current;
|
|
51110
51089
|
if (!iosInfo.isIOS || !enableKeyboardFix) {
|
|
51111
51090
|
return;
|
|
@@ -51181,7 +51160,7 @@ function useIOSSafariFix(config = {}) {
|
|
|
51181
51160
|
};
|
|
51182
51161
|
}
|
|
51183
51162
|
function useIOSFixedReset(elementRef) {
|
|
51184
|
-
const forceReset =
|
|
51163
|
+
const forceReset = useCallback(() => {
|
|
51185
51164
|
const element = elementRef.current;
|
|
51186
51165
|
if (!element) return;
|
|
51187
51166
|
element.style.transform = "translateZ(0) translateY(0.01px)";
|
|
@@ -51195,15 +51174,15 @@ function useIOSFixedReset(elementRef) {
|
|
|
51195
51174
|
}, [elementRef]);
|
|
51196
51175
|
return { forceReset };
|
|
51197
51176
|
}
|
|
51198
|
-
var NavContext =
|
|
51177
|
+
var NavContext = React4.createContext(null);
|
|
51199
51178
|
function useNavContext() {
|
|
51200
|
-
const context =
|
|
51179
|
+
const context = React4.useContext(NavContext);
|
|
51201
51180
|
if (!context) {
|
|
51202
51181
|
throw new Error("MobileBottomNav compound components must be used within MobileBottomNav.Root");
|
|
51203
51182
|
}
|
|
51204
51183
|
return context;
|
|
51205
51184
|
}
|
|
51206
|
-
var Root =
|
|
51185
|
+
var Root = React4.forwardRef(
|
|
51207
51186
|
({
|
|
51208
51187
|
children,
|
|
51209
51188
|
className,
|
|
@@ -51221,20 +51200,20 @@ var Root = React4__namespace.forwardRef(
|
|
|
51221
51200
|
"data-testid": testId,
|
|
51222
51201
|
...props
|
|
51223
51202
|
}, ref) => {
|
|
51224
|
-
const internalRef =
|
|
51203
|
+
const internalRef = React4.useRef(null);
|
|
51225
51204
|
const combinedRef = ref || internalRef;
|
|
51226
51205
|
const { iosInfo } = useIOSSafariFix({
|
|
51227
51206
|
enableScrollFix: true,
|
|
51228
51207
|
enableKeyboardFix: true
|
|
51229
51208
|
});
|
|
51230
51209
|
const { forceReset } = useIOSFixedReset(combinedRef);
|
|
51231
|
-
|
|
51210
|
+
React4.useEffect(() => {
|
|
51232
51211
|
if (visible && iosInfo.hasViewportBugs) {
|
|
51233
51212
|
const timer = setTimeout(forceReset, 50);
|
|
51234
51213
|
return () => clearTimeout(timer);
|
|
51235
51214
|
}
|
|
51236
51215
|
}, [visible, iosInfo.hasViewportBugs, forceReset]);
|
|
51237
|
-
const contextValue =
|
|
51216
|
+
const contextValue = React4.useMemo(
|
|
51238
51217
|
() => ({
|
|
51239
51218
|
variant,
|
|
51240
51219
|
size,
|
|
@@ -51250,7 +51229,7 @@ var Root = React4__namespace.forwardRef(
|
|
|
51250
51229
|
"--glass-border-opacity": glassConfig.borderOpacity ?? DEFAULT_GLASS_CONFIG.borderOpacity
|
|
51251
51230
|
} : {};
|
|
51252
51231
|
const roundedValue = typeof rounded === "number" ? void 0 : rounded;
|
|
51253
|
-
return /* @__PURE__ */
|
|
51232
|
+
return /* @__PURE__ */ jsx(NavContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(AnimatePresence, { children: visible && /* @__PURE__ */ jsx(
|
|
51254
51233
|
motion.nav,
|
|
51255
51234
|
{
|
|
51256
51235
|
ref: combinedRef,
|
|
@@ -51285,11 +51264,11 @@ var Root = React4__namespace.forwardRef(
|
|
|
51285
51264
|
}
|
|
51286
51265
|
);
|
|
51287
51266
|
Root.displayName = "MobileBottomNav.Root";
|
|
51288
|
-
var NavList =
|
|
51267
|
+
var NavList = React4.forwardRef(
|
|
51289
51268
|
({ children, className, style, gap, justify = "around", "data-testid": testId, ...props }, ref) => {
|
|
51290
51269
|
const { size, gap: contextGap } = useNavContext();
|
|
51291
51270
|
const effectiveGap = gap ?? contextGap;
|
|
51292
|
-
return /* @__PURE__ */
|
|
51271
|
+
return /* @__PURE__ */ jsx(
|
|
51293
51272
|
"ul",
|
|
51294
51273
|
{
|
|
51295
51274
|
ref,
|
|
@@ -51307,7 +51286,7 @@ var NavList = React4__namespace.forwardRef(
|
|
|
51307
51286
|
}
|
|
51308
51287
|
);
|
|
51309
51288
|
NavList.displayName = "MobileBottomNav.NavList";
|
|
51310
|
-
var NavItem =
|
|
51289
|
+
var NavItem = React4.forwardRef(
|
|
51311
51290
|
({
|
|
51312
51291
|
icon,
|
|
51313
51292
|
label,
|
|
@@ -51345,8 +51324,8 @@ var NavItem = React4__namespace.forwardRef(
|
|
|
51345
51324
|
}
|
|
51346
51325
|
};
|
|
51347
51326
|
};
|
|
51348
|
-
const content = /* @__PURE__ */
|
|
51349
|
-
/* @__PURE__ */
|
|
51327
|
+
const content = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
51328
|
+
/* @__PURE__ */ jsxs(
|
|
51350
51329
|
"span",
|
|
51351
51330
|
{
|
|
51352
51331
|
className: cn(iconVariants({ size: iconSize })),
|
|
@@ -51356,7 +51335,7 @@ var NavItem = React4__namespace.forwardRef(
|
|
|
51356
51335
|
},
|
|
51357
51336
|
children: [
|
|
51358
51337
|
icon,
|
|
51359
|
-
badge && /* @__PURE__ */
|
|
51338
|
+
badge && /* @__PURE__ */ jsx(
|
|
51360
51339
|
"span",
|
|
51361
51340
|
{
|
|
51362
51341
|
className: cn(
|
|
@@ -51370,7 +51349,7 @@ var NavItem = React4__namespace.forwardRef(
|
|
|
51370
51349
|
]
|
|
51371
51350
|
}
|
|
51372
51351
|
),
|
|
51373
|
-
/* @__PURE__ */
|
|
51352
|
+
/* @__PURE__ */ jsx("span", { className: cn(labelVariants({ position: labelPosition, size })), children: label })
|
|
51374
51353
|
] });
|
|
51375
51354
|
const commonProps = {
|
|
51376
51355
|
className: cn(
|
|
@@ -51410,7 +51389,7 @@ var NavItem = React4__namespace.forwardRef(
|
|
|
51410
51389
|
onDragEnd: void 0
|
|
51411
51390
|
};
|
|
51412
51391
|
if (href && !isDisabled) {
|
|
51413
|
-
return /* @__PURE__ */
|
|
51392
|
+
return /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
|
|
51414
51393
|
motion.a,
|
|
51415
51394
|
{
|
|
51416
51395
|
ref,
|
|
@@ -51419,12 +51398,12 @@ var NavItem = React4__namespace.forwardRef(
|
|
|
51419
51398
|
}
|
|
51420
51399
|
) });
|
|
51421
51400
|
}
|
|
51422
|
-
return /* @__PURE__ */
|
|
51401
|
+
return /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(motion.button, { ref, ...motionButtonProps, children: content }) });
|
|
51423
51402
|
}
|
|
51424
51403
|
);
|
|
51425
51404
|
NavItem.displayName = "MobileBottomNav.NavItem";
|
|
51426
51405
|
var Spacer = ({ className, size = "md" /* MEDIUM */ }) => {
|
|
51427
|
-
return /* @__PURE__ */
|
|
51406
|
+
return /* @__PURE__ */ jsx("div", { className: cn(spacerVariants({ size }), className), "aria-hidden": "true" });
|
|
51428
51407
|
};
|
|
51429
51408
|
Spacer.displayName = "MobileBottomNav.Spacer";
|
|
51430
51409
|
var MobileBottomNav = {
|
|
@@ -53096,72 +53075,6 @@ lucide-react/dist/esm/lucide-react.js:
|
|
|
53096
53075
|
*)
|
|
53097
53076
|
*/
|
|
53098
53077
|
|
|
53099
|
-
|
|
53100
|
-
exports.BlurIntensity = BlurIntensity;
|
|
53101
|
-
exports.DEFAULT_ANIMATIONS = DEFAULT_ANIMATIONS;
|
|
53102
|
-
exports.DEFAULT_ANIMATION_CONFIG = DEFAULT_ANIMATION_CONFIG;
|
|
53103
|
-
exports.DEFAULT_CONFIG = DEFAULT_CONFIG;
|
|
53104
|
-
exports.DEFAULT_DIMENSIONS = DEFAULT_DIMENSIONS;
|
|
53105
|
-
exports.DEFAULT_GLASS_CONFIG = DEFAULT_GLASS_CONFIG;
|
|
53106
|
-
exports.DEFAULT_SAFE_AREAS = DEFAULT_SAFE_AREAS;
|
|
53107
|
-
exports.DEFAULT_SPRING_CONFIG = DEFAULT_SPRING_CONFIG;
|
|
53108
|
-
exports.DEFAULT_TWEEN_CONFIG = DEFAULT_TWEEN_CONFIG;
|
|
53109
|
-
exports.DEFAULT_VISUAL_STYLE = DEFAULT_VISUAL_STYLE;
|
|
53110
|
-
exports.IconSize = IconSize;
|
|
53111
|
-
exports.LabelPosition = LabelPosition;
|
|
53112
|
-
exports.MobileBottomNav = MobileBottomNav;
|
|
53113
|
-
exports.NavItemState = NavItemState;
|
|
53114
|
-
exports.NavSize = NavSize;
|
|
53115
|
-
exports.NavVariant = NavVariant;
|
|
53116
|
-
exports.SIDEBAR_ARIA_LABELS = SIDEBAR_ARIA_LABELS;
|
|
53117
|
-
exports.SIDEBAR_ARIA_ROLES = SIDEBAR_ARIA_ROLES;
|
|
53118
|
-
exports.SIDEBAR_BREAKPOINTS = SIDEBAR_BREAKPOINTS;
|
|
53119
|
-
exports.SIDEBAR_CSS_VARIABLES = SIDEBAR_CSS_VARIABLES;
|
|
53120
|
-
exports.SIDEBAR_DATA_ATTRIBUTES = SIDEBAR_DATA_ATTRIBUTES;
|
|
53121
|
-
exports.SIDEBAR_DEBUG_PATTERNS = SIDEBAR_DEBUG_PATTERNS;
|
|
53122
|
-
exports.SIDEBAR_KEYBOARD_KEYS = SIDEBAR_KEYBOARD_KEYS;
|
|
53123
|
-
exports.SIDEBAR_LIMITS = SIDEBAR_LIMITS;
|
|
53124
|
-
exports.SIDEBAR_TAILWIND_CLASSES = SIDEBAR_TAILWIND_CLASSES;
|
|
53125
|
-
exports.SIDEBAR_VISUAL_PRESETS = SIDEBAR_VISUAL_PRESETS;
|
|
53126
|
-
exports.Sidebar = Sidebar;
|
|
53127
|
-
exports.SidebarBorderRadius = SidebarBorderRadius;
|
|
53128
|
-
exports.SidebarCollapseMode = SidebarCollapseMode;
|
|
53129
|
-
exports.SidebarContent = SidebarContent;
|
|
53130
|
-
exports.SidebarFluidIndicator = SidebarFluidIndicator;
|
|
53131
|
-
exports.SidebarHideBehaviour = SidebarHideBehaviour;
|
|
53132
|
-
exports.SidebarHideOpensBehavior = SidebarHideOpensBehavior;
|
|
53133
|
-
exports.SidebarIconLibrary = SidebarIconLibrary;
|
|
53134
|
-
exports.SidebarIndicator = SidebarIndicator;
|
|
53135
|
-
exports.SidebarItem = SidebarItem;
|
|
53136
|
-
exports.SidebarLayoutBehaviour = SidebarLayoutBehaviour;
|
|
53137
|
-
exports.SidebarNav = SidebarNav;
|
|
53138
|
-
exports.SidebarSafeArea = SidebarSafeArea;
|
|
53139
|
-
exports.SidebarSafeAreaPosition = SidebarSafeAreaPosition;
|
|
53140
|
-
exports.SidebarSubContent = SidebarSubContent;
|
|
53141
|
-
exports.SidebarSubLink = SidebarSubLink;
|
|
53142
|
-
exports.SidebarTimingFunction = SidebarTimingFunction;
|
|
53143
|
-
exports.SidebarToggle = SidebarToggle;
|
|
53144
|
-
exports.SidebarTooltip = SidebarTooltip;
|
|
53145
|
-
exports.SidebarTransitionDuration = SidebarTransitionDuration;
|
|
53146
|
-
exports.SidebarWidth = SidebarWidth;
|
|
53147
|
-
exports.SidebarZIndex = SidebarZIndex;
|
|
53148
|
-
exports.ZIndexLevel = ZIndexLevel;
|
|
53149
|
-
exports.badgeVariants = badgeVariants;
|
|
53150
|
-
exports.cn = cn;
|
|
53151
|
-
exports.detectIOSVersion = detectIOSVersion;
|
|
53152
|
-
exports.generateIndicatorStyles = generateIndicatorStyles;
|
|
53153
|
-
exports.generateSidebarStyles = generateSidebarStyles;
|
|
53154
|
-
exports.iconVariants = iconVariants;
|
|
53155
|
-
exports.labelVariants = labelVariants;
|
|
53156
|
-
exports.navItemVariants = navItemVariants;
|
|
53157
|
-
exports.navListVariants = navListVariants;
|
|
53158
|
-
exports.rootVariants = rootVariants;
|
|
53159
|
-
exports.spacerVariants = spacerVariants;
|
|
53160
|
-
exports.useIOSFixedReset = useIOSFixedReset;
|
|
53161
|
-
exports.useIOSSafariFix = useIOSSafariFix;
|
|
53162
|
-
exports.useSidebarContext = useSidebarContext;
|
|
53163
|
-
exports.useSidebarIndicator = useSidebarIndicator;
|
|
53164
|
-
exports.useSidebarKeyboard = useSidebarKeyboard;
|
|
53165
|
-
exports.useSubContent = useSubContent;
|
|
53078
|
+
export { AnimationType, BlurIntensity, DEFAULT_ANIMATIONS, DEFAULT_ANIMATION_CONFIG, DEFAULT_CONFIG, DEFAULT_DIMENSIONS, DEFAULT_GLASS_CONFIG, DEFAULT_SAFE_AREAS, DEFAULT_SPRING_CONFIG, DEFAULT_TWEEN_CONFIG, DEFAULT_VISUAL_STYLE, IconSize, LabelPosition, MobileBottomNav, NavItemState, NavSize, NavVariant, SIDEBAR_ARIA_LABELS, SIDEBAR_ARIA_ROLES, SIDEBAR_BREAKPOINTS, SIDEBAR_CSS_VARIABLES, SIDEBAR_DATA_ATTRIBUTES, SIDEBAR_DEBUG_PATTERNS, SIDEBAR_KEYBOARD_KEYS, SIDEBAR_LIMITS, SIDEBAR_TAILWIND_CLASSES, SIDEBAR_VISUAL_PRESETS, Sidebar, SidebarBorderRadius, SidebarCollapseMode, SidebarContent, SidebarFluidIndicator, SidebarHideBehaviour, SidebarHideOpensBehavior, SidebarIconLibrary, SidebarIndicator, SidebarItem, SidebarLayoutBehaviour, SidebarNav, SidebarSafeArea, SidebarSafeAreaPosition, SidebarSubContent, SidebarSubLink, SidebarTimingFunction, SidebarToggle, SidebarTooltip, SidebarTransitionDuration, SidebarWidth, SidebarZIndex, ZIndexLevel, badgeVariants, cn, detectIOSVersion, generateIndicatorStyles, generateSidebarStyles, iconVariants, labelVariants, navItemVariants, navListVariants, rootVariants, spacerVariants, useIOSFixedReset, useIOSSafariFix, useSidebarContext, useSidebarIndicator, useSidebarKeyboard, useSubContent };
|
|
53166
53079
|
//# sourceMappingURL=index.js.map
|
|
53167
53080
|
//# sourceMappingURL=index.js.map
|