@moontra/moonui-pro 3.4.1 → 3.4.3
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/cdn/index.global.js +210 -221
- package/dist/cdn/index.global.js.map +1 -1
- package/dist/index.d.ts +7 -124
- package/dist/index.mjs +397 -640
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -88297,7 +88297,7 @@ var GridDistortionInternal = ({
|
|
|
88297
88297
|
if (!canvas || !container)
|
|
88298
88298
|
return;
|
|
88299
88299
|
const rect = container.getBoundingClientRect();
|
|
88300
|
-
const dpr = window.devicePixelRatio || 1;
|
|
88300
|
+
const dpr = typeof window !== "undefined" ? window.devicePixelRatio || 1 : 1;
|
|
88301
88301
|
canvas.style.width = "100%";
|
|
88302
88302
|
canvas.style.height = "100%";
|
|
88303
88303
|
canvas.width = rect.width * dpr;
|
|
@@ -89525,6 +89525,8 @@ var LiquidBackgroundInternal = ({
|
|
|
89525
89525
|
}) => {
|
|
89526
89526
|
const canvasRef = useRef(null);
|
|
89527
89527
|
const containerRef = useRef(null);
|
|
89528
|
+
const offscreenCanvasRef = useRef(null);
|
|
89529
|
+
const offscreenCtxRef = useRef(null);
|
|
89528
89530
|
const animationRef = useRef(void 0);
|
|
89529
89531
|
const blobsRef = useRef([]);
|
|
89530
89532
|
const mouseRef = useRef({ x: 0, y: 0, vx: 0, vy: 0 });
|
|
@@ -89533,6 +89535,12 @@ var LiquidBackgroundInternal = ({
|
|
|
89533
89535
|
const frameInterval = 1e3 / fps;
|
|
89534
89536
|
const [isVisible, setIsVisible] = useState(true);
|
|
89535
89537
|
const observerTimeoutRef = useRef(null);
|
|
89538
|
+
const filterString = useMemo(() => {
|
|
89539
|
+
if (blur2 > 0 && contrast > 0) {
|
|
89540
|
+
return `blur(${blur2}px) contrast(${contrast})`;
|
|
89541
|
+
}
|
|
89542
|
+
return "none";
|
|
89543
|
+
}, [blur2, contrast]);
|
|
89536
89544
|
const initializeBlobs = useCallback(() => {
|
|
89537
89545
|
const canvas = canvasRef.current;
|
|
89538
89546
|
if (!canvas)
|
|
@@ -89637,9 +89645,7 @@ var LiquidBackgroundInternal = ({
|
|
|
89637
89645
|
}, [animationStyle, speed, viscosity, tension, sizeRange, interactive, mouseRadius]);
|
|
89638
89646
|
const drawLiquid = useCallback((ctx, canvas) => {
|
|
89639
89647
|
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
|
89640
|
-
|
|
89641
|
-
ctx.filter = `blur(${blur2}px) contrast(${contrast})`;
|
|
89642
|
-
}
|
|
89648
|
+
ctx.filter = filterString;
|
|
89643
89649
|
ctx.globalAlpha = opacity;
|
|
89644
89650
|
const blobs = blobsRef.current;
|
|
89645
89651
|
blobs.forEach((blob) => {
|
|
@@ -89685,14 +89691,17 @@ var LiquidBackgroundInternal = ({
|
|
|
89685
89691
|
ctx.fillRect(0, 0, canvas.width, canvas.height);
|
|
89686
89692
|
ctx.globalCompositeOperation = "source-over";
|
|
89687
89693
|
}
|
|
89688
|
-
}, [
|
|
89694
|
+
}, [filterString, opacity, glow, glowIntensity, gradientOverlay]);
|
|
89689
89695
|
const animate4 = useCallback((currentTime) => {
|
|
89690
89696
|
const canvas = canvasRef.current;
|
|
89691
|
-
|
|
89697
|
+
const offscreenCanvas = offscreenCanvasRef.current;
|
|
89698
|
+
const offscreenCtx = offscreenCtxRef.current;
|
|
89699
|
+
if (!canvas || !offscreenCanvas || !offscreenCtx)
|
|
89692
89700
|
return;
|
|
89693
89701
|
const ctx = canvas.getContext("2d", {
|
|
89694
89702
|
alpha: true,
|
|
89695
|
-
desynchronized: true
|
|
89703
|
+
desynchronized: true,
|
|
89704
|
+
willReadFrequently: false
|
|
89696
89705
|
});
|
|
89697
89706
|
if (!ctx)
|
|
89698
89707
|
return;
|
|
@@ -89704,18 +89713,23 @@ var LiquidBackgroundInternal = ({
|
|
|
89704
89713
|
lastFrameTimeRef.current = currentTime;
|
|
89705
89714
|
if (!pauseWhenHidden || isVisible) {
|
|
89706
89715
|
timeRef.current += 1;
|
|
89707
|
-
updateBlobs(
|
|
89708
|
-
drawLiquid(
|
|
89716
|
+
updateBlobs(offscreenCanvas);
|
|
89717
|
+
drawLiquid(offscreenCtx, offscreenCanvas);
|
|
89718
|
+
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
|
89719
|
+
ctx.drawImage(offscreenCanvas, 0, 0);
|
|
89709
89720
|
}
|
|
89710
89721
|
animationRef.current = requestAnimationFrame(animate4);
|
|
89711
89722
|
}, [frameInterval, updateBlobs, drawLiquid, pauseWhenHidden, isVisible]);
|
|
89712
89723
|
const handleResize = useCallback(() => {
|
|
89713
89724
|
const canvas = canvasRef.current;
|
|
89714
|
-
|
|
89725
|
+
const offscreenCanvas = offscreenCanvasRef.current;
|
|
89726
|
+
if (!canvas || !offscreenCanvas)
|
|
89715
89727
|
return;
|
|
89716
89728
|
const rect = canvas.getBoundingClientRect();
|
|
89717
89729
|
canvas.width = rect.width;
|
|
89718
89730
|
canvas.height = rect.height;
|
|
89731
|
+
offscreenCanvas.width = rect.width;
|
|
89732
|
+
offscreenCanvas.height = rect.height;
|
|
89719
89733
|
initializeBlobs();
|
|
89720
89734
|
}, [initializeBlobs]);
|
|
89721
89735
|
const handleMouseMove2 = useCallback((e) => {
|
|
@@ -89734,9 +89748,22 @@ var LiquidBackgroundInternal = ({
|
|
|
89734
89748
|
const canvas = canvasRef.current;
|
|
89735
89749
|
if (!canvas)
|
|
89736
89750
|
return;
|
|
89751
|
+
timeRef.current = Math.random() * 100;
|
|
89752
|
+
const offscreenCanvas = document.createElement("canvas");
|
|
89753
|
+
const offscreenCtx = offscreenCanvas.getContext("2d", {
|
|
89754
|
+
alpha: true,
|
|
89755
|
+
desynchronized: true,
|
|
89756
|
+
willReadFrequently: false
|
|
89757
|
+
});
|
|
89758
|
+
if (!offscreenCtx)
|
|
89759
|
+
return;
|
|
89760
|
+
offscreenCanvasRef.current = offscreenCanvas;
|
|
89761
|
+
offscreenCtxRef.current = offscreenCtx;
|
|
89737
89762
|
const rect = canvas.getBoundingClientRect();
|
|
89738
89763
|
canvas.width = rect.width;
|
|
89739
89764
|
canvas.height = rect.height;
|
|
89765
|
+
offscreenCanvas.width = rect.width;
|
|
89766
|
+
offscreenCanvas.height = rect.height;
|
|
89740
89767
|
initializeBlobs();
|
|
89741
89768
|
window.addEventListener("resize", handleResize);
|
|
89742
89769
|
if (interactive) {
|
|
@@ -89749,6 +89776,8 @@ var LiquidBackgroundInternal = ({
|
|
|
89749
89776
|
if (animationRef.current) {
|
|
89750
89777
|
cancelAnimationFrame(animationRef.current);
|
|
89751
89778
|
}
|
|
89779
|
+
offscreenCanvasRef.current = null;
|
|
89780
|
+
offscreenCtxRef.current = null;
|
|
89752
89781
|
};
|
|
89753
89782
|
}, [initializeBlobs, handleResize, handleMouseMove2, animate4, interactive]);
|
|
89754
89783
|
useEffect(() => {
|
|
@@ -89779,9 +89808,11 @@ var LiquidBackgroundInternal = ({
|
|
|
89779
89808
|
};
|
|
89780
89809
|
}, [pauseWhenHidden]);
|
|
89781
89810
|
const canvasStyle = useMemo(() => ({
|
|
89782
|
-
willChange: "transform",
|
|
89811
|
+
willChange: "transform, opacity",
|
|
89783
89812
|
transform: "translate3d(0, 0, 0)",
|
|
89784
89813
|
backfaceVisibility: "hidden",
|
|
89814
|
+
contain: "paint layout",
|
|
89815
|
+
isolation: "isolate",
|
|
89785
89816
|
opacity: !pauseWhenHidden || isVisible ? 1 : 0,
|
|
89786
89817
|
transition: pauseWhenHidden ? "opacity 0.3s ease-out" : "none"
|
|
89787
89818
|
}), [pauseWhenHidden, isVisible]);
|
|
@@ -89794,7 +89825,9 @@ var LiquidBackgroundInternal = ({
|
|
|
89794
89825
|
containerClassName
|
|
89795
89826
|
),
|
|
89796
89827
|
style: {
|
|
89797
|
-
backgroundColor
|
|
89828
|
+
backgroundColor,
|
|
89829
|
+
contain: "layout style paint",
|
|
89830
|
+
willChange: "contents"
|
|
89798
89831
|
},
|
|
89799
89832
|
children: [
|
|
89800
89833
|
/* @__PURE__ */ jsx(
|
|
@@ -91733,7 +91766,7 @@ var GeometricPatternsInternal = ({
|
|
|
91733
91766
|
lastFrameTimeRef.current = currentTime;
|
|
91734
91767
|
timeRef.current += 1;
|
|
91735
91768
|
const rect = container.getBoundingClientRect();
|
|
91736
|
-
const rawDPR = window.devicePixelRatio || 1;
|
|
91769
|
+
const rawDPR = typeof window !== "undefined" ? window.devicePixelRatio || 1 : 1;
|
|
91737
91770
|
Math.min(rawDPR, performanceSettings.maxDPR);
|
|
91738
91771
|
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
|
91739
91772
|
if (backgroundColor !== "transparent") {
|
|
@@ -91762,7 +91795,7 @@ var GeometricPatternsInternal = ({
|
|
|
91762
91795
|
if (!canvas || !container)
|
|
91763
91796
|
return;
|
|
91764
91797
|
const rect = container.getBoundingClientRect();
|
|
91765
|
-
const rawDPR = window.devicePixelRatio || 1;
|
|
91798
|
+
const rawDPR = typeof window !== "undefined" ? window.devicePixelRatio || 1 : 1;
|
|
91766
91799
|
const devicePixelRatio = Math.min(rawDPR, performanceSettings.maxDPR);
|
|
91767
91800
|
const newWidth = rect.width * devicePixelRatio;
|
|
91768
91801
|
const newHeight = rect.height * devicePixelRatio;
|
|
@@ -91850,7 +91883,7 @@ var GeometricPatternsInternal = ({
|
|
|
91850
91883
|
if (!canvas || !container)
|
|
91851
91884
|
return;
|
|
91852
91885
|
const rect = container.getBoundingClientRect();
|
|
91853
|
-
const rawDPR = window.devicePixelRatio || 1;
|
|
91886
|
+
const rawDPR = typeof window !== "undefined" ? window.devicePixelRatio || 1 : 1;
|
|
91854
91887
|
const devicePixelRatio = Math.min(rawDPR, performanceSettings.maxDPR);
|
|
91855
91888
|
canvas.width = rect.width * devicePixelRatio;
|
|
91856
91889
|
canvas.height = rect.height * devicePixelRatio;
|
|
@@ -93815,7 +93848,11 @@ var GlowEffectInternal = ({
|
|
|
93815
93848
|
const [isHovered, setIsHovered] = useState(false);
|
|
93816
93849
|
const [mousePosition, setMousePosition] = useState({ x: 0, y: 0 });
|
|
93817
93850
|
const [flickerState, setFlickerState] = useState(true);
|
|
93851
|
+
const [mounted, setMounted] = useState(false);
|
|
93818
93852
|
useRef(void 0);
|
|
93853
|
+
useEffect(() => {
|
|
93854
|
+
setMounted(true);
|
|
93855
|
+
}, []);
|
|
93819
93856
|
const isMobile = () => {
|
|
93820
93857
|
return typeof window !== "undefined" && window.innerWidth <= 768;
|
|
93821
93858
|
};
|
|
@@ -93983,6 +94020,20 @@ var GlowEffectInternal = ({
|
|
|
93983
94020
|
animation: glow-rainbow ${duration}ms linear infinite;
|
|
93984
94021
|
}
|
|
93985
94022
|
`;
|
|
94023
|
+
if (!mounted) {
|
|
94024
|
+
return /* @__PURE__ */ jsx(
|
|
94025
|
+
"div",
|
|
94026
|
+
{
|
|
94027
|
+
className: cn(
|
|
94028
|
+
"glow-effect-container",
|
|
94029
|
+
"relative",
|
|
94030
|
+
"inline-block",
|
|
94031
|
+
containerClassName
|
|
94032
|
+
),
|
|
94033
|
+
children: /* @__PURE__ */ jsx("div", { className: "glow-content relative", children })
|
|
94034
|
+
}
|
|
94035
|
+
);
|
|
94036
|
+
}
|
|
93986
94037
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
93987
94038
|
/* @__PURE__ */ jsx("style", { dangerouslySetInnerHTML: { __html: animationStyles } }),
|
|
93988
94039
|
/* @__PURE__ */ jsxs(
|
|
@@ -94029,7 +94080,7 @@ var GlowEffectInternal = ({
|
|
|
94029
94080
|
clipPath: getClipPath(),
|
|
94030
94081
|
filter: customFilter || (animation === "rainbow" ? "hue-rotate(0deg)" : void 0),
|
|
94031
94082
|
background: gradient ? getGlowColor() : void 0,
|
|
94032
|
-
opacity: gradient ? 0.5 : 1
|
|
94083
|
+
opacity: gradient ? "0.5" : "1"
|
|
94033
94084
|
}
|
|
94034
94085
|
}
|
|
94035
94086
|
),
|
|
@@ -96861,6 +96912,35 @@ var ScrollReveal = (props) => {
|
|
|
96861
96912
|
return /* @__PURE__ */ jsx(ScrollRevealInternal, { ...props });
|
|
96862
96913
|
};
|
|
96863
96914
|
ScrollReveal.displayName = "ScrollReveal";
|
|
96915
|
+
var getEasingValue = (t2, easing) => {
|
|
96916
|
+
switch (easing) {
|
|
96917
|
+
case "linear":
|
|
96918
|
+
return t2;
|
|
96919
|
+
case "ease":
|
|
96920
|
+
return t2 < 0.5 ? 2 * t2 * t2 : -1 + (4 - 2 * t2) * t2;
|
|
96921
|
+
case "ease-in":
|
|
96922
|
+
return t2 * t2;
|
|
96923
|
+
case "ease-out":
|
|
96924
|
+
return t2 * (2 - t2);
|
|
96925
|
+
case "bounce":
|
|
96926
|
+
if (t2 < 0.363636) {
|
|
96927
|
+
return 7.5625 * t2 * t2;
|
|
96928
|
+
} else if (t2 < 0.727272) {
|
|
96929
|
+
t2 -= 0.545454;
|
|
96930
|
+
return 7.5625 * t2 * t2 + 0.75;
|
|
96931
|
+
} else if (t2 < 0.90909) {
|
|
96932
|
+
t2 -= 0.818181;
|
|
96933
|
+
return 7.5625 * t2 * t2 + 0.9375;
|
|
96934
|
+
} else {
|
|
96935
|
+
t2 -= 0.954545;
|
|
96936
|
+
return 7.5625 * t2 * t2 + 0.984375;
|
|
96937
|
+
}
|
|
96938
|
+
case "elastic":
|
|
96939
|
+
return t2 === 0 || t2 === 1 ? t2 : -Math.pow(2, 10 * (t2 - 1)) * Math.sin((t2 - 1.1) * 5 * Math.PI);
|
|
96940
|
+
default:
|
|
96941
|
+
return t2;
|
|
96942
|
+
}
|
|
96943
|
+
};
|
|
96864
96944
|
var BounceEffectInternal = ({
|
|
96865
96945
|
children,
|
|
96866
96946
|
trigger = "hover",
|
|
@@ -96898,7 +96978,9 @@ var BounceEffectInternal = ({
|
|
|
96898
96978
|
}) => {
|
|
96899
96979
|
const elementRef = useRef(null);
|
|
96900
96980
|
const animationRef = useRef(void 0);
|
|
96901
|
-
const
|
|
96981
|
+
const isAnimatingRef = useRef(false);
|
|
96982
|
+
const hasAutoTriggered = useRef(false);
|
|
96983
|
+
const [animationState, setAnimationState] = useState(false);
|
|
96902
96984
|
const [currentBounce, setCurrentBounce] = useState(0);
|
|
96903
96985
|
const [position, setPosition] = useState({ x: 0, y: 0 });
|
|
96904
96986
|
const [rotation, setRotation] = useState(0);
|
|
@@ -96906,39 +96988,10 @@ var BounceEffectInternal = ({
|
|
|
96906
96988
|
const [squash, setSquash] = useState({ x: 1, y: 1 });
|
|
96907
96989
|
useRef({ x: 0, y: 0 });
|
|
96908
96990
|
const startTimeRef = useRef(0);
|
|
96909
|
-
const getEasing = (t2) => {
|
|
96910
|
-
switch (easing) {
|
|
96911
|
-
case "linear":
|
|
96912
|
-
return t2;
|
|
96913
|
-
case "ease":
|
|
96914
|
-
return t2 < 0.5 ? 2 * t2 * t2 : -1 + (4 - 2 * t2) * t2;
|
|
96915
|
-
case "ease-in":
|
|
96916
|
-
return t2 * t2;
|
|
96917
|
-
case "ease-out":
|
|
96918
|
-
return t2 * (2 - t2);
|
|
96919
|
-
case "bounce":
|
|
96920
|
-
if (t2 < 0.363636) {
|
|
96921
|
-
return 7.5625 * t2 * t2;
|
|
96922
|
-
} else if (t2 < 0.727272) {
|
|
96923
|
-
t2 -= 0.545454;
|
|
96924
|
-
return 7.5625 * t2 * t2 + 0.75;
|
|
96925
|
-
} else if (t2 < 0.90909) {
|
|
96926
|
-
t2 -= 0.818181;
|
|
96927
|
-
return 7.5625 * t2 * t2 + 0.9375;
|
|
96928
|
-
} else {
|
|
96929
|
-
t2 -= 0.954545;
|
|
96930
|
-
return 7.5625 * t2 * t2 + 0.984375;
|
|
96931
|
-
}
|
|
96932
|
-
case "elastic":
|
|
96933
|
-
return t2 === 0 || t2 === 1 ? t2 : -Math.pow(2, 10 * (t2 - 1)) * Math.sin((t2 - 1.1) * 5 * Math.PI);
|
|
96934
|
-
default:
|
|
96935
|
-
return t2;
|
|
96936
|
-
}
|
|
96937
|
-
};
|
|
96938
96991
|
const calculateBounce = useCallback((time) => {
|
|
96939
96992
|
const elapsed = time - startTimeRef.current;
|
|
96940
96993
|
const progress = Math.min(elapsed / duration, 1);
|
|
96941
|
-
const easedProgress =
|
|
96994
|
+
const easedProgress = getEasingValue(progress, easing);
|
|
96942
96995
|
let x2 = 0, y = 0;
|
|
96943
96996
|
switch (direction) {
|
|
96944
96997
|
case "up":
|
|
@@ -96991,10 +97044,12 @@ var BounceEffectInternal = ({
|
|
|
96991
97044
|
if (currentBounce >= bounces - 1) {
|
|
96992
97045
|
if (infinite) {
|
|
96993
97046
|
setTimeout(() => {
|
|
96994
|
-
|
|
97047
|
+
setCurrentBounce(0);
|
|
97048
|
+
startTimeRef.current = performance.now();
|
|
96995
97049
|
}, pauseBetween);
|
|
96996
97050
|
} else {
|
|
96997
|
-
|
|
97051
|
+
isAnimatingRef.current = false;
|
|
97052
|
+
setAnimationState(false);
|
|
96998
97053
|
if (onBounceComplete)
|
|
96999
97054
|
onBounceComplete();
|
|
97000
97055
|
}
|
|
@@ -97020,6 +97075,7 @@ var BounceEffectInternal = ({
|
|
|
97020
97075
|
squashAmount,
|
|
97021
97076
|
jelly,
|
|
97022
97077
|
jellyIntensity,
|
|
97078
|
+
easing,
|
|
97023
97079
|
currentBounce,
|
|
97024
97080
|
position.y,
|
|
97025
97081
|
infinite,
|
|
@@ -97027,15 +97083,16 @@ var BounceEffectInternal = ({
|
|
|
97027
97083
|
onBounceComplete
|
|
97028
97084
|
]);
|
|
97029
97085
|
const animate4 = useCallback((time) => {
|
|
97030
|
-
if (!
|
|
97086
|
+
if (!isAnimatingRef.current)
|
|
97031
97087
|
return;
|
|
97032
97088
|
calculateBounce(time);
|
|
97033
97089
|
animationRef.current = requestAnimationFrame(animate4);
|
|
97034
|
-
}, [
|
|
97090
|
+
}, [calculateBounce]);
|
|
97035
97091
|
const startAnimation = useCallback(() => {
|
|
97036
|
-
if (
|
|
97092
|
+
if (isAnimatingRef.current)
|
|
97037
97093
|
return;
|
|
97038
|
-
|
|
97094
|
+
isAnimatingRef.current = true;
|
|
97095
|
+
setAnimationState(true);
|
|
97039
97096
|
setCurrentBounce(0);
|
|
97040
97097
|
startTimeRef.current = performance.now();
|
|
97041
97098
|
if (onBounceStart)
|
|
@@ -97043,7 +97100,7 @@ var BounceEffectInternal = ({
|
|
|
97043
97100
|
setTimeout(() => {
|
|
97044
97101
|
animationRef.current = requestAnimationFrame(animate4);
|
|
97045
97102
|
}, delay);
|
|
97046
|
-
}, [delay, onBounceStart, animate4
|
|
97103
|
+
}, [delay, onBounceStart, animate4]);
|
|
97047
97104
|
const handleMouseEnter = () => {
|
|
97048
97105
|
if (trigger === "hover")
|
|
97049
97106
|
startAnimation();
|
|
@@ -97061,19 +97118,20 @@ var BounceEffectInternal = ({
|
|
|
97061
97118
|
return;
|
|
97062
97119
|
const rect = element.getBoundingClientRect();
|
|
97063
97120
|
const inView = rect.top < window.innerHeight && rect.bottom > 0;
|
|
97064
|
-
if (inView && !
|
|
97121
|
+
if (inView && !isAnimatingRef.current) {
|
|
97065
97122
|
startAnimation();
|
|
97066
97123
|
}
|
|
97067
97124
|
};
|
|
97068
97125
|
window.addEventListener("scroll", handleScroll);
|
|
97069
97126
|
handleScroll();
|
|
97070
97127
|
return () => window.removeEventListener("scroll", handleScroll);
|
|
97071
|
-
}, [trigger,
|
|
97128
|
+
}, [trigger, startAnimation]);
|
|
97072
97129
|
useEffect(() => {
|
|
97073
|
-
if (trigger === "auto") {
|
|
97130
|
+
if (trigger === "auto" && !hasAutoTriggered.current) {
|
|
97131
|
+
hasAutoTriggered.current = true;
|
|
97074
97132
|
startAnimation();
|
|
97075
97133
|
}
|
|
97076
|
-
}, [trigger
|
|
97134
|
+
}, [trigger]);
|
|
97077
97135
|
useEffect(() => {
|
|
97078
97136
|
return () => {
|
|
97079
97137
|
if (animationRef.current) {
|
|
@@ -97112,7 +97170,7 @@ var BounceEffectInternal = ({
|
|
|
97112
97170
|
onMouseEnter: handleMouseEnter,
|
|
97113
97171
|
onClick: handleClick2,
|
|
97114
97172
|
children: [
|
|
97115
|
-
trail &&
|
|
97173
|
+
trail && animationState && Array.from({ length: trailCount }).map((_2, i) => /* @__PURE__ */ jsx(
|
|
97116
97174
|
"div",
|
|
97117
97175
|
{
|
|
97118
97176
|
className: "absolute inset-0 pointer-events-none",
|
|
@@ -97164,449 +97222,50 @@ var BounceEffect = (props) => {
|
|
|
97164
97222
|
return /* @__PURE__ */ jsx(BounceEffectInternal, { ...props });
|
|
97165
97223
|
};
|
|
97166
97224
|
BounceEffect.displayName = "BounceEffect";
|
|
97167
|
-
var
|
|
97168
|
-
|
|
97169
|
-
|
|
97170
|
-
|
|
97171
|
-
|
|
97172
|
-
|
|
97173
|
-
|
|
97174
|
-
|
|
97175
|
-
|
|
97176
|
-
|
|
97177
|
-
|
|
97178
|
-
|
|
97179
|
-
|
|
97180
|
-
|
|
97181
|
-
|
|
97182
|
-
|
|
97183
|
-
|
|
97184
|
-
|
|
97185
|
-
|
|
97186
|
-
|
|
97187
|
-
|
|
97188
|
-
|
|
97189
|
-
|
|
97190
|
-
|
|
97191
|
-
|
|
97192
|
-
|
|
97193
|
-
|
|
97194
|
-
|
|
97195
|
-
skewIntensity = 10,
|
|
97196
|
-
trail = false,
|
|
97197
|
-
trailCount = 5,
|
|
97198
|
-
trailDecay = 0.9,
|
|
97199
|
-
boundaries = false,
|
|
97200
|
-
boundaryBox = {},
|
|
97201
|
-
multiSpring = false,
|
|
97202
|
-
chainCount = 3,
|
|
97203
|
-
chainDelay = 50,
|
|
97204
|
-
oscillate = false,
|
|
97205
|
-
oscillationFrequency = 2,
|
|
97206
|
-
oscillationAmplitude = 10,
|
|
97207
|
-
containerClassName,
|
|
97208
|
-
springClassName,
|
|
97209
|
-
onMotionStart,
|
|
97210
|
-
onMotionComplete,
|
|
97211
|
-
onSpringUpdate
|
|
97212
|
-
}) => {
|
|
97213
|
-
const elementRef = useRef(null);
|
|
97214
|
-
const animationRef = useRef(void 0);
|
|
97215
|
-
const [isAnimating, setIsAnimating] = useState(false);
|
|
97216
|
-
const [isDragging, setIsDragging] = useState(false);
|
|
97217
|
-
const [position, setPosition] = useState({ x: 0, y: 0 });
|
|
97218
|
-
const [velocity, setVelocity] = useState(initialVelocity);
|
|
97219
|
-
useState({ x: 0, y: 0 });
|
|
97220
|
-
const [trailPositions, setTrailPositions] = useState([]);
|
|
97221
|
-
const [chainPositions, setChainPositions] = useState([]);
|
|
97222
|
-
const restPositionRef = useRef({ x: 0, y: 0 });
|
|
97223
|
-
const dragStartRef = useRef({ x: 0, y: 0 });
|
|
97224
|
-
const elementStartRef = useRef({ x: 0, y: 0 });
|
|
97225
|
-
const timeRef = useRef(0);
|
|
97226
|
-
const motionCompleteRef = useRef(false);
|
|
97227
|
-
const getSpringConfig = () => {
|
|
97228
|
-
if (preset !== "default") {
|
|
97229
|
-
return SPRING_PRESETS[preset];
|
|
97230
|
-
}
|
|
97231
|
-
return { tension, friction };
|
|
97232
|
-
};
|
|
97233
|
-
const calculateSpringForce = useCallback((currentPos, targetPos, vel, config) => {
|
|
97234
|
-
const dx = targetPos.x - currentPos.x;
|
|
97235
|
-
const dy = targetPos.y - currentPos.y;
|
|
97236
|
-
const springForceX = dx * config.tension;
|
|
97237
|
-
const springForceY = dy * config.tension;
|
|
97238
|
-
const dampingForceX = vel.x * config.friction;
|
|
97239
|
-
const dampingForceY = vel.y * config.friction;
|
|
97240
|
-
return {
|
|
97241
|
-
x: springForceX - dampingForceX,
|
|
97242
|
-
y: springForceY - dampingForceY
|
|
97243
|
-
};
|
|
97244
|
-
}, []);
|
|
97245
|
-
const applyBoundaries = useCallback((pos) => {
|
|
97246
|
-
if (!boundaries)
|
|
97247
|
-
return pos;
|
|
97248
|
-
const bounded = { ...pos };
|
|
97249
|
-
const box = {
|
|
97250
|
-
left: boundaryBox?.left ?? -100,
|
|
97251
|
-
right: boundaryBox?.right ?? 100,
|
|
97252
|
-
top: boundaryBox?.top ?? -100,
|
|
97253
|
-
bottom: boundaryBox?.bottom ?? 100
|
|
97254
|
-
};
|
|
97255
|
-
if (bounded.x < box.left) {
|
|
97256
|
-
bounded.x = box.left;
|
|
97257
|
-
setVelocity((prev) => ({ ...prev, x: Math.abs(prev.x || 0) * 0.5 }));
|
|
97258
|
-
}
|
|
97259
|
-
if (bounded.x > box.right) {
|
|
97260
|
-
bounded.x = box.right;
|
|
97261
|
-
setVelocity((prev) => ({ ...prev, x: -Math.abs(prev.x || 0) * 0.5 }));
|
|
97262
|
-
}
|
|
97263
|
-
if (bounded.y < box.top) {
|
|
97264
|
-
bounded.y = box.top;
|
|
97265
|
-
setVelocity((prev) => ({ ...prev, y: Math.abs(prev.y || 0) * 0.5 }));
|
|
97266
|
-
}
|
|
97267
|
-
if (bounded.y > box.bottom) {
|
|
97268
|
-
bounded.y = box.bottom;
|
|
97269
|
-
setVelocity((prev) => ({ ...prev, y: -Math.abs(prev.y || 0) * 0.5 }));
|
|
97270
|
-
}
|
|
97271
|
-
return bounded;
|
|
97272
|
-
}, [boundaries, boundaryBox]);
|
|
97273
|
-
const updateSpring = useCallback((deltaTime) => {
|
|
97274
|
-
const config = getSpringConfig();
|
|
97275
|
-
let targetPos = { ...target };
|
|
97276
|
-
if (oscillate) {
|
|
97277
|
-
const time = timeRef.current * 1e-3;
|
|
97278
|
-
targetPos.x = (targetPos.x || 0) + Math.sin(time * oscillationFrequency) * oscillationAmplitude;
|
|
97279
|
-
targetPos.y = (targetPos.y || 0) + Math.cos(time * oscillationFrequency) * oscillationAmplitude;
|
|
97280
|
-
}
|
|
97281
|
-
const force = calculateSpringForce(position, { x: targetPos.x || 0, y: targetPos.y || 0 }, { x: velocity.x || 0, y: velocity.y || 0 }, config);
|
|
97282
|
-
const newVelocity = {
|
|
97283
|
-
x: (velocity.x || 0) + force.x / mass * deltaTime,
|
|
97284
|
-
y: (velocity.y || 0) + force.y / mass * deltaTime
|
|
97285
|
-
};
|
|
97286
|
-
if (clamp3 && !overshoot) {
|
|
97287
|
-
const distX = Math.abs((targetPos.x || 0) - position.x);
|
|
97288
|
-
const distY = Math.abs((targetPos.y || 0) - position.y);
|
|
97289
|
-
if (distX < 1)
|
|
97290
|
-
newVelocity.x *= 0.8;
|
|
97291
|
-
if (distY < 1)
|
|
97292
|
-
newVelocity.y *= 0.8;
|
|
97293
|
-
}
|
|
97294
|
-
let newPosition = {
|
|
97295
|
-
x: position.x + newVelocity.x * deltaTime,
|
|
97296
|
-
y: position.y + newVelocity.y * deltaTime
|
|
97297
|
-
};
|
|
97298
|
-
newPosition = applyBoundaries(newPosition);
|
|
97299
|
-
if (trail) {
|
|
97300
|
-
setTrailPositions((prev) => {
|
|
97301
|
-
const newTrail = [newPosition, ...prev.slice(0, trailCount - 1)];
|
|
97302
|
-
return newTrail.map((pos, i) => ({
|
|
97303
|
-
x: pos.x * Math.pow(trailDecay, i),
|
|
97304
|
-
y: pos.y * Math.pow(trailDecay, i)
|
|
97305
|
-
}));
|
|
97306
|
-
});
|
|
97307
|
-
}
|
|
97308
|
-
if (multiSpring) {
|
|
97309
|
-
setChainPositions((prev) => {
|
|
97310
|
-
const newChain = [...prev];
|
|
97311
|
-
for (let i = 0; i < chainCount; i++) {
|
|
97312
|
-
const chainTarget = i === 0 ? newPosition : newChain[i - 1];
|
|
97313
|
-
const chainConfig = {
|
|
97314
|
-
tension: config.tension * (1 - i * 0.1),
|
|
97315
|
-
friction: config.friction * (1 + i * 0.1)
|
|
97316
|
-
};
|
|
97317
|
-
const chainForce = calculateSpringForce(
|
|
97318
|
-
newChain[i] || { x: 0, y: 0 },
|
|
97319
|
-
chainTarget,
|
|
97320
|
-
{ x: 0, y: 0 },
|
|
97321
|
-
chainConfig
|
|
97322
|
-
);
|
|
97323
|
-
newChain[i] = {
|
|
97324
|
-
x: (newChain[i]?.x ?? 0) + chainForce.x * deltaTime,
|
|
97325
|
-
y: (newChain[i]?.y ?? 0) + chainForce.y * deltaTime
|
|
97326
|
-
};
|
|
97327
|
-
}
|
|
97328
|
-
return newChain;
|
|
97329
|
-
});
|
|
97330
|
-
}
|
|
97331
|
-
const isComplete = Math.abs(newVelocity.x) < precision && Math.abs(newVelocity.y) < precision && Math.abs(newPosition.x - (targetPos.x || 0)) < precision && Math.abs(newPosition.y - (targetPos.y || 0)) < precision;
|
|
97332
|
-
if (isComplete && !motionCompleteRef.current) {
|
|
97333
|
-
motionCompleteRef.current = true;
|
|
97334
|
-
onMotionComplete?.();
|
|
97335
|
-
} else if (!isComplete && motionCompleteRef.current) {
|
|
97336
|
-
motionCompleteRef.current = false;
|
|
97337
|
-
}
|
|
97338
|
-
setPosition(newPosition);
|
|
97339
|
-
setVelocity(newVelocity);
|
|
97340
|
-
onSpringUpdate?.(newPosition);
|
|
97341
|
-
return !isComplete;
|
|
97342
|
-
}, [
|
|
97343
|
-
position,
|
|
97344
|
-
velocity,
|
|
97345
|
-
target,
|
|
97346
|
-
mass,
|
|
97347
|
-
precision,
|
|
97348
|
-
overshoot,
|
|
97349
|
-
clamp3,
|
|
97350
|
-
trail,
|
|
97351
|
-
trailCount,
|
|
97352
|
-
trailDecay,
|
|
97353
|
-
multiSpring,
|
|
97354
|
-
chainCount,
|
|
97355
|
-
oscillate,
|
|
97356
|
-
oscillationFrequency,
|
|
97357
|
-
oscillationAmplitude,
|
|
97358
|
-
calculateSpringForce,
|
|
97359
|
-
applyBoundaries,
|
|
97360
|
-
onMotionComplete,
|
|
97361
|
-
onSpringUpdate
|
|
97362
|
-
]);
|
|
97363
|
-
const animate4 = useCallback((timestamp) => {
|
|
97364
|
-
if (!isAnimating)
|
|
97365
|
-
return;
|
|
97366
|
-
const deltaTime = Math.min((timestamp - timeRef.current) / 1e3, 0.1) || 0.016;
|
|
97367
|
-
timeRef.current = timestamp;
|
|
97368
|
-
const shouldContinue = updateSpring(deltaTime);
|
|
97369
|
-
if (shouldContinue || isDragging) {
|
|
97370
|
-
animationRef.current = requestAnimationFrame(animate4);
|
|
97371
|
-
} else {
|
|
97372
|
-
setIsAnimating(false);
|
|
97373
|
-
}
|
|
97374
|
-
}, [isAnimating, isDragging, updateSpring]);
|
|
97375
|
-
const startAnimation = useCallback((targetPos) => {
|
|
97376
|
-
setIsAnimating(true);
|
|
97377
|
-
motionCompleteRef.current = false;
|
|
97378
|
-
if (targetPos) {
|
|
97379
|
-
restPositionRef.current = targetPos;
|
|
97380
|
-
}
|
|
97381
|
-
onMotionStart?.();
|
|
97382
|
-
timeRef.current = performance.now();
|
|
97383
|
-
animationRef.current = requestAnimationFrame(animate4);
|
|
97384
|
-
}, [animate4, onMotionStart]);
|
|
97385
|
-
const handleMouseMove2 = useCallback((e) => {
|
|
97386
|
-
if (!mouseTracking || !elementRef.current)
|
|
97387
|
-
return;
|
|
97388
|
-
const rect = elementRef.current.getBoundingClientRect();
|
|
97389
|
-
const centerX = rect.left + rect.width / 2;
|
|
97390
|
-
const centerY = rect.top + rect.height / 2;
|
|
97391
|
-
const dx = e.clientX - centerX;
|
|
97392
|
-
const dy = e.clientY - centerY;
|
|
97393
|
-
const distance = Math.sqrt(dx * dx + dy * dy);
|
|
97394
|
-
if (distance < mouseRadius) {
|
|
97395
|
-
const influence = 1 - distance / mouseRadius;
|
|
97396
|
-
const targetX = dx * influence * 0.5;
|
|
97397
|
-
const targetY = dy * influence * 0.5;
|
|
97398
|
-
restPositionRef.current = { x: targetX, y: targetY };
|
|
97399
|
-
if (!isAnimating) {
|
|
97400
|
-
startAnimation({ x: targetX, y: targetY });
|
|
97401
|
-
}
|
|
97402
|
-
}
|
|
97403
|
-
}, [mouseTracking, mouseRadius, isAnimating, startAnimation]);
|
|
97404
|
-
const handleMouseDown3 = useCallback((e) => {
|
|
97405
|
-
if (trigger !== "drag")
|
|
97406
|
-
return;
|
|
97407
|
-
setIsDragging(true);
|
|
97408
|
-
dragStartRef.current = { x: e.clientX, y: e.clientY };
|
|
97409
|
-
elementStartRef.current = { ...position };
|
|
97410
|
-
e.preventDefault();
|
|
97411
|
-
}, [trigger, position]);
|
|
97412
|
-
const handleMouseMoveOnDrag = useCallback((e) => {
|
|
97413
|
-
if (!isDragging)
|
|
97414
|
-
return;
|
|
97415
|
-
const dx = e.clientX - dragStartRef.current.x;
|
|
97416
|
-
const dy = e.clientY - dragStartRef.current.y;
|
|
97417
|
-
setPosition({
|
|
97418
|
-
x: elementStartRef.current.x + dx,
|
|
97419
|
-
y: elementStartRef.current.y + dy
|
|
97420
|
-
});
|
|
97421
|
-
}, [isDragging]);
|
|
97422
|
-
const handleMouseUp = useCallback(() => {
|
|
97423
|
-
if (!isDragging)
|
|
97424
|
-
return;
|
|
97425
|
-
setIsDragging(false);
|
|
97426
|
-
startAnimation({ x: 0, y: 0 });
|
|
97427
|
-
}, [isDragging, startAnimation]);
|
|
97428
|
-
const handleMouseEnter = () => {
|
|
97429
|
-
if (trigger === "hover") {
|
|
97430
|
-
startAnimation({ x: 20, y: -10 });
|
|
97431
|
-
}
|
|
97432
|
-
};
|
|
97433
|
-
const handleMouseLeave2 = () => {
|
|
97434
|
-
if (trigger === "hover") {
|
|
97435
|
-
startAnimation({ x: 0, y: 0 });
|
|
97436
|
-
}
|
|
97437
|
-
};
|
|
97438
|
-
const handleClick2 = () => {
|
|
97439
|
-
if (trigger === "click") {
|
|
97440
|
-
const targetX = (Math.random() - 0.5) * 100;
|
|
97441
|
-
const targetY = (Math.random() - 0.5) * 100;
|
|
97442
|
-
startAnimation({ x: targetX, y: targetY });
|
|
97443
|
-
setTimeout(() => {
|
|
97444
|
-
startAnimation({ x: 0, y: 0 });
|
|
97445
|
-
}, 1e3);
|
|
97446
|
-
}
|
|
97447
|
-
};
|
|
97448
|
-
useEffect(() => {
|
|
97449
|
-
if (trigger !== "scroll")
|
|
97450
|
-
return;
|
|
97451
|
-
const handleScroll = () => {
|
|
97452
|
-
const scrollY = window.scrollY;
|
|
97453
|
-
const targetY = Math.sin(scrollY * 0.01) * 50;
|
|
97454
|
-
restPositionRef.current = { x: 0, y: targetY };
|
|
97455
|
-
if (!isAnimating) {
|
|
97456
|
-
startAnimation({ x: 0, y: targetY });
|
|
97457
|
-
}
|
|
97458
|
-
};
|
|
97459
|
-
window.addEventListener("scroll", handleScroll);
|
|
97460
|
-
return () => window.removeEventListener("scroll", handleScroll);
|
|
97461
|
-
}, [trigger, isAnimating, startAnimation]);
|
|
97462
|
-
useEffect(() => {
|
|
97463
|
-
if (trigger === "auto") {
|
|
97464
|
-
startAnimation({ x: target?.x || 0, y: target?.y || 0 });
|
|
97465
|
-
}
|
|
97466
|
-
}, [trigger, target, startAnimation]);
|
|
97467
|
-
useEffect(() => {
|
|
97468
|
-
if (trigger === "drag") {
|
|
97469
|
-
window.addEventListener("mousemove", handleMouseMoveOnDrag);
|
|
97470
|
-
window.addEventListener("mouseup", handleMouseUp);
|
|
97471
|
-
return () => {
|
|
97472
|
-
window.removeEventListener("mousemove", handleMouseMoveOnDrag);
|
|
97473
|
-
window.removeEventListener("mouseup", handleMouseUp);
|
|
97474
|
-
};
|
|
97475
|
-
}
|
|
97476
|
-
}, [trigger, handleMouseMoveOnDrag, handleMouseUp]);
|
|
97477
|
-
useEffect(() => {
|
|
97478
|
-
if (mouseTracking) {
|
|
97479
|
-
window.addEventListener("mousemove", handleMouseMove2);
|
|
97480
|
-
return () => window.removeEventListener("mousemove", handleMouseMove2);
|
|
97481
|
-
}
|
|
97482
|
-
}, [mouseTracking, handleMouseMove2]);
|
|
97483
|
-
useEffect(() => {
|
|
97484
|
-
return () => {
|
|
97485
|
-
if (animationRef.current) {
|
|
97486
|
-
cancelAnimationFrame(animationRef.current);
|
|
97487
|
-
}
|
|
97488
|
-
};
|
|
97489
|
-
}, []);
|
|
97490
|
-
const getTransformStyle = (pos = position) => {
|
|
97491
|
-
const transforms = [];
|
|
97492
|
-
if (transform3d) {
|
|
97493
|
-
transforms.push(`translate3d(${pos.x}px, ${pos.y}px, 0)`);
|
|
97494
|
-
} else {
|
|
97495
|
-
transforms.push(`translateX(${pos.x}px) translateY(${pos.y}px)`);
|
|
97496
|
-
}
|
|
97497
|
-
if (rotate) {
|
|
97498
|
-
const rotation = pos.x / 10 * rotationMultiplier;
|
|
97499
|
-
transforms.push(`rotate(${rotation}deg)`);
|
|
97500
|
-
}
|
|
97501
|
-
if (scale) {
|
|
97502
|
-
const distance = Math.sqrt(pos.x * pos.x + pos.y * pos.y);
|
|
97503
|
-
const scaleValue = scaleRange[0] + distance / 100 * (scaleRange[1] - scaleRange[0]);
|
|
97504
|
-
transforms.push(`scale(${Math.min(Math.max(scaleValue, scaleRange[0]), scaleRange[1])})`);
|
|
97505
|
-
}
|
|
97506
|
-
if (skew) {
|
|
97507
|
-
const skewX = (velocity.x || 0) / 10 * skewIntensity;
|
|
97508
|
-
const skewY = (velocity.y || 0) / 10 * skewIntensity;
|
|
97509
|
-
transforms.push(`skewX(${skewX}deg) skewY(${skewY}deg)`);
|
|
97510
|
-
}
|
|
97511
|
-
return transforms.join(" ");
|
|
97512
|
-
};
|
|
97513
|
-
return /* @__PURE__ */ jsxs(
|
|
97514
|
-
"div",
|
|
97515
|
-
{
|
|
97516
|
-
ref: elementRef,
|
|
97517
|
-
className: cn(
|
|
97518
|
-
"spring-physics-container",
|
|
97519
|
-
"relative",
|
|
97520
|
-
"inline-block",
|
|
97521
|
-
containerClassName
|
|
97522
|
-
),
|
|
97523
|
-
onMouseEnter: handleMouseEnter,
|
|
97524
|
-
onMouseLeave: handleMouseLeave2,
|
|
97525
|
-
onMouseDown: handleMouseDown3,
|
|
97526
|
-
onClick: handleClick2,
|
|
97527
|
-
style: {
|
|
97528
|
-
cursor: trigger === "drag" ? "grab" : void 0
|
|
97529
|
-
},
|
|
97530
|
-
children: [
|
|
97531
|
-
trail && trailPositions.map((pos, i) => /* @__PURE__ */ jsx(
|
|
97532
|
-
"div",
|
|
97533
|
-
{
|
|
97534
|
-
className: "absolute inset-0 pointer-events-none",
|
|
97535
|
-
style: {
|
|
97536
|
-
transform: getTransformStyle(pos),
|
|
97537
|
-
opacity: 1 - i / trailCount,
|
|
97538
|
-
filter: `blur(${i * 0.5}px)`
|
|
97539
|
-
},
|
|
97540
|
-
children: React71__default.isValidElement(children) && React71__default.cloneElement(children, {
|
|
97541
|
-
style: { opacity: 0.3 }
|
|
97542
|
-
})
|
|
97543
|
-
},
|
|
97544
|
-
i
|
|
97545
|
-
)),
|
|
97546
|
-
multiSpring && chainPositions.map((pos, i) => /* @__PURE__ */ jsx(
|
|
97547
|
-
"div",
|
|
97548
|
-
{
|
|
97549
|
-
className: "absolute inset-0 pointer-events-none",
|
|
97550
|
-
style: {
|
|
97551
|
-
transform: getTransformStyle(pos),
|
|
97552
|
-
opacity: 1 - i / chainCount * 0.5,
|
|
97553
|
-
transitionDelay: `${i * chainDelay}ms`
|
|
97554
|
-
},
|
|
97555
|
-
children: React71__default.isValidElement(children) && React71__default.cloneElement(children, {
|
|
97556
|
-
style: {
|
|
97557
|
-
opacity: 0.5,
|
|
97558
|
-
transform: `scale(${1 - i * 0.1})`
|
|
97559
|
-
}
|
|
97560
|
-
})
|
|
97561
|
-
},
|
|
97562
|
-
`chain-${i}`
|
|
97563
|
-
)),
|
|
97564
|
-
/* @__PURE__ */ jsx(
|
|
97565
|
-
"div",
|
|
97566
|
-
{
|
|
97567
|
-
className: cn(
|
|
97568
|
-
"spring-element",
|
|
97569
|
-
isDragging && "cursor-grabbing",
|
|
97570
|
-
springClassName
|
|
97571
|
-
),
|
|
97572
|
-
style: {
|
|
97573
|
-
transform: getTransformStyle(),
|
|
97574
|
-
willChange: "transform",
|
|
97575
|
-
transformOrigin: "center center"
|
|
97576
|
-
},
|
|
97577
|
-
children
|
|
97578
|
-
}
|
|
97579
|
-
)
|
|
97580
|
-
]
|
|
97581
|
-
}
|
|
97582
|
-
);
|
|
97583
|
-
};
|
|
97584
|
-
var SpringPhysics = (props) => {
|
|
97585
|
-
const { hasProAccess, isLoading } = useSubscription();
|
|
97586
|
-
if (!isLoading && !hasProAccess) {
|
|
97587
|
-
return /* @__PURE__ */ jsx(
|
|
97588
|
-
ProLockScreen,
|
|
97589
|
-
{
|
|
97590
|
-
componentName: "SpringPhysics",
|
|
97591
|
-
compact: true,
|
|
97592
|
-
className: "inline-block"
|
|
97225
|
+
var getEasingValue2 = (t2, easing) => {
|
|
97226
|
+
switch (easing) {
|
|
97227
|
+
case "linear":
|
|
97228
|
+
return t2;
|
|
97229
|
+
case "ease-in":
|
|
97230
|
+
return t2 * t2;
|
|
97231
|
+
case "ease-out":
|
|
97232
|
+
return t2 * (2 - t2);
|
|
97233
|
+
case "ease-in-out":
|
|
97234
|
+
return t2 < 0.5 ? 2 * t2 * t2 : -1 + (4 - 2 * t2) * t2;
|
|
97235
|
+
case "elastic":
|
|
97236
|
+
if (t2 === 0 || t2 === 1)
|
|
97237
|
+
return t2;
|
|
97238
|
+
const p = 0.3;
|
|
97239
|
+
const s = p / 4;
|
|
97240
|
+
return Math.pow(2, -10 * t2) * Math.sin((t2 - s) * (2 * Math.PI) / p) + 1;
|
|
97241
|
+
case "bounce":
|
|
97242
|
+
if (t2 < 0.363636) {
|
|
97243
|
+
return 7.5625 * t2 * t2;
|
|
97244
|
+
} else if (t2 < 0.727272) {
|
|
97245
|
+
t2 -= 0.545454;
|
|
97246
|
+
return 7.5625 * t2 * t2 + 0.75;
|
|
97247
|
+
} else if (t2 < 0.90909) {
|
|
97248
|
+
t2 -= 0.818181;
|
|
97249
|
+
return 7.5625 * t2 * t2 + 0.9375;
|
|
97250
|
+
} else {
|
|
97251
|
+
t2 -= 0.954545;
|
|
97252
|
+
return 7.5625 * t2 * t2 + 0.984375;
|
|
97593
97253
|
}
|
|
97594
|
-
|
|
97254
|
+
default:
|
|
97255
|
+
return t2;
|
|
97595
97256
|
}
|
|
97596
|
-
return /* @__PURE__ */ jsx(SpringPhysicsInternal, { ...props });
|
|
97597
97257
|
};
|
|
97598
|
-
SpringPhysics.displayName = "SpringPhysics";
|
|
97599
97258
|
var ElasticAnimationInternal = ({
|
|
97600
97259
|
children,
|
|
97601
97260
|
trigger = "hover",
|
|
97602
97261
|
elasticity = 0.8,
|
|
97603
|
-
damping = 0.
|
|
97604
|
-
duration =
|
|
97262
|
+
damping = 0.18,
|
|
97263
|
+
duration = 1200,
|
|
97605
97264
|
delay = 0,
|
|
97606
97265
|
direction = "both",
|
|
97607
97266
|
distance = 50,
|
|
97608
97267
|
oscillate = true,
|
|
97609
|
-
oscillationCount =
|
|
97268
|
+
oscillationCount = 2,
|
|
97610
97269
|
rubberBand = false,
|
|
97611
97270
|
rubberBandIntensity = 1.5,
|
|
97612
97271
|
jello = false,
|
|
@@ -97639,7 +97298,10 @@ var ElasticAnimationInternal = ({
|
|
|
97639
97298
|
}) => {
|
|
97640
97299
|
const elementRef = useRef(null);
|
|
97641
97300
|
const animationRef = useRef(void 0);
|
|
97642
|
-
const
|
|
97301
|
+
const isAnimatingRef = useRef(false);
|
|
97302
|
+
const hasAutoTriggered = useRef(false);
|
|
97303
|
+
const [animationState, setAnimationState] = useState(false);
|
|
97304
|
+
const [isResetting, setIsResetting] = useState(false);
|
|
97643
97305
|
const [currentTransform, setCurrentTransform] = useState({
|
|
97644
97306
|
x: 0,
|
|
97645
97307
|
y: 0,
|
|
@@ -97651,41 +97313,8 @@ var ElasticAnimationInternal = ({
|
|
|
97651
97313
|
const [morphIndex, setMorphIndex] = useState(0);
|
|
97652
97314
|
const startTimeRef = useRef(0);
|
|
97653
97315
|
const animationPhaseRef = useRef("main");
|
|
97654
|
-
const getEasingValue = (t2) => {
|
|
97655
|
-
switch (easing) {
|
|
97656
|
-
case "linear":
|
|
97657
|
-
return t2;
|
|
97658
|
-
case "ease-in":
|
|
97659
|
-
return t2 * t2;
|
|
97660
|
-
case "ease-out":
|
|
97661
|
-
return t2 * (2 - t2);
|
|
97662
|
-
case "ease-in-out":
|
|
97663
|
-
return t2 < 0.5 ? 2 * t2 * t2 : -1 + (4 - 2 * t2) * t2;
|
|
97664
|
-
case "elastic":
|
|
97665
|
-
if (t2 === 0 || t2 === 1)
|
|
97666
|
-
return t2;
|
|
97667
|
-
const p = 0.3;
|
|
97668
|
-
const s = p / 4;
|
|
97669
|
-
return Math.pow(2, -10 * t2) * Math.sin((t2 - s) * (2 * Math.PI) / p) + 1;
|
|
97670
|
-
case "bounce":
|
|
97671
|
-
if (t2 < 0.363636) {
|
|
97672
|
-
return 7.5625 * t2 * t2;
|
|
97673
|
-
} else if (t2 < 0.727272) {
|
|
97674
|
-
t2 -= 0.545454;
|
|
97675
|
-
return 7.5625 * t2 * t2 + 0.75;
|
|
97676
|
-
} else if (t2 < 0.90909) {
|
|
97677
|
-
t2 -= 0.818181;
|
|
97678
|
-
return 7.5625 * t2 * t2 + 0.9375;
|
|
97679
|
-
} else {
|
|
97680
|
-
t2 -= 0.954545;
|
|
97681
|
-
return 7.5625 * t2 * t2 + 0.984375;
|
|
97682
|
-
}
|
|
97683
|
-
default:
|
|
97684
|
-
return t2;
|
|
97685
|
-
}
|
|
97686
|
-
};
|
|
97687
97316
|
const calculateElasticMotion = useCallback((progress) => {
|
|
97688
|
-
const elasticProgress =
|
|
97317
|
+
const elasticProgress = getEasingValue2(progress, easing);
|
|
97689
97318
|
let x2 = 0, y = 0, scale = 1, rotate = 0, skewX = 0, skewY = 0;
|
|
97690
97319
|
if (direction === "horizontal" || direction === "both") {
|
|
97691
97320
|
x2 = distance * elasticProgress * Math.cos(progress * Math.PI * 2 * oscillationCount);
|
|
@@ -97761,6 +97390,7 @@ var ElasticAnimationInternal = ({
|
|
|
97761
97390
|
}
|
|
97762
97391
|
return { x: x2, y, scale, rotate, skewX, skewY };
|
|
97763
97392
|
}, [
|
|
97393
|
+
easing,
|
|
97764
97394
|
direction,
|
|
97765
97395
|
distance,
|
|
97766
97396
|
oscillate,
|
|
@@ -97789,7 +97419,7 @@ var ElasticAnimationInternal = ({
|
|
|
97789
97419
|
shakeIntensity
|
|
97790
97420
|
]);
|
|
97791
97421
|
const animate4 = useCallback((timestamp) => {
|
|
97792
|
-
if (!
|
|
97422
|
+
if (!isAnimatingRef.current)
|
|
97793
97423
|
return;
|
|
97794
97424
|
const elapsed = timestamp - startTimeRef.current;
|
|
97795
97425
|
let progress = Math.min(elapsed / duration, 1);
|
|
@@ -97816,14 +97446,18 @@ var ElasticAnimationInternal = ({
|
|
|
97816
97446
|
}
|
|
97817
97447
|
animationRef.current = requestAnimationFrame(animate4);
|
|
97818
97448
|
} else {
|
|
97819
|
-
|
|
97449
|
+
isAnimatingRef.current = false;
|
|
97450
|
+
setAnimationState(false);
|
|
97451
|
+
setIsResetting(true);
|
|
97820
97452
|
setCurrentTransform({ x: 0, y: 0, scale: 1, rotate: 0, skewX: 0, skewY: 0 });
|
|
97821
|
-
|
|
97822
|
-
|
|
97453
|
+
setTimeout(() => {
|
|
97454
|
+
setIsResetting(false);
|
|
97455
|
+
if (onAnimationComplete)
|
|
97456
|
+
onAnimationComplete();
|
|
97457
|
+
}, 300);
|
|
97823
97458
|
}
|
|
97824
97459
|
}
|
|
97825
97460
|
}, [
|
|
97826
|
-
isAnimating,
|
|
97827
97461
|
duration,
|
|
97828
97462
|
anticipation,
|
|
97829
97463
|
followThrough,
|
|
@@ -97833,9 +97467,10 @@ var ElasticAnimationInternal = ({
|
|
|
97833
97467
|
onAnimationComplete
|
|
97834
97468
|
]);
|
|
97835
97469
|
const startAnimation = useCallback(() => {
|
|
97836
|
-
if (
|
|
97470
|
+
if (isAnimatingRef.current && trigger !== "continuous")
|
|
97837
97471
|
return;
|
|
97838
|
-
|
|
97472
|
+
isAnimatingRef.current = true;
|
|
97473
|
+
setAnimationState(true);
|
|
97839
97474
|
startTimeRef.current = performance.now();
|
|
97840
97475
|
animationPhaseRef.current = anticipation ? "anticipation" : "main";
|
|
97841
97476
|
if (onAnimationStart)
|
|
@@ -97852,7 +97487,6 @@ var ElasticAnimationInternal = ({
|
|
|
97852
97487
|
}, secondaryDelay);
|
|
97853
97488
|
}
|
|
97854
97489
|
}, [
|
|
97855
|
-
isAnimating,
|
|
97856
97490
|
trigger,
|
|
97857
97491
|
delay,
|
|
97858
97492
|
anticipation,
|
|
@@ -97866,8 +97500,10 @@ var ElasticAnimationInternal = ({
|
|
|
97866
97500
|
startAnimation();
|
|
97867
97501
|
};
|
|
97868
97502
|
const handleMouseLeave2 = () => {
|
|
97869
|
-
if (trigger === "hover" && !
|
|
97503
|
+
if (trigger === "hover" && !isAnimatingRef.current) {
|
|
97504
|
+
setIsResetting(true);
|
|
97870
97505
|
setCurrentTransform({ x: 0, y: 0, scale: 1, rotate: 0, skewX: 0, skewY: 0 });
|
|
97506
|
+
setTimeout(() => setIsResetting(false), 300);
|
|
97871
97507
|
}
|
|
97872
97508
|
};
|
|
97873
97509
|
const handleClick2 = () => {
|
|
@@ -97883,16 +97519,17 @@ var ElasticAnimationInternal = ({
|
|
|
97883
97519
|
return;
|
|
97884
97520
|
const rect = element.getBoundingClientRect();
|
|
97885
97521
|
const inView = rect.top < window.innerHeight && rect.bottom > 0;
|
|
97886
|
-
if (inView && !
|
|
97522
|
+
if (inView && !isAnimatingRef.current) {
|
|
97887
97523
|
startAnimation();
|
|
97888
97524
|
}
|
|
97889
97525
|
};
|
|
97890
97526
|
window.addEventListener("scroll", handleScroll);
|
|
97891
97527
|
handleScroll();
|
|
97892
97528
|
return () => window.removeEventListener("scroll", handleScroll);
|
|
97893
|
-
}, [trigger,
|
|
97529
|
+
}, [trigger, startAnimation]);
|
|
97894
97530
|
useEffect(() => {
|
|
97895
|
-
if (trigger === "auto" || trigger === "continuous") {
|
|
97531
|
+
if ((trigger === "auto" || trigger === "continuous") && !hasAutoTriggered.current) {
|
|
97532
|
+
hasAutoTriggered.current = true;
|
|
97896
97533
|
startAnimation();
|
|
97897
97534
|
}
|
|
97898
97535
|
}, [trigger, startAnimation]);
|
|
@@ -97944,7 +97581,8 @@ var ElasticAnimationInternal = ({
|
|
|
97944
97581
|
transform: getTransformStyle(),
|
|
97945
97582
|
transformOrigin: "center center",
|
|
97946
97583
|
willChange: "transform",
|
|
97947
|
-
backfaceVisibility: "hidden"
|
|
97584
|
+
backfaceVisibility: "hidden",
|
|
97585
|
+
transition: isResetting ? "transform 0.3s ease-out" : "none"
|
|
97948
97586
|
},
|
|
97949
97587
|
children
|
|
97950
97588
|
}
|
|
@@ -98022,6 +97660,7 @@ var PathAnimationsInternal = ({
|
|
|
98022
97660
|
const pathRef = useRef(null);
|
|
98023
97661
|
const elementRef = useRef(null);
|
|
98024
97662
|
const animationRef = useRef(void 0);
|
|
97663
|
+
const isAnimatingRef = useRef(false);
|
|
98025
97664
|
const [isAnimating, setIsAnimating] = useState(false);
|
|
98026
97665
|
const [currentPath, setCurrentPath] = useState("");
|
|
98027
97666
|
const [pathLength, setPathLength] = useState(0);
|
|
@@ -98053,7 +97692,7 @@ var PathAnimationsInternal = ({
|
|
|
98053
97692
|
svgRef.current.removeChild(tempPath);
|
|
98054
97693
|
}
|
|
98055
97694
|
}, [getPathString]);
|
|
98056
|
-
const
|
|
97695
|
+
const getEasingValue3 = (t2) => {
|
|
98057
97696
|
switch (easing) {
|
|
98058
97697
|
case "linear":
|
|
98059
97698
|
return t2;
|
|
@@ -98110,11 +97749,11 @@ var PathAnimationsInternal = ({
|
|
|
98110
97749
|
requestAnimationFrame(animateMorph);
|
|
98111
97750
|
}, [morph, morphPaths, morphIndex, currentPath, morphDuration]);
|
|
98112
97751
|
const animate4 = useCallback((timestamp) => {
|
|
98113
|
-
if (!
|
|
97752
|
+
if (!isAnimatingRef.current)
|
|
98114
97753
|
return;
|
|
98115
97754
|
const elapsed = timestamp - startTimeRef.current + pausedTimeRef.current;
|
|
98116
97755
|
let progress = Math.min(elapsed / duration, 1);
|
|
98117
|
-
progress =
|
|
97756
|
+
progress = getEasingValue3(progress);
|
|
98118
97757
|
const pathPosition = calculatePathPosition(progress);
|
|
98119
97758
|
setPosition({ x: pathPosition.x, y: pathPosition.y });
|
|
98120
97759
|
setRotation(pathPosition.angle);
|
|
@@ -98171,7 +97810,6 @@ var PathAnimationsInternal = ({
|
|
|
98171
97810
|
animationRef.current = requestAnimationFrame(animate4);
|
|
98172
97811
|
}
|
|
98173
97812
|
}, [
|
|
98174
|
-
isAnimating,
|
|
98175
97813
|
duration,
|
|
98176
97814
|
calculatePathPosition,
|
|
98177
97815
|
scaleAnimation,
|
|
@@ -98193,8 +97831,9 @@ var PathAnimationsInternal = ({
|
|
|
98193
97831
|
onAnimationComplete
|
|
98194
97832
|
]);
|
|
98195
97833
|
const startAnimation = useCallback(() => {
|
|
98196
|
-
if (
|
|
97834
|
+
if (isAnimatingRef.current)
|
|
98197
97835
|
return;
|
|
97836
|
+
isAnimatingRef.current = true;
|
|
98198
97837
|
setIsAnimating(true);
|
|
98199
97838
|
setCurrentLoop(0);
|
|
98200
97839
|
startTimeRef.current = performance.now();
|
|
@@ -98203,8 +97842,9 @@ var PathAnimationsInternal = ({
|
|
|
98203
97842
|
setTimeout(() => {
|
|
98204
97843
|
animationRef.current = requestAnimationFrame(animate4);
|
|
98205
97844
|
}, delay);
|
|
98206
|
-
}, [
|
|
97845
|
+
}, [delay, animate4, onAnimationStart]);
|
|
98207
97846
|
const stopAnimation = useCallback(() => {
|
|
97847
|
+
isAnimatingRef.current = false;
|
|
98208
97848
|
setIsAnimating(false);
|
|
98209
97849
|
if (animationRef.current) {
|
|
98210
97850
|
cancelAnimationFrame(animationRef.current);
|
|
@@ -98248,9 +97888,10 @@ var PathAnimationsInternal = ({
|
|
|
98248
97888
|
if (trigger === "auto") {
|
|
98249
97889
|
startAnimation();
|
|
98250
97890
|
}
|
|
98251
|
-
}, [trigger
|
|
97891
|
+
}, [trigger]);
|
|
98252
97892
|
useEffect(() => {
|
|
98253
97893
|
return () => {
|
|
97894
|
+
isAnimatingRef.current = false;
|
|
98254
97895
|
if (animationRef.current) {
|
|
98255
97896
|
cancelAnimationFrame(animationRef.current);
|
|
98256
97897
|
}
|
|
@@ -98393,6 +98034,9 @@ var PathAnimations = (props) => {
|
|
|
98393
98034
|
PathAnimations.displayName = "PathAnimations";
|
|
98394
98035
|
var SVGAnimationsInternal = ({
|
|
98395
98036
|
children,
|
|
98037
|
+
viewBox = "0 0 200 200",
|
|
98038
|
+
width = "100%",
|
|
98039
|
+
height = "100%",
|
|
98396
98040
|
type = "draw",
|
|
98397
98041
|
duration = 2e3,
|
|
98398
98042
|
delay = 0,
|
|
@@ -98461,8 +98105,25 @@ var SVGAnimationsInternal = ({
|
|
|
98461
98105
|
onAnimationComplete,
|
|
98462
98106
|
onFrame
|
|
98463
98107
|
}) => {
|
|
98108
|
+
const mergedTransformOptions = {
|
|
98109
|
+
scale: [1, 1],
|
|
98110
|
+
rotate: 0,
|
|
98111
|
+
translate: [0, 0],
|
|
98112
|
+
skew: [0, 0],
|
|
98113
|
+
transformOrigin: "center",
|
|
98114
|
+
...transformOptions
|
|
98115
|
+
};
|
|
98116
|
+
const mergedFilterOptions = {
|
|
98117
|
+
blur: [0, 0],
|
|
98118
|
+
brightness: [1, 1],
|
|
98119
|
+
contrast: [1, 1],
|
|
98120
|
+
saturate: [1, 1],
|
|
98121
|
+
hueRotate: [0, 0],
|
|
98122
|
+
...filterOptions
|
|
98123
|
+
};
|
|
98464
98124
|
const svgRef = useRef(null);
|
|
98465
98125
|
const animationRef = useRef(void 0);
|
|
98126
|
+
const isAnimatingRef = useRef(false);
|
|
98466
98127
|
const [isAnimating, setIsAnimating] = useState(false);
|
|
98467
98128
|
const [paths, setPaths] = useState([]);
|
|
98468
98129
|
const [currentMorphIndex, setCurrentMorphIndex] = useState(0);
|
|
@@ -98488,7 +98149,7 @@ var SVGAnimationsInternal = ({
|
|
|
98488
98149
|
});
|
|
98489
98150
|
}
|
|
98490
98151
|
}, [type, drawOptions.fadeIn]);
|
|
98491
|
-
const
|
|
98152
|
+
const getEasingValue3 = (t2) => {
|
|
98492
98153
|
switch (easing) {
|
|
98493
98154
|
case "linear":
|
|
98494
98155
|
return t2;
|
|
@@ -98586,21 +98247,21 @@ var SVGAnimationsInternal = ({
|
|
|
98586
98247
|
const offset4 = strokeOptions.strokeDashoffset * (1 - progress);
|
|
98587
98248
|
path.style.strokeDashoffset = `${offset4}`;
|
|
98588
98249
|
if (strokeOptions.animateWidth) {
|
|
98589
|
-
const
|
|
98590
|
-
path.style.strokeWidth = `${
|
|
98250
|
+
const width2 = strokeOptions.strokeWidth * progress;
|
|
98251
|
+
path.style.strokeWidth = `${width2}`;
|
|
98591
98252
|
}
|
|
98592
98253
|
path.style.stroke = strokeOptions.strokeColor;
|
|
98593
98254
|
});
|
|
98594
98255
|
}, [paths, strokeOptions]);
|
|
98595
98256
|
const animateTransform = useCallback((progress) => {
|
|
98596
|
-
const easedProgress =
|
|
98597
|
-
const scaleX =
|
|
98598
|
-
const scaleY =
|
|
98599
|
-
const rotate =
|
|
98600
|
-
const translateX =
|
|
98601
|
-
const translateY =
|
|
98602
|
-
const skewX =
|
|
98603
|
-
const skewY =
|
|
98257
|
+
const easedProgress = getEasingValue3(progress);
|
|
98258
|
+
const scaleX = mergedTransformOptions.scale[0] + (1 - mergedTransformOptions.scale[0]) * easedProgress;
|
|
98259
|
+
const scaleY = mergedTransformOptions.scale[1] + (1 - mergedTransformOptions.scale[1]) * easedProgress;
|
|
98260
|
+
const rotate = mergedTransformOptions.rotate * easedProgress;
|
|
98261
|
+
const translateX = mergedTransformOptions.translate[0] * easedProgress;
|
|
98262
|
+
const translateY = mergedTransformOptions.translate[1] * easedProgress;
|
|
98263
|
+
const skewX = mergedTransformOptions.skew[0] * easedProgress;
|
|
98264
|
+
const skewY = mergedTransformOptions.skew[1] * easedProgress;
|
|
98604
98265
|
const transform = `
|
|
98605
98266
|
translate(${translateX}px, ${translateY}px)
|
|
98606
98267
|
scale(${scaleX}, ${scaleY})
|
|
@@ -98609,18 +98270,18 @@ var SVGAnimationsInternal = ({
|
|
|
98609
98270
|
skewY(${skewY}deg)
|
|
98610
98271
|
`;
|
|
98611
98272
|
if (svgRef.current) {
|
|
98612
|
-
svgRef.current.style.transformOrigin =
|
|
98273
|
+
svgRef.current.style.transformOrigin = mergedTransformOptions.transformOrigin;
|
|
98613
98274
|
svgRef.current.style.transform = transform;
|
|
98614
98275
|
}
|
|
98615
|
-
}, [
|
|
98276
|
+
}, [mergedTransformOptions]);
|
|
98616
98277
|
const animateFilter = useCallback((progress) => {
|
|
98617
98278
|
if (!svgRef.current)
|
|
98618
98279
|
return;
|
|
98619
|
-
const blur2 =
|
|
98620
|
-
const brightness =
|
|
98621
|
-
const contrast =
|
|
98622
|
-
const saturate =
|
|
98623
|
-
const hueRotate =
|
|
98280
|
+
const blur2 = mergedFilterOptions.blur[0] + (mergedFilterOptions.blur[1] - mergedFilterOptions.blur[0]) * progress;
|
|
98281
|
+
const brightness = mergedFilterOptions.brightness[0] + (mergedFilterOptions.brightness[1] - mergedFilterOptions.brightness[0]) * progress;
|
|
98282
|
+
const contrast = mergedFilterOptions.contrast[0] + (mergedFilterOptions.contrast[1] - mergedFilterOptions.contrast[0]) * progress;
|
|
98283
|
+
const saturate = mergedFilterOptions.saturate[0] + (mergedFilterOptions.saturate[1] - mergedFilterOptions.saturate[0]) * progress;
|
|
98284
|
+
const hueRotate = mergedFilterOptions.hueRotate[0] + (mergedFilterOptions.hueRotate[1] - mergedFilterOptions.hueRotate[0]) * progress;
|
|
98624
98285
|
const filter = `
|
|
98625
98286
|
blur(${blur2}px)
|
|
98626
98287
|
brightness(${brightness})
|
|
@@ -98629,13 +98290,13 @@ var SVGAnimationsInternal = ({
|
|
|
98629
98290
|
hue-rotate(${hueRotate}deg)
|
|
98630
98291
|
`;
|
|
98631
98292
|
svgRef.current.style.filter = filter;
|
|
98632
|
-
}, [
|
|
98293
|
+
}, [mergedFilterOptions]);
|
|
98633
98294
|
const animate4 = useCallback((timestamp) => {
|
|
98634
|
-
if (!
|
|
98295
|
+
if (!isAnimatingRef.current)
|
|
98635
98296
|
return;
|
|
98636
98297
|
const elapsed = timestamp - startTimeRef.current;
|
|
98637
98298
|
let progress = Math.min(elapsed / duration, 1);
|
|
98638
|
-
progress =
|
|
98299
|
+
progress = getEasingValue3(progress);
|
|
98639
98300
|
setAnimationProgress(progress);
|
|
98640
98301
|
switch (type) {
|
|
98641
98302
|
case "draw":
|
|
@@ -98666,6 +98327,7 @@ var SVGAnimationsInternal = ({
|
|
|
98666
98327
|
startTimeRef.current = timestamp;
|
|
98667
98328
|
animationRef.current = requestAnimationFrame(animate4);
|
|
98668
98329
|
} else {
|
|
98330
|
+
isAnimatingRef.current = false;
|
|
98669
98331
|
setIsAnimating(false);
|
|
98670
98332
|
if (onAnimationComplete)
|
|
98671
98333
|
onAnimationComplete();
|
|
@@ -98674,7 +98336,6 @@ var SVGAnimationsInternal = ({
|
|
|
98674
98336
|
animationRef.current = requestAnimationFrame(animate4);
|
|
98675
98337
|
}
|
|
98676
98338
|
}, [
|
|
98677
|
-
isAnimating,
|
|
98678
98339
|
duration,
|
|
98679
98340
|
type,
|
|
98680
98341
|
loop,
|
|
@@ -98690,8 +98351,10 @@ var SVGAnimationsInternal = ({
|
|
|
98690
98351
|
onAnimationComplete
|
|
98691
98352
|
]);
|
|
98692
98353
|
const startAnimation = useCallback(() => {
|
|
98693
|
-
if (
|
|
98694
|
-
|
|
98354
|
+
if (animationRef.current) {
|
|
98355
|
+
cancelAnimationFrame(animationRef.current);
|
|
98356
|
+
}
|
|
98357
|
+
isAnimatingRef.current = true;
|
|
98695
98358
|
setIsAnimating(true);
|
|
98696
98359
|
setCurrentLoop(0);
|
|
98697
98360
|
startTimeRef.current = performance.now();
|
|
@@ -98700,8 +98363,9 @@ var SVGAnimationsInternal = ({
|
|
|
98700
98363
|
setTimeout(() => {
|
|
98701
98364
|
animationRef.current = requestAnimationFrame(animate4);
|
|
98702
98365
|
}, delay);
|
|
98703
|
-
}, [
|
|
98366
|
+
}, [delay, animate4, onAnimationStart]);
|
|
98704
98367
|
const stopAnimation = useCallback(() => {
|
|
98368
|
+
isAnimatingRef.current = false;
|
|
98705
98369
|
setIsAnimating(false);
|
|
98706
98370
|
if (animationRef.current) {
|
|
98707
98371
|
cancelAnimationFrame(animationRef.current);
|
|
@@ -98745,12 +98409,13 @@ var SVGAnimationsInternal = ({
|
|
|
98745
98409
|
if (autoPlay && trigger === "auto") {
|
|
98746
98410
|
startAnimation();
|
|
98747
98411
|
}
|
|
98748
|
-
}, [autoPlay, trigger
|
|
98412
|
+
}, [autoPlay, trigger]);
|
|
98749
98413
|
useEffect(() => {
|
|
98750
98414
|
return () => {
|
|
98751
98415
|
if (animationRef.current) {
|
|
98752
98416
|
cancelAnimationFrame(animationRef.current);
|
|
98753
98417
|
}
|
|
98418
|
+
isAnimatingRef.current = false;
|
|
98754
98419
|
};
|
|
98755
98420
|
}, []);
|
|
98756
98421
|
return /* @__PURE__ */ jsxs(
|
|
@@ -98770,6 +98435,9 @@ var SVGAnimationsInternal = ({
|
|
|
98770
98435
|
"svg",
|
|
98771
98436
|
{
|
|
98772
98437
|
ref: svgRef,
|
|
98438
|
+
viewBox,
|
|
98439
|
+
width,
|
|
98440
|
+
height,
|
|
98773
98441
|
className: cn(
|
|
98774
98442
|
"svg-animated",
|
|
98775
98443
|
svgClassName
|
|
@@ -98858,7 +98526,9 @@ var FadeTransitionsInternal = ({
|
|
|
98858
98526
|
}) => {
|
|
98859
98527
|
const containerRef = useRef(null);
|
|
98860
98528
|
const [isVisible, setIsVisible] = useState(controlledVisible ?? false);
|
|
98861
|
-
const
|
|
98529
|
+
const isAnimatingRef = useRef(false);
|
|
98530
|
+
const hasAutoTriggered = useRef(false);
|
|
98531
|
+
const [animationState, setAnimationState] = useState(false);
|
|
98862
98532
|
const [currentLoop, setCurrentLoop] = useState(0);
|
|
98863
98533
|
const [childrenArray, setChildrenArray] = useState([]);
|
|
98864
98534
|
const observerRef = useRef(void 0);
|
|
@@ -98963,7 +98633,7 @@ var FadeTransitionsInternal = ({
|
|
|
98963
98633
|
filter: type === "blur-fade" && !visible ? `blur(${blurAmount}px)` : "none",
|
|
98964
98634
|
willChange: "transform, opacity, filter"
|
|
98965
98635
|
};
|
|
98966
|
-
if (glow &&
|
|
98636
|
+
if (glow && animationState) {
|
|
98967
98637
|
styles.boxShadow = `0 0 ${glowIntensity}px ${glowColor}`;
|
|
98968
98638
|
}
|
|
98969
98639
|
if (mask) {
|
|
@@ -98991,9 +98661,10 @@ var FadeTransitionsInternal = ({
|
|
|
98991
98661
|
return styles;
|
|
98992
98662
|
};
|
|
98993
98663
|
const handleVisibilityChange = useCallback((visible) => {
|
|
98994
|
-
if (
|
|
98664
|
+
if (isAnimatingRef.current)
|
|
98995
98665
|
return;
|
|
98996
|
-
|
|
98666
|
+
isAnimatingRef.current = true;
|
|
98667
|
+
setAnimationState(true);
|
|
98997
98668
|
setIsVisible(visible);
|
|
98998
98669
|
if (onTransitionStart)
|
|
98999
98670
|
onTransitionStart();
|
|
@@ -99003,7 +98674,8 @@ var FadeTransitionsInternal = ({
|
|
|
99003
98674
|
animationTimeoutsRef.current = [];
|
|
99004
98675
|
const totalDuration = duration + (staggered ? (childrenArray.length - 1) * stagger : 0) + delay;
|
|
99005
98676
|
const completeTimeout = setTimeout(() => {
|
|
99006
|
-
|
|
98677
|
+
isAnimatingRef.current = false;
|
|
98678
|
+
setAnimationState(false);
|
|
99007
98679
|
if (onTransitionComplete)
|
|
99008
98680
|
onTransitionComplete();
|
|
99009
98681
|
if (loop && visible) {
|
|
@@ -99011,15 +98683,15 @@ var FadeTransitionsInternal = ({
|
|
|
99011
98683
|
setCurrentLoop((prev) => prev + 1);
|
|
99012
98684
|
if (reverseOnExit) {
|
|
99013
98685
|
setTimeout(() => {
|
|
99014
|
-
|
|
98686
|
+
setIsVisible(false);
|
|
99015
98687
|
setTimeout(() => {
|
|
99016
|
-
|
|
98688
|
+
setIsVisible(true);
|
|
99017
98689
|
}, totalDuration);
|
|
99018
98690
|
}, 1e3);
|
|
99019
98691
|
} else {
|
|
99020
98692
|
setIsVisible(false);
|
|
99021
98693
|
setTimeout(() => {
|
|
99022
|
-
|
|
98694
|
+
setIsVisible(true);
|
|
99023
98695
|
}, 100);
|
|
99024
98696
|
}
|
|
99025
98697
|
}
|
|
@@ -99027,7 +98699,6 @@ var FadeTransitionsInternal = ({
|
|
|
99027
98699
|
}, totalDuration);
|
|
99028
98700
|
animationTimeoutsRef.current.push(completeTimeout);
|
|
99029
98701
|
}, [
|
|
99030
|
-
isAnimating,
|
|
99031
98702
|
duration,
|
|
99032
98703
|
delay,
|
|
99033
98704
|
stagger,
|
|
@@ -99056,19 +98727,20 @@ var FadeTransitionsInternal = ({
|
|
|
99056
98727
|
handleVisibilityChange(!isVisible);
|
|
99057
98728
|
}
|
|
99058
98729
|
};
|
|
98730
|
+
const observerCallback = useCallback((entries) => {
|
|
98731
|
+
entries.forEach((entry) => {
|
|
98732
|
+
if (entry.isIntersecting && !isVisible) {
|
|
98733
|
+
handleVisibilityChange(true);
|
|
98734
|
+
} else if (!entry.isIntersecting && reverseOnExit && isVisible) {
|
|
98735
|
+
handleVisibilityChange(false);
|
|
98736
|
+
}
|
|
98737
|
+
});
|
|
98738
|
+
}, [isVisible, reverseOnExit, handleVisibilityChange]);
|
|
99059
98739
|
useEffect(() => {
|
|
99060
98740
|
if (trigger !== "scroll" || !containerRef.current)
|
|
99061
98741
|
return;
|
|
99062
98742
|
observerRef.current = new IntersectionObserver(
|
|
99063
|
-
|
|
99064
|
-
entries.forEach((entry) => {
|
|
99065
|
-
if (entry.isIntersecting && !isVisible) {
|
|
99066
|
-
handleVisibilityChange(true);
|
|
99067
|
-
} else if (!entry.isIntersecting && reverseOnExit && isVisible) {
|
|
99068
|
-
handleVisibilityChange(false);
|
|
99069
|
-
}
|
|
99070
|
-
});
|
|
99071
|
-
},
|
|
98743
|
+
observerCallback,
|
|
99072
98744
|
{
|
|
99073
98745
|
threshold
|
|
99074
98746
|
}
|
|
@@ -99079,17 +98751,18 @@ var FadeTransitionsInternal = ({
|
|
|
99079
98751
|
observerRef.current.disconnect();
|
|
99080
98752
|
}
|
|
99081
98753
|
};
|
|
99082
|
-
}, [trigger, threshold,
|
|
98754
|
+
}, [trigger, threshold, observerCallback]);
|
|
99083
98755
|
useEffect(() => {
|
|
99084
98756
|
if (controlledVisible !== void 0) {
|
|
99085
98757
|
handleVisibilityChange(controlledVisible);
|
|
99086
98758
|
}
|
|
99087
|
-
}, [controlledVisible]);
|
|
98759
|
+
}, [controlledVisible, handleVisibilityChange]);
|
|
99088
98760
|
useEffect(() => {
|
|
99089
|
-
if (trigger === "auto" && !controlledVisible) {
|
|
98761
|
+
if (trigger === "auto" && !hasAutoTriggered.current && !controlledVisible) {
|
|
98762
|
+
hasAutoTriggered.current = true;
|
|
99090
98763
|
handleVisibilityChange(true);
|
|
99091
98764
|
}
|
|
99092
|
-
}, [trigger]);
|
|
98765
|
+
}, [trigger, controlledVisible, handleVisibilityChange]);
|
|
99093
98766
|
useEffect(() => {
|
|
99094
98767
|
return () => {
|
|
99095
98768
|
animationTimeoutsRef.current.forEach((timeout) => clearTimeout(timeout));
|
|
@@ -99776,25 +99449,64 @@ var SwipeActionsInternal = ({
|
|
|
99776
99449
|
swipeDirection === "up" && "justify-end pb-4 flex-col"
|
|
99777
99450
|
),
|
|
99778
99451
|
style: { backgroundColor: activeAction.backgroundColor },
|
|
99779
|
-
children: actions.map((action, index2) =>
|
|
99780
|
-
|
|
99781
|
-
|
|
99782
|
-
|
|
99783
|
-
|
|
99784
|
-
|
|
99785
|
-
|
|
99786
|
-
|
|
99787
|
-
|
|
99788
|
-
|
|
99789
|
-
|
|
99790
|
-
|
|
99791
|
-
|
|
99792
|
-
|
|
99452
|
+
children: actions.map((action, index2) => {
|
|
99453
|
+
const getTextColor = (bgColor) => {
|
|
99454
|
+
if (!bgColor)
|
|
99455
|
+
return "text-gray-900 dark:text-gray-100";
|
|
99456
|
+
const hexToRgb = (hex) => {
|
|
99457
|
+
hex = hex.replace(/^#/, "");
|
|
99458
|
+
if (hex.length === 3) {
|
|
99459
|
+
hex = hex.split("").map((char) => char + char).join("");
|
|
99460
|
+
}
|
|
99461
|
+
if (hex.length === 6) {
|
|
99462
|
+
const r3 = parseInt(hex.substring(0, 2), 16);
|
|
99463
|
+
const g2 = parseInt(hex.substring(2, 4), 16);
|
|
99464
|
+
const b2 = parseInt(hex.substring(4, 6), 16);
|
|
99465
|
+
return [r3, g2, b2];
|
|
99466
|
+
}
|
|
99467
|
+
return null;
|
|
99468
|
+
};
|
|
99469
|
+
const getLuminance = (r3, g2, b2) => {
|
|
99470
|
+
const [rs, gs, bs] = [r3, g2, b2].map((val) => {
|
|
99471
|
+
val = val / 255;
|
|
99472
|
+
return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);
|
|
99473
|
+
});
|
|
99474
|
+
return 0.2126 * rs + 0.7152 * gs + 0.0722 * bs;
|
|
99475
|
+
};
|
|
99476
|
+
const rgb = hexToRgb(bgColor.toLowerCase());
|
|
99477
|
+
if (!rgb) {
|
|
99478
|
+
return "text-gray-900 dark:text-gray-100";
|
|
99479
|
+
}
|
|
99480
|
+
const [r2, g, b] = rgb;
|
|
99481
|
+
const luminance = getLuminance(r2, g, b);
|
|
99482
|
+
if (luminance > 0.5) {
|
|
99483
|
+
return "text-gray-900 dark:text-gray-800";
|
|
99484
|
+
} else {
|
|
99485
|
+
return "text-white dark:text-gray-100";
|
|
99486
|
+
}
|
|
99487
|
+
};
|
|
99488
|
+
const textColorClass = getTextColor(action.color);
|
|
99489
|
+
return /* @__PURE__ */ jsxs(
|
|
99490
|
+
"div",
|
|
99491
|
+
{
|
|
99492
|
+
className: cn(
|
|
99493
|
+
"flex items-center gap-2 px-4 py-2 rounded-lg transition-all duration-200",
|
|
99494
|
+
isHorizontal ? "mr-2 last:mr-0 flex-row" : "mb-2 last:mb-0 flex-col",
|
|
99495
|
+
action === activeAction && "scale-110"
|
|
99496
|
+
),
|
|
99497
|
+
style: {
|
|
99498
|
+
backgroundColor: action.color,
|
|
99499
|
+
marginRight: isHorizontal ? actionSpacing : 0,
|
|
99500
|
+
marginBottom: isHorizontal ? 0 : actionSpacing
|
|
99501
|
+
},
|
|
99502
|
+
children: [
|
|
99503
|
+
/* @__PURE__ */ jsx("div", { className: textColorClass, children: action.icon }),
|
|
99504
|
+
action.label && /* @__PURE__ */ jsx("span", { className: cn("font-medium text-sm whitespace-nowrap", textColorClass), children: action.label })
|
|
99505
|
+
]
|
|
99793
99506
|
},
|
|
99794
|
-
|
|
99795
|
-
|
|
99796
|
-
|
|
99797
|
-
))
|
|
99507
|
+
action.id
|
|
99508
|
+
);
|
|
99509
|
+
})
|
|
99798
99510
|
}
|
|
99799
99511
|
);
|
|
99800
99512
|
};
|
|
@@ -99857,6 +99569,7 @@ var SwipeActions = (props) => {
|
|
|
99857
99569
|
}
|
|
99858
99570
|
return /* @__PURE__ */ jsx(SwipeActionsInternal, { ...props });
|
|
99859
99571
|
};
|
|
99572
|
+
SwipeActions.displayName = "SwipeActions";
|
|
99860
99573
|
var ClickAnimationsInternal = ({
|
|
99861
99574
|
children,
|
|
99862
99575
|
className,
|
|
@@ -100145,6 +99858,13 @@ var ClickAnimationsInternal = ({
|
|
|
100145
99858
|
const easedProgress = getEasingFunction(config.easing, progress);
|
|
100146
99859
|
const intensity2 = config.intensity;
|
|
100147
99860
|
switch (type) {
|
|
99861
|
+
case "ripple":
|
|
99862
|
+
const rippleScale = 1 + easedProgress * intensity2 * 0.05;
|
|
99863
|
+
const rippleOpacity = 1 - easedProgress * 0.2;
|
|
99864
|
+
return {
|
|
99865
|
+
transform: `scale(${rippleScale})`,
|
|
99866
|
+
opacity: rippleOpacity
|
|
99867
|
+
};
|
|
100148
99868
|
case "scale":
|
|
100149
99869
|
const scale = 1 + easedProgress * intensity2 * 0.1;
|
|
100150
99870
|
return { transform: `scale(${scale})` };
|
|
@@ -100167,6 +99887,12 @@ var ClickAnimationsInternal = ({
|
|
|
100167
99887
|
opacity: pulseOpacity,
|
|
100168
99888
|
transform: `scale(${pulseScale})`
|
|
100169
99889
|
};
|
|
99890
|
+
case "wave":
|
|
99891
|
+
const waveRotate = Math.sin(easedProgress * Math.PI * 2) * intensity2 * 5;
|
|
99892
|
+
const waveScale = 1 + Math.sin(easedProgress * Math.PI) * intensity2 * 0.08;
|
|
99893
|
+
return {
|
|
99894
|
+
transform: `scale(${waveScale}) rotate(${waveRotate}deg)`
|
|
99895
|
+
};
|
|
100170
99896
|
default:
|
|
100171
99897
|
return {};
|
|
100172
99898
|
}
|
|
@@ -100244,6 +99970,25 @@ var ClickAnimations = (props) => {
|
|
|
100244
99970
|
}
|
|
100245
99971
|
return /* @__PURE__ */ jsx(ClickAnimationsInternal, { ...props });
|
|
100246
99972
|
};
|
|
99973
|
+
ClickAnimations.displayName = "ClickAnimations";
|
|
99974
|
+
var getColorValue = (colorName) => {
|
|
99975
|
+
const colors = {
|
|
99976
|
+
blue: "#3b82f6",
|
|
99977
|
+
purple: "#a855f7",
|
|
99978
|
+
green: "#10b981",
|
|
99979
|
+
red: "#ef4444",
|
|
99980
|
+
yellow: "#eab308",
|
|
99981
|
+
cyan: "#06b6d4",
|
|
99982
|
+
indigo: "#6366f1",
|
|
99983
|
+
pink: "#ec4899",
|
|
99984
|
+
orange: "#f97316",
|
|
99985
|
+
violet: "#8b5cf6",
|
|
99986
|
+
emerald: "#10b981",
|
|
99987
|
+
rose: "#f43f5e",
|
|
99988
|
+
slate: "#64748b"
|
|
99989
|
+
};
|
|
99990
|
+
return colors[colorName] || colorName;
|
|
99991
|
+
};
|
|
100247
99992
|
var FocusTransitionsInternal = forwardRef(({
|
|
100248
99993
|
children,
|
|
100249
99994
|
className,
|
|
@@ -100320,6 +100065,24 @@ var FocusTransitionsInternal = forwardRef(({
|
|
|
100320
100065
|
offset: focusOffset,
|
|
100321
100066
|
blur: focusBlur
|
|
100322
100067
|
}), [duration, easing, intensity, focusColor, focusOffset, focusBlur]);
|
|
100068
|
+
const getEasingCSS = useCallback((easingType) => {
|
|
100069
|
+
switch (easingType) {
|
|
100070
|
+
case "ease":
|
|
100071
|
+
return "ease";
|
|
100072
|
+
case "ease-in":
|
|
100073
|
+
return "ease-in";
|
|
100074
|
+
case "ease-out":
|
|
100075
|
+
return "ease-out";
|
|
100076
|
+
case "ease-in-out":
|
|
100077
|
+
return "ease-in-out";
|
|
100078
|
+
case "bounce":
|
|
100079
|
+
return "cubic-bezier(0.68, -0.55, 0.265, 1.55)";
|
|
100080
|
+
case "elastic":
|
|
100081
|
+
return "cubic-bezier(0.68, -0.25, 0.265, 1.25)";
|
|
100082
|
+
default:
|
|
100083
|
+
return "ease-out";
|
|
100084
|
+
}
|
|
100085
|
+
}, []);
|
|
100323
100086
|
const startAnimation = useCallback((direction, customConfig) => {
|
|
100324
100087
|
if (prefersReducedMotion)
|
|
100325
100088
|
return;
|
|
@@ -100488,9 +100251,10 @@ var FocusTransitionsInternal = forwardRef(({
|
|
|
100488
100251
|
const getAnimationStyles = useCallback((config) => {
|
|
100489
100252
|
const { type, intensity: intensity2, color, offset: offset4, blur: blur2 } = config;
|
|
100490
100253
|
const baseStyles = {};
|
|
100254
|
+
const cssColor = getColorValue(color || focusColor);
|
|
100491
100255
|
switch (type) {
|
|
100492
100256
|
case "glow":
|
|
100493
|
-
baseStyles.boxShadow = `0 0 ${intensity2 * 10}px ${intensity2 * 2}px ${
|
|
100257
|
+
baseStyles.boxShadow = `0 0 ${intensity2 * 10}px ${intensity2 * 2}px ${cssColor}`;
|
|
100494
100258
|
if (blur2)
|
|
100495
100259
|
baseStyles.filter = `blur(${blur2}px)`;
|
|
100496
100260
|
break;
|
|
@@ -100498,7 +100262,7 @@ var FocusTransitionsInternal = forwardRef(({
|
|
|
100498
100262
|
baseStyles.transform = `scale(${1 + intensity2 * 0.05})`;
|
|
100499
100263
|
break;
|
|
100500
100264
|
case "border":
|
|
100501
|
-
baseStyles.border = `${focusThickness}px solid ${
|
|
100265
|
+
baseStyles.border = `${focusThickness}px solid ${cssColor}`;
|
|
100502
100266
|
baseStyles.borderRadius = `${focusRadius}px`;
|
|
100503
100267
|
break;
|
|
100504
100268
|
case "shadow":
|
|
@@ -100511,34 +100275,35 @@ var FocusTransitionsInternal = forwardRef(({
|
|
|
100511
100275
|
baseStyles.opacity = 0.8 + intensity2 * 0.2;
|
|
100512
100276
|
break;
|
|
100513
100277
|
case "pulse":
|
|
100514
|
-
baseStyles.animation = `pulse ${duration}ms ${easing} infinite`;
|
|
100278
|
+
baseStyles.animation = `pulse ${duration}ms ${getEasingCSS(easing)} infinite`;
|
|
100515
100279
|
break;
|
|
100516
100280
|
case "outline":
|
|
100517
|
-
baseStyles.outline = `${focusThickness}px solid ${
|
|
100281
|
+
baseStyles.outline = `${focusThickness}px solid ${cssColor}`;
|
|
100518
100282
|
baseStyles.outlineOffset = `${offset4}px`;
|
|
100519
100283
|
break;
|
|
100520
100284
|
}
|
|
100521
100285
|
return baseStyles;
|
|
100522
|
-
}, [focusThickness, focusRadius, duration, easing]);
|
|
100286
|
+
}, [focusThickness, focusRadius, duration, easing, focusColor, getEasingCSS]);
|
|
100523
100287
|
const getFocusRingStyles = useCallback(() => {
|
|
100524
100288
|
if (!showFocusRing || !focusState.isFocused)
|
|
100525
100289
|
return {};
|
|
100290
|
+
const cssColor = getColorValue(focusColor);
|
|
100526
100291
|
const ringStyles = {
|
|
100527
100292
|
position: "absolute",
|
|
100528
100293
|
top: focusRingPosition === "outside" ? -focusOffset : 0,
|
|
100529
100294
|
left: focusRingPosition === "outside" ? -focusOffset : 0,
|
|
100530
100295
|
right: focusRingPosition === "outside" ? -focusOffset : 0,
|
|
100531
100296
|
bottom: focusRingPosition === "outside" ? -focusOffset : 0,
|
|
100532
|
-
border: `${focusThickness}px solid ${
|
|
100297
|
+
border: `${focusThickness}px solid ${cssColor}`,
|
|
100533
100298
|
borderRadius: focusRadius,
|
|
100534
100299
|
pointerEvents: "none",
|
|
100535
100300
|
zIndex: 1
|
|
100536
100301
|
};
|
|
100537
100302
|
if (glowEffect) {
|
|
100538
|
-
ringStyles.boxShadow = `0 0 ${focusBlur * 2}px ${
|
|
100303
|
+
ringStyles.boxShadow = `0 0 ${focusBlur * 2}px ${cssColor}`;
|
|
100539
100304
|
}
|
|
100540
100305
|
if (shadowEffect) {
|
|
100541
|
-
ringStyles.filter = `drop-shadow(0 0 ${focusBlur}px ${
|
|
100306
|
+
ringStyles.filter = `drop-shadow(0 0 ${focusBlur}px ${cssColor})`;
|
|
100542
100307
|
}
|
|
100543
100308
|
return ringStyles;
|
|
100544
100309
|
}, [
|
|
@@ -100594,7 +100359,7 @@ var FocusTransitionsInternal = forwardRef(({
|
|
|
100594
100359
|
"aria-disabled": disabled,
|
|
100595
100360
|
style: {
|
|
100596
100361
|
...getCombinedStyles(),
|
|
100597
|
-
transition: performanceMode ? "none" : `all ${duration}ms ${easing}`
|
|
100362
|
+
transition: performanceMode ? "none" : `all ${duration}ms ${getEasingCSS(easing)}`
|
|
100598
100363
|
},
|
|
100599
100364
|
children: [
|
|
100600
100365
|
!customFocusRing && /* @__PURE__ */ jsx(
|
|
@@ -100617,13 +100382,16 @@ var FocusTransitionsInternal = forwardRef(({
|
|
|
100617
100382
|
});
|
|
100618
100383
|
FocusTransitionsInternal.displayName = "FocusTransitionsInternal";
|
|
100619
100384
|
var FocusTransitions = forwardRef((props, ref) => {
|
|
100620
|
-
const { hasProAccess } = useSubscription();
|
|
100621
|
-
if (!hasProAccess) {
|
|
100622
|
-
return /* @__PURE__ */
|
|
100623
|
-
|
|
100624
|
-
|
|
100625
|
-
|
|
100626
|
-
|
|
100385
|
+
const { hasProAccess, isLoading } = useSubscription();
|
|
100386
|
+
if (!isLoading && !hasProAccess) {
|
|
100387
|
+
return /* @__PURE__ */ jsx(
|
|
100388
|
+
ProLockScreen,
|
|
100389
|
+
{
|
|
100390
|
+
componentName: "FocusTransitions",
|
|
100391
|
+
compact: true,
|
|
100392
|
+
className: "inline-block"
|
|
100393
|
+
}
|
|
100394
|
+
);
|
|
100627
100395
|
}
|
|
100628
100396
|
return /* @__PURE__ */ jsx(FocusTransitionsInternal, { ...props, ref });
|
|
100629
100397
|
});
|
|
@@ -101063,17 +100831,6 @@ FocusTransitions.displayName = "FocusTransitions";
|
|
|
101063
100831
|
* @license MIT
|
|
101064
100832
|
* @credits React Bits by David H
|
|
101065
100833
|
*/
|
|
101066
|
-
/**
|
|
101067
|
-
* SpringPhysics Component
|
|
101068
|
-
*
|
|
101069
|
-
* Provides realistic spring physics animations with damping and tension
|
|
101070
|
-
* Derived from React Bits (https://github.com/DavidHDev/react-bits)
|
|
101071
|
-
* Adapted for MoonUI Pro with TypeScript and enhanced features
|
|
101072
|
-
*
|
|
101073
|
-
* @author MoonUI Team
|
|
101074
|
-
* @license MIT
|
|
101075
|
-
* @credits React Bits by David H
|
|
101076
|
-
*/
|
|
101077
100834
|
/**
|
|
101078
100835
|
* ElasticAnimation Component
|
|
101079
100836
|
*
|
|
@@ -101130,4 +100887,4 @@ FocusTransitions.displayName = "FocusTransitions";
|
|
|
101130
100887
|
* @credits React Bits by David H
|
|
101131
100888
|
*/
|
|
101132
100889
|
|
|
101133
|
-
export { MoonUIAccordionPro as Accordion, MoonUIAccordionContentPro as AccordionContent, MoonUIAccordionItemPro as AccordionItem, MoonUIAccordionTriggerPro as AccordionTrigger, Calendar3 as AdvancedCalendar, AdvancedChart, AdvancedForms, MoonUIAlertPro as Alert, MoonUIAlertDescriptionPro as AlertDescription, AlertDialog2 as AlertDialog, AlertDialogAction2 as AlertDialogAction, AlertDialogCancel2 as AlertDialogCancel, AlertDialogContent2 as AlertDialogContent, AlertDialogDescription2 as AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay2 as AlertDialogOverlay, AlertDialogPortal2 as AlertDialogPortal, AlertDialogTitle2 as AlertDialogTitle, AlertDialogTrigger2 as AlertDialogTrigger, MoonUIAlertTitlePro as AlertTitle, AnimatedNumber, MoonUIAspectRatioPro as AspectRatio, AuroraBackground, MoonUIAvatarPro as Avatar, MoonUIAvatarFallbackPro as AvatarFallback, MoonUIAvatarImagePro as AvatarImage, MoonUIBadgePro as Badge, BentoGrid, BentoGridItem, BlurFade, BounceEffect, MoonUIBreadcrumbPro as Breadcrumb, MoonUIBreadcrumbEllipsisPro as BreadcrumbEllipsis, MoonUIBreadcrumbItemPro as BreadcrumbItem, MoonUIBreadcrumbLinkPro as BreadcrumbLink, MoonUIBreadcrumbListPro as BreadcrumbList, MoonUIBreadcrumbPagePro as BreadcrumbPage, MoonUIBreadcrumbSeparatorPro as BreadcrumbSeparator, BubbleBackground, MoonUIButtonPro as Button, Calendar, Calendar3 as CalendarPro, MoonUICardPro as Card, MoonUICardContentPro as CardContent, MoonUICardDescriptionPro as CardDescription, MoonUICardFooterPro as CardFooter, MoonUICardHeaderPro as CardHeader, MoonUICardTitlePro as CardTitle, ChartWidget2 as ChartWidget, MoonUICheckboxPro as Checkbox, ClaudeProvider, ClickAnimations, CodeSnippets, MoonUICollapsiblePro as Collapsible, MoonUICollapsibleContentPro as CollapsibleContent, MoonUICollapsibleTriggerPro as CollapsibleTrigger, MoonUIColorPickerPro as ColorPicker, MoonUICommandPro as Command, MoonUICommandDialogPro as CommandDialog, MoonUICommandEmptyPro as CommandEmpty, MoonUICommandGroupPro as CommandGroup, MoonUICommandInputPro as CommandInput, MoonUICommandItemPro as CommandItem, MoonUICommandListPro as CommandList, MoonUICommandSeparatorPro as CommandSeparator, MoonUICommandShortcutPro as CommandShortcut, Confetti, ConfettiButton, CursorTrail, Dashboard, DataTable, MoonUIDialogPro as Dialog, MoonUIDialogClosePro as DialogClose, MoonUIDialogContentPro as DialogContent, MoonUIDialogDescriptionPro as DialogDescription, MoonUIDialogFooterPro as DialogFooter, MoonUIDialogHeaderPro as DialogHeader, MoonUIDialogTitlePro as DialogTitle, MoonUIDialogTriggerPro as DialogTrigger, DocsProProvider, DotPattern, DraggableList, MoonUIDropdownMenuPro as DropdownMenu, MoonUIDropdownMenuCheckboxItemPro as DropdownMenuCheckboxItem, MoonUIDropdownMenuContentPro as DropdownMenuContent, MoonUIDropdownMenuGroupPro as DropdownMenuGroup, MoonUIDropdownMenuItemPro as DropdownMenuItem, MoonUIDropdownMenuLabelPro as DropdownMenuLabel, MoonUIDropdownMenuPortalPro as DropdownMenuPortal, MoonUIDropdownMenuRadioGroupPro as DropdownMenuRadioGroup, MoonUIDropdownMenuRadioItemPro as DropdownMenuRadioItem, MoonUIDropdownMenuSeparatorPro as DropdownMenuSeparator, MoonUIDropdownMenuShortcutPro as DropdownMenuShortcut, MoonUIDropdownMenuSubPro as DropdownMenuSub, MoonUIDropdownMenuSubContentPro as DropdownMenuSubContent, MoonUIDropdownMenuSubTriggerPro as DropdownMenuSubTrigger, MoonUIDropdownMenuTriggerPro as DropdownMenuTrigger, ElasticAnimation, ErrorBoundary, FadeTransitions, FlipText, FloatingActionButton, FloatingDock, FloatingElements, FocusTransitions, FormWizard, FormWizardNavigation, FormWizardProgress, FormWizardStep, FunnelWidget, MoonUIGalleryItemPro as GalleryItem, GaugeWidget, GeminiProvider, GeometricPatterns, GestureDrawer, GitHubStars, GlitchBackground, GlitchText, GlowCard, GlowEffect, GradientFlow, GradientText, GridDistortion, GridPattern, HealthCheck, HoverCard2 as HoverCard, HoverCard3D, HoverCardContent2 as HoverCardContent, HoverCardTrigger2 as HoverCardTrigger, MoonUIInputPro as Input, KPIWidget, Kanban, LANGUAGE_COLORS, MoonUILabelPro as Label, LazyComponent, LazyImage, LazyList, LightboxContent, LightboxProvider, LightboxTrigger, LiquidBackground, MagneticButton, MagneticElements, Marquee, MatrixRain, MoonUIMediaGalleryPro as MediaGallery, MemoryAnalytics, MemoryEfficientData, MeshGradient, Meteors, MoonUIAccordionContentPro, MoonUIAccordionItemPro, MoonUIAccordionPro, MoonUIAccordionTriggerPro, MoonUIAdvancedChartPro, MoonUIAlertDescriptionPro, AlertDialogAction2 as MoonUIAlertDialogActionPro, AlertDialogCancel2 as MoonUIAlertDialogCancelPro, AlertDialogContent2 as MoonUIAlertDialogContentPro, AlertDialogDescription2 as MoonUIAlertDialogDescriptionPro, AlertDialogFooter as MoonUIAlertDialogFooterPro, AlertDialogHeader as MoonUIAlertDialogHeaderPro, AlertDialogOverlay2 as MoonUIAlertDialogOverlayPro, AlertDialogPortal2 as MoonUIAlertDialogPortalPro, AlertDialog2 as MoonUIAlertDialogPro, AlertDialogTitle2 as MoonUIAlertDialogTitlePro, AlertDialogTrigger2 as MoonUIAlertDialogTriggerPro, MoonUIAlertPro, MoonUIAlertTitlePro, MoonUIAnimatedButtonPro, MoonUIAnimatedListPro, MoonUIAspectRatioPro, MoonUIAsyncAvatarPro, MoonUIAuthProvider, MoonUIAvatarFallbackPro, MoonUIAvatarGroupPro2 as MoonUIAvatarGroupPro, MoonUIAvatarImagePro, MoonUIAvatarPro2 as MoonUIAvatarPro, MoonUIBadgePro, MoonUIBreadcrumbEllipsisPro, MoonUIBreadcrumbItemPro, MoonUIBreadcrumbLinkPro, MoonUIBreadcrumbListPro, MoonUIBreadcrumbPagePro, MoonUIBreadcrumbPro, MoonUIBreadcrumbSeparatorPro, MoonUIButtonPro, Calendar3 as MoonUICalendarPro, MoonUICardContentPro, MoonUICardDescriptionPro, MoonUICardFooterPro, MoonUICardHeaderPro, MoonUICardPro, MoonUICardTitlePro, ChartWidget2 as MoonUIChartWidget, MoonUICheckboxPro, MoonUICollapsibleContentPro, MoonUICollapsiblePro, MoonUICollapsibleTriggerPro, MoonUIColorPickerPro, MoonUICommandDialogPro, MoonUICommandEmptyPro, MoonUICommandGroupPro, MoonUICommandInputPro, MoonUICommandItemPro, MoonUICommandListPro, MoonUICommandPro, MoonUICommandSeparatorPro, MoonUICommandShortcutPro, MoonUICreditCardInputPro, Dashboard as MoonUIDashboardPro, MoonUIDataTable, DataTable as MoonUIDataTablePro, MoonUIDialogClosePro, MoonUIDialogContentPro, MoonUIDialogDescriptionPro, MoonUIDialogFooterPro, MoonUIDialogHeaderPro, MoonUIDialogPro, MoonUIDialogTitlePro, MoonUIDialogTriggerPro, DraggableList as MoonUIDraggableListPro, MoonUIDropdownMenuCheckboxItemPro, MoonUIDropdownMenuContentPro, MoonUIDropdownMenuGroupPro, MoonUIDropdownMenuItemPro, MoonUIDropdownMenuLabelPro, MoonUIDropdownMenuPortalPro, MoonUIDropdownMenuPro, MoonUIDropdownMenuRadioGroupPro, MoonUIDropdownMenuRadioItemPro, MoonUIDropdownMenuSeparatorPro, MoonUIDropdownMenuShortcutPro, MoonUIDropdownMenuSubContentPro, MoonUIDropdownMenuSubPro, MoonUIDropdownMenuSubTriggerPro, MoonUIDropdownMenuTriggerPro, file_upload_default as MoonUIFileUploadPro, MoonUIFormWizardPro, FunnelWidget as MoonUIFunnelWidget, MoonUIGalleryItemPro, GaugeWidget as MoonUIGaugeWidget, MoonUIGestureDrawerPro, MoonUIInputPro, KPIWidget as MoonUIKPIWidget, MoonUIKanbanPro, MoonUILabelPro, LightboxContent as MoonUILightboxContentPro, SimpleLightbox as MoonUILightboxPro, LightboxProvider as MoonUILightboxProviderPro, LightboxTrigger as MoonUILightboxTriggerPro, MagneticButton as MoonUIMagneticButtonPro, MoonUIMediaGalleryPro, MoonUIMemoryEfficientDataPro, Navbar as MoonUINavbarPro, MoonUIPaginationContentPro, MoonUIPaginationEllipsisPro, MoonUIPaginationItemPro, MoonUIPaginationLinkPro, MoonUIPaginationNextPro, MoonUIPaginationPreviousPro, MoonUIPaginationPro, PhoneNumberInput as MoonUIPhoneNumberInputPro, MoonUIPhoneNumberInputSimple, MoonUIPopoverContentPro, MoonUIPopoverPro, MoonUIPopoverTriggerPro, MoonUIProgressPro, MoonUIQuizFormPro2 as MoonUIQuizFormPro, MoonUIRadioGroupContextPro, MoonUIRadioGroupItemPro, MoonUIRadioGroupPro, MoonUIRadioItemWithLabelPro, MoonUIRadioLabelPro, RevenueWidget as MoonUIRevenueWidget, RichTextEditor as MoonUIRichTextEditorPro, MoonUISelectContentPro, MoonUISelectGroupPro, MoonUISelectItemPro, MoonUISelectLabelPro, MoonUISelectPro, MoonUISelectSeparatorPro, MoonUISelectTriggerPro, MoonUISelectValuePro, SelectableVirtualList as MoonUISelectableVirtualListPro, MoonUISeparatorPro, ServerMonitorWidget as MoonUIServerMonitorWidget, Sidebar as MoonUISidebarPro, MoonUISkeletonPro, MoonUISliderPro, MoonUISpotlightCardPro, SwipeableCard as MoonUISwipeableCardPro, MoonUISwitchPro, MoonUITableBodyPro, MoonUITableCaptionPro, MoonUITableCellPro, MoonUITableFooterPro, MoonUITableHeadPro, MoonUITableHeaderPro, MoonUITablePro, MoonUITableRowPro, MoonUITabsContentPro, MoonUITabsPro as MoonUITabsEnhanced, MoonUITabsListPro, MoonUITabsPro, MoonUITabsTriggerPro, MoonUITextareaPro, Timeline as MoonUITimelinePro, MoonUIToastPro, MoonUITogglePro, MoonUITooltipContentPro, MoonUITooltipPro, MoonUITooltipProviderPro, MoonUITooltipTriggerPro, VirtualList as MoonUIVirtualListPro, WidgetBase as MoonUIWidgetBase, MoonUIalertVariantsPro, MoonUIaspectRatioVariantsPro, MoonUIbreadcrumbVariantsPro, collapsibleContentVariants as MoonUIcollapsibleContentVariantsPro, collapsibleTriggerVariants as MoonUIcollapsibleTriggerVariantsPro, MoonUIradioGroupItemVariantsPro, MoonUItableVariantsPro, MoonUItoggleVariantsPro, MorphingText, MouseTrail, Navbar, NavigationMenu2 as NavigationMenu, NavigationMenuContent2 as NavigationMenuContent, NavigationMenuIndicator2 as NavigationMenuIndicator, NavigationMenuItem2 as NavigationMenuItem, NavigationMenuLink2 as NavigationMenuLink, NavigationMenuList2 as NavigationMenuList, NavigationMenuTrigger2 as NavigationMenuTrigger, NavigationMenuViewport2 as NavigationMenuViewport, NeonEffect, NumberTicker, OpenAIProvider, OptimizedImage, MoonUIPaginationPro as Pagination, MoonUIPaginationContentPro as PaginationContent, MoonUIPaginationEllipsisPro as PaginationEllipsis, MoonUIPaginationItemPro as PaginationItem, MoonUIPaginationLinkPro as PaginationLink, MoonUIPaginationNextPro as PaginationNext, MoonUIPaginationPreviousPro as PaginationPrevious, ParallaxScroll, Particles, PathAnimations, PerformanceDebugger, PerformanceMonitor, PhoneNumberInput, PinchZoom, MoonUIPopoverPro as Popover, MoonUIPopoverContentPro as PopoverContent, MoonUIPopoverTriggerPro as PopoverTrigger, ProLockScreen, MoonUIProgressPro as Progress, QuizForm, MoonUIRadioGroupPro as RadioGroup, MoonUIRadioGroupContextPro as RadioGroupContext, MoonUIRadioGroupItemPro as RadioGroupItem, MoonUIRadioItemWithLabelPro as RadioItemWithLabel, MoonUIRadioLabelPro as RadioLabel, RealTimePerformanceMonitor, RevealCard, RevealCards, RevenueWidget, RichTextEditor, Ripple, spotlightPresets as SPOTLIGHT_PRESETS, SVGAnimations, ScrambledText, ScrollArea, ScrollBar, ScrollReveal, MoonUISelectPro as Select, MoonUISelectContentPro as SelectContent, MoonUISelectGroupPro as SelectGroup, MoonUISelectItemPro as SelectItem, MoonUISelectLabelPro as SelectLabel, MoonUISelectSeparatorPro as SelectSeparator, MoonUISelectTriggerPro as SelectTrigger, MoonUISelectValuePro as SelectValue, SelectableVirtualList, MoonUISeparatorPro as Separator, ServerMonitorWidget, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Shimmer, ShinyText, Sidebar, SimpleLightbox, MoonUISkeletonPro as Skeleton, MoonUISliderPro as Slider, Sparkles36 as Sparkles, SplashCursor, SplashCursorContainer, Spotlight, SpringPhysics, Starfield, SubscriptionProvider, SwipeActions, SwipeableCard, MoonUISwitchPro as Switch, MoonUITablePro as Table, MoonUITableBodyPro as TableBody, MoonUITableCaptionPro as TableCaption, MoonUITableCellPro as TableCell, MoonUITableFooterPro as TableFooter, MoonUITableHeadPro as TableHead, MoonUITableHeaderPro as TableHeader, MoonUITableRowPro as TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Text3D, TextReveal, MoonUITextareaPro as Textarea, Timeline, MoonUIToastPro as Toast, MoonUITogglePro as Toggle, MoonUITooltipPro as Tooltip, MoonUITooltipContentPro as TooltipContent, MoonUITooltipProviderPro as TooltipProvider, MoonUITooltipTriggerPro as TooltipTrigger, TouchGestures, TypewriterText, VirtualList, Waves, WavyText, WidgetBase, WordRotate, MoonUIalertVariantsPro as alertVariants, MoonUIaspectRatioVariantsPro as aspectRatioVariants, moonUIBadgeVariantsPro as badgeVariants, MoonUIbreadcrumbVariantsPro as breadcrumbVariants, moonUIButtonProVariants as buttonVariants, clearAuth, clearAuth as clearAuthV2, cn, codeSnippetsPresets, collapsibleContentVariants, collapsibleTriggerVariants, commandVariantsPro, createAIProvider, forceRefresh, forceRefresh as forceRefreshV2, galleryItemVariants, galleryVariants, getExpandableColumn, hoverCard3DVariants, magneticButtonVariants, moonUIAnimatedButtonProVariants, badgeVariants as moonUIAvatarBadgeVariants, avatarVariants as moonUIAvatarProVariants, statusVariants as moonUIAvatarStatusVariants, moonUIBadgeVariantsPro, moonUIButtonProVariants, gestureDrawerVariants as moonUIGestureDrawerProVariants, magneticButtonVariants as moonUIMagneticButtonVariantsPro, moonUISeparatorVariantsPro, navigationMenuTriggerStyle, countries as phoneCountries, MoonUIradioGroupItemVariantsPro as radioGroupItemVariants, moonUISeparatorVariantsPro as separatorVariants, spotlightPresets, MoonUItableVariantsPro as tableVariants, MoonUItoggleVariantsPro as toggleVariants, useAccordionAnalytics, useCollapsibleAnalytics, useExpandableRows, useFormWizard, useMoonUIAuth, useStreamingData, useSubscription, useSubscriptionContext, useSubscription as useSubscriptionV2, useVirtualList };
|
|
100890
|
+
export { MoonUIAccordionPro as Accordion, MoonUIAccordionContentPro as AccordionContent, MoonUIAccordionItemPro as AccordionItem, MoonUIAccordionTriggerPro as AccordionTrigger, Calendar3 as AdvancedCalendar, AdvancedChart, AdvancedForms, MoonUIAlertPro as Alert, MoonUIAlertDescriptionPro as AlertDescription, AlertDialog2 as AlertDialog, AlertDialogAction2 as AlertDialogAction, AlertDialogCancel2 as AlertDialogCancel, AlertDialogContent2 as AlertDialogContent, AlertDialogDescription2 as AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay2 as AlertDialogOverlay, AlertDialogPortal2 as AlertDialogPortal, AlertDialogTitle2 as AlertDialogTitle, AlertDialogTrigger2 as AlertDialogTrigger, MoonUIAlertTitlePro as AlertTitle, MoonUIAnimatedListPro as AnimatedList, AnimatedNumber, MoonUIAspectRatioPro as AspectRatio, AuroraBackground, MoonUIAvatarPro as Avatar, MoonUIAvatarFallbackPro as AvatarFallback, MoonUIAvatarImagePro as AvatarImage, MoonUIBadgePro as Badge, BentoGrid, BentoGridItem, BlurFade, BounceEffect, MoonUIBreadcrumbPro as Breadcrumb, MoonUIBreadcrumbEllipsisPro as BreadcrumbEllipsis, MoonUIBreadcrumbItemPro as BreadcrumbItem, MoonUIBreadcrumbLinkPro as BreadcrumbLink, MoonUIBreadcrumbListPro as BreadcrumbList, MoonUIBreadcrumbPagePro as BreadcrumbPage, MoonUIBreadcrumbSeparatorPro as BreadcrumbSeparator, BubbleBackground, MoonUIButtonPro as Button, Calendar, Calendar3 as CalendarPro, MoonUICardPro as Card, MoonUICardContentPro as CardContent, MoonUICardDescriptionPro as CardDescription, MoonUICardFooterPro as CardFooter, MoonUICardHeaderPro as CardHeader, MoonUICardTitlePro as CardTitle, ChartWidget2 as ChartWidget, MoonUICheckboxPro as Checkbox, ClaudeProvider, ClickAnimations, CodeSnippets, MoonUICollapsiblePro as Collapsible, MoonUICollapsibleContentPro as CollapsibleContent, MoonUICollapsibleTriggerPro as CollapsibleTrigger, MoonUIColorPickerPro as ColorPicker, MoonUICommandPro as Command, MoonUICommandDialogPro as CommandDialog, MoonUICommandEmptyPro as CommandEmpty, MoonUICommandGroupPro as CommandGroup, MoonUICommandInputPro as CommandInput, MoonUICommandItemPro as CommandItem, MoonUICommandListPro as CommandList, MoonUICommandSeparatorPro as CommandSeparator, MoonUICommandShortcutPro as CommandShortcut, Confetti, ConfettiButton, CursorTrail, Dashboard, DataTable, MoonUIDialogPro as Dialog, MoonUIDialogClosePro as DialogClose, MoonUIDialogContentPro as DialogContent, MoonUIDialogDescriptionPro as DialogDescription, MoonUIDialogFooterPro as DialogFooter, MoonUIDialogHeaderPro as DialogHeader, MoonUIDialogTitlePro as DialogTitle, MoonUIDialogTriggerPro as DialogTrigger, DocsProProvider, DotPattern, DraggableList, MoonUIDropdownMenuPro as DropdownMenu, MoonUIDropdownMenuCheckboxItemPro as DropdownMenuCheckboxItem, MoonUIDropdownMenuContentPro as DropdownMenuContent, MoonUIDropdownMenuGroupPro as DropdownMenuGroup, MoonUIDropdownMenuItemPro as DropdownMenuItem, MoonUIDropdownMenuLabelPro as DropdownMenuLabel, MoonUIDropdownMenuPortalPro as DropdownMenuPortal, MoonUIDropdownMenuRadioGroupPro as DropdownMenuRadioGroup, MoonUIDropdownMenuRadioItemPro as DropdownMenuRadioItem, MoonUIDropdownMenuSeparatorPro as DropdownMenuSeparator, MoonUIDropdownMenuShortcutPro as DropdownMenuShortcut, MoonUIDropdownMenuSubPro as DropdownMenuSub, MoonUIDropdownMenuSubContentPro as DropdownMenuSubContent, MoonUIDropdownMenuSubTriggerPro as DropdownMenuSubTrigger, MoonUIDropdownMenuTriggerPro as DropdownMenuTrigger, ElasticAnimation, ErrorBoundary, FadeTransitions, FlipText, FloatingActionButton, FloatingDock, FloatingElements, FocusTransitions, FormWizard, FormWizardNavigation, FormWizardProgress, FormWizardStep, FunnelWidget, MoonUIGalleryItemPro as GalleryItem, GaugeWidget, GeminiProvider, GeometricPatterns, GestureDrawer, GitHubStars, GlitchBackground, GlitchText, GlowCard, GlowEffect, GradientFlow, GradientText, GridDistortion, GridPattern, HealthCheck, HoverCard2 as HoverCard, HoverCard3D, HoverCardContent2 as HoverCardContent, HoverCardTrigger2 as HoverCardTrigger, MoonUIInputPro as Input, KPIWidget, Kanban, LANGUAGE_COLORS, MoonUILabelPro as Label, LazyComponent, LazyImage, LazyList, LightboxContent, LightboxProvider, LightboxTrigger, LiquidBackground, MagneticButton, MagneticElements, Marquee, MatrixRain, MoonUIMediaGalleryPro as MediaGallery, MemoryAnalytics, MemoryEfficientData, MeshGradient, Meteors, MoonUIAccordionContentPro, MoonUIAccordionItemPro, MoonUIAccordionPro, MoonUIAccordionTriggerPro, MoonUIAdvancedChartPro, MoonUIAlertDescriptionPro, AlertDialogAction2 as MoonUIAlertDialogActionPro, AlertDialogCancel2 as MoonUIAlertDialogCancelPro, AlertDialogContent2 as MoonUIAlertDialogContentPro, AlertDialogDescription2 as MoonUIAlertDialogDescriptionPro, AlertDialogFooter as MoonUIAlertDialogFooterPro, AlertDialogHeader as MoonUIAlertDialogHeaderPro, AlertDialogOverlay2 as MoonUIAlertDialogOverlayPro, AlertDialogPortal2 as MoonUIAlertDialogPortalPro, AlertDialog2 as MoonUIAlertDialogPro, AlertDialogTitle2 as MoonUIAlertDialogTitlePro, AlertDialogTrigger2 as MoonUIAlertDialogTriggerPro, MoonUIAlertPro, MoonUIAlertTitlePro, MoonUIAnimatedButtonPro, MoonUIAnimatedListPro, MoonUIAspectRatioPro, MoonUIAsyncAvatarPro, MoonUIAuthProvider, MoonUIAvatarFallbackPro, MoonUIAvatarGroupPro2 as MoonUIAvatarGroupPro, MoonUIAvatarImagePro, MoonUIAvatarPro2 as MoonUIAvatarPro, MoonUIBadgePro, BounceEffect as MoonUIBounceEffectPro, MoonUIBreadcrumbEllipsisPro, MoonUIBreadcrumbItemPro, MoonUIBreadcrumbLinkPro, MoonUIBreadcrumbListPro, MoonUIBreadcrumbPagePro, MoonUIBreadcrumbPro, MoonUIBreadcrumbSeparatorPro, MoonUIButtonPro, Calendar3 as MoonUICalendarPro, MoonUICardContentPro, MoonUICardDescriptionPro, MoonUICardFooterPro, MoonUICardHeaderPro, MoonUICardPro, MoonUICardTitlePro, ChartWidget2 as MoonUIChartWidget, MoonUICheckboxPro, ClickAnimations as MoonUIClickAnimationsPro, MoonUICollapsibleContentPro, MoonUICollapsiblePro, MoonUICollapsibleTriggerPro, MoonUIColorPickerPro, MoonUICommandDialogPro, MoonUICommandEmptyPro, MoonUICommandGroupPro, MoonUICommandInputPro, MoonUICommandItemPro, MoonUICommandListPro, MoonUICommandPro, MoonUICommandSeparatorPro, MoonUICommandShortcutPro, MoonUICreditCardInputPro, Dashboard as MoonUIDashboardPro, MoonUIDataTable, DataTable as MoonUIDataTablePro, MoonUIDialogClosePro, MoonUIDialogContentPro, MoonUIDialogDescriptionPro, MoonUIDialogFooterPro, MoonUIDialogHeaderPro, MoonUIDialogPro, MoonUIDialogTitlePro, MoonUIDialogTriggerPro, DraggableList as MoonUIDraggableListPro, MoonUIDropdownMenuCheckboxItemPro, MoonUIDropdownMenuContentPro, MoonUIDropdownMenuGroupPro, MoonUIDropdownMenuItemPro, MoonUIDropdownMenuLabelPro, MoonUIDropdownMenuPortalPro, MoonUIDropdownMenuPro, MoonUIDropdownMenuRadioGroupPro, MoonUIDropdownMenuRadioItemPro, MoonUIDropdownMenuSeparatorPro, MoonUIDropdownMenuShortcutPro, MoonUIDropdownMenuSubContentPro, MoonUIDropdownMenuSubPro, MoonUIDropdownMenuSubTriggerPro, MoonUIDropdownMenuTriggerPro, ElasticAnimation as MoonUIElasticAnimationPro, FadeTransitions as MoonUIFadeTransitionsPro, file_upload_default as MoonUIFileUploadPro, FocusTransitions as MoonUIFocusTransitionsPro, MoonUIFormWizardPro, FunnelWidget as MoonUIFunnelWidget, MoonUIGalleryItemPro, GaugeWidget as MoonUIGaugeWidget, MoonUIGestureDrawerPro, GlowEffect as MoonUIGlowEffectPro, MoonUIInputPro, KPIWidget as MoonUIKPIWidget, MoonUIKanbanPro, MoonUILabelPro, LightboxContent as MoonUILightboxContentPro, SimpleLightbox as MoonUILightboxPro, LightboxProvider as MoonUILightboxProviderPro, LightboxTrigger as MoonUILightboxTriggerPro, MagneticButton as MoonUIMagneticButtonPro, MoonUIMediaGalleryPro, MoonUIMemoryEfficientDataPro, Navbar as MoonUINavbarPro, MoonUIPaginationContentPro, MoonUIPaginationEllipsisPro, MoonUIPaginationItemPro, MoonUIPaginationLinkPro, MoonUIPaginationNextPro, MoonUIPaginationPreviousPro, MoonUIPaginationPro, PathAnimations as MoonUIPathAnimationsPro, PhoneNumberInput as MoonUIPhoneNumberInputPro, MoonUIPhoneNumberInputSimple, MoonUIPopoverContentPro, MoonUIPopoverPro, MoonUIPopoverTriggerPro, MoonUIProgressPro, MoonUIQuizFormPro2 as MoonUIQuizFormPro, MoonUIRadioGroupContextPro, MoonUIRadioGroupItemPro, MoonUIRadioGroupPro, MoonUIRadioItemWithLabelPro, MoonUIRadioLabelPro, RevenueWidget as MoonUIRevenueWidget, RichTextEditor as MoonUIRichTextEditorPro, SVGAnimations as MoonUISVGAnimationsPro, MoonUISelectContentPro, MoonUISelectGroupPro, MoonUISelectItemPro, MoonUISelectLabelPro, MoonUISelectPro, MoonUISelectSeparatorPro, MoonUISelectTriggerPro, MoonUISelectValuePro, SelectableVirtualList as MoonUISelectableVirtualListPro, MoonUISeparatorPro, ServerMonitorWidget as MoonUIServerMonitorWidget, Sidebar as MoonUISidebarPro, MoonUISkeletonPro, MoonUISliderPro, MoonUISpotlightCardPro, SwipeActions as MoonUISwipeActionsPro, SwipeableCard as MoonUISwipeableCardPro, MoonUISwitchPro, MoonUITableBodyPro, MoonUITableCaptionPro, MoonUITableCellPro, MoonUITableFooterPro, MoonUITableHeadPro, MoonUITableHeaderPro, MoonUITablePro, MoonUITableRowPro, MoonUITabsContentPro, MoonUITabsPro as MoonUITabsEnhanced, MoonUITabsListPro, MoonUITabsPro, MoonUITabsTriggerPro, MoonUITextareaPro, Timeline as MoonUITimelinePro, MoonUIToastPro, MoonUITogglePro, MoonUITooltipContentPro, MoonUITooltipPro, MoonUITooltipProviderPro, MoonUITooltipTriggerPro, TouchGestures as MoonUITouchGesturesPro, VirtualList as MoonUIVirtualListPro, WidgetBase as MoonUIWidgetBase, MoonUIalertVariantsPro, MoonUIaspectRatioVariantsPro, MoonUIbreadcrumbVariantsPro, collapsibleContentVariants as MoonUIcollapsibleContentVariantsPro, collapsibleTriggerVariants as MoonUIcollapsibleTriggerVariantsPro, MoonUIradioGroupItemVariantsPro, MoonUItableVariantsPro, MoonUItoggleVariantsPro, MorphingText, MouseTrail, Navbar, NavigationMenu2 as NavigationMenu, NavigationMenuContent2 as NavigationMenuContent, NavigationMenuIndicator2 as NavigationMenuIndicator, NavigationMenuItem2 as NavigationMenuItem, NavigationMenuLink2 as NavigationMenuLink, NavigationMenuList2 as NavigationMenuList, NavigationMenuTrigger2 as NavigationMenuTrigger, NavigationMenuViewport2 as NavigationMenuViewport, NeonEffect, NumberTicker, OpenAIProvider, OptimizedImage, MoonUIPaginationPro as Pagination, MoonUIPaginationContentPro as PaginationContent, MoonUIPaginationEllipsisPro as PaginationEllipsis, MoonUIPaginationItemPro as PaginationItem, MoonUIPaginationLinkPro as PaginationLink, MoonUIPaginationNextPro as PaginationNext, MoonUIPaginationPreviousPro as PaginationPrevious, ParallaxScroll, Particles, PathAnimations, PerformanceDebugger, PerformanceMonitor, PhoneNumberInput, PinchZoom, MoonUIPopoverPro as Popover, MoonUIPopoverContentPro as PopoverContent, MoonUIPopoverTriggerPro as PopoverTrigger, ProLockScreen, MoonUIProgressPro as Progress, QuizForm, MoonUIRadioGroupPro as RadioGroup, MoonUIRadioGroupContextPro as RadioGroupContext, MoonUIRadioGroupItemPro as RadioGroupItem, MoonUIRadioItemWithLabelPro as RadioItemWithLabel, MoonUIRadioLabelPro as RadioLabel, RealTimePerformanceMonitor, RevealCard, RevealCards, RevenueWidget, RichTextEditor, Ripple, spotlightPresets as SPOTLIGHT_PRESETS, SVGAnimations, ScrambledText, ScrollArea, ScrollBar, ScrollReveal, MoonUISelectPro as Select, MoonUISelectContentPro as SelectContent, MoonUISelectGroupPro as SelectGroup, MoonUISelectItemPro as SelectItem, MoonUISelectLabelPro as SelectLabel, MoonUISelectSeparatorPro as SelectSeparator, MoonUISelectTriggerPro as SelectTrigger, MoonUISelectValuePro as SelectValue, SelectableVirtualList, MoonUISeparatorPro as Separator, ServerMonitorWidget, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Shimmer, ShinyText, Sidebar, SimpleLightbox, MoonUISkeletonPro as Skeleton, MoonUISliderPro as Slider, Sparkles36 as Sparkles, SplashCursor, SplashCursorContainer, Spotlight, Starfield, SubscriptionProvider, SwipeActions, SwipeableCard, MoonUISwitchPro as Switch, MoonUITablePro as Table, MoonUITableBodyPro as TableBody, MoonUITableCaptionPro as TableCaption, MoonUITableCellPro as TableCell, MoonUITableFooterPro as TableFooter, MoonUITableHeadPro as TableHead, MoonUITableHeaderPro as TableHeader, MoonUITableRowPro as TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Text3D, TextReveal, MoonUITextareaPro as Textarea, Timeline, MoonUIToastPro as Toast, MoonUITogglePro as Toggle, MoonUITooltipPro as Tooltip, MoonUITooltipContentPro as TooltipContent, MoonUITooltipProviderPro as TooltipProvider, MoonUITooltipTriggerPro as TooltipTrigger, TouchGestures, TypewriterText, VirtualList, Waves, WavyText, WidgetBase, WordRotate, MoonUIalertVariantsPro as alertVariants, MoonUIaspectRatioVariantsPro as aspectRatioVariants, moonUIBadgeVariantsPro as badgeVariants, MoonUIbreadcrumbVariantsPro as breadcrumbVariants, moonUIButtonProVariants as buttonVariants, clearAuth, clearAuth as clearAuthV2, cn, codeSnippetsPresets, collapsibleContentVariants, collapsibleTriggerVariants, commandVariantsPro, createAIProvider, forceRefresh, forceRefresh as forceRefreshV2, galleryItemVariants, galleryVariants, getExpandableColumn, hoverCard3DVariants, magneticButtonVariants, moonUIAnimatedButtonProVariants, badgeVariants as moonUIAvatarBadgeVariants, avatarVariants as moonUIAvatarProVariants, statusVariants as moonUIAvatarStatusVariants, moonUIBadgeVariantsPro, moonUIButtonProVariants, gestureDrawerVariants as moonUIGestureDrawerProVariants, magneticButtonVariants as moonUIMagneticButtonVariantsPro, moonUISeparatorVariantsPro, navigationMenuTriggerStyle, countries as phoneCountries, MoonUIradioGroupItemVariantsPro as radioGroupItemVariants, moonUISeparatorVariantsPro as separatorVariants, spotlightPresets, MoonUItableVariantsPro as tableVariants, MoonUItoggleVariantsPro as toggleVariants, useAccordionAnalytics, useCollapsibleAnalytics, useExpandableRows, useFormWizard, useMoonUIAuth, useStreamingData, useSubscription, useSubscriptionContext, useSubscription as useSubscriptionV2, useVirtualList };
|