@cupcodev/ui 5.1.3 → 6.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/{charts-citXBvHw.d.cts → charts-eumneI2w.d.cts} +1 -1
- package/dist/{charts-citXBvHw.d.ts → charts-eumneI2w.d.ts} +1 -1
- package/dist/charts.cjs +2 -1
- package/dist/charts.d.cts +1 -1
- package/dist/charts.d.ts +1 -1
- package/dist/charts.js +2 -1
- package/dist/index.cjs +1440 -793
- package/dist/index.d.cts +29 -5
- package/dist/index.d.ts +29 -5
- package/dist/index.js +1318 -670
- package/dist/styles.css +2 -2
- package/package.json +1 -1
- package/styles/global.css +219 -138
- package/styles/tokens.css +21 -0
package/dist/index.cjs
CHANGED
|
@@ -51,6 +51,7 @@ __export(src_exports, {
|
|
|
51
51
|
AlertDialogTitle: () => AlertDialogTitle,
|
|
52
52
|
AlertDialogTrigger: () => AlertDialogTrigger,
|
|
53
53
|
AlertTitle: () => AlertTitle,
|
|
54
|
+
AnimatedThemeToggle: () => ThemeToggle,
|
|
54
55
|
AppSidebar: () => AppSidebar,
|
|
55
56
|
AspectRatio: () => AspectRatio,
|
|
56
57
|
AuthProvider: () => AuthProvider,
|
|
@@ -339,7 +340,9 @@ __export(src_exports, {
|
|
|
339
340
|
TelescupVideo: () => TelescupVideo,
|
|
340
341
|
Textarea: () => Textarea,
|
|
341
342
|
TextareaField: () => TextareaField,
|
|
342
|
-
|
|
343
|
+
ThemeProvider: () => ThemeProvider,
|
|
344
|
+
ThemeScript: () => ThemeScript,
|
|
345
|
+
ThemeToggle: () => ThemeToggle2,
|
|
343
346
|
Timeline: () => Timeline,
|
|
344
347
|
Toast: () => Toast,
|
|
345
348
|
ToastAction: () => ToastAction,
|
|
@@ -399,6 +402,7 @@ __export(src_exports, {
|
|
|
399
402
|
toast: () => toast,
|
|
400
403
|
toggleVariants: () => toggleVariants,
|
|
401
404
|
useActiveSection: () => useActiveSection,
|
|
405
|
+
useAppTheme: () => useAppTheme,
|
|
402
406
|
useAuth: () => useAuth,
|
|
403
407
|
useBreakpoint: () => useBreakpoint,
|
|
404
408
|
useFormField: () => useFormField,
|
|
@@ -2315,10 +2319,10 @@ var DockWrapper_default = DockWrapper;
|
|
|
2315
2319
|
|
|
2316
2320
|
// src/components/layout/main-layout.tsx
|
|
2317
2321
|
var import_lucide_react11 = require("lucide-react");
|
|
2318
|
-
var
|
|
2322
|
+
var import_react20 = require("react");
|
|
2319
2323
|
|
|
2320
2324
|
// src/components/cupcode/MainNavbar.tsx
|
|
2321
|
-
var
|
|
2325
|
+
var import_react18 = require("react");
|
|
2322
2326
|
|
|
2323
2327
|
// src/components/cupcode/NavbarCupcode.tsx
|
|
2324
2328
|
var React5 = __toESM(require("react"), 1);
|
|
@@ -2389,23 +2393,23 @@ var NavbarCupcode = ({
|
|
|
2389
2393
|
{
|
|
2390
2394
|
ref: navRef,
|
|
2391
2395
|
className: cn(
|
|
2392
|
-
"fixed left-
|
|
2393
|
-
"
|
|
2396
|
+
"fixed left-[var(--cc-navbar-side-offset-mobile)] right-[var(--cc-navbar-side-offset-mobile)] top-[calc(max(env(safe-area-inset-top),0px)+var(--cc-navbar-top-offset,8px))] z-[200] overflow-hidden rounded-[var(--cc-navbar-radius)]",
|
|
2397
|
+
"border border-[hsl(var(--cc-navbar-border))] bg-[hsl(var(--cc-navbar-bg))] shadow-[var(--cc-navbar-shadow)] backdrop-blur-[var(--glass-blur-md)] md:left-[var(--cc-navbar-side-offset-desktop)] md:right-[var(--cc-navbar-side-offset-desktop)]",
|
|
2394
2398
|
className
|
|
2395
2399
|
),
|
|
2396
2400
|
children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "cc-container", children: [
|
|
2397
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "hidden h-
|
|
2401
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "hidden h-[var(--cc-navbar-height-desktop)] items-center md:flex", children: [
|
|
2398
2402
|
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: cn("flex-shrink-0", !hasItems && "mr-auto"), children: logo }),
|
|
2399
2403
|
hasItems ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "mx-auto flex items-center space-x-8", children: items.map((item, index) => {
|
|
2400
2404
|
const key = `${item.label}-${index}`;
|
|
2401
2405
|
const isActive = item.isActive;
|
|
2402
2406
|
const baseClasses = cn(
|
|
2403
2407
|
"flex items-center gap-2 text-sm font-semibold text-foreground",
|
|
2404
|
-
"hover:text-
|
|
2408
|
+
"hover:text-[hsl(var(--cc-navbar-link-hover))] transition-colors duration-200",
|
|
2405
2409
|
"relative after:absolute after:bottom-0 after:left-0 after:h-0.5 after:w-0",
|
|
2406
|
-
"after:bg-
|
|
2410
|
+
"after:bg-[hsl(var(--cc-navbar-link-hover))] after:transition-all after:duration-300",
|
|
2407
2411
|
"hover:after:w-full",
|
|
2408
|
-
isActive && "text-
|
|
2412
|
+
isActive && "text-[hsl(var(--cc-navbar-link-active))] after:w-full after:bg-[hsl(var(--cc-navbar-link-active))]"
|
|
2409
2413
|
);
|
|
2410
2414
|
const handleClick = (event) => {
|
|
2411
2415
|
var _a78;
|
|
@@ -2444,7 +2448,7 @@ var NavbarCupcode = ({
|
|
|
2444
2448
|
}) }) : null,
|
|
2445
2449
|
actions && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: cn("flex", !hasItems && "ml-auto"), children: actions })
|
|
2446
2450
|
] }),
|
|
2447
|
-
hasItems ? /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "relative flex h-
|
|
2451
|
+
hasItems ? /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "relative flex h-[var(--cc-navbar-height-mobile)] items-center md:hidden", children: [
|
|
2448
2452
|
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2449
2453
|
"button",
|
|
2450
2454
|
{
|
|
@@ -2459,7 +2463,7 @@ var NavbarCupcode = ({
|
|
|
2459
2463
|
),
|
|
2460
2464
|
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "pointer-events-none absolute left-1/2 top-1/2 z-0 w-[min(62vw,18rem)] -translate-x-1/2 -translate-y-1/2 overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "flex items-center justify-center", children: logo }) }),
|
|
2461
2465
|
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "z-10 ml-auto flex items-center", children: actions != null ? actions : /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "inline-flex h-10 w-10", "aria-hidden": "true" }) })
|
|
2462
|
-
] }) : /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex h-
|
|
2466
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex h-[var(--cc-navbar-height-mobile)] items-center justify-between gap-3 md:hidden", children: [
|
|
2463
2467
|
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "min-w-0 shrink", children: logo }),
|
|
2464
2468
|
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "flex items-center", children: actions != null ? actions : /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "inline-flex h-10 w-10", "aria-hidden": "true" }) })
|
|
2465
2469
|
] })
|
|
@@ -2482,7 +2486,7 @@ var NavbarCupcode = ({
|
|
|
2482
2486
|
id: mobileMenuId,
|
|
2483
2487
|
ref: mobileDrawerRef,
|
|
2484
2488
|
className: cn(
|
|
2485
|
-
"
|
|
2489
|
+
"absolute inset-y-0 left-0 z-10 w-[min(84vw,22rem)] border-r border-r-[hsl(var(--cc-navbar-drawer-border))] bg-[hsl(var(--cc-navbar-drawer-bg))] px-3 pb-[max(env(safe-area-inset-bottom),0.75rem)] pt-[max(env(safe-area-inset-top),0.9rem)] text-foreground shadow-[var(--elevation-5)] backdrop-blur-[var(--glass-blur-lg)]",
|
|
2486
2490
|
"data-[state=open]:animate-in data-[state=open]:slide-in-from-left data-[state=open]:duration-300"
|
|
2487
2491
|
),
|
|
2488
2492
|
"data-state": "open",
|
|
@@ -2505,7 +2509,7 @@ var NavbarCupcode = ({
|
|
|
2505
2509
|
const isActive = item.isActive;
|
|
2506
2510
|
const classes = cn(
|
|
2507
2511
|
"flex min-h-11 items-center gap-2 rounded-lg px-4 py-2.5 text-sm font-semibold text-foreground transition-colors hover:bg-primary/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40",
|
|
2508
|
-
isActive && "text-
|
|
2512
|
+
isActive && "text-[hsl(var(--cc-navbar-link-active))]"
|
|
2509
2513
|
);
|
|
2510
2514
|
const handleClick = (event) => {
|
|
2511
2515
|
var _a78;
|
|
@@ -2531,47 +2535,6 @@ var NavbarCupcode = ({
|
|
|
2531
2535
|
};
|
|
2532
2536
|
var NavbarCupcode_default = NavbarCupcode;
|
|
2533
2537
|
|
|
2534
|
-
// src/components/cupcode/TelescupImage.tsx
|
|
2535
|
-
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
2536
|
-
var TelescupImage = ({
|
|
2537
|
-
apiId,
|
|
2538
|
-
imageWidth,
|
|
2539
|
-
imageHeight,
|
|
2540
|
-
fit = "cover",
|
|
2541
|
-
format = "avif",
|
|
2542
|
-
quality = 60,
|
|
2543
|
-
lang = "pt-BR",
|
|
2544
|
-
alt,
|
|
2545
|
-
title,
|
|
2546
|
-
loading = "lazy",
|
|
2547
|
-
className,
|
|
2548
|
-
...props
|
|
2549
|
-
}) => {
|
|
2550
|
-
const { url, meta } = useTelescupImage(
|
|
2551
|
-
{
|
|
2552
|
-
id: apiId,
|
|
2553
|
-
width: imageWidth,
|
|
2554
|
-
height: imageHeight,
|
|
2555
|
-
fit,
|
|
2556
|
-
format,
|
|
2557
|
-
quality
|
|
2558
|
-
},
|
|
2559
|
-
lang
|
|
2560
|
-
);
|
|
2561
|
-
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2562
|
-
"img",
|
|
2563
|
-
{
|
|
2564
|
-
src: url,
|
|
2565
|
-
"data-api-id": apiId,
|
|
2566
|
-
alt: alt || meta.alt || "",
|
|
2567
|
-
title: title || meta.title,
|
|
2568
|
-
loading,
|
|
2569
|
-
className,
|
|
2570
|
-
...props
|
|
2571
|
-
}
|
|
2572
|
-
);
|
|
2573
|
-
};
|
|
2574
|
-
|
|
2575
2538
|
// src/components/cupcode/UserMenuCupcode.tsx
|
|
2576
2539
|
var DialogPrimitive2 = __toESM(require("@radix-ui/react-dialog"), 1);
|
|
2577
2540
|
var import_lucide_react8 = require("lucide-react");
|
|
@@ -2581,11 +2544,11 @@ var import_react15 = require("react");
|
|
|
2581
2544
|
var React6 = __toESM(require("react"), 1);
|
|
2582
2545
|
var SelectPrimitive = __toESM(require("@radix-ui/react-select"), 1);
|
|
2583
2546
|
var import_lucide_react4 = require("lucide-react");
|
|
2584
|
-
var
|
|
2547
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
2585
2548
|
var Select = SelectPrimitive.Root;
|
|
2586
2549
|
var SelectGroup = SelectPrimitive.Group;
|
|
2587
2550
|
var SelectValue = SelectPrimitive.Value;
|
|
2588
|
-
var SelectTrigger = React6.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0,
|
|
2551
|
+
var SelectTrigger = React6.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
2589
2552
|
SelectPrimitive.Trigger,
|
|
2590
2553
|
{
|
|
2591
2554
|
ref,
|
|
@@ -2596,32 +2559,32 @@ var SelectTrigger = React6.forwardRef(({ className, children, ...props }, ref) =
|
|
|
2596
2559
|
...props,
|
|
2597
2560
|
children: [
|
|
2598
2561
|
children,
|
|
2599
|
-
/* @__PURE__ */ (0,
|
|
2562
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react4.ChevronDown, { className: "h-4 w-4 opacity-50" }) })
|
|
2600
2563
|
]
|
|
2601
2564
|
}
|
|
2602
2565
|
));
|
|
2603
2566
|
SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
|
|
2604
|
-
var SelectScrollUpButton = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
2567
|
+
var SelectScrollUpButton = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2605
2568
|
SelectPrimitive.ScrollUpButton,
|
|
2606
2569
|
{
|
|
2607
2570
|
ref,
|
|
2608
2571
|
className: cn("flex cursor-default items-center justify-center py-1", className),
|
|
2609
2572
|
...props,
|
|
2610
|
-
children: /* @__PURE__ */ (0,
|
|
2573
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react4.ChevronUp, { className: "h-4 w-4" })
|
|
2611
2574
|
}
|
|
2612
2575
|
));
|
|
2613
2576
|
SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
|
|
2614
|
-
var SelectScrollDownButton = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
2577
|
+
var SelectScrollDownButton = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2615
2578
|
SelectPrimitive.ScrollDownButton,
|
|
2616
2579
|
{
|
|
2617
2580
|
ref,
|
|
2618
2581
|
className: cn("flex cursor-default items-center justify-center py-1", className),
|
|
2619
2582
|
...props,
|
|
2620
|
-
children: /* @__PURE__ */ (0,
|
|
2583
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react4.ChevronDown, { className: "h-4 w-4" })
|
|
2621
2584
|
}
|
|
2622
2585
|
));
|
|
2623
2586
|
SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
|
|
2624
|
-
var SelectContent = React6.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ (0,
|
|
2587
|
+
var SelectContent = React6.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SelectPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
2625
2588
|
SelectPrimitive.Content,
|
|
2626
2589
|
{
|
|
2627
2590
|
ref,
|
|
@@ -2633,8 +2596,8 @@ var SelectContent = React6.forwardRef(({ className, children, position = "popper
|
|
|
2633
2596
|
position,
|
|
2634
2597
|
...props,
|
|
2635
2598
|
children: [
|
|
2636
|
-
/* @__PURE__ */ (0,
|
|
2637
|
-
/* @__PURE__ */ (0,
|
|
2599
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SelectScrollUpButton, {}),
|
|
2600
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2638
2601
|
SelectPrimitive.Viewport,
|
|
2639
2602
|
{
|
|
2640
2603
|
className: cn(
|
|
@@ -2644,14 +2607,14 @@ var SelectContent = React6.forwardRef(({ className, children, position = "popper
|
|
|
2644
2607
|
children
|
|
2645
2608
|
}
|
|
2646
2609
|
),
|
|
2647
|
-
/* @__PURE__ */ (0,
|
|
2610
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SelectScrollDownButton, {})
|
|
2648
2611
|
]
|
|
2649
2612
|
}
|
|
2650
2613
|
) }));
|
|
2651
2614
|
SelectContent.displayName = SelectPrimitive.Content.displayName;
|
|
2652
|
-
var SelectLabel = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
2615
|
+
var SelectLabel = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SelectPrimitive.Label, { ref, className: cn("py-1.5 pl-8 pr-2 text-sm font-semibold", className), ...props }));
|
|
2653
2616
|
SelectLabel.displayName = SelectPrimitive.Label.displayName;
|
|
2654
|
-
var SelectItem = React6.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0,
|
|
2617
|
+
var SelectItem = React6.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
2655
2618
|
SelectPrimitive.Item,
|
|
2656
2619
|
{
|
|
2657
2620
|
ref,
|
|
@@ -2661,20 +2624,20 @@ var SelectItem = React6.forwardRef(({ className, children, ...props }, ref) => /
|
|
|
2661
2624
|
),
|
|
2662
2625
|
...props,
|
|
2663
2626
|
children: [
|
|
2664
|
-
/* @__PURE__ */ (0,
|
|
2665
|
-
/* @__PURE__ */ (0,
|
|
2627
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react4.Check, { className: "h-4 w-4" }) }) }),
|
|
2628
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SelectPrimitive.ItemText, { children })
|
|
2666
2629
|
]
|
|
2667
2630
|
}
|
|
2668
2631
|
));
|
|
2669
2632
|
SelectItem.displayName = SelectPrimitive.Item.displayName;
|
|
2670
|
-
var SelectSeparator = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
2633
|
+
var SelectSeparator = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SelectPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-muted", className), ...props }));
|
|
2671
2634
|
SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
|
|
2672
2635
|
|
|
2673
2636
|
// src/components/ui/avatar.tsx
|
|
2674
2637
|
var React7 = __toESM(require("react"), 1);
|
|
2675
2638
|
var AvatarPrimitive2 = __toESM(require("@radix-ui/react-avatar"), 1);
|
|
2676
|
-
var
|
|
2677
|
-
var Avatar2 = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
2639
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
2640
|
+
var Avatar2 = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2678
2641
|
AvatarPrimitive2.Root,
|
|
2679
2642
|
{
|
|
2680
2643
|
ref,
|
|
@@ -2683,7 +2646,7 @@ var Avatar2 = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
|
|
|
2683
2646
|
}
|
|
2684
2647
|
));
|
|
2685
2648
|
Avatar2.displayName = AvatarPrimitive2.Root.displayName;
|
|
2686
|
-
var AvatarImage2 = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
2649
|
+
var AvatarImage2 = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2687
2650
|
AvatarPrimitive2.Image,
|
|
2688
2651
|
{
|
|
2689
2652
|
ref,
|
|
@@ -2692,7 +2655,7 @@ var AvatarImage2 = React7.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
2692
2655
|
}
|
|
2693
2656
|
));
|
|
2694
2657
|
AvatarImage2.displayName = AvatarPrimitive2.Image.displayName;
|
|
2695
|
-
var AvatarFallback2 = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
2658
|
+
var AvatarFallback2 = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2696
2659
|
AvatarPrimitive2.Fallback,
|
|
2697
2660
|
{
|
|
2698
2661
|
ref,
|
|
@@ -2751,7 +2714,7 @@ function responsiveSizeClasses(s, currentBp) {
|
|
|
2751
2714
|
|
|
2752
2715
|
// src/components/cupcode/JellyButton.tsx
|
|
2753
2716
|
var import_react9 = require("react");
|
|
2754
|
-
var
|
|
2717
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
2755
2718
|
var JellyButton = (0, import_react9.forwardRef)(
|
|
2756
2719
|
({ variant = "primary", size = "md", className, children, type = "button", ...props }, ref) => {
|
|
2757
2720
|
const sizeClass = {
|
|
@@ -2759,8 +2722,8 @@ var JellyButton = (0, import_react9.forwardRef)(
|
|
|
2759
2722
|
md: "cc-blob-cta--md",
|
|
2760
2723
|
lg: "cc-blob-cta--lg"
|
|
2761
2724
|
}[size];
|
|
2762
|
-
const variantClass = variant === "
|
|
2763
|
-
return /* @__PURE__ */ (0,
|
|
2725
|
+
const variantClass = variant === "primary" || variant === "original-green" ? "cc-blob-cta--primary" : variant === "secondary" || variant === "original-pink" ? "cc-blob-cta--secondary" : "cc-blob-cta--half";
|
|
2726
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
|
|
2764
2727
|
"button",
|
|
2765
2728
|
{
|
|
2766
2729
|
ref,
|
|
@@ -2768,15 +2731,15 @@ var JellyButton = (0, import_react9.forwardRef)(
|
|
|
2768
2731
|
className: cn("cc-blob-cta", sizeClass, variantClass, className),
|
|
2769
2732
|
...props,
|
|
2770
2733
|
children: [
|
|
2771
|
-
/* @__PURE__ */ (0,
|
|
2772
|
-
/* @__PURE__ */ (0,
|
|
2773
|
-
/* @__PURE__ */ (0,
|
|
2774
|
-
/* @__PURE__ */ (0,
|
|
2775
|
-
/* @__PURE__ */ (0,
|
|
2734
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("span", { className: "cc-blob-cta__color-wrap", "aria-hidden": "true", children: [
|
|
2735
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "cc-blob-cta__color cc-blob-cta__color--1" }),
|
|
2736
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "cc-blob-cta__color cc-blob-cta__color--3" }),
|
|
2737
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "cc-blob-cta__color cc-blob-cta__color--2" }),
|
|
2738
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "cc-blob-cta__bg" })
|
|
2776
2739
|
] }),
|
|
2777
|
-
/* @__PURE__ */ (0,
|
|
2778
|
-
/* @__PURE__ */ (0,
|
|
2779
|
-
/* @__PURE__ */ (0,
|
|
2740
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "cc-blob-cta__label", children }),
|
|
2741
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "cc-blob-cta__glow cc-blob-cta__glow--1", "aria-hidden": "true" }),
|
|
2742
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "cc-blob-cta__glow cc-blob-cta__glow--2", "aria-hidden": "true" })
|
|
2780
2743
|
]
|
|
2781
2744
|
}
|
|
2782
2745
|
);
|
|
@@ -2785,7 +2748,7 @@ var JellyButton = (0, import_react9.forwardRef)(
|
|
|
2785
2748
|
JellyButton.displayName = "JellyButton";
|
|
2786
2749
|
|
|
2787
2750
|
// src/components/cupcode/JellyButtonOriginal.tsx
|
|
2788
|
-
var
|
|
2751
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
2789
2752
|
var resolveResponsiveSize = (value, currentBp) => {
|
|
2790
2753
|
var _a78, _b7, _c, _d, _e;
|
|
2791
2754
|
if (typeof value === "string") {
|
|
@@ -2835,16 +2798,16 @@ function JellyButtonOriginal({
|
|
|
2835
2798
|
window.location.href = href;
|
|
2836
2799
|
}
|
|
2837
2800
|
};
|
|
2838
|
-
return /* @__PURE__ */ (0,
|
|
2801
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
2839
2802
|
JellyButton,
|
|
2840
2803
|
{
|
|
2841
2804
|
variant: color === "green" ? "original-green" : "original-pink",
|
|
2842
2805
|
size: resolvedSize,
|
|
2843
2806
|
className,
|
|
2844
2807
|
onClick: handleClick,
|
|
2845
|
-
children: /* @__PURE__ */ (0,
|
|
2846
|
-
icon ? /* @__PURE__ */ (0,
|
|
2847
|
-
/* @__PURE__ */ (0,
|
|
2808
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("span", { className: "inline-flex items-center gap-2", children: [
|
|
2809
|
+
icon ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "inline-flex items-center justify-center", children: icon }) : null,
|
|
2810
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { children: label })
|
|
2848
2811
|
] })
|
|
2849
2812
|
}
|
|
2850
2813
|
);
|
|
@@ -2854,14 +2817,14 @@ function JellyButtonOriginal({
|
|
|
2854
2817
|
var React8 = __toESM(require("react"), 1);
|
|
2855
2818
|
var DropdownMenuPrimitive = __toESM(require("@radix-ui/react-dropdown-menu"), 1);
|
|
2856
2819
|
var import_lucide_react5 = require("lucide-react");
|
|
2857
|
-
var
|
|
2820
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
2858
2821
|
var DropdownMenu = DropdownMenuPrimitive.Root;
|
|
2859
2822
|
var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
|
|
2860
2823
|
var DropdownMenuGroup = DropdownMenuPrimitive.Group;
|
|
2861
2824
|
var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
|
|
2862
2825
|
var DropdownMenuSub = DropdownMenuPrimitive.Sub;
|
|
2863
2826
|
var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
2864
|
-
var DropdownMenuSubTrigger = React8.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0,
|
|
2827
|
+
var DropdownMenuSubTrigger = React8.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
2865
2828
|
DropdownMenuPrimitive.SubTrigger,
|
|
2866
2829
|
{
|
|
2867
2830
|
ref,
|
|
@@ -2873,12 +2836,12 @@ var DropdownMenuSubTrigger = React8.forwardRef(({ className, inset, children, ..
|
|
|
2873
2836
|
...props,
|
|
2874
2837
|
children: [
|
|
2875
2838
|
children,
|
|
2876
|
-
/* @__PURE__ */ (0,
|
|
2839
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_lucide_react5.ChevronRight, { className: "ml-auto h-4 w-4" })
|
|
2877
2840
|
]
|
|
2878
2841
|
}
|
|
2879
2842
|
));
|
|
2880
2843
|
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
2881
|
-
var DropdownMenuSubContent = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
2844
|
+
var DropdownMenuSubContent = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
2882
2845
|
DropdownMenuPrimitive.SubContent,
|
|
2883
2846
|
{
|
|
2884
2847
|
ref,
|
|
@@ -2890,7 +2853,7 @@ var DropdownMenuSubContent = React8.forwardRef(({ className, ...props }, ref) =>
|
|
|
2890
2853
|
}
|
|
2891
2854
|
));
|
|
2892
2855
|
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
2893
|
-
var DropdownMenuContent = React8.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0,
|
|
2856
|
+
var DropdownMenuContent = React8.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
2894
2857
|
DropdownMenuPrimitive.Content,
|
|
2895
2858
|
{
|
|
2896
2859
|
ref,
|
|
@@ -2903,7 +2866,7 @@ var DropdownMenuContent = React8.forwardRef(({ className, sideOffset = 4, ...pro
|
|
|
2903
2866
|
}
|
|
2904
2867
|
) }));
|
|
2905
2868
|
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
2906
|
-
var DropdownMenuItem = React8.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0,
|
|
2869
|
+
var DropdownMenuItem = React8.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
2907
2870
|
DropdownMenuPrimitive.Item,
|
|
2908
2871
|
{
|
|
2909
2872
|
ref,
|
|
@@ -2916,7 +2879,7 @@ var DropdownMenuItem = React8.forwardRef(({ className, inset, ...props }, ref) =
|
|
|
2916
2879
|
}
|
|
2917
2880
|
));
|
|
2918
2881
|
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
2919
|
-
var DropdownMenuCheckboxItem = React8.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ (0,
|
|
2882
|
+
var DropdownMenuCheckboxItem = React8.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
2920
2883
|
DropdownMenuPrimitive.CheckboxItem,
|
|
2921
2884
|
{
|
|
2922
2885
|
ref,
|
|
@@ -2927,13 +2890,13 @@ var DropdownMenuCheckboxItem = React8.forwardRef(({ className, children, checked
|
|
|
2927
2890
|
checked,
|
|
2928
2891
|
...props,
|
|
2929
2892
|
children: [
|
|
2930
|
-
/* @__PURE__ */ (0,
|
|
2893
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_lucide_react5.Check, { className: "h-4 w-4" }) }) }),
|
|
2931
2894
|
children
|
|
2932
2895
|
]
|
|
2933
2896
|
}
|
|
2934
2897
|
));
|
|
2935
2898
|
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
2936
|
-
var DropdownMenuRadioItem = React8.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0,
|
|
2899
|
+
var DropdownMenuRadioItem = React8.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
2937
2900
|
DropdownMenuPrimitive.RadioItem,
|
|
2938
2901
|
{
|
|
2939
2902
|
ref,
|
|
@@ -2943,13 +2906,13 @@ var DropdownMenuRadioItem = React8.forwardRef(({ className, children, ...props }
|
|
|
2943
2906
|
),
|
|
2944
2907
|
...props,
|
|
2945
2908
|
children: [
|
|
2946
|
-
/* @__PURE__ */ (0,
|
|
2909
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_lucide_react5.Circle, { className: "h-2 w-2 fill-current" }) }) }),
|
|
2947
2910
|
children
|
|
2948
2911
|
]
|
|
2949
2912
|
}
|
|
2950
2913
|
));
|
|
2951
2914
|
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
2952
|
-
var DropdownMenuLabel = React8.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0,
|
|
2915
|
+
var DropdownMenuLabel = React8.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
2953
2916
|
DropdownMenuPrimitive.Label,
|
|
2954
2917
|
{
|
|
2955
2918
|
ref,
|
|
@@ -2958,10 +2921,10 @@ var DropdownMenuLabel = React8.forwardRef(({ className, inset, ...props }, ref)
|
|
|
2958
2921
|
}
|
|
2959
2922
|
));
|
|
2960
2923
|
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
2961
|
-
var DropdownMenuSeparator = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
2924
|
+
var DropdownMenuSeparator = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(DropdownMenuPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-muted", className), ...props }));
|
|
2962
2925
|
DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
|
|
2963
2926
|
var DropdownMenuShortcut = ({ className, ...props }) => {
|
|
2964
|
-
return /* @__PURE__ */ (0,
|
|
2927
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
|
|
2965
2928
|
};
|
|
2966
2929
|
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
2967
2930
|
|
|
@@ -2973,13 +2936,14 @@ var AlertDialogPrimitive = __toESM(require("@radix-ui/react-alert-dialog"), 1);
|
|
|
2973
2936
|
var React9 = __toESM(require("react"), 1);
|
|
2974
2937
|
var import_react_slot = require("@radix-ui/react-slot");
|
|
2975
2938
|
var import_class_variance_authority = require("class-variance-authority");
|
|
2976
|
-
var
|
|
2939
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
2977
2940
|
var buttonVariants = (0, import_class_variance_authority.cva)(
|
|
2978
2941
|
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
2979
2942
|
{
|
|
2980
2943
|
variants: {
|
|
2981
2944
|
variant: {
|
|
2982
|
-
default: "bg-
|
|
2945
|
+
default: "bg-[#18b765] text-white hover:bg-[#149355]",
|
|
2946
|
+
primary: "bg-[#18b765] text-white hover:bg-[#149355]",
|
|
2983
2947
|
destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
|
|
2984
2948
|
outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
|
|
2985
2949
|
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
@@ -3002,17 +2966,17 @@ var buttonVariants = (0, import_class_variance_authority.cva)(
|
|
|
3002
2966
|
var Button = React9.forwardRef(
|
|
3003
2967
|
({ className, variant, size, asChild = false, ...props }, ref) => {
|
|
3004
2968
|
const Comp = asChild ? import_react_slot.Slot : "button";
|
|
3005
|
-
return /* @__PURE__ */ (0,
|
|
2969
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Comp, { className: cn(buttonVariants({ variant, size, className })), ref, ...props });
|
|
3006
2970
|
}
|
|
3007
2971
|
);
|
|
3008
2972
|
Button.displayName = "Button";
|
|
3009
2973
|
|
|
3010
2974
|
// src/components/ui/alert-dialog.tsx
|
|
3011
|
-
var
|
|
2975
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
3012
2976
|
var AlertDialog = AlertDialogPrimitive.Root;
|
|
3013
2977
|
var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
|
|
3014
2978
|
var AlertDialogPortal = AlertDialogPrimitive.Portal;
|
|
3015
|
-
var AlertDialogOverlay = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
2979
|
+
var AlertDialogOverlay = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3016
2980
|
AlertDialogPrimitive.Overlay,
|
|
3017
2981
|
{
|
|
3018
2982
|
className: cn(
|
|
@@ -3024,9 +2988,9 @@ var AlertDialogOverlay = React10.forwardRef(({ className, ...props }, ref) => /*
|
|
|
3024
2988
|
}
|
|
3025
2989
|
));
|
|
3026
2990
|
AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
|
|
3027
|
-
var AlertDialogContent = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3028
|
-
/* @__PURE__ */ (0,
|
|
3029
|
-
/* @__PURE__ */ (0,
|
|
2991
|
+
var AlertDialogContent = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(AlertDialogPortal, { children: [
|
|
2992
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(AlertDialogOverlay, {}),
|
|
2993
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3030
2994
|
AlertDialogPrimitive.Content,
|
|
3031
2995
|
{
|
|
3032
2996
|
ref,
|
|
@@ -3039,17 +3003,17 @@ var AlertDialogContent = React10.forwardRef(({ className, ...props }, ref) => /*
|
|
|
3039
3003
|
)
|
|
3040
3004
|
] }));
|
|
3041
3005
|
AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;
|
|
3042
|
-
var AlertDialogHeader = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
3006
|
+
var AlertDialogHeader = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: cn("flex flex-col space-y-2 text-center sm:text-left", className), ...props });
|
|
3043
3007
|
AlertDialogHeader.displayName = "AlertDialogHeader";
|
|
3044
|
-
var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
3008
|
+
var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
|
|
3045
3009
|
AlertDialogFooter.displayName = "AlertDialogFooter";
|
|
3046
|
-
var AlertDialogTitle = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3010
|
+
var AlertDialogTitle = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(AlertDialogPrimitive.Title, { ref, className: cn("text-lg font-semibold", className), ...props }));
|
|
3047
3011
|
AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
|
|
3048
|
-
var AlertDialogDescription = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3012
|
+
var AlertDialogDescription = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(AlertDialogPrimitive.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
|
|
3049
3013
|
AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
|
|
3050
|
-
var AlertDialogAction = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3014
|
+
var AlertDialogAction = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(AlertDialogPrimitive.Action, { ref, className: cn(buttonVariants(), className), ...props }));
|
|
3051
3015
|
AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
|
|
3052
|
-
var AlertDialogCancel = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3016
|
+
var AlertDialogCancel = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3053
3017
|
AlertDialogPrimitive.Cancel,
|
|
3054
3018
|
{
|
|
3055
3019
|
ref,
|
|
@@ -3063,12 +3027,12 @@ AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
|
|
|
3063
3027
|
var React11 = __toESM(require("react"), 1);
|
|
3064
3028
|
var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
|
|
3065
3029
|
var import_lucide_react6 = require("lucide-react");
|
|
3066
|
-
var
|
|
3030
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
3067
3031
|
var Dialog = DialogPrimitive.Root;
|
|
3068
3032
|
var DialogTrigger = DialogPrimitive.Trigger;
|
|
3069
3033
|
var DialogPortal = DialogPrimitive.Portal;
|
|
3070
3034
|
var DialogClose = DialogPrimitive.Close;
|
|
3071
|
-
var DialogOverlay = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3035
|
+
var DialogOverlay = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3072
3036
|
DialogPrimitive.Overlay,
|
|
3073
3037
|
{
|
|
3074
3038
|
ref,
|
|
@@ -3080,9 +3044,9 @@ var DialogOverlay = React11.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
3080
3044
|
}
|
|
3081
3045
|
));
|
|
3082
3046
|
DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
3083
|
-
var DialogContent = React11.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3084
|
-
/* @__PURE__ */ (0,
|
|
3085
|
-
/* @__PURE__ */ (0,
|
|
3047
|
+
var DialogContent = React11.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(DialogPortal, { children: [
|
|
3048
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(DialogOverlay, {}),
|
|
3049
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
3086
3050
|
DialogPrimitive.Content,
|
|
3087
3051
|
{
|
|
3088
3052
|
ref,
|
|
@@ -3093,20 +3057,20 @@ var DialogContent = React11.forwardRef(({ className, children, ...props }, ref)
|
|
|
3093
3057
|
...props,
|
|
3094
3058
|
children: [
|
|
3095
3059
|
children,
|
|
3096
|
-
/* @__PURE__ */ (0,
|
|
3097
|
-
/* @__PURE__ */ (0,
|
|
3098
|
-
/* @__PURE__ */ (0,
|
|
3060
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity data-[state=open]:bg-accent data-[state=open]:text-muted-foreground hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none", children: [
|
|
3061
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lucide_react6.X, { className: "h-4 w-4" }),
|
|
3062
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "sr-only", children: "Close" })
|
|
3099
3063
|
] })
|
|
3100
3064
|
]
|
|
3101
3065
|
}
|
|
3102
3066
|
)
|
|
3103
3067
|
] }));
|
|
3104
3068
|
DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
3105
|
-
var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
3069
|
+
var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: cn("flex flex-col space-y-1.5 text-center sm:text-left", className), ...props });
|
|
3106
3070
|
DialogHeader.displayName = "DialogHeader";
|
|
3107
|
-
var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
3071
|
+
var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
|
|
3108
3072
|
DialogFooter.displayName = "DialogFooter";
|
|
3109
|
-
var DialogTitle = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3073
|
+
var DialogTitle = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3110
3074
|
DialogPrimitive.Title,
|
|
3111
3075
|
{
|
|
3112
3076
|
ref,
|
|
@@ -3115,14 +3079,14 @@ var DialogTitle = React11.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
3115
3079
|
}
|
|
3116
3080
|
));
|
|
3117
3081
|
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
3118
|
-
var DialogDescription = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3082
|
+
var DialogDescription = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(DialogPrimitive.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
|
|
3119
3083
|
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
3120
3084
|
|
|
3121
3085
|
// src/components/ui/switch.tsx
|
|
3122
3086
|
var React12 = __toESM(require("react"), 1);
|
|
3123
3087
|
var SwitchPrimitives = __toESM(require("@radix-ui/react-switch"), 1);
|
|
3124
|
-
var
|
|
3125
|
-
var Switch = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3088
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
3089
|
+
var Switch = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
3126
3090
|
SwitchPrimitives.Root,
|
|
3127
3091
|
{
|
|
3128
3092
|
className: cn(
|
|
@@ -3131,7 +3095,7 @@ var Switch = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
|
|
|
3131
3095
|
),
|
|
3132
3096
|
...props,
|
|
3133
3097
|
ref,
|
|
3134
|
-
children: /* @__PURE__ */ (0,
|
|
3098
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
3135
3099
|
SwitchPrimitives.Thumb,
|
|
3136
3100
|
{
|
|
3137
3101
|
className: cn(
|
|
@@ -4805,6 +4769,47 @@ function useTelescupAssets(options) {
|
|
|
4805
4769
|
};
|
|
4806
4770
|
}
|
|
4807
4771
|
|
|
4772
|
+
// src/components/cupcode/TelescupImage.tsx
|
|
4773
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
4774
|
+
var TelescupImage = ({
|
|
4775
|
+
apiId,
|
|
4776
|
+
imageWidth,
|
|
4777
|
+
imageHeight,
|
|
4778
|
+
fit = "cover",
|
|
4779
|
+
format = "avif",
|
|
4780
|
+
quality = 60,
|
|
4781
|
+
lang = "pt-BR",
|
|
4782
|
+
alt,
|
|
4783
|
+
title,
|
|
4784
|
+
loading = "lazy",
|
|
4785
|
+
className,
|
|
4786
|
+
...props
|
|
4787
|
+
}) => {
|
|
4788
|
+
const { url, meta } = useTelescupImage(
|
|
4789
|
+
{
|
|
4790
|
+
id: apiId,
|
|
4791
|
+
width: imageWidth,
|
|
4792
|
+
height: imageHeight,
|
|
4793
|
+
fit,
|
|
4794
|
+
format,
|
|
4795
|
+
quality
|
|
4796
|
+
},
|
|
4797
|
+
lang
|
|
4798
|
+
);
|
|
4799
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
4800
|
+
"img",
|
|
4801
|
+
{
|
|
4802
|
+
src: url,
|
|
4803
|
+
"data-api-id": apiId,
|
|
4804
|
+
alt: alt || meta.alt || "",
|
|
4805
|
+
title: title || meta.title,
|
|
4806
|
+
loading,
|
|
4807
|
+
className,
|
|
4808
|
+
...props
|
|
4809
|
+
}
|
|
4810
|
+
);
|
|
4811
|
+
};
|
|
4812
|
+
|
|
4808
4813
|
// src/components/cupcode/TelescupVideo.tsx
|
|
4809
4814
|
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
4810
4815
|
var TelescupVideo = ({
|
|
@@ -6788,7 +6793,9 @@ var applyThemePreference = (preference) => {
|
|
|
6788
6793
|
const appliedMode = resolveAppliedThemeMode(preference);
|
|
6789
6794
|
root.classList.toggle("dark", appliedMode === "dark");
|
|
6790
6795
|
root.classList.toggle("light", appliedMode === "light");
|
|
6796
|
+
root.dataset.theme = appliedMode;
|
|
6791
6797
|
root.dataset.cupcodeTheme = preference;
|
|
6798
|
+
root.style.colorScheme = appliedMode;
|
|
6792
6799
|
if (typeof window === "undefined") return;
|
|
6793
6800
|
try {
|
|
6794
6801
|
window.localStorage.setItem(THEME_PREFERENCE_STORAGE_KEY, preference);
|
|
@@ -10402,7 +10409,7 @@ var UserMenuCupcode = ({
|
|
|
10402
10409
|
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: cn("h-11 w-11 animate-pulse rounded-full bg-muted/70", className) });
|
|
10403
10410
|
}
|
|
10404
10411
|
if (!isAuthenticated) {
|
|
10405
|
-
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(JellyButtonOriginal, { label: loginLabel, size: "sm", className, onClick: onLogin });
|
|
10412
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(JellyButtonOriginal, { label: loginLabel, color: "green", size: "sm", className, onClick: onLogin });
|
|
10406
10413
|
}
|
|
10407
10414
|
const customPanel = panels == null ? void 0 : panels[activeTab];
|
|
10408
10415
|
const hasCustomPanel = typeof customPanel !== "undefined";
|
|
@@ -22249,10 +22256,490 @@ var Toaster = ({ theme, ...props }) => {
|
|
|
22249
22256
|
);
|
|
22250
22257
|
};
|
|
22251
22258
|
|
|
22259
|
+
// src/components/use-app-theme.ts
|
|
22260
|
+
var import_react17 = require("react");
|
|
22261
|
+
|
|
22262
|
+
// src/components/theme-context.ts
|
|
22263
|
+
var import_react16 = require("react");
|
|
22264
|
+
var ThemeContext = (0, import_react16.createContext)(null);
|
|
22265
|
+
|
|
22266
|
+
// src/components/use-app-theme.ts
|
|
22267
|
+
function useAppTheme() {
|
|
22268
|
+
const context = (0, import_react17.useContext)(ThemeContext);
|
|
22269
|
+
if (!context) {
|
|
22270
|
+
throw new Error("useAppTheme must be used inside ThemeProvider");
|
|
22271
|
+
}
|
|
22272
|
+
return context;
|
|
22273
|
+
}
|
|
22274
|
+
|
|
22275
|
+
// src/components/theme-toggle.tsx
|
|
22276
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
22277
|
+
function ThemeToggle({ className }) {
|
|
22278
|
+
const { theme, toggleTheme } = useAppTheme();
|
|
22279
|
+
const isDark = theme === "dark";
|
|
22280
|
+
const handleClick = (event) => {
|
|
22281
|
+
toggleTheme({
|
|
22282
|
+
x: event.clientX,
|
|
22283
|
+
y: event.clientY
|
|
22284
|
+
});
|
|
22285
|
+
};
|
|
22286
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
|
|
22287
|
+
"button",
|
|
22288
|
+
{
|
|
22289
|
+
type: "button",
|
|
22290
|
+
onClick: handleClick,
|
|
22291
|
+
"aria-label": isDark ? "Ativar modo claro" : "Ativar modo escuro",
|
|
22292
|
+
"aria-pressed": isDark,
|
|
22293
|
+
title: isDark ? "Ativar modo claro" : "Ativar modo escuro",
|
|
22294
|
+
className: ["cc-theme-toggle", isDark ? "is-dark" : "", className].filter(Boolean).join(" "),
|
|
22295
|
+
children: [
|
|
22296
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("span", { className: "track", children: [
|
|
22297
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("span", { className: "light-bg", children: [
|
|
22298
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "light-orb light-orb-1" }),
|
|
22299
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "light-orb light-orb-2" }),
|
|
22300
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "light-sweep" }),
|
|
22301
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "light-veil" })
|
|
22302
|
+
] }),
|
|
22303
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "stars stars-1" }),
|
|
22304
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "stars stars-2" }),
|
|
22305
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "stars stars-3" }),
|
|
22306
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "cloud cloud-1" }),
|
|
22307
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "cloud cloud-2" }),
|
|
22308
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("span", { className: "thumb", children: [
|
|
22309
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "sun-core" }),
|
|
22310
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "moon-cut" })
|
|
22311
|
+
] })
|
|
22312
|
+
] }),
|
|
22313
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("style", { children: `
|
|
22314
|
+
:root {
|
|
22315
|
+
--toggle-width: 76px;
|
|
22316
|
+
--toggle-height: 42px;
|
|
22317
|
+
--thumb-size: 30px;
|
|
22318
|
+
--toggle-thumb-offset: 34px;
|
|
22319
|
+
--duration: 560ms;
|
|
22320
|
+
--ease: cubic-bezier(0.22, 1, 0.36, 1);
|
|
22321
|
+
--dark-top: #7c5bbb;
|
|
22322
|
+
--dark-bottom: #3a2a58;
|
|
22323
|
+
}
|
|
22324
|
+
|
|
22325
|
+
.cc-theme-toggle {
|
|
22326
|
+
border: 0;
|
|
22327
|
+
background: transparent;
|
|
22328
|
+
padding: 0;
|
|
22329
|
+
cursor: pointer;
|
|
22330
|
+
display: inline-flex;
|
|
22331
|
+
align-items: center;
|
|
22332
|
+
justify-content: center;
|
|
22333
|
+
flex-shrink: 0;
|
|
22334
|
+
}
|
|
22335
|
+
|
|
22336
|
+
.cc-theme-toggle .track {
|
|
22337
|
+
position: relative;
|
|
22338
|
+
width: var(--toggle-width);
|
|
22339
|
+
height: var(--toggle-height);
|
|
22340
|
+
border-radius: 999px;
|
|
22341
|
+
overflow: hidden;
|
|
22342
|
+
background: linear-gradient(180deg, #f7f6fb 0%, #f1edf9 55%, #e6def5 100%);
|
|
22343
|
+
box-shadow:
|
|
22344
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.92),
|
|
22345
|
+
inset 0 0 0 1px rgba(232, 219, 255, 0.85),
|
|
22346
|
+
0 0 0 1px rgba(227, 182, 255, 0.45),
|
|
22347
|
+
0 8px 24px rgba(134, 102, 182, 0.18);
|
|
22348
|
+
transition:
|
|
22349
|
+
background var(--duration) var(--ease),
|
|
22350
|
+
box-shadow var(--duration) var(--ease);
|
|
22351
|
+
}
|
|
22352
|
+
|
|
22353
|
+
.cc-theme-toggle .track::before {
|
|
22354
|
+
content: "";
|
|
22355
|
+
position: absolute;
|
|
22356
|
+
inset: 0;
|
|
22357
|
+
border-radius: inherit;
|
|
22358
|
+
padding: 1px;
|
|
22359
|
+
background: linear-gradient(
|
|
22360
|
+
90deg,
|
|
22361
|
+
rgba(200, 106, 232, 0.95) 0%,
|
|
22362
|
+
rgba(199, 166, 255, 0.95) 38%,
|
|
22363
|
+
rgba(239, 233, 255, 0.95) 68%,
|
|
22364
|
+
rgba(243, 123, 175, 0.95) 100%
|
|
22365
|
+
);
|
|
22366
|
+
-webkit-mask:
|
|
22367
|
+
linear-gradient(#000 0 0) content-box,
|
|
22368
|
+
linear-gradient(#000 0 0);
|
|
22369
|
+
-webkit-mask-composite: xor;
|
|
22370
|
+
mask-composite: exclude;
|
|
22371
|
+
pointer-events: none;
|
|
22372
|
+
}
|
|
22373
|
+
|
|
22374
|
+
.cc-theme-toggle .track::after {
|
|
22375
|
+
content: "";
|
|
22376
|
+
position: absolute;
|
|
22377
|
+
inset: 4px;
|
|
22378
|
+
border-radius: inherit;
|
|
22379
|
+
border: 1px solid rgba(255, 255, 255, 0.72);
|
|
22380
|
+
box-shadow: inset 0 0 0 1px rgba(217, 204, 248, 0.38);
|
|
22381
|
+
pointer-events: none;
|
|
22382
|
+
}
|
|
22383
|
+
|
|
22384
|
+
.cc-theme-toggle .light-bg {
|
|
22385
|
+
position: absolute;
|
|
22386
|
+
inset: 0;
|
|
22387
|
+
border-radius: inherit;
|
|
22388
|
+
overflow: hidden;
|
|
22389
|
+
opacity: 1;
|
|
22390
|
+
transition: opacity 240ms ease;
|
|
22391
|
+
z-index: 0;
|
|
22392
|
+
}
|
|
22393
|
+
|
|
22394
|
+
.cc-theme-toggle .light-orb {
|
|
22395
|
+
position: absolute;
|
|
22396
|
+
border-radius: 999px;
|
|
22397
|
+
filter: blur(10px);
|
|
22398
|
+
will-change: transform, opacity;
|
|
22399
|
+
}
|
|
22400
|
+
|
|
22401
|
+
.cc-theme-toggle .light-orb-1 {
|
|
22402
|
+
width: 48px;
|
|
22403
|
+
height: 28px;
|
|
22404
|
+
left: -8px;
|
|
22405
|
+
bottom: -1px;
|
|
22406
|
+
background: radial-gradient(
|
|
22407
|
+
ellipse at center,
|
|
22408
|
+
rgba(241, 138, 195, 0.58) 0%,
|
|
22409
|
+
rgba(232, 167, 208, 0.24) 58%,
|
|
22410
|
+
rgba(255, 255, 255, 0) 100%
|
|
22411
|
+
);
|
|
22412
|
+
animation: cc-theme-light-flow-pink 6.4s ease-in-out infinite;
|
|
22413
|
+
}
|
|
22414
|
+
|
|
22415
|
+
.cc-theme-toggle .light-orb-2 {
|
|
22416
|
+
width: 52px;
|
|
22417
|
+
height: 30px;
|
|
22418
|
+
right: -10px;
|
|
22419
|
+
top: -3px;
|
|
22420
|
+
background: radial-gradient(
|
|
22421
|
+
ellipse at center,
|
|
22422
|
+
rgba(200, 141, 255, 0.34) 0%,
|
|
22423
|
+
rgba(217, 184, 255, 0.14) 60%,
|
|
22424
|
+
rgba(255, 255, 255, 0) 100%
|
|
22425
|
+
);
|
|
22426
|
+
animation: cc-theme-light-flow-purple 6.4s ease-in-out infinite;
|
|
22427
|
+
}
|
|
22428
|
+
|
|
22429
|
+
.cc-theme-toggle .light-sweep {
|
|
22430
|
+
position: absolute;
|
|
22431
|
+
left: -44px;
|
|
22432
|
+
bottom: 5px;
|
|
22433
|
+
width: 42px;
|
|
22434
|
+
height: 4px;
|
|
22435
|
+
border-radius: 999px;
|
|
22436
|
+
background: linear-gradient(
|
|
22437
|
+
90deg,
|
|
22438
|
+
rgba(255, 122, 200, 0) 0%,
|
|
22439
|
+
rgba(217, 108, 255, 0.65) 35%,
|
|
22440
|
+
rgba(183, 124, 255, 0.8) 70%,
|
|
22441
|
+
rgba(255, 255, 255, 0) 100%
|
|
22442
|
+
);
|
|
22443
|
+
filter: blur(2px);
|
|
22444
|
+
opacity: 0.9;
|
|
22445
|
+
animation: cc-theme-light-sweep 4.3s linear infinite;
|
|
22446
|
+
}
|
|
22447
|
+
|
|
22448
|
+
.cc-theme-toggle .light-veil {
|
|
22449
|
+
position: absolute;
|
|
22450
|
+
inset: 0;
|
|
22451
|
+
background: rgba(255, 255, 255, 0.16);
|
|
22452
|
+
animation: cc-theme-light-veil 5.8s ease-in-out infinite;
|
|
22453
|
+
}
|
|
22454
|
+
|
|
22455
|
+
.cc-theme-toggle.is-dark .track {
|
|
22456
|
+
background: linear-gradient(180deg, var(--dark-top) 0%, var(--dark-bottom) 100%);
|
|
22457
|
+
box-shadow:
|
|
22458
|
+
inset 0 2px 8px rgba(255, 255, 255, 0.06),
|
|
22459
|
+
inset 0 -4px 12px rgba(0, 0, 0, 0.28),
|
|
22460
|
+
0 8px 24px rgba(58, 42, 88, 0.3);
|
|
22461
|
+
}
|
|
22462
|
+
|
|
22463
|
+
.cc-theme-toggle.is-dark .track::before,
|
|
22464
|
+
.cc-theme-toggle.is-dark .track::after,
|
|
22465
|
+
.cc-theme-toggle.is-dark .light-bg {
|
|
22466
|
+
opacity: 0;
|
|
22467
|
+
}
|
|
22468
|
+
|
|
22469
|
+
.cc-theme-toggle .thumb {
|
|
22470
|
+
position: absolute;
|
|
22471
|
+
top: 6px;
|
|
22472
|
+
left: 6px;
|
|
22473
|
+
width: var(--thumb-size);
|
|
22474
|
+
height: var(--thumb-size);
|
|
22475
|
+
border-radius: 50%;
|
|
22476
|
+
background: linear-gradient(180deg, #ffd76a 0%, #ffb238 100%);
|
|
22477
|
+
box-shadow:
|
|
22478
|
+
0 4px 10px rgba(255, 176, 56, 0.35),
|
|
22479
|
+
inset 0 2px 4px rgba(255, 255, 255, 0.5);
|
|
22480
|
+
transition:
|
|
22481
|
+
transform var(--duration) var(--ease),
|
|
22482
|
+
background var(--duration) var(--ease),
|
|
22483
|
+
box-shadow var(--duration) var(--ease);
|
|
22484
|
+
z-index: 3;
|
|
22485
|
+
overflow: hidden;
|
|
22486
|
+
}
|
|
22487
|
+
|
|
22488
|
+
.cc-theme-toggle.is-dark .thumb {
|
|
22489
|
+
transform: translateX(var(--toggle-thumb-offset));
|
|
22490
|
+
background: linear-gradient(180deg, #f5f7ff 0%, #cfd8ef 100%);
|
|
22491
|
+
box-shadow:
|
|
22492
|
+
0 4px 12px rgba(194, 208, 255, 0.25),
|
|
22493
|
+
inset 0 2px 4px rgba(255, 255, 255, 0.8);
|
|
22494
|
+
}
|
|
22495
|
+
|
|
22496
|
+
.cc-theme-toggle .sun-core {
|
|
22497
|
+
position: absolute;
|
|
22498
|
+
inset: 0;
|
|
22499
|
+
border-radius: 50%;
|
|
22500
|
+
}
|
|
22501
|
+
|
|
22502
|
+
.cc-theme-toggle .moon-cut {
|
|
22503
|
+
position: absolute;
|
|
22504
|
+
width: 22px;
|
|
22505
|
+
height: 22px;
|
|
22506
|
+
border-radius: 50%;
|
|
22507
|
+
background: linear-gradient(180deg, var(--dark-top) 0%, var(--dark-bottom) 100%);
|
|
22508
|
+
top: 4px;
|
|
22509
|
+
left: 12px;
|
|
22510
|
+
transform: scale(0.2);
|
|
22511
|
+
opacity: 0;
|
|
22512
|
+
transition:
|
|
22513
|
+
transform var(--duration) var(--ease),
|
|
22514
|
+
opacity calc(var(--duration) * 0.8) var(--ease);
|
|
22515
|
+
}
|
|
22516
|
+
|
|
22517
|
+
.cc-theme-toggle.is-dark .moon-cut {
|
|
22518
|
+
transform: scale(1);
|
|
22519
|
+
opacity: 1;
|
|
22520
|
+
}
|
|
22521
|
+
|
|
22522
|
+
.cc-theme-toggle .stars {
|
|
22523
|
+
position: absolute;
|
|
22524
|
+
border-radius: 50%;
|
|
22525
|
+
background: white;
|
|
22526
|
+
opacity: 0;
|
|
22527
|
+
transform: scale(0.9);
|
|
22528
|
+
z-index: 1;
|
|
22529
|
+
}
|
|
22530
|
+
|
|
22531
|
+
.cc-theme-toggle .stars::after {
|
|
22532
|
+
content: "";
|
|
22533
|
+
position: absolute;
|
|
22534
|
+
inset: -3px;
|
|
22535
|
+
border-radius: 50%;
|
|
22536
|
+
background: rgba(255, 255, 255, 0.18);
|
|
22537
|
+
filter: blur(3px);
|
|
22538
|
+
}
|
|
22539
|
+
|
|
22540
|
+
.cc-theme-toggle .stars-1 {
|
|
22541
|
+
width: 4px;
|
|
22542
|
+
height: 4px;
|
|
22543
|
+
top: 9px;
|
|
22544
|
+
left: 14px;
|
|
22545
|
+
animation: cc-theme-star-blink-1 1.9s ease-in-out infinite;
|
|
22546
|
+
}
|
|
22547
|
+
|
|
22548
|
+
.cc-theme-toggle .stars-2 {
|
|
22549
|
+
width: 4px;
|
|
22550
|
+
height: 4px;
|
|
22551
|
+
top: 15px;
|
|
22552
|
+
left: 26px;
|
|
22553
|
+
animation: cc-theme-star-blink-2 2.3s ease-in-out infinite;
|
|
22554
|
+
}
|
|
22555
|
+
|
|
22556
|
+
.cc-theme-toggle .stars-3 {
|
|
22557
|
+
width: 3px;
|
|
22558
|
+
height: 3px;
|
|
22559
|
+
top: 26px;
|
|
22560
|
+
left: 20px;
|
|
22561
|
+
animation: cc-theme-star-blink-3 1.7s ease-in-out infinite;
|
|
22562
|
+
}
|
|
22563
|
+
|
|
22564
|
+
.cc-theme-toggle:not(.is-dark) .stars {
|
|
22565
|
+
opacity: 0;
|
|
22566
|
+
animation-play-state: paused;
|
|
22567
|
+
}
|
|
22568
|
+
|
|
22569
|
+
.cc-theme-toggle.is-dark .stars {
|
|
22570
|
+
animation-play-state: running;
|
|
22571
|
+
}
|
|
22572
|
+
|
|
22573
|
+
.cc-theme-toggle .cloud {
|
|
22574
|
+
position: absolute;
|
|
22575
|
+
background: #fff;
|
|
22576
|
+
border-radius: 999px;
|
|
22577
|
+
transition: opacity 320ms ease;
|
|
22578
|
+
will-change: transform;
|
|
22579
|
+
}
|
|
22580
|
+
|
|
22581
|
+
.cc-theme-toggle .cloud::before,
|
|
22582
|
+
.cc-theme-toggle .cloud::after {
|
|
22583
|
+
content: "";
|
|
22584
|
+
position: absolute;
|
|
22585
|
+
background: inherit;
|
|
22586
|
+
border-radius: 50%;
|
|
22587
|
+
}
|
|
22588
|
+
|
|
22589
|
+
.cc-theme-toggle .cloud-1 {
|
|
22590
|
+
width: 6px;
|
|
22591
|
+
height: 2.5px;
|
|
22592
|
+
left: 58px;
|
|
22593
|
+
top: 11px;
|
|
22594
|
+
box-shadow: 3.5px 0 0 0 #fff;
|
|
22595
|
+
z-index: 2;
|
|
22596
|
+
animation: cc-theme-cloud-float-small 4.8s ease-in-out infinite;
|
|
22597
|
+
}
|
|
22598
|
+
|
|
22599
|
+
.cc-theme-toggle .cloud-1::before {
|
|
22600
|
+
width: 3px;
|
|
22601
|
+
height: 3px;
|
|
22602
|
+
left: 0.5px;
|
|
22603
|
+
top: -1.5px;
|
|
22604
|
+
}
|
|
22605
|
+
|
|
22606
|
+
.cc-theme-toggle .cloud-1::after {
|
|
22607
|
+
width: 4px;
|
|
22608
|
+
height: 4px;
|
|
22609
|
+
left: 2.5px;
|
|
22610
|
+
top: -2.5px;
|
|
22611
|
+
}
|
|
22612
|
+
|
|
22613
|
+
.cc-theme-toggle .cloud-2 {
|
|
22614
|
+
width: 18px;
|
|
22615
|
+
height: 7px;
|
|
22616
|
+
left: 40px;
|
|
22617
|
+
top: 23px;
|
|
22618
|
+
box-shadow: 12px 0 0 0 #fff;
|
|
22619
|
+
z-index: 2;
|
|
22620
|
+
animation: cc-theme-cloud-float-large 9.6s ease-in-out infinite;
|
|
22621
|
+
}
|
|
22622
|
+
|
|
22623
|
+
.cc-theme-toggle .cloud-2::before {
|
|
22624
|
+
width: 10px;
|
|
22625
|
+
height: 10px;
|
|
22626
|
+
left: 2px;
|
|
22627
|
+
top: -5px;
|
|
22628
|
+
}
|
|
22629
|
+
|
|
22630
|
+
.cc-theme-toggle .cloud-2::after {
|
|
22631
|
+
width: 13px;
|
|
22632
|
+
height: 13px;
|
|
22633
|
+
left: 9px;
|
|
22634
|
+
top: -9px;
|
|
22635
|
+
}
|
|
22636
|
+
|
|
22637
|
+
.cc-theme-toggle.is-dark .cloud {
|
|
22638
|
+
opacity: 0;
|
|
22639
|
+
animation-play-state: paused;
|
|
22640
|
+
}
|
|
22641
|
+
|
|
22642
|
+
.cc-theme-toggle:focus-visible .track {
|
|
22643
|
+
outline: 3px solid rgba(99, 102, 241, 0.45);
|
|
22644
|
+
outline-offset: 4px;
|
|
22645
|
+
}
|
|
22646
|
+
|
|
22647
|
+
@keyframes cc-theme-light-flow-pink {
|
|
22648
|
+
0% { transform: translateX(-8px) translateY(0px); opacity: 0.7; }
|
|
22649
|
+
25% { transform: translateX(4px) translateY(-1px); opacity: 0.48; }
|
|
22650
|
+
50% { transform: translateX(18px) translateY(-3px); opacity: 0.22; }
|
|
22651
|
+
75% { transform: translateX(30px) translateY(-5px); opacity: 0.12; }
|
|
22652
|
+
100% { transform: translateX(-8px) translateY(0px); opacity: 0.7; }
|
|
22653
|
+
}
|
|
22654
|
+
|
|
22655
|
+
@keyframes cc-theme-light-flow-purple {
|
|
22656
|
+
0% { transform: translateX(0px) translateY(0px); opacity: 0.22; }
|
|
22657
|
+
25% { transform: translateX(-12px) translateY(0px); opacity: 0.34; }
|
|
22658
|
+
50% { transform: translateX(-24px) translateY(2px); opacity: 0.46; }
|
|
22659
|
+
75% { transform: translateX(-34px) translateY(5px); opacity: 0.24; }
|
|
22660
|
+
100% { transform: translateX(0px) translateY(0px); opacity: 0.22; }
|
|
22661
|
+
}
|
|
22662
|
+
|
|
22663
|
+
@keyframes cc-theme-light-sweep {
|
|
22664
|
+
0% { transform: translateX(0); opacity: 0; }
|
|
22665
|
+
25% { opacity: 0.95; }
|
|
22666
|
+
60% { opacity: 0.72; }
|
|
22667
|
+
100% { transform: translateX(124px); opacity: 0; }
|
|
22668
|
+
}
|
|
22669
|
+
|
|
22670
|
+
@keyframes cc-theme-light-veil {
|
|
22671
|
+
0%, 100% { opacity: 0.18; }
|
|
22672
|
+
30% { opacity: 0.1; }
|
|
22673
|
+
60% { opacity: 0.16; }
|
|
22674
|
+
80% { opacity: 0.22; }
|
|
22675
|
+
}
|
|
22676
|
+
|
|
22677
|
+
@keyframes cc-theme-cloud-float-small {
|
|
22678
|
+
0% { transform: translateX(0); }
|
|
22679
|
+
50% { transform: translateX(-12px); }
|
|
22680
|
+
100% { transform: translateX(0); }
|
|
22681
|
+
}
|
|
22682
|
+
|
|
22683
|
+
@keyframes cc-theme-cloud-float-large {
|
|
22684
|
+
0% { transform: translateX(0); }
|
|
22685
|
+
50% { transform: translateX(-18px); }
|
|
22686
|
+
100% { transform: translateX(0); }
|
|
22687
|
+
}
|
|
22688
|
+
|
|
22689
|
+
@keyframes cc-theme-star-blink-1 {
|
|
22690
|
+
0%, 100% { opacity: 0.35; transform: scale(0.9); }
|
|
22691
|
+
50% { opacity: 1; transform: scale(1.08); }
|
|
22692
|
+
}
|
|
22693
|
+
|
|
22694
|
+
@keyframes cc-theme-star-blink-2 {
|
|
22695
|
+
0%, 100% { opacity: 0.25; transform: scale(0.85); }
|
|
22696
|
+
45% { opacity: 0.95; transform: scale(1.05); }
|
|
22697
|
+
}
|
|
22698
|
+
|
|
22699
|
+
@keyframes cc-theme-star-blink-3 {
|
|
22700
|
+
0%, 100% { opacity: 0.3; transform: scale(0.9); }
|
|
22701
|
+
55% { opacity: 1; transform: scale(1.12); }
|
|
22702
|
+
}
|
|
22703
|
+
` })
|
|
22704
|
+
]
|
|
22705
|
+
}
|
|
22706
|
+
);
|
|
22707
|
+
}
|
|
22708
|
+
|
|
22252
22709
|
// src/lib/accountsAuth.ts
|
|
22253
22710
|
var normalizeBaseUrl2 = (value) => value.replace(/\/+$/, "");
|
|
22711
|
+
var AUTH_REQUEST_TIMEOUT_MS = 8e3;
|
|
22712
|
+
var LOCAL_BROWSER_HOSTNAMES = /* @__PURE__ */ new Set(["localhost", "127.0.0.1", "::1"]);
|
|
22713
|
+
var isLocalBrowserOrigin = () => {
|
|
22714
|
+
if (typeof window === "undefined") return false;
|
|
22715
|
+
return LOCAL_BROWSER_HOSTNAMES.has(window.location.hostname);
|
|
22716
|
+
};
|
|
22717
|
+
var getLocalRedirectUri = () => {
|
|
22718
|
+
if (typeof window === "undefined") {
|
|
22719
|
+
return "http://localhost:8080/auth/callback";
|
|
22720
|
+
}
|
|
22721
|
+
const port = window.location.port || "8080";
|
|
22722
|
+
return `${window.location.protocol}//localhost:${port}/auth/callback`;
|
|
22723
|
+
};
|
|
22724
|
+
var fetchWithTimeout = async (input, init, timeoutMs = AUTH_REQUEST_TIMEOUT_MS) => {
|
|
22725
|
+
const controller = new AbortController();
|
|
22726
|
+
const timeoutId = window.setTimeout(() => controller.abort(), timeoutMs);
|
|
22727
|
+
try {
|
|
22728
|
+
return await fetch(input, {
|
|
22729
|
+
...init,
|
|
22730
|
+
signal: controller.signal
|
|
22731
|
+
});
|
|
22732
|
+
} catch (error) {
|
|
22733
|
+
if (error.name === "AbortError") {
|
|
22734
|
+
throw new Error("Timeout ao consultar o Accounts.");
|
|
22735
|
+
}
|
|
22736
|
+
throw error;
|
|
22737
|
+
} finally {
|
|
22738
|
+
window.clearTimeout(timeoutId);
|
|
22739
|
+
}
|
|
22740
|
+
};
|
|
22254
22741
|
var getAccountsConfig = () => {
|
|
22255
|
-
var _a78, _b7
|
|
22742
|
+
var _a78, _b7;
|
|
22256
22743
|
const baseUrl = normalizeBaseUrl2(
|
|
22257
22744
|
(_a78 = getRuntimeEnv("VITE_ACCOUNTS_BASE_URL")) != null ? _a78 : "https://accounts.cupcode.com.br"
|
|
22258
22745
|
);
|
|
@@ -22260,12 +22747,14 @@ var getAccountsConfig = () => {
|
|
|
22260
22747
|
if (!clientId) {
|
|
22261
22748
|
throw new Error("VITE_ACCOUNTS_CLIENT_ID \xE9 obrigat\xF3rio para login.");
|
|
22262
22749
|
}
|
|
22263
|
-
const
|
|
22750
|
+
const runtimeRedirectUri = getRuntimeEnv("VITE_ACCOUNTS_REDIRECT_URI");
|
|
22751
|
+
const fallbackRedirectUri = typeof window === "undefined" ? "http://localhost:8080/auth/callback" : `${window.location.origin}/auth/callback`;
|
|
22752
|
+
const redirectUri = runtimeRedirectUri != null ? runtimeRedirectUri : isLocalBrowserOrigin() ? getLocalRedirectUri() : fallbackRedirectUri;
|
|
22264
22753
|
return {
|
|
22265
22754
|
baseUrl,
|
|
22266
22755
|
clientId,
|
|
22267
22756
|
redirectUri,
|
|
22268
|
-
scope: (
|
|
22757
|
+
scope: (_b7 = getRuntimeEnv("VITE_ACCOUNTS_SCOPE")) != null ? _b7 : "openid profile email",
|
|
22269
22758
|
audience: getRuntimeEnv("VITE_ACCOUNTS_AUDIENCE"),
|
|
22270
22759
|
authUrl: getRuntimeEnv("VITE_ACCOUNTS_AUTH_URL"),
|
|
22271
22760
|
tokenUrl: getRuntimeEnv("VITE_ACCOUNTS_TOKEN_URL"),
|
|
@@ -22291,7 +22780,7 @@ var resolveOidcEndpoints = async (config) => {
|
|
|
22291
22780
|
};
|
|
22292
22781
|
}
|
|
22293
22782
|
const discoveryUrl = `${normalizeBaseUrl2(config.baseUrl)}/.well-known/openid-configuration`;
|
|
22294
|
-
const response = await
|
|
22783
|
+
const response = await fetchWithTimeout(discoveryUrl);
|
|
22295
22784
|
if (!response.ok) {
|
|
22296
22785
|
throw new Error("Falha ao resolver configura\xE7\xE3o OIDC do accounts.");
|
|
22297
22786
|
}
|
|
@@ -22382,7 +22871,7 @@ var exchangeCodeForToken = async (config, tokenUrl, code, verifier) => {
|
|
|
22382
22871
|
redirect_uri: config.redirectUri,
|
|
22383
22872
|
code_verifier: verifier
|
|
22384
22873
|
});
|
|
22385
|
-
const response = await
|
|
22874
|
+
const response = await fetchWithTimeout(tokenUrl, {
|
|
22386
22875
|
method: "POST",
|
|
22387
22876
|
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
22388
22877
|
body
|
|
@@ -22429,7 +22918,7 @@ var decodeJwt = (token) => {
|
|
|
22429
22918
|
};
|
|
22430
22919
|
|
|
22431
22920
|
// src/components/cupcode/MainNavbar.tsx
|
|
22432
|
-
var
|
|
22921
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
22433
22922
|
var parsePositiveInteger = (rawValue, fallback) => {
|
|
22434
22923
|
const parsed = Number(rawValue);
|
|
22435
22924
|
if (!Number.isFinite(parsed) || parsed <= 0) return fallback;
|
|
@@ -22589,6 +23078,7 @@ var DATE_WITH_YEAR_PT_BR_FORMATTER = new Intl.DateTimeFormat("pt-BR", {
|
|
|
22589
23078
|
year: "numeric"
|
|
22590
23079
|
});
|
|
22591
23080
|
var CHAT_FEATURE_FLAGS_STORAGE_KEY = "cc_chat_feature_flags";
|
|
23081
|
+
var DEFAULT_LOGO_SLOT_CLASS_NAME = "h-10 w-[175px] shrink-0";
|
|
22592
23082
|
var getDefaultChatFeatureFlags = () => ({
|
|
22593
23083
|
hasReadAt: true,
|
|
22594
23084
|
hasReplyToMessage: true,
|
|
@@ -23080,24 +23570,24 @@ var MainNavbar = ({
|
|
|
23080
23570
|
appVersion
|
|
23081
23571
|
}) => {
|
|
23082
23572
|
var _a78, _b7, _c;
|
|
23083
|
-
const [chatUsers, setChatUsers] = (0,
|
|
23084
|
-
const [chatMessages, setChatMessages] = (0,
|
|
23085
|
-
const [chatMessageLogs, setChatMessageLogs] = (0,
|
|
23086
|
-
const [chatReactions, setChatReactions] = (0,
|
|
23087
|
-
const [isChatLoading, setIsChatLoading] = (0,
|
|
23088
|
-
const [isChatSending, setIsChatSending] = (0,
|
|
23089
|
-
const [chatError, setChatError] = (0,
|
|
23090
|
-
const [resolvedSenderId, setResolvedSenderId] = (0,
|
|
23091
|
-
const [tokenDerivedUserId, setTokenDerivedUserId] = (0,
|
|
23092
|
-
const [tokenDerivedEmail, setTokenDerivedEmail] = (0,
|
|
23093
|
-
const [persistedProfileAvatarValue, setPersistedProfileAvatarValue] = (0,
|
|
23094
|
-
const [accountsLanguage, setAccountsLanguage] = (0,
|
|
23095
|
-
const [accountsRecentActivity, setAccountsRecentActivity] = (0,
|
|
23096
|
-
const [isAccountsActivityLoading, setIsAccountsActivityLoading] = (0,
|
|
23097
|
-
const chatMessagesRef = (0,
|
|
23098
|
-
const chatFeatureFlagsRef = (0,
|
|
23099
|
-
const presenceSnapshotsRef = (0,
|
|
23100
|
-
const updateChatFeatureFlags = (0,
|
|
23573
|
+
const [chatUsers, setChatUsers] = (0, import_react18.useState)([]);
|
|
23574
|
+
const [chatMessages, setChatMessages] = (0, import_react18.useState)([]);
|
|
23575
|
+
const [chatMessageLogs, setChatMessageLogs] = (0, import_react18.useState)([]);
|
|
23576
|
+
const [chatReactions, setChatReactions] = (0, import_react18.useState)([]);
|
|
23577
|
+
const [isChatLoading, setIsChatLoading] = (0, import_react18.useState)(false);
|
|
23578
|
+
const [isChatSending, setIsChatSending] = (0, import_react18.useState)(false);
|
|
23579
|
+
const [chatError, setChatError] = (0, import_react18.useState)(null);
|
|
23580
|
+
const [resolvedSenderId, setResolvedSenderId] = (0, import_react18.useState)(null);
|
|
23581
|
+
const [tokenDerivedUserId, setTokenDerivedUserId] = (0, import_react18.useState)(null);
|
|
23582
|
+
const [tokenDerivedEmail, setTokenDerivedEmail] = (0, import_react18.useState)(void 0);
|
|
23583
|
+
const [persistedProfileAvatarValue, setPersistedProfileAvatarValue] = (0, import_react18.useState)(void 0);
|
|
23584
|
+
const [accountsLanguage, setAccountsLanguage] = (0, import_react18.useState)("pt-BR");
|
|
23585
|
+
const [accountsRecentActivity, setAccountsRecentActivity] = (0, import_react18.useState)([]);
|
|
23586
|
+
const [isAccountsActivityLoading, setIsAccountsActivityLoading] = (0, import_react18.useState)(false);
|
|
23587
|
+
const chatMessagesRef = (0, import_react18.useRef)([]);
|
|
23588
|
+
const chatFeatureFlagsRef = (0, import_react18.useRef)(readStoredChatFeatureFlags());
|
|
23589
|
+
const presenceSnapshotsRef = (0, import_react18.useRef)(/* @__PURE__ */ new Map());
|
|
23590
|
+
const updateChatFeatureFlags = (0, import_react18.useCallback)((partial) => {
|
|
23101
23591
|
const nextFlags = {
|
|
23102
23592
|
...chatFeatureFlagsRef.current,
|
|
23103
23593
|
...partial
|
|
@@ -23105,28 +23595,28 @@ var MainNavbar = ({
|
|
|
23105
23595
|
chatFeatureFlagsRef.current = nextFlags;
|
|
23106
23596
|
persistChatFeatureFlags(nextFlags);
|
|
23107
23597
|
}, []);
|
|
23108
|
-
const currentPathname = (0,
|
|
23598
|
+
const currentPathname = (0, import_react18.useMemo)(() => {
|
|
23109
23599
|
if (pathname && pathname.trim() !== "") return pathname;
|
|
23110
23600
|
if (typeof window !== "undefined") return window.location.pathname || "/";
|
|
23111
23601
|
return "/";
|
|
23112
23602
|
}, [pathname]);
|
|
23113
|
-
const currentUserId = (0,
|
|
23603
|
+
const currentUserId = (0, import_react18.useMemo)(() => {
|
|
23114
23604
|
var _a79;
|
|
23115
23605
|
return (_a79 = resolveCurrentUserId(authUser)) != null ? _a79 : tokenDerivedUserId;
|
|
23116
23606
|
}, [authUser, tokenDerivedUserId]);
|
|
23117
|
-
const authEmail = (0,
|
|
23607
|
+
const authEmail = (0, import_react18.useMemo)(
|
|
23118
23608
|
() => {
|
|
23119
23609
|
var _a79, _b8;
|
|
23120
23610
|
return (_b8 = (_a79 = toStringOrUndefined(authUser == null ? void 0 : authUser.email)) == null ? void 0 : _a79.toLowerCase()) != null ? _b8 : tokenDerivedEmail;
|
|
23121
23611
|
},
|
|
23122
23612
|
[authUser == null ? void 0 : authUser.email, tokenDerivedEmail]
|
|
23123
23613
|
);
|
|
23124
|
-
const isChatSuperAdmin = (0,
|
|
23614
|
+
const isChatSuperAdmin = (0, import_react18.useMemo)(() => {
|
|
23125
23615
|
var _a79, _b8;
|
|
23126
23616
|
const roleTokens = `${(_a79 = authUser == null ? void 0 : authUser.role) != null ? _a79 : ""} ${(_b8 = authUser == null ? void 0 : authUser.jobTitle) != null ? _b8 : ""}`.toLowerCase();
|
|
23127
23617
|
return roleTokens.includes("superadmin") || roleTokens.includes("super admin");
|
|
23128
23618
|
}, [authUser == null ? void 0 : authUser.jobTitle, authUser == null ? void 0 : authUser.role]);
|
|
23129
|
-
const resolvedTelescupBaseUrl = (0,
|
|
23619
|
+
const resolvedTelescupBaseUrl = (0, import_react18.useMemo)(() => {
|
|
23130
23620
|
if (TELESCUP_BASE_URL) {
|
|
23131
23621
|
return TELESCUP_BASE_URL;
|
|
23132
23622
|
}
|
|
@@ -23142,7 +23632,7 @@ var MainNavbar = ({
|
|
|
23142
23632
|
return false;
|
|
23143
23633
|
}
|
|
23144
23634
|
})();
|
|
23145
|
-
const resolvedAuthStatus = (0,
|
|
23635
|
+
const resolvedAuthStatus = (0, import_react18.useMemo)(() => {
|
|
23146
23636
|
if (authStatus) return authStatus;
|
|
23147
23637
|
if ((authUser == null ? void 0 : authUser.sub) || (authUser == null ? void 0 : authUser.id) || (authUser == null ? void 0 : authUser.userId) || (authUser == null ? void 0 : authUser.email)) {
|
|
23148
23638
|
return "authenticated";
|
|
@@ -23162,7 +23652,7 @@ var MainNavbar = ({
|
|
|
23162
23652
|
tokenDerivedUserId
|
|
23163
23653
|
]);
|
|
23164
23654
|
const isAuthenticated = resolvedAuthStatus === "authenticated";
|
|
23165
|
-
(0,
|
|
23655
|
+
(0, import_react18.useEffect)(() => {
|
|
23166
23656
|
if (authStatus === "unauthenticated") {
|
|
23167
23657
|
setTokenDerivedUserId(null);
|
|
23168
23658
|
setTokenDerivedEmail(void 0);
|
|
@@ -23205,7 +23695,7 @@ var MainNavbar = ({
|
|
|
23205
23695
|
canceled = true;
|
|
23206
23696
|
};
|
|
23207
23697
|
}, [authStatus, getAccessToken]);
|
|
23208
|
-
(0,
|
|
23698
|
+
(0, import_react18.useEffect)(() => {
|
|
23209
23699
|
if (!isAuthenticated) {
|
|
23210
23700
|
setResolvedSenderId(null);
|
|
23211
23701
|
setPersistedProfileAvatarValue(void 0);
|
|
@@ -23284,7 +23774,7 @@ var MainNavbar = ({
|
|
|
23284
23774
|
canceled = true;
|
|
23285
23775
|
};
|
|
23286
23776
|
}, [authEmail, currentUserId, isAuthenticated]);
|
|
23287
|
-
(0,
|
|
23777
|
+
(0, import_react18.useEffect)(() => {
|
|
23288
23778
|
if (!isAuthenticated) return;
|
|
23289
23779
|
if (typeof window === "undefined") return;
|
|
23290
23780
|
const controller = new AbortController();
|
|
@@ -23360,10 +23850,10 @@ var MainNavbar = ({
|
|
|
23360
23850
|
controller.abort();
|
|
23361
23851
|
};
|
|
23362
23852
|
}, [getAccessToken, isAuthenticated, currentUserId]);
|
|
23363
|
-
(0,
|
|
23853
|
+
(0, import_react18.useEffect)(() => {
|
|
23364
23854
|
chatMessagesRef.current = chatMessages;
|
|
23365
23855
|
}, [chatMessages]);
|
|
23366
|
-
(0,
|
|
23856
|
+
(0, import_react18.useEffect)(() => {
|
|
23367
23857
|
if (!isAuthenticated) {
|
|
23368
23858
|
presenceSnapshotsRef.current.clear();
|
|
23369
23859
|
setChatUsers([]);
|
|
@@ -23764,7 +24254,7 @@ var MainNavbar = ({
|
|
|
23764
24254
|
canceled = true;
|
|
23765
24255
|
};
|
|
23766
24256
|
}, [effectiveCurrentUserId, isAuthenticated, isChatSuperAdmin, updateChatFeatureFlags]);
|
|
23767
|
-
(0,
|
|
24257
|
+
(0, import_react18.useEffect)(() => {
|
|
23768
24258
|
if (!isAuthenticated || !effectiveCurrentUserId) return;
|
|
23769
24259
|
const supabase = getSupabase();
|
|
23770
24260
|
if (!supabase) return;
|
|
@@ -23896,7 +24386,7 @@ var MainNavbar = ({
|
|
|
23896
24386
|
void supabase.removeChannel(presenceChannel);
|
|
23897
24387
|
};
|
|
23898
24388
|
}, [effectiveCurrentUserId, isAuthenticated, isChatSuperAdmin]);
|
|
23899
|
-
(0,
|
|
24389
|
+
(0, import_react18.useEffect)(() => {
|
|
23900
24390
|
if (!isAuthenticated) return;
|
|
23901
24391
|
const intervalId = window.setInterval(() => {
|
|
23902
24392
|
const now = Date.now();
|
|
@@ -23922,7 +24412,7 @@ var MainNavbar = ({
|
|
|
23922
24412
|
window.clearInterval(intervalId);
|
|
23923
24413
|
};
|
|
23924
24414
|
}, [isAuthenticated]);
|
|
23925
|
-
const chatUnreadByUser = (0,
|
|
24415
|
+
const chatUnreadByUser = (0, import_react18.useMemo)(() => {
|
|
23926
24416
|
const counters = {};
|
|
23927
24417
|
chatMessages.forEach((message) => {
|
|
23928
24418
|
var _a79;
|
|
@@ -23932,10 +24422,10 @@ var MainNavbar = ({
|
|
|
23932
24422
|
});
|
|
23933
24423
|
return counters;
|
|
23934
24424
|
}, [chatMessages]);
|
|
23935
|
-
const chatUnreadCount = (0,
|
|
24425
|
+
const chatUnreadCount = (0, import_react18.useMemo)(() => {
|
|
23936
24426
|
return Object.values(chatUnreadByUser).reduce((total, count2) => total + count2, 0);
|
|
23937
24427
|
}, [chatUnreadByUser]);
|
|
23938
|
-
const handleChatMarkConversationRead = (0,
|
|
24428
|
+
const handleChatMarkConversationRead = (0, import_react18.useCallback)(
|
|
23939
24429
|
async ({ contactId }) => {
|
|
23940
24430
|
if (!effectiveCurrentUserId || !contactId) return;
|
|
23941
24431
|
const readAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
@@ -23986,7 +24476,7 @@ var MainNavbar = ({
|
|
|
23986
24476
|
},
|
|
23987
24477
|
[effectiveCurrentUserId, updateChatFeatureFlags]
|
|
23988
24478
|
);
|
|
23989
|
-
const handleChatToggleReaction = (0,
|
|
24479
|
+
const handleChatToggleReaction = (0, import_react18.useCallback)(
|
|
23990
24480
|
async ({ messageId, emoji }) => {
|
|
23991
24481
|
if (!effectiveCurrentUserId || !messageId || !emoji) return;
|
|
23992
24482
|
const localToggleReaction = () => {
|
|
@@ -24064,7 +24554,7 @@ var MainNavbar = ({
|
|
|
24064
24554
|
},
|
|
24065
24555
|
[chatReactions, effectiveCurrentUserId, updateChatFeatureFlags]
|
|
24066
24556
|
);
|
|
24067
|
-
const insertChatLog = (0,
|
|
24557
|
+
const insertChatLog = (0, import_react18.useCallback)(
|
|
24068
24558
|
async ({
|
|
24069
24559
|
messageId,
|
|
24070
24560
|
action,
|
|
@@ -24095,7 +24585,7 @@ var MainNavbar = ({
|
|
|
24095
24585
|
},
|
|
24096
24586
|
[effectiveCurrentUserId, updateChatFeatureFlags]
|
|
24097
24587
|
);
|
|
24098
|
-
const handleChatEditMessage = (0,
|
|
24588
|
+
const handleChatEditMessage = (0, import_react18.useCallback)(
|
|
24099
24589
|
async ({ messageId, text }) => {
|
|
24100
24590
|
if (!effectiveCurrentUserId || !messageId) return;
|
|
24101
24591
|
const nextText = text.trim();
|
|
@@ -24165,7 +24655,7 @@ var MainNavbar = ({
|
|
|
24165
24655
|
},
|
|
24166
24656
|
[chatMessages, effectiveCurrentUserId, insertChatLog, updateChatFeatureFlags]
|
|
24167
24657
|
);
|
|
24168
|
-
const handleChatDeleteMessage = (0,
|
|
24658
|
+
const handleChatDeleteMessage = (0, import_react18.useCallback)(
|
|
24169
24659
|
async ({ messageId }) => {
|
|
24170
24660
|
if (!effectiveCurrentUserId || !messageId) return;
|
|
24171
24661
|
const targetMessage = chatMessages.find((message) => message.id === messageId);
|
|
@@ -24252,7 +24742,7 @@ var MainNavbar = ({
|
|
|
24252
24742
|
},
|
|
24253
24743
|
[chatMessages, chatReactions, effectiveCurrentUserId, insertChatLog, updateChatFeatureFlags]
|
|
24254
24744
|
);
|
|
24255
|
-
const handleChatViewMessageData = (0,
|
|
24745
|
+
const handleChatViewMessageData = (0, import_react18.useCallback)(
|
|
24256
24746
|
({ messageId }) => {
|
|
24257
24747
|
const message = chatMessages.find((entry) => entry.id === messageId);
|
|
24258
24748
|
if (!message) return;
|
|
@@ -24271,7 +24761,7 @@ var MainNavbar = ({
|
|
|
24271
24761
|
},
|
|
24272
24762
|
[chatMessages]
|
|
24273
24763
|
);
|
|
24274
|
-
const handleChatSendMessage = (0,
|
|
24764
|
+
const handleChatSendMessage = (0, import_react18.useCallback)(
|
|
24275
24765
|
async ({
|
|
24276
24766
|
recipientId,
|
|
24277
24767
|
text,
|
|
@@ -24360,7 +24850,7 @@ var MainNavbar = ({
|
|
|
24360
24850
|
},
|
|
24361
24851
|
[effectiveCurrentUserId, updateChatFeatureFlags]
|
|
24362
24852
|
);
|
|
24363
|
-
const items = (0,
|
|
24853
|
+
const items = (0, import_react18.useMemo)(() => {
|
|
24364
24854
|
var _a79;
|
|
24365
24855
|
if (!showNavItems) return [];
|
|
24366
24856
|
const normalizedPathname = currentPathname === "" ? "/" : currentPathname;
|
|
@@ -24388,32 +24878,9 @@ var MainNavbar = ({
|
|
|
24388
24878
|
};
|
|
24389
24879
|
});
|
|
24390
24880
|
}, [currentPathname, onNavigate, showNavItems]);
|
|
24391
|
-
const resolvedLogo = (0,
|
|
24881
|
+
const resolvedLogo = (0, import_react18.useMemo)(() => {
|
|
24392
24882
|
if (logo !== void 0) return logo;
|
|
24393
|
-
return /* @__PURE__ */ (0,
|
|
24394
|
-
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
24395
|
-
TelescupImage,
|
|
24396
|
-
{
|
|
24397
|
-
apiId: "be574751-cf1b-499a-8473-360b4115b447",
|
|
24398
|
-
imageWidth: 40,
|
|
24399
|
-
imageHeight: 40,
|
|
24400
|
-
alt: "Design System Cupcode",
|
|
24401
|
-
loading: "eager",
|
|
24402
|
-
className: "h-10 w-auto"
|
|
24403
|
-
}
|
|
24404
|
-
),
|
|
24405
|
-
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
24406
|
-
TelescupImage,
|
|
24407
|
-
{
|
|
24408
|
-
apiId: "3b913721-2eda-48fd-8d76-1a53055a337f",
|
|
24409
|
-
imageWidth: 120,
|
|
24410
|
-
imageHeight: 32,
|
|
24411
|
-
alt: "Cupcode",
|
|
24412
|
-
loading: "eager",
|
|
24413
|
-
className: "h-8 w-auto"
|
|
24414
|
-
}
|
|
24415
|
-
)
|
|
24416
|
-
] });
|
|
24883
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: DEFAULT_LOGO_SLOT_CLASS_NAME, "aria-hidden": "true" });
|
|
24417
24884
|
}, [logo]);
|
|
24418
24885
|
const handleCtaClick = () => {
|
|
24419
24886
|
if (onNavigate) {
|
|
@@ -24448,7 +24915,7 @@ var MainNavbar = ({
|
|
|
24448
24915
|
if (typeof window === "undefined") return;
|
|
24449
24916
|
window.open(`${MC_BASE_URL2}/tasks`, "_blank", "noopener,noreferrer");
|
|
24450
24917
|
};
|
|
24451
|
-
const handleChatOpenUserProfile = (0,
|
|
24918
|
+
const handleChatOpenUserProfile = (0, import_react18.useCallback)(({ userId }) => {
|
|
24452
24919
|
var _a79;
|
|
24453
24920
|
if (!userId || typeof window === "undefined") return;
|
|
24454
24921
|
const baseUrl = ((_a79 = getRuntimeEnv("VITE_ACCOUNTS_BASE_URL")) != null ? _a79 : "https://accounts.cupcode.com.br").replace(
|
|
@@ -24457,7 +24924,7 @@ var MainNavbar = ({
|
|
|
24457
24924
|
);
|
|
24458
24925
|
window.open(`${baseUrl}/users/${encodeURIComponent(userId)}`, "_blank", "noopener,noreferrer");
|
|
24459
24926
|
}, []);
|
|
24460
|
-
const handleChatSendEmail = (0,
|
|
24927
|
+
const handleChatSendEmail = (0, import_react18.useCallback)(({ email }) => {
|
|
24461
24928
|
if (!email) {
|
|
24462
24929
|
import_sonner.toast.message("E-mail indispon\xEDvel", {
|
|
24463
24930
|
description: "Esse usu\xE1rio n\xE3o possui e-mail dispon\xEDvel para contato."
|
|
@@ -24467,7 +24934,7 @@ var MainNavbar = ({
|
|
|
24467
24934
|
if (typeof window === "undefined") return;
|
|
24468
24935
|
window.open(`mailto:${email}`, "_blank", "noopener,noreferrer");
|
|
24469
24936
|
}, []);
|
|
24470
|
-
const handleChatAddToAgenda = (0,
|
|
24937
|
+
const handleChatAddToAgenda = (0, import_react18.useCallback)(
|
|
24471
24938
|
({ email, name }) => {
|
|
24472
24939
|
if (typeof window === "undefined") return;
|
|
24473
24940
|
const attendee = email ? `&add=${encodeURIComponent(email)}` : "";
|
|
@@ -24480,7 +24947,7 @@ var MainNavbar = ({
|
|
|
24480
24947
|
},
|
|
24481
24948
|
[]
|
|
24482
24949
|
);
|
|
24483
|
-
const getTelescupAccessToken = (0,
|
|
24950
|
+
const getTelescupAccessToken = (0, import_react18.useCallback)(async () => {
|
|
24484
24951
|
if (getAccessToken) {
|
|
24485
24952
|
return getAccessToken();
|
|
24486
24953
|
}
|
|
@@ -24493,7 +24960,7 @@ var MainNavbar = ({
|
|
|
24493
24960
|
}
|
|
24494
24961
|
return token;
|
|
24495
24962
|
}, [getAccessToken]);
|
|
24496
|
-
const handleLanguageChange = (0,
|
|
24963
|
+
const handleLanguageChange = (0, import_react18.useCallback)(
|
|
24497
24964
|
async (nextLanguage) => {
|
|
24498
24965
|
setAccountsLanguage(nextLanguage);
|
|
24499
24966
|
if (!ACCOUNTS_LANGUAGE_ENDPOINT || typeof window === "undefined") return;
|
|
@@ -24519,7 +24986,7 @@ var MainNavbar = ({
|
|
|
24519
24986
|
},
|
|
24520
24987
|
[getAccessToken]
|
|
24521
24988
|
);
|
|
24522
|
-
const handleProfileAvatarChange = (0,
|
|
24989
|
+
const handleProfileAvatarChange = (0, import_react18.useCallback)(
|
|
24523
24990
|
async ({ avatarId, avatarUrl }) => {
|
|
24524
24991
|
var _a79;
|
|
24525
24992
|
const normalizedAvatarId = (_a79 = parseAssetId(avatarId)) != null ? _a79 : parseAssetId(avatarUrl);
|
|
@@ -24637,61 +25104,64 @@ var MainNavbar = ({
|
|
|
24637
25104
|
},
|
|
24638
25105
|
[authEmail, currentUserId, resolvedSenderId]
|
|
24639
25106
|
);
|
|
24640
|
-
return /* @__PURE__ */ (0,
|
|
25107
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_jsx_runtime39.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
24641
25108
|
NavbarCupcode,
|
|
24642
25109
|
{
|
|
24643
25110
|
logo: resolvedLogo,
|
|
24644
25111
|
items,
|
|
24645
25112
|
className,
|
|
24646
|
-
actions: /* @__PURE__ */ (0,
|
|
24647
|
-
|
|
24648
|
-
|
|
24649
|
-
|
|
24650
|
-
|
|
24651
|
-
|
|
24652
|
-
|
|
24653
|
-
|
|
24654
|
-
|
|
24655
|
-
|
|
24656
|
-
|
|
24657
|
-
|
|
24658
|
-
|
|
24659
|
-
|
|
24660
|
-
|
|
24661
|
-
|
|
24662
|
-
|
|
24663
|
-
|
|
24664
|
-
|
|
24665
|
-
|
|
24666
|
-
|
|
24667
|
-
|
|
24668
|
-
|
|
24669
|
-
|
|
24670
|
-
|
|
24671
|
-
|
|
24672
|
-
|
|
24673
|
-
|
|
24674
|
-
|
|
24675
|
-
|
|
24676
|
-
|
|
24677
|
-
|
|
24678
|
-
|
|
24679
|
-
|
|
24680
|
-
|
|
24681
|
-
|
|
24682
|
-
|
|
24683
|
-
|
|
24684
|
-
|
|
24685
|
-
|
|
24686
|
-
|
|
24687
|
-
|
|
24688
|
-
|
|
24689
|
-
|
|
24690
|
-
|
|
24691
|
-
|
|
24692
|
-
|
|
24693
|
-
|
|
24694
|
-
|
|
25113
|
+
actions: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex items-center gap-3", children: [
|
|
25114
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(ThemeToggle, {}),
|
|
25115
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
25116
|
+
UserMenuCupcode,
|
|
25117
|
+
{
|
|
25118
|
+
isAuthenticated: resolvedAuthStatus === "authenticated",
|
|
25119
|
+
isLoading: resolvedAuthStatus === "loading",
|
|
25120
|
+
loginLabel: ctaLabel,
|
|
25121
|
+
displayName: authUser == null ? void 0 : authUser.name,
|
|
25122
|
+
username: (_c = authUser == null ? void 0 : authUser.preferredUsername) != null ? _c : authUser == null ? void 0 : authUser.nickname,
|
|
25123
|
+
email: authUser == null ? void 0 : authUser.email,
|
|
25124
|
+
avatarUrl: resolvedProfileAvatarUrl,
|
|
25125
|
+
roleLabel: authUser == null ? void 0 : authUser.jobTitle,
|
|
25126
|
+
status: presenceStatus,
|
|
25127
|
+
onStatusChange: onPresenceStatusChange,
|
|
25128
|
+
chatUsers,
|
|
25129
|
+
chatMessages,
|
|
25130
|
+
chatReactions,
|
|
25131
|
+
chatMessageLogs,
|
|
25132
|
+
currentChatUserId: effectiveCurrentUserId,
|
|
25133
|
+
chatUnreadCount,
|
|
25134
|
+
chatUnreadByUser,
|
|
25135
|
+
isChatSuperAdmin,
|
|
25136
|
+
isChatLoading,
|
|
25137
|
+
isChatSending,
|
|
25138
|
+
chatError,
|
|
25139
|
+
onChatSendMessage: handleChatSendMessage,
|
|
25140
|
+
onChatMarkConversationRead: handleChatMarkConversationRead,
|
|
25141
|
+
onChatToggleReaction: handleChatToggleReaction,
|
|
25142
|
+
onChatEditMessage: handleChatEditMessage,
|
|
25143
|
+
onChatDeleteMessage: handleChatDeleteMessage,
|
|
25144
|
+
onChatViewMessageData: handleChatViewMessageData,
|
|
25145
|
+
onChatOpenUserProfile: handleChatOpenUserProfile,
|
|
25146
|
+
onChatSendEmail: handleChatSendEmail,
|
|
25147
|
+
onChatAddToAgenda: handleChatAddToAgenda,
|
|
25148
|
+
onLogin: handleCtaClick,
|
|
25149
|
+
onLogout: handleLogoutClick,
|
|
25150
|
+
onOpenAccount: handleOpenAccounts,
|
|
25151
|
+
onOpenProfile: handleOpenAccountsProfile,
|
|
25152
|
+
onOpenBilling: handleOpenAccountsBilling,
|
|
25153
|
+
onOpenTasks: handleOpenMcTasks,
|
|
25154
|
+
onProfileAvatarChange: handleProfileAvatarChange,
|
|
25155
|
+
language: accountsLanguage,
|
|
25156
|
+
onLanguageChange: handleLanguageChange,
|
|
25157
|
+
recentActivity: accountsRecentActivity,
|
|
25158
|
+
isRecentActivityLoading: isAccountsActivityLoading,
|
|
25159
|
+
telescupBaseUrl: resolvedTelescupBaseUrl,
|
|
25160
|
+
getTelescupAccessToken,
|
|
25161
|
+
appVersion
|
|
25162
|
+
}
|
|
25163
|
+
)
|
|
25164
|
+
] })
|
|
24695
25165
|
}
|
|
24696
25166
|
) });
|
|
24697
25167
|
};
|
|
@@ -24699,51 +25169,9 @@ var MainNavbar = ({
|
|
|
24699
25169
|
// src/components/layout/sidebar.tsx
|
|
24700
25170
|
var import_framer_motion = require("framer-motion");
|
|
24701
25171
|
var import_lucide_react10 = require("lucide-react");
|
|
24702
|
-
var
|
|
25172
|
+
var import_react19 = require("react");
|
|
24703
25173
|
var import_react_router_dom = require("react-router-dom");
|
|
24704
25174
|
|
|
24705
|
-
// src/components/layout/DsNavbarLogo.tsx
|
|
24706
|
-
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
24707
|
-
var DsNavbarLogo = () => {
|
|
24708
|
-
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex items-center gap-[15px]", children: [
|
|
24709
|
-
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
24710
|
-
TelescupImage,
|
|
24711
|
-
{
|
|
24712
|
-
apiId: "be574751-cf1b-499a-8473-360b4115b447",
|
|
24713
|
-
imageWidth: 40,
|
|
24714
|
-
imageHeight: 40,
|
|
24715
|
-
alt: "Design System Cupcode",
|
|
24716
|
-
loading: "eager",
|
|
24717
|
-
className: "h-10 w-auto"
|
|
24718
|
-
}
|
|
24719
|
-
),
|
|
24720
|
-
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
24721
|
-
TelescupImage,
|
|
24722
|
-
{
|
|
24723
|
-
apiId: "3b913721-2eda-48fd-8d76-1a53055a337f",
|
|
24724
|
-
imageWidth: 120,
|
|
24725
|
-
imageHeight: 32,
|
|
24726
|
-
alt: "Cupcode",
|
|
24727
|
-
loading: "eager",
|
|
24728
|
-
className: "h-8 w-auto"
|
|
24729
|
-
}
|
|
24730
|
-
)
|
|
24731
|
-
] });
|
|
24732
|
-
};
|
|
24733
|
-
var DsNavbarCompactLogo = () => {
|
|
24734
|
-
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
24735
|
-
TelescupImage,
|
|
24736
|
-
{
|
|
24737
|
-
apiId: "be574751-cf1b-499a-8473-360b4115b447",
|
|
24738
|
-
imageWidth: 32,
|
|
24739
|
-
imageHeight: 32,
|
|
24740
|
-
alt: "Cupcode",
|
|
24741
|
-
loading: "eager",
|
|
24742
|
-
className: "h-8 w-8 rounded-lg object-contain"
|
|
24743
|
-
}
|
|
24744
|
-
);
|
|
24745
|
-
};
|
|
24746
|
-
|
|
24747
25175
|
// src/components/layout/sidebar-groups.tsx
|
|
24748
25176
|
var toStableId = (value) => value.toLowerCase().normalize("NFD").replace(/\p{Diacritic}+/gu, "").replace(/[^a-z0-9]+/g, "-").replace(/(^-|-$)+/g, "");
|
|
24749
25177
|
var getGroupMetadata = (item) => {
|
|
@@ -24794,20 +25222,22 @@ var findGroupByRoute = (groups, pathname) => {
|
|
|
24794
25222
|
return (_b7 = (_a78 = groups.find((group) => group.items.some((item) => item.route === pathname))) == null ? void 0 : _a78.label) != null ? _b7 : null;
|
|
24795
25223
|
};
|
|
24796
25224
|
var IconFallback = () => /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_lucide_react10.Circle, { className: "h-3 w-3 opacity-80", "aria-hidden": "true" });
|
|
25225
|
+
var DEFAULT_EXPANDED_LOGO_SLOT = /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "h-10 w-[175px] shrink-0", "aria-hidden": "true" });
|
|
25226
|
+
var DEFAULT_COLLAPSED_LOGO_SLOT = /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "h-8 w-8 shrink-0 rounded-lg", "aria-hidden": "true" });
|
|
24797
25227
|
var IconSlot = ({ icon, className }) => /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: cn("inline-flex items-center justify-center [&>svg]:h-4 [&>svg]:w-4", className), children: icon != null ? icon : /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(IconFallback, {}) });
|
|
24798
25228
|
var AppSidebar = ({ isCollapsed, onToggle, groups, logo, collapsedLogo }) => {
|
|
24799
25229
|
const location = (0, import_react_router_dom.useLocation)();
|
|
24800
|
-
const navScrollRef = (0,
|
|
24801
|
-
const scrollTopRef = (0,
|
|
24802
|
-
const [searchQuery, setSearchQuery] = (0,
|
|
24803
|
-
const [openGroup, setOpenGroup] = (0,
|
|
25230
|
+
const navScrollRef = (0, import_react19.useRef)(null);
|
|
25231
|
+
const scrollTopRef = (0, import_react19.useRef)(0);
|
|
25232
|
+
const [searchQuery, setSearchQuery] = (0, import_react19.useState)("");
|
|
25233
|
+
const [openGroup, setOpenGroup] = (0, import_react19.useState)(null);
|
|
24804
25234
|
const normalizedQuery = searchQuery.trim().toLowerCase();
|
|
24805
|
-
const resolvedGroups = (0,
|
|
25235
|
+
const resolvedGroups = (0, import_react19.useMemo)(() => {
|
|
24806
25236
|
if (groups && groups.length > 0) return groups;
|
|
24807
25237
|
return defaultSidebarGroups;
|
|
24808
25238
|
}, [groups]);
|
|
24809
|
-
const activeGroup = (0,
|
|
24810
|
-
const filteredGroups = (0,
|
|
25239
|
+
const activeGroup = (0, import_react19.useMemo)(() => findGroupByRoute(resolvedGroups, location.pathname), [location.pathname, resolvedGroups]);
|
|
25240
|
+
const filteredGroups = (0, import_react19.useMemo)(() => {
|
|
24811
25241
|
if (!normalizedQuery) return resolvedGroups;
|
|
24812
25242
|
return resolvedGroups.map((group) => ({
|
|
24813
25243
|
...group,
|
|
@@ -24815,27 +25245,27 @@ var AppSidebar = ({ isCollapsed, onToggle, groups, logo, collapsedLogo }) => {
|
|
|
24815
25245
|
})).filter((group) => group.items.length > 0);
|
|
24816
25246
|
}, [normalizedQuery, resolvedGroups]);
|
|
24817
25247
|
const visibleGroups = isCollapsed ? resolvedGroups : filteredGroups;
|
|
24818
|
-
const resolvedExpandedLogo = logo != null ? logo :
|
|
24819
|
-
const resolvedCollapsedLogo = collapsedLogo != null ? collapsedLogo :
|
|
24820
|
-
(0,
|
|
25248
|
+
const resolvedExpandedLogo = logo != null ? logo : DEFAULT_EXPANDED_LOGO_SLOT;
|
|
25249
|
+
const resolvedCollapsedLogo = collapsedLogo != null ? collapsedLogo : DEFAULT_COLLAPSED_LOGO_SLOT;
|
|
25250
|
+
(0, import_react19.useEffect)(() => {
|
|
24821
25251
|
if (!openGroup && resolvedGroups.length > 0) {
|
|
24822
25252
|
setOpenGroup(resolvedGroups[0].label);
|
|
24823
25253
|
}
|
|
24824
25254
|
}, [openGroup, resolvedGroups]);
|
|
24825
|
-
(0,
|
|
25255
|
+
(0, import_react19.useEffect)(() => {
|
|
24826
25256
|
const groupForRoute = findGroupByRoute(resolvedGroups, location.pathname);
|
|
24827
25257
|
if (groupForRoute) {
|
|
24828
25258
|
setOpenGroup(groupForRoute);
|
|
24829
25259
|
}
|
|
24830
25260
|
}, [location.pathname, resolvedGroups]);
|
|
24831
|
-
(0,
|
|
25261
|
+
(0, import_react19.useEffect)(() => {
|
|
24832
25262
|
if (isCollapsed || visibleGroups.length === 0) return;
|
|
24833
25263
|
const hasOpenGroup = openGroup ? visibleGroups.some((group) => group.label === openGroup) : false;
|
|
24834
25264
|
if (!hasOpenGroup) {
|
|
24835
25265
|
setOpenGroup(visibleGroups[0].label);
|
|
24836
25266
|
}
|
|
24837
25267
|
}, [isCollapsed, openGroup, visibleGroups]);
|
|
24838
|
-
(0,
|
|
25268
|
+
(0, import_react19.useEffect)(() => {
|
|
24839
25269
|
const element = navScrollRef.current;
|
|
24840
25270
|
if (!element) return void 0;
|
|
24841
25271
|
const handleScroll = () => {
|
|
@@ -24846,7 +25276,7 @@ var AppSidebar = ({ isCollapsed, onToggle, groups, logo, collapsedLogo }) => {
|
|
|
24846
25276
|
element.removeEventListener("scroll", handleScroll);
|
|
24847
25277
|
};
|
|
24848
25278
|
}, []);
|
|
24849
|
-
(0,
|
|
25279
|
+
(0, import_react19.useEffect)(() => {
|
|
24850
25280
|
const element = navScrollRef.current;
|
|
24851
25281
|
if (!element) return void 0;
|
|
24852
25282
|
const frame = window.requestAnimationFrame(() => {
|
|
@@ -24980,11 +25410,11 @@ var MainLayout = ({
|
|
|
24980
25410
|
sidebarLogo,
|
|
24981
25411
|
sidebarCollapsedLogo
|
|
24982
25412
|
}) => {
|
|
24983
|
-
const [sidebarCollapsed, setSidebarCollapsed] = (0,
|
|
24984
|
-
const toggleSidebar = (0,
|
|
25413
|
+
const [sidebarCollapsed, setSidebarCollapsed] = (0, import_react20.useState)(getInitialSidebarCollapsed);
|
|
25414
|
+
const toggleSidebar = (0, import_react20.useCallback)(() => {
|
|
24985
25415
|
setSidebarCollapsed((current) => !current);
|
|
24986
25416
|
}, []);
|
|
24987
|
-
(0,
|
|
25417
|
+
(0, import_react20.useEffect)(() => {
|
|
24988
25418
|
if (typeof window === "undefined") return;
|
|
24989
25419
|
try {
|
|
24990
25420
|
window.localStorage.setItem(SIDEBAR_COLLAPSED_STORAGE_KEY, String(sidebarCollapsed));
|
|
@@ -24993,7 +25423,7 @@ var MainLayout = ({
|
|
|
24993
25423
|
}, [sidebarCollapsed]);
|
|
24994
25424
|
const contentMarginLeft = sidebarCollapsed ? SIDEBAR_COLLAPSED_WIDTH : SIDEBAR_EXPANDED_WIDTH;
|
|
24995
25425
|
const navbarOffsetClassName = sidebarCollapsed ? "left-[84px] md:left-[88px] right-3 md:right-4" : "left-[328px] md:left-[332px] right-3 md:right-4";
|
|
24996
|
-
const mergedNavbarClassName = (0,
|
|
25426
|
+
const mergedNavbarClassName = (0, import_react20.useMemo)(
|
|
24997
25427
|
() => cn(navbarOffsetClassName, navbarProps == null ? void 0 : navbarProps.className),
|
|
24998
25428
|
[navbarOffsetClassName, navbarProps == null ? void 0 : navbarProps.className]
|
|
24999
25429
|
);
|
|
@@ -25058,10 +25488,10 @@ var MainLayout = ({
|
|
|
25058
25488
|
};
|
|
25059
25489
|
|
|
25060
25490
|
// src/components/cupcode/ErrorBoundary.tsx
|
|
25061
|
-
var
|
|
25491
|
+
var import_react21 = __toESM(require("react"), 1);
|
|
25062
25492
|
var import_lucide_react12 = require("lucide-react");
|
|
25063
25493
|
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
25064
|
-
var ErrorBoundary = class extends
|
|
25494
|
+
var ErrorBoundary = class extends import_react21.default.Component {
|
|
25065
25495
|
constructor(props) {
|
|
25066
25496
|
super(props);
|
|
25067
25497
|
__publicField(this, "handleReset", () => {
|
|
@@ -25099,9 +25529,9 @@ var ErrorBoundary = class extends import_react19.default.Component {
|
|
|
25099
25529
|
};
|
|
25100
25530
|
|
|
25101
25531
|
// src/components/cupcode/EyebrowCupcode.tsx
|
|
25102
|
-
var
|
|
25532
|
+
var import_react22 = require("react");
|
|
25103
25533
|
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
25104
|
-
var Eyebrow = (0,
|
|
25534
|
+
var Eyebrow = (0, import_react22.forwardRef)(
|
|
25105
25535
|
({ variant = "galaxy", glow = false, className, children, ...props }, ref) => {
|
|
25106
25536
|
const baseClasses = cn(
|
|
25107
25537
|
"inline-flex items-center gap-2",
|
|
@@ -25375,15 +25805,15 @@ var ModalDescription = React26.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
25375
25805
|
ModalDescription.displayName = DialogPrimitive3.Description.displayName;
|
|
25376
25806
|
|
|
25377
25807
|
// src/components/cupcode/ParticleSystem.tsx
|
|
25378
|
-
var
|
|
25808
|
+
var import_react23 = require("react");
|
|
25379
25809
|
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
25380
25810
|
function ParticleSystem({
|
|
25381
25811
|
count: count2 = 50,
|
|
25382
25812
|
variant = "stars",
|
|
25383
25813
|
className
|
|
25384
25814
|
}) {
|
|
25385
|
-
const canvasRef = (0,
|
|
25386
|
-
(0,
|
|
25815
|
+
const canvasRef = (0, import_react23.useRef)(null);
|
|
25816
|
+
(0, import_react23.useEffect)(() => {
|
|
25387
25817
|
const canvas = canvasRef.current;
|
|
25388
25818
|
if (!canvas) return;
|
|
25389
25819
|
const ctx = canvas.getContext("2d");
|
|
@@ -25896,19 +26326,31 @@ function applyThemeClass(theme) {
|
|
|
25896
26326
|
const root = document.documentElement;
|
|
25897
26327
|
root.classList.toggle("dark", theme === "dark");
|
|
25898
26328
|
root.classList.toggle("light", theme === "light");
|
|
26329
|
+
root.dataset.theme = theme;
|
|
26330
|
+
root.style.colorScheme = theme;
|
|
26331
|
+
}
|
|
26332
|
+
function readThemeFromRoot() {
|
|
26333
|
+
var _a78;
|
|
26334
|
+
if (typeof document === "undefined") return null;
|
|
26335
|
+
const root = document.documentElement;
|
|
26336
|
+
const datasetTheme = (_a78 = root.dataset.theme) != null ? _a78 : null;
|
|
26337
|
+
if (isThemeMode(datasetTheme)) return datasetTheme;
|
|
26338
|
+
if (root.classList.contains("dark")) return "dark";
|
|
26339
|
+
if (root.classList.contains("light")) return "light";
|
|
26340
|
+
return null;
|
|
25899
26341
|
}
|
|
25900
26342
|
function resolveTheme(defaultTheme) {
|
|
26343
|
+
const rootTheme = readThemeFromRoot();
|
|
26344
|
+
if (rootTheme) return rootTheme;
|
|
25901
26345
|
const storedTheme = readStoredTheme();
|
|
25902
26346
|
if (storedTheme) return storedTheme;
|
|
25903
26347
|
if (typeof document === "undefined") return defaultTheme;
|
|
25904
|
-
if (document.documentElement.classList.contains("dark")) return "dark";
|
|
25905
|
-
if (document.documentElement.classList.contains("light")) return "light";
|
|
25906
26348
|
if (typeof window !== "undefined" && window.matchMedia("(prefers-color-scheme: dark)").matches) {
|
|
25907
26349
|
return "dark";
|
|
25908
26350
|
}
|
|
25909
26351
|
return defaultTheme;
|
|
25910
26352
|
}
|
|
25911
|
-
var
|
|
26353
|
+
var ThemeToggle2 = ({
|
|
25912
26354
|
className,
|
|
25913
26355
|
theme,
|
|
25914
26356
|
defaultTheme = "light",
|
|
@@ -25936,7 +26378,7 @@ var ThemeToggle = ({
|
|
|
25936
26378
|
const resolvedTheme = resolveTheme(defaultTheme);
|
|
25937
26379
|
setInternalTheme((currentTheme) => currentTheme === resolvedTheme ? currentTheme : resolvedTheme);
|
|
25938
26380
|
});
|
|
25939
|
-
observer.observe(document.documentElement, { attributes: true, attributeFilter: ["class"] });
|
|
26381
|
+
observer.observe(document.documentElement, { attributes: true, attributeFilter: ["class", "data-theme"] });
|
|
25940
26382
|
return () => observer.disconnect();
|
|
25941
26383
|
}, [defaultTheme, isControlled]);
|
|
25942
26384
|
if (!mounted) {
|
|
@@ -25952,6 +26394,7 @@ var ThemeToggle = ({
|
|
|
25952
26394
|
return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
|
|
25953
26395
|
"button",
|
|
25954
26396
|
{
|
|
26397
|
+
type: "button",
|
|
25955
26398
|
onClick: handleToggle,
|
|
25956
26399
|
className: cn(
|
|
25957
26400
|
"relative inline-flex items-center justify-center w-10 h-10",
|
|
@@ -25973,12 +26416,175 @@ var ThemeToggle = ({
|
|
|
25973
26416
|
);
|
|
25974
26417
|
};
|
|
25975
26418
|
|
|
25976
|
-
// src/components/
|
|
26419
|
+
// src/components/theme-provider.tsx
|
|
26420
|
+
var import_react24 = require("react");
|
|
26421
|
+
var import_react_dom = require("react-dom");
|
|
25977
26422
|
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
26423
|
+
var STORAGE_KEY2 = "cupcode-theme";
|
|
26424
|
+
var LEGACY_STORAGE_KEY = "theme";
|
|
26425
|
+
function getPreferredTheme() {
|
|
26426
|
+
if (typeof window === "undefined") {
|
|
26427
|
+
return "light";
|
|
26428
|
+
}
|
|
26429
|
+
return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
|
|
26430
|
+
}
|
|
26431
|
+
function getStoredTheme() {
|
|
26432
|
+
var _a78;
|
|
26433
|
+
if (typeof window === "undefined") {
|
|
26434
|
+
return null;
|
|
26435
|
+
}
|
|
26436
|
+
const storedTheme = (_a78 = window.localStorage.getItem(STORAGE_KEY2)) != null ? _a78 : window.localStorage.getItem(LEGACY_STORAGE_KEY);
|
|
26437
|
+
return storedTheme === "light" || storedTheme === "dark" ? storedTheme : null;
|
|
26438
|
+
}
|
|
26439
|
+
function getThemeFromRoot() {
|
|
26440
|
+
if (typeof document === "undefined") {
|
|
26441
|
+
return null;
|
|
26442
|
+
}
|
|
26443
|
+
const { documentElement: root } = document;
|
|
26444
|
+
const datasetTheme = root.dataset.theme;
|
|
26445
|
+
if (datasetTheme === "light" || datasetTheme === "dark") {
|
|
26446
|
+
return datasetTheme;
|
|
26447
|
+
}
|
|
26448
|
+
if (root.classList.contains("dark")) {
|
|
26449
|
+
return "dark";
|
|
26450
|
+
}
|
|
26451
|
+
if (root.classList.contains("light")) {
|
|
26452
|
+
return "light";
|
|
26453
|
+
}
|
|
26454
|
+
return null;
|
|
26455
|
+
}
|
|
26456
|
+
function resolveTheme2() {
|
|
26457
|
+
var _a78, _b7;
|
|
26458
|
+
return (_b7 = (_a78 = getThemeFromRoot()) != null ? _a78 : getStoredTheme()) != null ? _b7 : getPreferredTheme();
|
|
26459
|
+
}
|
|
26460
|
+
function applyThemeToRoot(theme) {
|
|
26461
|
+
const root = document.documentElement;
|
|
26462
|
+
root.classList.toggle("dark", theme === "dark");
|
|
26463
|
+
root.classList.toggle("light", theme === "light");
|
|
26464
|
+
root.dataset.theme = theme;
|
|
26465
|
+
root.style.colorScheme = theme;
|
|
26466
|
+
}
|
|
26467
|
+
function persistTheme(theme) {
|
|
26468
|
+
window.localStorage.setItem(STORAGE_KEY2, theme);
|
|
26469
|
+
window.localStorage.setItem(LEGACY_STORAGE_KEY, theme);
|
|
26470
|
+
}
|
|
26471
|
+
function ThemeProvider({ children }) {
|
|
26472
|
+
const [theme, setThemeState] = (0, import_react24.useState)(() => resolveTheme2());
|
|
26473
|
+
const [mounted, setMounted] = (0, import_react24.useState)(false);
|
|
26474
|
+
(0, import_react24.useEffect)(() => {
|
|
26475
|
+
const initialTheme = resolveTheme2();
|
|
26476
|
+
setThemeState((currentTheme) => currentTheme === initialTheme ? currentTheme : initialTheme);
|
|
26477
|
+
applyThemeToRoot(initialTheme);
|
|
26478
|
+
setMounted(true);
|
|
26479
|
+
}, []);
|
|
26480
|
+
(0, import_react24.useEffect)(() => {
|
|
26481
|
+
if (!mounted) {
|
|
26482
|
+
return;
|
|
26483
|
+
}
|
|
26484
|
+
persistTheme(theme);
|
|
26485
|
+
applyThemeToRoot(theme);
|
|
26486
|
+
}, [mounted, theme]);
|
|
26487
|
+
(0, import_react24.useEffect)(() => {
|
|
26488
|
+
if (typeof window === "undefined") {
|
|
26489
|
+
return;
|
|
26490
|
+
}
|
|
26491
|
+
const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
|
|
26492
|
+
const handleChange = () => {
|
|
26493
|
+
if (getStoredTheme()) {
|
|
26494
|
+
return;
|
|
26495
|
+
}
|
|
26496
|
+
const nextTheme = mediaQuery.matches ? "dark" : "light";
|
|
26497
|
+
setThemeState(nextTheme);
|
|
26498
|
+
applyThemeToRoot(nextTheme);
|
|
26499
|
+
};
|
|
26500
|
+
mediaQuery.addEventListener("change", handleChange);
|
|
26501
|
+
return () => mediaQuery.removeEventListener("change", handleChange);
|
|
26502
|
+
}, []);
|
|
26503
|
+
(0, import_react24.useEffect)(() => {
|
|
26504
|
+
if (typeof document === "undefined") {
|
|
26505
|
+
return;
|
|
26506
|
+
}
|
|
26507
|
+
const root = document.documentElement;
|
|
26508
|
+
const observer = new MutationObserver(() => {
|
|
26509
|
+
const rootTheme = getThemeFromRoot();
|
|
26510
|
+
if (!rootTheme) {
|
|
26511
|
+
return;
|
|
26512
|
+
}
|
|
26513
|
+
setThemeState((currentTheme) => currentTheme === rootTheme ? currentTheme : rootTheme);
|
|
26514
|
+
});
|
|
26515
|
+
observer.observe(root, {
|
|
26516
|
+
attributes: true,
|
|
26517
|
+
attributeFilter: ["class", "data-theme"]
|
|
26518
|
+
});
|
|
26519
|
+
return () => observer.disconnect();
|
|
26520
|
+
}, []);
|
|
26521
|
+
const setTheme = (0, import_react24.useCallback)((nextTheme) => {
|
|
26522
|
+
setThemeState(nextTheme);
|
|
26523
|
+
}, []);
|
|
26524
|
+
const toggleTheme = (0, import_react24.useCallback)((coords) => {
|
|
26525
|
+
var _a78;
|
|
26526
|
+
const documentWithTransition = document;
|
|
26527
|
+
const prefersReducedMotion = window.matchMedia(
|
|
26528
|
+
"(prefers-reduced-motion: reduce)"
|
|
26529
|
+
).matches;
|
|
26530
|
+
const supportsTransition = typeof documentWithTransition.startViewTransition === "function";
|
|
26531
|
+
const flipTheme = () => {
|
|
26532
|
+
setThemeState(
|
|
26533
|
+
(currentTheme) => currentTheme === "light" ? "dark" : "light"
|
|
26534
|
+
);
|
|
26535
|
+
};
|
|
26536
|
+
if (coords) {
|
|
26537
|
+
document.documentElement.style.setProperty("--theme-x", `${coords.x}px`);
|
|
26538
|
+
document.documentElement.style.setProperty("--theme-y", `${coords.y}px`);
|
|
26539
|
+
}
|
|
26540
|
+
if (!supportsTransition || prefersReducedMotion) {
|
|
26541
|
+
flipTheme();
|
|
26542
|
+
return;
|
|
26543
|
+
}
|
|
26544
|
+
(_a78 = documentWithTransition.startViewTransition) == null ? void 0 : _a78.call(documentWithTransition, () => {
|
|
26545
|
+
(0, import_react_dom.flushSync)(() => {
|
|
26546
|
+
flipTheme();
|
|
26547
|
+
});
|
|
26548
|
+
});
|
|
26549
|
+
}, []);
|
|
26550
|
+
const value = (0, import_react24.useMemo)(
|
|
26551
|
+
() => ({
|
|
26552
|
+
theme,
|
|
26553
|
+
setTheme,
|
|
26554
|
+
toggleTheme
|
|
26555
|
+
}),
|
|
26556
|
+
[theme, setTheme, toggleTheme]
|
|
26557
|
+
);
|
|
26558
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(ThemeContext.Provider, { value, children });
|
|
26559
|
+
}
|
|
26560
|
+
function ThemeScript() {
|
|
26561
|
+
const script = `
|
|
26562
|
+
(() => {
|
|
26563
|
+
const storageKey = "${STORAGE_KEY2}";
|
|
26564
|
+
const legacyStorageKey = "${LEGACY_STORAGE_KEY}";
|
|
26565
|
+
const storedTheme = localStorage.getItem(storageKey) ?? localStorage.getItem(legacyStorageKey);
|
|
26566
|
+
const theme =
|
|
26567
|
+
storedTheme === "light" || storedTheme === "dark"
|
|
26568
|
+
? storedTheme
|
|
26569
|
+
: window.matchMedia("(prefers-color-scheme: dark)").matches
|
|
26570
|
+
? "dark"
|
|
26571
|
+
: "light";
|
|
26572
|
+
const root = document.documentElement;
|
|
26573
|
+
root.classList.toggle("dark", theme === "dark");
|
|
26574
|
+
root.classList.toggle("light", theme === "light");
|
|
26575
|
+
root.dataset.theme = theme;
|
|
26576
|
+
root.style.colorScheme = theme;
|
|
26577
|
+
})();
|
|
26578
|
+
`;
|
|
26579
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("script", { dangerouslySetInnerHTML: { __html: script } });
|
|
26580
|
+
}
|
|
26581
|
+
|
|
26582
|
+
// src/components/cupcode/TimelineCupcode.tsx
|
|
26583
|
+
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
25978
26584
|
function Timeline({ items, variant = "vertical", className }) {
|
|
25979
26585
|
if (variant === "horizontal") {
|
|
25980
|
-
return /* @__PURE__ */ (0,
|
|
25981
|
-
/* @__PURE__ */ (0,
|
|
26586
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: cn("flex items-start gap-4 overflow-x-auto pb-4", className), children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "flex flex-col items-center min-w-[200px]", children: [
|
|
26587
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
25982
26588
|
"div",
|
|
25983
26589
|
{
|
|
25984
26590
|
className: cn(
|
|
@@ -25986,27 +26592,27 @@ function Timeline({ items, variant = "vertical", className }) {
|
|
|
25986
26592
|
"transition-all duration-300",
|
|
25987
26593
|
item.active ? "cc-gradient-galaxy text-white elevation-3 scale-110" : "bg-muted text-muted-foreground"
|
|
25988
26594
|
),
|
|
25989
|
-
children: item.icon || /* @__PURE__ */ (0,
|
|
26595
|
+
children: item.icon || /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "text-sm font-bold", children: index + 1 })
|
|
25990
26596
|
}
|
|
25991
26597
|
),
|
|
25992
|
-
index < items.length - 1 && /* @__PURE__ */ (0,
|
|
26598
|
+
index < items.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: cn(
|
|
25993
26599
|
"h-1 w-full mb-3",
|
|
25994
26600
|
item.active ? "bg-cupcode-purple" : "bg-muted"
|
|
25995
26601
|
) }),
|
|
25996
|
-
/* @__PURE__ */ (0,
|
|
25997
|
-
/* @__PURE__ */ (0,
|
|
26602
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "text-center", children: [
|
|
26603
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("h4", { className: cn(
|
|
25998
26604
|
"font-display font-semibold mb-1",
|
|
25999
26605
|
item.active ? "text-cupcode-purple" : "text-foreground"
|
|
26000
26606
|
), children: item.title }),
|
|
26001
|
-
item.description && /* @__PURE__ */ (0,
|
|
26002
|
-
item.date && /* @__PURE__ */ (0,
|
|
26607
|
+
item.description && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("p", { className: "text-sm text-muted-foreground", children: item.description }),
|
|
26608
|
+
item.date && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("p", { className: "text-xs text-muted-foreground mt-1", children: item.date })
|
|
26003
26609
|
] })
|
|
26004
26610
|
] }, item.id)) });
|
|
26005
26611
|
}
|
|
26006
|
-
return /* @__PURE__ */ (0,
|
|
26007
|
-
/* @__PURE__ */ (0,
|
|
26008
|
-
items.map((item, index) => /* @__PURE__ */ (0,
|
|
26009
|
-
/* @__PURE__ */ (0,
|
|
26612
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: cn("relative space-6", className), children: [
|
|
26613
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "absolute left-6 top-0 bottom-0 w-0.5 bg-muted" }),
|
|
26614
|
+
items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "relative flex gap-6 pb-8 last:pb-0", children: [
|
|
26615
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
26010
26616
|
"div",
|
|
26011
26617
|
{
|
|
26012
26618
|
className: cn(
|
|
@@ -26014,16 +26620,16 @@ function Timeline({ items, variant = "vertical", className }) {
|
|
|
26014
26620
|
"transition-all duration-300",
|
|
26015
26621
|
item.active ? "cc-gradient-galaxy text-white elevation-3" : "bg-muted text-muted-foreground"
|
|
26016
26622
|
),
|
|
26017
|
-
children: item.icon || /* @__PURE__ */ (0,
|
|
26623
|
+
children: item.icon || /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "text-sm font-bold", children: index + 1 })
|
|
26018
26624
|
}
|
|
26019
26625
|
),
|
|
26020
|
-
/* @__PURE__ */ (0,
|
|
26021
|
-
/* @__PURE__ */ (0,
|
|
26626
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "flex-1 pt-1", children: [
|
|
26627
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("h4", { className: cn(
|
|
26022
26628
|
"font-display font-semibold mb-1",
|
|
26023
26629
|
item.active ? "text-cupcode-purple" : "text-foreground"
|
|
26024
26630
|
), children: item.title }),
|
|
26025
|
-
item.description && /* @__PURE__ */ (0,
|
|
26026
|
-
item.date && /* @__PURE__ */ (0,
|
|
26631
|
+
item.description && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("p", { className: "text-sm text-muted-foreground mb-2", children: item.description }),
|
|
26632
|
+
item.date && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("p", { className: "text-xs text-muted-foreground", children: item.date })
|
|
26027
26633
|
] })
|
|
26028
26634
|
] }, item.id))
|
|
26029
26635
|
] });
|
|
@@ -26031,7 +26637,7 @@ function Timeline({ items, variant = "vertical", className }) {
|
|
|
26031
26637
|
|
|
26032
26638
|
// src/components/cupcode/ToastCupcode.tsx
|
|
26033
26639
|
var import_lucide_react17 = require("lucide-react");
|
|
26034
|
-
var
|
|
26640
|
+
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
26035
26641
|
var variantStyles2 = {
|
|
26036
26642
|
success: {
|
|
26037
26643
|
gradient: "from-success/20 to-success/5",
|
|
@@ -26066,7 +26672,7 @@ var ToastCupcode = ({
|
|
|
26066
26672
|
}) => {
|
|
26067
26673
|
const style = variantStyles2[variant];
|
|
26068
26674
|
const Icon3 = style.icon;
|
|
26069
|
-
return /* @__PURE__ */ (0,
|
|
26675
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
26070
26676
|
"div",
|
|
26071
26677
|
{
|
|
26072
26678
|
className: cn(
|
|
@@ -26078,18 +26684,18 @@ var ToastCupcode = ({
|
|
|
26078
26684
|
"min-w-[300px] max-w-[420px]",
|
|
26079
26685
|
"animate-slide-up"
|
|
26080
26686
|
),
|
|
26081
|
-
children: /* @__PURE__ */ (0,
|
|
26082
|
-
/* @__PURE__ */ (0,
|
|
26083
|
-
/* @__PURE__ */ (0,
|
|
26084
|
-
/* @__PURE__ */ (0,
|
|
26085
|
-
description && /* @__PURE__ */ (0,
|
|
26687
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "flex items-start gap-3", children: [
|
|
26688
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Icon3, { className: cn("h-5 w-5 shrink-0 mt-0.5", style.iconColor) }),
|
|
26689
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "flex-1 space-y-1", children: [
|
|
26690
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)("p", { className: "text-sm font-semibold text-cupcode-ink", children: title }),
|
|
26691
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("p", { className: "text-xs text-cupcode-ink/70", children: description })
|
|
26086
26692
|
] }),
|
|
26087
|
-
onClose && /* @__PURE__ */ (0,
|
|
26693
|
+
onClose && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
26088
26694
|
"button",
|
|
26089
26695
|
{
|
|
26090
26696
|
onClick: onClose,
|
|
26091
26697
|
className: "shrink-0 rounded-md p-1 hover:bg-cupcode-ink/10 transition-colors",
|
|
26092
|
-
children: /* @__PURE__ */ (0,
|
|
26698
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_lucide_react17.X, { className: "h-4 w-4 text-cupcode-ink/50" })
|
|
26093
26699
|
}
|
|
26094
26700
|
)
|
|
26095
26701
|
] })
|
|
@@ -26098,12 +26704,12 @@ var ToastCupcode = ({
|
|
|
26098
26704
|
};
|
|
26099
26705
|
|
|
26100
26706
|
// src/components/cupcode/VideoWatchButton.tsx
|
|
26101
|
-
var
|
|
26102
|
-
var
|
|
26103
|
-
var PlayGlyph = () => /* @__PURE__ */ (0,
|
|
26104
|
-
var VideoWatchButton =
|
|
26105
|
-
({ className, label = "
|
|
26106
|
-
return /* @__PURE__ */ (0,
|
|
26707
|
+
var import_react25 = __toESM(require("react"), 1);
|
|
26708
|
+
var import_jsx_runtime61 = require("react/jsx-runtime");
|
|
26709
|
+
var PlayGlyph = () => /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("svg", { viewBox: "0 0 18 18", "aria-hidden": "true", className: "h-[18px] w-[18px]", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("path", { d: "M6 4.5L13.5 9L6 13.5V4.5Z", fill: "currentColor" }) });
|
|
26710
|
+
var VideoWatchButton = import_react25.default.forwardRef(
|
|
26711
|
+
({ className, label = "Assistir", type = "button", "aria-label": ariaLabel, ...props }, ref) => {
|
|
26712
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
|
|
26107
26713
|
"button",
|
|
26108
26714
|
{
|
|
26109
26715
|
ref,
|
|
@@ -26112,18 +26718,18 @@ var VideoWatchButton = import_react22.default.forwardRef(
|
|
|
26112
26718
|
className: cn("cc-video-watch-btn", className),
|
|
26113
26719
|
...props,
|
|
26114
26720
|
children: [
|
|
26115
|
-
/* @__PURE__ */ (0,
|
|
26116
|
-
/* @__PURE__ */ (0,
|
|
26117
|
-
/* @__PURE__ */ (0,
|
|
26118
|
-
/* @__PURE__ */ (0,
|
|
26119
|
-
/* @__PURE__ */ (0,
|
|
26120
|
-
/* @__PURE__ */ (0,
|
|
26121
|
-
/* @__PURE__ */ (0,
|
|
26122
|
-
/* @__PURE__ */ (0,
|
|
26123
|
-
/* @__PURE__ */ (0,
|
|
26721
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("span", { className: "cc-video-watch-btn__bg", children: [
|
|
26722
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "cc-video-watch-btn__icon", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(PlayGlyph, {}) }),
|
|
26723
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "cc-video-watch-btn__label", children: label }),
|
|
26724
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("span", { className: "cc-video-watch-btn__mask", "aria-hidden": "true", children: [
|
|
26725
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "cc-video-watch-btn__blob cc-video-watch-btn__blob--1" }),
|
|
26726
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "cc-video-watch-btn__blob cc-video-watch-btn__blob--2" }),
|
|
26727
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "cc-video-watch-btn__blob cc-video-watch-btn__blob--3" }),
|
|
26728
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "cc-video-watch-btn__blob cc-video-watch-btn__blob--4" }),
|
|
26729
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "cc-video-watch-btn__blob cc-video-watch-btn__blob--5" })
|
|
26124
26730
|
] })
|
|
26125
26731
|
] }),
|
|
26126
|
-
/* @__PURE__ */ (0,
|
|
26732
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "cc-video-watch-btn__glow", "aria-hidden": "true" })
|
|
26127
26733
|
]
|
|
26128
26734
|
}
|
|
26129
26735
|
);
|
|
@@ -26132,13 +26738,13 @@ var VideoWatchButton = import_react22.default.forwardRef(
|
|
|
26132
26738
|
VideoWatchButton.displayName = "VideoWatchButton";
|
|
26133
26739
|
|
|
26134
26740
|
// src/components/cupcode/TooltipCupcode.tsx
|
|
26135
|
-
var
|
|
26741
|
+
var React36 = __toESM(require("react"), 1);
|
|
26136
26742
|
var TooltipPrimitive2 = __toESM(require("@radix-ui/react-tooltip"), 1);
|
|
26137
|
-
var
|
|
26743
|
+
var import_jsx_runtime62 = require("react/jsx-runtime");
|
|
26138
26744
|
var TooltipProvider2 = TooltipPrimitive2.Provider;
|
|
26139
26745
|
var TooltipCupcode = TooltipPrimitive2.Root;
|
|
26140
26746
|
var TooltipTrigger2 = TooltipPrimitive2.Trigger;
|
|
26141
|
-
var TooltipContent2 =
|
|
26747
|
+
var TooltipContent2 = React36.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
26142
26748
|
TooltipPrimitive2.Content,
|
|
26143
26749
|
{
|
|
26144
26750
|
ref,
|
|
@@ -26159,14 +26765,14 @@ var TooltipContent2 = React35.forwardRef(({ className, sideOffset = 4, ...props
|
|
|
26159
26765
|
TooltipContent2.displayName = TooltipPrimitive2.Content.displayName;
|
|
26160
26766
|
|
|
26161
26767
|
// src/components/ui/accordion.tsx
|
|
26162
|
-
var
|
|
26768
|
+
var React37 = __toESM(require("react"), 1);
|
|
26163
26769
|
var AccordionPrimitive2 = __toESM(require("@radix-ui/react-accordion"), 1);
|
|
26164
26770
|
var import_lucide_react18 = require("lucide-react");
|
|
26165
|
-
var
|
|
26771
|
+
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
26166
26772
|
var Accordion = AccordionPrimitive2.Root;
|
|
26167
|
-
var AccordionItem2 =
|
|
26773
|
+
var AccordionItem2 = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(AccordionPrimitive2.Item, { ref, className: cn("border-b", className), ...props }));
|
|
26168
26774
|
AccordionItem2.displayName = "AccordionItem";
|
|
26169
|
-
var AccordionTrigger2 =
|
|
26775
|
+
var AccordionTrigger2 = React37.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(AccordionPrimitive2.Header, { className: "flex", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
|
|
26170
26776
|
AccordionPrimitive2.Trigger,
|
|
26171
26777
|
{
|
|
26172
26778
|
ref,
|
|
@@ -26177,26 +26783,26 @@ var AccordionTrigger2 = React36.forwardRef(({ className, children, ...props }, r
|
|
|
26177
26783
|
...props,
|
|
26178
26784
|
children: [
|
|
26179
26785
|
children,
|
|
26180
|
-
/* @__PURE__ */ (0,
|
|
26786
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_lucide_react18.ChevronDown, { className: "h-4 w-4 shrink-0 transition-transform duration-200" })
|
|
26181
26787
|
]
|
|
26182
26788
|
}
|
|
26183
26789
|
) }));
|
|
26184
26790
|
AccordionTrigger2.displayName = AccordionPrimitive2.Trigger.displayName;
|
|
26185
|
-
var AccordionContent2 =
|
|
26791
|
+
var AccordionContent2 = React37.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
26186
26792
|
AccordionPrimitive2.Content,
|
|
26187
26793
|
{
|
|
26188
26794
|
ref,
|
|
26189
26795
|
className: "overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
|
|
26190
26796
|
...props,
|
|
26191
|
-
children: /* @__PURE__ */ (0,
|
|
26797
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: cn("pb-4 pt-0", className), children })
|
|
26192
26798
|
}
|
|
26193
26799
|
));
|
|
26194
26800
|
AccordionContent2.displayName = AccordionPrimitive2.Content.displayName;
|
|
26195
26801
|
|
|
26196
26802
|
// src/components/ui/alert.tsx
|
|
26197
|
-
var
|
|
26803
|
+
var React38 = __toESM(require("react"), 1);
|
|
26198
26804
|
var import_class_variance_authority3 = require("class-variance-authority");
|
|
26199
|
-
var
|
|
26805
|
+
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
26200
26806
|
var alertVariants = (0, import_class_variance_authority3.cva)(
|
|
26201
26807
|
"relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground",
|
|
26202
26808
|
{
|
|
@@ -26211,14 +26817,14 @@ var alertVariants = (0, import_class_variance_authority3.cva)(
|
|
|
26211
26817
|
}
|
|
26212
26818
|
}
|
|
26213
26819
|
);
|
|
26214
|
-
var Alert =
|
|
26820
|
+
var Alert = React38.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { ref, role: "alert", className: cn(alertVariants({ variant }), className), ...props }));
|
|
26215
26821
|
Alert.displayName = "Alert";
|
|
26216
|
-
var AlertTitle =
|
|
26217
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
26822
|
+
var AlertTitle = React38.forwardRef(
|
|
26823
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("h5", { ref, className: cn("mb-1 font-medium leading-none tracking-tight", className), ...props })
|
|
26218
26824
|
);
|
|
26219
26825
|
AlertTitle.displayName = "AlertTitle";
|
|
26220
|
-
var AlertDescription =
|
|
26221
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
26826
|
+
var AlertDescription = React38.forwardRef(
|
|
26827
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { ref, className: cn("text-sm [&_p]:leading-relaxed", className), ...props })
|
|
26222
26828
|
);
|
|
26223
26829
|
AlertDescription.displayName = "AlertDescription";
|
|
26224
26830
|
|
|
@@ -26227,14 +26833,14 @@ var AspectRatioPrimitive = __toESM(require("@radix-ui/react-aspect-ratio"), 1);
|
|
|
26227
26833
|
var AspectRatio = AspectRatioPrimitive.Root;
|
|
26228
26834
|
|
|
26229
26835
|
// src/components/ui/breadcrumb.tsx
|
|
26230
|
-
var
|
|
26836
|
+
var React39 = __toESM(require("react"), 1);
|
|
26231
26837
|
var import_react_slot2 = require("@radix-ui/react-slot");
|
|
26232
26838
|
var import_lucide_react19 = require("lucide-react");
|
|
26233
|
-
var
|
|
26234
|
-
var Breadcrumb =
|
|
26839
|
+
var import_jsx_runtime65 = require("react/jsx-runtime");
|
|
26840
|
+
var Breadcrumb = React39.forwardRef(({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("nav", { ref, "aria-label": "breadcrumb", ...props }));
|
|
26235
26841
|
Breadcrumb.displayName = "Breadcrumb";
|
|
26236
|
-
var BreadcrumbList =
|
|
26237
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
26842
|
+
var BreadcrumbList = React39.forwardRef(
|
|
26843
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
26238
26844
|
"ol",
|
|
26239
26845
|
{
|
|
26240
26846
|
ref,
|
|
@@ -26247,17 +26853,17 @@ var BreadcrumbList = React38.forwardRef(
|
|
|
26247
26853
|
)
|
|
26248
26854
|
);
|
|
26249
26855
|
BreadcrumbList.displayName = "BreadcrumbList";
|
|
26250
|
-
var BreadcrumbItem =
|
|
26251
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
26856
|
+
var BreadcrumbItem = React39.forwardRef(
|
|
26857
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("li", { ref, className: cn("inline-flex items-center gap-1.5", className), ...props })
|
|
26252
26858
|
);
|
|
26253
26859
|
BreadcrumbItem.displayName = "BreadcrumbItem";
|
|
26254
|
-
var BreadcrumbLink =
|
|
26860
|
+
var BreadcrumbLink = React39.forwardRef(({ asChild, className, ...props }, ref) => {
|
|
26255
26861
|
const Comp = asChild ? import_react_slot2.Slot : "a";
|
|
26256
|
-
return /* @__PURE__ */ (0,
|
|
26862
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Comp, { ref, className: cn("transition-colors hover:text-foreground", className), ...props });
|
|
26257
26863
|
});
|
|
26258
26864
|
BreadcrumbLink.displayName = "BreadcrumbLink";
|
|
26259
|
-
var BreadcrumbPage =
|
|
26260
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
26865
|
+
var BreadcrumbPage = React39.forwardRef(
|
|
26866
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
26261
26867
|
"span",
|
|
26262
26868
|
{
|
|
26263
26869
|
ref,
|
|
@@ -26270,9 +26876,9 @@ var BreadcrumbPage = React38.forwardRef(
|
|
|
26270
26876
|
)
|
|
26271
26877
|
);
|
|
26272
26878
|
BreadcrumbPage.displayName = "BreadcrumbPage";
|
|
26273
|
-
var BreadcrumbSeparator = ({ children, className, ...props }) => /* @__PURE__ */ (0,
|
|
26879
|
+
var BreadcrumbSeparator = ({ children, className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("li", { role: "presentation", "aria-hidden": "true", className: cn("[&>svg]:size-3.5", className), ...props, children: children != null ? children : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react19.ChevronRight, {}) });
|
|
26274
26880
|
BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
|
|
26275
|
-
var BreadcrumbEllipsis = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
26881
|
+
var BreadcrumbEllipsis = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
|
|
26276
26882
|
"span",
|
|
26277
26883
|
{
|
|
26278
26884
|
role: "presentation",
|
|
@@ -26280,8 +26886,8 @@ var BreadcrumbEllipsis = ({ className, ...props }) => /* @__PURE__ */ (0, import
|
|
|
26280
26886
|
className: cn("flex h-9 w-9 items-center justify-center", className),
|
|
26281
26887
|
...props,
|
|
26282
26888
|
children: [
|
|
26283
|
-
/* @__PURE__ */ (0,
|
|
26284
|
-
/* @__PURE__ */ (0,
|
|
26889
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react19.MoreHorizontal, { className: "h-4 w-4" }),
|
|
26890
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "sr-only", children: "More" })
|
|
26285
26891
|
]
|
|
26286
26892
|
}
|
|
26287
26893
|
);
|
|
@@ -26290,9 +26896,9 @@ BreadcrumbEllipsis.displayName = "BreadcrumbElipssis";
|
|
|
26290
26896
|
// src/components/ui/calendar.tsx
|
|
26291
26897
|
var import_lucide_react20 = require("lucide-react");
|
|
26292
26898
|
var import_react_day_picker = require("react-day-picker");
|
|
26293
|
-
var
|
|
26899
|
+
var import_jsx_runtime66 = require("react/jsx-runtime");
|
|
26294
26900
|
function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
|
|
26295
|
-
return /* @__PURE__ */ (0,
|
|
26901
|
+
return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
26296
26902
|
import_react_day_picker.DayPicker,
|
|
26297
26903
|
{
|
|
26298
26904
|
showOutsideDays,
|
|
@@ -26327,9 +26933,9 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
|
|
|
26327
26933
|
components: {
|
|
26328
26934
|
Chevron: ({ orientation, className: className2, ...chevronProps }) => {
|
|
26329
26935
|
if (orientation === "left") {
|
|
26330
|
-
return /* @__PURE__ */ (0,
|
|
26936
|
+
return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react20.ChevronLeft, { className: cn("h-4 w-4", className2), ...chevronProps });
|
|
26331
26937
|
}
|
|
26332
|
-
return /* @__PURE__ */ (0,
|
|
26938
|
+
return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react20.ChevronRight, { className: cn("h-4 w-4", className2), ...chevronProps });
|
|
26333
26939
|
}
|
|
26334
26940
|
},
|
|
26335
26941
|
...props
|
|
@@ -26339,45 +26945,45 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
|
|
|
26339
26945
|
Calendar.displayName = "Calendar";
|
|
26340
26946
|
|
|
26341
26947
|
// src/components/ui/card.tsx
|
|
26342
|
-
var
|
|
26343
|
-
var
|
|
26344
|
-
var Card =
|
|
26948
|
+
var React40 = __toESM(require("react"), 1);
|
|
26949
|
+
var import_jsx_runtime67 = require("react/jsx-runtime");
|
|
26950
|
+
var Card = React40.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { ref, className: cn("rounded-lg border bg-card text-card-foreground shadow-sm", className), ...props }));
|
|
26345
26951
|
Card.displayName = "Card";
|
|
26346
|
-
var CardHeader =
|
|
26347
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
26952
|
+
var CardHeader = React40.forwardRef(
|
|
26953
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { ref, className: cn("flex flex-col space-y-1.5 p-6", className), ...props })
|
|
26348
26954
|
);
|
|
26349
26955
|
CardHeader.displayName = "CardHeader";
|
|
26350
|
-
var CardTitle =
|
|
26351
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
26956
|
+
var CardTitle = React40.forwardRef(
|
|
26957
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("h3", { ref, className: cn("text-2xl font-semibold leading-none tracking-tight", className), ...props })
|
|
26352
26958
|
);
|
|
26353
26959
|
CardTitle.displayName = "CardTitle";
|
|
26354
|
-
var CardDescription =
|
|
26355
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
26960
|
+
var CardDescription = React40.forwardRef(
|
|
26961
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("p", { ref, className: cn("text-sm text-muted-foreground", className), ...props })
|
|
26356
26962
|
);
|
|
26357
26963
|
CardDescription.displayName = "CardDescription";
|
|
26358
|
-
var CardContent =
|
|
26359
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
26964
|
+
var CardContent = React40.forwardRef(
|
|
26965
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { ref, className: cn("p-6 pt-0", className), ...props })
|
|
26360
26966
|
);
|
|
26361
26967
|
CardContent.displayName = "CardContent";
|
|
26362
|
-
var CardFooter =
|
|
26363
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
26968
|
+
var CardFooter = React40.forwardRef(
|
|
26969
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { ref, className: cn("flex items-center p-6 pt-0", className), ...props })
|
|
26364
26970
|
);
|
|
26365
26971
|
CardFooter.displayName = "CardFooter";
|
|
26366
26972
|
|
|
26367
26973
|
// src/components/ui/carousel.tsx
|
|
26368
|
-
var
|
|
26974
|
+
var React41 = __toESM(require("react"), 1);
|
|
26369
26975
|
var import_embla_carousel_react = __toESM(require("embla-carousel-react"), 1);
|
|
26370
26976
|
var import_lucide_react21 = require("lucide-react");
|
|
26371
|
-
var
|
|
26372
|
-
var CarouselContext =
|
|
26977
|
+
var import_jsx_runtime68 = require("react/jsx-runtime");
|
|
26978
|
+
var CarouselContext = React41.createContext(null);
|
|
26373
26979
|
function useCarousel() {
|
|
26374
|
-
const context =
|
|
26980
|
+
const context = React41.useContext(CarouselContext);
|
|
26375
26981
|
if (!context) {
|
|
26376
26982
|
throw new Error("useCarousel must be used within a <Carousel />");
|
|
26377
26983
|
}
|
|
26378
26984
|
return context;
|
|
26379
26985
|
}
|
|
26380
|
-
var Carousel =
|
|
26986
|
+
var Carousel = React41.forwardRef(
|
|
26381
26987
|
({ orientation = "horizontal", opts, setApi, plugins, className, children, ...props }, ref) => {
|
|
26382
26988
|
const [carouselRef, api] = (0, import_embla_carousel_react.default)(
|
|
26383
26989
|
{
|
|
@@ -26386,22 +26992,22 @@ var Carousel = React40.forwardRef(
|
|
|
26386
26992
|
},
|
|
26387
26993
|
plugins
|
|
26388
26994
|
);
|
|
26389
|
-
const [canScrollPrev, setCanScrollPrev] =
|
|
26390
|
-
const [canScrollNext, setCanScrollNext] =
|
|
26391
|
-
const onSelect =
|
|
26995
|
+
const [canScrollPrev, setCanScrollPrev] = React41.useState(false);
|
|
26996
|
+
const [canScrollNext, setCanScrollNext] = React41.useState(false);
|
|
26997
|
+
const onSelect = React41.useCallback((api2) => {
|
|
26392
26998
|
if (!api2) {
|
|
26393
26999
|
return;
|
|
26394
27000
|
}
|
|
26395
27001
|
setCanScrollPrev(api2.canScrollPrev());
|
|
26396
27002
|
setCanScrollNext(api2.canScrollNext());
|
|
26397
27003
|
}, []);
|
|
26398
|
-
const scrollPrev =
|
|
27004
|
+
const scrollPrev = React41.useCallback(() => {
|
|
26399
27005
|
api == null ? void 0 : api.scrollPrev();
|
|
26400
27006
|
}, [api]);
|
|
26401
|
-
const scrollNext =
|
|
27007
|
+
const scrollNext = React41.useCallback(() => {
|
|
26402
27008
|
api == null ? void 0 : api.scrollNext();
|
|
26403
27009
|
}, [api]);
|
|
26404
|
-
const handleKeyDown =
|
|
27010
|
+
const handleKeyDown = React41.useCallback(
|
|
26405
27011
|
(event) => {
|
|
26406
27012
|
if (event.key === "ArrowLeft") {
|
|
26407
27013
|
event.preventDefault();
|
|
@@ -26413,13 +27019,13 @@ var Carousel = React40.forwardRef(
|
|
|
26413
27019
|
},
|
|
26414
27020
|
[scrollPrev, scrollNext]
|
|
26415
27021
|
);
|
|
26416
|
-
|
|
27022
|
+
React41.useEffect(() => {
|
|
26417
27023
|
if (!api || !setApi) {
|
|
26418
27024
|
return;
|
|
26419
27025
|
}
|
|
26420
27026
|
setApi(api);
|
|
26421
27027
|
}, [api, setApi]);
|
|
26422
|
-
|
|
27028
|
+
React41.useEffect(() => {
|
|
26423
27029
|
if (!api) {
|
|
26424
27030
|
return;
|
|
26425
27031
|
}
|
|
@@ -26430,7 +27036,7 @@ var Carousel = React40.forwardRef(
|
|
|
26430
27036
|
api == null ? void 0 : api.off("select", onSelect);
|
|
26431
27037
|
};
|
|
26432
27038
|
}, [api, onSelect]);
|
|
26433
|
-
return /* @__PURE__ */ (0,
|
|
27039
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
26434
27040
|
CarouselContext.Provider,
|
|
26435
27041
|
{
|
|
26436
27042
|
value: {
|
|
@@ -26443,7 +27049,7 @@ var Carousel = React40.forwardRef(
|
|
|
26443
27049
|
canScrollPrev,
|
|
26444
27050
|
canScrollNext
|
|
26445
27051
|
},
|
|
26446
|
-
children: /* @__PURE__ */ (0,
|
|
27052
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
26447
27053
|
"div",
|
|
26448
27054
|
{
|
|
26449
27055
|
ref,
|
|
@@ -26460,10 +27066,10 @@ var Carousel = React40.forwardRef(
|
|
|
26460
27066
|
}
|
|
26461
27067
|
);
|
|
26462
27068
|
Carousel.displayName = "Carousel";
|
|
26463
|
-
var CarouselContent =
|
|
27069
|
+
var CarouselContent = React41.forwardRef(
|
|
26464
27070
|
({ className, ...props }, ref) => {
|
|
26465
27071
|
const { carouselRef, orientation } = useCarousel();
|
|
26466
|
-
return /* @__PURE__ */ (0,
|
|
27072
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { ref: carouselRef, className: "overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
26467
27073
|
"div",
|
|
26468
27074
|
{
|
|
26469
27075
|
ref,
|
|
@@ -26474,10 +27080,10 @@ var CarouselContent = React40.forwardRef(
|
|
|
26474
27080
|
}
|
|
26475
27081
|
);
|
|
26476
27082
|
CarouselContent.displayName = "CarouselContent";
|
|
26477
|
-
var CarouselItem =
|
|
27083
|
+
var CarouselItem = React41.forwardRef(
|
|
26478
27084
|
({ className, ...props }, ref) => {
|
|
26479
27085
|
const { orientation } = useCarousel();
|
|
26480
|
-
return /* @__PURE__ */ (0,
|
|
27086
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
26481
27087
|
"div",
|
|
26482
27088
|
{
|
|
26483
27089
|
ref,
|
|
@@ -26490,10 +27096,10 @@ var CarouselItem = React40.forwardRef(
|
|
|
26490
27096
|
}
|
|
26491
27097
|
);
|
|
26492
27098
|
CarouselItem.displayName = "CarouselItem";
|
|
26493
|
-
var CarouselPrevious =
|
|
27099
|
+
var CarouselPrevious = React41.forwardRef(
|
|
26494
27100
|
({ className, variant = "outline", size = "icon", ...props }, ref) => {
|
|
26495
27101
|
const { orientation, scrollPrev, canScrollPrev } = useCarousel();
|
|
26496
|
-
return /* @__PURE__ */ (0,
|
|
27102
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
|
|
26497
27103
|
Button,
|
|
26498
27104
|
{
|
|
26499
27105
|
ref,
|
|
@@ -26508,18 +27114,18 @@ var CarouselPrevious = React40.forwardRef(
|
|
|
26508
27114
|
onClick: scrollPrev,
|
|
26509
27115
|
...props,
|
|
26510
27116
|
children: [
|
|
26511
|
-
/* @__PURE__ */ (0,
|
|
26512
|
-
/* @__PURE__ */ (0,
|
|
27117
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_lucide_react21.ArrowLeft, { className: "h-4 w-4" }),
|
|
27118
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: "sr-only", children: "Previous slide" })
|
|
26513
27119
|
]
|
|
26514
27120
|
}
|
|
26515
27121
|
);
|
|
26516
27122
|
}
|
|
26517
27123
|
);
|
|
26518
27124
|
CarouselPrevious.displayName = "CarouselPrevious";
|
|
26519
|
-
var CarouselNext =
|
|
27125
|
+
var CarouselNext = React41.forwardRef(
|
|
26520
27126
|
({ className, variant = "outline", size = "icon", ...props }, ref) => {
|
|
26521
27127
|
const { orientation, scrollNext, canScrollNext } = useCarousel();
|
|
26522
|
-
return /* @__PURE__ */ (0,
|
|
27128
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
|
|
26523
27129
|
Button,
|
|
26524
27130
|
{
|
|
26525
27131
|
ref,
|
|
@@ -26534,8 +27140,8 @@ var CarouselNext = React40.forwardRef(
|
|
|
26534
27140
|
onClick: scrollNext,
|
|
26535
27141
|
...props,
|
|
26536
27142
|
children: [
|
|
26537
|
-
/* @__PURE__ */ (0,
|
|
26538
|
-
/* @__PURE__ */ (0,
|
|
27143
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_lucide_react21.ArrowRight, { className: "h-4 w-4" }),
|
|
27144
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: "sr-only", children: "Next slide" })
|
|
26539
27145
|
]
|
|
26540
27146
|
}
|
|
26541
27147
|
);
|
|
@@ -26544,22 +27150,22 @@ var CarouselNext = React40.forwardRef(
|
|
|
26544
27150
|
CarouselNext.displayName = "CarouselNext";
|
|
26545
27151
|
|
|
26546
27152
|
// src/components/ui/chart.tsx
|
|
26547
|
-
var
|
|
27153
|
+
var React42 = __toESM(require("react"), 1);
|
|
26548
27154
|
var RechartsPrimitive = __toESM(require("recharts"), 1);
|
|
26549
|
-
var
|
|
27155
|
+
var import_jsx_runtime69 = require("react/jsx-runtime");
|
|
26550
27156
|
var THEMES = { light: "", dark: ".dark" };
|
|
26551
|
-
var ChartContext =
|
|
27157
|
+
var ChartContext = React42.createContext(null);
|
|
26552
27158
|
function useChart() {
|
|
26553
|
-
const context =
|
|
27159
|
+
const context = React42.useContext(ChartContext);
|
|
26554
27160
|
if (!context) {
|
|
26555
27161
|
throw new Error("useChart must be used within a <ChartContainer />");
|
|
26556
27162
|
}
|
|
26557
27163
|
return context;
|
|
26558
27164
|
}
|
|
26559
|
-
var ChartContainer =
|
|
26560
|
-
const uniqueId =
|
|
27165
|
+
var ChartContainer = React42.forwardRef(({ id, className, children, config, ...props }, ref) => {
|
|
27166
|
+
const uniqueId = React42.useId();
|
|
26561
27167
|
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
|
|
26562
|
-
return /* @__PURE__ */ (0,
|
|
27168
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
|
|
26563
27169
|
"div",
|
|
26564
27170
|
{
|
|
26565
27171
|
"data-chart": chartId,
|
|
@@ -26570,8 +27176,8 @@ var ChartContainer = React41.forwardRef(({ id, className, children, config, ...p
|
|
|
26570
27176
|
),
|
|
26571
27177
|
...props,
|
|
26572
27178
|
children: [
|
|
26573
|
-
/* @__PURE__ */ (0,
|
|
26574
|
-
/* @__PURE__ */ (0,
|
|
27179
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(ChartStyle, { id: chartId, config }),
|
|
27180
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(RechartsPrimitive.ResponsiveContainer, { children })
|
|
26575
27181
|
]
|
|
26576
27182
|
}
|
|
26577
27183
|
) });
|
|
@@ -26582,7 +27188,7 @@ var ChartStyle = ({ id, config }) => {
|
|
|
26582
27188
|
if (!colorConfig.length) {
|
|
26583
27189
|
return null;
|
|
26584
27190
|
}
|
|
26585
|
-
return /* @__PURE__ */ (0,
|
|
27191
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
26586
27192
|
"style",
|
|
26587
27193
|
{
|
|
26588
27194
|
dangerouslySetInnerHTML: {
|
|
@@ -26602,7 +27208,7 @@ ${colorConfig.map(([key, itemConfig]) => {
|
|
|
26602
27208
|
);
|
|
26603
27209
|
};
|
|
26604
27210
|
var ChartTooltip = RechartsPrimitive.Tooltip;
|
|
26605
|
-
var ChartTooltipContent =
|
|
27211
|
+
var ChartTooltipContent = React42.forwardRef(
|
|
26606
27212
|
({
|
|
26607
27213
|
active,
|
|
26608
27214
|
payload,
|
|
@@ -26619,7 +27225,7 @@ var ChartTooltipContent = React41.forwardRef(
|
|
|
26619
27225
|
labelKey
|
|
26620
27226
|
}, ref) => {
|
|
26621
27227
|
const { config } = useChart();
|
|
26622
|
-
const tooltipLabel =
|
|
27228
|
+
const tooltipLabel = React42.useMemo(() => {
|
|
26623
27229
|
var _a78;
|
|
26624
27230
|
if (hideLabel || !(payload == null ? void 0 : payload.length)) {
|
|
26625
27231
|
return null;
|
|
@@ -26629,18 +27235,18 @@ var ChartTooltipContent = React41.forwardRef(
|
|
|
26629
27235
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
26630
27236
|
const value = !labelKey && typeof label === "string" ? ((_a78 = config[label]) == null ? void 0 : _a78.label) || label : itemConfig == null ? void 0 : itemConfig.label;
|
|
26631
27237
|
if (labelFormatter) {
|
|
26632
|
-
return /* @__PURE__ */ (0,
|
|
27238
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: cn("font-medium", labelClassName), children: labelFormatter(value, payload) });
|
|
26633
27239
|
}
|
|
26634
27240
|
if (!value) {
|
|
26635
27241
|
return null;
|
|
26636
27242
|
}
|
|
26637
|
-
return /* @__PURE__ */ (0,
|
|
27243
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: cn("font-medium", labelClassName), children: value });
|
|
26638
27244
|
}, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey]);
|
|
26639
27245
|
if (!active || !(payload == null ? void 0 : payload.length)) {
|
|
26640
27246
|
return null;
|
|
26641
27247
|
}
|
|
26642
27248
|
const nestLabel = payload.length === 1 && indicator !== "dot";
|
|
26643
|
-
return /* @__PURE__ */ (0,
|
|
27249
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
|
|
26644
27250
|
"div",
|
|
26645
27251
|
{
|
|
26646
27252
|
ref,
|
|
@@ -26650,19 +27256,19 @@ var ChartTooltipContent = React41.forwardRef(
|
|
|
26650
27256
|
),
|
|
26651
27257
|
children: [
|
|
26652
27258
|
!nestLabel ? tooltipLabel : null,
|
|
26653
|
-
/* @__PURE__ */ (0,
|
|
27259
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "grid gap-1.5", children: payload.map((item, index) => {
|
|
26654
27260
|
const key = `${nameKey || item.name || item.dataKey || "value"}`;
|
|
26655
27261
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
26656
27262
|
const indicatorColor = color || item.payload.fill || item.color;
|
|
26657
|
-
return /* @__PURE__ */ (0,
|
|
27263
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
26658
27264
|
"div",
|
|
26659
27265
|
{
|
|
26660
27266
|
className: cn(
|
|
26661
27267
|
"flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",
|
|
26662
27268
|
indicator === "dot" && "items-center"
|
|
26663
27269
|
),
|
|
26664
|
-
children: formatter && (item == null ? void 0 : item.value) !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ (0,
|
|
26665
|
-
(itemConfig == null ? void 0 : itemConfig.icon) ? /* @__PURE__ */ (0,
|
|
27270
|
+
children: formatter && (item == null ? void 0 : item.value) !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_jsx_runtime69.Fragment, { children: [
|
|
27271
|
+
(itemConfig == null ? void 0 : itemConfig.icon) ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
26666
27272
|
"div",
|
|
26667
27273
|
{
|
|
26668
27274
|
className: cn("shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]", {
|
|
@@ -26677,7 +27283,7 @@ var ChartTooltipContent = React41.forwardRef(
|
|
|
26677
27283
|
}
|
|
26678
27284
|
}
|
|
26679
27285
|
),
|
|
26680
|
-
/* @__PURE__ */ (0,
|
|
27286
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
|
|
26681
27287
|
"div",
|
|
26682
27288
|
{
|
|
26683
27289
|
className: cn(
|
|
@@ -26685,11 +27291,11 @@ var ChartTooltipContent = React41.forwardRef(
|
|
|
26685
27291
|
nestLabel ? "items-end" : "items-center"
|
|
26686
27292
|
),
|
|
26687
27293
|
children: [
|
|
26688
|
-
/* @__PURE__ */ (0,
|
|
27294
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "grid gap-1.5", children: [
|
|
26689
27295
|
nestLabel ? tooltipLabel : null,
|
|
26690
|
-
/* @__PURE__ */ (0,
|
|
27296
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "text-muted-foreground", children: (itemConfig == null ? void 0 : itemConfig.label) || item.name })
|
|
26691
27297
|
] }),
|
|
26692
|
-
item.value && /* @__PURE__ */ (0,
|
|
27298
|
+
item.value && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "font-mono font-medium tabular-nums text-foreground", children: item.value.toLocaleString() })
|
|
26693
27299
|
]
|
|
26694
27300
|
}
|
|
26695
27301
|
)
|
|
@@ -26705,12 +27311,12 @@ var ChartTooltipContent = React41.forwardRef(
|
|
|
26705
27311
|
);
|
|
26706
27312
|
ChartTooltipContent.displayName = "ChartTooltip";
|
|
26707
27313
|
var ChartLegend = RechartsPrimitive.Legend;
|
|
26708
|
-
var ChartLegendContent =
|
|
27314
|
+
var ChartLegendContent = React42.forwardRef(({ className, hideIcon = false, payload, verticalAlign = "bottom", nameKey }, ref) => {
|
|
26709
27315
|
const { config } = useChart();
|
|
26710
27316
|
if (!(payload == null ? void 0 : payload.length)) {
|
|
26711
27317
|
return null;
|
|
26712
27318
|
}
|
|
26713
|
-
return /* @__PURE__ */ (0,
|
|
27319
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
26714
27320
|
"div",
|
|
26715
27321
|
{
|
|
26716
27322
|
ref,
|
|
@@ -26718,12 +27324,12 @@ var ChartLegendContent = React41.forwardRef(({ className, hideIcon = false, payl
|
|
|
26718
27324
|
children: payload.map((item) => {
|
|
26719
27325
|
const key = `${nameKey || item.dataKey || "value"}`;
|
|
26720
27326
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
26721
|
-
return /* @__PURE__ */ (0,
|
|
27327
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
|
|
26722
27328
|
"div",
|
|
26723
27329
|
{
|
|
26724
27330
|
className: cn("flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"),
|
|
26725
27331
|
children: [
|
|
26726
|
-
(itemConfig == null ? void 0 : itemConfig.icon) && !hideIcon ? /* @__PURE__ */ (0,
|
|
27332
|
+
(itemConfig == null ? void 0 : itemConfig.icon) && !hideIcon ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(itemConfig.icon, {}) : /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
26727
27333
|
"div",
|
|
26728
27334
|
{
|
|
26729
27335
|
className: "h-2 w-2 shrink-0 rounded-[2px]",
|
|
@@ -26757,11 +27363,11 @@ function getPayloadConfigFromPayload(config, payload, key) {
|
|
|
26757
27363
|
}
|
|
26758
27364
|
|
|
26759
27365
|
// src/components/ui/checkbox.tsx
|
|
26760
|
-
var
|
|
27366
|
+
var React43 = __toESM(require("react"), 1);
|
|
26761
27367
|
var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"), 1);
|
|
26762
27368
|
var import_lucide_react22 = require("lucide-react");
|
|
26763
|
-
var
|
|
26764
|
-
var Checkbox =
|
|
27369
|
+
var import_jsx_runtime70 = require("react/jsx-runtime");
|
|
27370
|
+
var Checkbox = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
26765
27371
|
CheckboxPrimitive.Root,
|
|
26766
27372
|
{
|
|
26767
27373
|
ref,
|
|
@@ -26770,7 +27376,7 @@ var Checkbox = React42.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
26770
27376
|
className
|
|
26771
27377
|
),
|
|
26772
27378
|
...props,
|
|
26773
|
-
children: /* @__PURE__ */ (0,
|
|
27379
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(CheckboxPrimitive.Indicator, { className: cn("flex items-center justify-center text-current"), children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_lucide_react22.Check, { className: "h-4 w-4" }) })
|
|
26774
27380
|
}
|
|
26775
27381
|
));
|
|
26776
27382
|
Checkbox.displayName = CheckboxPrimitive.Root.displayName;
|
|
@@ -26782,11 +27388,11 @@ var CollapsibleTrigger2 = CollapsiblePrimitive.CollapsibleTrigger;
|
|
|
26782
27388
|
var CollapsibleContent2 = CollapsiblePrimitive.CollapsibleContent;
|
|
26783
27389
|
|
|
26784
27390
|
// src/components/ui/command.tsx
|
|
26785
|
-
var
|
|
27391
|
+
var React44 = __toESM(require("react"), 1);
|
|
26786
27392
|
var import_cmdk = require("cmdk");
|
|
26787
27393
|
var import_lucide_react23 = require("lucide-react");
|
|
26788
|
-
var
|
|
26789
|
-
var Command =
|
|
27394
|
+
var import_jsx_runtime71 = require("react/jsx-runtime");
|
|
27395
|
+
var Command = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
26790
27396
|
import_cmdk.Command,
|
|
26791
27397
|
{
|
|
26792
27398
|
ref,
|
|
@@ -26799,11 +27405,11 @@ var Command = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
26799
27405
|
));
|
|
26800
27406
|
Command.displayName = import_cmdk.Command.displayName;
|
|
26801
27407
|
var CommandDialog = ({ children, ...props }) => {
|
|
26802
|
-
return /* @__PURE__ */ (0,
|
|
27408
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(Dialog, { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(DialogContent, { className: "overflow-hidden p-0 shadow-lg", children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children }) }) });
|
|
26803
27409
|
};
|
|
26804
|
-
var CommandInput =
|
|
26805
|
-
/* @__PURE__ */ (0,
|
|
26806
|
-
/* @__PURE__ */ (0,
|
|
27410
|
+
var CommandInput = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
|
|
27411
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_lucide_react23.Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
|
|
27412
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
26807
27413
|
import_cmdk.Command.Input,
|
|
26808
27414
|
{
|
|
26809
27415
|
ref,
|
|
@@ -26816,7 +27422,7 @@ var CommandInput = React43.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
26816
27422
|
)
|
|
26817
27423
|
] }));
|
|
26818
27424
|
CommandInput.displayName = import_cmdk.Command.Input.displayName;
|
|
26819
|
-
var CommandList =
|
|
27425
|
+
var CommandList = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
26820
27426
|
import_cmdk.Command.List,
|
|
26821
27427
|
{
|
|
26822
27428
|
ref,
|
|
@@ -26825,9 +27431,9 @@ var CommandList = React43.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
26825
27431
|
}
|
|
26826
27432
|
));
|
|
26827
27433
|
CommandList.displayName = import_cmdk.Command.List.displayName;
|
|
26828
|
-
var CommandEmpty =
|
|
27434
|
+
var CommandEmpty = React44.forwardRef((props, ref) => /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_cmdk.Command.Empty, { ref, className: "py-6 text-center text-sm", ...props }));
|
|
26829
27435
|
CommandEmpty.displayName = import_cmdk.Command.Empty.displayName;
|
|
26830
|
-
var CommandGroup =
|
|
27436
|
+
var CommandGroup = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
26831
27437
|
import_cmdk.Command.Group,
|
|
26832
27438
|
{
|
|
26833
27439
|
ref,
|
|
@@ -26839,9 +27445,9 @@ var CommandGroup = React43.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
26839
27445
|
}
|
|
26840
27446
|
));
|
|
26841
27447
|
CommandGroup.displayName = import_cmdk.Command.Group.displayName;
|
|
26842
|
-
var CommandSeparator =
|
|
27448
|
+
var CommandSeparator = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_cmdk.Command.Separator, { ref, className: cn("-mx-1 h-px bg-border", className), ...props }));
|
|
26843
27449
|
CommandSeparator.displayName = import_cmdk.Command.Separator.displayName;
|
|
26844
|
-
var CommandItem =
|
|
27450
|
+
var CommandItem = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
26845
27451
|
import_cmdk.Command.Item,
|
|
26846
27452
|
{
|
|
26847
27453
|
ref,
|
|
@@ -26854,22 +27460,22 @@ var CommandItem = React43.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
26854
27460
|
));
|
|
26855
27461
|
CommandItem.displayName = import_cmdk.Command.Item.displayName;
|
|
26856
27462
|
var CommandShortcut = ({ className, ...props }) => {
|
|
26857
|
-
return /* @__PURE__ */ (0,
|
|
27463
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className), ...props });
|
|
26858
27464
|
};
|
|
26859
27465
|
CommandShortcut.displayName = "CommandShortcut";
|
|
26860
27466
|
|
|
26861
27467
|
// src/components/ui/context-menu.tsx
|
|
26862
|
-
var
|
|
27468
|
+
var React45 = __toESM(require("react"), 1);
|
|
26863
27469
|
var ContextMenuPrimitive = __toESM(require("@radix-ui/react-context-menu"), 1);
|
|
26864
27470
|
var import_lucide_react24 = require("lucide-react");
|
|
26865
|
-
var
|
|
27471
|
+
var import_jsx_runtime72 = require("react/jsx-runtime");
|
|
26866
27472
|
var ContextMenu = ContextMenuPrimitive.Root;
|
|
26867
27473
|
var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
|
|
26868
27474
|
var ContextMenuGroup = ContextMenuPrimitive.Group;
|
|
26869
27475
|
var ContextMenuPortal = ContextMenuPrimitive.Portal;
|
|
26870
27476
|
var ContextMenuSub = ContextMenuPrimitive.Sub;
|
|
26871
27477
|
var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
|
|
26872
|
-
var ContextMenuSubTrigger =
|
|
27478
|
+
var ContextMenuSubTrigger = React45.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
|
|
26873
27479
|
ContextMenuPrimitive.SubTrigger,
|
|
26874
27480
|
{
|
|
26875
27481
|
ref,
|
|
@@ -26881,12 +27487,12 @@ var ContextMenuSubTrigger = React44.forwardRef(({ className, inset, children, ..
|
|
|
26881
27487
|
...props,
|
|
26882
27488
|
children: [
|
|
26883
27489
|
children,
|
|
26884
|
-
/* @__PURE__ */ (0,
|
|
27490
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_lucide_react24.ChevronRight, { className: "ml-auto h-4 w-4" })
|
|
26885
27491
|
]
|
|
26886
27492
|
}
|
|
26887
27493
|
));
|
|
26888
27494
|
ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
|
|
26889
|
-
var ContextMenuSubContent =
|
|
27495
|
+
var ContextMenuSubContent = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
26890
27496
|
ContextMenuPrimitive.SubContent,
|
|
26891
27497
|
{
|
|
26892
27498
|
ref,
|
|
@@ -26898,7 +27504,7 @@ var ContextMenuSubContent = React44.forwardRef(({ className, ...props }, ref) =>
|
|
|
26898
27504
|
}
|
|
26899
27505
|
));
|
|
26900
27506
|
ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
|
|
26901
|
-
var ContextMenuContent =
|
|
27507
|
+
var ContextMenuContent = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
26902
27508
|
ContextMenuPrimitive.Content,
|
|
26903
27509
|
{
|
|
26904
27510
|
ref,
|
|
@@ -26910,7 +27516,7 @@ var ContextMenuContent = React44.forwardRef(({ className, ...props }, ref) => /*
|
|
|
26910
27516
|
}
|
|
26911
27517
|
) }));
|
|
26912
27518
|
ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
|
|
26913
|
-
var ContextMenuItem =
|
|
27519
|
+
var ContextMenuItem = React45.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
26914
27520
|
ContextMenuPrimitive.Item,
|
|
26915
27521
|
{
|
|
26916
27522
|
ref,
|
|
@@ -26923,7 +27529,7 @@ var ContextMenuItem = React44.forwardRef(({ className, inset, ...props }, ref) =
|
|
|
26923
27529
|
}
|
|
26924
27530
|
));
|
|
26925
27531
|
ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
|
|
26926
|
-
var ContextMenuCheckboxItem =
|
|
27532
|
+
var ContextMenuCheckboxItem = React45.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
|
|
26927
27533
|
ContextMenuPrimitive.CheckboxItem,
|
|
26928
27534
|
{
|
|
26929
27535
|
ref,
|
|
@@ -26934,13 +27540,13 @@ var ContextMenuCheckboxItem = React44.forwardRef(({ className, children, checked
|
|
|
26934
27540
|
checked,
|
|
26935
27541
|
...props,
|
|
26936
27542
|
children: [
|
|
26937
|
-
/* @__PURE__ */ (0,
|
|
27543
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_lucide_react24.Check, { className: "h-4 w-4" }) }) }),
|
|
26938
27544
|
children
|
|
26939
27545
|
]
|
|
26940
27546
|
}
|
|
26941
27547
|
));
|
|
26942
27548
|
ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
|
|
26943
|
-
var ContextMenuRadioItem =
|
|
27549
|
+
var ContextMenuRadioItem = React45.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
|
|
26944
27550
|
ContextMenuPrimitive.RadioItem,
|
|
26945
27551
|
{
|
|
26946
27552
|
ref,
|
|
@@ -26950,13 +27556,13 @@ var ContextMenuRadioItem = React44.forwardRef(({ className, children, ...props }
|
|
|
26950
27556
|
),
|
|
26951
27557
|
...props,
|
|
26952
27558
|
children: [
|
|
26953
|
-
/* @__PURE__ */ (0,
|
|
27559
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_lucide_react24.Circle, { className: "h-2 w-2 fill-current" }) }) }),
|
|
26954
27560
|
children
|
|
26955
27561
|
]
|
|
26956
27562
|
}
|
|
26957
27563
|
));
|
|
26958
27564
|
ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
|
|
26959
|
-
var ContextMenuLabel =
|
|
27565
|
+
var ContextMenuLabel = React45.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
26960
27566
|
ContextMenuPrimitive.Label,
|
|
26961
27567
|
{
|
|
26962
27568
|
ref,
|
|
@@ -26965,39 +27571,39 @@ var ContextMenuLabel = React44.forwardRef(({ className, inset, ...props }, ref)
|
|
|
26965
27571
|
}
|
|
26966
27572
|
));
|
|
26967
27573
|
ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
|
|
26968
|
-
var ContextMenuSeparator =
|
|
27574
|
+
var ContextMenuSeparator = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ContextMenuPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-border", className), ...props }));
|
|
26969
27575
|
ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
|
|
26970
27576
|
var ContextMenuShortcut = ({ className, ...props }) => {
|
|
26971
|
-
return /* @__PURE__ */ (0,
|
|
27577
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("span", { className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className), ...props });
|
|
26972
27578
|
};
|
|
26973
27579
|
ContextMenuShortcut.displayName = "ContextMenuShortcut";
|
|
26974
27580
|
|
|
26975
27581
|
// src/components/ui/form.tsx
|
|
26976
|
-
var
|
|
27582
|
+
var React47 = __toESM(require("react"), 1);
|
|
26977
27583
|
var import_react_slot3 = require("@radix-ui/react-slot");
|
|
26978
27584
|
var import_react_hook_form = require("react-hook-form");
|
|
26979
27585
|
|
|
26980
27586
|
// src/components/ui/label.tsx
|
|
26981
|
-
var
|
|
27587
|
+
var React46 = __toESM(require("react"), 1);
|
|
26982
27588
|
var LabelPrimitive = __toESM(require("@radix-ui/react-label"), 1);
|
|
26983
27589
|
var import_class_variance_authority4 = require("class-variance-authority");
|
|
26984
|
-
var
|
|
27590
|
+
var import_jsx_runtime73 = require("react/jsx-runtime");
|
|
26985
27591
|
var labelVariants = (0, import_class_variance_authority4.cva)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70");
|
|
26986
|
-
var Label4 =
|
|
27592
|
+
var Label4 = React46.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(LabelPrimitive.Root, { ref, className: cn(labelVariants(), className), ...props }));
|
|
26987
27593
|
Label4.displayName = LabelPrimitive.Root.displayName;
|
|
26988
27594
|
|
|
26989
27595
|
// src/components/ui/form.tsx
|
|
26990
|
-
var
|
|
27596
|
+
var import_jsx_runtime74 = require("react/jsx-runtime");
|
|
26991
27597
|
var Form = import_react_hook_form.FormProvider;
|
|
26992
|
-
var FormFieldContext =
|
|
27598
|
+
var FormFieldContext = React47.createContext({});
|
|
26993
27599
|
var FormField = ({
|
|
26994
27600
|
...props
|
|
26995
27601
|
}) => {
|
|
26996
|
-
return /* @__PURE__ */ (0,
|
|
27602
|
+
return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_react_hook_form.Controller, { ...props }) });
|
|
26997
27603
|
};
|
|
26998
27604
|
var useFormField = () => {
|
|
26999
|
-
const fieldContext =
|
|
27000
|
-
const itemContext =
|
|
27605
|
+
const fieldContext = React47.useContext(FormFieldContext);
|
|
27606
|
+
const itemContext = React47.useContext(FormItemContext);
|
|
27001
27607
|
const { getFieldState, formState } = (0, import_react_hook_form.useFormContext)();
|
|
27002
27608
|
const fieldState = getFieldState(fieldContext.name, formState);
|
|
27003
27609
|
if (!fieldContext) {
|
|
@@ -27013,23 +27619,23 @@ var useFormField = () => {
|
|
|
27013
27619
|
...fieldState
|
|
27014
27620
|
};
|
|
27015
27621
|
};
|
|
27016
|
-
var FormItemContext =
|
|
27017
|
-
var FormItem =
|
|
27622
|
+
var FormItemContext = React47.createContext({});
|
|
27623
|
+
var FormItem = React47.forwardRef(
|
|
27018
27624
|
({ className, ...props }, ref) => {
|
|
27019
|
-
const id =
|
|
27020
|
-
return /* @__PURE__ */ (0,
|
|
27625
|
+
const id = React47.useId();
|
|
27626
|
+
return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { ref, className: cn("space-y-2", className), ...props }) });
|
|
27021
27627
|
}
|
|
27022
27628
|
);
|
|
27023
27629
|
FormItem.displayName = "FormItem";
|
|
27024
|
-
var FormLabel =
|
|
27630
|
+
var FormLabel = React47.forwardRef(({ className, ...props }, ref) => {
|
|
27025
27631
|
const { error, formItemId } = useFormField();
|
|
27026
|
-
return /* @__PURE__ */ (0,
|
|
27632
|
+
return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(Label4, { ref, className: cn(error && "text-destructive", className), htmlFor: formItemId, ...props });
|
|
27027
27633
|
});
|
|
27028
27634
|
FormLabel.displayName = "FormLabel";
|
|
27029
|
-
var FormControl =
|
|
27635
|
+
var FormControl = React47.forwardRef(
|
|
27030
27636
|
({ ...props }, ref) => {
|
|
27031
27637
|
const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
|
|
27032
|
-
return /* @__PURE__ */ (0,
|
|
27638
|
+
return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
|
|
27033
27639
|
import_react_slot3.Slot,
|
|
27034
27640
|
{
|
|
27035
27641
|
ref,
|
|
@@ -27042,42 +27648,42 @@ var FormControl = React46.forwardRef(
|
|
|
27042
27648
|
}
|
|
27043
27649
|
);
|
|
27044
27650
|
FormControl.displayName = "FormControl";
|
|
27045
|
-
var FormDescription =
|
|
27651
|
+
var FormDescription = React47.forwardRef(
|
|
27046
27652
|
({ className, ...props }, ref) => {
|
|
27047
27653
|
const { formDescriptionId } = useFormField();
|
|
27048
|
-
return /* @__PURE__ */ (0,
|
|
27654
|
+
return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("p", { ref, id: formDescriptionId, className: cn("text-sm text-muted-foreground", className), ...props });
|
|
27049
27655
|
}
|
|
27050
27656
|
);
|
|
27051
27657
|
FormDescription.displayName = "FormDescription";
|
|
27052
|
-
var FormMessage =
|
|
27658
|
+
var FormMessage = React47.forwardRef(
|
|
27053
27659
|
({ className, children, ...props }, ref) => {
|
|
27054
27660
|
const { error, formMessageId } = useFormField();
|
|
27055
27661
|
const body = error ? String(error == null ? void 0 : error.message) : children;
|
|
27056
27662
|
if (!body) {
|
|
27057
27663
|
return null;
|
|
27058
27664
|
}
|
|
27059
|
-
return /* @__PURE__ */ (0,
|
|
27665
|
+
return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("p", { ref, id: formMessageId, className: cn("text-sm font-medium text-destructive", className), ...props, children: body });
|
|
27060
27666
|
}
|
|
27061
27667
|
);
|
|
27062
27668
|
FormMessage.displayName = "FormMessage";
|
|
27063
27669
|
|
|
27064
27670
|
// src/components/ui/glass-card.tsx
|
|
27065
|
-
var
|
|
27066
|
-
var
|
|
27067
|
-
var GlassCard =
|
|
27671
|
+
var React48 = __toESM(require("react"), 1);
|
|
27672
|
+
var import_jsx_runtime75 = require("react/jsx-runtime");
|
|
27673
|
+
var GlassCard = React48.forwardRef(
|
|
27068
27674
|
({ className, ...props }, ref) => {
|
|
27069
|
-
return /* @__PURE__ */ (0,
|
|
27675
|
+
return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { ref, className: cn("glass-card", className), ...props });
|
|
27070
27676
|
}
|
|
27071
27677
|
);
|
|
27072
27678
|
GlassCard.displayName = "GlassCard";
|
|
27073
27679
|
|
|
27074
27680
|
// src/components/ui/hover-card.tsx
|
|
27075
|
-
var
|
|
27681
|
+
var React49 = __toESM(require("react"), 1);
|
|
27076
27682
|
var HoverCardPrimitive = __toESM(require("@radix-ui/react-hover-card"), 1);
|
|
27077
|
-
var
|
|
27683
|
+
var import_jsx_runtime76 = require("react/jsx-runtime");
|
|
27078
27684
|
var HoverCard = HoverCardPrimitive.Root;
|
|
27079
27685
|
var HoverCardTrigger = HoverCardPrimitive.Trigger;
|
|
27080
|
-
var HoverCardContent =
|
|
27686
|
+
var HoverCardContent = React49.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
|
|
27081
27687
|
HoverCardPrimitive.Content,
|
|
27082
27688
|
{
|
|
27083
27689
|
ref,
|
|
@@ -27093,12 +27699,12 @@ var HoverCardContent = React48.forwardRef(({ className, align = "center", sideOf
|
|
|
27093
27699
|
HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
|
|
27094
27700
|
|
|
27095
27701
|
// src/components/ui/input-otp.tsx
|
|
27096
|
-
var
|
|
27702
|
+
var React50 = __toESM(require("react"), 1);
|
|
27097
27703
|
var import_input_otp = require("input-otp");
|
|
27098
27704
|
var import_lucide_react25 = require("lucide-react");
|
|
27099
|
-
var
|
|
27100
|
-
var InputOTP =
|
|
27101
|
-
({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ (0,
|
|
27705
|
+
var import_jsx_runtime77 = require("react/jsx-runtime");
|
|
27706
|
+
var InputOTP = React50.forwardRef(
|
|
27707
|
+
({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
27102
27708
|
import_input_otp.OTPInput,
|
|
27103
27709
|
{
|
|
27104
27710
|
ref,
|
|
@@ -27109,14 +27715,14 @@ var InputOTP = React49.forwardRef(
|
|
|
27109
27715
|
)
|
|
27110
27716
|
);
|
|
27111
27717
|
InputOTP.displayName = "InputOTP";
|
|
27112
|
-
var InputOTPGroup =
|
|
27113
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
27718
|
+
var InputOTPGroup = React50.forwardRef(
|
|
27719
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { ref, className: cn("flex items-center", className), ...props })
|
|
27114
27720
|
);
|
|
27115
27721
|
InputOTPGroup.displayName = "InputOTPGroup";
|
|
27116
|
-
var InputOTPSlot =
|
|
27117
|
-
const inputOTPContext =
|
|
27722
|
+
var InputOTPSlot = React50.forwardRef(({ index, className, ...props }, ref) => {
|
|
27723
|
+
const inputOTPContext = React50.useContext(import_input_otp.OTPInputContext);
|
|
27118
27724
|
const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];
|
|
27119
|
-
return /* @__PURE__ */ (0,
|
|
27725
|
+
return /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
|
|
27120
27726
|
"div",
|
|
27121
27727
|
{
|
|
27122
27728
|
ref,
|
|
@@ -27128,28 +27734,28 @@ var InputOTPSlot = React49.forwardRef(({ index, className, ...props }, ref) => {
|
|
|
27128
27734
|
...props,
|
|
27129
27735
|
children: [
|
|
27130
27736
|
char,
|
|
27131
|
-
hasFakeCaret && /* @__PURE__ */ (0,
|
|
27737
|
+
hasFakeCaret && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "animate-caret-blink h-4 w-px bg-foreground duration-1000" }) })
|
|
27132
27738
|
]
|
|
27133
27739
|
}
|
|
27134
27740
|
);
|
|
27135
27741
|
});
|
|
27136
27742
|
InputOTPSlot.displayName = "InputOTPSlot";
|
|
27137
|
-
var InputOTPSeparator =
|
|
27138
|
-
({ ...props }, ref) => /* @__PURE__ */ (0,
|
|
27743
|
+
var InputOTPSeparator = React50.forwardRef(
|
|
27744
|
+
({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react25.Dot, {}) })
|
|
27139
27745
|
);
|
|
27140
27746
|
InputOTPSeparator.displayName = "InputOTPSeparator";
|
|
27141
27747
|
|
|
27142
27748
|
// src/components/ui/menubar.tsx
|
|
27143
|
-
var
|
|
27749
|
+
var React51 = __toESM(require("react"), 1);
|
|
27144
27750
|
var MenubarPrimitive = __toESM(require("@radix-ui/react-menubar"), 1);
|
|
27145
27751
|
var import_lucide_react26 = require("lucide-react");
|
|
27146
|
-
var
|
|
27752
|
+
var import_jsx_runtime78 = require("react/jsx-runtime");
|
|
27147
27753
|
var MenubarMenu = MenubarPrimitive.Menu;
|
|
27148
27754
|
var MenubarGroup = MenubarPrimitive.Group;
|
|
27149
27755
|
var MenubarPortal = MenubarPrimitive.Portal;
|
|
27150
27756
|
var MenubarSub = MenubarPrimitive.Sub;
|
|
27151
27757
|
var MenubarRadioGroup = MenubarPrimitive.RadioGroup;
|
|
27152
|
-
var Menubar =
|
|
27758
|
+
var Menubar = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
27153
27759
|
MenubarPrimitive.Root,
|
|
27154
27760
|
{
|
|
27155
27761
|
ref,
|
|
@@ -27158,7 +27764,7 @@ var Menubar = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
27158
27764
|
}
|
|
27159
27765
|
));
|
|
27160
27766
|
Menubar.displayName = MenubarPrimitive.Root.displayName;
|
|
27161
|
-
var MenubarTrigger =
|
|
27767
|
+
var MenubarTrigger = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
27162
27768
|
MenubarPrimitive.Trigger,
|
|
27163
27769
|
{
|
|
27164
27770
|
ref,
|
|
@@ -27170,7 +27776,7 @@ var MenubarTrigger = React50.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
27170
27776
|
}
|
|
27171
27777
|
));
|
|
27172
27778
|
MenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;
|
|
27173
|
-
var MenubarSubTrigger =
|
|
27779
|
+
var MenubarSubTrigger = React51.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
|
|
27174
27780
|
MenubarPrimitive.SubTrigger,
|
|
27175
27781
|
{
|
|
27176
27782
|
ref,
|
|
@@ -27182,12 +27788,12 @@ var MenubarSubTrigger = React50.forwardRef(({ className, inset, children, ...pro
|
|
|
27182
27788
|
...props,
|
|
27183
27789
|
children: [
|
|
27184
27790
|
children,
|
|
27185
|
-
/* @__PURE__ */ (0,
|
|
27791
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_lucide_react26.ChevronRight, { className: "ml-auto h-4 w-4" })
|
|
27186
27792
|
]
|
|
27187
27793
|
}
|
|
27188
27794
|
));
|
|
27189
27795
|
MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
|
|
27190
|
-
var MenubarSubContent =
|
|
27796
|
+
var MenubarSubContent = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
27191
27797
|
MenubarPrimitive.SubContent,
|
|
27192
27798
|
{
|
|
27193
27799
|
ref,
|
|
@@ -27199,7 +27805,7 @@ var MenubarSubContent = React50.forwardRef(({ className, ...props }, ref) => /*
|
|
|
27199
27805
|
}
|
|
27200
27806
|
));
|
|
27201
27807
|
MenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;
|
|
27202
|
-
var MenubarContent =
|
|
27808
|
+
var MenubarContent = React51.forwardRef(({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(MenubarPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
27203
27809
|
MenubarPrimitive.Content,
|
|
27204
27810
|
{
|
|
27205
27811
|
ref,
|
|
@@ -27214,7 +27820,7 @@ var MenubarContent = React50.forwardRef(({ className, align = "start", alignOffs
|
|
|
27214
27820
|
}
|
|
27215
27821
|
) }));
|
|
27216
27822
|
MenubarContent.displayName = MenubarPrimitive.Content.displayName;
|
|
27217
|
-
var MenubarItem =
|
|
27823
|
+
var MenubarItem = React51.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
27218
27824
|
MenubarPrimitive.Item,
|
|
27219
27825
|
{
|
|
27220
27826
|
ref,
|
|
@@ -27227,7 +27833,7 @@ var MenubarItem = React50.forwardRef(({ className, inset, ...props }, ref) => /*
|
|
|
27227
27833
|
}
|
|
27228
27834
|
));
|
|
27229
27835
|
MenubarItem.displayName = MenubarPrimitive.Item.displayName;
|
|
27230
|
-
var MenubarCheckboxItem =
|
|
27836
|
+
var MenubarCheckboxItem = React51.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
|
|
27231
27837
|
MenubarPrimitive.CheckboxItem,
|
|
27232
27838
|
{
|
|
27233
27839
|
ref,
|
|
@@ -27238,13 +27844,13 @@ var MenubarCheckboxItem = React50.forwardRef(({ className, children, checked, ..
|
|
|
27238
27844
|
checked,
|
|
27239
27845
|
...props,
|
|
27240
27846
|
children: [
|
|
27241
|
-
/* @__PURE__ */ (0,
|
|
27847
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_lucide_react26.Check, { className: "h-4 w-4" }) }) }),
|
|
27242
27848
|
children
|
|
27243
27849
|
]
|
|
27244
27850
|
}
|
|
27245
27851
|
));
|
|
27246
27852
|
MenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;
|
|
27247
|
-
var MenubarRadioItem =
|
|
27853
|
+
var MenubarRadioItem = React51.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
|
|
27248
27854
|
MenubarPrimitive.RadioItem,
|
|
27249
27855
|
{
|
|
27250
27856
|
ref,
|
|
@@ -27254,13 +27860,13 @@ var MenubarRadioItem = React50.forwardRef(({ className, children, ...props }, re
|
|
|
27254
27860
|
),
|
|
27255
27861
|
...props,
|
|
27256
27862
|
children: [
|
|
27257
|
-
/* @__PURE__ */ (0,
|
|
27863
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_lucide_react26.Circle, { className: "h-2 w-2 fill-current" }) }) }),
|
|
27258
27864
|
children
|
|
27259
27865
|
]
|
|
27260
27866
|
}
|
|
27261
27867
|
));
|
|
27262
27868
|
MenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;
|
|
27263
|
-
var MenubarLabel =
|
|
27869
|
+
var MenubarLabel = React51.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
27264
27870
|
MenubarPrimitive.Label,
|
|
27265
27871
|
{
|
|
27266
27872
|
ref,
|
|
@@ -27269,20 +27875,20 @@ var MenubarLabel = React50.forwardRef(({ className, inset, ...props }, ref) => /
|
|
|
27269
27875
|
}
|
|
27270
27876
|
));
|
|
27271
27877
|
MenubarLabel.displayName = MenubarPrimitive.Label.displayName;
|
|
27272
|
-
var MenubarSeparator =
|
|
27878
|
+
var MenubarSeparator = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(MenubarPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-muted", className), ...props }));
|
|
27273
27879
|
MenubarSeparator.displayName = MenubarPrimitive.Separator.displayName;
|
|
27274
27880
|
var MenubarShortcut = ({ className, ...props }) => {
|
|
27275
|
-
return /* @__PURE__ */ (0,
|
|
27881
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className), ...props });
|
|
27276
27882
|
};
|
|
27277
27883
|
MenubarShortcut.displayname = "MenubarShortcut";
|
|
27278
27884
|
|
|
27279
27885
|
// src/components/ui/navigation-menu.tsx
|
|
27280
|
-
var
|
|
27886
|
+
var React52 = __toESM(require("react"), 1);
|
|
27281
27887
|
var NavigationMenuPrimitive = __toESM(require("@radix-ui/react-navigation-menu"), 1);
|
|
27282
27888
|
var import_class_variance_authority5 = require("class-variance-authority");
|
|
27283
27889
|
var import_lucide_react27 = require("lucide-react");
|
|
27284
|
-
var
|
|
27285
|
-
var NavigationMenu =
|
|
27890
|
+
var import_jsx_runtime79 = require("react/jsx-runtime");
|
|
27891
|
+
var NavigationMenu = React52.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
|
|
27286
27892
|
NavigationMenuPrimitive.Root,
|
|
27287
27893
|
{
|
|
27288
27894
|
ref,
|
|
@@ -27290,12 +27896,12 @@ var NavigationMenu = React51.forwardRef(({ className, children, ...props }, ref)
|
|
|
27290
27896
|
...props,
|
|
27291
27897
|
children: [
|
|
27292
27898
|
children,
|
|
27293
|
-
/* @__PURE__ */ (0,
|
|
27899
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(NavigationMenuViewport, {})
|
|
27294
27900
|
]
|
|
27295
27901
|
}
|
|
27296
27902
|
));
|
|
27297
27903
|
NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
|
|
27298
|
-
var NavigationMenuList =
|
|
27904
|
+
var NavigationMenuList = React52.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
27299
27905
|
NavigationMenuPrimitive.List,
|
|
27300
27906
|
{
|
|
27301
27907
|
ref,
|
|
@@ -27308,7 +27914,7 @@ var NavigationMenuItem = NavigationMenuPrimitive.Item;
|
|
|
27308
27914
|
var navigationMenuTriggerStyle = (0, import_class_variance_authority5.cva)(
|
|
27309
27915
|
"group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-accent/50 data-[state=open]:bg-accent/50"
|
|
27310
27916
|
);
|
|
27311
|
-
var NavigationMenuTrigger =
|
|
27917
|
+
var NavigationMenuTrigger = React52.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
|
|
27312
27918
|
NavigationMenuPrimitive.Trigger,
|
|
27313
27919
|
{
|
|
27314
27920
|
ref,
|
|
@@ -27317,7 +27923,7 @@ var NavigationMenuTrigger = React51.forwardRef(({ className, children, ...props
|
|
|
27317
27923
|
children: [
|
|
27318
27924
|
children,
|
|
27319
27925
|
" ",
|
|
27320
|
-
/* @__PURE__ */ (0,
|
|
27926
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
27321
27927
|
import_lucide_react27.ChevronDown,
|
|
27322
27928
|
{
|
|
27323
27929
|
className: "relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180",
|
|
@@ -27328,7 +27934,7 @@ var NavigationMenuTrigger = React51.forwardRef(({ className, children, ...props
|
|
|
27328
27934
|
}
|
|
27329
27935
|
));
|
|
27330
27936
|
NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
|
|
27331
|
-
var NavigationMenuContent =
|
|
27937
|
+
var NavigationMenuContent = React52.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
27332
27938
|
NavigationMenuPrimitive.Content,
|
|
27333
27939
|
{
|
|
27334
27940
|
ref,
|
|
@@ -27341,7 +27947,7 @@ var NavigationMenuContent = React51.forwardRef(({ className, ...props }, ref) =>
|
|
|
27341
27947
|
));
|
|
27342
27948
|
NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
|
|
27343
27949
|
var NavigationMenuLink = NavigationMenuPrimitive.Link;
|
|
27344
|
-
var NavigationMenuViewport =
|
|
27950
|
+
var NavigationMenuViewport = React52.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
27345
27951
|
NavigationMenuPrimitive.Viewport,
|
|
27346
27952
|
{
|
|
27347
27953
|
className: cn(
|
|
@@ -27353,7 +27959,7 @@ var NavigationMenuViewport = React51.forwardRef(({ className, ...props }, ref) =
|
|
|
27353
27959
|
}
|
|
27354
27960
|
) }));
|
|
27355
27961
|
NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
|
|
27356
|
-
var NavigationMenuIndicator =
|
|
27962
|
+
var NavigationMenuIndicator = React52.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
27357
27963
|
NavigationMenuPrimitive.Indicator,
|
|
27358
27964
|
{
|
|
27359
27965
|
ref,
|
|
@@ -27362,16 +27968,16 @@ var NavigationMenuIndicator = React51.forwardRef(({ className, ...props }, ref)
|
|
|
27362
27968
|
className
|
|
27363
27969
|
),
|
|
27364
27970
|
...props,
|
|
27365
|
-
children: /* @__PURE__ */ (0,
|
|
27971
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md" })
|
|
27366
27972
|
}
|
|
27367
27973
|
));
|
|
27368
27974
|
NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName;
|
|
27369
27975
|
|
|
27370
27976
|
// src/components/ui/pagination.tsx
|
|
27371
|
-
var
|
|
27977
|
+
var React53 = __toESM(require("react"), 1);
|
|
27372
27978
|
var import_lucide_react28 = require("lucide-react");
|
|
27373
|
-
var
|
|
27374
|
-
var Pagination = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
27979
|
+
var import_jsx_runtime80 = require("react/jsx-runtime");
|
|
27980
|
+
var Pagination = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
|
|
27375
27981
|
"nav",
|
|
27376
27982
|
{
|
|
27377
27983
|
role: "navigation",
|
|
@@ -27381,13 +27987,13 @@ var Pagination = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_run
|
|
|
27381
27987
|
}
|
|
27382
27988
|
);
|
|
27383
27989
|
Pagination.displayName = "Pagination";
|
|
27384
|
-
var PaginationContent =
|
|
27385
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
27990
|
+
var PaginationContent = React53.forwardRef(
|
|
27991
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("ul", { ref, className: cn("flex flex-row items-center gap-1", className), ...props })
|
|
27386
27992
|
);
|
|
27387
27993
|
PaginationContent.displayName = "PaginationContent";
|
|
27388
|
-
var PaginationItem =
|
|
27994
|
+
var PaginationItem = React53.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("li", { ref, className: cn("", className), ...props }));
|
|
27389
27995
|
PaginationItem.displayName = "PaginationItem";
|
|
27390
|
-
var PaginationLink = ({ className, isActive, size = "icon", ...props }) => /* @__PURE__ */ (0,
|
|
27996
|
+
var PaginationLink = ({ className, isActive, size = "icon", ...props }) => /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
|
|
27391
27997
|
"a",
|
|
27392
27998
|
{
|
|
27393
27999
|
"aria-current": isActive ? "page" : void 0,
|
|
@@ -27402,29 +28008,29 @@ var PaginationLink = ({ className, isActive, size = "icon", ...props }) => /* @_
|
|
|
27402
28008
|
}
|
|
27403
28009
|
);
|
|
27404
28010
|
PaginationLink.displayName = "PaginationLink";
|
|
27405
|
-
var PaginationPrevious = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
27406
|
-
/* @__PURE__ */ (0,
|
|
27407
|
-
/* @__PURE__ */ (0,
|
|
28011
|
+
var PaginationPrevious = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(PaginationLink, { "aria-label": "Go to previous page", size: "default", className: cn("gap-1 pl-2.5", className), ...props, children: [
|
|
28012
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_lucide_react28.ChevronLeft, { className: "h-4 w-4" }),
|
|
28013
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { children: "Previous" })
|
|
27408
28014
|
] });
|
|
27409
28015
|
PaginationPrevious.displayName = "PaginationPrevious";
|
|
27410
|
-
var PaginationNext = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
27411
|
-
/* @__PURE__ */ (0,
|
|
27412
|
-
/* @__PURE__ */ (0,
|
|
28016
|
+
var PaginationNext = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(PaginationLink, { "aria-label": "Go to next page", size: "default", className: cn("gap-1 pr-2.5", className), ...props, children: [
|
|
28017
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { children: "Next" }),
|
|
28018
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_lucide_react28.ChevronRight, { className: "h-4 w-4" })
|
|
27413
28019
|
] });
|
|
27414
28020
|
PaginationNext.displayName = "PaginationNext";
|
|
27415
|
-
var PaginationEllipsis = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
27416
|
-
/* @__PURE__ */ (0,
|
|
27417
|
-
/* @__PURE__ */ (0,
|
|
28021
|
+
var PaginationEllipsis = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("span", { "aria-hidden": true, className: cn("flex h-9 w-9 items-center justify-center", className), ...props, children: [
|
|
28022
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_lucide_react28.MoreHorizontal, { className: "h-4 w-4" }),
|
|
28023
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "sr-only", children: "More pages" })
|
|
27418
28024
|
] });
|
|
27419
28025
|
PaginationEllipsis.displayName = "PaginationEllipsis";
|
|
27420
28026
|
|
|
27421
28027
|
// src/components/ui/popover.tsx
|
|
27422
|
-
var
|
|
28028
|
+
var React54 = __toESM(require("react"), 1);
|
|
27423
28029
|
var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"), 1);
|
|
27424
|
-
var
|
|
28030
|
+
var import_jsx_runtime81 = require("react/jsx-runtime");
|
|
27425
28031
|
var Popover = PopoverPrimitive.Root;
|
|
27426
28032
|
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
27427
|
-
var PopoverContent =
|
|
28033
|
+
var PopoverContent = React54.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(PopoverPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
27428
28034
|
PopoverPrimitive.Content,
|
|
27429
28035
|
{
|
|
27430
28036
|
ref,
|
|
@@ -27440,16 +28046,16 @@ var PopoverContent = React53.forwardRef(({ className, align = "center", sideOffs
|
|
|
27440
28046
|
PopoverContent.displayName = PopoverPrimitive.Content.displayName;
|
|
27441
28047
|
|
|
27442
28048
|
// src/components/ui/radio-group.tsx
|
|
27443
|
-
var
|
|
28049
|
+
var React55 = __toESM(require("react"), 1);
|
|
27444
28050
|
var RadioGroupPrimitive = __toESM(require("@radix-ui/react-radio-group"), 1);
|
|
27445
28051
|
var import_lucide_react29 = require("lucide-react");
|
|
27446
|
-
var
|
|
27447
|
-
var RadioGroup4 =
|
|
27448
|
-
return /* @__PURE__ */ (0,
|
|
28052
|
+
var import_jsx_runtime82 = require("react/jsx-runtime");
|
|
28053
|
+
var RadioGroup4 = React55.forwardRef(({ className, ...props }, ref) => {
|
|
28054
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(RadioGroupPrimitive.Root, { className: cn("grid gap-2", className), ...props, ref });
|
|
27449
28055
|
});
|
|
27450
28056
|
RadioGroup4.displayName = RadioGroupPrimitive.Root.displayName;
|
|
27451
|
-
var RadioGroupItem =
|
|
27452
|
-
return /* @__PURE__ */ (0,
|
|
28057
|
+
var RadioGroupItem = React55.forwardRef(({ className, ...props }, ref) => {
|
|
28058
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
27453
28059
|
RadioGroupPrimitive.Item,
|
|
27454
28060
|
{
|
|
27455
28061
|
ref,
|
|
@@ -27458,7 +28064,7 @@ var RadioGroupItem = React54.forwardRef(({ className, ...props }, ref) => {
|
|
|
27458
28064
|
className
|
|
27459
28065
|
),
|
|
27460
28066
|
...props,
|
|
27461
|
-
children: /* @__PURE__ */ (0,
|
|
28067
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react29.Circle, { className: "h-2.5 w-2.5 fill-current text-current" }) })
|
|
27462
28068
|
}
|
|
27463
28069
|
);
|
|
27464
28070
|
});
|
|
@@ -27467,8 +28073,8 @@ RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
|
|
|
27467
28073
|
// src/components/ui/resizable.tsx
|
|
27468
28074
|
var import_lucide_react30 = require("lucide-react");
|
|
27469
28075
|
var ResizablePrimitive = __toESM(require("react-resizable-panels"), 1);
|
|
27470
|
-
var
|
|
27471
|
-
var ResizablePanelGroup = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
28076
|
+
var import_jsx_runtime83 = require("react/jsx-runtime");
|
|
28077
|
+
var ResizablePanelGroup = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
27472
28078
|
ResizablePrimitive.PanelGroup,
|
|
27473
28079
|
{
|
|
27474
28080
|
className: cn("flex h-full w-full data-[panel-group-direction=vertical]:flex-col", className),
|
|
@@ -27480,7 +28086,7 @@ var ResizableHandle = ({
|
|
|
27480
28086
|
withHandle,
|
|
27481
28087
|
className,
|
|
27482
28088
|
...props
|
|
27483
|
-
}) => /* @__PURE__ */ (0,
|
|
28089
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
27484
28090
|
ResizablePrimitive.PanelResizeHandle,
|
|
27485
28091
|
{
|
|
27486
28092
|
className: cn(
|
|
@@ -27488,15 +28094,15 @@ var ResizableHandle = ({
|
|
|
27488
28094
|
className
|
|
27489
28095
|
),
|
|
27490
28096
|
...props,
|
|
27491
|
-
children: withHandle && /* @__PURE__ */ (0,
|
|
28097
|
+
children: withHandle && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border", children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(import_lucide_react30.GripVertical, { className: "h-2.5 w-2.5" }) })
|
|
27492
28098
|
}
|
|
27493
28099
|
);
|
|
27494
28100
|
|
|
27495
28101
|
// src/components/ui/separator.tsx
|
|
27496
|
-
var
|
|
28102
|
+
var React56 = __toESM(require("react"), 1);
|
|
27497
28103
|
var SeparatorPrimitive = __toESM(require("@radix-ui/react-separator"), 1);
|
|
27498
|
-
var
|
|
27499
|
-
var Separator5 =
|
|
28104
|
+
var import_jsx_runtime84 = require("react/jsx-runtime");
|
|
28105
|
+
var Separator5 = React56.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
|
|
27500
28106
|
SeparatorPrimitive.Root,
|
|
27501
28107
|
{
|
|
27502
28108
|
ref,
|
|
@@ -27512,13 +28118,13 @@ Separator5.displayName = SeparatorPrimitive.Root.displayName;
|
|
|
27512
28118
|
var SheetPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
|
|
27513
28119
|
var import_class_variance_authority6 = require("class-variance-authority");
|
|
27514
28120
|
var import_lucide_react31 = require("lucide-react");
|
|
27515
|
-
var
|
|
27516
|
-
var
|
|
28121
|
+
var React57 = __toESM(require("react"), 1);
|
|
28122
|
+
var import_jsx_runtime85 = require("react/jsx-runtime");
|
|
27517
28123
|
var Sheet = SheetPrimitive.Root;
|
|
27518
28124
|
var SheetTrigger = SheetPrimitive.Trigger;
|
|
27519
28125
|
var SheetClose = SheetPrimitive.Close;
|
|
27520
28126
|
var SheetPortal = SheetPrimitive.Portal;
|
|
27521
|
-
var SheetOverlay =
|
|
28127
|
+
var SheetOverlay = React57.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
|
|
27522
28128
|
SheetPrimitive.Overlay,
|
|
27523
28129
|
{
|
|
27524
28130
|
className: cn(
|
|
@@ -27546,7 +28152,7 @@ var sheetVariants = (0, import_class_variance_authority6.cva)(
|
|
|
27546
28152
|
}
|
|
27547
28153
|
}
|
|
27548
28154
|
);
|
|
27549
|
-
var SheetContent =
|
|
28155
|
+
var SheetContent = React57.forwardRef(
|
|
27550
28156
|
({
|
|
27551
28157
|
side = "right",
|
|
27552
28158
|
className,
|
|
@@ -27555,11 +28161,11 @@ var SheetContent = React56.forwardRef(
|
|
|
27555
28161
|
closeButtonClassName,
|
|
27556
28162
|
closeButtonLabel = "Close",
|
|
27557
28163
|
...props
|
|
27558
|
-
}, ref) => /* @__PURE__ */ (0,
|
|
27559
|
-
/* @__PURE__ */ (0,
|
|
27560
|
-
/* @__PURE__ */ (0,
|
|
28164
|
+
}, ref) => /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(SheetPortal, { children: [
|
|
28165
|
+
/* @__PURE__ */ (0, import_jsx_runtime85.jsx)(SheetOverlay, {}),
|
|
28166
|
+
/* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(SheetPrimitive.Content, { ref, className: cn(sheetVariants({ side }), className), ...props, children: [
|
|
27561
28167
|
children,
|
|
27562
|
-
showCloseButton ? /* @__PURE__ */ (0,
|
|
28168
|
+
showCloseButton ? /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(
|
|
27563
28169
|
SheetPrimitive.Close,
|
|
27564
28170
|
{
|
|
27565
28171
|
className: cn(
|
|
@@ -27567,8 +28173,8 @@ var SheetContent = React56.forwardRef(
|
|
|
27567
28173
|
closeButtonClassName
|
|
27568
28174
|
),
|
|
27569
28175
|
children: [
|
|
27570
|
-
/* @__PURE__ */ (0,
|
|
27571
|
-
/* @__PURE__ */ (0,
|
|
28176
|
+
/* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react31.X, { className: "h-4 w-4" }),
|
|
28177
|
+
/* @__PURE__ */ (0, import_jsx_runtime85.jsx)("span", { className: "sr-only", children: closeButtonLabel })
|
|
27572
28178
|
]
|
|
27573
28179
|
}
|
|
27574
28180
|
) : null
|
|
@@ -27576,27 +28182,27 @@ var SheetContent = React56.forwardRef(
|
|
|
27576
28182
|
] })
|
|
27577
28183
|
);
|
|
27578
28184
|
SheetContent.displayName = SheetPrimitive.Content.displayName;
|
|
27579
|
-
var SheetHeader = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
28185
|
+
var SheetHeader = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("div", { className: cn("flex flex-col space-y-2 text-center sm:text-left", className), ...props });
|
|
27580
28186
|
SheetHeader.displayName = "SheetHeader";
|
|
27581
|
-
var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
28187
|
+
var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
|
|
27582
28188
|
SheetFooter.displayName = "SheetFooter";
|
|
27583
|
-
var SheetTitle =
|
|
28189
|
+
var SheetTitle = React57.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(SheetPrimitive.Title, { ref, className: cn("text-lg font-semibold text-foreground", className), ...props }));
|
|
27584
28190
|
SheetTitle.displayName = SheetPrimitive.Title.displayName;
|
|
27585
|
-
var SheetDescription =
|
|
28191
|
+
var SheetDescription = React57.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(SheetPrimitive.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
|
|
27586
28192
|
SheetDescription.displayName = SheetPrimitive.Description.displayName;
|
|
27587
28193
|
|
|
27588
28194
|
// src/components/ui/sidebar.tsx
|
|
27589
|
-
var
|
|
28195
|
+
var React59 = __toESM(require("react"), 1);
|
|
27590
28196
|
var import_react_slot4 = require("@radix-ui/react-slot");
|
|
27591
28197
|
var import_class_variance_authority7 = require("class-variance-authority");
|
|
27592
28198
|
var import_lucide_react32 = require("lucide-react");
|
|
27593
28199
|
|
|
27594
28200
|
// src/hooks/use-mobile.tsx
|
|
27595
|
-
var
|
|
28201
|
+
var React58 = __toESM(require("react"), 1);
|
|
27596
28202
|
var MOBILE_BREAKPOINT = 768;
|
|
27597
28203
|
function useIsMobile() {
|
|
27598
|
-
const [isMobile, setIsMobile] =
|
|
27599
|
-
|
|
28204
|
+
const [isMobile, setIsMobile] = React58.useState(void 0);
|
|
28205
|
+
React58.useEffect(() => {
|
|
27600
28206
|
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
27601
28207
|
const onChange = () => {
|
|
27602
28208
|
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
@@ -27609,27 +28215,27 @@ function useIsMobile() {
|
|
|
27609
28215
|
}
|
|
27610
28216
|
|
|
27611
28217
|
// src/components/ui/sidebar.tsx
|
|
27612
|
-
var
|
|
28218
|
+
var import_jsx_runtime86 = require("react/jsx-runtime");
|
|
27613
28219
|
var SIDEBAR_COOKIE_NAME = "sidebar:state";
|
|
27614
28220
|
var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
|
|
27615
28221
|
var SIDEBAR_WIDTH = "16rem";
|
|
27616
28222
|
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
27617
28223
|
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
27618
28224
|
var SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
27619
|
-
var SidebarContext =
|
|
28225
|
+
var SidebarContext = React59.createContext(null);
|
|
27620
28226
|
function useSidebar() {
|
|
27621
|
-
const context =
|
|
28227
|
+
const context = React59.useContext(SidebarContext);
|
|
27622
28228
|
if (!context) {
|
|
27623
28229
|
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
27624
28230
|
}
|
|
27625
28231
|
return context;
|
|
27626
28232
|
}
|
|
27627
|
-
var SidebarProvider =
|
|
28233
|
+
var SidebarProvider = React59.forwardRef(({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }, ref) => {
|
|
27628
28234
|
const isMobile = useIsMobile();
|
|
27629
|
-
const [openMobile, setOpenMobile] =
|
|
27630
|
-
const [_open, _setOpen] =
|
|
28235
|
+
const [openMobile, setOpenMobile] = React59.useState(false);
|
|
28236
|
+
const [_open, _setOpen] = React59.useState(defaultOpen);
|
|
27631
28237
|
const open = openProp != null ? openProp : _open;
|
|
27632
|
-
const setOpen =
|
|
28238
|
+
const setOpen = React59.useCallback(
|
|
27633
28239
|
(value) => {
|
|
27634
28240
|
const openState = typeof value === "function" ? value(open) : value;
|
|
27635
28241
|
if (setOpenProp) {
|
|
@@ -27641,10 +28247,10 @@ var SidebarProvider = React58.forwardRef(({ defaultOpen = true, open: openProp,
|
|
|
27641
28247
|
},
|
|
27642
28248
|
[setOpenProp, open]
|
|
27643
28249
|
);
|
|
27644
|
-
const toggleSidebar =
|
|
28250
|
+
const toggleSidebar = React59.useCallback(() => {
|
|
27645
28251
|
return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
|
|
27646
28252
|
}, [isMobile, setOpen, setOpenMobile]);
|
|
27647
|
-
|
|
28253
|
+
React59.useEffect(() => {
|
|
27648
28254
|
const handleKeyDown = (event) => {
|
|
27649
28255
|
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
27650
28256
|
event.preventDefault();
|
|
@@ -27655,7 +28261,7 @@ var SidebarProvider = React58.forwardRef(({ defaultOpen = true, open: openProp,
|
|
|
27655
28261
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
27656
28262
|
}, [toggleSidebar]);
|
|
27657
28263
|
const state = open ? "expanded" : "collapsed";
|
|
27658
|
-
const contextValue =
|
|
28264
|
+
const contextValue = React59.useMemo(
|
|
27659
28265
|
() => ({
|
|
27660
28266
|
state,
|
|
27661
28267
|
open,
|
|
@@ -27667,7 +28273,7 @@ var SidebarProvider = React58.forwardRef(({ defaultOpen = true, open: openProp,
|
|
|
27667
28273
|
}),
|
|
27668
28274
|
[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
|
|
27669
28275
|
);
|
|
27670
|
-
return /* @__PURE__ */ (0,
|
|
28276
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
27671
28277
|
"div",
|
|
27672
28278
|
{
|
|
27673
28279
|
style: {
|
|
@@ -27683,10 +28289,10 @@ var SidebarProvider = React58.forwardRef(({ defaultOpen = true, open: openProp,
|
|
|
27683
28289
|
) }) });
|
|
27684
28290
|
});
|
|
27685
28291
|
SidebarProvider.displayName = "SidebarProvider";
|
|
27686
|
-
var Sidebar =
|
|
28292
|
+
var Sidebar = React59.forwardRef(({ side = "left", variant = "sidebar", collapsible = "offcanvas", className, children, ...props }, ref) => {
|
|
27687
28293
|
const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
|
|
27688
28294
|
if (collapsible === "none") {
|
|
27689
|
-
return /* @__PURE__ */ (0,
|
|
28295
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
27690
28296
|
"div",
|
|
27691
28297
|
{
|
|
27692
28298
|
className: cn("flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground", className),
|
|
@@ -27697,7 +28303,7 @@ var Sidebar = React58.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
27697
28303
|
);
|
|
27698
28304
|
}
|
|
27699
28305
|
if (isMobile) {
|
|
27700
|
-
return /* @__PURE__ */ (0,
|
|
28306
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
27701
28307
|
SheetContent,
|
|
27702
28308
|
{
|
|
27703
28309
|
"data-sidebar": "sidebar",
|
|
@@ -27707,11 +28313,11 @@ var Sidebar = React58.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
27707
28313
|
"--sidebar-width": SIDEBAR_WIDTH_MOBILE
|
|
27708
28314
|
},
|
|
27709
28315
|
side,
|
|
27710
|
-
children: /* @__PURE__ */ (0,
|
|
28316
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("div", { className: "flex h-full w-full flex-col", children })
|
|
27711
28317
|
}
|
|
27712
28318
|
) });
|
|
27713
28319
|
}
|
|
27714
|
-
return /* @__PURE__ */ (0,
|
|
28320
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(
|
|
27715
28321
|
"div",
|
|
27716
28322
|
{
|
|
27717
28323
|
ref,
|
|
@@ -27721,7 +28327,7 @@ var Sidebar = React58.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
27721
28327
|
"data-variant": variant,
|
|
27722
28328
|
"data-side": side,
|
|
27723
28329
|
children: [
|
|
27724
|
-
/* @__PURE__ */ (0,
|
|
28330
|
+
/* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
27725
28331
|
"div",
|
|
27726
28332
|
{
|
|
27727
28333
|
className: cn(
|
|
@@ -27732,7 +28338,7 @@ var Sidebar = React58.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
27732
28338
|
)
|
|
27733
28339
|
}
|
|
27734
28340
|
),
|
|
27735
|
-
/* @__PURE__ */ (0,
|
|
28341
|
+
/* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
27736
28342
|
"div",
|
|
27737
28343
|
{
|
|
27738
28344
|
className: cn(
|
|
@@ -27743,7 +28349,7 @@ var Sidebar = React58.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
27743
28349
|
className
|
|
27744
28350
|
),
|
|
27745
28351
|
...props,
|
|
27746
|
-
children: /* @__PURE__ */ (0,
|
|
28352
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
27747
28353
|
"div",
|
|
27748
28354
|
{
|
|
27749
28355
|
"data-sidebar": "sidebar",
|
|
@@ -27758,10 +28364,10 @@ var Sidebar = React58.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
27758
28364
|
);
|
|
27759
28365
|
});
|
|
27760
28366
|
Sidebar.displayName = "Sidebar";
|
|
27761
|
-
var SidebarTrigger =
|
|
28367
|
+
var SidebarTrigger = React59.forwardRef(
|
|
27762
28368
|
({ className, onClick, ...props }, ref) => {
|
|
27763
28369
|
const { toggleSidebar } = useSidebar();
|
|
27764
|
-
return /* @__PURE__ */ (0,
|
|
28370
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(
|
|
27765
28371
|
Button,
|
|
27766
28372
|
{
|
|
27767
28373
|
ref,
|
|
@@ -27775,18 +28381,18 @@ var SidebarTrigger = React58.forwardRef(
|
|
|
27775
28381
|
},
|
|
27776
28382
|
...props,
|
|
27777
28383
|
children: [
|
|
27778
|
-
/* @__PURE__ */ (0,
|
|
27779
|
-
/* @__PURE__ */ (0,
|
|
28384
|
+
/* @__PURE__ */ (0, import_jsx_runtime86.jsx)(import_lucide_react32.PanelLeft, {}),
|
|
28385
|
+
/* @__PURE__ */ (0, import_jsx_runtime86.jsx)("span", { className: "sr-only", children: "Toggle Sidebar" })
|
|
27780
28386
|
]
|
|
27781
28387
|
}
|
|
27782
28388
|
);
|
|
27783
28389
|
}
|
|
27784
28390
|
);
|
|
27785
28391
|
SidebarTrigger.displayName = "SidebarTrigger";
|
|
27786
|
-
var SidebarRail =
|
|
28392
|
+
var SidebarRail = React59.forwardRef(
|
|
27787
28393
|
({ className, ...props }, ref) => {
|
|
27788
28394
|
const { toggleSidebar } = useSidebar();
|
|
27789
|
-
return /* @__PURE__ */ (0,
|
|
28395
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
27790
28396
|
"button",
|
|
27791
28397
|
{
|
|
27792
28398
|
ref,
|
|
@@ -27810,8 +28416,8 @@ var SidebarRail = React58.forwardRef(
|
|
|
27810
28416
|
}
|
|
27811
28417
|
);
|
|
27812
28418
|
SidebarRail.displayName = "SidebarRail";
|
|
27813
|
-
var SidebarInset =
|
|
27814
|
-
return /* @__PURE__ */ (0,
|
|
28419
|
+
var SidebarInset = React59.forwardRef(({ className, ...props }, ref) => {
|
|
28420
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
27815
28421
|
"main",
|
|
27816
28422
|
{
|
|
27817
28423
|
ref,
|
|
@@ -27825,9 +28431,9 @@ var SidebarInset = React58.forwardRef(({ className, ...props }, ref) => {
|
|
|
27825
28431
|
);
|
|
27826
28432
|
});
|
|
27827
28433
|
SidebarInset.displayName = "SidebarInset";
|
|
27828
|
-
var SidebarInput =
|
|
28434
|
+
var SidebarInput = React59.forwardRef(
|
|
27829
28435
|
({ className, ...props }, ref) => {
|
|
27830
|
-
return /* @__PURE__ */ (0,
|
|
28436
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
27831
28437
|
Input,
|
|
27832
28438
|
{
|
|
27833
28439
|
ref,
|
|
@@ -27842,17 +28448,17 @@ var SidebarInput = React58.forwardRef(
|
|
|
27842
28448
|
}
|
|
27843
28449
|
);
|
|
27844
28450
|
SidebarInput.displayName = "SidebarInput";
|
|
27845
|
-
var SidebarHeader =
|
|
27846
|
-
return /* @__PURE__ */ (0,
|
|
28451
|
+
var SidebarHeader = React59.forwardRef(({ className, ...props }, ref) => {
|
|
28452
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("div", { ref, "data-sidebar": "header", className: cn("flex flex-col gap-2 p-2", className), ...props });
|
|
27847
28453
|
});
|
|
27848
28454
|
SidebarHeader.displayName = "SidebarHeader";
|
|
27849
|
-
var SidebarFooter =
|
|
27850
|
-
return /* @__PURE__ */ (0,
|
|
28455
|
+
var SidebarFooter = React59.forwardRef(({ className, ...props }, ref) => {
|
|
28456
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("div", { ref, "data-sidebar": "footer", className: cn("flex flex-col gap-2 p-2", className), ...props });
|
|
27851
28457
|
});
|
|
27852
28458
|
SidebarFooter.displayName = "SidebarFooter";
|
|
27853
|
-
var SidebarSeparator =
|
|
28459
|
+
var SidebarSeparator = React59.forwardRef(
|
|
27854
28460
|
({ className, ...props }, ref) => {
|
|
27855
|
-
return /* @__PURE__ */ (0,
|
|
28461
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
27856
28462
|
Separator5,
|
|
27857
28463
|
{
|
|
27858
28464
|
ref,
|
|
@@ -27864,8 +28470,8 @@ var SidebarSeparator = React58.forwardRef(
|
|
|
27864
28470
|
}
|
|
27865
28471
|
);
|
|
27866
28472
|
SidebarSeparator.displayName = "SidebarSeparator";
|
|
27867
|
-
var SidebarContent =
|
|
27868
|
-
return /* @__PURE__ */ (0,
|
|
28473
|
+
var SidebarContent = React59.forwardRef(({ className, ...props }, ref) => {
|
|
28474
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
27869
28475
|
"div",
|
|
27870
28476
|
{
|
|
27871
28477
|
ref,
|
|
@@ -27879,8 +28485,8 @@ var SidebarContent = React58.forwardRef(({ className, ...props }, ref) => {
|
|
|
27879
28485
|
);
|
|
27880
28486
|
});
|
|
27881
28487
|
SidebarContent.displayName = "SidebarContent";
|
|
27882
|
-
var SidebarGroup =
|
|
27883
|
-
return /* @__PURE__ */ (0,
|
|
28488
|
+
var SidebarGroup = React59.forwardRef(({ className, ...props }, ref) => {
|
|
28489
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
27884
28490
|
"div",
|
|
27885
28491
|
{
|
|
27886
28492
|
ref,
|
|
@@ -27891,10 +28497,10 @@ var SidebarGroup = React58.forwardRef(({ className, ...props }, ref) => {
|
|
|
27891
28497
|
);
|
|
27892
28498
|
});
|
|
27893
28499
|
SidebarGroup.displayName = "SidebarGroup";
|
|
27894
|
-
var SidebarGroupLabel =
|
|
28500
|
+
var SidebarGroupLabel = React59.forwardRef(
|
|
27895
28501
|
({ className, asChild = false, ...props }, ref) => {
|
|
27896
28502
|
const Comp = asChild ? import_react_slot4.Slot : "div";
|
|
27897
|
-
return /* @__PURE__ */ (0,
|
|
28503
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
27898
28504
|
Comp,
|
|
27899
28505
|
{
|
|
27900
28506
|
ref,
|
|
@@ -27910,10 +28516,10 @@ var SidebarGroupLabel = React58.forwardRef(
|
|
|
27910
28516
|
}
|
|
27911
28517
|
);
|
|
27912
28518
|
SidebarGroupLabel.displayName = "SidebarGroupLabel";
|
|
27913
|
-
var SidebarGroupAction =
|
|
28519
|
+
var SidebarGroupAction = React59.forwardRef(
|
|
27914
28520
|
({ className, asChild = false, ...props }, ref) => {
|
|
27915
28521
|
const Comp = asChild ? import_react_slot4.Slot : "button";
|
|
27916
|
-
return /* @__PURE__ */ (0,
|
|
28522
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
27917
28523
|
Comp,
|
|
27918
28524
|
{
|
|
27919
28525
|
ref,
|
|
@@ -27931,13 +28537,13 @@ var SidebarGroupAction = React58.forwardRef(
|
|
|
27931
28537
|
}
|
|
27932
28538
|
);
|
|
27933
28539
|
SidebarGroupAction.displayName = "SidebarGroupAction";
|
|
27934
|
-
var SidebarGroupContent =
|
|
27935
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
28540
|
+
var SidebarGroupContent = React59.forwardRef(
|
|
28541
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("div", { ref, "data-sidebar": "group-content", className: cn("w-full text-sm", className), ...props })
|
|
27936
28542
|
);
|
|
27937
28543
|
SidebarGroupContent.displayName = "SidebarGroupContent";
|
|
27938
|
-
var SidebarMenu =
|
|
28544
|
+
var SidebarMenu = React59.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("ul", { ref, "data-sidebar": "menu", className: cn("flex w-full min-w-0 flex-col gap-1", className), ...props }));
|
|
27939
28545
|
SidebarMenu.displayName = "SidebarMenu";
|
|
27940
|
-
var SidebarMenuItem =
|
|
28546
|
+
var SidebarMenuItem = React59.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("li", { ref, "data-sidebar": "menu-item", className: cn("group/menu-item relative", className), ...props }));
|
|
27941
28547
|
SidebarMenuItem.displayName = "SidebarMenuItem";
|
|
27942
28548
|
var sidebarMenuButtonVariants = (0, import_class_variance_authority7.cva)(
|
|
27943
28549
|
"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
|
|
@@ -27959,10 +28565,10 @@ var sidebarMenuButtonVariants = (0, import_class_variance_authority7.cva)(
|
|
|
27959
28565
|
}
|
|
27960
28566
|
}
|
|
27961
28567
|
);
|
|
27962
|
-
var SidebarMenuButton =
|
|
28568
|
+
var SidebarMenuButton = React59.forwardRef(({ asChild = false, isActive = false, variant = "default", size = "default", tooltip, className, ...props }, ref) => {
|
|
27963
28569
|
const Comp = asChild ? import_react_slot4.Slot : "button";
|
|
27964
28570
|
const { isMobile, state } = useSidebar();
|
|
27965
|
-
const button = /* @__PURE__ */ (0,
|
|
28571
|
+
const button = /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
27966
28572
|
Comp,
|
|
27967
28573
|
{
|
|
27968
28574
|
ref,
|
|
@@ -27981,15 +28587,15 @@ var SidebarMenuButton = React58.forwardRef(({ asChild = false, isActive = false,
|
|
|
27981
28587
|
children: tooltip
|
|
27982
28588
|
};
|
|
27983
28589
|
}
|
|
27984
|
-
return /* @__PURE__ */ (0,
|
|
27985
|
-
/* @__PURE__ */ (0,
|
|
27986
|
-
/* @__PURE__ */ (0,
|
|
28590
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(Tooltip, { children: [
|
|
28591
|
+
/* @__PURE__ */ (0, import_jsx_runtime86.jsx)(TooltipTrigger, { asChild: true, children: button }),
|
|
28592
|
+
/* @__PURE__ */ (0, import_jsx_runtime86.jsx)(TooltipContent, { side: "right", align: "center", hidden: state !== "collapsed" || isMobile, ...tooltip })
|
|
27987
28593
|
] });
|
|
27988
28594
|
});
|
|
27989
28595
|
SidebarMenuButton.displayName = "SidebarMenuButton";
|
|
27990
|
-
var SidebarMenuAction =
|
|
28596
|
+
var SidebarMenuAction = React59.forwardRef(({ className, asChild = false, showOnHover = false, ...props }, ref) => {
|
|
27991
28597
|
const Comp = asChild ? import_react_slot4.Slot : "button";
|
|
27992
|
-
return /* @__PURE__ */ (0,
|
|
28598
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
27993
28599
|
Comp,
|
|
27994
28600
|
{
|
|
27995
28601
|
ref,
|
|
@@ -28010,8 +28616,8 @@ var SidebarMenuAction = React58.forwardRef(({ className, asChild = false, showOn
|
|
|
28010
28616
|
);
|
|
28011
28617
|
});
|
|
28012
28618
|
SidebarMenuAction.displayName = "SidebarMenuAction";
|
|
28013
|
-
var SidebarMenuBadge =
|
|
28014
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
28619
|
+
var SidebarMenuBadge = React59.forwardRef(
|
|
28620
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
28015
28621
|
"div",
|
|
28016
28622
|
{
|
|
28017
28623
|
ref,
|
|
@@ -28030,11 +28636,11 @@ var SidebarMenuBadge = React58.forwardRef(
|
|
|
28030
28636
|
)
|
|
28031
28637
|
);
|
|
28032
28638
|
SidebarMenuBadge.displayName = "SidebarMenuBadge";
|
|
28033
|
-
var SidebarMenuSkeleton =
|
|
28034
|
-
const width =
|
|
28639
|
+
var SidebarMenuSkeleton = React59.forwardRef(({ className, showIcon = false, ...props }, ref) => {
|
|
28640
|
+
const width = React59.useMemo(() => {
|
|
28035
28641
|
return `${Math.floor(Math.random() * 40) + 50}%`;
|
|
28036
28642
|
}, []);
|
|
28037
|
-
return /* @__PURE__ */ (0,
|
|
28643
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(
|
|
28038
28644
|
"div",
|
|
28039
28645
|
{
|
|
28040
28646
|
ref,
|
|
@@ -28042,8 +28648,8 @@ var SidebarMenuSkeleton = React58.forwardRef(({ className, showIcon = false, ...
|
|
|
28042
28648
|
className: cn("flex h-8 items-center gap-2 rounded-md px-2", className),
|
|
28043
28649
|
...props,
|
|
28044
28650
|
children: [
|
|
28045
|
-
showIcon && /* @__PURE__ */ (0,
|
|
28046
|
-
/* @__PURE__ */ (0,
|
|
28651
|
+
showIcon && /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(Skeleton, { className: "size-4 rounded-md", "data-sidebar": "menu-skeleton-icon" }),
|
|
28652
|
+
/* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
28047
28653
|
Skeleton,
|
|
28048
28654
|
{
|
|
28049
28655
|
className: "h-4 max-w-[--skeleton-width] flex-1",
|
|
@@ -28058,8 +28664,8 @@ var SidebarMenuSkeleton = React58.forwardRef(({ className, showIcon = false, ...
|
|
|
28058
28664
|
);
|
|
28059
28665
|
});
|
|
28060
28666
|
SidebarMenuSkeleton.displayName = "SidebarMenuSkeleton";
|
|
28061
|
-
var SidebarMenuSub =
|
|
28062
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
28667
|
+
var SidebarMenuSub = React59.forwardRef(
|
|
28668
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
28063
28669
|
"ul",
|
|
28064
28670
|
{
|
|
28065
28671
|
ref,
|
|
@@ -28074,11 +28680,11 @@ var SidebarMenuSub = React58.forwardRef(
|
|
|
28074
28680
|
)
|
|
28075
28681
|
);
|
|
28076
28682
|
SidebarMenuSub.displayName = "SidebarMenuSub";
|
|
28077
|
-
var SidebarMenuSubItem =
|
|
28683
|
+
var SidebarMenuSubItem = React59.forwardRef(({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("li", { ref, ...props }));
|
|
28078
28684
|
SidebarMenuSubItem.displayName = "SidebarMenuSubItem";
|
|
28079
|
-
var SidebarMenuSubButton =
|
|
28685
|
+
var SidebarMenuSubButton = React59.forwardRef(({ asChild = false, size = "md", isActive, className, ...props }, ref) => {
|
|
28080
28686
|
const Comp = asChild ? import_react_slot4.Slot : "a";
|
|
28081
|
-
return /* @__PURE__ */ (0,
|
|
28687
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
28082
28688
|
Comp,
|
|
28083
28689
|
{
|
|
28084
28690
|
ref,
|
|
@@ -28100,44 +28706,44 @@ var SidebarMenuSubButton = React58.forwardRef(({ asChild = false, size = "md", i
|
|
|
28100
28706
|
SidebarMenuSubButton.displayName = "SidebarMenuSubButton";
|
|
28101
28707
|
|
|
28102
28708
|
// src/components/ui/slider.tsx
|
|
28103
|
-
var
|
|
28709
|
+
var React60 = __toESM(require("react"), 1);
|
|
28104
28710
|
var SliderPrimitive = __toESM(require("@radix-ui/react-slider"), 1);
|
|
28105
|
-
var
|
|
28106
|
-
var Slider =
|
|
28711
|
+
var import_jsx_runtime87 = require("react/jsx-runtime");
|
|
28712
|
+
var Slider = React60.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(
|
|
28107
28713
|
SliderPrimitive.Root,
|
|
28108
28714
|
{
|
|
28109
28715
|
ref,
|
|
28110
28716
|
className: cn("relative flex w-full touch-none select-none items-center", className),
|
|
28111
28717
|
...props,
|
|
28112
28718
|
children: [
|
|
28113
|
-
/* @__PURE__ */ (0,
|
|
28114
|
-
/* @__PURE__ */ (0,
|
|
28719
|
+
/* @__PURE__ */ (0, import_jsx_runtime87.jsx)(SliderPrimitive.Track, { className: "relative h-2 w-full grow overflow-hidden rounded-full bg-secondary", children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }),
|
|
28720
|
+
/* @__PURE__ */ (0, import_jsx_runtime87.jsx)(SliderPrimitive.Thumb, { className: "block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50" })
|
|
28115
28721
|
]
|
|
28116
28722
|
}
|
|
28117
28723
|
));
|
|
28118
28724
|
Slider.displayName = SliderPrimitive.Root.displayName;
|
|
28119
28725
|
|
|
28120
28726
|
// src/components/ui/table.tsx
|
|
28121
|
-
var
|
|
28122
|
-
var
|
|
28123
|
-
var Table =
|
|
28124
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
28727
|
+
var React61 = __toESM(require("react"), 1);
|
|
28728
|
+
var import_jsx_runtime88 = require("react/jsx-runtime");
|
|
28729
|
+
var Table = React61.forwardRef(
|
|
28730
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("table", { ref, className: cn("w-full caption-bottom text-sm", className), ...props }) })
|
|
28125
28731
|
);
|
|
28126
28732
|
Table.displayName = "Table";
|
|
28127
|
-
var TableHeader =
|
|
28128
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
28733
|
+
var TableHeader = React61.forwardRef(
|
|
28734
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("thead", { ref, className: cn("[&_tr]:border-b", className), ...props })
|
|
28129
28735
|
);
|
|
28130
28736
|
TableHeader.displayName = "TableHeader";
|
|
28131
|
-
var TableBody =
|
|
28132
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
28737
|
+
var TableBody = React61.forwardRef(
|
|
28738
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("tbody", { ref, className: cn("[&_tr:last-child]:border-0", className), ...props })
|
|
28133
28739
|
);
|
|
28134
28740
|
TableBody.displayName = "TableBody";
|
|
28135
|
-
var TableFooter =
|
|
28136
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
28741
|
+
var TableFooter = React61.forwardRef(
|
|
28742
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("tfoot", { ref, className: cn("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", className), ...props })
|
|
28137
28743
|
);
|
|
28138
28744
|
TableFooter.displayName = "TableFooter";
|
|
28139
|
-
var TableRow =
|
|
28140
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
28745
|
+
var TableRow = React61.forwardRef(
|
|
28746
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(
|
|
28141
28747
|
"tr",
|
|
28142
28748
|
{
|
|
28143
28749
|
ref,
|
|
@@ -28147,8 +28753,8 @@ var TableRow = React60.forwardRef(
|
|
|
28147
28753
|
)
|
|
28148
28754
|
);
|
|
28149
28755
|
TableRow.displayName = "TableRow";
|
|
28150
|
-
var TableHead =
|
|
28151
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
28756
|
+
var TableHead = React61.forwardRef(
|
|
28757
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(
|
|
28152
28758
|
"th",
|
|
28153
28759
|
{
|
|
28154
28760
|
ref,
|
|
@@ -28161,23 +28767,23 @@ var TableHead = React60.forwardRef(
|
|
|
28161
28767
|
)
|
|
28162
28768
|
);
|
|
28163
28769
|
TableHead.displayName = "TableHead";
|
|
28164
|
-
var TableCell =
|
|
28165
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
28770
|
+
var TableCell = React61.forwardRef(
|
|
28771
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("td", { ref, className: cn("p-4 align-middle [&:has([role=checkbox])]:pr-0", className), ...props })
|
|
28166
28772
|
);
|
|
28167
28773
|
TableCell.displayName = "TableCell";
|
|
28168
|
-
var TableCaption =
|
|
28169
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
28774
|
+
var TableCaption = React61.forwardRef(
|
|
28775
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("caption", { ref, className: cn("mt-4 text-sm text-muted-foreground", className), ...props })
|
|
28170
28776
|
);
|
|
28171
28777
|
TableCaption.displayName = "TableCaption";
|
|
28172
28778
|
|
|
28173
28779
|
// src/components/ui/toast.tsx
|
|
28174
|
-
var
|
|
28780
|
+
var React62 = __toESM(require("react"), 1);
|
|
28175
28781
|
var ToastPrimitives = __toESM(require("@radix-ui/react-toast"), 1);
|
|
28176
28782
|
var import_class_variance_authority8 = require("class-variance-authority");
|
|
28177
28783
|
var import_lucide_react33 = require("lucide-react");
|
|
28178
|
-
var
|
|
28784
|
+
var import_jsx_runtime89 = require("react/jsx-runtime");
|
|
28179
28785
|
var ToastProvider = ToastPrimitives.Provider;
|
|
28180
|
-
var ToastViewport =
|
|
28786
|
+
var ToastViewport = React62.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
|
|
28181
28787
|
ToastPrimitives.Viewport,
|
|
28182
28788
|
{
|
|
28183
28789
|
ref,
|
|
@@ -28203,11 +28809,11 @@ var toastVariants = (0, import_class_variance_authority8.cva)(
|
|
|
28203
28809
|
}
|
|
28204
28810
|
}
|
|
28205
28811
|
);
|
|
28206
|
-
var Toast =
|
|
28207
|
-
return /* @__PURE__ */ (0,
|
|
28812
|
+
var Toast = React62.forwardRef(({ className, variant, ...props }, ref) => {
|
|
28813
|
+
return /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(ToastPrimitives.Root, { ref, className: cn(toastVariants({ variant }), className), ...props });
|
|
28208
28814
|
});
|
|
28209
28815
|
Toast.displayName = ToastPrimitives.Root.displayName;
|
|
28210
|
-
var ToastAction =
|
|
28816
|
+
var ToastAction = React62.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
|
|
28211
28817
|
ToastPrimitives.Action,
|
|
28212
28818
|
{
|
|
28213
28819
|
ref,
|
|
@@ -28219,7 +28825,7 @@ var ToastAction = React61.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
28219
28825
|
}
|
|
28220
28826
|
));
|
|
28221
28827
|
ToastAction.displayName = ToastPrimitives.Action.displayName;
|
|
28222
|
-
var ToastClose =
|
|
28828
|
+
var ToastClose = React62.forwardRef(({ className, onClick, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
|
|
28223
28829
|
ToastPrimitives.Close,
|
|
28224
28830
|
{
|
|
28225
28831
|
ref,
|
|
@@ -28233,39 +28839,39 @@ var ToastClose = React61.forwardRef(({ className, onClick, ...props }, ref) => /
|
|
|
28233
28839
|
},
|
|
28234
28840
|
"toast-close": "",
|
|
28235
28841
|
...props,
|
|
28236
|
-
children: /* @__PURE__ */ (0,
|
|
28842
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(import_lucide_react33.X, { className: "h-4 w-4" })
|
|
28237
28843
|
}
|
|
28238
28844
|
));
|
|
28239
28845
|
ToastClose.displayName = ToastPrimitives.Close.displayName;
|
|
28240
|
-
var ToastTitle =
|
|
28846
|
+
var ToastTitle = React62.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(ToastPrimitives.Title, { ref, className: cn("text-sm font-semibold", className), ...props }));
|
|
28241
28847
|
ToastTitle.displayName = ToastPrimitives.Title.displayName;
|
|
28242
|
-
var ToastDescription =
|
|
28848
|
+
var ToastDescription = React62.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(ToastPrimitives.Description, { ref, className: cn("text-sm opacity-90", className), ...props }));
|
|
28243
28849
|
ToastDescription.displayName = ToastPrimitives.Description.displayName;
|
|
28244
28850
|
|
|
28245
28851
|
// src/components/ui/toaster.tsx
|
|
28246
|
-
var
|
|
28852
|
+
var import_jsx_runtime90 = require("react/jsx-runtime");
|
|
28247
28853
|
function Toaster2() {
|
|
28248
28854
|
const { toasts } = useToast();
|
|
28249
|
-
return /* @__PURE__ */ (0,
|
|
28855
|
+
return /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)(ToastProvider, { children: [
|
|
28250
28856
|
toasts.map(function({ id, title, description, action, ...props }) {
|
|
28251
|
-
return /* @__PURE__ */ (0,
|
|
28252
|
-
/* @__PURE__ */ (0,
|
|
28253
|
-
title && /* @__PURE__ */ (0,
|
|
28254
|
-
description && /* @__PURE__ */ (0,
|
|
28857
|
+
return /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)(Toast, { ...props, children: [
|
|
28858
|
+
/* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { className: "grid gap-1", children: [
|
|
28859
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(ToastTitle, { children: title }),
|
|
28860
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(ToastDescription, { children: description })
|
|
28255
28861
|
] }),
|
|
28256
28862
|
action,
|
|
28257
|
-
/* @__PURE__ */ (0,
|
|
28863
|
+
/* @__PURE__ */ (0, import_jsx_runtime90.jsx)(ToastClose, {})
|
|
28258
28864
|
] }, id);
|
|
28259
28865
|
}),
|
|
28260
|
-
/* @__PURE__ */ (0,
|
|
28866
|
+
/* @__PURE__ */ (0, import_jsx_runtime90.jsx)(ToastViewport, {})
|
|
28261
28867
|
] });
|
|
28262
28868
|
}
|
|
28263
28869
|
|
|
28264
28870
|
// src/components/ui/toggle.tsx
|
|
28265
|
-
var
|
|
28871
|
+
var React63 = __toESM(require("react"), 1);
|
|
28266
28872
|
var TogglePrimitive = __toESM(require("@radix-ui/react-toggle"), 1);
|
|
28267
28873
|
var import_class_variance_authority9 = require("class-variance-authority");
|
|
28268
|
-
var
|
|
28874
|
+
var import_jsx_runtime91 = require("react/jsx-runtime");
|
|
28269
28875
|
var toggleVariants = (0, import_class_variance_authority9.cva)(
|
|
28270
28876
|
"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground",
|
|
28271
28877
|
{
|
|
@@ -28286,22 +28892,22 @@ var toggleVariants = (0, import_class_variance_authority9.cva)(
|
|
|
28286
28892
|
}
|
|
28287
28893
|
}
|
|
28288
28894
|
);
|
|
28289
|
-
var Toggle =
|
|
28895
|
+
var Toggle = React63.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(TogglePrimitive.Root, { ref, className: cn(toggleVariants({ variant, size, className })), ...props }));
|
|
28290
28896
|
Toggle.displayName = TogglePrimitive.Root.displayName;
|
|
28291
28897
|
|
|
28292
28898
|
// src/components/ui/toggle-group.tsx
|
|
28293
|
-
var
|
|
28899
|
+
var React64 = __toESM(require("react"), 1);
|
|
28294
28900
|
var ToggleGroupPrimitive = __toESM(require("@radix-ui/react-toggle-group"), 1);
|
|
28295
|
-
var
|
|
28296
|
-
var ToggleGroupContext =
|
|
28901
|
+
var import_jsx_runtime92 = require("react/jsx-runtime");
|
|
28902
|
+
var ToggleGroupContext = React64.createContext({
|
|
28297
28903
|
size: "default",
|
|
28298
28904
|
variant: "default"
|
|
28299
28905
|
});
|
|
28300
|
-
var ToggleGroup =
|
|
28906
|
+
var ToggleGroup = React64.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(ToggleGroupPrimitive.Root, { ref, className: cn("flex items-center justify-center gap-1", className), ...props, children: /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(ToggleGroupContext.Provider, { value: { variant, size }, children }) }));
|
|
28301
28907
|
ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
|
|
28302
|
-
var ToggleGroupItem =
|
|
28303
|
-
const context =
|
|
28304
|
-
return /* @__PURE__ */ (0,
|
|
28908
|
+
var ToggleGroupItem = React64.forwardRef(({ className, children, variant, size, ...props }, ref) => {
|
|
28909
|
+
const context = React64.useContext(ToggleGroupContext);
|
|
28910
|
+
return /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(
|
|
28305
28911
|
ToggleGroupPrimitive.Item,
|
|
28306
28912
|
{
|
|
28307
28913
|
ref,
|
|
@@ -28320,11 +28926,11 @@ var ToggleGroupItem = React63.forwardRef(({ className, children, variant, size,
|
|
|
28320
28926
|
ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
|
|
28321
28927
|
|
|
28322
28928
|
// src/hooks/useActiveSection.ts
|
|
28323
|
-
var
|
|
28929
|
+
var import_react26 = require("react");
|
|
28324
28930
|
var useActiveSection = (sectionIds, offset = 180) => {
|
|
28325
28931
|
var _a78;
|
|
28326
|
-
const [activeId, setActiveId] = (0,
|
|
28327
|
-
(0,
|
|
28932
|
+
const [activeId, setActiveId] = (0, import_react26.useState)((_a78 = sectionIds[0]) != null ? _a78 : "");
|
|
28933
|
+
(0, import_react26.useEffect)(() => {
|
|
28328
28934
|
if (!sectionIds.length || typeof window === "undefined") return;
|
|
28329
28935
|
const update = () => {
|
|
28330
28936
|
let nextActive = sectionIds[0];
|
|
@@ -28356,7 +28962,7 @@ function slugify(value) {
|
|
|
28356
28962
|
}
|
|
28357
28963
|
|
|
28358
28964
|
// src/lib/layoutMode.ts
|
|
28359
|
-
var
|
|
28965
|
+
var import_react27 = require("react");
|
|
28360
28966
|
var LAYOUT_MODE_STORAGE_KEY = "cc-layout-preview-mode";
|
|
28361
28967
|
var LAYOUT_MODE_CHANGE_EVENT = "cc-layout-mode-change";
|
|
28362
28968
|
var normalizeLayoutMode = (value) => {
|
|
@@ -28379,8 +28985,8 @@ var writeStoredLayoutMode = (mode) => {
|
|
|
28379
28985
|
window.dispatchEvent(new CustomEvent(LAYOUT_MODE_CHANGE_EVENT, { detail: mode }));
|
|
28380
28986
|
};
|
|
28381
28987
|
var useLayoutMode = () => {
|
|
28382
|
-
const [mode, setMode] = (0,
|
|
28383
|
-
(0,
|
|
28988
|
+
const [mode, setMode] = (0, import_react27.useState)(readStoredLayoutMode);
|
|
28989
|
+
(0, import_react27.useEffect)(() => {
|
|
28384
28990
|
if (typeof window === "undefined") return void 0;
|
|
28385
28991
|
const handleStorage = (event) => {
|
|
28386
28992
|
if (event.key !== LAYOUT_MODE_STORAGE_KEY) return;
|
|
@@ -28402,15 +29008,15 @@ var useLayoutMode = () => {
|
|
|
28402
29008
|
};
|
|
28403
29009
|
var useLayoutModeControl = () => {
|
|
28404
29010
|
const mode = useLayoutMode();
|
|
28405
|
-
const setMode = (0,
|
|
29011
|
+
const setMode = (0, import_react27.useCallback)((nextMode) => {
|
|
28406
29012
|
writeStoredLayoutMode(nextMode);
|
|
28407
29013
|
}, []);
|
|
28408
29014
|
return { mode, setMode };
|
|
28409
29015
|
};
|
|
28410
29016
|
|
|
28411
29017
|
// src/lib/auth.tsx
|
|
28412
|
-
var
|
|
28413
|
-
var
|
|
29018
|
+
var import_react28 = require("react");
|
|
29019
|
+
var import_jsx_runtime93 = require("react/jsx-runtime");
|
|
28414
29020
|
var STORAGE_KEYS = {
|
|
28415
29021
|
accessToken: "cc_access_token",
|
|
28416
29022
|
idToken: "cc_id_token",
|
|
@@ -28490,6 +29096,39 @@ var PRESENCE_HEARTBEAT_INTERVAL_MS = parsePositiveInteger2(
|
|
|
28490
29096
|
);
|
|
28491
29097
|
var INACTIVITY_CHECK_INTERVAL_MS = 3e4;
|
|
28492
29098
|
var SILENT_AUTH_ERRORS = /* @__PURE__ */ new Set(["login_required", "interaction_required", "consent_required", "account_selection_required"]);
|
|
29099
|
+
var PROTECTED_ROUTE_PREFIXES = ["/layout-preview", "/componentes", "/docs", "/animacoes"];
|
|
29100
|
+
var LOOPBACK_HOSTNAMES = /* @__PURE__ */ new Set(["localhost", "127.0.0.1", "::1"]);
|
|
29101
|
+
var isTruthyEnvFlag = (value) => {
|
|
29102
|
+
if (!value) return false;
|
|
29103
|
+
const normalized = value.trim().toLowerCase();
|
|
29104
|
+
return normalized === "1" || normalized === "true" || normalized === "yes" || normalized === "on";
|
|
29105
|
+
};
|
|
29106
|
+
var isProtectedRoute = (pathname) => {
|
|
29107
|
+
return PROTECTED_ROUTE_PREFIXES.some((prefix) => pathname === prefix || pathname.startsWith(`${prefix}/`));
|
|
29108
|
+
};
|
|
29109
|
+
var shouldAttemptSilentLoginForPath = (pathname) => {
|
|
29110
|
+
const override = getRuntimeEnv("VITE_ACCOUNTS_SILENT_AUTH");
|
|
29111
|
+
if (typeof override === "string") {
|
|
29112
|
+
return isTruthyEnvFlag(override);
|
|
29113
|
+
}
|
|
29114
|
+
return isProtectedRoute(pathname);
|
|
29115
|
+
};
|
|
29116
|
+
var isSilentAuthRedirectCompatible = () => {
|
|
29117
|
+
if (typeof window === "undefined") return true;
|
|
29118
|
+
const configuredRedirectUri = getRuntimeEnv("VITE_ACCOUNTS_REDIRECT_URI");
|
|
29119
|
+
if (!configuredRedirectUri) return true;
|
|
29120
|
+
try {
|
|
29121
|
+
const currentUrl = new URL(window.location.href);
|
|
29122
|
+
const redirectUrl = new URL(configuredRedirectUri, window.location.origin);
|
|
29123
|
+
if (redirectUrl.origin === currentUrl.origin) {
|
|
29124
|
+
return true;
|
|
29125
|
+
}
|
|
29126
|
+
const usesLoopbackHosts = LOOPBACK_HOSTNAMES.has(redirectUrl.hostname) && LOOPBACK_HOSTNAMES.has(currentUrl.hostname);
|
|
29127
|
+
return usesLoopbackHosts && redirectUrl.protocol === currentUrl.protocol && redirectUrl.port === currentUrl.port;
|
|
29128
|
+
} catch (e) {
|
|
29129
|
+
return true;
|
|
29130
|
+
}
|
|
29131
|
+
};
|
|
28493
29132
|
var DEFAULT_PRESENCE_STATUS = "online";
|
|
28494
29133
|
var PRESENCE_STATUS_VALUES2 = [
|
|
28495
29134
|
"online",
|
|
@@ -28569,7 +29208,7 @@ var readStoredPresenceSource = () => {
|
|
|
28569
29208
|
if (isPresenceSource(stored)) return stored;
|
|
28570
29209
|
return "auto";
|
|
28571
29210
|
};
|
|
28572
|
-
var AuthContext = (0,
|
|
29211
|
+
var AuthContext = (0, import_react28.createContext)(void 0);
|
|
28573
29212
|
var readStoredToken = () => {
|
|
28574
29213
|
const accessToken = sessionStorage.getItem(STORAGE_KEYS.accessToken);
|
|
28575
29214
|
const idToken = sessionStorage.getItem(STORAGE_KEYS.idToken);
|
|
@@ -28688,17 +29327,17 @@ var buildUserFromTokens = ({
|
|
|
28688
29327
|
};
|
|
28689
29328
|
};
|
|
28690
29329
|
var AuthProvider = ({ children }) => {
|
|
28691
|
-
const [status, setStatus] = (0,
|
|
28692
|
-
const [accessToken, setAccessToken] = (0,
|
|
28693
|
-
const [user, setUser] = (0,
|
|
28694
|
-
const [presenceStatus, setPresenceStatusState] = (0,
|
|
28695
|
-
const presenceStatusRef = (0,
|
|
28696
|
-
const presenceSourceRef = (0,
|
|
28697
|
-
const lastActivityAtRef = (0,
|
|
28698
|
-
const lastActivityBroadcastAtRef = (0,
|
|
28699
|
-
const resolvedPresenceIdentityKeyRef = (0,
|
|
28700
|
-
const resolvedPresenceUserIdRef = (0,
|
|
28701
|
-
const storePresenceStatus = (0,
|
|
29330
|
+
const [status, setStatus] = (0, import_react28.useState)("loading");
|
|
29331
|
+
const [accessToken, setAccessToken] = (0, import_react28.useState)(null);
|
|
29332
|
+
const [user, setUser] = (0, import_react28.useState)(null);
|
|
29333
|
+
const [presenceStatus, setPresenceStatusState] = (0, import_react28.useState)(() => readStoredPresence());
|
|
29334
|
+
const presenceStatusRef = (0, import_react28.useRef)(readStoredPresence());
|
|
29335
|
+
const presenceSourceRef = (0, import_react28.useRef)(readStoredPresenceSource());
|
|
29336
|
+
const lastActivityAtRef = (0, import_react28.useRef)(Date.now());
|
|
29337
|
+
const lastActivityBroadcastAtRef = (0, import_react28.useRef)(0);
|
|
29338
|
+
const resolvedPresenceIdentityKeyRef = (0, import_react28.useRef)(null);
|
|
29339
|
+
const resolvedPresenceUserIdRef = (0, import_react28.useRef)(null);
|
|
29340
|
+
const storePresenceStatus = (0, import_react28.useCallback)((nextStatus, source) => {
|
|
28702
29341
|
setPresenceStatusState(nextStatus);
|
|
28703
29342
|
presenceStatusRef.current = nextStatus;
|
|
28704
29343
|
sessionStorage.setItem(STORAGE_KEYS.presence, nextStatus);
|
|
@@ -28708,7 +29347,7 @@ var AuthProvider = ({ children }) => {
|
|
|
28708
29347
|
localStorage.setItem(LOCAL_STORAGE_KEYS.presenceSource, source);
|
|
28709
29348
|
}
|
|
28710
29349
|
}, []);
|
|
28711
|
-
const resolvePresenceUserId = (0,
|
|
29350
|
+
const resolvePresenceUserId = (0, import_react28.useCallback)(async (targetUser) => {
|
|
28712
29351
|
var _a78, _b7, _c, _d;
|
|
28713
29352
|
const sub = toNonEmptyString(targetUser == null ? void 0 : targetUser.sub);
|
|
28714
29353
|
const id = toNonEmptyString(targetUser == null ? void 0 : targetUser.id);
|
|
@@ -28746,7 +29385,7 @@ var AuthProvider = ({ children }) => {
|
|
|
28746
29385
|
resolvedPresenceUserIdRef.current = fallbackUserId;
|
|
28747
29386
|
return fallbackUserId;
|
|
28748
29387
|
}, []);
|
|
28749
|
-
const syncPresenceFromRecord = (0,
|
|
29388
|
+
const syncPresenceFromRecord = (0, import_react28.useCallback)(
|
|
28750
29389
|
(rawRow) => {
|
|
28751
29390
|
var _a78, _b7, _c;
|
|
28752
29391
|
if (!rawRow) return;
|
|
@@ -28761,7 +29400,7 @@ var AuthProvider = ({ children }) => {
|
|
|
28761
29400
|
},
|
|
28762
29401
|
[storePresenceStatus]
|
|
28763
29402
|
);
|
|
28764
|
-
const persistPresenceLegacy = (0,
|
|
29403
|
+
const persistPresenceLegacy = (0, import_react28.useCallback)(
|
|
28765
29404
|
async (nextStatus, source, targetUser, options) => {
|
|
28766
29405
|
const userId = await resolvePresenceUserId(targetUser != null ? targetUser : user);
|
|
28767
29406
|
if (!userId) return false;
|
|
@@ -28796,7 +29435,7 @@ var AuthProvider = ({ children }) => {
|
|
|
28796
29435
|
},
|
|
28797
29436
|
[resolvePresenceUserId, syncPresenceFromRecord, user]
|
|
28798
29437
|
);
|
|
28799
|
-
const executePresenceRpc = (0,
|
|
29438
|
+
const executePresenceRpc = (0, import_react28.useCallback)(
|
|
28800
29439
|
async (fnName, payload, options) => {
|
|
28801
29440
|
const supabase = getSupabase();
|
|
28802
29441
|
if (!supabase) {
|
|
@@ -28824,7 +29463,7 @@ var AuthProvider = ({ children }) => {
|
|
|
28824
29463
|
},
|
|
28825
29464
|
[persistPresenceLegacy, syncPresenceFromRecord]
|
|
28826
29465
|
);
|
|
28827
|
-
const touchPresence = (0,
|
|
29466
|
+
const touchPresence = (0, import_react28.useCallback)(
|
|
28828
29467
|
async (options) => {
|
|
28829
29468
|
var _a78;
|
|
28830
29469
|
const targetUser = (_a78 = options == null ? void 0 : options.targetUser) != null ? _a78 : user;
|
|
@@ -28855,7 +29494,7 @@ var AuthProvider = ({ children }) => {
|
|
|
28855
29494
|
},
|
|
28856
29495
|
[executePresenceRpc, resolvePresenceUserId, user]
|
|
28857
29496
|
);
|
|
28858
|
-
const markPresenceIdle = (0,
|
|
29497
|
+
const markPresenceIdle = (0, import_react28.useCallback)(
|
|
28859
29498
|
async (targetUser) => {
|
|
28860
29499
|
const resolvedTargetUser = targetUser != null ? targetUser : user;
|
|
28861
29500
|
const userId = await resolvePresenceUserId(resolvedTargetUser);
|
|
@@ -28880,7 +29519,7 @@ var AuthProvider = ({ children }) => {
|
|
|
28880
29519
|
},
|
|
28881
29520
|
[executePresenceRpc, resolvePresenceUserId, user]
|
|
28882
29521
|
);
|
|
28883
|
-
const setPresenceNetworkStatus = (0,
|
|
29522
|
+
const setPresenceNetworkStatus = (0, import_react28.useCallback)(
|
|
28884
29523
|
async (nextStatus, source, targetUser) => {
|
|
28885
29524
|
const resolvedTargetUser = targetUser != null ? targetUser : user;
|
|
28886
29525
|
const userId = await resolvePresenceUserId(resolvedTargetUser);
|
|
@@ -28906,7 +29545,7 @@ var AuthProvider = ({ children }) => {
|
|
|
28906
29545
|
},
|
|
28907
29546
|
[executePresenceRpc, resolvePresenceUserId, user]
|
|
28908
29547
|
);
|
|
28909
|
-
const loadPresenceFromDatabase = (0,
|
|
29548
|
+
const loadPresenceFromDatabase = (0, import_react28.useCallback)(
|
|
28910
29549
|
async (targetUser) => {
|
|
28911
29550
|
const userId = await resolvePresenceUserId(targetUser);
|
|
28912
29551
|
if (!userId) return;
|
|
@@ -28940,7 +29579,7 @@ var AuthProvider = ({ children }) => {
|
|
|
28940
29579
|
},
|
|
28941
29580
|
[resolvePresenceUserId, syncPresenceFromRecord, touchPresence]
|
|
28942
29581
|
);
|
|
28943
|
-
const clearAuthFlowState = (0,
|
|
29582
|
+
const clearAuthFlowState = (0, import_react28.useCallback)((options) => {
|
|
28944
29583
|
sessionStorage.removeItem(STORAGE_KEYS.state);
|
|
28945
29584
|
sessionStorage.removeItem(STORAGE_KEYS.verifier);
|
|
28946
29585
|
sessionStorage.removeItem(STORAGE_KEYS.nonce);
|
|
@@ -28950,7 +29589,7 @@ var AuthProvider = ({ children }) => {
|
|
|
28950
29589
|
sessionStorage.removeItem(STORAGE_KEYS.silentCheckDone);
|
|
28951
29590
|
}
|
|
28952
29591
|
}, []);
|
|
28953
|
-
const startAuthorization = (0,
|
|
29592
|
+
const startAuthorization = (0, import_react28.useCallback)(
|
|
28954
29593
|
async (options) => {
|
|
28955
29594
|
var _a78, _b7;
|
|
28956
29595
|
const config = getAccountsConfig();
|
|
@@ -28976,7 +29615,7 @@ var AuthProvider = ({ children }) => {
|
|
|
28976
29615
|
},
|
|
28977
29616
|
[]
|
|
28978
29617
|
);
|
|
28979
|
-
const attemptSilentLogin = (0,
|
|
29618
|
+
const attemptSilentLogin = (0, import_react28.useCallback)(async () => {
|
|
28980
29619
|
if (typeof window === "undefined") return false;
|
|
28981
29620
|
if (window.location.pathname.startsWith("/auth/callback")) return false;
|
|
28982
29621
|
if (sessionStorage.getItem(STORAGE_KEYS.silentCheckDone) === "1") return false;
|
|
@@ -28987,7 +29626,7 @@ var AuthProvider = ({ children }) => {
|
|
|
28987
29626
|
});
|
|
28988
29627
|
return true;
|
|
28989
29628
|
}, [startAuthorization]);
|
|
28990
|
-
(0,
|
|
29629
|
+
(0, import_react28.useEffect)(() => {
|
|
28991
29630
|
let cancelled = false;
|
|
28992
29631
|
const initializeAuth = async () => {
|
|
28993
29632
|
var _a78;
|
|
@@ -29011,9 +29650,13 @@ var AuthProvider = ({ children }) => {
|
|
|
29011
29650
|
sessionStorage.removeItem(STORAGE_KEYS.presence);
|
|
29012
29651
|
sessionStorage.removeItem(STORAGE_KEYS.presenceSource);
|
|
29013
29652
|
localStorage.removeItem(LOCAL_STORAGE_KEYS.presenceSource);
|
|
29653
|
+
const pathname = typeof window === "undefined" ? "/" : window.location.pathname;
|
|
29654
|
+
const shouldAttemptSilentLogin = shouldAttemptSilentLoginForPath(pathname) && isSilentAuthRedirectCompatible();
|
|
29014
29655
|
try {
|
|
29015
|
-
|
|
29016
|
-
|
|
29656
|
+
if (shouldAttemptSilentLogin) {
|
|
29657
|
+
const redirected = await attemptSilentLogin();
|
|
29658
|
+
if (redirected || cancelled) return;
|
|
29659
|
+
}
|
|
29017
29660
|
} catch (error) {
|
|
29018
29661
|
if (isRuntimeDev()) {
|
|
29019
29662
|
console.warn("[auth] Falha na verifica\xE7\xE3o silenciosa de sess\xE3o:", error.message);
|
|
@@ -29028,7 +29671,7 @@ var AuthProvider = ({ children }) => {
|
|
|
29028
29671
|
cancelled = true;
|
|
29029
29672
|
};
|
|
29030
29673
|
}, [attemptSilentLogin]);
|
|
29031
|
-
(0,
|
|
29674
|
+
(0, import_react28.useEffect)(() => {
|
|
29032
29675
|
var _a78;
|
|
29033
29676
|
if (status !== "authenticated") return;
|
|
29034
29677
|
if (user) return;
|
|
@@ -29041,15 +29684,15 @@ var AuthProvider = ({ children }) => {
|
|
|
29041
29684
|
if (!hydratedUser) return;
|
|
29042
29685
|
setUser(hydratedUser);
|
|
29043
29686
|
}, [status, user]);
|
|
29044
|
-
(0,
|
|
29687
|
+
(0, import_react28.useEffect)(() => {
|
|
29045
29688
|
resolvedPresenceIdentityKeyRef.current = null;
|
|
29046
29689
|
resolvedPresenceUserIdRef.current = null;
|
|
29047
29690
|
}, [user == null ? void 0 : user.email, user == null ? void 0 : user.id, user == null ? void 0 : user.sub, user == null ? void 0 : user.userId]);
|
|
29048
|
-
(0,
|
|
29691
|
+
(0, import_react28.useEffect)(() => {
|
|
29049
29692
|
if (status !== "authenticated") return;
|
|
29050
29693
|
void loadPresenceFromDatabase(user);
|
|
29051
29694
|
}, [loadPresenceFromDatabase, status, user]);
|
|
29052
|
-
(0,
|
|
29695
|
+
(0, import_react28.useEffect)(() => {
|
|
29053
29696
|
if (status !== "authenticated") return;
|
|
29054
29697
|
const supabase = getSupabase();
|
|
29055
29698
|
if (!supabase) return;
|
|
@@ -29086,7 +29729,7 @@ var AuthProvider = ({ children }) => {
|
|
|
29086
29729
|
}
|
|
29087
29730
|
};
|
|
29088
29731
|
}, [resolvePresenceUserId, status, storePresenceStatus, syncPresenceFromRecord, user]);
|
|
29089
|
-
(0,
|
|
29732
|
+
(0, import_react28.useEffect)(() => {
|
|
29090
29733
|
if (status !== "authenticated") return;
|
|
29091
29734
|
const registerActivity = () => {
|
|
29092
29735
|
lastActivityAtRef.current = Date.now();
|
|
@@ -29135,13 +29778,13 @@ var AuthProvider = ({ children }) => {
|
|
|
29135
29778
|
document.removeEventListener("visibilitychange", onVisibility);
|
|
29136
29779
|
};
|
|
29137
29780
|
}, [markPresenceIdle, status, touchPresence]);
|
|
29138
|
-
const login = (0,
|
|
29781
|
+
const login = (0, import_react28.useCallback)(async (redirectTo) => {
|
|
29139
29782
|
await startAuthorization({
|
|
29140
29783
|
mode: "interactive",
|
|
29141
29784
|
redirectTo: redirectTo != null ? redirectTo : window.location.pathname + window.location.search + window.location.hash
|
|
29142
29785
|
});
|
|
29143
29786
|
}, [startAuthorization]);
|
|
29144
|
-
const completeLogin = (0,
|
|
29787
|
+
const completeLogin = (0, import_react28.useCallback)(async () => {
|
|
29145
29788
|
var _a78;
|
|
29146
29789
|
const params = new URLSearchParams(window.location.search);
|
|
29147
29790
|
const redirectTo = (_a78 = sessionStorage.getItem(STORAGE_KEYS.redirect)) != null ? _a78 : "/";
|
|
@@ -29211,7 +29854,7 @@ var AuthProvider = ({ children }) => {
|
|
|
29211
29854
|
return { ok: false, error: err.message };
|
|
29212
29855
|
}
|
|
29213
29856
|
}, [clearAuthFlowState]);
|
|
29214
|
-
const logout = (0,
|
|
29857
|
+
const logout = (0, import_react28.useCallback)(async () => {
|
|
29215
29858
|
var _a78;
|
|
29216
29859
|
const config = getAccountsConfig();
|
|
29217
29860
|
const { logoutUrl } = await resolveOidcEndpoints(config);
|
|
@@ -29230,13 +29873,13 @@ var AuthProvider = ({ children }) => {
|
|
|
29230
29873
|
window.location.assign(url);
|
|
29231
29874
|
}
|
|
29232
29875
|
}, [setPresenceNetworkStatus, storePresenceStatus, user]);
|
|
29233
|
-
const getAccessToken = (0,
|
|
29876
|
+
const getAccessToken = (0, import_react28.useCallback)(async () => {
|
|
29234
29877
|
const stored = readStoredToken();
|
|
29235
29878
|
if (stored == null ? void 0 : stored.accessToken) return stored.accessToken;
|
|
29236
29879
|
if (accessToken) return accessToken;
|
|
29237
29880
|
throw new Error("Usu\xE1rio n\xE3o autenticado.");
|
|
29238
29881
|
}, [accessToken]);
|
|
29239
|
-
const setPresenceStatus = (0,
|
|
29882
|
+
const setPresenceStatus = (0, import_react28.useCallback)(
|
|
29240
29883
|
async (nextStatus) => {
|
|
29241
29884
|
if (!isUserPresenceStatus(nextStatus) || nextStatus === "offline") return;
|
|
29242
29885
|
const now = Date.now();
|
|
@@ -29247,7 +29890,7 @@ var AuthProvider = ({ children }) => {
|
|
|
29247
29890
|
},
|
|
29248
29891
|
[setPresenceNetworkStatus]
|
|
29249
29892
|
);
|
|
29250
|
-
const value = (0,
|
|
29893
|
+
const value = (0, import_react28.useMemo)(
|
|
29251
29894
|
() => ({
|
|
29252
29895
|
status,
|
|
29253
29896
|
user,
|
|
@@ -29261,10 +29904,10 @@ var AuthProvider = ({ children }) => {
|
|
|
29261
29904
|
}),
|
|
29262
29905
|
[status, user, accessToken, login, logout, completeLogin, getAccessToken, presenceStatus, setPresenceStatus]
|
|
29263
29906
|
);
|
|
29264
|
-
return /* @__PURE__ */ (0,
|
|
29907
|
+
return /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(AuthContext.Provider, { value, children });
|
|
29265
29908
|
};
|
|
29266
29909
|
var useAuth = () => {
|
|
29267
|
-
const ctx = (0,
|
|
29910
|
+
const ctx = (0, import_react28.useContext)(AuthContext);
|
|
29268
29911
|
if (!ctx) {
|
|
29269
29912
|
throw new Error("useAuth deve ser usado dentro de AuthProvider.");
|
|
29270
29913
|
}
|
|
@@ -29291,6 +29934,7 @@ var useAuth = () => {
|
|
|
29291
29934
|
AlertDialogTitle,
|
|
29292
29935
|
AlertDialogTrigger,
|
|
29293
29936
|
AlertTitle,
|
|
29937
|
+
AnimatedThemeToggle,
|
|
29294
29938
|
AppSidebar,
|
|
29295
29939
|
AspectRatio,
|
|
29296
29940
|
AuthProvider,
|
|
@@ -29579,6 +30223,8 @@ var useAuth = () => {
|
|
|
29579
30223
|
TelescupVideo,
|
|
29580
30224
|
Textarea,
|
|
29581
30225
|
TextareaField,
|
|
30226
|
+
ThemeProvider,
|
|
30227
|
+
ThemeScript,
|
|
29582
30228
|
ThemeToggle,
|
|
29583
30229
|
Timeline,
|
|
29584
30230
|
Toast,
|
|
@@ -29639,6 +30285,7 @@ var useAuth = () => {
|
|
|
29639
30285
|
toast,
|
|
29640
30286
|
toggleVariants,
|
|
29641
30287
|
useActiveSection,
|
|
30288
|
+
useAppTheme,
|
|
29642
30289
|
useAuth,
|
|
29643
30290
|
useBreakpoint,
|
|
29644
30291
|
useFormField,
|