nexoreui 1.8.1 → 1.8.2
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/LICENSE +21 -0
- package/README.md +1 -1
- package/bin/nexoreui.js +32418 -17291
- package/dist/index.d.mts +9 -43
- package/dist/index.d.ts +9 -43
- package/dist/index.js +32 -28
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +130 -126
- package/dist/index.mjs.map +1 -1
- package/package.json +75 -75
- package/postinstall.js +50 -50
package/dist/index.mjs
CHANGED
|
@@ -1576,7 +1576,7 @@ SelectItem.displayName = SelectPrimitive.Item.displayName;
|
|
|
1576
1576
|
import * as React12 from "react";
|
|
1577
1577
|
import { cva as cva9 } from "class-variance-authority";
|
|
1578
1578
|
import { motion as motion7 } from "framer-motion";
|
|
1579
|
-
import { AlertCircle as AlertCircle2, Info, CheckCircle2 as CheckCircle22, XCircle, Cookie, WifiOff, AlertTriangle
|
|
1579
|
+
import { AlertCircle as AlertCircle2, Info, CheckCircle2 as CheckCircle22, XCircle, Cookie, WifiOff, AlertTriangle, X as X3 } from "lucide-react";
|
|
1580
1580
|
import { Fragment as Fragment2, jsx as jsx13, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1581
1581
|
var alertVariants = cva9(
|
|
1582
1582
|
"relative w-full rounded-2xl border p-4 [&>svg~*]:pl-7 [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 transition-all duration-300 shadow-sm",
|
|
@@ -1621,7 +1621,7 @@ var Alert = React12.forwardRef(
|
|
|
1621
1621
|
if (!isOpen) return null;
|
|
1622
1622
|
const isMinimal = variant === "minimal";
|
|
1623
1623
|
const isBanner = variant === "banner";
|
|
1624
|
-
const defaultIcon = icon || (variant === "destructive" ? /* @__PURE__ */ jsx13(XCircle, { className: "h-4 w-4" }) : variant === "success" ? /* @__PURE__ */ jsx13(CheckCircle22, { className: "h-4 w-4" }) : variant === "warning" ? /* @__PURE__ */ jsx13(
|
|
1624
|
+
const defaultIcon = icon || (variant === "destructive" ? /* @__PURE__ */ jsx13(XCircle, { className: "h-4 w-4" }) : variant === "success" ? /* @__PURE__ */ jsx13(CheckCircle22, { className: "h-4 w-4" }) : variant === "warning" ? /* @__PURE__ */ jsx13(AlertTriangle, { className: "h-4 w-4" }) : variant === "info" ? /* @__PURE__ */ jsx13(Info, { className: "h-4 w-4" }) : variant === "default" ? /* @__PURE__ */ jsx13(AlertCircle2, { className: "h-4 w-4" }) : null);
|
|
1625
1625
|
const content = /* @__PURE__ */ jsxs10(Fragment2, { children: [
|
|
1626
1626
|
defaultIcon && /* @__PURE__ */ jsx13("div", { className: cn("absolute left-4", isMinimal ? "top-3" : "top-4"), children: defaultIcon }),
|
|
1627
1627
|
/* @__PURE__ */ jsxs10("div", { className: cn(defaultIcon ? "pl-7" : "", "pr-8"), children: [
|
|
@@ -1747,7 +1747,7 @@ var OfflineBanner = () => /* @__PURE__ */ jsxs10("div", { className: "w-full bg-
|
|
|
1747
1747
|
" You are currently offline. Some features may be unavailable."
|
|
1748
1748
|
] });
|
|
1749
1749
|
var RateLimitAlert = () => /* @__PURE__ */ jsxs10("div", { className: "border border-orange-500/30 bg-orange-500/10 p-5 rounded-2xl flex gap-3 items-start max-w-md shadow-sm", children: [
|
|
1750
|
-
/* @__PURE__ */ jsx13(
|
|
1750
|
+
/* @__PURE__ */ jsx13(AlertTriangle, { className: "w-5 h-5 text-orange-500 shrink-0 mt-0.5 animate-pulse" }),
|
|
1751
1751
|
/* @__PURE__ */ jsxs10("div", { className: "flex-1", children: [
|
|
1752
1752
|
/* @__PURE__ */ jsx13("h4", { className: "font-bold text-orange-600 dark:text-orange-400", children: "Rate Limit Exceeded" }),
|
|
1753
1753
|
/* @__PURE__ */ jsx13("p", { className: "text-sm text-orange-600/80 dark:text-orange-400/80 mt-1 mb-4", children: "You have made too many requests. Please wait 45 seconds before trying again." }),
|
|
@@ -2586,7 +2586,7 @@ var BreadcrumbTrail = () => /* @__PURE__ */ jsxs14("nav", { className: "flex ite
|
|
|
2586
2586
|
/* @__PURE__ */ jsx19(ChevronRight, { className: "w-4 h-4" }),
|
|
2587
2587
|
/* @__PURE__ */ jsx19("span", { className: "text-foreground font-medium", children: "Laptop" })
|
|
2588
2588
|
] });
|
|
2589
|
-
var StepIndicator = (
|
|
2589
|
+
var StepIndicator = () => /* @__PURE__ */ jsxs14("div", { className: "flex items-center w-full max-w-sm", children: [
|
|
2590
2590
|
/* @__PURE__ */ jsx19("div", { className: "flex items-center text-primary", children: /* @__PURE__ */ jsx19("div", { className: "w-8 h-8 rounded-full border-2 border-primary bg-primary text-primary-foreground flex items-center justify-center font-bold text-sm", children: "1" }) }),
|
|
2591
2591
|
/* @__PURE__ */ jsx19("div", { className: "flex-1 h-[2px] bg-primary mx-2" }),
|
|
2592
2592
|
/* @__PURE__ */ jsx19("div", { className: "flex items-center text-primary", children: /* @__PURE__ */ jsx19("div", { className: "w-8 h-8 rounded-full border-2 border-primary bg-background flex items-center justify-center font-bold text-sm", children: "2" }) }),
|
|
@@ -2900,7 +2900,7 @@ Marquee.displayName = "Marquee";
|
|
|
2900
2900
|
|
|
2901
2901
|
// src/components/number-ticker.tsx
|
|
2902
2902
|
import * as React19 from "react";
|
|
2903
|
-
import { motion as motion13, useMotionValue
|
|
2903
|
+
import { motion as motion13, useMotionValue, useSpring, useTransform, useInView as useInView2 } from "framer-motion";
|
|
2904
2904
|
import { jsx as jsx24, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
2905
2905
|
var NumberTicker = React19.forwardRef(
|
|
2906
2906
|
({
|
|
@@ -2915,13 +2915,13 @@ var NumberTicker = React19.forwardRef(
|
|
|
2915
2915
|
const elementRef = React19.useRef(null);
|
|
2916
2916
|
const combinedRef = ref || elementRef;
|
|
2917
2917
|
const inView = useInView2(combinedRef, { once: true, margin: "0px 0px -50px 0px" });
|
|
2918
|
-
const motionValue =
|
|
2919
|
-
const springValue =
|
|
2918
|
+
const motionValue = useMotionValue(0);
|
|
2919
|
+
const springValue = useSpring(motionValue, {
|
|
2920
2920
|
stiffness: 70,
|
|
2921
2921
|
damping: 15,
|
|
2922
2922
|
mass: 1
|
|
2923
2923
|
});
|
|
2924
|
-
const displayValue =
|
|
2924
|
+
const displayValue = useTransform(springValue, (latest) => {
|
|
2925
2925
|
const formatted = Number(latest.toFixed(decimals));
|
|
2926
2926
|
return formatted.toLocaleString("en-US", {
|
|
2927
2927
|
minimumFractionDigits: decimals,
|
|
@@ -2930,7 +2930,7 @@ var NumberTicker = React19.forwardRef(
|
|
|
2930
2930
|
});
|
|
2931
2931
|
React19.useEffect(() => {
|
|
2932
2932
|
if (inView) {
|
|
2933
|
-
|
|
2933
|
+
motionValue.set(value);
|
|
2934
2934
|
}
|
|
2935
2935
|
}, [inView, value, motionValue]);
|
|
2936
2936
|
return /* @__PURE__ */ jsxs18(
|
|
@@ -2955,11 +2955,11 @@ NumberTicker.displayName = "NumberTicker";
|
|
|
2955
2955
|
function AnimatedNumber({
|
|
2956
2956
|
value,
|
|
2957
2957
|
className,
|
|
2958
|
-
duration = 0.5,
|
|
2958
|
+
duration: _duration = 0.5,
|
|
2959
2959
|
formatFn
|
|
2960
2960
|
}) {
|
|
2961
|
-
const motionValue =
|
|
2962
|
-
const springValue =
|
|
2961
|
+
const motionValue = useMotionValue(value);
|
|
2962
|
+
const springValue = useSpring(motionValue, {
|
|
2963
2963
|
stiffness: 100,
|
|
2964
2964
|
damping: 15
|
|
2965
2965
|
});
|
|
@@ -2984,8 +2984,8 @@ function AnimatedNumber({
|
|
|
2984
2984
|
|
|
2985
2985
|
// src/components/rating.tsx
|
|
2986
2986
|
import * as React20 from "react";
|
|
2987
|
-
import { motion as motion14, AnimatePresence as
|
|
2988
|
-
import { Star
|
|
2987
|
+
import { motion as motion14, AnimatePresence as AnimatePresence2 } from "framer-motion";
|
|
2988
|
+
import { Star, Heart, ThumbsUp, Flame, Trophy, Smile, CheckCircle2 as CheckCircle23 } from "lucide-react";
|
|
2989
2989
|
import { jsx as jsx25, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
2990
2990
|
var sizeClasses = {
|
|
2991
2991
|
xs: "h-3.5 w-3.5",
|
|
@@ -3030,7 +3030,7 @@ var getIconComponent = (icon) => {
|
|
|
3030
3030
|
return Smile;
|
|
3031
3031
|
case "star":
|
|
3032
3032
|
default:
|
|
3033
|
-
return
|
|
3033
|
+
return Star;
|
|
3034
3034
|
}
|
|
3035
3035
|
};
|
|
3036
3036
|
var Rating = React20.forwardRef(
|
|
@@ -3175,7 +3175,7 @@ var Rating = React20.forwardRef(
|
|
|
3175
3175
|
" / ",
|
|
3176
3176
|
max
|
|
3177
3177
|
] }),
|
|
3178
|
-
currentTooltip && /* @__PURE__ */ jsx25(
|
|
3178
|
+
currentTooltip && /* @__PURE__ */ jsx25(AnimatePresence2, { mode: "wait", children: /* @__PURE__ */ jsx25(
|
|
3179
3179
|
motion14.span,
|
|
3180
3180
|
{
|
|
3181
3181
|
initial: { opacity: 0, x: -4 },
|
|
@@ -3227,7 +3227,7 @@ function RatingBreakdown({
|
|
|
3227
3227
|
return /* @__PURE__ */ jsxs19("div", { className: "flex items-center gap-2.5 text-xs", children: [
|
|
3228
3228
|
/* @__PURE__ */ jsxs19("div", { className: "w-6 flex items-center gap-0.5 font-mono font-medium text-foreground/80 shrink-0", children: [
|
|
3229
3229
|
/* @__PURE__ */ jsx25("span", { children: stars }),
|
|
3230
|
-
/* @__PURE__ */ jsx25(
|
|
3230
|
+
/* @__PURE__ */ jsx25(Star, { className: "w-2.5 h-2.5 fill-amber-400 text-amber-400" })
|
|
3231
3231
|
] }),
|
|
3232
3232
|
/* @__PURE__ */ jsx25("div", { className: "flex-1 h-2 rounded-full bg-muted/60 overflow-hidden relative", children: /* @__PURE__ */ jsx25(
|
|
3233
3233
|
motion14.div,
|
|
@@ -3294,7 +3294,7 @@ function ReviewCard({
|
|
|
3294
3294
|
|
|
3295
3295
|
// src/components/file-upload.tsx
|
|
3296
3296
|
import * as React21 from "react";
|
|
3297
|
-
import { motion as motion15, AnimatePresence as
|
|
3297
|
+
import { motion as motion15, AnimatePresence as AnimatePresence3 } from "framer-motion";
|
|
3298
3298
|
import { UploadCloud, File, X as X4, AlertCircle as AlertCircle3 } from "lucide-react";
|
|
3299
3299
|
import { jsx as jsx26, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
3300
3300
|
var FileUpload = React21.forwardRef(
|
|
@@ -3444,7 +3444,7 @@ var FileUpload = React21.forwardRef(
|
|
|
3444
3444
|
] })
|
|
3445
3445
|
}
|
|
3446
3446
|
),
|
|
3447
|
-
/* @__PURE__ */ jsx26(
|
|
3447
|
+
/* @__PURE__ */ jsx26(AnimatePresence3, { mode: "wait", children: error && /* @__PURE__ */ jsxs20(
|
|
3448
3448
|
motion15.div,
|
|
3449
3449
|
{
|
|
3450
3450
|
initial: { opacity: 0, y: -5 },
|
|
@@ -3457,7 +3457,7 @@ var FileUpload = React21.forwardRef(
|
|
|
3457
3457
|
]
|
|
3458
3458
|
}
|
|
3459
3459
|
) }),
|
|
3460
|
-
/* @__PURE__ */ jsx26(
|
|
3460
|
+
/* @__PURE__ */ jsx26(AnimatePresence3, { children: selectedFiles.length > 0 && /* @__PURE__ */ jsx26(
|
|
3461
3461
|
motion15.div,
|
|
3462
3462
|
{
|
|
3463
3463
|
initial: { opacity: 0 },
|
|
@@ -4028,7 +4028,7 @@ Stepper.displayName = "Stepper";
|
|
|
4028
4028
|
// src/components/command.tsx
|
|
4029
4029
|
import * as React24 from "react";
|
|
4030
4030
|
import * as DialogPrimitive2 from "@radix-ui/react-dialog";
|
|
4031
|
-
import { motion as motion18, AnimatePresence as
|
|
4031
|
+
import { motion as motion18, AnimatePresence as AnimatePresence4 } from "framer-motion";
|
|
4032
4032
|
import { Search as Search3 } from "lucide-react";
|
|
4033
4033
|
import { jsx as jsx29, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
4034
4034
|
var Command = React24.forwardRef(
|
|
@@ -4075,7 +4075,7 @@ var Command = React24.forwardRef(
|
|
|
4075
4075
|
}
|
|
4076
4076
|
}
|
|
4077
4077
|
};
|
|
4078
|
-
return /* @__PURE__ */ jsx29(DialogPrimitive2.Root, { open, onOpenChange: setOpen, children: /* @__PURE__ */ jsx29(
|
|
4078
|
+
return /* @__PURE__ */ jsx29(DialogPrimitive2.Root, { open, onOpenChange: setOpen, children: /* @__PURE__ */ jsx29(AnimatePresence4, { children: open && /* @__PURE__ */ jsxs23(DialogPrimitive2.Portal, { forceMount: true, children: [
|
|
4079
4079
|
/* @__PURE__ */ jsx29(DialogPrimitive2.Overlay, { asChild: true, children: /* @__PURE__ */ jsx29(
|
|
4080
4080
|
motion18.div,
|
|
4081
4081
|
{
|
|
@@ -4546,7 +4546,7 @@ AuroraBorderCard.displayName = "AuroraBorderCard";
|
|
|
4546
4546
|
|
|
4547
4547
|
// src/components/ai-prompt-input.tsx
|
|
4548
4548
|
import * as React27 from "react";
|
|
4549
|
-
import { motion as motion20, AnimatePresence as
|
|
4549
|
+
import { motion as motion20, AnimatePresence as AnimatePresence5, useReducedMotion as useReducedMotion2 } from "framer-motion";
|
|
4550
4550
|
import {
|
|
4551
4551
|
Send,
|
|
4552
4552
|
Square,
|
|
@@ -4840,7 +4840,7 @@ var AiPromptInput = React27.forwardRef(
|
|
|
4840
4840
|
variant === "minimal" && "bg-zinc-100/80 dark:bg-zinc-900/80 border border-transparent focus-within:bg-white dark:focus-within:bg-zinc-950 focus-within:border-zinc-300 dark:focus-within:border-zinc-700"
|
|
4841
4841
|
),
|
|
4842
4842
|
children: [
|
|
4843
|
-
files.length > 0 && /* @__PURE__ */ jsx32("div", { className: "flex flex-wrap gap-2 pt-0.5 pb-1", children: /* @__PURE__ */ jsx32(
|
|
4843
|
+
files.length > 0 && /* @__PURE__ */ jsx32("div", { className: "flex flex-wrap gap-2 pt-0.5 pb-1", children: /* @__PURE__ */ jsx32(AnimatePresence5, { children: files.map((file) => /* @__PURE__ */ jsxs26(
|
|
4844
4844
|
motion20.div,
|
|
4845
4845
|
{
|
|
4846
4846
|
initial: { scale: 0.8, opacity: 0 },
|
|
@@ -5268,7 +5268,7 @@ var InviteUsersForm = () => /* @__PURE__ */ jsxs27("div", { className: "w-full b
|
|
|
5268
5268
|
|
|
5269
5269
|
// src/components/pro-ecommerce.tsx
|
|
5270
5270
|
import * as React29 from "react";
|
|
5271
|
-
import { Star as
|
|
5271
|
+
import { Star as Star2, Trash2, ShoppingBag, ArrowRight as ArrowRight2, Lock as Lock2 } from "lucide-react";
|
|
5272
5272
|
import { jsx as jsx34, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
5273
5273
|
var ProductGallery = () => {
|
|
5274
5274
|
const [active, setActive] = React29.useState(1);
|
|
@@ -5385,7 +5385,7 @@ var ProductReview = () => /* @__PURE__ */ jsxs28("div", { className: "py-6 borde
|
|
|
5385
5385
|
/* @__PURE__ */ jsx34("div", { className: "font-semibold", children: "Alex Johnson" }),
|
|
5386
5386
|
/* @__PURE__ */ jsx34("div", { className: "text-sm text-muted-foreground", children: "October 12, 2025" })
|
|
5387
5387
|
] }),
|
|
5388
|
-
/* @__PURE__ */ jsx34("div", { className: "flex text-yellow-400 mb-3", children: [1, 2, 3, 4, 5].map((i) => /* @__PURE__ */ jsx34(
|
|
5388
|
+
/* @__PURE__ */ jsx34("div", { className: "flex text-yellow-400 mb-3", children: [1, 2, 3, 4, 5].map((i) => /* @__PURE__ */ jsx34(Star2, { className: "w-4 h-4 fill-current" }, i)) }),
|
|
5389
5389
|
/* @__PURE__ */ jsx34("h4", { className: "font-bold mb-1", children: "Incredible sound quality!" }),
|
|
5390
5390
|
/* @__PURE__ */ jsx34("p", { className: "text-muted-foreground text-sm leading-relaxed", children: "I've been using these for a month and they are absolutely fantastic. The noise cancellation is top tier and battery life is exactly as advertised." })
|
|
5391
5391
|
] });
|
|
@@ -5417,7 +5417,7 @@ var CategoryCard = () => /* @__PURE__ */ jsxs28("div", { className: "relative gr
|
|
|
5417
5417
|
|
|
5418
5418
|
// src/components/pro-ai.tsx
|
|
5419
5419
|
import { motion as motion21 } from "framer-motion";
|
|
5420
|
-
import { Sparkles as Sparkles3, Send as Send2, Mic as Mic2, Copy as Copy2, Bot as Bot2, User as User3, FileText as FileText2, ChevronDown as ChevronDown4, RefreshCw, Plus as
|
|
5420
|
+
import { Sparkles as Sparkles3, Send as Send2, Mic as Mic2, Copy as Copy2, Bot as Bot2, User as User3, FileText as FileText2, ChevronDown as ChevronDown4, RefreshCw, Plus as Plus2 } from "lucide-react";
|
|
5421
5421
|
import { jsx as jsx35, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
5422
5422
|
var ChatBubbleUser = ({ message }) => /* @__PURE__ */ jsxs29("div", { className: "flex gap-4 justify-end mb-6", children: [
|
|
5423
5423
|
/* @__PURE__ */ jsx35("div", { className: "bg-primary text-primary-foreground px-5 py-3 rounded-2xl rounded-tr-sm max-w-[80%] shadow-sm", children: /* @__PURE__ */ jsx35("p", { className: "leading-relaxed", children: message || "How do I build a Next.js application with Tailwind CSS?" }) }),
|
|
@@ -5469,7 +5469,7 @@ var GeneratedCodeBlock = () => /* @__PURE__ */ jsxs29("div", { className: "round
|
|
|
5469
5469
|
] });
|
|
5470
5470
|
var ChatHistorySidebar = () => /* @__PURE__ */ jsxs29("div", { className: "w-64 h-full border-r bg-background p-4 flex flex-col", children: [
|
|
5471
5471
|
/* @__PURE__ */ jsxs29("button", { className: "w-full py-2 bg-primary text-primary-foreground rounded-lg font-medium mb-6 text-sm flex items-center justify-center gap-2", children: [
|
|
5472
|
-
/* @__PURE__ */ jsx35(
|
|
5472
|
+
/* @__PURE__ */ jsx35(Plus2, { className: "w-4 h-4" }),
|
|
5473
5473
|
" New Chat"
|
|
5474
5474
|
] }),
|
|
5475
5475
|
/* @__PURE__ */ jsx35("div", { className: "text-xs font-semibold text-muted-foreground mb-3 px-2", children: "Today" }),
|
|
@@ -5786,7 +5786,7 @@ var CompactDataList = () => /* @__PURE__ */ jsx36("div", { className: "w-full bo
|
|
|
5786
5786
|
] }, i)) });
|
|
5787
5787
|
|
|
5788
5788
|
// src/components/pro-dashboards.tsx
|
|
5789
|
-
import { DollarSign, ArrowUpRight, HardDrive, Server, Zap, Plus as
|
|
5789
|
+
import { DollarSign, ArrowUpRight, HardDrive, Server, Zap, Plus as Plus3, FileText as FileText4, Settings as Settings2 } from "lucide-react";
|
|
5790
5790
|
import { jsx as jsx37, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
5791
5791
|
var DashboardShell = ({ children }) => /* @__PURE__ */ jsxs31("div", { className: "flex h-[400px] w-full border rounded-xl overflow-hidden bg-background", children: [
|
|
5792
5792
|
/* @__PURE__ */ jsxs31("div", { className: "w-48 border-r bg-muted/20 p-4 flex flex-col gap-2", children: [
|
|
@@ -5841,7 +5841,7 @@ var ProgressWidget = () => /* @__PURE__ */ jsxs31("div", { className: "border ro
|
|
|
5841
5841
|
] });
|
|
5842
5842
|
var QuickActionsWidget = () => /* @__PURE__ */ jsxs31("div", { className: "border rounded-xl bg-card p-4 grid grid-cols-3 gap-2", children: [
|
|
5843
5843
|
/* @__PURE__ */ jsxs31("button", { className: "flex flex-col items-center justify-center p-3 rounded-lg hover:bg-muted transition-colors gap-2", children: [
|
|
5844
|
-
/* @__PURE__ */ jsx37("div", { className: "p-2 bg-primary/10 text-primary rounded-full", children: /* @__PURE__ */ jsx37(
|
|
5844
|
+
/* @__PURE__ */ jsx37("div", { className: "p-2 bg-primary/10 text-primary rounded-full", children: /* @__PURE__ */ jsx37(Plus3, { className: "w-4 h-4" }) }),
|
|
5845
5845
|
/* @__PURE__ */ jsx37("span", { className: "text-xs font-medium", children: "New Project" })
|
|
5846
5846
|
] }),
|
|
5847
5847
|
/* @__PURE__ */ jsxs31("button", { className: "flex flex-col items-center justify-center p-3 rounded-lg hover:bg-muted transition-colors gap-2", children: [
|
|
@@ -5849,7 +5849,7 @@ var QuickActionsWidget = () => /* @__PURE__ */ jsxs31("div", { className: "borde
|
|
|
5849
5849
|
/* @__PURE__ */ jsx37("span", { className: "text-xs font-medium", children: "Create Invoice" })
|
|
5850
5850
|
] }),
|
|
5851
5851
|
/* @__PURE__ */ jsxs31("button", { className: "flex flex-col items-center justify-center p-3 rounded-lg hover:bg-muted transition-colors gap-2", children: [
|
|
5852
|
-
/* @__PURE__ */ jsx37("div", { className: "p-2 bg-zinc-500/10 text-zinc-500 rounded-full", children: /* @__PURE__ */ jsx37(
|
|
5852
|
+
/* @__PURE__ */ jsx37("div", { className: "p-2 bg-zinc-500/10 text-zinc-500 rounded-full", children: /* @__PURE__ */ jsx37(Settings2, { className: "w-4 h-4" }) }),
|
|
5853
5853
|
/* @__PURE__ */ jsx37("span", { className: "text-xs font-medium", children: "Settings" })
|
|
5854
5854
|
] })
|
|
5855
5855
|
] });
|
|
@@ -5962,11 +5962,11 @@ var PaginationPro = () => /* @__PURE__ */ jsxs32("div", { className: "flex items
|
|
|
5962
5962
|
|
|
5963
5963
|
// src/components/pro-feedback.tsx
|
|
5964
5964
|
import { motion as motion22 } from "framer-motion";
|
|
5965
|
-
import { CheckCircle2 as
|
|
5965
|
+
import { CheckCircle2 as CheckCircle25, X as X7, FileBox, UploadCloud as UploadCloud2 } from "lucide-react";
|
|
5966
5966
|
import { jsx as jsx39, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
5967
5967
|
var ConfettiSuccess = () => /* @__PURE__ */ jsxs33("div", { className: "flex flex-col items-center justify-center p-8 border rounded-xl bg-card text-center relative overflow-hidden", children: [
|
|
5968
5968
|
/* @__PURE__ */ jsx39("div", { className: "absolute inset-0 pointer-events-none flex justify-center", children: [1, 2, 3, 4, 5, 6].map((i) => /* @__PURE__ */ jsx39(motion22.div, { animate: { y: [0, 100], x: [(i % 2 === 0 ? 1 : -1) * 20, (i % 2 === 0 ? 1 : -1) * 40], opacity: [1, 0], rotate: [0, 360] }, transition: { repeat: Infinity, duration: 2, delay: i * 0.2 }, className: `w-2 h-2 absolute top-0 ${i % 3 === 0 ? "bg-red-500" : i % 2 === 0 ? "bg-blue-500" : "bg-yellow-500"}` }, i)) }),
|
|
5969
|
-
/* @__PURE__ */ jsx39("div", { className: "w-16 h-16 bg-green-500/10 text-green-500 rounded-full flex items-center justify-center mb-4 relative z-10", children: /* @__PURE__ */ jsx39(
|
|
5969
|
+
/* @__PURE__ */ jsx39("div", { className: "w-16 h-16 bg-green-500/10 text-green-500 rounded-full flex items-center justify-center mb-4 relative z-10", children: /* @__PURE__ */ jsx39(CheckCircle25, { className: "w-8 h-8" }) }),
|
|
5970
5970
|
/* @__PURE__ */ jsx39("h3", { className: "text-2xl font-bold mb-2 relative z-10", children: "Payment Successful!" }),
|
|
5971
5971
|
/* @__PURE__ */ jsx39("p", { className: "text-muted-foreground relative z-10", children: "Your order #12345 has been processed." })
|
|
5972
5972
|
] });
|
|
@@ -5977,7 +5977,7 @@ var ActionToast = () => /* @__PURE__ */ jsxs33("div", { className: "flex items-c
|
|
|
5977
5977
|
/* @__PURE__ */ jsx39("button", { children: /* @__PURE__ */ jsx39(X7, { className: "w-4 h-4 text-muted" }) })
|
|
5978
5978
|
] })
|
|
5979
5979
|
] });
|
|
5980
|
-
var MultiStepProgress = (
|
|
5980
|
+
var MultiStepProgress = () => /* @__PURE__ */ jsxs33("div", { className: "w-full", children: [
|
|
5981
5981
|
/* @__PURE__ */ jsxs33("div", { className: "flex justify-between mb-2 text-sm font-medium", children: [
|
|
5982
5982
|
/* @__PURE__ */ jsx39("span", { className: "text-primary", children: "Cart" }),
|
|
5983
5983
|
/* @__PURE__ */ jsx39("span", { className: "text-primary", children: "Shipping" }),
|
|
@@ -6028,7 +6028,7 @@ var UploadProgress = () => /* @__PURE__ */ jsxs33("div", { className: "w-full ma
|
|
|
6028
6028
|
] });
|
|
6029
6029
|
|
|
6030
6030
|
// src/components/pro-marketing.tsx
|
|
6031
|
-
import { Check as
|
|
6031
|
+
import { Check as Check6, X as X8, Play, ArrowRight as ArrowRight3, ShieldCheck } from "lucide-react";
|
|
6032
6032
|
import { jsx as jsx40, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
6033
6033
|
var WaitlistForm = () => /* @__PURE__ */ jsxs34("div", { className: "w-full max-w-md mx-auto text-center space-y-6 bg-card p-8 rounded-3xl border shadow-xl", children: [
|
|
6034
6034
|
/* @__PURE__ */ jsx40("div", { className: "inline-block px-3 py-1 bg-primary/10 text-primary font-bold text-xs rounded-full mb-2", children: "EARLY ACCESS" }),
|
|
@@ -6076,8 +6076,8 @@ var ComparisonTableMock = () => /* @__PURE__ */ jsxs34("div", { className: "w-fu
|
|
|
6076
6076
|
] }),
|
|
6077
6077
|
/* @__PURE__ */ jsx40("div", { className: "divide-y text-sm", children: ["Real-time sync", "End-to-end encryption", "24/7 Support"].map((f, i) => /* @__PURE__ */ jsxs34("div", { className: "grid grid-cols-3 p-4 items-center text-center", children: [
|
|
6078
6078
|
/* @__PURE__ */ jsx40("div", { className: "text-left font-medium", children: f }),
|
|
6079
|
-
/* @__PURE__ */ jsx40("div", { className: "flex justify-center", children: i === 0 ? /* @__PURE__ */ jsx40(
|
|
6080
|
-
/* @__PURE__ */ jsx40("div", { className: "flex justify-center", children: /* @__PURE__ */ jsx40("div", { className: "w-6 h-6 rounded-full bg-primary/10 flex items-center justify-center text-primary", children: /* @__PURE__ */ jsx40(
|
|
6079
|
+
/* @__PURE__ */ jsx40("div", { className: "flex justify-center", children: i === 0 ? /* @__PURE__ */ jsx40(Check6, { className: "w-4 h-4 text-muted-foreground/60" }) : /* @__PURE__ */ jsx40(X8, { className: "w-4 h-4 text-muted-foreground/30" }) }),
|
|
6080
|
+
/* @__PURE__ */ jsx40("div", { className: "flex justify-center", children: /* @__PURE__ */ jsx40("div", { className: "w-6 h-6 rounded-full bg-primary/10 flex items-center justify-center text-primary", children: /* @__PURE__ */ jsx40(Check6, { className: "w-3.5 h-3.5 stroke-[2.5]" }) }) })
|
|
6081
6081
|
] }, i)) })
|
|
6082
6082
|
] });
|
|
6083
6083
|
var AnimatedHeroText = () => /* @__PURE__ */ jsxs34("h1", { className: "text-4xl md:text-6xl font-black text-center leading-tight", children: [
|
|
@@ -6130,7 +6130,7 @@ var GradientCTABlock = () => /* @__PURE__ */ jsxs34("div", { className: "relativ
|
|
|
6130
6130
|
] });
|
|
6131
6131
|
|
|
6132
6132
|
// src/components/pro-lists.tsx
|
|
6133
|
-
import { Phone, Mail as Mail3, FileText as FileText5, Download as Download2, Briefcase, MapPin, Clock, MessageSquare, Plus as
|
|
6133
|
+
import { Phone, Mail as Mail3, FileText as FileText5, Download as Download2, Briefcase, MapPin, Clock, MessageSquare, Plus as Plus4, Check as Check7 } from "lucide-react";
|
|
6134
6134
|
import { jsx as jsx41, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
6135
6135
|
var ContactList = () => /* @__PURE__ */ jsx41("div", { className: "w-full max-w-md border rounded-xl bg-card divide-y", children: [1, 2, 3].map((i) => /* @__PURE__ */ jsxs35("div", { className: "flex items-center justify-between p-4 hover:bg-muted/50 cursor-pointer", children: [
|
|
6136
6136
|
/* @__PURE__ */ jsxs35("div", { className: "flex items-center gap-3", children: [
|
|
@@ -6185,7 +6185,7 @@ var TimelineVertical = () => /* @__PURE__ */ jsx41("div", { className: "w-full m
|
|
|
6185
6185
|
/* @__PURE__ */ jsx41("p", { className: "text-sm", children: "Completed the initial design phase and got client approval." })
|
|
6186
6186
|
] }, i)) }) });
|
|
6187
6187
|
var StepList = () => /* @__PURE__ */ jsx41("div", { className: "w-full max-w-md space-y-4", children: [1, 2, 3].map((i) => /* @__PURE__ */ jsxs35("div", { className: "flex gap-4", children: [
|
|
6188
|
-
/* @__PURE__ */ jsx41("div", { className: `w-8 h-8 rounded-full flex items-center justify-center shrink-0 border-2 font-bold text-sm ${i === 1 ? "bg-primary border-primary text-primary-foreground" : "border-muted text-muted-foreground"}`, children: i === 1 ? /* @__PURE__ */ jsx41(
|
|
6188
|
+
/* @__PURE__ */ jsx41("div", { className: `w-8 h-8 rounded-full flex items-center justify-center shrink-0 border-2 font-bold text-sm ${i === 1 ? "bg-primary border-primary text-primary-foreground" : "border-muted text-muted-foreground"}`, children: i === 1 ? /* @__PURE__ */ jsx41(Check7, { className: "w-4 h-4" }) : i }),
|
|
6189
6189
|
/* @__PURE__ */ jsxs35("div", { children: [
|
|
6190
6190
|
/* @__PURE__ */ jsxs35("h4", { className: `font-bold text-sm ${i === 1 ? "" : "text-muted-foreground"}`, children: [
|
|
6191
6191
|
"Step ",
|
|
@@ -6198,7 +6198,7 @@ var StepList = () => /* @__PURE__ */ jsx41("div", { className: "w-full max-w-md
|
|
|
6198
6198
|
var FAQAccordionList = () => /* @__PURE__ */ jsx41("div", { className: "w-full max-w-2xl border rounded-xl bg-card divide-y", children: [1, 2, 3].map((i) => /* @__PURE__ */ jsxs35("div", { className: "p-4", children: [
|
|
6199
6199
|
/* @__PURE__ */ jsxs35("h4", { className: "font-bold text-sm mb-2 flex justify-between", children: [
|
|
6200
6200
|
"How does pricing work? ",
|
|
6201
|
-
/* @__PURE__ */ jsx41(
|
|
6201
|
+
/* @__PURE__ */ jsx41(Plus4, { className: "w-4 h-4 text-muted-foreground" })
|
|
6202
6202
|
] }),
|
|
6203
6203
|
i === 1 && /* @__PURE__ */ jsx41("p", { className: "text-sm text-muted-foreground mt-2", children: "Pricing is based on the number of users in your workspace. You can upgrade or downgrade at any time." })
|
|
6204
6204
|
] }, i)) });
|
|
@@ -6444,7 +6444,7 @@ var HeaderFooterLayout = () => /* @__PURE__ */ jsxs36("div", { className: "flex
|
|
|
6444
6444
|
|
|
6445
6445
|
// src/components/pro-buttons.tsx
|
|
6446
6446
|
import * as React31 from "react";
|
|
6447
|
-
import { motion as motion23, AnimatePresence as
|
|
6447
|
+
import { motion as motion23, AnimatePresence as AnimatePresence6 } from "framer-motion";
|
|
6448
6448
|
import { jsx as jsx43, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
6449
6449
|
function MorphButton({ children, className, ...props }) {
|
|
6450
6450
|
const { onDrag, onDragStart, onDragEnd, onAnimationStart, ...motionSafeProps } = props;
|
|
@@ -6485,7 +6485,7 @@ function CopyTextButton({ text, className }) {
|
|
|
6485
6485
|
},
|
|
6486
6486
|
children: [
|
|
6487
6487
|
/* @__PURE__ */ jsx43("span", { className: "truncate max-w-[200px]", children: text }),
|
|
6488
|
-
/* @__PURE__ */ jsx43(
|
|
6488
|
+
/* @__PURE__ */ jsx43(AnimatePresence6, { mode: "wait", children: copied ? /* @__PURE__ */ jsx43(motion23.svg, { initial: { scale: 0 }, animate: { scale: 1 }, exit: { scale: 0 }, className: "w-4 h-4 text-green-500", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx43("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" }) }, "check") : /* @__PURE__ */ jsx43(motion23.svg, { initial: { scale: 0 }, animate: { scale: 1 }, exit: { scale: 0 }, className: "w-4 h-4 opacity-50", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx43("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z" }) }, "copy") })
|
|
6489
6489
|
]
|
|
6490
6490
|
}
|
|
6491
6491
|
);
|
|
@@ -6525,7 +6525,7 @@ function StatusButton({ status = "idle", children, className, ...props }) {
|
|
|
6525
6525
|
error: { bg: "bg-red-500 dark:bg-red-600", text: "text-white" }
|
|
6526
6526
|
};
|
|
6527
6527
|
const v = variants[status];
|
|
6528
|
-
return /* @__PURE__ */ jsx43("button", { className: cn("relative px-5 py-2.5 rounded-lg font-semibold transition-all duration-300", v.bg, v.text, status === "loading" && "animate-pulse", className), disabled: status === "loading", ...props, children: /* @__PURE__ */ jsx43(
|
|
6528
|
+
return /* @__PURE__ */ jsx43("button", { className: cn("relative px-5 py-2.5 rounded-lg font-semibold transition-all duration-300", v.bg, v.text, status === "loading" && "animate-pulse", className), disabled: status === "loading", ...props, children: /* @__PURE__ */ jsx43(AnimatePresence6, { mode: "wait", children: /* @__PURE__ */ jsxs37(motion23.span, { initial: { opacity: 0, y: 10 }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0, y: -10 }, className: "inline-flex items-center gap-2", children: [
|
|
6529
6529
|
status === "loading" && /* @__PURE__ */ jsx43("span", { className: "w-4 h-4 border-2 border-white/30 border-t-white rounded-full animate-spin" }),
|
|
6530
6530
|
status === "success" && /* @__PURE__ */ jsx43("svg", { className: "w-4 h-4", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx43("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" }) }),
|
|
6531
6531
|
status === "error" && /* @__PURE__ */ jsx43("svg", { className: "w-4 h-4", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx43("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }),
|
|
@@ -6637,7 +6637,7 @@ function MetricCard({ title, value, change, changeType = "positive", className }
|
|
|
6637
6637
|
|
|
6638
6638
|
// src/components/pro-inputs.tsx
|
|
6639
6639
|
import * as React33 from "react";
|
|
6640
|
-
import { motion as motion25, AnimatePresence as
|
|
6640
|
+
import { motion as motion25, AnimatePresence as AnimatePresence7 } from "framer-motion";
|
|
6641
6641
|
import { jsx as jsx45, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
6642
6642
|
function OTPCodeInput({ length = 6, className, onChange }) {
|
|
6643
6643
|
const [values, setValues] = React33.useState(Array(length).fill(""));
|
|
@@ -6681,7 +6681,7 @@ function TagInput({ placeholder = "Add tag...", className }) {
|
|
|
6681
6681
|
}
|
|
6682
6682
|
};
|
|
6683
6683
|
return /* @__PURE__ */ jsxs39("div", { className: cn("flex flex-wrap items-center gap-2 p-2.5 rounded-lg border border-border bg-background min-h-[44px]", className), children: [
|
|
6684
|
-
/* @__PURE__ */ jsx45(
|
|
6684
|
+
/* @__PURE__ */ jsx45(AnimatePresence7, { children: tags.map((tag) => /* @__PURE__ */ jsxs39(
|
|
6685
6685
|
motion25.span,
|
|
6686
6686
|
{
|
|
6687
6687
|
initial: { scale: 0, opacity: 0 },
|
|
@@ -6772,8 +6772,8 @@ function ColorPickerInput({ value: initial = "#8b5cf6", label, className, onChan
|
|
|
6772
6772
|
}
|
|
6773
6773
|
|
|
6774
6774
|
// src/components/special-forms.tsx
|
|
6775
|
-
import { motion as motion26, AnimatePresence as
|
|
6776
|
-
import { Check as
|
|
6775
|
+
import { motion as motion26, AnimatePresence as AnimatePresence8 } from "framer-motion";
|
|
6776
|
+
import { Check as Check8, Upload as Upload2, Star as Star3, Plus as Plus5, Minus } from "lucide-react";
|
|
6777
6777
|
import { jsx as jsx46, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
6778
6778
|
var RadioCard = ({ title, description, checked, onChange, value, name }) => /* @__PURE__ */ jsxs40("label", { className: cn("relative flex cursor-pointer rounded-lg border p-4 hover:bg-accent transition-all", checked ? "border-primary bg-primary/5 shadow-sm" : "border-border bg-card"), children: [
|
|
6779
6779
|
/* @__PURE__ */ jsx46("input", { type: "radio", name, value, checked, onChange, className: "sr-only" }),
|
|
@@ -6792,20 +6792,20 @@ var ColorSwatch = ({ color, selected, onClick }) => /* @__PURE__ */ jsx46(
|
|
|
6792
6792
|
onClick,
|
|
6793
6793
|
className: cn("relative flex h-10 w-10 items-center justify-center rounded-full transition-transform hover:scale-110", selected && "ring-2 ring-primary ring-offset-2 ring-offset-background"),
|
|
6794
6794
|
style: { backgroundColor: color },
|
|
6795
|
-
children: selected && /* @__PURE__ */ jsx46(
|
|
6795
|
+
children: selected && /* @__PURE__ */ jsx46(Check8, { className: "h-5 w-5 text-white drop-shadow-md" })
|
|
6796
6796
|
}
|
|
6797
6797
|
);
|
|
6798
6798
|
var NumberStepper = ({ value = 0, onChange, min = 0, max = 100 }) => /* @__PURE__ */ jsxs40("div", { className: "flex items-center space-x-2 rounded-md border border-border p-1 w-fit bg-card", children: [
|
|
6799
|
-
/* @__PURE__ */ jsx46("button", { type: "button", onClick: () => onChange(Math.max(min, value - 1)), className: "p-1 rounded hover:bg-muted text-muted-foreground transition-colors", children: /* @__PURE__ */ jsx46(
|
|
6799
|
+
/* @__PURE__ */ jsx46("button", { type: "button", onClick: () => onChange(Math.max(min, value - 1)), className: "p-1 rounded hover:bg-muted text-muted-foreground transition-colors", children: /* @__PURE__ */ jsx46(Minus, { className: "h-4 w-4" }) }),
|
|
6800
6800
|
/* @__PURE__ */ jsx46("div", { className: "w-8 text-center font-medium text-sm", children: value }),
|
|
6801
|
-
/* @__PURE__ */ jsx46("button", { type: "button", onClick: () => onChange(Math.min(max, value + 1)), className: "p-1 rounded hover:bg-muted text-muted-foreground transition-colors", children: /* @__PURE__ */ jsx46(
|
|
6801
|
+
/* @__PURE__ */ jsx46("button", { type: "button", onClick: () => onChange(Math.min(max, value + 1)), className: "p-1 rounded hover:bg-muted text-muted-foreground transition-colors", children: /* @__PURE__ */ jsx46(Plus5, { className: "h-4 w-4" }) })
|
|
6802
6802
|
] });
|
|
6803
|
-
var FileDropzone = ({ onDrop }) => /* @__PURE__ */ jsxs40("div", { className: "flex flex-col items-center justify-center w-full h-40 border-2 border-dashed border-muted-foreground/25 rounded-xl bg-card hover:bg-accent/50 transition-colors cursor-pointer group", children: [
|
|
6803
|
+
var FileDropzone = ({ onDrop: _onDrop }) => /* @__PURE__ */ jsxs40("div", { className: "flex flex-col items-center justify-center w-full h-40 border-2 border-dashed border-muted-foreground/25 rounded-xl bg-card hover:bg-accent/50 transition-colors cursor-pointer group", children: [
|
|
6804
6804
|
/* @__PURE__ */ jsx46("div", { className: "p-4 rounded-full bg-muted group-hover:bg-background transition-colors mb-2", children: /* @__PURE__ */ jsx46(Upload2, { className: "h-6 w-6 text-muted-foreground group-hover:text-primary transition-colors" }) }),
|
|
6805
6805
|
/* @__PURE__ */ jsx46("p", { className: "text-sm font-medium", children: "Click or drag file to this area to upload" }),
|
|
6806
6806
|
/* @__PURE__ */ jsx46("p", { className: "text-xs text-muted-foreground mt-1", children: "Support for a single or bulk upload." })
|
|
6807
6807
|
] });
|
|
6808
|
-
var RatingStars = ({ rating = 0, max = 5, onRate }) => /* @__PURE__ */ jsx46("div", { className: "flex items-center space-x-1", children: Array.from({ length: max }).map((_, i) => /* @__PURE__ */ jsx46("button", { type: "button", onClick: () => onRate?.(i + 1), className: "p-1 focus:outline-none transition-transform hover:scale-110", children: /* @__PURE__ */ jsx46(
|
|
6808
|
+
var RatingStars = ({ rating = 0, max = 5, onRate }) => /* @__PURE__ */ jsx46("div", { className: "flex items-center space-x-1", children: Array.from({ length: max }).map((_, i) => /* @__PURE__ */ jsx46("button", { type: "button", onClick: () => onRate?.(i + 1), className: "p-1 focus:outline-none transition-transform hover:scale-110", children: /* @__PURE__ */ jsx46(Star3, { className: cn("h-6 w-6", i < rating ? "fill-yellow-400 text-yellow-400" : "fill-muted text-muted-foreground") }) }, i)) });
|
|
6809
6809
|
var ToggleGroupItemWrapper = ({ children, active, onClick }) => /* @__PURE__ */ jsx46("button", { type: "button", onClick, className: cn("px-4 py-2 text-sm font-medium transition-colors border border-transparent", active ? "bg-background text-foreground shadow-sm rounded-md" : "text-muted-foreground hover:text-foreground"), children });
|
|
6810
6810
|
var ToggleGroupWrapper = ({ children }) => /* @__PURE__ */ jsx46("div", { className: "inline-flex items-center rounded-lg bg-muted p-1", children });
|
|
6811
6811
|
var InputWithLabelOverlay = ({ label, id, ...props }) => /* @__PURE__ */ jsxs40("div", { className: "relative", children: [
|
|
@@ -6818,8 +6818,8 @@ var VisualSelectCard = ({ icon: Icon2, title, description, selected }) => /* @__
|
|
|
6818
6818
|
/* @__PURE__ */ jsx46("p", { className: "text-xs text-muted-foreground", children: description })
|
|
6819
6819
|
] });
|
|
6820
6820
|
var FloatingActionForm = ({ isOpen, toggle, children }) => /* @__PURE__ */ jsxs40("div", { className: "relative", children: [
|
|
6821
|
-
/* @__PURE__ */ jsx46(
|
|
6822
|
-
/* @__PURE__ */ jsx46("button", { type: "button", onClick: toggle, className: "flex h-14 w-14 items-center justify-center rounded-full bg-primary text-primary-foreground shadow-lg hover:bg-primary/90 transition-transform active:scale-95", children: /* @__PURE__ */ jsx46(motion26.div, { animate: { rotate: isOpen ? 45 : 0 }, children: /* @__PURE__ */ jsx46(
|
|
6821
|
+
/* @__PURE__ */ jsx46(AnimatePresence8, { children: isOpen && /* @__PURE__ */ jsx46(motion26.div, { initial: { opacity: 0, scale: 0.8, y: 20 }, animate: { opacity: 1, scale: 1, y: 0 }, exit: { opacity: 0, scale: 0.8, y: 20 }, className: "absolute bottom-16 right-0 w-80 bg-card border rounded-xl shadow-xl p-4 origin-bottom-right", children }) }),
|
|
6822
|
+
/* @__PURE__ */ jsx46("button", { type: "button", onClick: toggle, className: "flex h-14 w-14 items-center justify-center rounded-full bg-primary text-primary-foreground shadow-lg hover:bg-primary/90 transition-transform active:scale-95", children: /* @__PURE__ */ jsx46(motion26.div, { animate: { rotate: isOpen ? 45 : 0 }, children: /* @__PURE__ */ jsx46(Plus5, { className: "h-6 w-6" }) }) })
|
|
6823
6823
|
] });
|
|
6824
6824
|
var OTPInput = ({ length = 6 }) => /* @__PURE__ */ jsx46("div", { className: "flex space-x-2", children: Array.from({ length }).map((_, i) => /* @__PURE__ */ jsx46("input", { type: "text", maxLength: 1, className: "w-12 h-14 text-center text-xl font-bold rounded-md border border-border bg-background focus:border-primary focus:ring-1 focus:ring-primary outline-none" }, i)) });
|
|
6825
6825
|
|
|
@@ -6946,7 +6946,7 @@ function Meteors({ number = 20, className }) {
|
|
|
6946
6946
|
|
|
6947
6947
|
// src/components/ultra-effects.tsx
|
|
6948
6948
|
import * as React35 from "react";
|
|
6949
|
-
import { motion as motion28, AnimatePresence as
|
|
6949
|
+
import { motion as motion28, AnimatePresence as AnimatePresence9 } from "framer-motion";
|
|
6950
6950
|
import { jsx as jsx48, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
6951
6951
|
function MorphingText({
|
|
6952
6952
|
texts,
|
|
@@ -6960,7 +6960,7 @@ function MorphingText({
|
|
|
6960
6960
|
}, interval);
|
|
6961
6961
|
return () => clearInterval(timer);
|
|
6962
6962
|
}, [texts.length, interval]);
|
|
6963
|
-
return /* @__PURE__ */ jsx48("div", { className: cn("relative overflow-hidden", className), children: /* @__PURE__ */ jsx48(
|
|
6963
|
+
return /* @__PURE__ */ jsx48("div", { className: cn("relative overflow-hidden", className), children: /* @__PURE__ */ jsx48(AnimatePresence9, { mode: "wait", children: /* @__PURE__ */ jsx48(
|
|
6964
6964
|
motion28.span,
|
|
6965
6965
|
{
|
|
6966
6966
|
initial: { y: 20, opacity: 0, filter: "blur(8px)" },
|
|
@@ -6992,7 +6992,7 @@ function AnimatedList({
|
|
|
6992
6992
|
}, delay);
|
|
6993
6993
|
return () => clearInterval(timer);
|
|
6994
6994
|
}, []);
|
|
6995
|
-
return /* @__PURE__ */ jsx48("div", { className: cn("flex flex-col gap-2", className), children: /* @__PURE__ */ jsx48(
|
|
6995
|
+
return /* @__PURE__ */ jsx48("div", { className: cn("flex flex-col gap-2", className), children: /* @__PURE__ */ jsx48(AnimatePresence9, { children: items.map((item, index) => /* @__PURE__ */ jsx48(
|
|
6996
6996
|
motion28.div,
|
|
6997
6997
|
{
|
|
6998
6998
|
initial: { opacity: 0, y: 20, scale: 0.95 },
|
|
@@ -7196,7 +7196,7 @@ function TextShimmer({
|
|
|
7196
7196
|
|
|
7197
7197
|
// src/components/premium-overlays.tsx
|
|
7198
7198
|
import * as React36 from "react";
|
|
7199
|
-
import { motion as motion29, AnimatePresence as
|
|
7199
|
+
import { motion as motion29, AnimatePresence as AnimatePresence10 } from "framer-motion";
|
|
7200
7200
|
import { X as X9 } from "lucide-react";
|
|
7201
7201
|
import { Fragment as Fragment5, jsx as jsx49, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
7202
7202
|
var slideVariants = {
|
|
@@ -7236,7 +7236,7 @@ function Drawer({
|
|
|
7236
7236
|
window.addEventListener("keydown", handler);
|
|
7237
7237
|
return () => window.removeEventListener("keydown", handler);
|
|
7238
7238
|
}, [open, onClose]);
|
|
7239
|
-
return /* @__PURE__ */ jsx49(
|
|
7239
|
+
return /* @__PURE__ */ jsx49(AnimatePresence10, { children: open && /* @__PURE__ */ jsxs43("div", { className: "fixed inset-0 z-50", children: [
|
|
7240
7240
|
/* @__PURE__ */ jsx49(
|
|
7241
7241
|
motion29.div,
|
|
7242
7242
|
{
|
|
@@ -7326,7 +7326,7 @@ function CommandPalette({
|
|
|
7326
7326
|
window.addEventListener("keydown", handler);
|
|
7327
7327
|
return () => window.removeEventListener("keydown", handler);
|
|
7328
7328
|
}, [open, filtered, selectedIndex, onClose]);
|
|
7329
|
-
return /* @__PURE__ */ jsx49(
|
|
7329
|
+
return /* @__PURE__ */ jsx49(AnimatePresence10, { children: open && /* @__PURE__ */ jsxs43("div", { className: "fixed inset-0 z-[100] flex items-start justify-center pt-[20vh]", children: [
|
|
7330
7330
|
/* @__PURE__ */ jsx49(
|
|
7331
7331
|
motion29.div,
|
|
7332
7332
|
{
|
|
@@ -7417,7 +7417,7 @@ function ContextMenu({ items, children, className }) {
|
|
|
7417
7417
|
}, [open]);
|
|
7418
7418
|
return /* @__PURE__ */ jsxs43(Fragment5, { children: [
|
|
7419
7419
|
/* @__PURE__ */ jsx49("div", { onContextMenu: handleContextMenu, className, children }),
|
|
7420
|
-
/* @__PURE__ */ jsx49(
|
|
7420
|
+
/* @__PURE__ */ jsx49(AnimatePresence10, { children: open && /* @__PURE__ */ jsx49(
|
|
7421
7421
|
motion29.div,
|
|
7422
7422
|
{
|
|
7423
7423
|
ref: menuRef,
|
|
@@ -7456,8 +7456,8 @@ function ContextMenu({ items, children, className }) {
|
|
|
7456
7456
|
|
|
7457
7457
|
// src/components/premium-media.tsx
|
|
7458
7458
|
import * as React37 from "react";
|
|
7459
|
-
import { motion as motion30, AnimatePresence as
|
|
7460
|
-
import { FileText as
|
|
7459
|
+
import { motion as motion30, AnimatePresence as AnimatePresence11 } from "framer-motion";
|
|
7460
|
+
import { FileText as FileText6, Image as ImageIcon2, Video as VideoIcon, FileCode2, Code2 } from "lucide-react";
|
|
7461
7461
|
import { jsx as jsx50, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
7462
7462
|
function ImageCarousel({ images, autoPlay = true, interval = 4e3, className }) {
|
|
7463
7463
|
const [current, setCurrent] = React37.useState(0);
|
|
@@ -7488,7 +7488,7 @@ function ImageCarousel({ images, autoPlay = true, interval = 4e3, className }) {
|
|
|
7488
7488
|
)) })
|
|
7489
7489
|
] });
|
|
7490
7490
|
}
|
|
7491
|
-
function VideoPlayer({ title, duration = "3:45", thumbnail, className }) {
|
|
7491
|
+
function VideoPlayer({ title, duration = "3:45", thumbnail: _thumbnail, className }) {
|
|
7492
7492
|
const [playing, setPlaying] = React37.useState(false);
|
|
7493
7493
|
return /* @__PURE__ */ jsxs44("div", { className: cn("relative overflow-hidden rounded-xl bg-muted group cursor-pointer", className), children: [
|
|
7494
7494
|
/* @__PURE__ */ jsx50("div", { className: "aspect-video bg-gradient-to-br from-slate-800 to-slate-900 flex items-center justify-center", children: /* @__PURE__ */ jsx50(
|
|
@@ -7531,13 +7531,13 @@ function AudioWaveform({ playing = false, bars = 24, className }) {
|
|
|
7531
7531
|
}
|
|
7532
7532
|
function FilePreviewCard({ name, size, type = "file", className }) {
|
|
7533
7533
|
const iconMap = {
|
|
7534
|
-
file:
|
|
7534
|
+
file: FileText6,
|
|
7535
7535
|
image: ImageIcon2,
|
|
7536
7536
|
video: VideoIcon,
|
|
7537
7537
|
pdf: FileCode2,
|
|
7538
7538
|
code: Code2
|
|
7539
7539
|
};
|
|
7540
|
-
const Icon2 = iconMap[type] ||
|
|
7540
|
+
const Icon2 = iconMap[type] || FileText6;
|
|
7541
7541
|
const colors = {
|
|
7542
7542
|
file: "from-blue-500/10 to-blue-500/5 text-blue-500",
|
|
7543
7543
|
image: "from-pink-500/10 to-pink-500/5 text-pink-500",
|
|
@@ -7576,7 +7576,7 @@ function EmbedCard({ title, description, domain, favicon, className }) {
|
|
|
7576
7576
|
}
|
|
7577
7577
|
function MusicPlayer({ title, artist, album, className }) {
|
|
7578
7578
|
const [playing, setPlaying] = React37.useState(false);
|
|
7579
|
-
const [progress
|
|
7579
|
+
const [progress] = React37.useState(35);
|
|
7580
7580
|
return /* @__PURE__ */ jsxs44("div", { className: cn("rounded-2xl border border-border bg-card p-5 w-full max-w-sm", className), children: [
|
|
7581
7581
|
/* @__PURE__ */ jsxs44("div", { className: "flex items-center gap-4 mb-4", children: [
|
|
7582
7582
|
/* @__PURE__ */ jsx50(
|
|
@@ -7743,7 +7743,7 @@ function TestimonialCarousel({ testimonials, className }) {
|
|
|
7743
7743
|
const t = testimonials[current];
|
|
7744
7744
|
return /* @__PURE__ */ jsxs44("div", { className: cn("relative text-center py-8", className), children: [
|
|
7745
7745
|
/* @__PURE__ */ jsx50("svg", { className: "w-10 h-10 text-primary/20 mx-auto mb-4", fill: "currentColor", viewBox: "0 0 32 32", children: /* @__PURE__ */ jsx50("path", { d: "M10 8c-3.3 0-6 2.7-6 6v10h10V14H8c0-1.1.9-2 2-2V8zm14 0c-3.3 0-6 2.7-6 6v10h10V14h-6c0-1.1.9-2 2-2V8z" }) }),
|
|
7746
|
-
/* @__PURE__ */ jsx50(
|
|
7746
|
+
/* @__PURE__ */ jsx50(AnimatePresence11, { mode: "wait", children: /* @__PURE__ */ jsxs44(
|
|
7747
7747
|
motion30.div,
|
|
7748
7748
|
{
|
|
7749
7749
|
initial: { opacity: 0, y: 10 },
|
|
@@ -8104,7 +8104,7 @@ function ModernAreaChart({
|
|
|
8104
8104
|
return `${acc} C ${cp1x} ${cp1y}, ${cp2x} ${cp2y}, ${p.x} ${p.y}`;
|
|
8105
8105
|
}, "");
|
|
8106
8106
|
const areaD = points.length > 0 ? `${pathD} L ${points[points.length - 1].x} ${padding.top + chartHeight} L ${points[0].x} ${padding.top + chartHeight} Z` : "";
|
|
8107
|
-
const activePoint = hoverIndex !== null ? points[hoverIndex] : points[points.length - 1] || { label: "", value: 0 };
|
|
8107
|
+
const activePoint = hoverIndex !== null ? points[hoverIndex] : points[points.length - 1] || { label: "", value: 0, x: 0, y: 0 };
|
|
8108
8108
|
return /* @__PURE__ */ jsxs45("div", { className: cn("relative w-full select-none", className), children: [
|
|
8109
8109
|
/* @__PURE__ */ jsxs45(
|
|
8110
8110
|
"svg",
|
|
@@ -8345,14 +8345,14 @@ import {
|
|
|
8345
8345
|
Send as Send3,
|
|
8346
8346
|
Paperclip as Paperclip2,
|
|
8347
8347
|
Smile as Smile3,
|
|
8348
|
-
Check as
|
|
8348
|
+
Check as Check9,
|
|
8349
8349
|
CheckCheck,
|
|
8350
8350
|
Bell as Bell3,
|
|
8351
8351
|
Copy as Copy3,
|
|
8352
|
-
Plus as
|
|
8353
|
-
MessageSquare as
|
|
8354
|
-
CheckCircle2 as
|
|
8355
|
-
AlertTriangle as
|
|
8352
|
+
Plus as Plus6,
|
|
8353
|
+
MessageSquare as MessageSquare2,
|
|
8354
|
+
CheckCircle2 as CheckCircle26,
|
|
8355
|
+
AlertTriangle as AlertTriangle2
|
|
8356
8356
|
} from "lucide-react";
|
|
8357
8357
|
import { jsx as jsx52, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
8358
8358
|
var ChatMessageContext = React39.createContext({
|
|
@@ -8530,7 +8530,7 @@ var ChatMessageStatus = React39.forwardRef(
|
|
|
8530
8530
|
className: cn("inline-flex items-center text-[10px] text-muted-foreground ml-1.5", className),
|
|
8531
8531
|
...props,
|
|
8532
8532
|
children: [
|
|
8533
|
-
status === "sent" && /* @__PURE__ */ jsx52(
|
|
8533
|
+
status === "sent" && /* @__PURE__ */ jsx52(Check9, { className: "w-3 h-3 text-muted-foreground" }),
|
|
8534
8534
|
status === "delivered" && /* @__PURE__ */ jsx52(CheckCheck, { className: "w-3 h-3 text-muted-foreground" }),
|
|
8535
8535
|
status === "read" && /* @__PURE__ */ jsx52(CheckCheck, { className: "w-3 h-3 text-primary" })
|
|
8536
8536
|
]
|
|
@@ -8642,6 +8642,7 @@ var ChatInputSubmit = React39.forwardRef(
|
|
|
8642
8642
|
({ disabled = false, className, children, ...props }, ref) => /* @__PURE__ */ jsx52(
|
|
8643
8643
|
motion32.button,
|
|
8644
8644
|
{
|
|
8645
|
+
ref,
|
|
8645
8646
|
whileTap: { scale: disabled ? 1 : 0.92 },
|
|
8646
8647
|
disabled,
|
|
8647
8648
|
className: cn(
|
|
@@ -8819,6 +8820,7 @@ var UserProfileFollowButton = React39.forwardRef(
|
|
|
8819
8820
|
({ following = false, className, children, ...props }, ref) => /* @__PURE__ */ jsx52(
|
|
8820
8821
|
motion32.button,
|
|
8821
8822
|
{
|
|
8823
|
+
ref,
|
|
8822
8824
|
whileTap: { scale: 0.95 },
|
|
8823
8825
|
className: cn(
|
|
8824
8826
|
"px-4 py-1.5 rounded-full text-xs font-semibold transition-all duration-200 cursor-pointer shadow-xs",
|
|
@@ -9131,7 +9133,7 @@ var ReactionAdd = React39.forwardRef(
|
|
|
9131
9133
|
className
|
|
9132
9134
|
),
|
|
9133
9135
|
...props,
|
|
9134
|
-
children: /* @__PURE__ */ jsx52(
|
|
9136
|
+
children: /* @__PURE__ */ jsx52(Plus6, { className: "w-3.5 h-3.5" })
|
|
9135
9137
|
}
|
|
9136
9138
|
)
|
|
9137
9139
|
);
|
|
@@ -9271,7 +9273,7 @@ var ShareSheet = React39.forwardRef(
|
|
|
9271
9273
|
onClick: handleCopy,
|
|
9272
9274
|
className: "px-3.5 py-2 rounded-xl bg-primary text-primary-foreground text-xs font-medium shrink-0 flex items-center gap-1.5 shadow-sm shadow-primary/20 hover:bg-primary/90 transition-colors cursor-pointer",
|
|
9273
9275
|
children: [
|
|
9274
|
-
copied ? /* @__PURE__ */ jsx52(
|
|
9276
|
+
copied ? /* @__PURE__ */ jsx52(Check9, { className: "w-3.5 h-3.5 text-emerald-400" }) : /* @__PURE__ */ jsx52(Copy3, { className: "w-3.5 h-3.5" }),
|
|
9275
9277
|
/* @__PURE__ */ jsx52("span", { children: copied ? "Copied!" : "Copy" })
|
|
9276
9278
|
]
|
|
9277
9279
|
}
|
|
@@ -9300,9 +9302,9 @@ var NotificationCenter = React39.forwardRef(
|
|
|
9300
9302
|
);
|
|
9301
9303
|
}
|
|
9302
9304
|
const typeIcons = {
|
|
9303
|
-
info: /* @__PURE__ */ jsx52(
|
|
9304
|
-
success: /* @__PURE__ */ jsx52(
|
|
9305
|
-
warning: /* @__PURE__ */ jsx52(
|
|
9305
|
+
info: /* @__PURE__ */ jsx52(MessageSquare2, { className: "w-4 h-4 text-blue-500" }),
|
|
9306
|
+
success: /* @__PURE__ */ jsx52(CheckCircle26, { className: "w-4 h-4 text-emerald-500" }),
|
|
9307
|
+
warning: /* @__PURE__ */ jsx52(AlertTriangle2, { className: "w-4 h-4 text-amber-500" })
|
|
9306
9308
|
};
|
|
9307
9309
|
return /* @__PURE__ */ jsxs46(
|
|
9308
9310
|
"div",
|
|
@@ -9361,16 +9363,16 @@ import { motion as motion33 } from "framer-motion";
|
|
|
9361
9363
|
import {
|
|
9362
9364
|
ShoppingBag as ShoppingBag2,
|
|
9363
9365
|
Heart as Heart4,
|
|
9364
|
-
Star as
|
|
9365
|
-
Check as
|
|
9366
|
+
Star as Star4,
|
|
9367
|
+
Check as Check10,
|
|
9366
9368
|
ShieldCheck as ShieldCheck2,
|
|
9367
9369
|
Lock as Lock3,
|
|
9368
9370
|
Download as Download3,
|
|
9369
9371
|
Copy as Copy4,
|
|
9370
9372
|
Trash2 as Trash23,
|
|
9371
|
-
Plus as
|
|
9372
|
-
Minus as
|
|
9373
|
-
Sparkles as
|
|
9373
|
+
Plus as Plus7,
|
|
9374
|
+
Minus as Minus2,
|
|
9375
|
+
Sparkles as Sparkles4,
|
|
9374
9376
|
ArrowRight as ArrowRight4,
|
|
9375
9377
|
Tag
|
|
9376
9378
|
} from "lucide-react";
|
|
@@ -9418,7 +9420,7 @@ function ProductCardPro({
|
|
|
9418
9420
|
}
|
|
9419
9421
|
),
|
|
9420
9422
|
badge && /* @__PURE__ */ jsx53("div", { className: "absolute top-3 left-3 z-10", children: /* @__PURE__ */ jsxs47("span", { className: "inline-flex items-center gap-1 px-2.5 py-1 rounded-full bg-primary/90 text-primary-foreground text-[11px] font-bold tracking-wide shadow-md backdrop-blur-md", children: [
|
|
9421
|
-
/* @__PURE__ */ jsx53(
|
|
9423
|
+
/* @__PURE__ */ jsx53(Sparkles4, { className: "w-3 h-3" }),
|
|
9422
9424
|
badge
|
|
9423
9425
|
] }) }),
|
|
9424
9426
|
/* @__PURE__ */ jsx53(
|
|
@@ -9454,7 +9456,7 @@ function ProductCardPro({
|
|
|
9454
9456
|
/* @__PURE__ */ jsxs47("div", { className: "pt-4 space-y-3", children: [
|
|
9455
9457
|
/* @__PURE__ */ jsxs47("div", { className: "flex items-center justify-between", children: [
|
|
9456
9458
|
/* @__PURE__ */ jsxs47("div", { className: "flex items-center gap-1.5", children: [
|
|
9457
|
-
/* @__PURE__ */ jsx53("div", { className: "flex items-center text-amber-400", children: /* @__PURE__ */ jsx53(
|
|
9459
|
+
/* @__PURE__ */ jsx53("div", { className: "flex items-center text-amber-400", children: /* @__PURE__ */ jsx53(Star4, { className: "w-3.5 h-3.5 fill-amber-400" }) }),
|
|
9458
9460
|
/* @__PURE__ */ jsx53("span", { className: "text-xs font-bold text-foreground", children: rating }),
|
|
9459
9461
|
/* @__PURE__ */ jsxs47("span", { className: "text-xs text-muted-foreground", children: [
|
|
9460
9462
|
"(",
|
|
@@ -9502,7 +9504,7 @@ function ProductCardPro({
|
|
|
9502
9504
|
isAdded ? "bg-emerald-600 text-white shadow-emerald-500/25" : "bg-primary text-primary-foreground hover:bg-primary/90 shadow-primary/20"
|
|
9503
9505
|
),
|
|
9504
9506
|
children: isAdded ? /* @__PURE__ */ jsxs47(Fragment6, { children: [
|
|
9505
|
-
/* @__PURE__ */ jsx53(
|
|
9507
|
+
/* @__PURE__ */ jsx53(Check10, { className: "w-4 h-4" }),
|
|
9506
9508
|
/* @__PURE__ */ jsx53("span", { children: "Added to Cart!" })
|
|
9507
9509
|
] }) : /* @__PURE__ */ jsxs47(Fragment6, { children: [
|
|
9508
9510
|
/* @__PURE__ */ jsx53(ShoppingBag2, { className: "w-4 h-4" }),
|
|
@@ -9680,7 +9682,7 @@ function SubscriptionCard({
|
|
|
9680
9682
|
/* @__PURE__ */ jsxs47("div", { className: "space-y-2.5 pt-2 border-t border-border/60", children: [
|
|
9681
9683
|
/* @__PURE__ */ jsx53("p", { className: "text-[11px] font-bold text-muted-foreground uppercase tracking-wider", children: "Included with plan:" }),
|
|
9682
9684
|
/* @__PURE__ */ jsx53("ul", { className: "space-y-2 text-xs", children: features.map((f, i) => /* @__PURE__ */ jsxs47("li", { className: "flex items-center gap-2.5 text-foreground/90", children: [
|
|
9683
|
-
/* @__PURE__ */ jsx53("div", { className: "w-4 h-4 rounded-full bg-emerald-500/10 border border-emerald-500/20 text-emerald-500 flex items-center justify-center shrink-0", children: /* @__PURE__ */ jsx53(
|
|
9685
|
+
/* @__PURE__ */ jsx53("div", { className: "w-4 h-4 rounded-full bg-emerald-500/10 border border-emerald-500/20 text-emerald-500 flex items-center justify-center shrink-0", children: /* @__PURE__ */ jsx53(Check10, { className: "w-2.5 h-2.5" }) }),
|
|
9684
9686
|
/* @__PURE__ */ jsx53("span", { children: f })
|
|
9685
9687
|
] }, i)) })
|
|
9686
9688
|
] }),
|
|
@@ -9780,7 +9782,7 @@ function CartItem({
|
|
|
9780
9782
|
type: "button",
|
|
9781
9783
|
onClick: () => onQuantityChange?.(Math.max(1, quantity - 1)),
|
|
9782
9784
|
className: "w-6 h-6 rounded-lg bg-card hover:bg-muted flex items-center justify-center text-xs transition-colors cursor-pointer border border-border/40",
|
|
9783
|
-
children: /* @__PURE__ */ jsx53(
|
|
9785
|
+
children: /* @__PURE__ */ jsx53(Minus2, { className: "w-3 h-3" })
|
|
9784
9786
|
}
|
|
9785
9787
|
),
|
|
9786
9788
|
/* @__PURE__ */ jsx53("span", { className: "w-6 text-center text-xs font-mono font-bold", children: quantity }),
|
|
@@ -9790,7 +9792,7 @@ function CartItem({
|
|
|
9790
9792
|
type: "button",
|
|
9791
9793
|
onClick: () => onQuantityChange?.(quantity + 1),
|
|
9792
9794
|
className: "w-6 h-6 rounded-lg bg-card hover:bg-muted flex items-center justify-center text-xs transition-colors cursor-pointer border border-border/40",
|
|
9793
|
-
children: /* @__PURE__ */ jsx53(
|
|
9795
|
+
children: /* @__PURE__ */ jsx53(Plus7, { className: "w-3 h-3" })
|
|
9794
9796
|
}
|
|
9795
9797
|
)
|
|
9796
9798
|
] }),
|
|
@@ -9917,7 +9919,7 @@ function CouponCard({
|
|
|
9917
9919
|
onClick: handleCopy,
|
|
9918
9920
|
className: "px-4 py-2 rounded-xl bg-primary text-primary-foreground text-xs font-semibold hover:bg-primary/90 transition-colors cursor-pointer flex items-center gap-1.5 shrink-0",
|
|
9919
9921
|
children: [
|
|
9920
|
-
copied ? /* @__PURE__ */ jsx53(
|
|
9922
|
+
copied ? /* @__PURE__ */ jsx53(Check10, { className: "w-3.5 h-3.5" }) : /* @__PURE__ */ jsx53(Copy4, { className: "w-3.5 h-3.5" }),
|
|
9921
9923
|
/* @__PURE__ */ jsx53("span", { children: copied ? "Copied!" : "Copy" })
|
|
9922
9924
|
]
|
|
9923
9925
|
}
|
|
@@ -9974,7 +9976,7 @@ function PricingSlider({
|
|
|
9974
9976
|
/* @__PURE__ */ jsxs47("div", { className: "space-y-2 pt-2 border-t border-border/60", children: [
|
|
9975
9977
|
/* @__PURE__ */ jsx53("p", { className: "text-[11px] font-bold text-muted-foreground uppercase", children: "Key Features:" }),
|
|
9976
9978
|
/* @__PURE__ */ jsx53("ul", { className: "space-y-1.5 text-xs", children: current.features.map((f, idx) => /* @__PURE__ */ jsxs47("li", { className: "flex items-center gap-2 text-foreground/90", children: [
|
|
9977
|
-
/* @__PURE__ */ jsx53(
|
|
9979
|
+
/* @__PURE__ */ jsx53(Check10, { className: "w-3.5 h-3.5 text-emerald-500 shrink-0" }),
|
|
9978
9980
|
/* @__PURE__ */ jsx53("span", { children: f })
|
|
9979
9981
|
] }, idx)) })
|
|
9980
9982
|
] })
|
|
@@ -9984,7 +9986,7 @@ function PricingSlider({
|
|
|
9984
9986
|
}
|
|
9985
9987
|
function ReviewStars({ rating = 4.8, size = 18, reviewCount }) {
|
|
9986
9988
|
return /* @__PURE__ */ jsxs47("div", { className: "inline-flex items-center gap-1.5", children: [
|
|
9987
|
-
/* @__PURE__ */ jsx53("div", { className: "flex items-center text-amber-400", children: [1, 2, 3, 4, 5].map((s) => /* @__PURE__ */ jsx53(
|
|
9989
|
+
/* @__PURE__ */ jsx53("div", { className: "flex items-center text-amber-400", children: [1, 2, 3, 4, 5].map((s) => /* @__PURE__ */ jsx53(Star4, { style: { width: size, height: size }, className: cn(s <= Math.round(rating) ? "fill-amber-400 text-amber-400" : "text-muted/40") }, s)) }),
|
|
9988
9990
|
/* @__PURE__ */ jsx53("span", { className: "text-xs font-bold text-foreground", children: rating }),
|
|
9989
9991
|
reviewCount && /* @__PURE__ */ jsxs47("span", { className: "text-xs text-muted-foreground", children: [
|
|
9990
9992
|
"(",
|
|
@@ -10010,12 +10012,12 @@ function TrustBadge({
|
|
|
10010
10012
|
|
|
10011
10013
|
// src/components/premium-effects.tsx
|
|
10012
10014
|
import * as React41 from "react";
|
|
10013
|
-
import { motion as motion34, useMotionValue as
|
|
10015
|
+
import { motion as motion34, useMotionValue as useMotionValue2, AnimatePresence as AnimatePresence12 } from "framer-motion";
|
|
10014
10016
|
import { jsx as jsx54, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
10015
10017
|
var GlowSpotlightCard = React41.forwardRef(
|
|
10016
10018
|
({ children, className, glowColor = "rgba(139, 92, 246, 0.15)", glowSize = 300, ...props }, ref) => {
|
|
10017
|
-
const mouseX =
|
|
10018
|
-
const mouseY =
|
|
10019
|
+
const mouseX = useMotionValue2(0);
|
|
10020
|
+
const mouseY = useMotionValue2(0);
|
|
10019
10021
|
const handleMouseMove = React41.useCallback(
|
|
10020
10022
|
({ clientX, clientY, currentTarget }) => {
|
|
10021
10023
|
const { left, top } = currentTarget.getBoundingClientRect();
|
|
@@ -10148,7 +10150,7 @@ function AnimatedGridBackground({
|
|
|
10148
10150
|
}
|
|
10149
10151
|
) }),
|
|
10150
10152
|
/* @__PURE__ */ jsx54("rect", { width: "100%", height: "100%", fill: `url(#${id})` }),
|
|
10151
|
-
/* @__PURE__ */ jsx54(
|
|
10153
|
+
/* @__PURE__ */ jsx54(AnimatePresence12, { children: flashingCells.map((cell) => /* @__PURE__ */ jsx54(
|
|
10152
10154
|
motion34.rect,
|
|
10153
10155
|
{
|
|
10154
10156
|
initial: { opacity: 0 },
|
|
@@ -10222,8 +10224,7 @@ function BentoCard({
|
|
|
10222
10224
|
|
|
10223
10225
|
// src/components/aurora-border-fx.tsx
|
|
10224
10226
|
import * as React42 from "react";
|
|
10225
|
-
import {
|
|
10226
|
-
import { Sparkles as Sparkles6 } from "lucide-react";
|
|
10227
|
+
import { Sparkles as Sparkles5 } from "lucide-react";
|
|
10227
10228
|
import { jsx as jsx55, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
10228
10229
|
var defaultAuroraColors = [
|
|
10229
10230
|
{ name: "Violet", hex: "#8b5cf6" },
|
|
@@ -10258,7 +10259,7 @@ var AuroraBorderFX = React42.forwardRef(
|
|
|
10258
10259
|
glow = "medium",
|
|
10259
10260
|
radius = "lg",
|
|
10260
10261
|
badgeText = "Aurora Border FX",
|
|
10261
|
-
badgeIcon = /* @__PURE__ */ jsx55(
|
|
10262
|
+
badgeIcon = /* @__PURE__ */ jsx55(Sparkles5, { className: "w-3 h-3" }),
|
|
10262
10263
|
title = "Reactive Aurora Borders",
|
|
10263
10264
|
description = "Smooth multi-color conic gradients that dynamically track and react with zero JavaScript canvas lag.",
|
|
10264
10265
|
showColorPicker = true,
|
|
@@ -10271,7 +10272,6 @@ var AuroraBorderFX = React42.forwardRef(
|
|
|
10271
10272
|
children,
|
|
10272
10273
|
...props
|
|
10273
10274
|
}, ref) => {
|
|
10274
|
-
const shouldReduceMotion = useReducedMotion3();
|
|
10275
10275
|
const resolvedInitialColor = colorPresetMap[color] || color || "#8b5cf6";
|
|
10276
10276
|
const [internalColor, setInternalColor] = React42.useState(resolvedInitialColor);
|
|
10277
10277
|
React42.useEffect(() => {
|
|
@@ -10420,8 +10420,8 @@ AuroraBorderFX.displayName = "AuroraBorderFX";
|
|
|
10420
10420
|
|
|
10421
10421
|
// src/components/morphing-geometry.tsx
|
|
10422
10422
|
import * as React43 from "react";
|
|
10423
|
-
import { motion as
|
|
10424
|
-
import { Sparkles as
|
|
10423
|
+
import { motion as motion35 } from "framer-motion";
|
|
10424
|
+
import { Sparkles as Sparkles6 } from "lucide-react";
|
|
10425
10425
|
import { jsx as jsx56, jsxs as jsxs50 } from "react/jsx-runtime";
|
|
10426
10426
|
var sizeMap3 = {
|
|
10427
10427
|
sm: "w-16 h-16 text-xs",
|
|
@@ -10501,7 +10501,6 @@ var MorphingGeometry = React43.forwardRef(
|
|
|
10501
10501
|
...props
|
|
10502
10502
|
}, ref) => {
|
|
10503
10503
|
const [currentShape, setCurrentShape] = React43.useState(shape);
|
|
10504
|
-
const [isHovered, setIsHovered] = React43.useState(false);
|
|
10505
10504
|
React43.useEffect(() => {
|
|
10506
10505
|
setCurrentShape(shape);
|
|
10507
10506
|
}, [shape]);
|
|
@@ -10532,7 +10531,7 @@ var MorphingGeometry = React43.forwardRef(
|
|
|
10532
10531
|
variantClasses = `bg-muted/60 border border-border text-foreground`;
|
|
10533
10532
|
}
|
|
10534
10533
|
return /* @__PURE__ */ jsxs50(
|
|
10535
|
-
|
|
10534
|
+
motion35.div,
|
|
10536
10535
|
{
|
|
10537
10536
|
ref,
|
|
10538
10537
|
animate: spin ? { rotate: [0, 90, 180, 270, 360] } : { rotate: 0 },
|
|
@@ -10546,8 +10545,6 @@ var MorphingGeometry = React43.forwardRef(
|
|
|
10546
10545
|
},
|
|
10547
10546
|
whileHover: { scale: 1.04 },
|
|
10548
10547
|
whileTap: { scale: 0.96 },
|
|
10549
|
-
onHoverStart: () => setIsHovered(true),
|
|
10550
|
-
onHoverEnd: () => setIsHovered(false),
|
|
10551
10548
|
onClick: handleInteractiveClick,
|
|
10552
10549
|
className: cn(
|
|
10553
10550
|
"relative flex items-center justify-center select-none overflow-hidden transition-all duration-300",
|
|
@@ -10565,7 +10562,7 @@ var MorphingGeometry = React43.forwardRef(
|
|
|
10565
10562
|
...props,
|
|
10566
10563
|
children: [
|
|
10567
10564
|
/* @__PURE__ */ jsx56("div", { className: "absolute inset-0 bg-gradient-to-b from-white/25 via-transparent to-black/20 pointer-events-none" }),
|
|
10568
|
-
/* @__PURE__ */ jsx56("div", { className: "relative z-10 flex flex-col items-center justify-center p-2 text-center", children: icon || (children ? children : /* @__PURE__ */ jsx56(
|
|
10565
|
+
/* @__PURE__ */ jsx56("div", { className: "relative z-10 flex flex-col items-center justify-center p-2 text-center", children: icon || (children ? children : /* @__PURE__ */ jsx56(Sparkles6, { className: "w-6 h-6 drop-shadow-md" })) })
|
|
10569
10566
|
]
|
|
10570
10567
|
}
|
|
10571
10568
|
);
|
|
@@ -10575,7 +10572,7 @@ MorphingGeometry.displayName = "MorphingGeometry";
|
|
|
10575
10572
|
|
|
10576
10573
|
// src/components/interactive-code-block.tsx
|
|
10577
10574
|
import * as React44 from "react";
|
|
10578
|
-
import { Copy as Copy5, Check as
|
|
10575
|
+
import { Copy as Copy5, Check as Check11 } from "lucide-react";
|
|
10579
10576
|
import { Fragment as Fragment7, jsx as jsx57, jsxs as jsxs51 } from "react/jsx-runtime";
|
|
10580
10577
|
var themeStyles = {
|
|
10581
10578
|
dark: {
|
|
@@ -10672,7 +10669,7 @@ var InteractiveCodeBlock = React44.forwardRef(
|
|
|
10672
10669
|
"aria-label": "Copy code to clipboard",
|
|
10673
10670
|
className: "inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md bg-white/10 hover:bg-white/15 text-zinc-300 hover:text-white transition-all cursor-pointer active:scale-95",
|
|
10674
10671
|
children: copied ? /* @__PURE__ */ jsxs51(Fragment7, { children: [
|
|
10675
|
-
/* @__PURE__ */ jsx57(
|
|
10672
|
+
/* @__PURE__ */ jsx57(Check11, { className: "h-3 w-3 text-emerald-400" }),
|
|
10676
10673
|
/* @__PURE__ */ jsx57("span", { className: "text-emerald-400 text-[11px] font-sans", children: "Copied!" })
|
|
10677
10674
|
] }) : /* @__PURE__ */ jsxs51(Fragment7, { children: [
|
|
10678
10675
|
/* @__PURE__ */ jsx57(Copy5, { className: "h-3 w-3" }),
|
|
@@ -10711,7 +10708,7 @@ InteractiveCodeBlock.displayName = "InteractiveCodeBlock";
|
|
|
10711
10708
|
|
|
10712
10709
|
// src/components/aurora-search-pill.tsx
|
|
10713
10710
|
import * as React45 from "react";
|
|
10714
|
-
import { Globe as Globe3, Sparkles as
|
|
10711
|
+
import { Globe as Globe3, Sparkles as Sparkles7 } from "lucide-react";
|
|
10715
10712
|
import { jsx as jsx58, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
10716
10713
|
if (typeof window !== "undefined" && typeof window.CSS !== "undefined" && "registerProperty" in window.CSS) {
|
|
10717
10714
|
try {
|
|
@@ -10801,7 +10798,6 @@ var AuroraSearchPill = React45.forwardRef(
|
|
|
10801
10798
|
const [uncontrolledSearching, setUncontrolledSearching] = React45.useState(defaultSearching);
|
|
10802
10799
|
const active = isControlled ? controlledSearching : uncontrolledSearching;
|
|
10803
10800
|
const [isHovered, setIsHovered] = React45.useState(false);
|
|
10804
|
-
const instanceId = React45.useId().replace(/:/g, "");
|
|
10805
10801
|
const activeSources = React45.useMemo(() => {
|
|
10806
10802
|
if (sourceAvatars && sourceAvatars.length > 0) {
|
|
10807
10803
|
return sourceAvatars.map((url, i) => ({
|
|
@@ -10847,11 +10843,19 @@ var AuroraSearchPill = React45.forwardRef(
|
|
|
10847
10843
|
const glowAlpha = GLOW_OPACITY[glowIntensity] ?? GLOW_OPACITY.medium;
|
|
10848
10844
|
const bodyThemeClass = theme === "light" ? "bg-white text-slate-900 border-white/60 shadow-sm" : theme === "dark" ? "bg-[#090d16] text-white border-white/10 shadow-lg shadow-black/40" : "bg-white text-slate-900 dark:bg-[#090d16] dark:text-white border-white/60 dark:border-white/10 shadow-sm dark:shadow-black/40";
|
|
10849
10845
|
const dotsColorClass = theme === "light" ? "bg-slate-900" : theme === "dark" ? "bg-white" : "bg-slate-900 dark:bg-white";
|
|
10846
|
+
const {
|
|
10847
|
+
onKeyDown,
|
|
10848
|
+
...restProps
|
|
10849
|
+
} = props;
|
|
10850
10850
|
return /* @__PURE__ */ jsxs52(
|
|
10851
10851
|
"div",
|
|
10852
10852
|
{
|
|
10853
10853
|
ref,
|
|
10854
|
-
|
|
10854
|
+
...restProps,
|
|
10855
|
+
onClick: (e) => {
|
|
10856
|
+
onClick?.(e);
|
|
10857
|
+
handleToggle(e);
|
|
10858
|
+
},
|
|
10855
10859
|
onMouseEnter: (e) => {
|
|
10856
10860
|
setIsHovered(true);
|
|
10857
10861
|
onMouseEnter?.(e);
|
|
@@ -10865,6 +10869,7 @@ var AuroraSearchPill = React45.forwardRef(
|
|
|
10865
10869
|
"aria-pressed": active,
|
|
10866
10870
|
"aria-label": active ? `Searching: ${searchLabel}` : "Activate AI Search",
|
|
10867
10871
|
onKeyDown: (e) => {
|
|
10872
|
+
onKeyDown?.(e);
|
|
10868
10873
|
if (e.key === "Enter" || e.key === " ") {
|
|
10869
10874
|
e.preventDefault();
|
|
10870
10875
|
handleToggle(e);
|
|
@@ -10875,7 +10880,6 @@ var AuroraSearchPill = React45.forwardRef(
|
|
|
10875
10880
|
"transition-transform duration-200 ease-out active:scale-[0.96] focus-visible:ring-2 focus-visible:ring-primary/50 focus-visible:ring-offset-2",
|
|
10876
10881
|
className
|
|
10877
10882
|
),
|
|
10878
|
-
...props,
|
|
10879
10883
|
children: [
|
|
10880
10884
|
/* @__PURE__ */ jsx58("style", { dangerouslySetInnerHTML: {
|
|
10881
10885
|
__html: `
|
|
@@ -11006,7 +11010,7 @@ var AuroraSearchPill = React45.forwardRef(
|
|
|
11006
11010
|
alt: src.label || src.id,
|
|
11007
11011
|
className: "w-full h-full object-cover"
|
|
11008
11012
|
}
|
|
11009
|
-
) : src.icon ? src.icon : src.type === "globe" ? /* @__PURE__ */ jsx58(Globe3, { className: "w-3 h-3 text-sky-400 stroke-[2.5]" }) : src.type === "github" ? /* @__PURE__ */ jsx58("svg", { className: "w-3.5 h-3.5 fill-[#181717]", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx58("path", { d: "M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0 0 24 12c0-6.63-5.37-12-12-12z" }) }) : src.type === "claude" ? /* @__PURE__ */ jsx58(
|
|
11013
|
+
) : src.icon ? src.icon : src.type === "globe" ? /* @__PURE__ */ jsx58(Globe3, { className: "w-3 h-3 text-sky-400 stroke-[2.5]" }) : src.type === "github" ? /* @__PURE__ */ jsx58("svg", { className: "w-3.5 h-3.5 fill-[#181717]", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx58("path", { d: "M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0 0 24 12c0-6.63-5.37-12-12-12z" }) }) : src.type === "claude" ? /* @__PURE__ */ jsx58(Sparkles7, { className: "w-2.5 h-2.5 text-white" }) : src.type === "chatgpt" ? /* @__PURE__ */ jsx58("div", { className: "w-2 h-2 rounded-full bg-white" }) : src.type === "perplexity" ? /* @__PURE__ */ jsx58(Sparkles7, { className: "w-2.5 h-2.5 text-white" }) : src.initials ? /* @__PURE__ */ jsx58("span", { className: "text-[8px] font-bold text-white uppercase", children: src.initials }) : null
|
|
11010
11014
|
},
|
|
11011
11015
|
src.id || i
|
|
11012
11016
|
);
|
|
@@ -11028,7 +11032,7 @@ AuroraSearchPill.displayName = "AuroraSearchPill";
|
|
|
11028
11032
|
|
|
11029
11033
|
// src/components/dock.tsx
|
|
11030
11034
|
import { useRef as useRef13 } from "react";
|
|
11031
|
-
import { motion as
|
|
11035
|
+
import { motion as motion36, useMotionValue as useMotionValue3, useSpring as useSpring2, useTransform as useTransform2 } from "framer-motion";
|
|
11032
11036
|
import { jsx as jsx59, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
11033
11037
|
function Dock({
|
|
11034
11038
|
items,
|
|
@@ -11036,11 +11040,11 @@ function Dock({
|
|
|
11036
11040
|
magnification = 60,
|
|
11037
11041
|
distance = 140
|
|
11038
11042
|
}) {
|
|
11039
|
-
const mouseX =
|
|
11043
|
+
const mouseX = useMotionValue3(Infinity);
|
|
11040
11044
|
const numMagnification = Number(magnification) || 60;
|
|
11041
11045
|
const numDistance = Number(distance) || 140;
|
|
11042
11046
|
return /* @__PURE__ */ jsx59(
|
|
11043
|
-
|
|
11047
|
+
motion36.div,
|
|
11044
11048
|
{
|
|
11045
11049
|
onMouseMove: (e) => mouseX.set(e.clientX),
|
|
11046
11050
|
onMouseLeave: () => mouseX.set(Infinity),
|
|
@@ -11063,22 +11067,22 @@ function DockIcon({
|
|
|
11063
11067
|
const ref = useRef13(null);
|
|
11064
11068
|
const numDistance = Number(distance) || 140;
|
|
11065
11069
|
const numMagnification = Number(magnification) || 60;
|
|
11066
|
-
const distanceVal =
|
|
11070
|
+
const distanceVal = useTransform2(mouseX, (val) => {
|
|
11067
11071
|
const bounds = ref.current?.getBoundingClientRect() ?? { x: 0, width: 0 };
|
|
11068
11072
|
return val - bounds.x - bounds.width / 2;
|
|
11069
11073
|
});
|
|
11070
|
-
const widthSync =
|
|
11074
|
+
const widthSync = useTransform2(
|
|
11071
11075
|
distanceVal,
|
|
11072
11076
|
[-numDistance, 0, numDistance],
|
|
11073
11077
|
[40, numMagnification, 40]
|
|
11074
11078
|
);
|
|
11075
|
-
const width =
|
|
11079
|
+
const width = useSpring2(widthSync, {
|
|
11076
11080
|
mass: 0.1,
|
|
11077
11081
|
stiffness: 150,
|
|
11078
11082
|
damping: 12
|
|
11079
11083
|
});
|
|
11080
11084
|
return /* @__PURE__ */ jsxs53(
|
|
11081
|
-
|
|
11085
|
+
motion36.div,
|
|
11082
11086
|
{
|
|
11083
11087
|
ref,
|
|
11084
11088
|
style: { width },
|
|
@@ -11095,7 +11099,7 @@ function DockIcon({
|
|
|
11095
11099
|
|
|
11096
11100
|
// src/components/dark-mode.tsx
|
|
11097
11101
|
import { useState as useState32 } from "react";
|
|
11098
|
-
import { motion as
|
|
11102
|
+
import { motion as motion37 } from "framer-motion";
|
|
11099
11103
|
import { Sun, Moon, Monitor } from "lucide-react";
|
|
11100
11104
|
import { jsx as jsx60, jsxs as jsxs54 } from "react/jsx-runtime";
|
|
11101
11105
|
function DarkModeToggle({
|
|
@@ -11136,7 +11140,7 @@ function DarkModeToggle({
|
|
|
11136
11140
|
title: `Switch to ${isDark ? "light" : "dark"} theme`,
|
|
11137
11141
|
"aria-label": "Toggle theme",
|
|
11138
11142
|
children: /* @__PURE__ */ jsx60(
|
|
11139
|
-
|
|
11143
|
+
motion37.div,
|
|
11140
11144
|
{
|
|
11141
11145
|
initial: { rotate: -90, scale: 0.8, opacity: 0 },
|
|
11142
11146
|
animate: { rotate: 0, scale: 1, opacity: 1 },
|
|
@@ -11196,7 +11200,7 @@ function DarkModeToggle({
|
|
|
11196
11200
|
title: `Switch to ${isDark ? "light" : "dark"} mode`,
|
|
11197
11201
|
"aria-label": "Toggle dark mode",
|
|
11198
11202
|
children: /* @__PURE__ */ jsx60(
|
|
11199
|
-
|
|
11203
|
+
motion37.div,
|
|
11200
11204
|
{
|
|
11201
11205
|
animate: {
|
|
11202
11206
|
x: isDark ? size === "sm" ? 20 : size === "lg" ? 28 : 25 : 0
|