@sreedev/my3dui 0.1.9 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +62 -6
- package/dist/index.cjs +980 -925
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +31 -10
- package/dist/index.d.ts +31 -10
- package/dist/index.js +860 -808
- package/dist/index.js.map +1 -1
- package/dist/styles.css +3 -0
- package/package.json +139 -1
package/dist/index.cjs
CHANGED
|
@@ -295,6 +295,7 @@ __export(index_exports, {
|
|
|
295
295
|
TableRow: () => TableRow,
|
|
296
296
|
Tabs3D: () => Tabs3D,
|
|
297
297
|
Textarea: () => Textarea,
|
|
298
|
+
ThemeProvider: () => ThemeProvider,
|
|
298
299
|
Timeline3D: () => Timeline3D,
|
|
299
300
|
Toast: () => Toast,
|
|
300
301
|
ToastAction: () => ToastAction,
|
|
@@ -323,12 +324,67 @@ __export(index_exports, {
|
|
|
323
324
|
sonnerToast: () => import_sonner.toast,
|
|
324
325
|
toggleVariants: () => toggleVariants,
|
|
325
326
|
useFormField: () => useFormField,
|
|
326
|
-
useSidebar: () => useSidebar
|
|
327
|
+
useSidebar: () => useSidebar,
|
|
328
|
+
useTheme: () => useTheme,
|
|
329
|
+
useThemeOptional: () => useThemeOptional
|
|
327
330
|
});
|
|
328
331
|
module.exports = __toCommonJS(index_exports);
|
|
329
332
|
|
|
333
|
+
// src/components/theme/ThemeProvider.tsx
|
|
334
|
+
var import_react = require("react");
|
|
335
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
336
|
+
var THEME_CLASSES = ["light", "dark", "neon", "glass", "corporate", "vibrant"];
|
|
337
|
+
var STORAGE_KEY = "my3dui-theme";
|
|
338
|
+
var ThemeContext = (0, import_react.createContext)(null);
|
|
339
|
+
function ThemeProvider({
|
|
340
|
+
children,
|
|
341
|
+
defaultTheme = "light",
|
|
342
|
+
storageKey = STORAGE_KEY
|
|
343
|
+
}) {
|
|
344
|
+
const [theme, setThemeState] = (0, import_react.useState)(() => {
|
|
345
|
+
if (typeof window === "undefined") return defaultTheme;
|
|
346
|
+
try {
|
|
347
|
+
const stored = storageKey && localStorage.getItem(storageKey);
|
|
348
|
+
if (stored && THEME_CLASSES.includes(stored)) return stored;
|
|
349
|
+
} catch {
|
|
350
|
+
}
|
|
351
|
+
return defaultTheme;
|
|
352
|
+
});
|
|
353
|
+
const setTheme = (0, import_react.useCallback)(
|
|
354
|
+
(next) => {
|
|
355
|
+
setThemeState(next);
|
|
356
|
+
if (typeof document === "undefined") return;
|
|
357
|
+
const root = document.documentElement;
|
|
358
|
+
THEME_CLASSES.forEach((c) => root.classList.remove(c));
|
|
359
|
+
root.classList.add(next);
|
|
360
|
+
try {
|
|
361
|
+
if (storageKey) localStorage.setItem(storageKey, next);
|
|
362
|
+
} catch {
|
|
363
|
+
}
|
|
364
|
+
},
|
|
365
|
+
[storageKey]
|
|
366
|
+
);
|
|
367
|
+
(0, import_react.useEffect)(() => {
|
|
368
|
+
const root = document.documentElement;
|
|
369
|
+
THEME_CLASSES.forEach((c) => root.classList.remove(c));
|
|
370
|
+
root.classList.add(theme);
|
|
371
|
+
}, [theme]);
|
|
372
|
+
const value = (0, import_react.useMemo)(() => ({ theme, setTheme }), [theme, setTheme]);
|
|
373
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ThemeContext.Provider, { value, children });
|
|
374
|
+
}
|
|
375
|
+
function useTheme() {
|
|
376
|
+
const ctx = (0, import_react.useContext)(ThemeContext);
|
|
377
|
+
if (!ctx) {
|
|
378
|
+
throw new Error("useTheme must be used within ThemeProvider");
|
|
379
|
+
}
|
|
380
|
+
return ctx;
|
|
381
|
+
}
|
|
382
|
+
function useThemeOptional() {
|
|
383
|
+
return (0, import_react.useContext)(ThemeContext);
|
|
384
|
+
}
|
|
385
|
+
|
|
330
386
|
// src/components/layouts/container.tsx
|
|
331
|
-
var
|
|
387
|
+
var import_react2 = __toESM(require("react"), 1);
|
|
332
388
|
|
|
333
389
|
// src/lib/utils.ts
|
|
334
390
|
var import_clsx = require("clsx");
|
|
@@ -373,7 +429,7 @@ var zIndex = {
|
|
|
373
429
|
};
|
|
374
430
|
|
|
375
431
|
// src/components/layouts/container.tsx
|
|
376
|
-
var
|
|
432
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
377
433
|
var sizeToMaxWidth = {
|
|
378
434
|
sm: "max-w-3xl",
|
|
379
435
|
md: "max-w-5xl",
|
|
@@ -382,7 +438,7 @@ var sizeToMaxWidth = {
|
|
|
382
438
|
full: "max-w-full"
|
|
383
439
|
};
|
|
384
440
|
var responsivePadding = "px-4 sm:px-6 lg:px-8";
|
|
385
|
-
var Container =
|
|
441
|
+
var Container = import_react2.default.forwardRef(
|
|
386
442
|
({
|
|
387
443
|
className,
|
|
388
444
|
size = "lg",
|
|
@@ -396,7 +452,7 @@ var Container = import_react.default.forwardRef(
|
|
|
396
452
|
paddingLeft: typeof padding === "number" ? getSpacing(padding) : padding,
|
|
397
453
|
paddingRight: typeof padding === "number" ? getSpacing(padding) : padding
|
|
398
454
|
} : void 0;
|
|
399
|
-
return /* @__PURE__ */ (0,
|
|
455
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
400
456
|
"div",
|
|
401
457
|
{
|
|
402
458
|
ref,
|
|
@@ -415,8 +471,8 @@ var Container = import_react.default.forwardRef(
|
|
|
415
471
|
Container.displayName = "Container";
|
|
416
472
|
|
|
417
473
|
// src/components/layouts/grid.tsx
|
|
418
|
-
var
|
|
419
|
-
var
|
|
474
|
+
var import_react3 = __toESM(require("react"), 1);
|
|
475
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
420
476
|
var gridColsClasses = {
|
|
421
477
|
1: "grid-cols-1",
|
|
422
478
|
2: "grid-cols-2",
|
|
@@ -438,13 +494,13 @@ var responsiveGridCols = {
|
|
|
438
494
|
xl: { 1: "xl:grid-cols-1", 2: "xl:grid-cols-2", 3: "xl:grid-cols-3", 4: "xl:grid-cols-4", 5: "xl:grid-cols-5", 6: "xl:grid-cols-6", 7: "xl:grid-cols-7", 8: "xl:grid-cols-8", 9: "xl:grid-cols-9", 10: "xl:grid-cols-10", 11: "xl:grid-cols-11", 12: "xl:grid-cols-12" },
|
|
439
495
|
"2xl": { 1: "2xl:grid-cols-1", 2: "2xl:grid-cols-2", 3: "2xl:grid-cols-3", 4: "2xl:grid-cols-4", 5: "2xl:grid-cols-5", 6: "2xl:grid-cols-6", 7: "2xl:grid-cols-7", 8: "2xl:grid-cols-8", 9: "2xl:grid-cols-9", 10: "2xl:grid-cols-10", 11: "2xl:grid-cols-11", 12: "2xl:grid-cols-12" }
|
|
440
496
|
};
|
|
441
|
-
var Grid =
|
|
497
|
+
var Grid = import_react3.default.forwardRef(
|
|
442
498
|
({ className, cols = 1, gap = 4, minColWidth, style, ...props }, ref) => {
|
|
443
499
|
const gapValue = typeof gap === "number" ? getSpacing(gap) : gap;
|
|
444
500
|
if (typeof cols === "number") {
|
|
445
501
|
const gridTemplateColumns = cols > 12 || minColWidth ? { gridTemplateColumns: minColWidth ?? `repeat(${cols}, minmax(0, 1fr))` } : {};
|
|
446
502
|
const gridClass = cols >= 1 && cols <= 12 ? gridColsClasses[cols] : "";
|
|
447
|
-
return /* @__PURE__ */ (0,
|
|
503
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
448
504
|
"div",
|
|
449
505
|
{
|
|
450
506
|
ref,
|
|
@@ -466,7 +522,7 @@ var Grid = import_react2.default.forwardRef(
|
|
|
466
522
|
responsiveStyle.gridTemplateColumns = `repeat(${val}, minmax(0, 1fr))`;
|
|
467
523
|
}
|
|
468
524
|
});
|
|
469
|
-
return /* @__PURE__ */ (0,
|
|
525
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
470
526
|
"div",
|
|
471
527
|
{
|
|
472
528
|
ref,
|
|
@@ -480,8 +536,8 @@ var Grid = import_react2.default.forwardRef(
|
|
|
480
536
|
Grid.displayName = "Grid";
|
|
481
537
|
|
|
482
538
|
// src/components/layouts/stack.tsx
|
|
483
|
-
var
|
|
484
|
-
var
|
|
539
|
+
var import_react4 = __toESM(require("react"), 1);
|
|
540
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
485
541
|
var alignMap = {
|
|
486
542
|
start: "items-start",
|
|
487
543
|
center: "items-center",
|
|
@@ -497,7 +553,7 @@ var justifyMap = {
|
|
|
497
553
|
around: "justify-around",
|
|
498
554
|
evenly: "justify-evenly"
|
|
499
555
|
};
|
|
500
|
-
var Stack =
|
|
556
|
+
var Stack = import_react4.default.forwardRef(
|
|
501
557
|
({
|
|
502
558
|
className,
|
|
503
559
|
direction = "col",
|
|
@@ -511,7 +567,7 @@ var Stack = import_react3.default.forwardRef(
|
|
|
511
567
|
}, ref) => {
|
|
512
568
|
const directionClass = direction === "col" ? "flex-col" : direction === "row" ? "flex-row" : direction === "col-reverse" ? "flex-col-reverse" : "flex-row-reverse";
|
|
513
569
|
const gapValue = typeof gap === "number" ? getSpacing(gap) : gap;
|
|
514
|
-
return /* @__PURE__ */ (0,
|
|
570
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
515
571
|
"div",
|
|
516
572
|
{
|
|
517
573
|
ref,
|
|
@@ -533,15 +589,15 @@ var Stack = import_react3.default.forwardRef(
|
|
|
533
589
|
Stack.displayName = "Stack";
|
|
534
590
|
|
|
535
591
|
// src/components/layouts/section.tsx
|
|
536
|
-
var
|
|
537
|
-
var
|
|
592
|
+
var import_react5 = __toESM(require("react"), 1);
|
|
593
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
538
594
|
var backgroundClasses = {
|
|
539
595
|
default: "bg-background text-foreground",
|
|
540
596
|
muted: "bg-muted text-muted-foreground",
|
|
541
597
|
brand: "bg-primary text-primary-foreground",
|
|
542
598
|
glass: "bg-background/80 backdrop-blur-sm border-y border-border/50"
|
|
543
599
|
};
|
|
544
|
-
var Section =
|
|
600
|
+
var Section = import_react5.default.forwardRef(
|
|
545
601
|
({
|
|
546
602
|
className,
|
|
547
603
|
children,
|
|
@@ -558,8 +614,8 @@ var Section = import_react4.default.forwardRef(
|
|
|
558
614
|
paddingTop: typeof paddingY === "number" ? getSpacing(paddingY) : paddingY,
|
|
559
615
|
paddingBottom: typeof paddingY === "number" ? getSpacing(paddingY) : paddingY
|
|
560
616
|
};
|
|
561
|
-
const content = fullWidth ? children : /* @__PURE__ */ (0,
|
|
562
|
-
return /* @__PURE__ */ (0,
|
|
617
|
+
const content = fullWidth ? children : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Container, { size: containerSize, children });
|
|
618
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
563
619
|
Component,
|
|
564
620
|
{
|
|
565
621
|
ref,
|
|
@@ -579,14 +635,14 @@ var Section = import_react4.default.forwardRef(
|
|
|
579
635
|
Section.displayName = "Section";
|
|
580
636
|
|
|
581
637
|
// src/components/layouts/page-layout.tsx
|
|
582
|
-
var
|
|
583
|
-
var
|
|
638
|
+
var import_react6 = __toESM(require("react"), 1);
|
|
639
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
584
640
|
function getSidebarWidth(w) {
|
|
585
641
|
if (w === void 0) return "16rem";
|
|
586
642
|
if (typeof w === "number") return `${w * 0.25}rem`;
|
|
587
643
|
return w;
|
|
588
644
|
}
|
|
589
|
-
var PageLayout =
|
|
645
|
+
var PageLayout = import_react6.default.forwardRef(
|
|
590
646
|
({
|
|
591
647
|
className,
|
|
592
648
|
header,
|
|
@@ -600,14 +656,14 @@ var PageLayout = import_react5.default.forwardRef(
|
|
|
600
656
|
}, ref) => {
|
|
601
657
|
const width = getSidebarWidth(sidebarWidth);
|
|
602
658
|
const minHeightClass = minHeight === "screen" ? "min-h-screen" : minHeight === "full" ? "min-h-full" : "";
|
|
603
|
-
return /* @__PURE__ */ (0,
|
|
659
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
604
660
|
"div",
|
|
605
661
|
{
|
|
606
662
|
ref,
|
|
607
663
|
className: cn("flex flex-col", minHeightClass, className),
|
|
608
664
|
...props,
|
|
609
665
|
children: [
|
|
610
|
-
header && /* @__PURE__ */ (0,
|
|
666
|
+
header && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
611
667
|
"header",
|
|
612
668
|
{
|
|
613
669
|
className: "sticky top-0 w-full border-b bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60",
|
|
@@ -615,8 +671,8 @@ var PageLayout = import_react5.default.forwardRef(
|
|
|
615
671
|
children: header
|
|
616
672
|
}
|
|
617
673
|
),
|
|
618
|
-
/* @__PURE__ */ (0,
|
|
619
|
-
sidebar && sidebarPosition === "left" && /* @__PURE__ */ (0,
|
|
674
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex-1 flex min-h-0", children: [
|
|
675
|
+
sidebar && sidebarPosition === "left" && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
620
676
|
"aside",
|
|
621
677
|
{
|
|
622
678
|
className: "shrink-0 border-r bg-muted/40 p-4",
|
|
@@ -624,8 +680,8 @@ var PageLayout = import_react5.default.forwardRef(
|
|
|
624
680
|
children: sidebar
|
|
625
681
|
}
|
|
626
682
|
),
|
|
627
|
-
/* @__PURE__ */ (0,
|
|
628
|
-
sidebar && sidebarPosition === "right" && /* @__PURE__ */ (0,
|
|
683
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("main", { className: "flex-1 min-w-0", children }),
|
|
684
|
+
sidebar && sidebarPosition === "right" && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
629
685
|
"aside",
|
|
630
686
|
{
|
|
631
687
|
className: "shrink-0 border-l bg-muted/40 p-4",
|
|
@@ -634,7 +690,7 @@ var PageLayout = import_react5.default.forwardRef(
|
|
|
634
690
|
}
|
|
635
691
|
)
|
|
636
692
|
] }),
|
|
637
|
-
footer && /* @__PURE__ */ (0,
|
|
693
|
+
footer && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("footer", { className: "border-t bg-muted/40 shrink-0", children: footer })
|
|
638
694
|
]
|
|
639
695
|
}
|
|
640
696
|
);
|
|
@@ -643,9 +699,9 @@ var PageLayout = import_react5.default.forwardRef(
|
|
|
643
699
|
PageLayout.displayName = "PageLayout";
|
|
644
700
|
|
|
645
701
|
// src/components/layouts/stage.tsx
|
|
646
|
-
var
|
|
702
|
+
var import_react7 = require("react");
|
|
647
703
|
var import_drei = require("@react-three/drei");
|
|
648
|
-
var
|
|
704
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
649
705
|
function getPresetLights(preset) {
|
|
650
706
|
switch (preset) {
|
|
651
707
|
case "portrait":
|
|
@@ -678,13 +734,13 @@ function Stage({
|
|
|
678
734
|
environment = "city",
|
|
679
735
|
shadows = true
|
|
680
736
|
}) {
|
|
681
|
-
const lights = (0,
|
|
737
|
+
const lights = (0, import_react7.useMemo)(
|
|
682
738
|
() => getPresetLights(preset),
|
|
683
739
|
[preset]
|
|
684
740
|
);
|
|
685
|
-
return /* @__PURE__ */ (0,
|
|
686
|
-
/* @__PURE__ */ (0,
|
|
687
|
-
lights.map((light, i) => /* @__PURE__ */ (0,
|
|
741
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("group", { children: [
|
|
742
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("ambientLight", { intensity: intensity * 0.5 }),
|
|
743
|
+
lights.map((light, i) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
688
744
|
"directionalLight",
|
|
689
745
|
{
|
|
690
746
|
position: light.pos,
|
|
@@ -695,15 +751,15 @@ function Stage({
|
|
|
695
751
|
},
|
|
696
752
|
i
|
|
697
753
|
)),
|
|
698
|
-
environment && /* @__PURE__ */ (0,
|
|
699
|
-
/* @__PURE__ */ (0,
|
|
754
|
+
environment && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_drei.Environment, { preset: environment }),
|
|
755
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("group", { children })
|
|
700
756
|
] });
|
|
701
757
|
}
|
|
702
758
|
|
|
703
759
|
// src/components/layouts/viewport.tsx
|
|
704
|
-
var
|
|
760
|
+
var import_react8 = require("react");
|
|
705
761
|
var import_fiber = require("@react-three/fiber");
|
|
706
|
-
var
|
|
762
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
707
763
|
function Viewport({
|
|
708
764
|
children,
|
|
709
765
|
className,
|
|
@@ -711,12 +767,12 @@ function Viewport({
|
|
|
711
767
|
fallback = null,
|
|
712
768
|
dpr = [1, 2]
|
|
713
769
|
}) {
|
|
714
|
-
return /* @__PURE__ */ (0,
|
|
770
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
715
771
|
"div",
|
|
716
772
|
{
|
|
717
773
|
className: cn("relative w-full overflow-hidden rounded-xl bg-muted/20", className),
|
|
718
774
|
style: { aspectRatio: aspect },
|
|
719
|
-
children: /* @__PURE__ */ (0,
|
|
775
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react8.Suspense, { fallback, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
720
776
|
import_fiber.Canvas,
|
|
721
777
|
{
|
|
722
778
|
dpr,
|
|
@@ -736,18 +792,18 @@ function Viewport({
|
|
|
736
792
|
}
|
|
737
793
|
|
|
738
794
|
// src/components/layouts/container3d.tsx
|
|
739
|
-
var
|
|
740
|
-
var
|
|
795
|
+
var import_react9 = require("react");
|
|
796
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
741
797
|
function Container3D({
|
|
742
798
|
children,
|
|
743
799
|
direction = "row",
|
|
744
800
|
gap = 1,
|
|
745
801
|
align = "center"
|
|
746
802
|
}) {
|
|
747
|
-
const groupRef = (0,
|
|
748
|
-
const childArray =
|
|
803
|
+
const groupRef = (0, import_react9.useRef)(null);
|
|
804
|
+
const childArray = import_react9.Children.toArray(children);
|
|
749
805
|
const count2 = childArray.length;
|
|
750
|
-
const positions = (0,
|
|
806
|
+
const positions = (0, import_react9.useMemo)(() => {
|
|
751
807
|
const pos = [];
|
|
752
808
|
const cols = Math.ceil(Math.sqrt(count2));
|
|
753
809
|
let totalWidth = 0;
|
|
@@ -780,20 +836,20 @@ function Container3D({
|
|
|
780
836
|
}
|
|
781
837
|
return pos;
|
|
782
838
|
}, [count2, direction, gap, align]);
|
|
783
|
-
return /* @__PURE__ */ (0,
|
|
839
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("group", { ref: groupRef, children: childArray.map((child, index) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("group", { position: positions[index], children: child }, index)) });
|
|
784
840
|
}
|
|
785
841
|
|
|
786
842
|
// src/components/layouts/grid3d.tsx
|
|
787
|
-
var
|
|
843
|
+
var import_react10 = require("react");
|
|
788
844
|
var import_drei2 = require("@react-three/drei");
|
|
789
|
-
var
|
|
845
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
790
846
|
function Grid3D({
|
|
791
847
|
cellSize = 1,
|
|
792
848
|
cellColor = "#6f6f6f",
|
|
793
849
|
fadeDistance = 50,
|
|
794
850
|
infiniteGrid = true
|
|
795
851
|
}) {
|
|
796
|
-
const config = (0,
|
|
852
|
+
const config = (0, import_react10.useMemo)(() => ({
|
|
797
853
|
cellSize,
|
|
798
854
|
cellThickness: 0.5,
|
|
799
855
|
cellColor,
|
|
@@ -805,7 +861,7 @@ function Grid3D({
|
|
|
805
861
|
followCamera: infiniteGrid,
|
|
806
862
|
infiniteGrid
|
|
807
863
|
}), [cellSize, cellColor, fadeDistance, infiniteGrid]);
|
|
808
|
-
return /* @__PURE__ */ (0,
|
|
864
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
809
865
|
import_drei2.Grid,
|
|
810
866
|
{
|
|
811
867
|
position: [0, -0.01, 0],
|
|
@@ -816,9 +872,9 @@ function Grid3D({
|
|
|
816
872
|
}
|
|
817
873
|
|
|
818
874
|
// src/components/layouts/camera-controller.tsx
|
|
819
|
-
var
|
|
875
|
+
var import_react11 = require("react");
|
|
820
876
|
var import_drei3 = require("@react-three/drei");
|
|
821
|
-
var
|
|
877
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
822
878
|
function CameraController({
|
|
823
879
|
mode = "orbit",
|
|
824
880
|
damping = 0.05,
|
|
@@ -826,10 +882,10 @@ function CameraController({
|
|
|
826
882
|
maxDistance = 100,
|
|
827
883
|
autoRotate = false
|
|
828
884
|
}) {
|
|
829
|
-
const controlsRef = (0,
|
|
885
|
+
const controlsRef = (0, import_react11.useRef)(null);
|
|
830
886
|
switch (mode) {
|
|
831
887
|
case "fly":
|
|
832
|
-
return /* @__PURE__ */ (0,
|
|
888
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
833
889
|
import_drei3.FlyControls,
|
|
834
890
|
{
|
|
835
891
|
ref: controlsRef,
|
|
@@ -838,7 +894,7 @@ function CameraController({
|
|
|
838
894
|
}
|
|
839
895
|
);
|
|
840
896
|
case "first-person":
|
|
841
|
-
return /* @__PURE__ */ (0,
|
|
897
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
842
898
|
import_drei3.FirstPersonControls,
|
|
843
899
|
{
|
|
844
900
|
ref: controlsRef,
|
|
@@ -848,7 +904,7 @@ function CameraController({
|
|
|
848
904
|
);
|
|
849
905
|
case "orbit":
|
|
850
906
|
default:
|
|
851
|
-
return /* @__PURE__ */ (0,
|
|
907
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
852
908
|
import_drei3.OrbitControls,
|
|
853
909
|
{
|
|
854
910
|
ref: controlsRef,
|
|
@@ -864,7 +920,7 @@ function CameraController({
|
|
|
864
920
|
}
|
|
865
921
|
|
|
866
922
|
// src/components/layouts/scene3d.tsx
|
|
867
|
-
var
|
|
923
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
868
924
|
function Scene3D({
|
|
869
925
|
children,
|
|
870
926
|
className,
|
|
@@ -872,21 +928,21 @@ function Scene3D({
|
|
|
872
928
|
background = "transparent",
|
|
873
929
|
fog = false
|
|
874
930
|
}) {
|
|
875
|
-
return /* @__PURE__ */ (0,
|
|
876
|
-
background && background !== "transparent" && /* @__PURE__ */ (0,
|
|
877
|
-
fog && /* @__PURE__ */ (0,
|
|
878
|
-
/* @__PURE__ */ (0,
|
|
879
|
-
/* @__PURE__ */ (0,
|
|
931
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("group", { children: [
|
|
932
|
+
background && background !== "transparent" && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("color", { attach: "background", args: [background] }),
|
|
933
|
+
fog && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("fog", { attach: "fog", args: ["#000", 5, 30] }),
|
|
934
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("ambientLight", { intensity: 0.5 }),
|
|
935
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("pointLight", { position: [10, 10, 10], intensity: 1, castShadow: true }),
|
|
880
936
|
children
|
|
881
937
|
] });
|
|
882
938
|
}
|
|
883
939
|
|
|
884
940
|
// src/components/ui/button3d.tsx
|
|
885
|
-
var
|
|
941
|
+
var React11 = __toESM(require("react"), 1);
|
|
886
942
|
var import_framer_motion = require("framer-motion");
|
|
887
943
|
var import_react_slot = require("@radix-ui/react-slot");
|
|
888
944
|
var import_class_variance_authority = require("class-variance-authority");
|
|
889
|
-
var
|
|
945
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
890
946
|
var buttonVariants = (0, import_class_variance_authority.cva)(
|
|
891
947
|
[
|
|
892
948
|
"relative inline-flex items-center justify-center gap-2",
|
|
@@ -897,29 +953,18 @@ var buttonVariants = (0, import_class_variance_authority.cva)(
|
|
|
897
953
|
{
|
|
898
954
|
variants: {
|
|
899
955
|
variant: {
|
|
900
|
-
/*
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
soft: "bg-indigo-100 text-indigo-800 hover:bg-indigo-200/80 dark:bg-indigo-900/40 dark:text-indigo-200 dark:hover:bg-indigo-900/60 focus-visible:ring-indigo-400",
|
|
913
|
-
/* ===============================
|
|
914
|
-
Glass / Effects
|
|
915
|
-
=============================== */
|
|
916
|
-
glass: "bg-white/15 backdrop-blur-xl border border-white/25 text-white shadow-lg hover:bg-white/25 focus-visible:ring-white/50",
|
|
917
|
-
gradient: "bg-gradient-to-r from-indigo-500 via-purple-500 to-pink-500 text-white shadow-md hover:brightness-110 focus-visible:ring-purple-400",
|
|
918
|
-
neon: "bg-black text-cyan-300 border border-cyan-400 shadow-[0_0_25px_rgba(34,211,238,0.6)] hover:shadow-[0_0_35px_rgba(34,211,238,0.8)] focus-visible:ring-cyan-400",
|
|
919
|
-
/* ===============================
|
|
920
|
-
Link
|
|
921
|
-
=============================== */
|
|
922
|
-
link: "bg-transparent text-indigo-600 p-0 h-auto underline-offset-4 hover:underline dark:text-indigo-400 focus-visible:ring-indigo-400"
|
|
956
|
+
/* Token-based; works across light, dark, neon, glass, corporate, vibrant */
|
|
957
|
+
primary: "bg-primary text-primary-foreground border-b-4 border-primary/80 hover:bg-primary/90 active:border-b-0 active:translate-y-1 focus-visible:ring-ring",
|
|
958
|
+
secondary: "bg-secondary text-secondary-foreground border-b-4 border-border hover:bg-secondary/80 active:border-b-0 active:translate-y-1 focus-visible:ring-ring",
|
|
959
|
+
accent: "bg-accent text-accent-foreground border-b-4 border-accent/80 hover:bg-accent/90 active:border-b-0 active:translate-y-1 focus-visible:ring-ring",
|
|
960
|
+
destructive: "bg-destructive text-destructive-foreground border-b-4 border-destructive/80 hover:bg-destructive/90 active:border-b-0 active:translate-y-1 focus-visible:ring-destructive",
|
|
961
|
+
outline: "border-2 border-border bg-transparent text-foreground hover:bg-muted/70 active:border-b-0 active:translate-y-0 focus-visible:ring-ring",
|
|
962
|
+
ghost: "bg-transparent text-foreground hover:bg-muted/80 active:border-b-0 active:translate-y-0 focus-visible:ring-ring",
|
|
963
|
+
soft: "bg-primary/20 text-foreground border border-border hover:bg-primary/30 active:border-b-0 active:translate-y-1 focus-visible:ring-ring",
|
|
964
|
+
glass: "bg-background/15 backdrop-blur-xl border border-border text-foreground shadow-soft hover:bg-background/25 focus-visible:ring-ring/50",
|
|
965
|
+
gradient: "bg-gradient-to-r from-primary via-accent to-destructive text-primary-foreground border-0 shadow-soft hover:brightness-110 focus-visible:ring-ring",
|
|
966
|
+
neon: "bg-background text-accent border border-accent shadow-glow hover:shadow-glow hover:brightness-110 focus-visible:ring-ring",
|
|
967
|
+
link: "bg-transparent text-primary p-0 h-auto underline-offset-4 hover:underline focus-visible:ring-ring"
|
|
923
968
|
},
|
|
924
969
|
/* ===============================
|
|
925
970
|
Size
|
|
@@ -948,7 +993,7 @@ var buttonVariants = (0, import_class_variance_authority.cva)(
|
|
|
948
993
|
}
|
|
949
994
|
}
|
|
950
995
|
);
|
|
951
|
-
var Button3D =
|
|
996
|
+
var Button3D = React11.forwardRef(
|
|
952
997
|
({
|
|
953
998
|
className,
|
|
954
999
|
variant,
|
|
@@ -971,18 +1016,16 @@ var Button3D = React10.forwardRef(
|
|
|
971
1016
|
...textColor && { color: textColor },
|
|
972
1017
|
...borderColor && { borderColor }
|
|
973
1018
|
};
|
|
974
|
-
const glowStyle = glow ? {
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
const content = /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
|
|
978
|
-
loading && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
1019
|
+
const glowStyle = glow ? { boxShadow: "var(--shadow-glow, 0 0 25px rgb(var(--color-primary) / 0.4))" } : {};
|
|
1020
|
+
const content = /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
|
|
1021
|
+
loading && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
979
1022
|
"svg",
|
|
980
1023
|
{
|
|
981
1024
|
className: "h-4 w-4 animate-spin",
|
|
982
1025
|
viewBox: "0 0 24 24",
|
|
983
1026
|
fill: "none",
|
|
984
1027
|
children: [
|
|
985
|
-
/* @__PURE__ */ (0,
|
|
1028
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
986
1029
|
"circle",
|
|
987
1030
|
{
|
|
988
1031
|
cx: "12",
|
|
@@ -993,7 +1036,7 @@ var Button3D = React10.forwardRef(
|
|
|
993
1036
|
className: "opacity-25"
|
|
994
1037
|
}
|
|
995
1038
|
),
|
|
996
|
-
/* @__PURE__ */ (0,
|
|
1039
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
997
1040
|
"path",
|
|
998
1041
|
{
|
|
999
1042
|
fill: "currentColor",
|
|
@@ -1004,7 +1047,7 @@ var Button3D = React10.forwardRef(
|
|
|
1004
1047
|
]
|
|
1005
1048
|
}
|
|
1006
1049
|
),
|
|
1007
|
-
/* @__PURE__ */ (0,
|
|
1050
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { children })
|
|
1008
1051
|
] });
|
|
1009
1052
|
const classes = cn(
|
|
1010
1053
|
buttonVariants({ variant, size, rounded }),
|
|
@@ -1012,7 +1055,7 @@ var Button3D = React10.forwardRef(
|
|
|
1012
1055
|
className
|
|
1013
1056
|
);
|
|
1014
1057
|
if (asChild) {
|
|
1015
|
-
return /* @__PURE__ */ (0,
|
|
1058
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
1016
1059
|
import_react_slot.Slot,
|
|
1017
1060
|
{
|
|
1018
1061
|
ref,
|
|
@@ -1034,7 +1077,7 @@ var Button3D = React10.forwardRef(
|
|
|
1034
1077
|
onAnimationEnd,
|
|
1035
1078
|
...safeProps
|
|
1036
1079
|
} = props;
|
|
1037
|
-
return /* @__PURE__ */ (0,
|
|
1080
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
1038
1081
|
import_framer_motion.motion.button,
|
|
1039
1082
|
{
|
|
1040
1083
|
ref,
|
|
@@ -1059,9 +1102,9 @@ var Button3D = React10.forwardRef(
|
|
|
1059
1102
|
Button3D.displayName = "Button3D";
|
|
1060
1103
|
|
|
1061
1104
|
// src/components/ui/card3d.tsx
|
|
1062
|
-
var
|
|
1105
|
+
var import_react12 = require("react");
|
|
1063
1106
|
var import_framer_motion2 = require("framer-motion");
|
|
1064
|
-
var
|
|
1107
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
1065
1108
|
function Card3D({
|
|
1066
1109
|
children,
|
|
1067
1110
|
className,
|
|
@@ -1070,7 +1113,7 @@ function Card3D({
|
|
|
1070
1113
|
disableTilt = false,
|
|
1071
1114
|
...props
|
|
1072
1115
|
}) {
|
|
1073
|
-
const ref = (0,
|
|
1116
|
+
const ref = (0, import_react12.useRef)(null);
|
|
1074
1117
|
const x = (0, import_framer_motion2.useMotionValue)(0);
|
|
1075
1118
|
const y = (0, import_framer_motion2.useMotionValue)(0);
|
|
1076
1119
|
const mouseX = (0, import_framer_motion2.useSpring)(x, { stiffness: 150, damping: 15 });
|
|
@@ -1118,7 +1161,7 @@ function Card3D({
|
|
|
1118
1161
|
return 40;
|
|
1119
1162
|
}
|
|
1120
1163
|
};
|
|
1121
|
-
return /* @__PURE__ */ (0,
|
|
1164
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
1122
1165
|
import_framer_motion2.motion.div,
|
|
1123
1166
|
{
|
|
1124
1167
|
ref,
|
|
@@ -1130,7 +1173,7 @@ function Card3D({
|
|
|
1130
1173
|
},
|
|
1131
1174
|
className: cn("relative group cursor-pointer", className),
|
|
1132
1175
|
...props,
|
|
1133
|
-
children: /* @__PURE__ */ (0,
|
|
1176
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
|
|
1134
1177
|
import_framer_motion2.motion.div,
|
|
1135
1178
|
{
|
|
1136
1179
|
style: {
|
|
@@ -1143,7 +1186,7 @@ function Card3D({
|
|
|
1143
1186
|
getVariantStyles()
|
|
1144
1187
|
),
|
|
1145
1188
|
children: [
|
|
1146
|
-
/* @__PURE__ */ (0,
|
|
1189
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
1147
1190
|
"div",
|
|
1148
1191
|
{
|
|
1149
1192
|
className: "absolute inset-0 rounded-xl bg-black/10 dark:bg-black/40 blur-xl transition-all duration-300 -z-20",
|
|
@@ -1153,8 +1196,8 @@ function Card3D({
|
|
|
1153
1196
|
}
|
|
1154
1197
|
}
|
|
1155
1198
|
),
|
|
1156
|
-
/* @__PURE__ */ (0,
|
|
1157
|
-
/* @__PURE__ */ (0,
|
|
1199
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { style: { transform: "translateZ(20px)" }, children }),
|
|
1200
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
1158
1201
|
"div",
|
|
1159
1202
|
{
|
|
1160
1203
|
className: "absolute inset-0 rounded-xl pointer-events-none bg-gradient-to-tr from-white/0 via-white/10 to-white/0 opacity-0 group-hover:opacity-100 transition-opacity duration-500 will-change-transform",
|
|
@@ -1169,10 +1212,10 @@ function Card3D({
|
|
|
1169
1212
|
}
|
|
1170
1213
|
|
|
1171
1214
|
// src/components/ui/accordion3d.tsx
|
|
1172
|
-
var
|
|
1215
|
+
var import_react13 = require("react");
|
|
1173
1216
|
var import_framer_motion3 = require("framer-motion");
|
|
1174
1217
|
var import_lucide_react = require("lucide-react");
|
|
1175
|
-
var
|
|
1218
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
1176
1219
|
var Accordion3D = ({
|
|
1177
1220
|
items,
|
|
1178
1221
|
className,
|
|
@@ -1180,7 +1223,7 @@ var Accordion3D = ({
|
|
|
1180
1223
|
defaultOpenIndex = null,
|
|
1181
1224
|
allowMultiple = false
|
|
1182
1225
|
}) => {
|
|
1183
|
-
const [openIndexes, setOpenIndexes] = (0,
|
|
1226
|
+
const [openIndexes, setOpenIndexes] = (0, import_react13.useState)(
|
|
1184
1227
|
defaultOpenIndex !== null ? [defaultOpenIndex] : []
|
|
1185
1228
|
);
|
|
1186
1229
|
const toggleItem = (index) => {
|
|
@@ -1220,16 +1263,16 @@ var Accordion3D = ({
|
|
|
1220
1263
|
return "bg-slate-900/10 dark:bg-black/40";
|
|
1221
1264
|
}
|
|
1222
1265
|
};
|
|
1223
|
-
return /* @__PURE__ */ (0,
|
|
1266
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: cn("flex flex-col gap-4 w-full max-w-2xl mx-auto", className), children: items.map((item, index) => {
|
|
1224
1267
|
const isOpen = openIndexes.includes(index);
|
|
1225
|
-
return /* @__PURE__ */ (0,
|
|
1268
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
1226
1269
|
import_framer_motion3.motion.div,
|
|
1227
1270
|
{
|
|
1228
1271
|
initial: false,
|
|
1229
1272
|
animate: isOpen ? "open" : "closed",
|
|
1230
1273
|
className: "relative group perspective-[1000px] z-0",
|
|
1231
1274
|
children: [
|
|
1232
|
-
/* @__PURE__ */ (0,
|
|
1275
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
1233
1276
|
import_framer_motion3.motion.div,
|
|
1234
1277
|
{
|
|
1235
1278
|
className: cn(
|
|
@@ -1249,7 +1292,7 @@ var Accordion3D = ({
|
|
|
1249
1292
|
transition: { duration: 0.2 }
|
|
1250
1293
|
}
|
|
1251
1294
|
),
|
|
1252
|
-
/* @__PURE__ */ (0,
|
|
1295
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
1253
1296
|
import_framer_motion3.motion.div,
|
|
1254
1297
|
{
|
|
1255
1298
|
className: cn(
|
|
@@ -1267,38 +1310,38 @@ var Accordion3D = ({
|
|
|
1267
1310
|
closed: { y: 0 }
|
|
1268
1311
|
},
|
|
1269
1312
|
children: [
|
|
1270
|
-
/* @__PURE__ */ (0,
|
|
1313
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
1271
1314
|
"button",
|
|
1272
1315
|
{
|
|
1273
1316
|
onClick: () => toggleItem(index),
|
|
1274
1317
|
className: "w-full flex items-center justify-between p-5 text-left focus:outline-none focus-visible:ring-2 focus-visible:ring-primary/50 focus-visible:ring-offset-2 rounded-xl",
|
|
1275
1318
|
"aria-expanded": isOpen,
|
|
1276
1319
|
children: [
|
|
1277
|
-
/* @__PURE__ */ (0,
|
|
1278
|
-
item.icon && /* @__PURE__ */ (0,
|
|
1320
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex items-center gap-4", children: [
|
|
1321
|
+
item.icon && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
1279
1322
|
"div",
|
|
1280
1323
|
{
|
|
1281
1324
|
className: cn(
|
|
1282
1325
|
"flex items-center justify-center w-10 h-10 rounded-lg bg-gradient-to-br transition-all duration-500 shadow-inner",
|
|
1283
1326
|
variant === "neon" ? "from-cyan-500/20 to-blue-600/20 text-cyan-400" : variant === "solid" ? "from-slate-100 to-slate-200 dark:from-slate-800 dark:to-slate-900 text-slate-600 dark:text-slate-300" : "from-white/50 to-white/10 dark:from-white/10 dark:to-white/5 text-slate-700 dark:text-slate-200"
|
|
1284
1327
|
),
|
|
1285
|
-
children: /* @__PURE__ */ (0,
|
|
1328
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: cn("transition-transform duration-300", isOpen ? "scale-110" : "scale-100"), children: item.icon })
|
|
1286
1329
|
}
|
|
1287
1330
|
),
|
|
1288
|
-
/* @__PURE__ */ (0,
|
|
1289
|
-
/* @__PURE__ */ (0,
|
|
1331
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex flex-col", children: [
|
|
1332
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: cn(
|
|
1290
1333
|
"text-lg font-semibold tracking-tight transition-colors",
|
|
1291
1334
|
isOpen ? "opacity-100" : "opacity-80 group-hover:opacity-100"
|
|
1292
1335
|
), children: item.title }),
|
|
1293
|
-
isOpen && item.value && /* @__PURE__ */ (0,
|
|
1336
|
+
isOpen && item.value && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "text-xs opacity-60 font-mono", children: item.value })
|
|
1294
1337
|
] })
|
|
1295
1338
|
] }),
|
|
1296
|
-
/* @__PURE__ */ (0,
|
|
1297
|
-
/* @__PURE__ */ (0,
|
|
1339
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex items-center gap-3", children: [
|
|
1340
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: cn(
|
|
1298
1341
|
"w-2 h-2 rounded-full transition-all duration-500",
|
|
1299
1342
|
isOpen ? variant === "neon" ? "bg-cyan-400 shadow-[0_0_10px_#22d3ee]" : "bg-emerald-500 shadow-[0_0_8px_rgba(16,185,129,0.4)]" : "bg-slate-400/30"
|
|
1300
1343
|
) }),
|
|
1301
|
-
/* @__PURE__ */ (0,
|
|
1344
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
1302
1345
|
import_framer_motion3.motion.div,
|
|
1303
1346
|
{
|
|
1304
1347
|
variants: {
|
|
@@ -1310,14 +1353,14 @@ var Accordion3D = ({
|
|
|
1310
1353
|
"p-1 rounded-full",
|
|
1311
1354
|
variant === "neon" ? "text-cyan-400" : "text-slate-500 dark:text-slate-400"
|
|
1312
1355
|
),
|
|
1313
|
-
children: /* @__PURE__ */ (0,
|
|
1356
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_lucide_react.ChevronDown, { className: "w-5 h-5" })
|
|
1314
1357
|
}
|
|
1315
1358
|
)
|
|
1316
1359
|
] })
|
|
1317
1360
|
]
|
|
1318
1361
|
}
|
|
1319
1362
|
),
|
|
1320
|
-
/* @__PURE__ */ (0,
|
|
1363
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_framer_motion3.AnimatePresence, { initial: false, children: isOpen && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
1321
1364
|
import_framer_motion3.motion.div,
|
|
1322
1365
|
{
|
|
1323
1366
|
initial: "collapsed",
|
|
@@ -1331,7 +1374,7 @@ var Accordion3D = ({
|
|
|
1331
1374
|
duration: 0.4,
|
|
1332
1375
|
ease: [0.04, 0.62, 0.23, 0.98]
|
|
1333
1376
|
},
|
|
1334
|
-
children: /* @__PURE__ */ (0,
|
|
1377
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "px-5 pb-6 pt-0", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
1335
1378
|
import_framer_motion3.motion.div,
|
|
1336
1379
|
{
|
|
1337
1380
|
initial: { opacity: 0 },
|
|
@@ -1339,15 +1382,15 @@ var Accordion3D = ({
|
|
|
1339
1382
|
transition: { delay: 0.1, duration: 0.3 },
|
|
1340
1383
|
className: "relative",
|
|
1341
1384
|
children: [
|
|
1342
|
-
/* @__PURE__ */ (0,
|
|
1343
|
-
/* @__PURE__ */ (0,
|
|
1385
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "h-px w-full bg-gradient-to-r from-transparent via-current to-transparent opacity-10 mb-5" }),
|
|
1386
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "text-base sm:text-[15px] opacity-80 leading-relaxed font-normal pl-14", children: item.content })
|
|
1344
1387
|
]
|
|
1345
1388
|
}
|
|
1346
1389
|
) })
|
|
1347
1390
|
},
|
|
1348
1391
|
"content"
|
|
1349
1392
|
) }),
|
|
1350
|
-
/* @__PURE__ */ (0,
|
|
1393
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
1351
1394
|
"div",
|
|
1352
1395
|
{
|
|
1353
1396
|
className: "absolute inset-0 pointer-events-none bg-gradient-to-tr from-white/0 via-white/5 to-white/0 opacity-0 group-hover:opacity-100 transition-opacity duration-700",
|
|
@@ -1365,10 +1408,10 @@ var Accordion3D = ({
|
|
|
1365
1408
|
};
|
|
1366
1409
|
|
|
1367
1410
|
// src/components/ui/badge3d.tsx
|
|
1368
|
-
var
|
|
1411
|
+
var import_react14 = __toESM(require("react"), 1);
|
|
1369
1412
|
var import_framer_motion4 = require("framer-motion");
|
|
1370
|
-
var
|
|
1371
|
-
var Badge3D =
|
|
1413
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
1414
|
+
var Badge3D = import_react14.default.forwardRef(
|
|
1372
1415
|
({ className, variant = "default", size = "md", pulse = false, children, ...props }, ref) => {
|
|
1373
1416
|
const variants = {
|
|
1374
1417
|
default: "bg-primary text-primary-foreground border-b-2 border-primary/80 shadow-sm",
|
|
@@ -1383,7 +1426,7 @@ var Badge3D = import_react13.default.forwardRef(
|
|
|
1383
1426
|
md: "px-2.5 py-1 text-sm",
|
|
1384
1427
|
lg: "px-3 py-1.5 text-base"
|
|
1385
1428
|
};
|
|
1386
|
-
return /* @__PURE__ */ (0,
|
|
1429
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1387
1430
|
import_framer_motion4.motion.div,
|
|
1388
1431
|
{
|
|
1389
1432
|
ref,
|
|
@@ -1405,15 +1448,15 @@ var Badge3D = import_react13.default.forwardRef(
|
|
|
1405
1448
|
Badge3D.displayName = "Badge3D";
|
|
1406
1449
|
|
|
1407
1450
|
// src/components/ui/input3d.tsx
|
|
1408
|
-
var
|
|
1451
|
+
var import_react15 = __toESM(require("react"), 1);
|
|
1409
1452
|
var import_framer_motion5 = require("framer-motion");
|
|
1410
|
-
var
|
|
1411
|
-
var Input3D =
|
|
1453
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
1454
|
+
var Input3D = import_react15.default.forwardRef(
|
|
1412
1455
|
({ className, label, error, icon, type = "text", ...props }, ref) => {
|
|
1413
|
-
const [isFocused, setIsFocused] = (0,
|
|
1414
|
-
return /* @__PURE__ */ (0,
|
|
1415
|
-
label && /* @__PURE__ */ (0,
|
|
1416
|
-
/* @__PURE__ */ (0,
|
|
1456
|
+
const [isFocused, setIsFocused] = (0, import_react15.useState)(false);
|
|
1457
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "w-full space-y-2", children: [
|
|
1458
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("label", { className: "text-sm font-medium text-foreground", children: label }),
|
|
1459
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
1417
1460
|
import_framer_motion5.motion.div,
|
|
1418
1461
|
{
|
|
1419
1462
|
animate: {
|
|
@@ -1422,8 +1465,8 @@ var Input3D = import_react14.default.forwardRef(
|
|
|
1422
1465
|
transition: { type: "spring", stiffness: 300, damping: 20 },
|
|
1423
1466
|
className: "relative",
|
|
1424
1467
|
children: [
|
|
1425
|
-
icon && /* @__PURE__ */ (0,
|
|
1426
|
-
/* @__PURE__ */ (0,
|
|
1468
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground", children: icon }),
|
|
1469
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1427
1470
|
"input",
|
|
1428
1471
|
{
|
|
1429
1472
|
ref,
|
|
@@ -1448,16 +1491,16 @@ var Input3D = import_react14.default.forwardRef(
|
|
|
1448
1491
|
]
|
|
1449
1492
|
}
|
|
1450
1493
|
),
|
|
1451
|
-
error && /* @__PURE__ */ (0,
|
|
1494
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { className: "text-sm text-red-500", children: error })
|
|
1452
1495
|
] });
|
|
1453
1496
|
}
|
|
1454
1497
|
);
|
|
1455
1498
|
Input3D.displayName = "Input3D";
|
|
1456
1499
|
|
|
1457
1500
|
// src/components/ui/slider3d.tsx
|
|
1458
|
-
var
|
|
1501
|
+
var import_react16 = require("react");
|
|
1459
1502
|
var import_framer_motion6 = require("framer-motion");
|
|
1460
|
-
var
|
|
1503
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
1461
1504
|
function Slider3D({
|
|
1462
1505
|
value: controlledValue,
|
|
1463
1506
|
defaultValue = 50,
|
|
@@ -1470,7 +1513,7 @@ function Slider3D({
|
|
|
1470
1513
|
className,
|
|
1471
1514
|
disabled = false
|
|
1472
1515
|
}) {
|
|
1473
|
-
const [internalValue, setInternalValue] = (0,
|
|
1516
|
+
const [internalValue, setInternalValue] = (0, import_react16.useState)(defaultValue);
|
|
1474
1517
|
const isControlled = controlledValue !== void 0;
|
|
1475
1518
|
const value = isControlled ? controlledValue : internalValue;
|
|
1476
1519
|
const handleChange = (e) => {
|
|
@@ -1479,14 +1522,14 @@ function Slider3D({
|
|
|
1479
1522
|
onChange?.(newValue);
|
|
1480
1523
|
};
|
|
1481
1524
|
const percentage = (value - min) / (max - min) * 100;
|
|
1482
|
-
return /* @__PURE__ */ (0,
|
|
1483
|
-
(label || showValue) && /* @__PURE__ */ (0,
|
|
1484
|
-
label && /* @__PURE__ */ (0,
|
|
1485
|
-
showValue && /* @__PURE__ */ (0,
|
|
1525
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: cn("w-full space-y-2", className), children: [
|
|
1526
|
+
(label || showValue) && /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "flex items-center justify-between", children: [
|
|
1527
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("label", { className: "text-sm font-medium", children: label }),
|
|
1528
|
+
showValue && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "text-sm font-mono text-muted-foreground", children: value })
|
|
1486
1529
|
] }),
|
|
1487
|
-
/* @__PURE__ */ (0,
|
|
1488
|
-
/* @__PURE__ */ (0,
|
|
1489
|
-
/* @__PURE__ */ (0,
|
|
1530
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "relative", children: [
|
|
1531
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "h-3 w-full rounded-full bg-slate-200 dark:bg-slate-800 border-b-2 border-slate-300 dark:border-slate-900 shadow-inner" }),
|
|
1532
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1490
1533
|
import_framer_motion6.motion.div,
|
|
1491
1534
|
{
|
|
1492
1535
|
className: "absolute top-0 left-0 h-3 rounded-full bg-primary border-b-2 border-primary/80",
|
|
@@ -1496,7 +1539,7 @@ function Slider3D({
|
|
|
1496
1539
|
transition: { type: "spring", stiffness: 300, damping: 30 }
|
|
1497
1540
|
}
|
|
1498
1541
|
),
|
|
1499
|
-
/* @__PURE__ */ (0,
|
|
1542
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1500
1543
|
"input",
|
|
1501
1544
|
{
|
|
1502
1545
|
type: "range",
|
|
@@ -1509,7 +1552,7 @@ function Slider3D({
|
|
|
1509
1552
|
className: "absolute top-0 left-0 w-full h-3 opacity-0 cursor-pointer disabled:cursor-not-allowed"
|
|
1510
1553
|
}
|
|
1511
1554
|
),
|
|
1512
|
-
/* @__PURE__ */ (0,
|
|
1555
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1513
1556
|
import_framer_motion6.motion.div,
|
|
1514
1557
|
{
|
|
1515
1558
|
className: cn(
|
|
@@ -1526,9 +1569,9 @@ function Slider3D({
|
|
|
1526
1569
|
}
|
|
1527
1570
|
|
|
1528
1571
|
// src/components/ui/tabs3d.tsx
|
|
1529
|
-
var
|
|
1572
|
+
var import_react17 = require("react");
|
|
1530
1573
|
var import_framer_motion7 = require("framer-motion");
|
|
1531
|
-
var
|
|
1574
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
1532
1575
|
function Tabs3D({
|
|
1533
1576
|
tabs,
|
|
1534
1577
|
defaultValue,
|
|
@@ -1537,7 +1580,7 @@ function Tabs3D({
|
|
|
1537
1580
|
className,
|
|
1538
1581
|
variant = "default"
|
|
1539
1582
|
}) {
|
|
1540
|
-
const [internalValue, setInternalValue] = (0,
|
|
1583
|
+
const [internalValue, setInternalValue] = (0, import_react17.useState)(defaultValue || tabs[0]?.value);
|
|
1541
1584
|
const isControlled = controlledValue !== void 0;
|
|
1542
1585
|
const activeValue = isControlled ? controlledValue : internalValue;
|
|
1543
1586
|
const handleTabChange = (value) => {
|
|
@@ -1546,8 +1589,8 @@ function Tabs3D({
|
|
|
1546
1589
|
};
|
|
1547
1590
|
const activeTab = tabs.find((tab) => tab.value === activeValue);
|
|
1548
1591
|
const activeIndex = tabs.findIndex((tab) => tab.value === activeValue);
|
|
1549
|
-
return /* @__PURE__ */ (0,
|
|
1550
|
-
/* @__PURE__ */ (0,
|
|
1592
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: cn("w-full", className), children: [
|
|
1593
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1551
1594
|
"div",
|
|
1552
1595
|
{
|
|
1553
1596
|
className: cn(
|
|
@@ -1558,7 +1601,7 @@ function Tabs3D({
|
|
|
1558
1601
|
),
|
|
1559
1602
|
children: tabs.map((tab, index) => {
|
|
1560
1603
|
const isActive = tab.value === activeValue;
|
|
1561
|
-
return /* @__PURE__ */ (0,
|
|
1604
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
1562
1605
|
"button",
|
|
1563
1606
|
{
|
|
1564
1607
|
onClick: () => handleTabChange(tab.value),
|
|
@@ -1577,11 +1620,11 @@ function Tabs3D({
|
|
|
1577
1620
|
]
|
|
1578
1621
|
),
|
|
1579
1622
|
children: [
|
|
1580
|
-
/* @__PURE__ */ (0,
|
|
1623
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("span", { className: "flex items-center gap-2", children: [
|
|
1581
1624
|
tab.icon,
|
|
1582
1625
|
tab.label
|
|
1583
1626
|
] }),
|
|
1584
|
-
isActive && variant === "default" && /* @__PURE__ */ (0,
|
|
1627
|
+
isActive && variant === "default" && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1585
1628
|
import_framer_motion7.motion.div,
|
|
1586
1629
|
{
|
|
1587
1630
|
layoutId: "activeTab",
|
|
@@ -1596,7 +1639,7 @@ function Tabs3D({
|
|
|
1596
1639
|
})
|
|
1597
1640
|
}
|
|
1598
1641
|
),
|
|
1599
|
-
/* @__PURE__ */ (0,
|
|
1642
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_framer_motion7.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1600
1643
|
import_framer_motion7.motion.div,
|
|
1601
1644
|
{
|
|
1602
1645
|
initial: { opacity: 0, y: 10 },
|
|
@@ -1611,59 +1654,76 @@ function Tabs3D({
|
|
|
1611
1654
|
}
|
|
1612
1655
|
|
|
1613
1656
|
// src/components/ui/toggle3d.tsx
|
|
1614
|
-
var
|
|
1657
|
+
var import_react18 = require("react");
|
|
1615
1658
|
var import_framer_motion8 = require("framer-motion");
|
|
1616
|
-
var
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
1660
|
+
var Toggle3D = (0, import_react18.forwardRef)(
|
|
1661
|
+
({
|
|
1662
|
+
checked: controlledChecked,
|
|
1663
|
+
defaultChecked = false,
|
|
1664
|
+
onChange,
|
|
1665
|
+
disabled = false,
|
|
1666
|
+
variant = "pill",
|
|
1667
|
+
label
|
|
1668
|
+
}, ref) => {
|
|
1669
|
+
const [internalChecked, setInternalChecked] = (0, import_react18.useState)(defaultChecked);
|
|
1670
|
+
const isControlled = controlledChecked !== void 0;
|
|
1671
|
+
const isChecked = isControlled ? controlledChecked : internalChecked;
|
|
1672
|
+
const handleToggle = () => {
|
|
1673
|
+
if (disabled) return;
|
|
1674
|
+
const newChecked = !isChecked;
|
|
1675
|
+
if (!isControlled) {
|
|
1676
|
+
setInternalChecked(newChecked);
|
|
1677
|
+
}
|
|
1678
|
+
onChange?.(newChecked);
|
|
1679
|
+
};
|
|
1680
|
+
const getVariantStyles = () => {
|
|
1681
|
+
switch (variant) {
|
|
1682
|
+
case "neon":
|
|
1683
|
+
return isChecked ? "bg-black border border-cyan-400 shadow-[0_0_15px_rgba(34,211,238,0.4)]" : "bg-black border border-slate-700";
|
|
1684
|
+
case "glass":
|
|
1685
|
+
return "bg-white/20 backdrop-blur-md border border-white/30";
|
|
1686
|
+
case "pill":
|
|
1687
|
+
default:
|
|
1688
|
+
return isChecked ? "bg-primary" : "bg-muted";
|
|
1689
|
+
}
|
|
1690
|
+
};
|
|
1691
|
+
const toggleWidth = 56;
|
|
1692
|
+
const knobSize = 24;
|
|
1693
|
+
const padding = 4;
|
|
1694
|
+
const travel = toggleWidth - knobSize - padding * 2;
|
|
1695
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "flex items-center gap-3", children: [
|
|
1696
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1697
|
+
"button",
|
|
1698
|
+
{
|
|
1699
|
+
ref,
|
|
1700
|
+
type: "button",
|
|
1701
|
+
role: "switch",
|
|
1702
|
+
"aria-checked": isChecked,
|
|
1703
|
+
"aria-disabled": disabled,
|
|
1704
|
+
disabled,
|
|
1705
|
+
onClick: handleToggle,
|
|
1706
|
+
onKeyDown: (e) => {
|
|
1707
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
1708
|
+
e.preventDefault();
|
|
1709
|
+
handleToggle();
|
|
1710
|
+
}
|
|
1711
|
+
},
|
|
1712
|
+
className: cn(
|
|
1713
|
+
"relative h-8 w-14 rounded-full transition-colors",
|
|
1714
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
1715
|
+
disabled && "opacity-50 cursor-not-allowed",
|
|
1716
|
+
getVariantStyles()
|
|
1717
|
+
),
|
|
1718
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1659
1719
|
import_framer_motion8.motion.div,
|
|
1660
1720
|
{
|
|
1661
1721
|
className: cn(
|
|
1662
|
-
"absolute top-1 left-1 h-6 w-6 rounded-full shadow-md
|
|
1722
|
+
"absolute top-1 left-1 h-6 w-6 rounded-full shadow-md",
|
|
1663
1723
|
variant === "neon" && isChecked ? "bg-cyan-400 shadow-[0_0_10px_#22d3ee]" : "bg-white"
|
|
1664
1724
|
),
|
|
1665
1725
|
animate: {
|
|
1666
|
-
x: isChecked ?
|
|
1726
|
+
x: isChecked ? travel : 0,
|
|
1667
1727
|
scale: disabled ? 0.9 : 1
|
|
1668
1728
|
},
|
|
1669
1729
|
transition: {
|
|
@@ -1672,28 +1732,20 @@ function Toggle3D({
|
|
|
1672
1732
|
damping: 30
|
|
1673
1733
|
}
|
|
1674
1734
|
}
|
|
1675
|
-
),
|
|
1676
|
-
variant !== "neon" && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1677
|
-
"div",
|
|
1678
|
-
{
|
|
1679
|
-
className: cn(
|
|
1680
|
-
"absolute inset-0 rounded-full border-b-[3px] border-black/5 pointer-events-none",
|
|
1681
|
-
isChecked ? "border-black/10" : "border-black/5"
|
|
1682
|
-
)
|
|
1683
|
-
}
|
|
1684
1735
|
)
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1736
|
+
}
|
|
1737
|
+
),
|
|
1738
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "text-sm font-medium", children: label })
|
|
1739
|
+
] });
|
|
1740
|
+
}
|
|
1741
|
+
);
|
|
1742
|
+
Toggle3D.displayName = "Toggle3D";
|
|
1691
1743
|
|
|
1692
1744
|
// src/components/ui/modal3d.tsx
|
|
1693
1745
|
var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
|
|
1694
1746
|
var import_lucide_react2 = require("lucide-react");
|
|
1695
1747
|
var import_framer_motion9 = require("framer-motion");
|
|
1696
|
-
var
|
|
1748
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
1697
1749
|
function Modal3D({
|
|
1698
1750
|
open,
|
|
1699
1751
|
onOpenChange,
|
|
@@ -1703,10 +1755,10 @@ function Modal3D({
|
|
|
1703
1755
|
description,
|
|
1704
1756
|
className
|
|
1705
1757
|
}) {
|
|
1706
|
-
return /* @__PURE__ */ (0,
|
|
1707
|
-
trigger && /* @__PURE__ */ (0,
|
|
1708
|
-
/* @__PURE__ */ (0,
|
|
1709
|
-
/* @__PURE__ */ (0,
|
|
1758
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(DialogPrimitive.Root, { open, onOpenChange, children: [
|
|
1759
|
+
trigger && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(DialogPrimitive.Trigger, { asChild: true, children: trigger }),
|
|
1760
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_framer_motion9.AnimatePresence, { children: open ? /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(DialogPrimitive.Portal, { forceMount: true, children: [
|
|
1761
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(DialogPrimitive.Overlay, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1710
1762
|
import_framer_motion9.motion.div,
|
|
1711
1763
|
{
|
|
1712
1764
|
initial: { opacity: 0 },
|
|
@@ -1715,7 +1767,7 @@ function Modal3D({
|
|
|
1715
1767
|
className: "fixed inset-0 z-50 bg-black/50 backdrop-blur-sm"
|
|
1716
1768
|
}
|
|
1717
1769
|
) }),
|
|
1718
|
-
/* @__PURE__ */ (0,
|
|
1770
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(DialogPrimitive.Content, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
1719
1771
|
import_framer_motion9.motion.div,
|
|
1720
1772
|
{
|
|
1721
1773
|
initial: { opacity: 0, scale: 0.95, y: 10 },
|
|
@@ -1728,14 +1780,14 @@ function Modal3D({
|
|
|
1728
1780
|
className
|
|
1729
1781
|
),
|
|
1730
1782
|
children: [
|
|
1731
|
-
/* @__PURE__ */ (0,
|
|
1732
|
-
title && /* @__PURE__ */ (0,
|
|
1733
|
-
description && /* @__PURE__ */ (0,
|
|
1783
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "flex flex-col space-y-1.5 text-center sm:text-left", children: [
|
|
1784
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(DialogPrimitive.Title, { className: "text-lg font-semibold leading-none tracking-tight", children: title }),
|
|
1785
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(DialogPrimitive.Description, { className: "text-sm text-muted-foreground", children: description })
|
|
1734
1786
|
] }),
|
|
1735
1787
|
children,
|
|
1736
|
-
/* @__PURE__ */ (0,
|
|
1737
|
-
/* @__PURE__ */ (0,
|
|
1738
|
-
/* @__PURE__ */ (0,
|
|
1788
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground", children: [
|
|
1789
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_lucide_react2.X, { className: "h-4 w-4" }),
|
|
1790
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "sr-only", children: "Close" })
|
|
1739
1791
|
] })
|
|
1740
1792
|
]
|
|
1741
1793
|
}
|
|
@@ -1745,9 +1797,9 @@ function Modal3D({
|
|
|
1745
1797
|
}
|
|
1746
1798
|
|
|
1747
1799
|
// src/components/ui/menu3d.tsx
|
|
1748
|
-
var
|
|
1800
|
+
var React19 = __toESM(require("react"), 1);
|
|
1749
1801
|
var DropdownMenuPrimitive = __toESM(require("@radix-ui/react-dropdown-menu"), 1);
|
|
1750
|
-
var
|
|
1802
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
1751
1803
|
function Menu3D({
|
|
1752
1804
|
trigger,
|
|
1753
1805
|
align = "end",
|
|
@@ -1761,9 +1813,9 @@ function Menu3D({
|
|
|
1761
1813
|
);
|
|
1762
1814
|
}
|
|
1763
1815
|
}
|
|
1764
|
-
return /* @__PURE__ */ (0,
|
|
1765
|
-
/* @__PURE__ */ (0,
|
|
1766
|
-
/* @__PURE__ */ (0,
|
|
1816
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(DropdownMenuPrimitive.Root, { children: [
|
|
1817
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(DropdownMenuPrimitive.Trigger, { asChild: true, children: trigger }),
|
|
1818
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
1767
1819
|
DropdownMenuPrimitive.Content,
|
|
1768
1820
|
{
|
|
1769
1821
|
align,
|
|
@@ -1778,7 +1830,7 @@ function Menu3D({
|
|
|
1778
1830
|
"data-[side=left]:slide-in-from-right-2",
|
|
1779
1831
|
"data-[side=right]:slide-in-from-left-2"
|
|
1780
1832
|
),
|
|
1781
|
-
children: items?.length ? items.map((item, i) => /* @__PURE__ */ (0,
|
|
1833
|
+
children: items?.length ? items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
1782
1834
|
DropdownMenuPrimitive.Item,
|
|
1783
1835
|
{
|
|
1784
1836
|
disabled: item.disabled,
|
|
@@ -1792,8 +1844,8 @@ function Menu3D({
|
|
|
1792
1844
|
item.danger && "text-red-500"
|
|
1793
1845
|
),
|
|
1794
1846
|
children: [
|
|
1795
|
-
item.icon && /* @__PURE__ */ (0,
|
|
1796
|
-
/* @__PURE__ */ (0,
|
|
1847
|
+
item.icon && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "text-muted-foreground", children: item.icon }),
|
|
1848
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { children: item.label })
|
|
1797
1849
|
]
|
|
1798
1850
|
},
|
|
1799
1851
|
i
|
|
@@ -1802,7 +1854,7 @@ function Menu3D({
|
|
|
1802
1854
|
) })
|
|
1803
1855
|
] });
|
|
1804
1856
|
}
|
|
1805
|
-
var Menu3DItem =
|
|
1857
|
+
var Menu3DItem = React19.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
1806
1858
|
DropdownMenuPrimitive.Item,
|
|
1807
1859
|
{
|
|
1808
1860
|
ref,
|
|
@@ -1818,7 +1870,7 @@ var Menu3DItem = React18.forwardRef(({ className, inset, ...props }, ref) => /*
|
|
|
1818
1870
|
}
|
|
1819
1871
|
));
|
|
1820
1872
|
Menu3DItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
1821
|
-
var Menu3DLabel =
|
|
1873
|
+
var Menu3DLabel = React19.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
1822
1874
|
DropdownMenuPrimitive.Label,
|
|
1823
1875
|
{
|
|
1824
1876
|
ref,
|
|
@@ -1831,7 +1883,7 @@ var Menu3DLabel = React18.forwardRef(({ className, inset, ...props }, ref) => /*
|
|
|
1831
1883
|
}
|
|
1832
1884
|
));
|
|
1833
1885
|
Menu3DLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
1834
|
-
var Menu3DSeparator =
|
|
1886
|
+
var Menu3DSeparator = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
1835
1887
|
DropdownMenuPrimitive.Separator,
|
|
1836
1888
|
{
|
|
1837
1889
|
ref,
|
|
@@ -1846,7 +1898,7 @@ Menu3DSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
|
|
|
1846
1898
|
|
|
1847
1899
|
// src/components/ui/tooltip3d.tsx
|
|
1848
1900
|
var TooltipPrimitive = __toESM(require("@radix-ui/react-tooltip"), 1);
|
|
1849
|
-
var
|
|
1901
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
1850
1902
|
function Tooltip3D({
|
|
1851
1903
|
content,
|
|
1852
1904
|
children,
|
|
@@ -1854,9 +1906,9 @@ function Tooltip3D({
|
|
|
1854
1906
|
align = "center",
|
|
1855
1907
|
delayDuration = 200
|
|
1856
1908
|
}) {
|
|
1857
|
-
return /* @__PURE__ */ (0,
|
|
1858
|
-
/* @__PURE__ */ (0,
|
|
1859
|
-
/* @__PURE__ */ (0,
|
|
1909
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(TooltipPrimitive.Provider, { delayDuration, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(TooltipPrimitive.Root, { children: [
|
|
1910
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(TooltipPrimitive.Trigger, { asChild: true, children }),
|
|
1911
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
1860
1912
|
TooltipPrimitive.Content,
|
|
1861
1913
|
{
|
|
1862
1914
|
side,
|
|
@@ -1867,7 +1919,7 @@ function Tooltip3D({
|
|
|
1867
1919
|
),
|
|
1868
1920
|
children: [
|
|
1869
1921
|
content,
|
|
1870
|
-
/* @__PURE__ */ (0,
|
|
1922
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(TooltipPrimitive.Arrow, { className: "fill-slate-900 dark:fill-slate-100" })
|
|
1871
1923
|
]
|
|
1872
1924
|
}
|
|
1873
1925
|
)
|
|
@@ -1876,7 +1928,7 @@ function Tooltip3D({
|
|
|
1876
1928
|
|
|
1877
1929
|
// src/components/ui/progress3d.tsx
|
|
1878
1930
|
var import_framer_motion10 = require("framer-motion");
|
|
1879
|
-
var
|
|
1931
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
1880
1932
|
function Progress3D({
|
|
1881
1933
|
value,
|
|
1882
1934
|
max = 100,
|
|
@@ -1899,22 +1951,22 @@ function Progress3D({
|
|
|
1899
1951
|
md: "h-3",
|
|
1900
1952
|
lg: "h-4"
|
|
1901
1953
|
};
|
|
1902
|
-
return /* @__PURE__ */ (0,
|
|
1903
|
-
(label || showLabel) && /* @__PURE__ */ (0,
|
|
1904
|
-
label && /* @__PURE__ */ (0,
|
|
1905
|
-
showLabel && /* @__PURE__ */ (0,
|
|
1954
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: cn("w-full space-y-2", className), children: [
|
|
1955
|
+
(label || showLabel) && /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "flex items-center justify-between text-sm", children: [
|
|
1956
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "font-medium", children: label }),
|
|
1957
|
+
showLabel && /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("span", { className: "text-muted-foreground font-mono", children: [
|
|
1906
1958
|
Math.round(percentage),
|
|
1907
1959
|
"%"
|
|
1908
1960
|
] })
|
|
1909
1961
|
] }),
|
|
1910
|
-
/* @__PURE__ */ (0,
|
|
1962
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1911
1963
|
"div",
|
|
1912
1964
|
{
|
|
1913
1965
|
className: cn(
|
|
1914
1966
|
"w-full rounded-full bg-slate-200 dark:bg-slate-800 overflow-hidden shadow-inner border-b-2 border-slate-300 dark:border-slate-900",
|
|
1915
1967
|
sizes[size]
|
|
1916
1968
|
),
|
|
1917
|
-
children: /* @__PURE__ */ (0,
|
|
1969
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1918
1970
|
import_framer_motion10.motion.div,
|
|
1919
1971
|
{
|
|
1920
1972
|
className: cn(
|
|
@@ -1938,8 +1990,8 @@ function Progress3D({
|
|
|
1938
1990
|
// src/components/ui/resizable.tsx
|
|
1939
1991
|
var import_lucide_react3 = require("lucide-react");
|
|
1940
1992
|
var ResizablePrimitive = __toESM(require("react-resizable-panels"), 1);
|
|
1941
|
-
var
|
|
1942
|
-
var ResizablePanelGroup = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
1993
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
1994
|
+
var ResizablePanelGroup = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
1943
1995
|
ResizablePrimitive.PanelGroup,
|
|
1944
1996
|
{
|
|
1945
1997
|
className: cn("flex h-full w-full data-[panel-group-direction=vertical]:flex-col", className),
|
|
@@ -1951,7 +2003,7 @@ var ResizableHandle = ({
|
|
|
1951
2003
|
withHandle,
|
|
1952
2004
|
className,
|
|
1953
2005
|
...props
|
|
1954
|
-
}) => /* @__PURE__ */ (0,
|
|
2006
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
1955
2007
|
ResizablePrimitive.PanelResizeHandle,
|
|
1956
2008
|
{
|
|
1957
2009
|
className: cn(
|
|
@@ -1959,20 +2011,20 @@ var ResizableHandle = ({
|
|
|
1959
2011
|
className
|
|
1960
2012
|
),
|
|
1961
2013
|
...props,
|
|
1962
|
-
children: withHandle && /* @__PURE__ */ (0,
|
|
2014
|
+
children: withHandle && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_lucide_react3.GripVertical, { className: "h-2.5 w-2.5" }) })
|
|
1963
2015
|
}
|
|
1964
2016
|
);
|
|
1965
2017
|
|
|
1966
2018
|
// src/components/ui/select3d.tsx
|
|
1967
2019
|
var import_drei4 = require("@react-three/drei");
|
|
1968
|
-
var
|
|
2020
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
1969
2021
|
function Select3D({
|
|
1970
2022
|
options,
|
|
1971
2023
|
value,
|
|
1972
2024
|
onChange,
|
|
1973
2025
|
width = 200
|
|
1974
2026
|
}) {
|
|
1975
|
-
return /* @__PURE__ */ (0,
|
|
2027
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_drei4.Html, { transform: true, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
1976
2028
|
"select",
|
|
1977
2029
|
{
|
|
1978
2030
|
className: cn(
|
|
@@ -1981,21 +2033,21 @@ function Select3D({
|
|
|
1981
2033
|
style: { width },
|
|
1982
2034
|
value,
|
|
1983
2035
|
onChange: (e) => onChange?.(e.target.value),
|
|
1984
|
-
children: options.map((opt) => /* @__PURE__ */ (0,
|
|
2036
|
+
children: options.map((opt) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("option", { value: opt.value, children: opt.label }, opt.value))
|
|
1985
2037
|
}
|
|
1986
2038
|
) });
|
|
1987
2039
|
}
|
|
1988
2040
|
|
|
1989
2041
|
// src/components/ui/spinner3d.tsx
|
|
1990
|
-
var
|
|
2042
|
+
var import_react19 = require("react");
|
|
1991
2043
|
var import_fiber2 = require("@react-three/fiber");
|
|
1992
|
-
var
|
|
2044
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
1993
2045
|
function Spinner3D({
|
|
1994
2046
|
size = "md",
|
|
1995
2047
|
color = "#22d3ee",
|
|
1996
2048
|
speed = 1
|
|
1997
2049
|
}) {
|
|
1998
|
-
const ref = (0,
|
|
2050
|
+
const ref = (0, import_react19.useRef)(null);
|
|
1999
2051
|
const scale = size === "sm" ? 0.5 : size === "lg" ? 1.5 : 1;
|
|
2000
2052
|
(0, import_fiber2.useFrame)((state, delta) => {
|
|
2001
2053
|
if (ref.current) {
|
|
@@ -2003,14 +2055,14 @@ function Spinner3D({
|
|
|
2003
2055
|
ref.current.rotation.x -= delta * speed * 1;
|
|
2004
2056
|
}
|
|
2005
2057
|
});
|
|
2006
|
-
return /* @__PURE__ */ (0,
|
|
2007
|
-
/* @__PURE__ */ (0,
|
|
2008
|
-
/* @__PURE__ */ (0,
|
|
2009
|
-
/* @__PURE__ */ (0,
|
|
2058
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("group", { ref, scale: [scale, scale, scale], children: [
|
|
2059
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("mesh", { rotation: [Math.PI / 4, 0, 0], children: [
|
|
2060
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("torusGeometry", { args: [0.5, 0.05, 16, 32] }),
|
|
2061
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("meshStandardMaterial", { color, emissive: color })
|
|
2010
2062
|
] }),
|
|
2011
|
-
/* @__PURE__ */ (0,
|
|
2012
|
-
/* @__PURE__ */ (0,
|
|
2013
|
-
/* @__PURE__ */ (0,
|
|
2063
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("mesh", { rotation: [-Math.PI / 4, 0, 0], children: [
|
|
2064
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("torusGeometry", { args: [0.4, 0.05, 16, 32] }),
|
|
2065
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("meshStandardMaterial", { color })
|
|
2014
2066
|
] })
|
|
2015
2067
|
] });
|
|
2016
2068
|
}
|
|
@@ -2018,15 +2070,15 @@ function Spinner3D({
|
|
|
2018
2070
|
// src/components/ui/stepper3d.tsx
|
|
2019
2071
|
var import_drei5 = require("@react-three/drei");
|
|
2020
2072
|
var import_three = require("three");
|
|
2021
|
-
var
|
|
2073
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
2022
2074
|
function Stepper3D({
|
|
2023
2075
|
steps,
|
|
2024
2076
|
activeStep = 0,
|
|
2025
2077
|
gap = 2
|
|
2026
2078
|
}) {
|
|
2027
2079
|
const points = steps.map((_, i) => new import_three.Vector3((i - (steps.length - 1) / 2) * gap, 0, 0));
|
|
2028
|
-
return /* @__PURE__ */ (0,
|
|
2029
|
-
/* @__PURE__ */ (0,
|
|
2080
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("group", { children: [
|
|
2081
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
2030
2082
|
import_drei5.Line,
|
|
2031
2083
|
{
|
|
2032
2084
|
points,
|
|
@@ -2034,7 +2086,7 @@ function Stepper3D({
|
|
|
2034
2086
|
lineWidth: 2
|
|
2035
2087
|
}
|
|
2036
2088
|
),
|
|
2037
|
-
activeStep > 0 && /* @__PURE__ */ (0,
|
|
2089
|
+
activeStep > 0 && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
2038
2090
|
import_drei5.Line,
|
|
2039
2091
|
{
|
|
2040
2092
|
points: points.slice(0, activeStep + 1),
|
|
@@ -2042,12 +2094,12 @@ function Stepper3D({
|
|
|
2042
2094
|
lineWidth: 4
|
|
2043
2095
|
}
|
|
2044
2096
|
),
|
|
2045
|
-
steps.map((label, i) => /* @__PURE__ */ (0,
|
|
2046
|
-
/* @__PURE__ */ (0,
|
|
2047
|
-
/* @__PURE__ */ (0,
|
|
2048
|
-
/* @__PURE__ */ (0,
|
|
2097
|
+
steps.map((label, i) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("group", { position: points[i], children: [
|
|
2098
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("mesh", { children: [
|
|
2099
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("sphereGeometry", { args: [0.3, 32, 32] }),
|
|
2100
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("meshStandardMaterial", { color: i <= activeStep ? "#22d3ee" : "#333" })
|
|
2049
2101
|
] }),
|
|
2050
|
-
/* @__PURE__ */ (0,
|
|
2102
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
2051
2103
|
import_drei5.Text,
|
|
2052
2104
|
{
|
|
2053
2105
|
position: [0, -0.6, 0],
|
|
@@ -2063,38 +2115,38 @@ function Stepper3D({
|
|
|
2063
2115
|
}
|
|
2064
2116
|
|
|
2065
2117
|
// src/components/ui/navbar3d.tsx
|
|
2066
|
-
var
|
|
2118
|
+
var import_react20 = require("react");
|
|
2067
2119
|
var import_drei6 = require("@react-three/drei");
|
|
2068
|
-
var
|
|
2120
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
2069
2121
|
function NavBar3D({ items, activeHref = "/" }) {
|
|
2070
|
-
return /* @__PURE__ */ (0,
|
|
2071
|
-
/* @__PURE__ */ (0,
|
|
2072
|
-
/* @__PURE__ */ (0,
|
|
2073
|
-
/* @__PURE__ */ (0,
|
|
2122
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("group", { position: [0, -2, 0], children: [
|
|
2123
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("mesh", { position: [0, 0, -0.1], children: [
|
|
2124
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("boxGeometry", { args: [items.length * 2, 1, 0.2] }),
|
|
2125
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("meshStandardMaterial", { color: "#1a1a1a", transparent: true, opacity: 0.8 })
|
|
2074
2126
|
] }),
|
|
2075
2127
|
items.map((item, i) => {
|
|
2076
2128
|
const x = (i - (items.length - 1) / 2) * 2;
|
|
2077
2129
|
const isActive = activeHref === item.href;
|
|
2078
|
-
return /* @__PURE__ */ (0,
|
|
2130
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(NavBarItemMesh, { item, x, isActive }, i);
|
|
2079
2131
|
})
|
|
2080
2132
|
] });
|
|
2081
2133
|
}
|
|
2082
2134
|
function NavBarItemMesh({ item, x, isActive }) {
|
|
2083
|
-
const [hovered, setHover] = (0,
|
|
2084
|
-
return /* @__PURE__ */ (0,
|
|
2085
|
-
/* @__PURE__ */ (0,
|
|
2135
|
+
const [hovered, setHover] = (0, import_react20.useState)(false);
|
|
2136
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("group", { position: [x, 0, 0], children: [
|
|
2137
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
2086
2138
|
"mesh",
|
|
2087
2139
|
{
|
|
2088
2140
|
onPointerOver: () => setHover(true),
|
|
2089
2141
|
onPointerOut: () => setHover(false),
|
|
2090
2142
|
onClick: () => window.location.href = item.href,
|
|
2091
2143
|
children: [
|
|
2092
|
-
/* @__PURE__ */ (0,
|
|
2093
|
-
/* @__PURE__ */ (0,
|
|
2144
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("planeGeometry", { args: [1.8, 0.8] }),
|
|
2145
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("meshStandardMaterial", { color: isActive ? "#22d3ee" : hovered ? "#333" : "transparent", transparent: true, opacity: isActive ? 0.3 : hovered ? 0.5 : 0 })
|
|
2094
2146
|
]
|
|
2095
2147
|
}
|
|
2096
2148
|
),
|
|
2097
|
-
/* @__PURE__ */ (0,
|
|
2149
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
2098
2150
|
import_drei6.Text,
|
|
2099
2151
|
{
|
|
2100
2152
|
fontSize: 0.2,
|
|
@@ -2110,7 +2162,7 @@ function NavBarItemMesh({ item, x, isActive }) {
|
|
|
2110
2162
|
// src/components/ui/timeline3d.tsx
|
|
2111
2163
|
var import_drei7 = require("@react-three/drei");
|
|
2112
2164
|
var import_three2 = require("three");
|
|
2113
|
-
var
|
|
2165
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
2114
2166
|
function Timeline3D({
|
|
2115
2167
|
events,
|
|
2116
2168
|
orientation = "horizontal",
|
|
@@ -2119,15 +2171,15 @@ function Timeline3D({
|
|
|
2119
2171
|
const points = events.map((_, i) => {
|
|
2120
2172
|
return orientation === "horizontal" ? new import_three2.Vector3((i - (events.length - 1) / 2) * gap, 0, 0) : new import_three2.Vector3(0, (i - (events.length - 1) / 2) * -gap, 0);
|
|
2121
2173
|
});
|
|
2122
|
-
return /* @__PURE__ */ (0,
|
|
2123
|
-
/* @__PURE__ */ (0,
|
|
2124
|
-
events.map((ev, i) => /* @__PURE__ */ (0,
|
|
2125
|
-
/* @__PURE__ */ (0,
|
|
2126
|
-
/* @__PURE__ */ (0,
|
|
2127
|
-
/* @__PURE__ */ (0,
|
|
2174
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("group", { children: [
|
|
2175
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_drei7.Line, { points, color: "#555", lineWidth: 1 }),
|
|
2176
|
+
events.map((ev, i) => /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("group", { position: points[i], children: [
|
|
2177
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("mesh", { children: [
|
|
2178
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("sphereGeometry", { args: [0.2, 16, 16] }),
|
|
2179
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("meshStandardMaterial", { color: "#22d3ee" })
|
|
2128
2180
|
] }),
|
|
2129
|
-
/* @__PURE__ */ (0,
|
|
2130
|
-
/* @__PURE__ */ (0,
|
|
2181
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("group", { position: [0, 0.5, 0], children: [
|
|
2182
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
2131
2183
|
import_drei7.Text,
|
|
2132
2184
|
{
|
|
2133
2185
|
fontSize: 0.3,
|
|
@@ -2136,7 +2188,7 @@ function Timeline3D({
|
|
|
2136
2188
|
children: ev.date
|
|
2137
2189
|
}
|
|
2138
2190
|
),
|
|
2139
|
-
/* @__PURE__ */ (0,
|
|
2191
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
2140
2192
|
import_drei7.Text,
|
|
2141
2193
|
{
|
|
2142
2194
|
position: [0, -0.3, 0],
|
|
@@ -2152,13 +2204,13 @@ function Timeline3D({
|
|
|
2152
2204
|
}
|
|
2153
2205
|
|
|
2154
2206
|
// src/components/ui/tooltip.tsx
|
|
2155
|
-
var
|
|
2207
|
+
var React22 = __toESM(require("react"), 1);
|
|
2156
2208
|
var TooltipPrimitive2 = __toESM(require("@radix-ui/react-tooltip"), 1);
|
|
2157
|
-
var
|
|
2209
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
2158
2210
|
var TooltipProvider = TooltipPrimitive2.Provider;
|
|
2159
2211
|
var Tooltip = TooltipPrimitive2.Root;
|
|
2160
2212
|
var TooltipTrigger = TooltipPrimitive2.Trigger;
|
|
2161
|
-
var TooltipContent =
|
|
2213
|
+
var TooltipContent = React22.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
2162
2214
|
TooltipPrimitive2.Content,
|
|
2163
2215
|
{
|
|
2164
2216
|
ref,
|
|
@@ -2173,28 +2225,28 @@ var TooltipContent = React21.forwardRef(({ className, sideOffset = 4, ...props }
|
|
|
2173
2225
|
TooltipContent.displayName = TooltipPrimitive2.Content.displayName;
|
|
2174
2226
|
|
|
2175
2227
|
// src/components/ui/slider.tsx
|
|
2176
|
-
var
|
|
2228
|
+
var React23 = __toESM(require("react"), 1);
|
|
2177
2229
|
var SliderPrimitive = __toESM(require("@radix-ui/react-slider"), 1);
|
|
2178
|
-
var
|
|
2179
|
-
var Slider =
|
|
2230
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
2231
|
+
var Slider = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
|
|
2180
2232
|
SliderPrimitive.Root,
|
|
2181
2233
|
{
|
|
2182
2234
|
ref,
|
|
2183
2235
|
className: cn("relative flex w-full touch-none select-none items-center", className),
|
|
2184
2236
|
...props,
|
|
2185
2237
|
children: [
|
|
2186
|
-
/* @__PURE__ */ (0,
|
|
2187
|
-
/* @__PURE__ */ (0,
|
|
2238
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(SliderPrimitive.Track, { className: "relative h-2 w-full grow overflow-hidden rounded-full bg-secondary", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }),
|
|
2239
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.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" })
|
|
2188
2240
|
]
|
|
2189
2241
|
}
|
|
2190
2242
|
));
|
|
2191
2243
|
Slider.displayName = SliderPrimitive.Root.displayName;
|
|
2192
2244
|
|
|
2193
2245
|
// src/components/ui/toggle.tsx
|
|
2194
|
-
var
|
|
2246
|
+
var React24 = __toESM(require("react"), 1);
|
|
2195
2247
|
var TogglePrimitive = __toESM(require("@radix-ui/react-toggle"), 1);
|
|
2196
2248
|
var import_class_variance_authority2 = require("class-variance-authority");
|
|
2197
|
-
var
|
|
2249
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
2198
2250
|
var toggleVariants = (0, import_class_variance_authority2.cva)(
|
|
2199
2251
|
"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",
|
|
2200
2252
|
{
|
|
@@ -2215,13 +2267,13 @@ var toggleVariants = (0, import_class_variance_authority2.cva)(
|
|
|
2215
2267
|
}
|
|
2216
2268
|
}
|
|
2217
2269
|
);
|
|
2218
|
-
var Toggle =
|
|
2270
|
+
var Toggle = React24.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(TogglePrimitive.Root, { ref, className: cn(toggleVariants({ variant, size, className })), ...props }));
|
|
2219
2271
|
Toggle.displayName = TogglePrimitive.Root.displayName;
|
|
2220
2272
|
|
|
2221
2273
|
// src/components/ui/badge.tsx
|
|
2222
|
-
var
|
|
2274
|
+
var React25 = __toESM(require("react"), 1);
|
|
2223
2275
|
var import_class_variance_authority3 = require("class-variance-authority");
|
|
2224
|
-
var
|
|
2276
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
2225
2277
|
var badgeVariants = (0, import_class_variance_authority3.cva)(
|
|
2226
2278
|
"inline-flex items-center font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border",
|
|
2227
2279
|
{
|
|
@@ -2232,9 +2284,9 @@ var badgeVariants = (0, import_class_variance_authority3.cva)(
|
|
|
2232
2284
|
destructive: "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",
|
|
2233
2285
|
accent: "border-transparent bg-accent text-accent-foreground hover:bg-accent/80",
|
|
2234
2286
|
outline: "text-foreground border-border bg-transparent",
|
|
2235
|
-
success: "border-transparent bg-
|
|
2236
|
-
warning: "border-transparent bg-
|
|
2237
|
-
info: "border-transparent bg-
|
|
2287
|
+
success: "border-transparent bg-success text-success-foreground hover:bg-success/90",
|
|
2288
|
+
warning: "border-transparent bg-warning text-warning-foreground hover:bg-warning/90",
|
|
2289
|
+
info: "border-transparent bg-primary text-primary-foreground hover:bg-primary/90"
|
|
2238
2290
|
},
|
|
2239
2291
|
size: {
|
|
2240
2292
|
xs: "rounded px-1.5 py-0 text-[10px]",
|
|
@@ -2256,9 +2308,9 @@ var badgeVariants = (0, import_class_variance_authority3.cva)(
|
|
|
2256
2308
|
}
|
|
2257
2309
|
}
|
|
2258
2310
|
);
|
|
2259
|
-
var Badge =
|
|
2311
|
+
var Badge = React25.forwardRef(
|
|
2260
2312
|
({ className, variant, size, shape, ...props }, ref) => {
|
|
2261
|
-
return /* @__PURE__ */ (0,
|
|
2313
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
2262
2314
|
"div",
|
|
2263
2315
|
{
|
|
2264
2316
|
ref,
|
|
@@ -2271,9 +2323,9 @@ var Badge = React24.forwardRef(
|
|
|
2271
2323
|
Badge.displayName = "Badge";
|
|
2272
2324
|
|
|
2273
2325
|
// src/components/ui/input.tsx
|
|
2274
|
-
var
|
|
2326
|
+
var React26 = __toESM(require("react"), 1);
|
|
2275
2327
|
var import_class_variance_authority4 = require("class-variance-authority");
|
|
2276
|
-
var
|
|
2328
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
2277
2329
|
var inputVariants = (0, import_class_variance_authority4.cva)(
|
|
2278
2330
|
"flex w-full rounded-md border border-input bg-background ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 transition-colors",
|
|
2279
2331
|
{
|
|
@@ -2294,9 +2346,9 @@ var inputVariants = (0, import_class_variance_authority4.cva)(
|
|
|
2294
2346
|
}
|
|
2295
2347
|
}
|
|
2296
2348
|
);
|
|
2297
|
-
var Input =
|
|
2349
|
+
var Input = React26.forwardRef(
|
|
2298
2350
|
({ className, type, size = "md", error, ...props }, ref) => {
|
|
2299
|
-
return /* @__PURE__ */ (0,
|
|
2351
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
2300
2352
|
"input",
|
|
2301
2353
|
{
|
|
2302
2354
|
type,
|
|
@@ -2311,16 +2363,16 @@ var Input = React25.forwardRef(
|
|
|
2311
2363
|
Input.displayName = "Input";
|
|
2312
2364
|
|
|
2313
2365
|
// src/components/ui/progress.tsx
|
|
2314
|
-
var
|
|
2366
|
+
var React27 = __toESM(require("react"), 1);
|
|
2315
2367
|
var ProgressPrimitive = __toESM(require("@radix-ui/react-progress"), 1);
|
|
2316
|
-
var
|
|
2317
|
-
var Progress =
|
|
2368
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
2369
|
+
var Progress = React27.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
2318
2370
|
ProgressPrimitive.Root,
|
|
2319
2371
|
{
|
|
2320
2372
|
ref,
|
|
2321
2373
|
className: cn("relative h-4 w-full overflow-hidden rounded-full bg-secondary", className),
|
|
2322
2374
|
...props,
|
|
2323
|
-
children: /* @__PURE__ */ (0,
|
|
2375
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
2324
2376
|
ProgressPrimitive.Indicator,
|
|
2325
2377
|
{
|
|
2326
2378
|
className: "h-full w-full flex-1 bg-primary transition-all",
|
|
@@ -2332,19 +2384,19 @@ var Progress = React26.forwardRef(({ className, value, ...props }, ref) => /* @_
|
|
|
2332
2384
|
Progress.displayName = ProgressPrimitive.Root.displayName;
|
|
2333
2385
|
|
|
2334
2386
|
// src/components/ui/skeleton.tsx
|
|
2335
|
-
var
|
|
2387
|
+
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
2336
2388
|
function Skeleton({ className, ...props }) {
|
|
2337
|
-
return /* @__PURE__ */ (0,
|
|
2389
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: cn("animate-pulse rounded-md bg-muted", className), ...props });
|
|
2338
2390
|
}
|
|
2339
2391
|
|
|
2340
2392
|
// src/components/ui/toast.tsx
|
|
2341
|
-
var
|
|
2393
|
+
var React28 = __toESM(require("react"), 1);
|
|
2342
2394
|
var ToastPrimitives = __toESM(require("@radix-ui/react-toast"), 1);
|
|
2343
2395
|
var import_class_variance_authority5 = require("class-variance-authority");
|
|
2344
2396
|
var import_lucide_react4 = require("lucide-react");
|
|
2345
|
-
var
|
|
2397
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
2346
2398
|
var ToastProvider = ToastPrimitives.Provider;
|
|
2347
|
-
var ToastViewport =
|
|
2399
|
+
var ToastViewport = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
2348
2400
|
ToastPrimitives.Viewport,
|
|
2349
2401
|
{
|
|
2350
2402
|
ref,
|
|
@@ -2370,11 +2422,11 @@ var toastVariants = (0, import_class_variance_authority5.cva)(
|
|
|
2370
2422
|
}
|
|
2371
2423
|
}
|
|
2372
2424
|
);
|
|
2373
|
-
var Toast =
|
|
2374
|
-
return /* @__PURE__ */ (0,
|
|
2425
|
+
var Toast = React28.forwardRef(({ className, variant, ...props }, ref) => {
|
|
2426
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(ToastPrimitives.Root, { ref, className: cn(toastVariants({ variant }), className), ...props });
|
|
2375
2427
|
});
|
|
2376
2428
|
Toast.displayName = ToastPrimitives.Root.displayName;
|
|
2377
|
-
var ToastAction =
|
|
2429
|
+
var ToastAction = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
2378
2430
|
ToastPrimitives.Action,
|
|
2379
2431
|
{
|
|
2380
2432
|
ref,
|
|
@@ -2386,7 +2438,7 @@ var ToastAction = React27.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
2386
2438
|
}
|
|
2387
2439
|
));
|
|
2388
2440
|
ToastAction.displayName = ToastPrimitives.Action.displayName;
|
|
2389
|
-
var ToastClose =
|
|
2441
|
+
var ToastClose = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
2390
2442
|
ToastPrimitives.Close,
|
|
2391
2443
|
{
|
|
2392
2444
|
ref,
|
|
@@ -2396,17 +2448,17 @@ var ToastClose = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
2396
2448
|
),
|
|
2397
2449
|
"toast-close": "",
|
|
2398
2450
|
...props,
|
|
2399
|
-
children: /* @__PURE__ */ (0,
|
|
2451
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_lucide_react4.X, { className: "h-4 w-4" })
|
|
2400
2452
|
}
|
|
2401
2453
|
));
|
|
2402
2454
|
ToastClose.displayName = ToastPrimitives.Close.displayName;
|
|
2403
|
-
var ToastTitle =
|
|
2455
|
+
var ToastTitle = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(ToastPrimitives.Title, { ref, className: cn("text-sm font-semibold", className), ...props }));
|
|
2404
2456
|
ToastTitle.displayName = ToastPrimitives.Title.displayName;
|
|
2405
|
-
var ToastDescription =
|
|
2457
|
+
var ToastDescription = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(ToastPrimitives.Description, { ref, className: cn("text-sm opacity-90", className), ...props }));
|
|
2406
2458
|
ToastDescription.displayName = ToastPrimitives.Description.displayName;
|
|
2407
2459
|
|
|
2408
2460
|
// src/hooks/use-toast.ts
|
|
2409
|
-
var
|
|
2461
|
+
var React29 = __toESM(require("react"), 1);
|
|
2410
2462
|
var TOAST_LIMIT = 1;
|
|
2411
2463
|
var TOAST_REMOVE_DELAY = 1e6;
|
|
2412
2464
|
var count = 0;
|
|
@@ -2505,8 +2557,8 @@ function toast({ ...props }) {
|
|
|
2505
2557
|
};
|
|
2506
2558
|
}
|
|
2507
2559
|
function useToast() {
|
|
2508
|
-
const [state, setState] =
|
|
2509
|
-
|
|
2560
|
+
const [state, setState] = React29.useState(memoryState);
|
|
2561
|
+
React29.useEffect(() => {
|
|
2510
2562
|
listeners.push(setState);
|
|
2511
2563
|
return () => {
|
|
2512
2564
|
const index = listeners.indexOf(setState);
|
|
@@ -2523,31 +2575,31 @@ function useToast() {
|
|
|
2523
2575
|
}
|
|
2524
2576
|
|
|
2525
2577
|
// src/components/ui/toaster.tsx
|
|
2526
|
-
var
|
|
2578
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
2527
2579
|
function Toaster() {
|
|
2528
2580
|
const { toasts } = useToast();
|
|
2529
|
-
return /* @__PURE__ */ (0,
|
|
2581
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(ToastProvider, { children: [
|
|
2530
2582
|
toasts.map(function({ id, title, description, action, ...props }) {
|
|
2531
|
-
return /* @__PURE__ */ (0,
|
|
2532
|
-
/* @__PURE__ */ (0,
|
|
2533
|
-
title && /* @__PURE__ */ (0,
|
|
2534
|
-
description && /* @__PURE__ */ (0,
|
|
2583
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Toast, { ...props, children: [
|
|
2584
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "grid gap-1", children: [
|
|
2585
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(ToastTitle, { children: title }),
|
|
2586
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(ToastDescription, { children: description })
|
|
2535
2587
|
] }),
|
|
2536
2588
|
action,
|
|
2537
|
-
/* @__PURE__ */ (0,
|
|
2589
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(ToastClose, {})
|
|
2538
2590
|
] }, id);
|
|
2539
2591
|
}),
|
|
2540
|
-
/* @__PURE__ */ (0,
|
|
2592
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(ToastViewport, {})
|
|
2541
2593
|
] });
|
|
2542
2594
|
}
|
|
2543
2595
|
|
|
2544
2596
|
// src/components/ui/sonner.tsx
|
|
2545
2597
|
var import_next_themes = require("next-themes");
|
|
2546
2598
|
var import_sonner = require("sonner");
|
|
2547
|
-
var
|
|
2599
|
+
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
2548
2600
|
var Toaster2 = ({ ...props }) => {
|
|
2549
2601
|
const { theme = "system" } = (0, import_next_themes.useTheme)();
|
|
2550
|
-
return /* @__PURE__ */ (0,
|
|
2602
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
2551
2603
|
import_sonner.Toaster,
|
|
2552
2604
|
{
|
|
2553
2605
|
theme,
|
|
@@ -2566,12 +2618,12 @@ var Toaster2 = ({ ...props }) => {
|
|
|
2566
2618
|
};
|
|
2567
2619
|
|
|
2568
2620
|
// src/components/ui/popover.tsx
|
|
2569
|
-
var
|
|
2621
|
+
var React30 = __toESM(require("react"), 1);
|
|
2570
2622
|
var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"), 1);
|
|
2571
|
-
var
|
|
2623
|
+
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
2572
2624
|
var Popover = PopoverPrimitive.Root;
|
|
2573
2625
|
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
2574
|
-
var PopoverContent =
|
|
2626
|
+
var PopoverContent = React30.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(PopoverPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
2575
2627
|
PopoverPrimitive.Content,
|
|
2576
2628
|
{
|
|
2577
2629
|
ref,
|
|
@@ -2590,13 +2642,13 @@ PopoverContent.displayName = PopoverPrimitive.Content.displayName;
|
|
|
2590
2642
|
var SheetPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
|
|
2591
2643
|
var import_class_variance_authority6 = require("class-variance-authority");
|
|
2592
2644
|
var import_lucide_react5 = require("lucide-react");
|
|
2593
|
-
var
|
|
2594
|
-
var
|
|
2645
|
+
var React31 = __toESM(require("react"), 1);
|
|
2646
|
+
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
2595
2647
|
var Sheet = SheetPrimitive.Root;
|
|
2596
2648
|
var SheetTrigger = SheetPrimitive.Trigger;
|
|
2597
2649
|
var SheetClose = SheetPrimitive.Close;
|
|
2598
2650
|
var SheetPortal = SheetPrimitive.Portal;
|
|
2599
|
-
var SheetOverlay =
|
|
2651
|
+
var SheetOverlay = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
2600
2652
|
SheetPrimitive.Overlay,
|
|
2601
2653
|
{
|
|
2602
2654
|
className: cn(
|
|
@@ -2624,38 +2676,38 @@ var sheetVariants = (0, import_class_variance_authority6.cva)(
|
|
|
2624
2676
|
}
|
|
2625
2677
|
}
|
|
2626
2678
|
);
|
|
2627
|
-
var SheetContent =
|
|
2628
|
-
({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ (0,
|
|
2629
|
-
/* @__PURE__ */ (0,
|
|
2630
|
-
/* @__PURE__ */ (0,
|
|
2679
|
+
var SheetContent = React31.forwardRef(
|
|
2680
|
+
({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(SheetPortal, { children: [
|
|
2681
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(SheetOverlay, {}),
|
|
2682
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(SheetPrimitive.Content, { ref, className: cn(sheetVariants({ side }), className), ...props, children: [
|
|
2631
2683
|
children,
|
|
2632
|
-
/* @__PURE__ */ (0,
|
|
2633
|
-
/* @__PURE__ */ (0,
|
|
2634
|
-
/* @__PURE__ */ (0,
|
|
2684
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity data-[state=open]:bg-secondary hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none", children: [
|
|
2685
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_lucide_react5.X, { className: "h-4 w-4" }),
|
|
2686
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "sr-only", children: "Close" })
|
|
2635
2687
|
] })
|
|
2636
2688
|
] })
|
|
2637
2689
|
] })
|
|
2638
2690
|
);
|
|
2639
2691
|
SheetContent.displayName = SheetPrimitive.Content.displayName;
|
|
2640
|
-
var SheetHeader = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
2692
|
+
var SheetHeader = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { className: cn("flex flex-col space-y-2 text-center sm:text-left", className), ...props });
|
|
2641
2693
|
SheetHeader.displayName = "SheetHeader";
|
|
2642
|
-
var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
2694
|
+
var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
|
|
2643
2695
|
SheetFooter.displayName = "SheetFooter";
|
|
2644
|
-
var SheetTitle =
|
|
2696
|
+
var SheetTitle = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(SheetPrimitive.Title, { ref, className: cn("text-lg font-semibold text-foreground", className), ...props }));
|
|
2645
2697
|
SheetTitle.displayName = SheetPrimitive.Title.displayName;
|
|
2646
|
-
var SheetDescription =
|
|
2698
|
+
var SheetDescription = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(SheetPrimitive.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
|
|
2647
2699
|
SheetDescription.displayName = SheetPrimitive.Description.displayName;
|
|
2648
2700
|
|
|
2649
2701
|
// src/components/ui/dialog.tsx
|
|
2650
|
-
var
|
|
2702
|
+
var React32 = __toESM(require("react"), 1);
|
|
2651
2703
|
var DialogPrimitive2 = __toESM(require("@radix-ui/react-dialog"), 1);
|
|
2652
2704
|
var import_lucide_react6 = require("lucide-react");
|
|
2653
|
-
var
|
|
2705
|
+
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
2654
2706
|
var Dialog = DialogPrimitive2.Root;
|
|
2655
2707
|
var DialogTrigger = DialogPrimitive2.Trigger;
|
|
2656
2708
|
var DialogPortal = DialogPrimitive2.Portal;
|
|
2657
2709
|
var DialogClose = DialogPrimitive2.Close;
|
|
2658
|
-
var DialogOverlay =
|
|
2710
|
+
var DialogOverlay = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
2659
2711
|
DialogPrimitive2.Overlay,
|
|
2660
2712
|
{
|
|
2661
2713
|
ref,
|
|
@@ -2667,9 +2719,9 @@ var DialogOverlay = React31.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
2667
2719
|
}
|
|
2668
2720
|
));
|
|
2669
2721
|
DialogOverlay.displayName = DialogPrimitive2.Overlay.displayName;
|
|
2670
|
-
var DialogContent =
|
|
2671
|
-
/* @__PURE__ */ (0,
|
|
2672
|
-
/* @__PURE__ */ (0,
|
|
2722
|
+
var DialogContent = React32.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(DialogPortal, { children: [
|
|
2723
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(DialogOverlay, {}),
|
|
2724
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
|
|
2673
2725
|
DialogPrimitive2.Content,
|
|
2674
2726
|
{
|
|
2675
2727
|
ref,
|
|
@@ -2680,20 +2732,20 @@ var DialogContent = React31.forwardRef(({ className, children, ...props }, ref)
|
|
|
2680
2732
|
...props,
|
|
2681
2733
|
children: [
|
|
2682
2734
|
children,
|
|
2683
|
-
/* @__PURE__ */ (0,
|
|
2684
|
-
/* @__PURE__ */ (0,
|
|
2685
|
-
/* @__PURE__ */ (0,
|
|
2735
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(DialogPrimitive2.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: [
|
|
2736
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_lucide_react6.X, { className: "h-4 w-4" }),
|
|
2737
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: "sr-only", children: "Close" })
|
|
2686
2738
|
] })
|
|
2687
2739
|
]
|
|
2688
2740
|
}
|
|
2689
2741
|
)
|
|
2690
2742
|
] }));
|
|
2691
2743
|
DialogContent.displayName = DialogPrimitive2.Content.displayName;
|
|
2692
|
-
var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
2744
|
+
var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: cn("flex flex-col space-y-1.5 text-center sm:text-left", className), ...props });
|
|
2693
2745
|
DialogHeader.displayName = "DialogHeader";
|
|
2694
|
-
var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
2746
|
+
var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
|
|
2695
2747
|
DialogFooter.displayName = "DialogFooter";
|
|
2696
|
-
var DialogTitle =
|
|
2748
|
+
var DialogTitle = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
2697
2749
|
DialogPrimitive2.Title,
|
|
2698
2750
|
{
|
|
2699
2751
|
ref,
|
|
@@ -2702,18 +2754,18 @@ var DialogTitle = React31.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
2702
2754
|
}
|
|
2703
2755
|
));
|
|
2704
2756
|
DialogTitle.displayName = DialogPrimitive2.Title.displayName;
|
|
2705
|
-
var DialogDescription =
|
|
2757
|
+
var DialogDescription = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(DialogPrimitive2.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
|
|
2706
2758
|
DialogDescription.displayName = DialogPrimitive2.Description.displayName;
|
|
2707
2759
|
|
|
2708
2760
|
// src/components/ui/breadcrumb.tsx
|
|
2709
|
-
var
|
|
2761
|
+
var React33 = __toESM(require("react"), 1);
|
|
2710
2762
|
var import_react_slot2 = require("@radix-ui/react-slot");
|
|
2711
2763
|
var import_lucide_react7 = require("lucide-react");
|
|
2712
|
-
var
|
|
2713
|
-
var Breadcrumb =
|
|
2764
|
+
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
2765
|
+
var Breadcrumb = React33.forwardRef(({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("nav", { ref, "aria-label": "breadcrumb", ...props }));
|
|
2714
2766
|
Breadcrumb.displayName = "Breadcrumb";
|
|
2715
|
-
var BreadcrumbList =
|
|
2716
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
2767
|
+
var BreadcrumbList = React33.forwardRef(
|
|
2768
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
2717
2769
|
"ol",
|
|
2718
2770
|
{
|
|
2719
2771
|
ref,
|
|
@@ -2726,17 +2778,17 @@ var BreadcrumbList = React32.forwardRef(
|
|
|
2726
2778
|
)
|
|
2727
2779
|
);
|
|
2728
2780
|
BreadcrumbList.displayName = "BreadcrumbList";
|
|
2729
|
-
var BreadcrumbItem =
|
|
2730
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
2781
|
+
var BreadcrumbItem = React33.forwardRef(
|
|
2782
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("li", { ref, className: cn("inline-flex items-center gap-1.5", className), ...props })
|
|
2731
2783
|
);
|
|
2732
2784
|
BreadcrumbItem.displayName = "BreadcrumbItem";
|
|
2733
|
-
var BreadcrumbLink =
|
|
2785
|
+
var BreadcrumbLink = React33.forwardRef(({ asChild, className, ...props }, ref) => {
|
|
2734
2786
|
const Comp = asChild ? import_react_slot2.Slot : "a";
|
|
2735
|
-
return /* @__PURE__ */ (0,
|
|
2787
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Comp, { ref, className: cn("transition-colors hover:text-foreground", className), ...props });
|
|
2736
2788
|
});
|
|
2737
2789
|
BreadcrumbLink.displayName = "BreadcrumbLink";
|
|
2738
|
-
var BreadcrumbPage =
|
|
2739
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
2790
|
+
var BreadcrumbPage = React33.forwardRef(
|
|
2791
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
2740
2792
|
"span",
|
|
2741
2793
|
{
|
|
2742
2794
|
ref,
|
|
@@ -2749,9 +2801,9 @@ var BreadcrumbPage = React32.forwardRef(
|
|
|
2749
2801
|
)
|
|
2750
2802
|
);
|
|
2751
2803
|
BreadcrumbPage.displayName = "BreadcrumbPage";
|
|
2752
|
-
var BreadcrumbSeparator = ({ children, className, ...props }) => /* @__PURE__ */ (0,
|
|
2804
|
+
var BreadcrumbSeparator = ({ children, className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("li", { role: "presentation", "aria-hidden": "true", className: cn("[&>svg]:size-3.5", className), ...props, children: children ?? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react7.ChevronRight, {}) });
|
|
2753
2805
|
BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
|
|
2754
|
-
var BreadcrumbEllipsis = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
2806
|
+
var BreadcrumbEllipsis = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
|
|
2755
2807
|
"span",
|
|
2756
2808
|
{
|
|
2757
2809
|
role: "presentation",
|
|
@@ -2759,28 +2811,28 @@ var BreadcrumbEllipsis = ({ className, ...props }) => /* @__PURE__ */ (0, import
|
|
|
2759
2811
|
className: cn("flex h-9 w-9 items-center justify-center", className),
|
|
2760
2812
|
...props,
|
|
2761
2813
|
children: [
|
|
2762
|
-
/* @__PURE__ */ (0,
|
|
2763
|
-
/* @__PURE__ */ (0,
|
|
2814
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react7.MoreHorizontal, { className: "h-4 w-4" }),
|
|
2815
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "sr-only", children: "More" })
|
|
2764
2816
|
]
|
|
2765
2817
|
}
|
|
2766
2818
|
);
|
|
2767
2819
|
BreadcrumbEllipsis.displayName = "BreadcrumbElipssis";
|
|
2768
2820
|
|
|
2769
2821
|
// src/components/ui/label.tsx
|
|
2770
|
-
var
|
|
2822
|
+
var React34 = __toESM(require("react"), 1);
|
|
2771
2823
|
var LabelPrimitive = __toESM(require("@radix-ui/react-label"), 1);
|
|
2772
2824
|
var import_class_variance_authority7 = require("class-variance-authority");
|
|
2773
|
-
var
|
|
2825
|
+
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
2774
2826
|
var labelVariants = (0, import_class_variance_authority7.cva)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70");
|
|
2775
|
-
var Label2 =
|
|
2827
|
+
var Label2 = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(LabelPrimitive.Root, { ref, className: cn(labelVariants(), className), ...props }));
|
|
2776
2828
|
Label2.displayName = LabelPrimitive.Root.displayName;
|
|
2777
2829
|
|
|
2778
2830
|
// src/components/ui/checkbox.tsx
|
|
2779
|
-
var
|
|
2831
|
+
var React35 = __toESM(require("react"), 1);
|
|
2780
2832
|
var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"), 1);
|
|
2781
2833
|
var import_lucide_react8 = require("lucide-react");
|
|
2782
|
-
var
|
|
2783
|
-
var Checkbox =
|
|
2834
|
+
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
2835
|
+
var Checkbox = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
2784
2836
|
CheckboxPrimitive.Root,
|
|
2785
2837
|
{
|
|
2786
2838
|
ref,
|
|
@@ -2789,16 +2841,16 @@ var Checkbox = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
2789
2841
|
className
|
|
2790
2842
|
),
|
|
2791
2843
|
...props,
|
|
2792
|
-
children: /* @__PURE__ */ (0,
|
|
2844
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(CheckboxPrimitive.Indicator, { className: cn("flex items-center justify-center text-current"), children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react8.Check, { className: "h-4 w-4" }) })
|
|
2793
2845
|
}
|
|
2794
2846
|
));
|
|
2795
2847
|
Checkbox.displayName = CheckboxPrimitive.Root.displayName;
|
|
2796
2848
|
|
|
2797
2849
|
// src/components/ui/switch.tsx
|
|
2798
|
-
var
|
|
2850
|
+
var React36 = __toESM(require("react"), 1);
|
|
2799
2851
|
var SwitchPrimitives = __toESM(require("@radix-ui/react-switch"), 1);
|
|
2800
|
-
var
|
|
2801
|
-
var Switch =
|
|
2852
|
+
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
2853
|
+
var Switch = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
2802
2854
|
SwitchPrimitives.Root,
|
|
2803
2855
|
{
|
|
2804
2856
|
className: cn(
|
|
@@ -2807,7 +2859,7 @@ var Switch = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
|
|
|
2807
2859
|
),
|
|
2808
2860
|
...props,
|
|
2809
2861
|
ref,
|
|
2810
|
-
children: /* @__PURE__ */ (0,
|
|
2862
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
2811
2863
|
SwitchPrimitives.Thumb,
|
|
2812
2864
|
{
|
|
2813
2865
|
className: cn(
|
|
@@ -2820,10 +2872,10 @@ var Switch = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
|
|
|
2820
2872
|
Switch.displayName = SwitchPrimitives.Root.displayName;
|
|
2821
2873
|
|
|
2822
2874
|
// src/components/ui/textarea.tsx
|
|
2823
|
-
var
|
|
2824
|
-
var
|
|
2825
|
-
var Textarea =
|
|
2826
|
-
return /* @__PURE__ */ (0,
|
|
2875
|
+
var React37 = __toESM(require("react"), 1);
|
|
2876
|
+
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
2877
|
+
var Textarea = React37.forwardRef(({ className, ...props }, ref) => {
|
|
2878
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
2827
2879
|
"textarea",
|
|
2828
2880
|
{
|
|
2829
2881
|
className: cn(
|
|
@@ -2838,10 +2890,10 @@ var Textarea = React36.forwardRef(({ className, ...props }, ref) => {
|
|
|
2838
2890
|
Textarea.displayName = "Textarea";
|
|
2839
2891
|
|
|
2840
2892
|
// src/components/ui/separator.tsx
|
|
2841
|
-
var
|
|
2893
|
+
var React38 = __toESM(require("react"), 1);
|
|
2842
2894
|
var SeparatorPrimitive = __toESM(require("@radix-ui/react-separator"), 1);
|
|
2843
|
-
var
|
|
2844
|
-
var Separator2 =
|
|
2895
|
+
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
2896
|
+
var Separator2 = React38.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
2845
2897
|
SeparatorPrimitive.Root,
|
|
2846
2898
|
{
|
|
2847
2899
|
ref,
|
|
@@ -2854,16 +2906,16 @@ var Separator2 = React37.forwardRef(({ className, orientation = "horizontal", de
|
|
|
2854
2906
|
Separator2.displayName = SeparatorPrimitive.Root.displayName;
|
|
2855
2907
|
|
|
2856
2908
|
// src/components/ui/scroll-area.tsx
|
|
2857
|
-
var
|
|
2909
|
+
var React39 = __toESM(require("react"), 1);
|
|
2858
2910
|
var ScrollAreaPrimitive = __toESM(require("@radix-ui/react-scroll-area"), 1);
|
|
2859
|
-
var
|
|
2860
|
-
var ScrollArea =
|
|
2861
|
-
/* @__PURE__ */ (0,
|
|
2862
|
-
/* @__PURE__ */ (0,
|
|
2863
|
-
/* @__PURE__ */ (0,
|
|
2911
|
+
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
2912
|
+
var ScrollArea = React39.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(ScrollAreaPrimitive.Root, { ref, className: cn("relative overflow-hidden", className), ...props, children: [
|
|
2913
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ScrollAreaPrimitive.Viewport, { className: "h-full w-full rounded-[inherit]", children }),
|
|
2914
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ScrollBar, {}),
|
|
2915
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ScrollAreaPrimitive.Corner, {})
|
|
2864
2916
|
] }));
|
|
2865
2917
|
ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
|
|
2866
|
-
var ScrollBar =
|
|
2918
|
+
var ScrollBar = React39.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
2867
2919
|
ScrollAreaPrimitive.ScrollAreaScrollbar,
|
|
2868
2920
|
{
|
|
2869
2921
|
ref,
|
|
@@ -2875,22 +2927,22 @@ var ScrollBar = React38.forwardRef(({ className, orientation = "vertical", ...pr
|
|
|
2875
2927
|
className
|
|
2876
2928
|
),
|
|
2877
2929
|
...props,
|
|
2878
|
-
children: /* @__PURE__ */ (0,
|
|
2930
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border" })
|
|
2879
2931
|
}
|
|
2880
2932
|
));
|
|
2881
2933
|
ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
|
|
2882
2934
|
|
|
2883
2935
|
// src/components/ui/radio-group.tsx
|
|
2884
|
-
var
|
|
2936
|
+
var React40 = __toESM(require("react"), 1);
|
|
2885
2937
|
var RadioGroupPrimitive = __toESM(require("@radix-ui/react-radio-group"), 1);
|
|
2886
2938
|
var import_lucide_react9 = require("lucide-react");
|
|
2887
|
-
var
|
|
2888
|
-
var RadioGroup =
|
|
2889
|
-
return /* @__PURE__ */ (0,
|
|
2939
|
+
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
2940
|
+
var RadioGroup = React40.forwardRef(({ className, ...props }, ref) => {
|
|
2941
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(RadioGroupPrimitive.Root, { className: cn("grid gap-2", className), ...props, ref });
|
|
2890
2942
|
});
|
|
2891
2943
|
RadioGroup.displayName = RadioGroupPrimitive.Root.displayName;
|
|
2892
|
-
var RadioGroupItem =
|
|
2893
|
-
return /* @__PURE__ */ (0,
|
|
2944
|
+
var RadioGroupItem = React40.forwardRef(({ className, ...props }, ref) => {
|
|
2945
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
2894
2946
|
RadioGroupPrimitive.Item,
|
|
2895
2947
|
{
|
|
2896
2948
|
ref,
|
|
@@ -2899,25 +2951,25 @@ var RadioGroupItem = React39.forwardRef(({ className, ...props }, ref) => {
|
|
|
2899
2951
|
className
|
|
2900
2952
|
),
|
|
2901
2953
|
...props,
|
|
2902
|
-
children: /* @__PURE__ */ (0,
|
|
2954
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react9.Circle, { className: "h-2.5 w-2.5 fill-current text-current" }) })
|
|
2903
2955
|
}
|
|
2904
2956
|
);
|
|
2905
2957
|
});
|
|
2906
2958
|
RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
|
|
2907
2959
|
|
|
2908
2960
|
// src/components/ui/toggle-group.tsx
|
|
2909
|
-
var
|
|
2961
|
+
var React41 = __toESM(require("react"), 1);
|
|
2910
2962
|
var ToggleGroupPrimitive = __toESM(require("@radix-ui/react-toggle-group"), 1);
|
|
2911
|
-
var
|
|
2912
|
-
var ToggleGroupContext =
|
|
2963
|
+
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
2964
|
+
var ToggleGroupContext = React41.createContext({
|
|
2913
2965
|
size: "default",
|
|
2914
2966
|
variant: "default"
|
|
2915
2967
|
});
|
|
2916
|
-
var ToggleGroup =
|
|
2968
|
+
var ToggleGroup = React41.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(ToggleGroupPrimitive.Root, { ref, className: cn("flex items-center justify-center gap-1", className), ...props, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(ToggleGroupContext.Provider, { value: { variant, size }, children }) }));
|
|
2917
2969
|
ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
|
|
2918
|
-
var ToggleGroupItem =
|
|
2919
|
-
const context =
|
|
2920
|
-
return /* @__PURE__ */ (0,
|
|
2970
|
+
var ToggleGroupItem = React41.forwardRef(({ className, children, variant, size, ...props }, ref) => {
|
|
2971
|
+
const context = React41.useContext(ToggleGroupContext);
|
|
2972
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
2921
2973
|
ToggleGroupPrimitive.Item,
|
|
2922
2974
|
{
|
|
2923
2975
|
ref,
|
|
@@ -2936,9 +2988,9 @@ var ToggleGroupItem = React40.forwardRef(({ className, children, variant, size,
|
|
|
2936
2988
|
ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
|
|
2937
2989
|
|
|
2938
2990
|
// src/components/ui/alert.tsx
|
|
2939
|
-
var
|
|
2991
|
+
var React42 = __toESM(require("react"), 1);
|
|
2940
2992
|
var import_class_variance_authority8 = require("class-variance-authority");
|
|
2941
|
-
var
|
|
2993
|
+
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
2942
2994
|
var alertVariants = (0, import_class_variance_authority8.cva)(
|
|
2943
2995
|
"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",
|
|
2944
2996
|
{
|
|
@@ -2953,22 +3005,22 @@ var alertVariants = (0, import_class_variance_authority8.cva)(
|
|
|
2953
3005
|
}
|
|
2954
3006
|
}
|
|
2955
3007
|
);
|
|
2956
|
-
var Alert =
|
|
3008
|
+
var Alert = React42.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { ref, role: "alert", className: cn(alertVariants({ variant }), className), ...props }));
|
|
2957
3009
|
Alert.displayName = "Alert";
|
|
2958
|
-
var AlertTitle =
|
|
2959
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3010
|
+
var AlertTitle = React42.forwardRef(
|
|
3011
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("h5", { ref, className: cn("mb-1 font-medium leading-none tracking-tight", className), ...props })
|
|
2960
3012
|
);
|
|
2961
3013
|
AlertTitle.displayName = "AlertTitle";
|
|
2962
|
-
var AlertDescription =
|
|
2963
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3014
|
+
var AlertDescription = React42.forwardRef(
|
|
3015
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { ref, className: cn("text-sm [&_p]:leading-relaxed", className), ...props })
|
|
2964
3016
|
);
|
|
2965
3017
|
AlertDescription.displayName = "AlertDescription";
|
|
2966
3018
|
|
|
2967
3019
|
// src/components/ui/avatar.tsx
|
|
2968
|
-
var
|
|
3020
|
+
var React43 = __toESM(require("react"), 1);
|
|
2969
3021
|
var AvatarPrimitive = __toESM(require("@radix-ui/react-avatar"), 1);
|
|
2970
|
-
var
|
|
2971
|
-
var Avatar =
|
|
3022
|
+
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
3023
|
+
var Avatar = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
2972
3024
|
AvatarPrimitive.Root,
|
|
2973
3025
|
{
|
|
2974
3026
|
ref,
|
|
@@ -2977,9 +3029,9 @@ var Avatar = React42.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
|
|
|
2977
3029
|
}
|
|
2978
3030
|
));
|
|
2979
3031
|
Avatar.displayName = AvatarPrimitive.Root.displayName;
|
|
2980
|
-
var AvatarImage =
|
|
3032
|
+
var AvatarImage = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(AvatarPrimitive.Image, { ref, className: cn("aspect-square h-full w-full", className), ...props }));
|
|
2981
3033
|
AvatarImage.displayName = AvatarPrimitive.Image.displayName;
|
|
2982
|
-
var AvatarFallback =
|
|
3034
|
+
var AvatarFallback = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
2983
3035
|
AvatarPrimitive.Fallback,
|
|
2984
3036
|
{
|
|
2985
3037
|
ref,
|
|
@@ -2990,9 +3042,9 @@ var AvatarFallback = React42.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
2990
3042
|
AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
|
|
2991
3043
|
|
|
2992
3044
|
// src/components/ui/card.tsx
|
|
2993
|
-
var
|
|
3045
|
+
var React44 = __toESM(require("react"), 1);
|
|
2994
3046
|
var import_class_variance_authority9 = require("class-variance-authority");
|
|
2995
|
-
var
|
|
3047
|
+
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
2996
3048
|
var cardVariants = (0, import_class_variance_authority9.cva)(
|
|
2997
3049
|
"rounded-lg border bg-card text-card-foreground transition-shadow",
|
|
2998
3050
|
{
|
|
@@ -3010,8 +3062,8 @@ var cardVariants = (0, import_class_variance_authority9.cva)(
|
|
|
3010
3062
|
}
|
|
3011
3063
|
}
|
|
3012
3064
|
);
|
|
3013
|
-
var Card =
|
|
3014
|
-
({ className, elevation, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3065
|
+
var Card = React44.forwardRef(
|
|
3066
|
+
({ className, elevation, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
3015
3067
|
"div",
|
|
3016
3068
|
{
|
|
3017
3069
|
ref,
|
|
@@ -3021,7 +3073,7 @@ var Card = React43.forwardRef(
|
|
|
3021
3073
|
)
|
|
3022
3074
|
);
|
|
3023
3075
|
Card.displayName = "Card";
|
|
3024
|
-
var CardHeader =
|
|
3076
|
+
var CardHeader = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
3025
3077
|
"div",
|
|
3026
3078
|
{
|
|
3027
3079
|
ref,
|
|
@@ -3030,7 +3082,7 @@ var CardHeader = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
3030
3082
|
}
|
|
3031
3083
|
));
|
|
3032
3084
|
CardHeader.displayName = "CardHeader";
|
|
3033
|
-
var CardTitle =
|
|
3085
|
+
var CardTitle = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
3034
3086
|
"h3",
|
|
3035
3087
|
{
|
|
3036
3088
|
ref,
|
|
@@ -3042,7 +3094,7 @@ var CardTitle = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
3042
3094
|
}
|
|
3043
3095
|
));
|
|
3044
3096
|
CardTitle.displayName = "CardTitle";
|
|
3045
|
-
var CardDescription =
|
|
3097
|
+
var CardDescription = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
3046
3098
|
"p",
|
|
3047
3099
|
{
|
|
3048
3100
|
ref,
|
|
@@ -3051,9 +3103,9 @@ var CardDescription = React43.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
3051
3103
|
}
|
|
3052
3104
|
));
|
|
3053
3105
|
CardDescription.displayName = "CardDescription";
|
|
3054
|
-
var CardContent =
|
|
3106
|
+
var CardContent = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { ref, className: cn("p-6 pt-0", className), ...props }));
|
|
3055
3107
|
CardContent.displayName = "CardContent";
|
|
3056
|
-
var CardFooter =
|
|
3108
|
+
var CardFooter = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
3057
3109
|
"div",
|
|
3058
3110
|
{
|
|
3059
3111
|
ref,
|
|
@@ -3074,12 +3126,12 @@ var AspectRatioPrimitive = __toESM(require("@radix-ui/react-aspect-ratio"), 1);
|
|
|
3074
3126
|
var AspectRatio = AspectRatioPrimitive.Root;
|
|
3075
3127
|
|
|
3076
3128
|
// src/components/ui/hover-card.tsx
|
|
3077
|
-
var
|
|
3129
|
+
var React45 = __toESM(require("react"), 1);
|
|
3078
3130
|
var HoverCardPrimitive = __toESM(require("@radix-ui/react-hover-card"), 1);
|
|
3079
|
-
var
|
|
3131
|
+
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
3080
3132
|
var HoverCard = HoverCardPrimitive.Root;
|
|
3081
3133
|
var HoverCardTrigger = HoverCardPrimitive.Trigger;
|
|
3082
|
-
var HoverCardContent =
|
|
3134
|
+
var HoverCardContent = React45.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
3083
3135
|
HoverCardPrimitive.Content,
|
|
3084
3136
|
{
|
|
3085
3137
|
ref,
|
|
@@ -3095,13 +3147,13 @@ var HoverCardContent = React44.forwardRef(({ className, align = "center", sideOf
|
|
|
3095
3147
|
HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
|
|
3096
3148
|
|
|
3097
3149
|
// src/components/ui/alert-dialog.tsx
|
|
3098
|
-
var
|
|
3150
|
+
var React46 = __toESM(require("react"), 1);
|
|
3099
3151
|
var AlertDialogPrimitive = __toESM(require("@radix-ui/react-alert-dialog"), 1);
|
|
3100
|
-
var
|
|
3152
|
+
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
3101
3153
|
var AlertDialog = AlertDialogPrimitive.Root;
|
|
3102
3154
|
var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
|
|
3103
3155
|
var AlertDialogPortal = AlertDialogPrimitive.Portal;
|
|
3104
|
-
var AlertDialogOverlay =
|
|
3156
|
+
var AlertDialogOverlay = React46.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
3105
3157
|
AlertDialogPrimitive.Overlay,
|
|
3106
3158
|
{
|
|
3107
3159
|
className: cn(
|
|
@@ -3113,9 +3165,9 @@ var AlertDialogOverlay = React45.forwardRef(({ className, ...props }, ref) => /*
|
|
|
3113
3165
|
}
|
|
3114
3166
|
));
|
|
3115
3167
|
AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
|
|
3116
|
-
var AlertDialogContent =
|
|
3117
|
-
/* @__PURE__ */ (0,
|
|
3118
|
-
/* @__PURE__ */ (0,
|
|
3168
|
+
var AlertDialogContent = React46.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(AlertDialogPortal, { children: [
|
|
3169
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(AlertDialogOverlay, {}),
|
|
3170
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
3119
3171
|
AlertDialogPrimitive.Content,
|
|
3120
3172
|
{
|
|
3121
3173
|
ref,
|
|
@@ -3128,17 +3180,17 @@ var AlertDialogContent = React45.forwardRef(({ className, ...props }, ref) => /*
|
|
|
3128
3180
|
)
|
|
3129
3181
|
] }));
|
|
3130
3182
|
AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;
|
|
3131
|
-
var AlertDialogHeader = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
3183
|
+
var AlertDialogHeader = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: cn("flex flex-col space-y-2 text-center sm:text-left", className), ...props });
|
|
3132
3184
|
AlertDialogHeader.displayName = "AlertDialogHeader";
|
|
3133
|
-
var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
3185
|
+
var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
|
|
3134
3186
|
AlertDialogFooter.displayName = "AlertDialogFooter";
|
|
3135
|
-
var AlertDialogTitle =
|
|
3187
|
+
var AlertDialogTitle = React46.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(AlertDialogPrimitive.Title, { ref, className: cn("text-lg font-semibold", className), ...props }));
|
|
3136
3188
|
AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
|
|
3137
|
-
var AlertDialogDescription =
|
|
3189
|
+
var AlertDialogDescription = React46.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(AlertDialogPrimitive.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
|
|
3138
3190
|
AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
|
|
3139
|
-
var AlertDialogAction =
|
|
3191
|
+
var AlertDialogAction = React46.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(AlertDialogPrimitive.Action, { ref, className: cn(buttonVariants(), className), ...props }));
|
|
3140
3192
|
AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
|
|
3141
|
-
var AlertDialogCancel =
|
|
3193
|
+
var AlertDialogCancel = React46.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
3142
3194
|
AlertDialogPrimitive.Cancel,
|
|
3143
3195
|
{
|
|
3144
3196
|
ref,
|
|
@@ -3149,11 +3201,11 @@ var AlertDialogCancel = React45.forwardRef(({ className, ...props }, ref) => /*
|
|
|
3149
3201
|
AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
|
|
3150
3202
|
|
|
3151
3203
|
// src/components/ui/command.tsx
|
|
3152
|
-
var
|
|
3204
|
+
var React47 = __toESM(require("react"), 1);
|
|
3153
3205
|
var import_cmdk = require("cmdk");
|
|
3154
3206
|
var import_lucide_react10 = require("lucide-react");
|
|
3155
|
-
var
|
|
3156
|
-
var Command =
|
|
3207
|
+
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
3208
|
+
var Command = React47.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
3157
3209
|
import_cmdk.Command,
|
|
3158
3210
|
{
|
|
3159
3211
|
ref,
|
|
@@ -3166,11 +3218,11 @@ var Command = React46.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
3166
3218
|
));
|
|
3167
3219
|
Command.displayName = import_cmdk.Command.displayName;
|
|
3168
3220
|
var CommandDialog = ({ children, ...props }) => {
|
|
3169
|
-
return /* @__PURE__ */ (0,
|
|
3221
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Dialog, { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(DialogContent, { className: "overflow-hidden p-0 shadow-lg", children: /* @__PURE__ */ (0, import_jsx_runtime58.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 }) }) });
|
|
3170
3222
|
};
|
|
3171
|
-
var CommandInput =
|
|
3172
|
-
/* @__PURE__ */ (0,
|
|
3173
|
-
/* @__PURE__ */ (0,
|
|
3223
|
+
var CommandInput = React47.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
|
|
3224
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react10.Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
|
|
3225
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
3174
3226
|
import_cmdk.Command.Input,
|
|
3175
3227
|
{
|
|
3176
3228
|
ref,
|
|
@@ -3183,7 +3235,7 @@ var CommandInput = React46.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
3183
3235
|
)
|
|
3184
3236
|
] }));
|
|
3185
3237
|
CommandInput.displayName = import_cmdk.Command.Input.displayName;
|
|
3186
|
-
var CommandList =
|
|
3238
|
+
var CommandList = React47.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
3187
3239
|
import_cmdk.Command.List,
|
|
3188
3240
|
{
|
|
3189
3241
|
ref,
|
|
@@ -3192,9 +3244,9 @@ var CommandList = React46.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
3192
3244
|
}
|
|
3193
3245
|
));
|
|
3194
3246
|
CommandList.displayName = import_cmdk.Command.List.displayName;
|
|
3195
|
-
var CommandEmpty =
|
|
3247
|
+
var CommandEmpty = React47.forwardRef((props, ref) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_cmdk.Command.Empty, { ref, className: "py-6 text-center text-sm", ...props }));
|
|
3196
3248
|
CommandEmpty.displayName = import_cmdk.Command.Empty.displayName;
|
|
3197
|
-
var CommandGroup =
|
|
3249
|
+
var CommandGroup = React47.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
3198
3250
|
import_cmdk.Command.Group,
|
|
3199
3251
|
{
|
|
3200
3252
|
ref,
|
|
@@ -3206,9 +3258,9 @@ var CommandGroup = React46.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
3206
3258
|
}
|
|
3207
3259
|
));
|
|
3208
3260
|
CommandGroup.displayName = import_cmdk.Command.Group.displayName;
|
|
3209
|
-
var CommandSeparator =
|
|
3261
|
+
var CommandSeparator = React47.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_cmdk.Command.Separator, { ref, className: cn("-mx-1 h-px bg-border", className), ...props }));
|
|
3210
3262
|
CommandSeparator.displayName = import_cmdk.Command.Separator.displayName;
|
|
3211
|
-
var CommandItem =
|
|
3263
|
+
var CommandItem = React47.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
3212
3264
|
import_cmdk.Command.Item,
|
|
3213
3265
|
{
|
|
3214
3266
|
ref,
|
|
@@ -3221,25 +3273,25 @@ var CommandItem = React46.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
3221
3273
|
));
|
|
3222
3274
|
CommandItem.displayName = import_cmdk.Command.Item.displayName;
|
|
3223
3275
|
var CommandShortcut = ({ className, ...props }) => {
|
|
3224
|
-
return /* @__PURE__ */ (0,
|
|
3276
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className), ...props });
|
|
3225
3277
|
};
|
|
3226
3278
|
CommandShortcut.displayName = "CommandShortcut";
|
|
3227
3279
|
|
|
3228
3280
|
// src/components/ui/form.tsx
|
|
3229
|
-
var
|
|
3281
|
+
var React48 = __toESM(require("react"), 1);
|
|
3230
3282
|
var import_react_slot3 = require("@radix-ui/react-slot");
|
|
3231
3283
|
var import_react_hook_form = require("react-hook-form");
|
|
3232
|
-
var
|
|
3284
|
+
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
3233
3285
|
var Form = import_react_hook_form.FormProvider;
|
|
3234
|
-
var FormFieldContext =
|
|
3286
|
+
var FormFieldContext = React48.createContext({});
|
|
3235
3287
|
var FormField = ({
|
|
3236
3288
|
...props
|
|
3237
3289
|
}) => {
|
|
3238
|
-
return /* @__PURE__ */ (0,
|
|
3290
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_react_hook_form.Controller, { ...props }) });
|
|
3239
3291
|
};
|
|
3240
3292
|
var useFormField = () => {
|
|
3241
|
-
const fieldContext =
|
|
3242
|
-
const itemContext =
|
|
3293
|
+
const fieldContext = React48.useContext(FormFieldContext);
|
|
3294
|
+
const itemContext = React48.useContext(FormItemContext);
|
|
3243
3295
|
const { getFieldState, formState } = (0, import_react_hook_form.useFormContext)();
|
|
3244
3296
|
const fieldState = getFieldState(fieldContext.name, formState);
|
|
3245
3297
|
if (!fieldContext) {
|
|
@@ -3255,23 +3307,23 @@ var useFormField = () => {
|
|
|
3255
3307
|
...fieldState
|
|
3256
3308
|
};
|
|
3257
3309
|
};
|
|
3258
|
-
var FormItemContext =
|
|
3259
|
-
var FormItem =
|
|
3310
|
+
var FormItemContext = React48.createContext({});
|
|
3311
|
+
var FormItem = React48.forwardRef(
|
|
3260
3312
|
({ className, ...props }, ref) => {
|
|
3261
|
-
const id =
|
|
3262
|
-
return /* @__PURE__ */ (0,
|
|
3313
|
+
const id = React48.useId();
|
|
3314
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { ref, className: cn("space-y-2", className), ...props }) });
|
|
3263
3315
|
}
|
|
3264
3316
|
);
|
|
3265
3317
|
FormItem.displayName = "FormItem";
|
|
3266
|
-
var FormLabel =
|
|
3318
|
+
var FormLabel = React48.forwardRef(({ className, ...props }, ref) => {
|
|
3267
3319
|
const { error, formItemId } = useFormField();
|
|
3268
|
-
return /* @__PURE__ */ (0,
|
|
3320
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Label2, { ref, className: cn(error && "text-destructive", className), htmlFor: formItemId, ...props });
|
|
3269
3321
|
});
|
|
3270
3322
|
FormLabel.displayName = "FormLabel";
|
|
3271
|
-
var FormControl =
|
|
3323
|
+
var FormControl = React48.forwardRef(
|
|
3272
3324
|
({ ...props }, ref) => {
|
|
3273
3325
|
const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
|
|
3274
|
-
return /* @__PURE__ */ (0,
|
|
3326
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
3275
3327
|
import_react_slot3.Slot,
|
|
3276
3328
|
{
|
|
3277
3329
|
ref,
|
|
@@ -3284,30 +3336,30 @@ var FormControl = React47.forwardRef(
|
|
|
3284
3336
|
}
|
|
3285
3337
|
);
|
|
3286
3338
|
FormControl.displayName = "FormControl";
|
|
3287
|
-
var FormDescription =
|
|
3339
|
+
var FormDescription = React48.forwardRef(
|
|
3288
3340
|
({ className, ...props }, ref) => {
|
|
3289
3341
|
const { formDescriptionId } = useFormField();
|
|
3290
|
-
return /* @__PURE__ */ (0,
|
|
3342
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("p", { ref, id: formDescriptionId, className: cn("text-sm text-muted-foreground", className), ...props });
|
|
3291
3343
|
}
|
|
3292
3344
|
);
|
|
3293
3345
|
FormDescription.displayName = "FormDescription";
|
|
3294
|
-
var FormMessage =
|
|
3346
|
+
var FormMessage = React48.forwardRef(
|
|
3295
3347
|
({ className, children, ...props }, ref) => {
|
|
3296
3348
|
const { error, formMessageId } = useFormField();
|
|
3297
3349
|
const body = error ? String(error?.message) : children;
|
|
3298
3350
|
if (!body) {
|
|
3299
3351
|
return null;
|
|
3300
3352
|
}
|
|
3301
|
-
return /* @__PURE__ */ (0,
|
|
3353
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("p", { ref, id: formMessageId, className: cn("text-sm font-medium text-destructive", className), ...props, children: body });
|
|
3302
3354
|
}
|
|
3303
3355
|
);
|
|
3304
3356
|
FormMessage.displayName = "FormMessage";
|
|
3305
3357
|
|
|
3306
3358
|
// src/components/ui/pagination.tsx
|
|
3307
|
-
var
|
|
3359
|
+
var React49 = __toESM(require("react"), 1);
|
|
3308
3360
|
var import_lucide_react11 = require("lucide-react");
|
|
3309
|
-
var
|
|
3310
|
-
var Pagination = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
3361
|
+
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
3362
|
+
var Pagination = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
3311
3363
|
"nav",
|
|
3312
3364
|
{
|
|
3313
3365
|
role: "navigation",
|
|
@@ -3317,13 +3369,13 @@ var Pagination = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_run
|
|
|
3317
3369
|
}
|
|
3318
3370
|
);
|
|
3319
3371
|
Pagination.displayName = "Pagination";
|
|
3320
|
-
var PaginationContent =
|
|
3321
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3372
|
+
var PaginationContent = React49.forwardRef(
|
|
3373
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("ul", { ref, className: cn("flex flex-row items-center gap-1", className), ...props })
|
|
3322
3374
|
);
|
|
3323
3375
|
PaginationContent.displayName = "PaginationContent";
|
|
3324
|
-
var PaginationItem =
|
|
3376
|
+
var PaginationItem = React49.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("li", { ref, className: cn("", className), ...props }));
|
|
3325
3377
|
PaginationItem.displayName = "PaginationItem";
|
|
3326
|
-
var PaginationLink = ({ className, isActive, size = "md", ...props }) => /* @__PURE__ */ (0,
|
|
3378
|
+
var PaginationLink = ({ className, isActive, size = "md", ...props }) => /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
3327
3379
|
"a",
|
|
3328
3380
|
{
|
|
3329
3381
|
"aria-current": isActive ? "page" : void 0,
|
|
@@ -3338,34 +3390,34 @@ var PaginationLink = ({ className, isActive, size = "md", ...props }) => /* @__P
|
|
|
3338
3390
|
}
|
|
3339
3391
|
);
|
|
3340
3392
|
PaginationLink.displayName = "PaginationLink";
|
|
3341
|
-
var PaginationPrevious = ({ className, size, ...props }) => /* @__PURE__ */ (0,
|
|
3342
|
-
/* @__PURE__ */ (0,
|
|
3343
|
-
/* @__PURE__ */ (0,
|
|
3393
|
+
var PaginationPrevious = ({ className, size, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(PaginationLink, { "aria-label": "Go to previous page", size: size ?? "md", className: cn("gap-1 pl-2.5", className), ...props, children: [
|
|
3394
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_lucide_react11.ChevronLeft, { className: "h-4 w-4" }),
|
|
3395
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { children: "Previous" })
|
|
3344
3396
|
] });
|
|
3345
3397
|
PaginationPrevious.displayName = "PaginationPrevious";
|
|
3346
|
-
var PaginationNext = ({ className, size, ...props }) => /* @__PURE__ */ (0,
|
|
3347
|
-
/* @__PURE__ */ (0,
|
|
3348
|
-
/* @__PURE__ */ (0,
|
|
3398
|
+
var PaginationNext = ({ className, size, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(PaginationLink, { "aria-label": "Go to next page", size: size ?? "md", className: cn("gap-1 pr-2.5", className), ...props, children: [
|
|
3399
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { children: "Next" }),
|
|
3400
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_lucide_react11.ChevronRight, { className: "h-4 w-4" })
|
|
3349
3401
|
] });
|
|
3350
3402
|
PaginationNext.displayName = "PaginationNext";
|
|
3351
|
-
var PaginationEllipsis = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
3352
|
-
/* @__PURE__ */ (0,
|
|
3353
|
-
/* @__PURE__ */ (0,
|
|
3403
|
+
var PaginationEllipsis = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("span", { "aria-hidden": true, className: cn("flex h-9 w-9 items-center justify-center", className), ...props, children: [
|
|
3404
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_lucide_react11.MoreHorizontal, { className: "h-4 w-4" }),
|
|
3405
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { className: "sr-only", children: "More pages" })
|
|
3354
3406
|
] });
|
|
3355
3407
|
PaginationEllipsis.displayName = "PaginationEllipsis";
|
|
3356
3408
|
|
|
3357
3409
|
// src/components/ui/dropdown-menu.tsx
|
|
3358
|
-
var
|
|
3410
|
+
var React50 = __toESM(require("react"), 1);
|
|
3359
3411
|
var DropdownMenuPrimitive2 = __toESM(require("@radix-ui/react-dropdown-menu"), 1);
|
|
3360
3412
|
var import_lucide_react12 = require("lucide-react");
|
|
3361
|
-
var
|
|
3413
|
+
var import_jsx_runtime61 = require("react/jsx-runtime");
|
|
3362
3414
|
var DropdownMenu = DropdownMenuPrimitive2.Root;
|
|
3363
3415
|
var DropdownMenuTrigger = DropdownMenuPrimitive2.Trigger;
|
|
3364
3416
|
var DropdownMenuGroup = DropdownMenuPrimitive2.Group;
|
|
3365
3417
|
var DropdownMenuPortal = DropdownMenuPrimitive2.Portal;
|
|
3366
3418
|
var DropdownMenuSub = DropdownMenuPrimitive2.Sub;
|
|
3367
3419
|
var DropdownMenuRadioGroup = DropdownMenuPrimitive2.RadioGroup;
|
|
3368
|
-
var DropdownMenuSubTrigger =
|
|
3420
|
+
var DropdownMenuSubTrigger = React50.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
|
|
3369
3421
|
DropdownMenuPrimitive2.SubTrigger,
|
|
3370
3422
|
{
|
|
3371
3423
|
ref,
|
|
@@ -3377,12 +3429,12 @@ var DropdownMenuSubTrigger = React49.forwardRef(({ className, inset, children, .
|
|
|
3377
3429
|
...props,
|
|
3378
3430
|
children: [
|
|
3379
3431
|
children,
|
|
3380
|
-
/* @__PURE__ */ (0,
|
|
3432
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_lucide_react12.ChevronRight, { className: "ml-auto h-4 w-4" })
|
|
3381
3433
|
]
|
|
3382
3434
|
}
|
|
3383
3435
|
));
|
|
3384
3436
|
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive2.SubTrigger.displayName;
|
|
3385
|
-
var DropdownMenuSubContent =
|
|
3437
|
+
var DropdownMenuSubContent = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
3386
3438
|
DropdownMenuPrimitive2.SubContent,
|
|
3387
3439
|
{
|
|
3388
3440
|
ref,
|
|
@@ -3394,7 +3446,7 @@ var DropdownMenuSubContent = React49.forwardRef(({ className, ...props }, ref) =
|
|
|
3394
3446
|
}
|
|
3395
3447
|
));
|
|
3396
3448
|
DropdownMenuSubContent.displayName = DropdownMenuPrimitive2.SubContent.displayName;
|
|
3397
|
-
var DropdownMenuContent =
|
|
3449
|
+
var DropdownMenuContent = React50.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(DropdownMenuPrimitive2.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
3398
3450
|
DropdownMenuPrimitive2.Content,
|
|
3399
3451
|
{
|
|
3400
3452
|
ref,
|
|
@@ -3407,7 +3459,7 @@ var DropdownMenuContent = React49.forwardRef(({ className, sideOffset = 4, ...pr
|
|
|
3407
3459
|
}
|
|
3408
3460
|
) }));
|
|
3409
3461
|
DropdownMenuContent.displayName = DropdownMenuPrimitive2.Content.displayName;
|
|
3410
|
-
var DropdownMenuItem =
|
|
3462
|
+
var DropdownMenuItem = React50.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
3411
3463
|
DropdownMenuPrimitive2.Item,
|
|
3412
3464
|
{
|
|
3413
3465
|
ref,
|
|
@@ -3420,7 +3472,7 @@ var DropdownMenuItem = React49.forwardRef(({ className, inset, ...props }, ref)
|
|
|
3420
3472
|
}
|
|
3421
3473
|
));
|
|
3422
3474
|
DropdownMenuItem.displayName = DropdownMenuPrimitive2.Item.displayName;
|
|
3423
|
-
var DropdownMenuCheckboxItem =
|
|
3475
|
+
var DropdownMenuCheckboxItem = React50.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
|
|
3424
3476
|
DropdownMenuPrimitive2.CheckboxItem,
|
|
3425
3477
|
{
|
|
3426
3478
|
ref,
|
|
@@ -3431,13 +3483,13 @@ var DropdownMenuCheckboxItem = React49.forwardRef(({ className, children, checke
|
|
|
3431
3483
|
checked,
|
|
3432
3484
|
...props,
|
|
3433
3485
|
children: [
|
|
3434
|
-
/* @__PURE__ */ (0,
|
|
3486
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(DropdownMenuPrimitive2.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_lucide_react12.Check, { className: "h-4 w-4" }) }) }),
|
|
3435
3487
|
children
|
|
3436
3488
|
]
|
|
3437
3489
|
}
|
|
3438
3490
|
));
|
|
3439
3491
|
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive2.CheckboxItem.displayName;
|
|
3440
|
-
var DropdownMenuRadioItem =
|
|
3492
|
+
var DropdownMenuRadioItem = React50.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
|
|
3441
3493
|
DropdownMenuPrimitive2.RadioItem,
|
|
3442
3494
|
{
|
|
3443
3495
|
ref,
|
|
@@ -3447,13 +3499,13 @@ var DropdownMenuRadioItem = React49.forwardRef(({ className, children, ...props
|
|
|
3447
3499
|
),
|
|
3448
3500
|
...props,
|
|
3449
3501
|
children: [
|
|
3450
|
-
/* @__PURE__ */ (0,
|
|
3502
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(DropdownMenuPrimitive2.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_lucide_react12.Circle, { className: "h-2 w-2 fill-current" }) }) }),
|
|
3451
3503
|
children
|
|
3452
3504
|
]
|
|
3453
3505
|
}
|
|
3454
3506
|
));
|
|
3455
3507
|
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive2.RadioItem.displayName;
|
|
3456
|
-
var DropdownMenuLabel =
|
|
3508
|
+
var DropdownMenuLabel = React50.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
3457
3509
|
DropdownMenuPrimitive2.Label,
|
|
3458
3510
|
{
|
|
3459
3511
|
ref,
|
|
@@ -3462,25 +3514,25 @@ var DropdownMenuLabel = React49.forwardRef(({ className, inset, ...props }, ref)
|
|
|
3462
3514
|
}
|
|
3463
3515
|
));
|
|
3464
3516
|
DropdownMenuLabel.displayName = DropdownMenuPrimitive2.Label.displayName;
|
|
3465
|
-
var DropdownMenuSeparator =
|
|
3517
|
+
var DropdownMenuSeparator = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(DropdownMenuPrimitive2.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-muted", className), ...props }));
|
|
3466
3518
|
DropdownMenuSeparator.displayName = DropdownMenuPrimitive2.Separator.displayName;
|
|
3467
3519
|
var DropdownMenuShortcut = ({ className, ...props }) => {
|
|
3468
|
-
return /* @__PURE__ */ (0,
|
|
3520
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
|
|
3469
3521
|
};
|
|
3470
3522
|
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
3471
3523
|
|
|
3472
3524
|
// src/components/ui/context-menu.tsx
|
|
3473
|
-
var
|
|
3525
|
+
var React51 = __toESM(require("react"), 1);
|
|
3474
3526
|
var ContextMenuPrimitive = __toESM(require("@radix-ui/react-context-menu"), 1);
|
|
3475
3527
|
var import_lucide_react13 = require("lucide-react");
|
|
3476
|
-
var
|
|
3528
|
+
var import_jsx_runtime62 = require("react/jsx-runtime");
|
|
3477
3529
|
var ContextMenu = ContextMenuPrimitive.Root;
|
|
3478
3530
|
var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
|
|
3479
3531
|
var ContextMenuGroup = ContextMenuPrimitive.Group;
|
|
3480
3532
|
var ContextMenuPortal = ContextMenuPrimitive.Portal;
|
|
3481
3533
|
var ContextMenuSub = ContextMenuPrimitive.Sub;
|
|
3482
3534
|
var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
|
|
3483
|
-
var ContextMenuSubTrigger =
|
|
3535
|
+
var ContextMenuSubTrigger = React51.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
|
|
3484
3536
|
ContextMenuPrimitive.SubTrigger,
|
|
3485
3537
|
{
|
|
3486
3538
|
ref,
|
|
@@ -3492,12 +3544,12 @@ var ContextMenuSubTrigger = React50.forwardRef(({ className, inset, children, ..
|
|
|
3492
3544
|
...props,
|
|
3493
3545
|
children: [
|
|
3494
3546
|
children,
|
|
3495
|
-
/* @__PURE__ */ (0,
|
|
3547
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_lucide_react13.ChevronRight, { className: "ml-auto h-4 w-4" })
|
|
3496
3548
|
]
|
|
3497
3549
|
}
|
|
3498
3550
|
));
|
|
3499
3551
|
ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
|
|
3500
|
-
var ContextMenuSubContent =
|
|
3552
|
+
var ContextMenuSubContent = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
3501
3553
|
ContextMenuPrimitive.SubContent,
|
|
3502
3554
|
{
|
|
3503
3555
|
ref,
|
|
@@ -3509,7 +3561,7 @@ var ContextMenuSubContent = React50.forwardRef(({ className, ...props }, ref) =>
|
|
|
3509
3561
|
}
|
|
3510
3562
|
));
|
|
3511
3563
|
ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
|
|
3512
|
-
var ContextMenuContent =
|
|
3564
|
+
var ContextMenuContent = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
3513
3565
|
ContextMenuPrimitive.Content,
|
|
3514
3566
|
{
|
|
3515
3567
|
ref,
|
|
@@ -3521,7 +3573,7 @@ var ContextMenuContent = React50.forwardRef(({ className, ...props }, ref) => /*
|
|
|
3521
3573
|
}
|
|
3522
3574
|
) }));
|
|
3523
3575
|
ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
|
|
3524
|
-
var ContextMenuItem =
|
|
3576
|
+
var ContextMenuItem = React51.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
3525
3577
|
ContextMenuPrimitive.Item,
|
|
3526
3578
|
{
|
|
3527
3579
|
ref,
|
|
@@ -3534,7 +3586,7 @@ var ContextMenuItem = React50.forwardRef(({ className, inset, ...props }, ref) =
|
|
|
3534
3586
|
}
|
|
3535
3587
|
));
|
|
3536
3588
|
ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
|
|
3537
|
-
var ContextMenuCheckboxItem =
|
|
3589
|
+
var ContextMenuCheckboxItem = React51.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
|
|
3538
3590
|
ContextMenuPrimitive.CheckboxItem,
|
|
3539
3591
|
{
|
|
3540
3592
|
ref,
|
|
@@ -3545,13 +3597,13 @@ var ContextMenuCheckboxItem = React50.forwardRef(({ className, children, checked
|
|
|
3545
3597
|
checked,
|
|
3546
3598
|
...props,
|
|
3547
3599
|
children: [
|
|
3548
|
-
/* @__PURE__ */ (0,
|
|
3600
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_lucide_react13.Check, { className: "h-4 w-4" }) }) }),
|
|
3549
3601
|
children
|
|
3550
3602
|
]
|
|
3551
3603
|
}
|
|
3552
3604
|
));
|
|
3553
3605
|
ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
|
|
3554
|
-
var ContextMenuRadioItem =
|
|
3606
|
+
var ContextMenuRadioItem = React51.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
|
|
3555
3607
|
ContextMenuPrimitive.RadioItem,
|
|
3556
3608
|
{
|
|
3557
3609
|
ref,
|
|
@@ -3561,13 +3613,13 @@ var ContextMenuRadioItem = React50.forwardRef(({ className, children, ...props }
|
|
|
3561
3613
|
),
|
|
3562
3614
|
...props,
|
|
3563
3615
|
children: [
|
|
3564
|
-
/* @__PURE__ */ (0,
|
|
3616
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_lucide_react13.Circle, { className: "h-2 w-2 fill-current" }) }) }),
|
|
3565
3617
|
children
|
|
3566
3618
|
]
|
|
3567
3619
|
}
|
|
3568
3620
|
));
|
|
3569
3621
|
ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
|
|
3570
|
-
var ContextMenuLabel =
|
|
3622
|
+
var ContextMenuLabel = React51.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
3571
3623
|
ContextMenuPrimitive.Label,
|
|
3572
3624
|
{
|
|
3573
3625
|
ref,
|
|
@@ -3576,27 +3628,27 @@ var ContextMenuLabel = React50.forwardRef(({ className, inset, ...props }, ref)
|
|
|
3576
3628
|
}
|
|
3577
3629
|
));
|
|
3578
3630
|
ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
|
|
3579
|
-
var ContextMenuSeparator =
|
|
3631
|
+
var ContextMenuSeparator = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(ContextMenuPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-border", className), ...props }));
|
|
3580
3632
|
ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
|
|
3581
3633
|
var ContextMenuShortcut = ({ className, ...props }) => {
|
|
3582
|
-
return /* @__PURE__ */ (0,
|
|
3634
|
+
return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className), ...props });
|
|
3583
3635
|
};
|
|
3584
3636
|
ContextMenuShortcut.displayName = "ContextMenuShortcut";
|
|
3585
3637
|
|
|
3586
3638
|
// src/components/ui/drawer.tsx
|
|
3587
|
-
var
|
|
3639
|
+
var React52 = __toESM(require("react"), 1);
|
|
3588
3640
|
var import_vaul = require("vaul");
|
|
3589
|
-
var
|
|
3590
|
-
var Drawer = ({ shouldScaleBackground = true, ...props }) => /* @__PURE__ */ (0,
|
|
3641
|
+
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
3642
|
+
var Drawer = ({ shouldScaleBackground = true, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_vaul.Drawer.Root, { shouldScaleBackground, ...props });
|
|
3591
3643
|
Drawer.displayName = "Drawer";
|
|
3592
3644
|
var DrawerTrigger = import_vaul.Drawer.Trigger;
|
|
3593
3645
|
var DrawerPortal = import_vaul.Drawer.Portal;
|
|
3594
3646
|
var DrawerClose = import_vaul.Drawer.Close;
|
|
3595
|
-
var DrawerOverlay =
|
|
3647
|
+
var DrawerOverlay = React52.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_vaul.Drawer.Overlay, { ref, className: cn("fixed inset-0 z-50 bg-black/80", className), ...props }));
|
|
3596
3648
|
DrawerOverlay.displayName = import_vaul.Drawer.Overlay.displayName;
|
|
3597
|
-
var DrawerContent =
|
|
3598
|
-
/* @__PURE__ */ (0,
|
|
3599
|
-
/* @__PURE__ */ (0,
|
|
3649
|
+
var DrawerContent = React52.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(DrawerPortal, { children: [
|
|
3650
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(DrawerOverlay, {}),
|
|
3651
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
|
|
3600
3652
|
import_vaul.Drawer.Content,
|
|
3601
3653
|
{
|
|
3602
3654
|
ref,
|
|
@@ -3606,18 +3658,18 @@ var DrawerContent = React51.forwardRef(({ className, children, ...props }, ref)
|
|
|
3606
3658
|
),
|
|
3607
3659
|
...props,
|
|
3608
3660
|
children: [
|
|
3609
|
-
/* @__PURE__ */ (0,
|
|
3661
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted" }),
|
|
3610
3662
|
children
|
|
3611
3663
|
]
|
|
3612
3664
|
}
|
|
3613
3665
|
)
|
|
3614
3666
|
] }));
|
|
3615
3667
|
DrawerContent.displayName = "DrawerContent";
|
|
3616
|
-
var DrawerHeader = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
3668
|
+
var DrawerHeader = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: cn("grid gap-1.5 p-4 text-center sm:text-left", className), ...props });
|
|
3617
3669
|
DrawerHeader.displayName = "DrawerHeader";
|
|
3618
|
-
var DrawerFooter = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
3670
|
+
var DrawerFooter = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: cn("mt-auto flex flex-col gap-2 p-4", className), ...props });
|
|
3619
3671
|
DrawerFooter.displayName = "DrawerFooter";
|
|
3620
|
-
var DrawerTitle =
|
|
3672
|
+
var DrawerTitle = React52.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
3621
3673
|
import_vaul.Drawer.Title,
|
|
3622
3674
|
{
|
|
3623
3675
|
ref,
|
|
@@ -3626,20 +3678,20 @@ var DrawerTitle = React51.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
3626
3678
|
}
|
|
3627
3679
|
));
|
|
3628
3680
|
DrawerTitle.displayName = import_vaul.Drawer.Title.displayName;
|
|
3629
|
-
var DrawerDescription =
|
|
3681
|
+
var DrawerDescription = React52.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_vaul.Drawer.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
|
|
3630
3682
|
DrawerDescription.displayName = import_vaul.Drawer.Description.displayName;
|
|
3631
3683
|
|
|
3632
3684
|
// src/components/ui/menubar.tsx
|
|
3633
|
-
var
|
|
3685
|
+
var React53 = __toESM(require("react"), 1);
|
|
3634
3686
|
var MenubarPrimitive = __toESM(require("@radix-ui/react-menubar"), 1);
|
|
3635
3687
|
var import_lucide_react14 = require("lucide-react");
|
|
3636
|
-
var
|
|
3688
|
+
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
3637
3689
|
var MenubarMenu = MenubarPrimitive.Menu;
|
|
3638
3690
|
var MenubarGroup = MenubarPrimitive.Group;
|
|
3639
3691
|
var MenubarPortal = MenubarPrimitive.Portal;
|
|
3640
3692
|
var MenubarSub = MenubarPrimitive.Sub;
|
|
3641
3693
|
var MenubarRadioGroup = MenubarPrimitive.RadioGroup;
|
|
3642
|
-
var Menubar =
|
|
3694
|
+
var Menubar = React53.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
3643
3695
|
MenubarPrimitive.Root,
|
|
3644
3696
|
{
|
|
3645
3697
|
ref,
|
|
@@ -3648,7 +3700,7 @@ var Menubar = React52.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
3648
3700
|
}
|
|
3649
3701
|
));
|
|
3650
3702
|
Menubar.displayName = MenubarPrimitive.Root.displayName;
|
|
3651
|
-
var MenubarTrigger =
|
|
3703
|
+
var MenubarTrigger = React53.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
3652
3704
|
MenubarPrimitive.Trigger,
|
|
3653
3705
|
{
|
|
3654
3706
|
ref,
|
|
@@ -3660,7 +3712,7 @@ var MenubarTrigger = React52.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
3660
3712
|
}
|
|
3661
3713
|
));
|
|
3662
3714
|
MenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;
|
|
3663
|
-
var MenubarSubTrigger =
|
|
3715
|
+
var MenubarSubTrigger = React53.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
|
|
3664
3716
|
MenubarPrimitive.SubTrigger,
|
|
3665
3717
|
{
|
|
3666
3718
|
ref,
|
|
@@ -3672,12 +3724,12 @@ var MenubarSubTrigger = React52.forwardRef(({ className, inset, children, ...pro
|
|
|
3672
3724
|
...props,
|
|
3673
3725
|
children: [
|
|
3674
3726
|
children,
|
|
3675
|
-
/* @__PURE__ */ (0,
|
|
3727
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react14.ChevronRight, { className: "ml-auto h-4 w-4" })
|
|
3676
3728
|
]
|
|
3677
3729
|
}
|
|
3678
3730
|
));
|
|
3679
3731
|
MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
|
|
3680
|
-
var MenubarSubContent =
|
|
3732
|
+
var MenubarSubContent = React53.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
3681
3733
|
MenubarPrimitive.SubContent,
|
|
3682
3734
|
{
|
|
3683
3735
|
ref,
|
|
@@ -3689,7 +3741,7 @@ var MenubarSubContent = React52.forwardRef(({ className, ...props }, ref) => /*
|
|
|
3689
3741
|
}
|
|
3690
3742
|
));
|
|
3691
3743
|
MenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;
|
|
3692
|
-
var MenubarContent =
|
|
3744
|
+
var MenubarContent = React53.forwardRef(({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(MenubarPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
3693
3745
|
MenubarPrimitive.Content,
|
|
3694
3746
|
{
|
|
3695
3747
|
ref,
|
|
@@ -3704,7 +3756,7 @@ var MenubarContent = React52.forwardRef(({ className, align = "start", alignOffs
|
|
|
3704
3756
|
}
|
|
3705
3757
|
) }));
|
|
3706
3758
|
MenubarContent.displayName = MenubarPrimitive.Content.displayName;
|
|
3707
|
-
var MenubarItem =
|
|
3759
|
+
var MenubarItem = React53.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
3708
3760
|
MenubarPrimitive.Item,
|
|
3709
3761
|
{
|
|
3710
3762
|
ref,
|
|
@@ -3717,7 +3769,7 @@ var MenubarItem = React52.forwardRef(({ className, inset, ...props }, ref) => /*
|
|
|
3717
3769
|
}
|
|
3718
3770
|
));
|
|
3719
3771
|
MenubarItem.displayName = MenubarPrimitive.Item.displayName;
|
|
3720
|
-
var MenubarCheckboxItem =
|
|
3772
|
+
var MenubarCheckboxItem = React53.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
|
|
3721
3773
|
MenubarPrimitive.CheckboxItem,
|
|
3722
3774
|
{
|
|
3723
3775
|
ref,
|
|
@@ -3728,13 +3780,13 @@ var MenubarCheckboxItem = React52.forwardRef(({ className, children, checked, ..
|
|
|
3728
3780
|
checked,
|
|
3729
3781
|
...props,
|
|
3730
3782
|
children: [
|
|
3731
|
-
/* @__PURE__ */ (0,
|
|
3783
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react14.Check, { className: "h-4 w-4" }) }) }),
|
|
3732
3784
|
children
|
|
3733
3785
|
]
|
|
3734
3786
|
}
|
|
3735
3787
|
));
|
|
3736
3788
|
MenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;
|
|
3737
|
-
var MenubarRadioItem =
|
|
3789
|
+
var MenubarRadioItem = React53.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
|
|
3738
3790
|
MenubarPrimitive.RadioItem,
|
|
3739
3791
|
{
|
|
3740
3792
|
ref,
|
|
@@ -3744,13 +3796,13 @@ var MenubarRadioItem = React52.forwardRef(({ className, children, ...props }, re
|
|
|
3744
3796
|
),
|
|
3745
3797
|
...props,
|
|
3746
3798
|
children: [
|
|
3747
|
-
/* @__PURE__ */ (0,
|
|
3799
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react14.Circle, { className: "h-2 w-2 fill-current" }) }) }),
|
|
3748
3800
|
children
|
|
3749
3801
|
]
|
|
3750
3802
|
}
|
|
3751
3803
|
));
|
|
3752
3804
|
MenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;
|
|
3753
|
-
var MenubarLabel =
|
|
3805
|
+
var MenubarLabel = React53.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
3754
3806
|
MenubarPrimitive.Label,
|
|
3755
3807
|
{
|
|
3756
3808
|
ref,
|
|
@@ -3759,20 +3811,20 @@ var MenubarLabel = React52.forwardRef(({ className, inset, ...props }, ref) => /
|
|
|
3759
3811
|
}
|
|
3760
3812
|
));
|
|
3761
3813
|
MenubarLabel.displayName = MenubarPrimitive.Label.displayName;
|
|
3762
|
-
var MenubarSeparator =
|
|
3814
|
+
var MenubarSeparator = React53.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(MenubarPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-muted", className), ...props }));
|
|
3763
3815
|
MenubarSeparator.displayName = MenubarPrimitive.Separator.displayName;
|
|
3764
3816
|
var MenubarShortcut = ({ className, ...props }) => {
|
|
3765
|
-
return /* @__PURE__ */ (0,
|
|
3817
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className), ...props });
|
|
3766
3818
|
};
|
|
3767
3819
|
MenubarShortcut.displayname = "MenubarShortcut";
|
|
3768
3820
|
|
|
3769
3821
|
// src/components/ui/navigation-menu.tsx
|
|
3770
|
-
var
|
|
3822
|
+
var React54 = __toESM(require("react"), 1);
|
|
3771
3823
|
var NavigationMenuPrimitive = __toESM(require("@radix-ui/react-navigation-menu"), 1);
|
|
3772
3824
|
var import_class_variance_authority10 = require("class-variance-authority");
|
|
3773
3825
|
var import_lucide_react15 = require("lucide-react");
|
|
3774
|
-
var
|
|
3775
|
-
var NavigationMenu =
|
|
3826
|
+
var import_jsx_runtime65 = require("react/jsx-runtime");
|
|
3827
|
+
var NavigationMenu = React54.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
|
|
3776
3828
|
NavigationMenuPrimitive.Root,
|
|
3777
3829
|
{
|
|
3778
3830
|
ref,
|
|
@@ -3780,12 +3832,12 @@ var NavigationMenu = React53.forwardRef(({ className, children, ...props }, ref)
|
|
|
3780
3832
|
...props,
|
|
3781
3833
|
children: [
|
|
3782
3834
|
children,
|
|
3783
|
-
/* @__PURE__ */ (0,
|
|
3835
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(NavigationMenuViewport, {})
|
|
3784
3836
|
]
|
|
3785
3837
|
}
|
|
3786
3838
|
));
|
|
3787
3839
|
NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
|
|
3788
|
-
var NavigationMenuList =
|
|
3840
|
+
var NavigationMenuList = React54.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
3789
3841
|
NavigationMenuPrimitive.List,
|
|
3790
3842
|
{
|
|
3791
3843
|
ref,
|
|
@@ -3798,7 +3850,7 @@ var NavigationMenuItem = NavigationMenuPrimitive.Item;
|
|
|
3798
3850
|
var navigationMenuTriggerStyle = (0, import_class_variance_authority10.cva)(
|
|
3799
3851
|
"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"
|
|
3800
3852
|
);
|
|
3801
|
-
var NavigationMenuTrigger =
|
|
3853
|
+
var NavigationMenuTrigger = React54.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
|
|
3802
3854
|
NavigationMenuPrimitive.Trigger,
|
|
3803
3855
|
{
|
|
3804
3856
|
ref,
|
|
@@ -3807,7 +3859,7 @@ var NavigationMenuTrigger = React53.forwardRef(({ className, children, ...props
|
|
|
3807
3859
|
children: [
|
|
3808
3860
|
children,
|
|
3809
3861
|
" ",
|
|
3810
|
-
/* @__PURE__ */ (0,
|
|
3862
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
3811
3863
|
import_lucide_react15.ChevronDown,
|
|
3812
3864
|
{
|
|
3813
3865
|
className: "relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180",
|
|
@@ -3818,7 +3870,7 @@ var NavigationMenuTrigger = React53.forwardRef(({ className, children, ...props
|
|
|
3818
3870
|
}
|
|
3819
3871
|
));
|
|
3820
3872
|
NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
|
|
3821
|
-
var NavigationMenuContent =
|
|
3873
|
+
var NavigationMenuContent = React54.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
3822
3874
|
NavigationMenuPrimitive.Content,
|
|
3823
3875
|
{
|
|
3824
3876
|
ref,
|
|
@@ -3831,7 +3883,7 @@ var NavigationMenuContent = React53.forwardRef(({ className, ...props }, ref) =>
|
|
|
3831
3883
|
));
|
|
3832
3884
|
NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
|
|
3833
3885
|
var NavigationMenuLink = NavigationMenuPrimitive.Link;
|
|
3834
|
-
var NavigationMenuViewport =
|
|
3886
|
+
var NavigationMenuViewport = React54.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
3835
3887
|
NavigationMenuPrimitive.Viewport,
|
|
3836
3888
|
{
|
|
3837
3889
|
className: cn(
|
|
@@ -3843,7 +3895,7 @@ var NavigationMenuViewport = React53.forwardRef(({ className, ...props }, ref) =
|
|
|
3843
3895
|
}
|
|
3844
3896
|
) }));
|
|
3845
3897
|
NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
|
|
3846
|
-
var NavigationMenuIndicator =
|
|
3898
|
+
var NavigationMenuIndicator = React54.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
3847
3899
|
NavigationMenuPrimitive.Indicator,
|
|
3848
3900
|
{
|
|
3849
3901
|
ref,
|
|
@@ -3852,20 +3904,20 @@ var NavigationMenuIndicator = React53.forwardRef(({ className, ...props }, ref)
|
|
|
3852
3904
|
className
|
|
3853
3905
|
),
|
|
3854
3906
|
...props,
|
|
3855
|
-
children: /* @__PURE__ */ (0,
|
|
3907
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md" })
|
|
3856
3908
|
}
|
|
3857
3909
|
));
|
|
3858
3910
|
NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName;
|
|
3859
3911
|
|
|
3860
3912
|
// src/components/ui/select.tsx
|
|
3861
|
-
var
|
|
3913
|
+
var React55 = __toESM(require("react"), 1);
|
|
3862
3914
|
var SelectPrimitive = __toESM(require("@radix-ui/react-select"), 1);
|
|
3863
3915
|
var import_lucide_react16 = require("lucide-react");
|
|
3864
|
-
var
|
|
3916
|
+
var import_jsx_runtime66 = require("react/jsx-runtime");
|
|
3865
3917
|
var Select = SelectPrimitive.Root;
|
|
3866
3918
|
var SelectGroup = SelectPrimitive.Group;
|
|
3867
3919
|
var SelectValue = SelectPrimitive.Value;
|
|
3868
|
-
var SelectTrigger =
|
|
3920
|
+
var SelectTrigger = React55.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
|
|
3869
3921
|
SelectPrimitive.Trigger,
|
|
3870
3922
|
{
|
|
3871
3923
|
ref,
|
|
@@ -3876,32 +3928,32 @@ var SelectTrigger = React54.forwardRef(({ className, children, ...props }, ref)
|
|
|
3876
3928
|
...props,
|
|
3877
3929
|
children: [
|
|
3878
3930
|
children,
|
|
3879
|
-
/* @__PURE__ */ (0,
|
|
3931
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react16.ChevronDown, { className: "h-4 w-4 opacity-50" }) })
|
|
3880
3932
|
]
|
|
3881
3933
|
}
|
|
3882
3934
|
));
|
|
3883
3935
|
SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
|
|
3884
|
-
var SelectScrollUpButton =
|
|
3936
|
+
var SelectScrollUpButton = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
3885
3937
|
SelectPrimitive.ScrollUpButton,
|
|
3886
3938
|
{
|
|
3887
3939
|
ref,
|
|
3888
3940
|
className: cn("flex cursor-default items-center justify-center py-1", className),
|
|
3889
3941
|
...props,
|
|
3890
|
-
children: /* @__PURE__ */ (0,
|
|
3942
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react16.ChevronUp, { className: "h-4 w-4" })
|
|
3891
3943
|
}
|
|
3892
3944
|
));
|
|
3893
3945
|
SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
|
|
3894
|
-
var SelectScrollDownButton =
|
|
3946
|
+
var SelectScrollDownButton = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
3895
3947
|
SelectPrimitive.ScrollDownButton,
|
|
3896
3948
|
{
|
|
3897
3949
|
ref,
|
|
3898
3950
|
className: cn("flex cursor-default items-center justify-center py-1", className),
|
|
3899
3951
|
...props,
|
|
3900
|
-
children: /* @__PURE__ */ (0,
|
|
3952
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react16.ChevronDown, { className: "h-4 w-4" })
|
|
3901
3953
|
}
|
|
3902
3954
|
));
|
|
3903
3955
|
SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
|
|
3904
|
-
var SelectContent =
|
|
3956
|
+
var SelectContent = React55.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(SelectPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
|
|
3905
3957
|
SelectPrimitive.Content,
|
|
3906
3958
|
{
|
|
3907
3959
|
ref,
|
|
@@ -3913,8 +3965,8 @@ var SelectContent = React54.forwardRef(({ className, children, position = "poppe
|
|
|
3913
3965
|
position,
|
|
3914
3966
|
...props,
|
|
3915
3967
|
children: [
|
|
3916
|
-
/* @__PURE__ */ (0,
|
|
3917
|
-
/* @__PURE__ */ (0,
|
|
3968
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(SelectScrollUpButton, {}),
|
|
3969
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
3918
3970
|
SelectPrimitive.Viewport,
|
|
3919
3971
|
{
|
|
3920
3972
|
className: cn(
|
|
@@ -3924,14 +3976,14 @@ var SelectContent = React54.forwardRef(({ className, children, position = "poppe
|
|
|
3924
3976
|
children
|
|
3925
3977
|
}
|
|
3926
3978
|
),
|
|
3927
|
-
/* @__PURE__ */ (0,
|
|
3979
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(SelectScrollDownButton, {})
|
|
3928
3980
|
]
|
|
3929
3981
|
}
|
|
3930
3982
|
) }));
|
|
3931
3983
|
SelectContent.displayName = SelectPrimitive.Content.displayName;
|
|
3932
|
-
var SelectLabel =
|
|
3984
|
+
var SelectLabel = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(SelectPrimitive.Label, { ref, className: cn("py-1.5 pl-8 pr-2 text-sm font-semibold", className), ...props }));
|
|
3933
3985
|
SelectLabel.displayName = SelectPrimitive.Label.displayName;
|
|
3934
|
-
var SelectItem =
|
|
3986
|
+
var SelectItem = React55.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
|
|
3935
3987
|
SelectPrimitive.Item,
|
|
3936
3988
|
{
|
|
3937
3989
|
ref,
|
|
@@ -3941,36 +3993,36 @@ var SelectItem = React54.forwardRef(({ className, children, ...props }, ref) =>
|
|
|
3941
3993
|
),
|
|
3942
3994
|
...props,
|
|
3943
3995
|
children: [
|
|
3944
|
-
/* @__PURE__ */ (0,
|
|
3945
|
-
/* @__PURE__ */ (0,
|
|
3996
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react16.Check, { className: "h-4 w-4" }) }) }),
|
|
3997
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(SelectPrimitive.ItemText, { children })
|
|
3946
3998
|
]
|
|
3947
3999
|
}
|
|
3948
4000
|
));
|
|
3949
4001
|
SelectItem.displayName = SelectPrimitive.Item.displayName;
|
|
3950
|
-
var SelectSeparator =
|
|
4002
|
+
var SelectSeparator = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(SelectPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-muted", className), ...props }));
|
|
3951
4003
|
SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
|
|
3952
4004
|
|
|
3953
4005
|
// src/components/ui/table.tsx
|
|
3954
|
-
var
|
|
3955
|
-
var
|
|
3956
|
-
var Table =
|
|
3957
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
4006
|
+
var React56 = __toESM(require("react"), 1);
|
|
4007
|
+
var import_jsx_runtime67 = require("react/jsx-runtime");
|
|
4008
|
+
var Table = React56.forwardRef(
|
|
4009
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("table", { ref, className: cn("w-full caption-bottom text-sm", className), ...props }) })
|
|
3958
4010
|
);
|
|
3959
4011
|
Table.displayName = "Table";
|
|
3960
|
-
var TableHeader =
|
|
3961
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
4012
|
+
var TableHeader = React56.forwardRef(
|
|
4013
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("thead", { ref, className: cn("[&_tr]:border-b", className), ...props })
|
|
3962
4014
|
);
|
|
3963
4015
|
TableHeader.displayName = "TableHeader";
|
|
3964
|
-
var TableBody =
|
|
3965
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
4016
|
+
var TableBody = React56.forwardRef(
|
|
4017
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("tbody", { ref, className: cn("[&_tr:last-child]:border-0", className), ...props })
|
|
3966
4018
|
);
|
|
3967
4019
|
TableBody.displayName = "TableBody";
|
|
3968
|
-
var TableFooter =
|
|
3969
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
4020
|
+
var TableFooter = React56.forwardRef(
|
|
4021
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("tfoot", { ref, className: cn("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", className), ...props })
|
|
3970
4022
|
);
|
|
3971
4023
|
TableFooter.displayName = "TableFooter";
|
|
3972
|
-
var TableRow =
|
|
3973
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
4024
|
+
var TableRow = React56.forwardRef(
|
|
4025
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
3974
4026
|
"tr",
|
|
3975
4027
|
{
|
|
3976
4028
|
ref,
|
|
@@ -3980,8 +4032,8 @@ var TableRow = React55.forwardRef(
|
|
|
3980
4032
|
)
|
|
3981
4033
|
);
|
|
3982
4034
|
TableRow.displayName = "TableRow";
|
|
3983
|
-
var TableHead =
|
|
3984
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
4035
|
+
var TableHead = React56.forwardRef(
|
|
4036
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
3985
4037
|
"th",
|
|
3986
4038
|
{
|
|
3987
4039
|
ref,
|
|
@@ -3994,32 +4046,32 @@ var TableHead = React55.forwardRef(
|
|
|
3994
4046
|
)
|
|
3995
4047
|
);
|
|
3996
4048
|
TableHead.displayName = "TableHead";
|
|
3997
|
-
var TableCell =
|
|
3998
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
4049
|
+
var TableCell = React56.forwardRef(
|
|
4050
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("td", { ref, className: cn("p-4 align-middle [&:has([role=checkbox])]:pr-0", className), ...props })
|
|
3999
4051
|
);
|
|
4000
4052
|
TableCell.displayName = "TableCell";
|
|
4001
|
-
var TableCaption =
|
|
4002
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
4053
|
+
var TableCaption = React56.forwardRef(
|
|
4054
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("caption", { ref, className: cn("mt-4 text-sm text-muted-foreground", className), ...props })
|
|
4003
4055
|
);
|
|
4004
4056
|
TableCaption.displayName = "TableCaption";
|
|
4005
4057
|
|
|
4006
4058
|
// src/components/ui/chart.tsx
|
|
4007
|
-
var
|
|
4059
|
+
var React57 = __toESM(require("react"), 1);
|
|
4008
4060
|
var RechartsPrimitive = __toESM(require("recharts"), 1);
|
|
4009
|
-
var
|
|
4061
|
+
var import_jsx_runtime68 = require("react/jsx-runtime");
|
|
4010
4062
|
var THEMES = { light: "", dark: ".dark" };
|
|
4011
|
-
var ChartContext =
|
|
4063
|
+
var ChartContext = React57.createContext(null);
|
|
4012
4064
|
function useChart() {
|
|
4013
|
-
const context =
|
|
4065
|
+
const context = React57.useContext(ChartContext);
|
|
4014
4066
|
if (!context) {
|
|
4015
4067
|
throw new Error("useChart must be used within a <ChartContainer />");
|
|
4016
4068
|
}
|
|
4017
4069
|
return context;
|
|
4018
4070
|
}
|
|
4019
|
-
var ChartContainer =
|
|
4020
|
-
const uniqueId =
|
|
4071
|
+
var ChartContainer = React57.forwardRef(({ id, className, children, config, ...props }, ref) => {
|
|
4072
|
+
const uniqueId = React57.useId();
|
|
4021
4073
|
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
|
|
4022
|
-
return /* @__PURE__ */ (0,
|
|
4074
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
|
|
4023
4075
|
"div",
|
|
4024
4076
|
{
|
|
4025
4077
|
"data-chart": chartId,
|
|
@@ -4030,8 +4082,8 @@ var ChartContainer = React56.forwardRef(({ id, className, children, config, ...p
|
|
|
4030
4082
|
),
|
|
4031
4083
|
...props,
|
|
4032
4084
|
children: [
|
|
4033
|
-
/* @__PURE__ */ (0,
|
|
4034
|
-
/* @__PURE__ */ (0,
|
|
4085
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ChartStyle, { id: chartId, config }),
|
|
4086
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(RechartsPrimitive.ResponsiveContainer, { children })
|
|
4035
4087
|
]
|
|
4036
4088
|
}
|
|
4037
4089
|
) });
|
|
@@ -4042,7 +4094,7 @@ var ChartStyle = ({ id, config }) => {
|
|
|
4042
4094
|
if (!colorConfig.length) {
|
|
4043
4095
|
return null;
|
|
4044
4096
|
}
|
|
4045
|
-
return /* @__PURE__ */ (0,
|
|
4097
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
4046
4098
|
"style",
|
|
4047
4099
|
{
|
|
4048
4100
|
dangerouslySetInnerHTML: {
|
|
@@ -4061,7 +4113,7 @@ ${colorConfig.map(([key, itemConfig]) => {
|
|
|
4061
4113
|
);
|
|
4062
4114
|
};
|
|
4063
4115
|
var ChartTooltip = RechartsPrimitive.Tooltip;
|
|
4064
|
-
var ChartTooltipContent =
|
|
4116
|
+
var ChartTooltipContent = React57.forwardRef(
|
|
4065
4117
|
({
|
|
4066
4118
|
active,
|
|
4067
4119
|
payload,
|
|
@@ -4078,7 +4130,7 @@ var ChartTooltipContent = React56.forwardRef(
|
|
|
4078
4130
|
labelKey
|
|
4079
4131
|
}, ref) => {
|
|
4080
4132
|
const { config } = useChart();
|
|
4081
|
-
const tooltipLabel =
|
|
4133
|
+
const tooltipLabel = React57.useMemo(() => {
|
|
4082
4134
|
if (hideLabel || !payload?.length) {
|
|
4083
4135
|
return null;
|
|
4084
4136
|
}
|
|
@@ -4087,18 +4139,18 @@ var ChartTooltipContent = React56.forwardRef(
|
|
|
4087
4139
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
4088
4140
|
const value = !labelKey && typeof label === "string" ? config[label]?.label || label : itemConfig?.label;
|
|
4089
4141
|
if (labelFormatter) {
|
|
4090
|
-
return /* @__PURE__ */ (0,
|
|
4142
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: cn("font-medium", labelClassName), children: labelFormatter(value, payload) });
|
|
4091
4143
|
}
|
|
4092
4144
|
if (!value) {
|
|
4093
4145
|
return null;
|
|
4094
4146
|
}
|
|
4095
|
-
return /* @__PURE__ */ (0,
|
|
4147
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: cn("font-medium", labelClassName), children: value });
|
|
4096
4148
|
}, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey]);
|
|
4097
4149
|
if (!active || !payload?.length) {
|
|
4098
4150
|
return null;
|
|
4099
4151
|
}
|
|
4100
4152
|
const nestLabel = payload.length === 1 && indicator !== "dot";
|
|
4101
|
-
return /* @__PURE__ */ (0,
|
|
4153
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
|
|
4102
4154
|
"div",
|
|
4103
4155
|
{
|
|
4104
4156
|
ref,
|
|
@@ -4108,19 +4160,19 @@ var ChartTooltipContent = React56.forwardRef(
|
|
|
4108
4160
|
),
|
|
4109
4161
|
children: [
|
|
4110
4162
|
!nestLabel ? tooltipLabel : null,
|
|
4111
|
-
/* @__PURE__ */ (0,
|
|
4163
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "grid gap-1.5", children: payload.map((item, index) => {
|
|
4112
4164
|
const key = `${nameKey || item.name || item.dataKey || "value"}`;
|
|
4113
4165
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
4114
4166
|
const indicatorColor = color || item.payload.fill || item.color;
|
|
4115
|
-
return /* @__PURE__ */ (0,
|
|
4167
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
4116
4168
|
"div",
|
|
4117
4169
|
{
|
|
4118
4170
|
className: cn(
|
|
4119
4171
|
"flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",
|
|
4120
4172
|
indicator === "dot" && "items-center"
|
|
4121
4173
|
),
|
|
4122
|
-
children: formatter && item?.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ (0,
|
|
4123
|
-
itemConfig?.icon ? /* @__PURE__ */ (0,
|
|
4174
|
+
children: formatter && item?.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(import_jsx_runtime68.Fragment, { children: [
|
|
4175
|
+
itemConfig?.icon ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
4124
4176
|
"div",
|
|
4125
4177
|
{
|
|
4126
4178
|
className: cn("shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]", {
|
|
@@ -4135,7 +4187,7 @@ var ChartTooltipContent = React56.forwardRef(
|
|
|
4135
4187
|
}
|
|
4136
4188
|
}
|
|
4137
4189
|
),
|
|
4138
|
-
/* @__PURE__ */ (0,
|
|
4190
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
|
|
4139
4191
|
"div",
|
|
4140
4192
|
{
|
|
4141
4193
|
className: cn(
|
|
@@ -4143,11 +4195,11 @@ var ChartTooltipContent = React56.forwardRef(
|
|
|
4143
4195
|
nestLabel ? "items-end" : "items-center"
|
|
4144
4196
|
),
|
|
4145
4197
|
children: [
|
|
4146
|
-
/* @__PURE__ */ (0,
|
|
4198
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "grid gap-1.5", children: [
|
|
4147
4199
|
nestLabel ? tooltipLabel : null,
|
|
4148
|
-
/* @__PURE__ */ (0,
|
|
4200
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: "text-muted-foreground", children: itemConfig?.label || item.name })
|
|
4149
4201
|
] }),
|
|
4150
|
-
item.value && /* @__PURE__ */ (0,
|
|
4202
|
+
item.value && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: "font-mono font-medium tabular-nums text-foreground", children: item.value.toLocaleString() })
|
|
4151
4203
|
]
|
|
4152
4204
|
}
|
|
4153
4205
|
)
|
|
@@ -4163,12 +4215,12 @@ var ChartTooltipContent = React56.forwardRef(
|
|
|
4163
4215
|
);
|
|
4164
4216
|
ChartTooltipContent.displayName = "ChartTooltip";
|
|
4165
4217
|
var ChartLegend = RechartsPrimitive.Legend;
|
|
4166
|
-
var ChartLegendContent =
|
|
4218
|
+
var ChartLegendContent = React57.forwardRef(({ className, hideIcon = false, payload, verticalAlign = "bottom", nameKey }, ref) => {
|
|
4167
4219
|
const { config } = useChart();
|
|
4168
4220
|
if (!payload?.length) {
|
|
4169
4221
|
return null;
|
|
4170
4222
|
}
|
|
4171
|
-
return /* @__PURE__ */ (0,
|
|
4223
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
4172
4224
|
"div",
|
|
4173
4225
|
{
|
|
4174
4226
|
ref,
|
|
@@ -4176,12 +4228,12 @@ var ChartLegendContent = React56.forwardRef(({ className, hideIcon = false, payl
|
|
|
4176
4228
|
children: payload.map((item) => {
|
|
4177
4229
|
const key = `${nameKey || item.dataKey || "value"}`;
|
|
4178
4230
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
4179
|
-
return /* @__PURE__ */ (0,
|
|
4231
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
|
|
4180
4232
|
"div",
|
|
4181
4233
|
{
|
|
4182
4234
|
className: cn("flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"),
|
|
4183
4235
|
children: [
|
|
4184
|
-
itemConfig?.icon && !hideIcon ? /* @__PURE__ */ (0,
|
|
4236
|
+
itemConfig?.icon && !hideIcon ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(itemConfig.icon, {}) : /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
4185
4237
|
"div",
|
|
4186
4238
|
{
|
|
4187
4239
|
className: "h-2 w-2 shrink-0 rounded-[2px]",
|
|
@@ -4217,9 +4269,9 @@ function getPayloadConfigFromPayload(config, payload, key) {
|
|
|
4217
4269
|
// src/components/ui/calendar.tsx
|
|
4218
4270
|
var import_lucide_react17 = require("lucide-react");
|
|
4219
4271
|
var import_react_day_picker = require("react-day-picker");
|
|
4220
|
-
var
|
|
4272
|
+
var import_jsx_runtime69 = require("react/jsx-runtime");
|
|
4221
4273
|
function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
|
|
4222
|
-
return /* @__PURE__ */ (0,
|
|
4274
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
4223
4275
|
import_react_day_picker.DayPicker,
|
|
4224
4276
|
{
|
|
4225
4277
|
showOutsideDays,
|
|
@@ -4252,8 +4304,8 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
|
|
|
4252
4304
|
...classNames
|
|
4253
4305
|
},
|
|
4254
4306
|
components: {
|
|
4255
|
-
IconLeft: ({ ..._props }) => /* @__PURE__ */ (0,
|
|
4256
|
-
IconRight: ({ ..._props }) => /* @__PURE__ */ (0,
|
|
4307
|
+
IconLeft: ({ ..._props }) => /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react17.ChevronLeft, { className: "h-4 w-4" }),
|
|
4308
|
+
IconRight: ({ ..._props }) => /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react17.ChevronRight, { className: "h-4 w-4" })
|
|
4257
4309
|
},
|
|
4258
4310
|
...props
|
|
4259
4311
|
}
|
|
@@ -4262,15 +4314,15 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
|
|
|
4262
4314
|
Calendar.displayName = "Calendar";
|
|
4263
4315
|
|
|
4264
4316
|
// src/components/ui/sidebar.tsx
|
|
4265
|
-
var
|
|
4317
|
+
var React58 = __toESM(require("react"), 1);
|
|
4266
4318
|
var import_react_slot4 = require("@radix-ui/react-slot");
|
|
4267
4319
|
var import_class_variance_authority11 = require("class-variance-authority");
|
|
4268
4320
|
var import_lucide_react18 = require("lucide-react");
|
|
4269
|
-
var
|
|
4321
|
+
var import_jsx_runtime70 = require("react/jsx-runtime");
|
|
4270
4322
|
var MOBILE_BREAKPOINT = 768;
|
|
4271
4323
|
function useIsMobile() {
|
|
4272
|
-
const [isMobile, setIsMobile] =
|
|
4273
|
-
|
|
4324
|
+
const [isMobile, setIsMobile] = React58.useState(void 0);
|
|
4325
|
+
React58.useEffect(() => {
|
|
4274
4326
|
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
4275
4327
|
const onChange = () => {
|
|
4276
4328
|
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
@@ -4287,20 +4339,20 @@ var SIDEBAR_WIDTH = "16rem";
|
|
|
4287
4339
|
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
4288
4340
|
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
4289
4341
|
var SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
4290
|
-
var SidebarContext =
|
|
4342
|
+
var SidebarContext = React58.createContext(null);
|
|
4291
4343
|
function useSidebar() {
|
|
4292
|
-
const context =
|
|
4344
|
+
const context = React58.useContext(SidebarContext);
|
|
4293
4345
|
if (!context) {
|
|
4294
4346
|
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
4295
4347
|
}
|
|
4296
4348
|
return context;
|
|
4297
4349
|
}
|
|
4298
|
-
var SidebarProvider =
|
|
4350
|
+
var SidebarProvider = React58.forwardRef(({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }, ref) => {
|
|
4299
4351
|
const isMobile = useIsMobile();
|
|
4300
|
-
const [openMobile, setOpenMobile] =
|
|
4301
|
-
const [_open, _setOpen] =
|
|
4352
|
+
const [openMobile, setOpenMobile] = React58.useState(false);
|
|
4353
|
+
const [_open, _setOpen] = React58.useState(defaultOpen);
|
|
4302
4354
|
const open = openProp ?? _open;
|
|
4303
|
-
const setOpen =
|
|
4355
|
+
const setOpen = React58.useCallback(
|
|
4304
4356
|
(value) => {
|
|
4305
4357
|
const openState = typeof value === "function" ? value(open) : value;
|
|
4306
4358
|
if (setOpenProp) {
|
|
@@ -4312,10 +4364,10 @@ var SidebarProvider = React57.forwardRef(({ defaultOpen = true, open: openProp,
|
|
|
4312
4364
|
},
|
|
4313
4365
|
[setOpenProp, open]
|
|
4314
4366
|
);
|
|
4315
|
-
const toggleSidebar =
|
|
4367
|
+
const toggleSidebar = React58.useCallback(() => {
|
|
4316
4368
|
return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
|
|
4317
4369
|
}, [isMobile, setOpen, setOpenMobile]);
|
|
4318
|
-
|
|
4370
|
+
React58.useEffect(() => {
|
|
4319
4371
|
const handleKeyDown = (event) => {
|
|
4320
4372
|
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
4321
4373
|
event.preventDefault();
|
|
@@ -4326,7 +4378,7 @@ var SidebarProvider = React57.forwardRef(({ defaultOpen = true, open: openProp,
|
|
|
4326
4378
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
4327
4379
|
}, [toggleSidebar]);
|
|
4328
4380
|
const state = open ? "expanded" : "collapsed";
|
|
4329
|
-
const contextValue =
|
|
4381
|
+
const contextValue = React58.useMemo(
|
|
4330
4382
|
() => ({
|
|
4331
4383
|
state,
|
|
4332
4384
|
open,
|
|
@@ -4338,7 +4390,7 @@ var SidebarProvider = React57.forwardRef(({ defaultOpen = true, open: openProp,
|
|
|
4338
4390
|
}),
|
|
4339
4391
|
[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
|
|
4340
4392
|
);
|
|
4341
|
-
return /* @__PURE__ */ (0,
|
|
4393
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
4342
4394
|
"div",
|
|
4343
4395
|
{
|
|
4344
4396
|
style: {
|
|
@@ -4354,10 +4406,10 @@ var SidebarProvider = React57.forwardRef(({ defaultOpen = true, open: openProp,
|
|
|
4354
4406
|
) }) });
|
|
4355
4407
|
});
|
|
4356
4408
|
SidebarProvider.displayName = "SidebarProvider";
|
|
4357
|
-
var Sidebar =
|
|
4409
|
+
var Sidebar = React58.forwardRef(({ side = "left", variant = "sidebar", collapsible = "offcanvas", className, children, ...props }, ref) => {
|
|
4358
4410
|
const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
|
|
4359
4411
|
if (collapsible === "none") {
|
|
4360
|
-
return /* @__PURE__ */ (0,
|
|
4412
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
4361
4413
|
"div",
|
|
4362
4414
|
{
|
|
4363
4415
|
className: cn("flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground", className),
|
|
@@ -4368,7 +4420,7 @@ var Sidebar = React57.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
4368
4420
|
);
|
|
4369
4421
|
}
|
|
4370
4422
|
if (isMobile) {
|
|
4371
|
-
return /* @__PURE__ */ (0,
|
|
4423
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
4372
4424
|
SheetContent,
|
|
4373
4425
|
{
|
|
4374
4426
|
"data-sidebar": "sidebar",
|
|
@@ -4378,11 +4430,11 @@ var Sidebar = React57.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
4378
4430
|
"--sidebar-width": SIDEBAR_WIDTH_MOBILE
|
|
4379
4431
|
},
|
|
4380
4432
|
side,
|
|
4381
|
-
children: /* @__PURE__ */ (0,
|
|
4433
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "flex h-full w-full flex-col", children })
|
|
4382
4434
|
}
|
|
4383
4435
|
) });
|
|
4384
4436
|
}
|
|
4385
|
-
return /* @__PURE__ */ (0,
|
|
4437
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
|
|
4386
4438
|
"div",
|
|
4387
4439
|
{
|
|
4388
4440
|
ref,
|
|
@@ -4392,7 +4444,7 @@ var Sidebar = React57.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
4392
4444
|
"data-variant": variant,
|
|
4393
4445
|
"data-side": side,
|
|
4394
4446
|
children: [
|
|
4395
|
-
/* @__PURE__ */ (0,
|
|
4447
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
4396
4448
|
"div",
|
|
4397
4449
|
{
|
|
4398
4450
|
className: cn(
|
|
@@ -4403,7 +4455,7 @@ var Sidebar = React57.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
4403
4455
|
)
|
|
4404
4456
|
}
|
|
4405
4457
|
),
|
|
4406
|
-
/* @__PURE__ */ (0,
|
|
4458
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
4407
4459
|
"div",
|
|
4408
4460
|
{
|
|
4409
4461
|
className: cn(
|
|
@@ -4414,7 +4466,7 @@ var Sidebar = React57.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
4414
4466
|
className
|
|
4415
4467
|
),
|
|
4416
4468
|
...props,
|
|
4417
|
-
children: /* @__PURE__ */ (0,
|
|
4469
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
4418
4470
|
"div",
|
|
4419
4471
|
{
|
|
4420
4472
|
"data-sidebar": "sidebar",
|
|
@@ -4429,10 +4481,10 @@ var Sidebar = React57.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
4429
4481
|
);
|
|
4430
4482
|
});
|
|
4431
4483
|
Sidebar.displayName = "Sidebar";
|
|
4432
|
-
var SidebarTrigger =
|
|
4484
|
+
var SidebarTrigger = React58.forwardRef(
|
|
4433
4485
|
({ className, onClick, ...props }, ref) => {
|
|
4434
4486
|
const { toggleSidebar } = useSidebar();
|
|
4435
|
-
return /* @__PURE__ */ (0,
|
|
4487
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
|
|
4436
4488
|
Button3D,
|
|
4437
4489
|
{
|
|
4438
4490
|
ref,
|
|
@@ -4446,18 +4498,18 @@ var SidebarTrigger = React57.forwardRef(
|
|
|
4446
4498
|
},
|
|
4447
4499
|
...props,
|
|
4448
4500
|
children: [
|
|
4449
|
-
/* @__PURE__ */ (0,
|
|
4450
|
-
/* @__PURE__ */ (0,
|
|
4501
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_lucide_react18.PanelLeft, {}),
|
|
4502
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "sr-only", children: "Toggle Sidebar" })
|
|
4451
4503
|
]
|
|
4452
4504
|
}
|
|
4453
4505
|
);
|
|
4454
4506
|
}
|
|
4455
4507
|
);
|
|
4456
4508
|
SidebarTrigger.displayName = "SidebarTrigger";
|
|
4457
|
-
var SidebarRail =
|
|
4509
|
+
var SidebarRail = React58.forwardRef(
|
|
4458
4510
|
({ className, ...props }, ref) => {
|
|
4459
4511
|
const { toggleSidebar } = useSidebar();
|
|
4460
|
-
return /* @__PURE__ */ (0,
|
|
4512
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
4461
4513
|
"button",
|
|
4462
4514
|
{
|
|
4463
4515
|
ref,
|
|
@@ -4481,8 +4533,8 @@ var SidebarRail = React57.forwardRef(
|
|
|
4481
4533
|
}
|
|
4482
4534
|
);
|
|
4483
4535
|
SidebarRail.displayName = "SidebarRail";
|
|
4484
|
-
var SidebarInset =
|
|
4485
|
-
return /* @__PURE__ */ (0,
|
|
4536
|
+
var SidebarInset = React58.forwardRef(({ className, ...props }, ref) => {
|
|
4537
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
4486
4538
|
"main",
|
|
4487
4539
|
{
|
|
4488
4540
|
ref,
|
|
@@ -4496,9 +4548,9 @@ var SidebarInset = React57.forwardRef(({ className, ...props }, ref) => {
|
|
|
4496
4548
|
);
|
|
4497
4549
|
});
|
|
4498
4550
|
SidebarInset.displayName = "SidebarInset";
|
|
4499
|
-
var SidebarInput =
|
|
4551
|
+
var SidebarInput = React58.forwardRef(
|
|
4500
4552
|
({ className, ...props }, ref) => {
|
|
4501
|
-
return /* @__PURE__ */ (0,
|
|
4553
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
4502
4554
|
Input,
|
|
4503
4555
|
{
|
|
4504
4556
|
ref,
|
|
@@ -4513,17 +4565,17 @@ var SidebarInput = React57.forwardRef(
|
|
|
4513
4565
|
}
|
|
4514
4566
|
);
|
|
4515
4567
|
SidebarInput.displayName = "SidebarInput";
|
|
4516
|
-
var SidebarHeader =
|
|
4517
|
-
return /* @__PURE__ */ (0,
|
|
4568
|
+
var SidebarHeader = React58.forwardRef(({ className, ...props }, ref) => {
|
|
4569
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { ref, "data-sidebar": "header", className: cn("flex flex-col gap-2 p-2", className), ...props });
|
|
4518
4570
|
});
|
|
4519
4571
|
SidebarHeader.displayName = "SidebarHeader";
|
|
4520
|
-
var SidebarFooter =
|
|
4521
|
-
return /* @__PURE__ */ (0,
|
|
4572
|
+
var SidebarFooter = React58.forwardRef(({ className, ...props }, ref) => {
|
|
4573
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { ref, "data-sidebar": "footer", className: cn("flex flex-col gap-2 p-2", className), ...props });
|
|
4522
4574
|
});
|
|
4523
4575
|
SidebarFooter.displayName = "SidebarFooter";
|
|
4524
|
-
var SidebarSeparator =
|
|
4576
|
+
var SidebarSeparator = React58.forwardRef(
|
|
4525
4577
|
({ className, ...props }, ref) => {
|
|
4526
|
-
return /* @__PURE__ */ (0,
|
|
4578
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
4527
4579
|
Separator2,
|
|
4528
4580
|
{
|
|
4529
4581
|
ref,
|
|
@@ -4535,8 +4587,8 @@ var SidebarSeparator = React57.forwardRef(
|
|
|
4535
4587
|
}
|
|
4536
4588
|
);
|
|
4537
4589
|
SidebarSeparator.displayName = "SidebarSeparator";
|
|
4538
|
-
var SidebarContent =
|
|
4539
|
-
return /* @__PURE__ */ (0,
|
|
4590
|
+
var SidebarContent = React58.forwardRef(({ className, ...props }, ref) => {
|
|
4591
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
4540
4592
|
"div",
|
|
4541
4593
|
{
|
|
4542
4594
|
ref,
|
|
@@ -4550,8 +4602,8 @@ var SidebarContent = React57.forwardRef(({ className, ...props }, ref) => {
|
|
|
4550
4602
|
);
|
|
4551
4603
|
});
|
|
4552
4604
|
SidebarContent.displayName = "SidebarContent";
|
|
4553
|
-
var SidebarGroup =
|
|
4554
|
-
return /* @__PURE__ */ (0,
|
|
4605
|
+
var SidebarGroup = React58.forwardRef(({ className, ...props }, ref) => {
|
|
4606
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
4555
4607
|
"div",
|
|
4556
4608
|
{
|
|
4557
4609
|
ref,
|
|
@@ -4562,10 +4614,10 @@ var SidebarGroup = React57.forwardRef(({ className, ...props }, ref) => {
|
|
|
4562
4614
|
);
|
|
4563
4615
|
});
|
|
4564
4616
|
SidebarGroup.displayName = "SidebarGroup";
|
|
4565
|
-
var SidebarGroupLabel =
|
|
4617
|
+
var SidebarGroupLabel = React58.forwardRef(
|
|
4566
4618
|
({ className, asChild = false, ...props }, ref) => {
|
|
4567
4619
|
const Comp = asChild ? import_react_slot4.Slot : "div";
|
|
4568
|
-
return /* @__PURE__ */ (0,
|
|
4620
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
4569
4621
|
Comp,
|
|
4570
4622
|
{
|
|
4571
4623
|
ref,
|
|
@@ -4581,10 +4633,10 @@ var SidebarGroupLabel = React57.forwardRef(
|
|
|
4581
4633
|
}
|
|
4582
4634
|
);
|
|
4583
4635
|
SidebarGroupLabel.displayName = "SidebarGroupLabel";
|
|
4584
|
-
var SidebarGroupAction =
|
|
4636
|
+
var SidebarGroupAction = React58.forwardRef(
|
|
4585
4637
|
({ className, asChild = false, ...props }, ref) => {
|
|
4586
4638
|
const Comp = asChild ? import_react_slot4.Slot : "button";
|
|
4587
|
-
return /* @__PURE__ */ (0,
|
|
4639
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
4588
4640
|
Comp,
|
|
4589
4641
|
{
|
|
4590
4642
|
ref,
|
|
@@ -4602,13 +4654,13 @@ var SidebarGroupAction = React57.forwardRef(
|
|
|
4602
4654
|
}
|
|
4603
4655
|
);
|
|
4604
4656
|
SidebarGroupAction.displayName = "SidebarGroupAction";
|
|
4605
|
-
var SidebarGroupContent =
|
|
4606
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
4657
|
+
var SidebarGroupContent = React58.forwardRef(
|
|
4658
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { ref, "data-sidebar": "group-content", className: cn("w-full text-sm", className), ...props })
|
|
4607
4659
|
);
|
|
4608
4660
|
SidebarGroupContent.displayName = "SidebarGroupContent";
|
|
4609
|
-
var SidebarMenu =
|
|
4661
|
+
var SidebarMenu = React58.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("ul", { ref, "data-sidebar": "menu", className: cn("flex w-full min-w-0 flex-col gap-1", className), ...props }));
|
|
4610
4662
|
SidebarMenu.displayName = "SidebarMenu";
|
|
4611
|
-
var SidebarMenuItem =
|
|
4663
|
+
var SidebarMenuItem = React58.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("li", { ref, "data-sidebar": "menu-item", className: cn("group/menu-item relative", className), ...props }));
|
|
4612
4664
|
SidebarMenuItem.displayName = "SidebarMenuItem";
|
|
4613
4665
|
var sidebarMenuButtonVariants = (0, import_class_variance_authority11.cva)(
|
|
4614
4666
|
"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",
|
|
@@ -4630,10 +4682,10 @@ var sidebarMenuButtonVariants = (0, import_class_variance_authority11.cva)(
|
|
|
4630
4682
|
}
|
|
4631
4683
|
}
|
|
4632
4684
|
);
|
|
4633
|
-
var SidebarMenuButton =
|
|
4685
|
+
var SidebarMenuButton = React58.forwardRef(({ asChild = false, isActive = false, variant = "default", size = "default", tooltip, className, ...props }, ref) => {
|
|
4634
4686
|
const Comp = asChild ? import_react_slot4.Slot : "button";
|
|
4635
4687
|
const { isMobile, state } = useSidebar();
|
|
4636
|
-
const button = /* @__PURE__ */ (0,
|
|
4688
|
+
const button = /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
4637
4689
|
Comp,
|
|
4638
4690
|
{
|
|
4639
4691
|
ref,
|
|
@@ -4652,15 +4704,15 @@ var SidebarMenuButton = React57.forwardRef(({ asChild = false, isActive = false,
|
|
|
4652
4704
|
children: tooltip
|
|
4653
4705
|
};
|
|
4654
4706
|
}
|
|
4655
|
-
return /* @__PURE__ */ (0,
|
|
4656
|
-
/* @__PURE__ */ (0,
|
|
4657
|
-
/* @__PURE__ */ (0,
|
|
4707
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(Tooltip, { children: [
|
|
4708
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(TooltipTrigger, { asChild: true, children: button }),
|
|
4709
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(TooltipContent, { side: "right", align: "center", hidden: state !== "collapsed" || isMobile, ...tooltip })
|
|
4658
4710
|
] });
|
|
4659
4711
|
});
|
|
4660
4712
|
SidebarMenuButton.displayName = "SidebarMenuButton";
|
|
4661
|
-
var SidebarMenuAction =
|
|
4713
|
+
var SidebarMenuAction = React58.forwardRef(({ className, asChild = false, showOnHover = false, ...props }, ref) => {
|
|
4662
4714
|
const Comp = asChild ? import_react_slot4.Slot : "button";
|
|
4663
|
-
return /* @__PURE__ */ (0,
|
|
4715
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
4664
4716
|
Comp,
|
|
4665
4717
|
{
|
|
4666
4718
|
ref,
|
|
@@ -4681,8 +4733,8 @@ var SidebarMenuAction = React57.forwardRef(({ className, asChild = false, showOn
|
|
|
4681
4733
|
);
|
|
4682
4734
|
});
|
|
4683
4735
|
SidebarMenuAction.displayName = "SidebarMenuAction";
|
|
4684
|
-
var SidebarMenuBadge =
|
|
4685
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
4736
|
+
var SidebarMenuBadge = React58.forwardRef(
|
|
4737
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
4686
4738
|
"div",
|
|
4687
4739
|
{
|
|
4688
4740
|
ref,
|
|
@@ -4701,11 +4753,11 @@ var SidebarMenuBadge = React57.forwardRef(
|
|
|
4701
4753
|
)
|
|
4702
4754
|
);
|
|
4703
4755
|
SidebarMenuBadge.displayName = "SidebarMenuBadge";
|
|
4704
|
-
var SidebarMenuSkeleton =
|
|
4705
|
-
const width =
|
|
4756
|
+
var SidebarMenuSkeleton = React58.forwardRef(({ className, showIcon = false, ...props }, ref) => {
|
|
4757
|
+
const width = React58.useMemo(() => {
|
|
4706
4758
|
return `${Math.floor(Math.random() * 40) + 50}%`;
|
|
4707
4759
|
}, []);
|
|
4708
|
-
return /* @__PURE__ */ (0,
|
|
4760
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
|
|
4709
4761
|
"div",
|
|
4710
4762
|
{
|
|
4711
4763
|
ref,
|
|
@@ -4713,8 +4765,8 @@ var SidebarMenuSkeleton = React57.forwardRef(({ className, showIcon = false, ...
|
|
|
4713
4765
|
className: cn("flex h-8 items-center gap-2 rounded-md px-2", className),
|
|
4714
4766
|
...props,
|
|
4715
4767
|
children: [
|
|
4716
|
-
showIcon && /* @__PURE__ */ (0,
|
|
4717
|
-
/* @__PURE__ */ (0,
|
|
4768
|
+
showIcon && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Skeleton, { className: "size-4 rounded-md", "data-sidebar": "menu-skeleton-icon" }),
|
|
4769
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
4718
4770
|
Skeleton,
|
|
4719
4771
|
{
|
|
4720
4772
|
className: "h-4 max-w-[--skeleton-width] flex-1",
|
|
@@ -4729,8 +4781,8 @@ var SidebarMenuSkeleton = React57.forwardRef(({ className, showIcon = false, ...
|
|
|
4729
4781
|
);
|
|
4730
4782
|
});
|
|
4731
4783
|
SidebarMenuSkeleton.displayName = "SidebarMenuSkeleton";
|
|
4732
|
-
var SidebarMenuSub =
|
|
4733
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
4784
|
+
var SidebarMenuSub = React58.forwardRef(
|
|
4785
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
4734
4786
|
"ul",
|
|
4735
4787
|
{
|
|
4736
4788
|
ref,
|
|
@@ -4745,11 +4797,11 @@ var SidebarMenuSub = React57.forwardRef(
|
|
|
4745
4797
|
)
|
|
4746
4798
|
);
|
|
4747
4799
|
SidebarMenuSub.displayName = "SidebarMenuSub";
|
|
4748
|
-
var SidebarMenuSubItem =
|
|
4800
|
+
var SidebarMenuSubItem = React58.forwardRef(({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("li", { ref, ...props }));
|
|
4749
4801
|
SidebarMenuSubItem.displayName = "SidebarMenuSubItem";
|
|
4750
|
-
var SidebarMenuSubButton =
|
|
4802
|
+
var SidebarMenuSubButton = React58.forwardRef(({ asChild = false, size = "md", isActive, className, ...props }, ref) => {
|
|
4751
4803
|
const Comp = asChild ? import_react_slot4.Slot : "a";
|
|
4752
|
-
return /* @__PURE__ */ (0,
|
|
4804
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
4753
4805
|
Comp,
|
|
4754
4806
|
{
|
|
4755
4807
|
ref,
|
|
@@ -4771,19 +4823,19 @@ var SidebarMenuSubButton = React57.forwardRef(({ asChild = false, size = "md", i
|
|
|
4771
4823
|
SidebarMenuSubButton.displayName = "SidebarMenuSubButton";
|
|
4772
4824
|
|
|
4773
4825
|
// src/components/ui/carousel.tsx
|
|
4774
|
-
var
|
|
4826
|
+
var React59 = __toESM(require("react"), 1);
|
|
4775
4827
|
var import_embla_carousel_react = __toESM(require("embla-carousel-react"), 1);
|
|
4776
4828
|
var import_lucide_react19 = require("lucide-react");
|
|
4777
|
-
var
|
|
4778
|
-
var CarouselContext =
|
|
4829
|
+
var import_jsx_runtime71 = require("react/jsx-runtime");
|
|
4830
|
+
var CarouselContext = React59.createContext(null);
|
|
4779
4831
|
function useCarousel() {
|
|
4780
|
-
const context =
|
|
4832
|
+
const context = React59.useContext(CarouselContext);
|
|
4781
4833
|
if (!context) {
|
|
4782
4834
|
throw new Error("useCarousel must be used within a <Carousel />");
|
|
4783
4835
|
}
|
|
4784
4836
|
return context;
|
|
4785
4837
|
}
|
|
4786
|
-
var Carousel =
|
|
4838
|
+
var Carousel = React59.forwardRef(
|
|
4787
4839
|
({ orientation = "horizontal", opts, setApi, plugins, className, children, ...props }, ref) => {
|
|
4788
4840
|
const [carouselRef, api] = (0, import_embla_carousel_react.default)(
|
|
4789
4841
|
{
|
|
@@ -4792,22 +4844,22 @@ var Carousel = React58.forwardRef(
|
|
|
4792
4844
|
},
|
|
4793
4845
|
plugins
|
|
4794
4846
|
);
|
|
4795
|
-
const [canScrollPrev, setCanScrollPrev] =
|
|
4796
|
-
const [canScrollNext, setCanScrollNext] =
|
|
4797
|
-
const onSelect =
|
|
4847
|
+
const [canScrollPrev, setCanScrollPrev] = React59.useState(false);
|
|
4848
|
+
const [canScrollNext, setCanScrollNext] = React59.useState(false);
|
|
4849
|
+
const onSelect = React59.useCallback((api2) => {
|
|
4798
4850
|
if (!api2) {
|
|
4799
4851
|
return;
|
|
4800
4852
|
}
|
|
4801
4853
|
setCanScrollPrev(api2.canScrollPrev());
|
|
4802
4854
|
setCanScrollNext(api2.canScrollNext());
|
|
4803
4855
|
}, []);
|
|
4804
|
-
const scrollPrev =
|
|
4856
|
+
const scrollPrev = React59.useCallback(() => {
|
|
4805
4857
|
api?.scrollPrev();
|
|
4806
4858
|
}, [api]);
|
|
4807
|
-
const scrollNext =
|
|
4859
|
+
const scrollNext = React59.useCallback(() => {
|
|
4808
4860
|
api?.scrollNext();
|
|
4809
4861
|
}, [api]);
|
|
4810
|
-
const handleKeyDown =
|
|
4862
|
+
const handleKeyDown = React59.useCallback(
|
|
4811
4863
|
(event) => {
|
|
4812
4864
|
if (event.key === "ArrowLeft") {
|
|
4813
4865
|
event.preventDefault();
|
|
@@ -4819,13 +4871,13 @@ var Carousel = React58.forwardRef(
|
|
|
4819
4871
|
},
|
|
4820
4872
|
[scrollPrev, scrollNext]
|
|
4821
4873
|
);
|
|
4822
|
-
|
|
4874
|
+
React59.useEffect(() => {
|
|
4823
4875
|
if (!api || !setApi) {
|
|
4824
4876
|
return;
|
|
4825
4877
|
}
|
|
4826
4878
|
setApi(api);
|
|
4827
4879
|
}, [api, setApi]);
|
|
4828
|
-
|
|
4880
|
+
React59.useEffect(() => {
|
|
4829
4881
|
if (!api) {
|
|
4830
4882
|
return;
|
|
4831
4883
|
}
|
|
@@ -4836,7 +4888,7 @@ var Carousel = React58.forwardRef(
|
|
|
4836
4888
|
api?.off("select", onSelect);
|
|
4837
4889
|
};
|
|
4838
4890
|
}, [api, onSelect]);
|
|
4839
|
-
return /* @__PURE__ */ (0,
|
|
4891
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
4840
4892
|
CarouselContext.Provider,
|
|
4841
4893
|
{
|
|
4842
4894
|
value: {
|
|
@@ -4849,7 +4901,7 @@ var Carousel = React58.forwardRef(
|
|
|
4849
4901
|
canScrollPrev,
|
|
4850
4902
|
canScrollNext
|
|
4851
4903
|
},
|
|
4852
|
-
children: /* @__PURE__ */ (0,
|
|
4904
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
4853
4905
|
"div",
|
|
4854
4906
|
{
|
|
4855
4907
|
ref,
|
|
@@ -4866,10 +4918,10 @@ var Carousel = React58.forwardRef(
|
|
|
4866
4918
|
}
|
|
4867
4919
|
);
|
|
4868
4920
|
Carousel.displayName = "Carousel";
|
|
4869
|
-
var CarouselContent =
|
|
4921
|
+
var CarouselContent = React59.forwardRef(
|
|
4870
4922
|
({ className, ...props }, ref) => {
|
|
4871
4923
|
const { carouselRef, orientation } = useCarousel();
|
|
4872
|
-
return /* @__PURE__ */ (0,
|
|
4924
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { ref: carouselRef, className: "overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
4873
4925
|
"div",
|
|
4874
4926
|
{
|
|
4875
4927
|
ref,
|
|
@@ -4880,10 +4932,10 @@ var CarouselContent = React58.forwardRef(
|
|
|
4880
4932
|
}
|
|
4881
4933
|
);
|
|
4882
4934
|
CarouselContent.displayName = "CarouselContent";
|
|
4883
|
-
var CarouselItem =
|
|
4935
|
+
var CarouselItem = React59.forwardRef(
|
|
4884
4936
|
({ className, ...props }, ref) => {
|
|
4885
4937
|
const { orientation } = useCarousel();
|
|
4886
|
-
return /* @__PURE__ */ (0,
|
|
4938
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
4887
4939
|
"div",
|
|
4888
4940
|
{
|
|
4889
4941
|
ref,
|
|
@@ -4896,10 +4948,10 @@ var CarouselItem = React58.forwardRef(
|
|
|
4896
4948
|
}
|
|
4897
4949
|
);
|
|
4898
4950
|
CarouselItem.displayName = "CarouselItem";
|
|
4899
|
-
var CarouselPrevious =
|
|
4951
|
+
var CarouselPrevious = React59.forwardRef(
|
|
4900
4952
|
({ className, variant = "outline", size = "icon", ...props }, ref) => {
|
|
4901
4953
|
const { orientation, scrollPrev, canScrollPrev } = useCarousel();
|
|
4902
|
-
return /* @__PURE__ */ (0,
|
|
4954
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
|
|
4903
4955
|
Button3D,
|
|
4904
4956
|
{
|
|
4905
4957
|
ref,
|
|
@@ -4914,18 +4966,18 @@ var CarouselPrevious = React58.forwardRef(
|
|
|
4914
4966
|
onClick: scrollPrev,
|
|
4915
4967
|
...props,
|
|
4916
4968
|
children: [
|
|
4917
|
-
/* @__PURE__ */ (0,
|
|
4918
|
-
/* @__PURE__ */ (0,
|
|
4969
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_lucide_react19.ArrowLeft, { className: "h-4 w-4" }),
|
|
4970
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { className: "sr-only", children: "Previous slide" })
|
|
4919
4971
|
]
|
|
4920
4972
|
}
|
|
4921
4973
|
);
|
|
4922
4974
|
}
|
|
4923
4975
|
);
|
|
4924
4976
|
CarouselPrevious.displayName = "CarouselPrevious";
|
|
4925
|
-
var CarouselNext =
|
|
4977
|
+
var CarouselNext = React59.forwardRef(
|
|
4926
4978
|
({ className, variant = "outline", size = "icon", ...props }, ref) => {
|
|
4927
4979
|
const { orientation, scrollNext, canScrollNext } = useCarousel();
|
|
4928
|
-
return /* @__PURE__ */ (0,
|
|
4980
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
|
|
4929
4981
|
Button3D,
|
|
4930
4982
|
{
|
|
4931
4983
|
ref,
|
|
@@ -4940,8 +4992,8 @@ var CarouselNext = React58.forwardRef(
|
|
|
4940
4992
|
onClick: scrollNext,
|
|
4941
4993
|
...props,
|
|
4942
4994
|
children: [
|
|
4943
|
-
/* @__PURE__ */ (0,
|
|
4944
|
-
/* @__PURE__ */ (0,
|
|
4995
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_lucide_react19.ArrowRight, { className: "h-4 w-4" }),
|
|
4996
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { className: "sr-only", children: "Next slide" })
|
|
4945
4997
|
]
|
|
4946
4998
|
}
|
|
4947
4999
|
);
|
|
@@ -4950,12 +5002,12 @@ var CarouselNext = React58.forwardRef(
|
|
|
4950
5002
|
CarouselNext.displayName = "CarouselNext";
|
|
4951
5003
|
|
|
4952
5004
|
// src/components/ui/input-otp.tsx
|
|
4953
|
-
var
|
|
5005
|
+
var React60 = __toESM(require("react"), 1);
|
|
4954
5006
|
var import_input_otp = require("input-otp");
|
|
4955
5007
|
var import_lucide_react20 = require("lucide-react");
|
|
4956
|
-
var
|
|
4957
|
-
var InputOTP =
|
|
4958
|
-
({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ (0,
|
|
5008
|
+
var import_jsx_runtime72 = require("react/jsx-runtime");
|
|
5009
|
+
var InputOTP = React60.forwardRef(
|
|
5010
|
+
({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
4959
5011
|
import_input_otp.OTPInput,
|
|
4960
5012
|
{
|
|
4961
5013
|
ref,
|
|
@@ -4966,14 +5018,14 @@ var InputOTP = React59.forwardRef(
|
|
|
4966
5018
|
)
|
|
4967
5019
|
);
|
|
4968
5020
|
InputOTP.displayName = "InputOTP";
|
|
4969
|
-
var InputOTPGroup =
|
|
4970
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
5021
|
+
var InputOTPGroup = React60.forwardRef(
|
|
5022
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("div", { ref, className: cn("flex items-center", className), ...props })
|
|
4971
5023
|
);
|
|
4972
5024
|
InputOTPGroup.displayName = "InputOTPGroup";
|
|
4973
|
-
var InputOTPSlot =
|
|
4974
|
-
const inputOTPContext =
|
|
5025
|
+
var InputOTPSlot = React60.forwardRef(({ index, className, ...props }, ref) => {
|
|
5026
|
+
const inputOTPContext = React60.useContext(import_input_otp.OTPInputContext);
|
|
4975
5027
|
const { char, hasFakeCaret, isActive } = inputOTPContext?.slots?.[index] || {};
|
|
4976
|
-
return /* @__PURE__ */ (0,
|
|
5028
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
|
|
4977
5029
|
"div",
|
|
4978
5030
|
{
|
|
4979
5031
|
ref,
|
|
@@ -4985,22 +5037,22 @@ var InputOTPSlot = React59.forwardRef(({ index, className, ...props }, ref) => {
|
|
|
4985
5037
|
...props,
|
|
4986
5038
|
children: [
|
|
4987
5039
|
char,
|
|
4988
|
-
hasFakeCaret && /* @__PURE__ */ (0,
|
|
5040
|
+
hasFakeCaret && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("div", { className: "animate-caret-blink h-4 w-px bg-foreground duration-1000" }) })
|
|
4989
5041
|
]
|
|
4990
5042
|
}
|
|
4991
5043
|
);
|
|
4992
5044
|
});
|
|
4993
5045
|
InputOTPSlot.displayName = "InputOTPSlot";
|
|
4994
|
-
var InputOTPSeparator =
|
|
4995
|
-
({ ...props }, ref) => /* @__PURE__ */ (0,
|
|
5046
|
+
var InputOTPSeparator = React60.forwardRef(
|
|
5047
|
+
({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_lucide_react20.Dot, {}) })
|
|
4996
5048
|
);
|
|
4997
5049
|
InputOTPSeparator.displayName = "InputOTPSeparator";
|
|
4998
5050
|
|
|
4999
5051
|
// src/components/ui/barchart3d.tsx
|
|
5000
|
-
var
|
|
5052
|
+
var import_react21 = require("react");
|
|
5001
5053
|
var import_fiber3 = require("@react-three/fiber");
|
|
5002
5054
|
var import_drei8 = require("@react-three/drei");
|
|
5003
|
-
var
|
|
5055
|
+
var import_jsx_runtime73 = require("react/jsx-runtime");
|
|
5004
5056
|
function BarChart3D({
|
|
5005
5057
|
data,
|
|
5006
5058
|
orientation = "vertical",
|
|
@@ -5008,17 +5060,17 @@ function BarChart3D({
|
|
|
5008
5060
|
gap = 0.2,
|
|
5009
5061
|
animated = true
|
|
5010
5062
|
}) {
|
|
5011
|
-
const maxValue = (0,
|
|
5012
|
-
return /* @__PURE__ */ (0,
|
|
5013
|
-
/* @__PURE__ */ (0,
|
|
5014
|
-
/* @__PURE__ */ (0,
|
|
5015
|
-
/* @__PURE__ */ (0,
|
|
5016
|
-
/* @__PURE__ */ (0,
|
|
5063
|
+
const maxValue = (0, import_react21.useMemo)(() => Math.max(...data.map((d) => d.value)), [data]);
|
|
5064
|
+
return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("group", { children: [
|
|
5065
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)("gridHelper", { args: [data.length * (barSize + gap) + 2, 10], position: [0, 0, 0] }),
|
|
5066
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(import_drei8.Instances, { range: data.length, children: [
|
|
5067
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)("boxGeometry", { args: [barSize, 1, barSize] }),
|
|
5068
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)("meshStandardMaterial", { roughness: 0.3, metalness: 0.6 }),
|
|
5017
5069
|
data.map((item, index) => {
|
|
5018
5070
|
const height = item.value / maxValue * 5;
|
|
5019
5071
|
const x = (index - data.length / 2) * (barSize + gap);
|
|
5020
|
-
return /* @__PURE__ */ (0,
|
|
5021
|
-
/* @__PURE__ */ (0,
|
|
5072
|
+
return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("group", { position: [x, 0, 0], children: [
|
|
5073
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
5022
5074
|
BarInstance,
|
|
5023
5075
|
{
|
|
5024
5076
|
height,
|
|
@@ -5026,7 +5078,7 @@ function BarChart3D({
|
|
|
5026
5078
|
animated
|
|
5027
5079
|
}
|
|
5028
5080
|
),
|
|
5029
|
-
/* @__PURE__ */ (0,
|
|
5081
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
5030
5082
|
import_drei8.Text,
|
|
5031
5083
|
{
|
|
5032
5084
|
position: [0, -0.5, 0],
|
|
@@ -5043,8 +5095,8 @@ function BarChart3D({
|
|
|
5043
5095
|
] });
|
|
5044
5096
|
}
|
|
5045
5097
|
function BarInstance({ height, color, animated }) {
|
|
5046
|
-
const ref = (0,
|
|
5047
|
-
const [hovered, setHover] = (0,
|
|
5098
|
+
const ref = (0, import_react21.useRef)(null);
|
|
5099
|
+
const [hovered, setHover] = (0, import_react21.useState)(false);
|
|
5048
5100
|
(0, import_fiber3.useFrame)((state, delta) => {
|
|
5049
5101
|
if (ref.current) {
|
|
5050
5102
|
const targetHeight = height;
|
|
@@ -5060,7 +5112,7 @@ function BarInstance({ height, color, animated }) {
|
|
|
5060
5112
|
}
|
|
5061
5113
|
}
|
|
5062
5114
|
});
|
|
5063
|
-
return /* @__PURE__ */ (0,
|
|
5115
|
+
return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
5064
5116
|
import_drei8.Instance,
|
|
5065
5117
|
{
|
|
5066
5118
|
ref,
|
|
@@ -5072,10 +5124,10 @@ function BarInstance({ height, color, animated }) {
|
|
|
5072
5124
|
}
|
|
5073
5125
|
|
|
5074
5126
|
// src/components/ui/linechart3d.tsx
|
|
5075
|
-
var
|
|
5127
|
+
var import_react22 = require("react");
|
|
5076
5128
|
var import_drei9 = require("@react-three/drei");
|
|
5077
5129
|
var import_three3 = require("three");
|
|
5078
|
-
var
|
|
5130
|
+
var import_jsx_runtime74 = (
|
|
5079
5131
|
// Render curve
|
|
5080
5132
|
require("react/jsx-runtime")
|
|
5081
5133
|
);
|
|
@@ -5086,7 +5138,7 @@ function LineChart3D({
|
|
|
5086
5138
|
lineWidth = 3,
|
|
5087
5139
|
showPoints = true
|
|
5088
5140
|
}) {
|
|
5089
|
-
const points = (0,
|
|
5141
|
+
const points = (0, import_react22.useMemo)(() => {
|
|
5090
5142
|
if (data.length === 0) return [];
|
|
5091
5143
|
const maxX = Math.max(...data.map((d) => d.x));
|
|
5092
5144
|
const maxY = Math.max(...data.map((d) => d.y));
|
|
@@ -5098,15 +5150,15 @@ function LineChart3D({
|
|
|
5098
5150
|
0
|
|
5099
5151
|
));
|
|
5100
5152
|
}, [data]);
|
|
5101
|
-
const curve = (0,
|
|
5153
|
+
const curve = (0, import_react22.useMemo)(() => {
|
|
5102
5154
|
if (points.length < 2 || !smooth) return null;
|
|
5103
5155
|
return new import_three3.CatmullRomCurve3(points);
|
|
5104
5156
|
}, [points, smooth]);
|
|
5105
|
-
return /* @__PURE__ */ (0,
|
|
5106
|
-
smooth && curve ? /* @__PURE__ */ (0,
|
|
5107
|
-
/* @__PURE__ */ (0,
|
|
5108
|
-
/* @__PURE__ */ (0,
|
|
5109
|
-
] }) : /* @__PURE__ */ (0,
|
|
5157
|
+
return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("group", { children: [
|
|
5158
|
+
smooth && curve ? /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("mesh", { children: [
|
|
5159
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)("tubeGeometry", { args: [curve, 64, 0.05, 8, false] }),
|
|
5160
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)("meshStandardMaterial", { color, emissive: color, emissiveIntensity: 0.5 })
|
|
5161
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
|
|
5110
5162
|
import_drei9.Line,
|
|
5111
5163
|
{
|
|
5112
5164
|
points,
|
|
@@ -5115,20 +5167,20 @@ function LineChart3D({
|
|
|
5115
5167
|
segments: true
|
|
5116
5168
|
}
|
|
5117
5169
|
),
|
|
5118
|
-
showPoints && points.map((p, i) => /* @__PURE__ */ (0,
|
|
5119
|
-
/* @__PURE__ */ (0,
|
|
5120
|
-
/* @__PURE__ */ (0,
|
|
5170
|
+
showPoints && points.map((p, i) => /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("mesh", { position: p, children: [
|
|
5171
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)("sphereGeometry", { args: [0.1, 16, 16] }),
|
|
5172
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)("meshStandardMaterial", { color: "white" })
|
|
5121
5173
|
] }, i)),
|
|
5122
|
-
/* @__PURE__ */ (0,
|
|
5174
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)("gridHelper", { args: [12, 12], rotation: [Math.PI / 2, 0, 0], position: [0, 2.5, -0.1] })
|
|
5123
5175
|
] });
|
|
5124
5176
|
}
|
|
5125
5177
|
|
|
5126
5178
|
// src/components/ui/piechart3d.tsx
|
|
5127
|
-
var
|
|
5179
|
+
var import_react23 = __toESM(require("react"), 1);
|
|
5128
5180
|
var import_three4 = require("three");
|
|
5129
5181
|
var import_fiber4 = require("@react-three/fiber");
|
|
5130
5182
|
var import_drei10 = require("@react-three/drei");
|
|
5131
|
-
var
|
|
5183
|
+
var import_jsx_runtime75 = require("react/jsx-runtime");
|
|
5132
5184
|
function PieChart3D({
|
|
5133
5185
|
data,
|
|
5134
5186
|
radius = 5,
|
|
@@ -5136,9 +5188,9 @@ function PieChart3D({
|
|
|
5136
5188
|
explode = true,
|
|
5137
5189
|
donut = false
|
|
5138
5190
|
}) {
|
|
5139
|
-
const total = (0,
|
|
5191
|
+
const total = (0, import_react23.useMemo)(() => data.reduce((acc, cur) => acc + cur.value, 0), [data]);
|
|
5140
5192
|
let startAngle = 0;
|
|
5141
|
-
return /* @__PURE__ */ (0,
|
|
5193
|
+
return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("group", { rotation: [-Math.PI / 2, 0, 0], children: [
|
|
5142
5194
|
" ",
|
|
5143
5195
|
data.map((item, index) => {
|
|
5144
5196
|
const percent = item.value / total;
|
|
@@ -5154,12 +5206,12 @@ function PieChart3D({
|
|
|
5154
5206
|
innerRadius: donut ? radius * 0.5 : 0
|
|
5155
5207
|
};
|
|
5156
5208
|
startAngle = endAngle;
|
|
5157
|
-
return /* @__PURE__ */ (0,
|
|
5209
|
+
return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(PieSegment, { ...props, label: item.label }, index);
|
|
5158
5210
|
})
|
|
5159
5211
|
] });
|
|
5160
5212
|
}
|
|
5161
5213
|
function PieSegment({ startAngle, endAngle, radius, color, depth, explode, innerRadius, label }) {
|
|
5162
|
-
const shape = (0,
|
|
5214
|
+
const shape = (0, import_react23.useMemo)(() => {
|
|
5163
5215
|
const s = new import_three4.Shape();
|
|
5164
5216
|
if (innerRadius > 0) {
|
|
5165
5217
|
s.moveTo(Math.cos(startAngle) * radius, Math.sin(startAngle) * radius);
|
|
@@ -5174,8 +5226,8 @@ function PieSegment({ startAngle, endAngle, radius, color, depth, explode, inner
|
|
|
5174
5226
|
}
|
|
5175
5227
|
return s;
|
|
5176
5228
|
}, [startAngle, endAngle, radius, innerRadius]);
|
|
5177
|
-
const [hovered, setHover] = (0,
|
|
5178
|
-
const ref =
|
|
5229
|
+
const [hovered, setHover] = (0, import_react23.useState)(false);
|
|
5230
|
+
const ref = import_react23.default.useRef(null);
|
|
5179
5231
|
const midAngle = (startAngle + endAngle) / 2;
|
|
5180
5232
|
const explodeDir = [Math.cos(midAngle), Math.sin(midAngle), 0];
|
|
5181
5233
|
(0, import_fiber4.useFrame)((state, delta) => {
|
|
@@ -5185,19 +5237,19 @@ function PieSegment({ startAngle, endAngle, radius, color, depth, explode, inner
|
|
|
5185
5237
|
ref.current.position.y += (explodeDir[1] * targetDist - ref.current.position.y) * delta * 5;
|
|
5186
5238
|
}
|
|
5187
5239
|
});
|
|
5188
|
-
return /* @__PURE__ */ (0,
|
|
5189
|
-
/* @__PURE__ */ (0,
|
|
5240
|
+
return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("group", { ref, children: [
|
|
5241
|
+
/* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
|
|
5190
5242
|
"mesh",
|
|
5191
5243
|
{
|
|
5192
5244
|
onPointerOver: () => setHover(true),
|
|
5193
5245
|
onPointerOut: () => setHover(false),
|
|
5194
5246
|
children: [
|
|
5195
|
-
/* @__PURE__ */ (0,
|
|
5196
|
-
/* @__PURE__ */ (0,
|
|
5247
|
+
/* @__PURE__ */ (0, import_jsx_runtime75.jsx)("extrudeGeometry", { args: [shape, { depth, bevelEnabled: false }] }),
|
|
5248
|
+
/* @__PURE__ */ (0, import_jsx_runtime75.jsx)("meshStandardMaterial", { color: hovered ? "white" : color })
|
|
5197
5249
|
]
|
|
5198
5250
|
}
|
|
5199
5251
|
),
|
|
5200
|
-
hovered && /* @__PURE__ */ (0,
|
|
5252
|
+
hovered && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
|
|
5201
5253
|
import_drei10.Text,
|
|
5202
5254
|
{
|
|
5203
5255
|
position: [explodeDir[0] * radius * 0.8, explodeDir[1] * radius * 0.8, depth + 0.1],
|
|
@@ -5210,21 +5262,21 @@ function PieSegment({ startAngle, endAngle, radius, color, depth, explode, inner
|
|
|
5210
5262
|
}
|
|
5211
5263
|
|
|
5212
5264
|
// src/components/ui/scatterplot3d.tsx
|
|
5213
|
-
var
|
|
5265
|
+
var import_react24 = require("react");
|
|
5214
5266
|
var import_drei11 = require("@react-three/drei");
|
|
5215
5267
|
var import_three5 = require("three");
|
|
5216
5268
|
var import_fiber5 = require("@react-three/fiber");
|
|
5217
|
-
var
|
|
5269
|
+
var import_jsx_runtime76 = require("react/jsx-runtime");
|
|
5218
5270
|
function ScatterPlot3D({
|
|
5219
5271
|
data,
|
|
5220
5272
|
pointSize = 0.1,
|
|
5221
5273
|
colorScale = ["#22d3ee", "#a78bfa"]
|
|
5222
5274
|
}) {
|
|
5223
|
-
return /* @__PURE__ */ (0,
|
|
5224
|
-
/* @__PURE__ */ (0,
|
|
5225
|
-
/* @__PURE__ */ (0,
|
|
5226
|
-
/* @__PURE__ */ (0,
|
|
5227
|
-
data.map((point, i) => /* @__PURE__ */ (0,
|
|
5275
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("group", { children: [
|
|
5276
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(import_drei11.Instances, { range: data.length, children: [
|
|
5277
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("sphereGeometry", { args: [1, 16, 16] }),
|
|
5278
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("meshStandardMaterial", {}),
|
|
5279
|
+
data.map((point, i) => /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
|
|
5228
5280
|
ScatterPointInstance,
|
|
5229
5281
|
{
|
|
5230
5282
|
position: [point.x, point.y, point.z],
|
|
@@ -5234,13 +5286,13 @@ function ScatterPlot3D({
|
|
|
5234
5286
|
i
|
|
5235
5287
|
))
|
|
5236
5288
|
] }),
|
|
5237
|
-
/* @__PURE__ */ (0,
|
|
5238
|
-
/* @__PURE__ */ (0,
|
|
5289
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("axesHelper", { args: [10] }),
|
|
5290
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("gridHelper", { args: [20, 20], position: [0, -5, 0] })
|
|
5239
5291
|
] });
|
|
5240
5292
|
}
|
|
5241
5293
|
function ScatterPointInstance({ position, scale, color }) {
|
|
5242
|
-
const ref = (0,
|
|
5243
|
-
const [hovered, setHover] = (0,
|
|
5294
|
+
const ref = (0, import_react24.useRef)(null);
|
|
5295
|
+
const [hovered, setHover] = (0, import_react24.useState)(false);
|
|
5244
5296
|
(0, import_fiber5.useFrame)((state) => {
|
|
5245
5297
|
if (ref.current) {
|
|
5246
5298
|
const s = hovered ? scale * 1.5 : scale;
|
|
@@ -5248,7 +5300,7 @@ function ScatterPointInstance({ position, scale, color }) {
|
|
|
5248
5300
|
ref.current.scale.lerp(target, 0.1);
|
|
5249
5301
|
}
|
|
5250
5302
|
});
|
|
5251
|
-
return /* @__PURE__ */ (0,
|
|
5303
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
|
|
5252
5304
|
import_drei11.Instance,
|
|
5253
5305
|
{
|
|
5254
5306
|
ref,
|
|
@@ -5262,12 +5314,12 @@ function ScatterPointInstance({ position, scale, color }) {
|
|
|
5262
5314
|
}
|
|
5263
5315
|
|
|
5264
5316
|
// src/components/ui/graph3d.tsx
|
|
5265
|
-
var
|
|
5317
|
+
var import_react25 = require("react");
|
|
5266
5318
|
var import_drei12 = require("@react-three/drei");
|
|
5267
5319
|
var import_three6 = require("three");
|
|
5268
|
-
var
|
|
5320
|
+
var import_jsx_runtime77 = require("react/jsx-runtime");
|
|
5269
5321
|
function Graph3D({ nodes, edges, physics = false }) {
|
|
5270
|
-
const positionedNodes = (0,
|
|
5322
|
+
const positionedNodes = (0, import_react25.useMemo)(() => {
|
|
5271
5323
|
return nodes.map((node, i) => ({
|
|
5272
5324
|
...node,
|
|
5273
5325
|
vec: new import_three6.Vector3(
|
|
@@ -5277,17 +5329,17 @@ function Graph3D({ nodes, edges, physics = false }) {
|
|
|
5277
5329
|
)
|
|
5278
5330
|
}));
|
|
5279
5331
|
}, [nodes]);
|
|
5280
|
-
const nodeMap = (0,
|
|
5332
|
+
const nodeMap = (0, import_react25.useMemo)(() => {
|
|
5281
5333
|
const map = /* @__PURE__ */ new Map();
|
|
5282
5334
|
positionedNodes.forEach((n) => map.set(n.id, n.vec));
|
|
5283
5335
|
return map;
|
|
5284
5336
|
}, [positionedNodes]);
|
|
5285
|
-
return /* @__PURE__ */ (0,
|
|
5337
|
+
return /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("group", { children: [
|
|
5286
5338
|
edges.map((edge, i) => {
|
|
5287
5339
|
const start = nodeMap.get(edge.source);
|
|
5288
5340
|
const end = nodeMap.get(edge.target);
|
|
5289
5341
|
if (!start || !end) return null;
|
|
5290
|
-
return /* @__PURE__ */ (0,
|
|
5342
|
+
return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
5291
5343
|
import_drei12.Line,
|
|
5292
5344
|
{
|
|
5293
5345
|
points: [start, end],
|
|
@@ -5299,12 +5351,12 @@ function Graph3D({ nodes, edges, physics = false }) {
|
|
|
5299
5351
|
i
|
|
5300
5352
|
);
|
|
5301
5353
|
}),
|
|
5302
|
-
positionedNodes.map((node, i) => /* @__PURE__ */ (0,
|
|
5303
|
-
/* @__PURE__ */ (0,
|
|
5304
|
-
/* @__PURE__ */ (0,
|
|
5305
|
-
/* @__PURE__ */ (0,
|
|
5354
|
+
positionedNodes.map((node, i) => /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("group", { position: node.vec, children: [
|
|
5355
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("mesh", { children: [
|
|
5356
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("sphereGeometry", { args: [0.2, 16, 16] }),
|
|
5357
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("meshStandardMaterial", { color: node.color || "#22d3ee" })
|
|
5306
5358
|
] }),
|
|
5307
|
-
node.label && /* @__PURE__ */ (0,
|
|
5359
|
+
node.label && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
5308
5360
|
import_drei12.Text,
|
|
5309
5361
|
{
|
|
5310
5362
|
position: [0, 0.3, 0],
|
|
@@ -5319,17 +5371,17 @@ function Graph3D({ nodes, edges, physics = false }) {
|
|
|
5319
5371
|
|
|
5320
5372
|
// src/components/ui/map3d.tsx
|
|
5321
5373
|
var import_drei13 = require("@react-three/drei");
|
|
5322
|
-
var
|
|
5374
|
+
var import_jsx_runtime78 = require("react/jsx-runtime");
|
|
5323
5375
|
function Map3D({
|
|
5324
5376
|
markers = [],
|
|
5325
5377
|
radius = 5,
|
|
5326
5378
|
textureSrc = "https://raw.githubusercontent.com/mrdoob/three.js/master/examples/textures/planets/earth_atmos_2048.jpg"
|
|
5327
5379
|
}) {
|
|
5328
5380
|
const texture = (0, import_drei13.useTexture)(textureSrc);
|
|
5329
|
-
return /* @__PURE__ */ (0,
|
|
5330
|
-
/* @__PURE__ */ (0,
|
|
5331
|
-
/* @__PURE__ */ (0,
|
|
5332
|
-
/* @__PURE__ */ (0,
|
|
5381
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("group", { children: [
|
|
5382
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("mesh", { children: [
|
|
5383
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("sphereGeometry", { args: [radius, 64, 64] }),
|
|
5384
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("meshStandardMaterial", { map: texture, metalness: 0.1, roughness: 0.7 })
|
|
5333
5385
|
] }),
|
|
5334
5386
|
markers.map((marker, i) => {
|
|
5335
5387
|
const phi = (90 - marker.lat) * (Math.PI / 180);
|
|
@@ -5337,23 +5389,23 @@ function Map3D({
|
|
|
5337
5389
|
const x = -(radius * Math.sin(phi) * Math.cos(theta));
|
|
5338
5390
|
const z = radius * Math.sin(phi) * Math.sin(theta);
|
|
5339
5391
|
const y = radius * Math.cos(phi);
|
|
5340
|
-
return /* @__PURE__ */ (0,
|
|
5341
|
-
/* @__PURE__ */ (0,
|
|
5342
|
-
/* @__PURE__ */ (0,
|
|
5392
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("mesh", { position: [x, y, z], children: [
|
|
5393
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("sphereGeometry", { args: [0.1, 16, 16] }),
|
|
5394
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("meshBasicMaterial", { color: marker.color || "red" })
|
|
5343
5395
|
] }, i);
|
|
5344
5396
|
})
|
|
5345
5397
|
] });
|
|
5346
5398
|
}
|
|
5347
5399
|
|
|
5348
5400
|
// src/components/ui/gallery3d.tsx
|
|
5349
|
-
var
|
|
5401
|
+
var import_react27 = require("react");
|
|
5350
5402
|
var import_fiber6 = require("@react-three/fiber");
|
|
5351
5403
|
|
|
5352
5404
|
// src/components/ui/imageplane.tsx
|
|
5353
|
-
var
|
|
5405
|
+
var import_react26 = require("react");
|
|
5354
5406
|
var import_drei14 = require("@react-three/drei");
|
|
5355
5407
|
var import_three7 = require("three");
|
|
5356
|
-
var
|
|
5408
|
+
var import_jsx_runtime79 = require("react/jsx-runtime");
|
|
5357
5409
|
function ImagePlane({
|
|
5358
5410
|
src,
|
|
5359
5411
|
width = 3,
|
|
@@ -5363,10 +5415,10 @@ function ImagePlane({
|
|
|
5363
5415
|
transparent = true,
|
|
5364
5416
|
parallax = false
|
|
5365
5417
|
}) {
|
|
5366
|
-
return /* @__PURE__ */ (0,
|
|
5367
|
-
/* @__PURE__ */ (0,
|
|
5368
|
-
/* @__PURE__ */ (0,
|
|
5369
|
-
] }), children: /* @__PURE__ */ (0,
|
|
5418
|
+
return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_react26.Suspense, { fallback: /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("mesh", { children: [
|
|
5419
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("planeGeometry", { args: [width, width] }),
|
|
5420
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("meshBasicMaterial", { wireframe: true, color: "gray" })
|
|
5421
|
+
] }), children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
5370
5422
|
ImageMesh,
|
|
5371
5423
|
{
|
|
5372
5424
|
src,
|
|
@@ -5382,9 +5434,9 @@ function ImageMesh({ src, width = 1, height, opacity, transparent }) {
|
|
|
5382
5434
|
const texture = (0, import_drei14.useTexture)(src);
|
|
5383
5435
|
const aspect = texture.image ? texture.image.width / texture.image.height : 1;
|
|
5384
5436
|
const h = height || width / aspect;
|
|
5385
|
-
return /* @__PURE__ */ (0,
|
|
5386
|
-
/* @__PURE__ */ (0,
|
|
5387
|
-
/* @__PURE__ */ (0,
|
|
5437
|
+
return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("mesh", { children: [
|
|
5438
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("planeGeometry", { args: [width, h] }),
|
|
5439
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
5388
5440
|
"meshBasicMaterial",
|
|
5389
5441
|
{
|
|
5390
5442
|
map: texture,
|
|
@@ -5398,20 +5450,20 @@ function ImageMesh({ src, width = 1, height, opacity, transparent }) {
|
|
|
5398
5450
|
}
|
|
5399
5451
|
|
|
5400
5452
|
// src/components/ui/gallery3d.tsx
|
|
5401
|
-
var
|
|
5453
|
+
var import_jsx_runtime80 = require("react/jsx-runtime");
|
|
5402
5454
|
function Gallery3D({
|
|
5403
5455
|
images,
|
|
5404
5456
|
layout = "carousel",
|
|
5405
5457
|
radius = 5,
|
|
5406
5458
|
gap = 1.5
|
|
5407
5459
|
}) {
|
|
5408
|
-
const ref = (0,
|
|
5460
|
+
const ref = (0, import_react27.useRef)(null);
|
|
5409
5461
|
(0, import_fiber6.useFrame)((state, delta) => {
|
|
5410
5462
|
if (ref.current && layout === "carousel") {
|
|
5411
5463
|
ref.current.rotation.y += delta * 0.1;
|
|
5412
5464
|
}
|
|
5413
5465
|
});
|
|
5414
|
-
return /* @__PURE__ */ (0,
|
|
5466
|
+
return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("group", { ref, children: images.map((img, i) => {
|
|
5415
5467
|
let position = [0, 0, 0];
|
|
5416
5468
|
let rotation = [0, 0, 0];
|
|
5417
5469
|
if (layout === "carousel") {
|
|
@@ -5429,15 +5481,15 @@ function Gallery3D({
|
|
|
5429
5481
|
const y = -Math.floor(i / cols) * (2 + gap);
|
|
5430
5482
|
position = [x, y, 0];
|
|
5431
5483
|
}
|
|
5432
|
-
return /* @__PURE__ */ (0,
|
|
5484
|
+
return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("group", { position, rotation, children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(ImagePlane, { src: img.src, width: 3, opacity: 0.9 }) }, i);
|
|
5433
5485
|
}) });
|
|
5434
5486
|
}
|
|
5435
5487
|
|
|
5436
5488
|
// src/components/ui/modelviewer.tsx
|
|
5437
|
-
var
|
|
5489
|
+
var import_react28 = require("react");
|
|
5438
5490
|
var import_drei15 = require("@react-three/drei");
|
|
5439
5491
|
var import_fiber7 = require("@react-three/fiber");
|
|
5440
|
-
var
|
|
5492
|
+
var import_jsx_runtime81 = require("react/jsx-runtime");
|
|
5441
5493
|
function ModelViewer({
|
|
5442
5494
|
src,
|
|
5443
5495
|
autoRotate = true,
|
|
@@ -5445,27 +5497,27 @@ function ModelViewer({
|
|
|
5445
5497
|
environment = "studio",
|
|
5446
5498
|
position = [0, 0, 0]
|
|
5447
5499
|
}) {
|
|
5448
|
-
return /* @__PURE__ */ (0,
|
|
5449
|
-
/* @__PURE__ */ (0,
|
|
5450
|
-
/* @__PURE__ */ (0,
|
|
5500
|
+
return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("group", { position, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(import_react28.Suspense, { fallback: null, children: [
|
|
5501
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Model, { src, scale, autoRotate }),
|
|
5502
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_drei15.Environment, { preset: environment })
|
|
5451
5503
|
] }) });
|
|
5452
5504
|
}
|
|
5453
5505
|
function Model({ src, scale, autoRotate }) {
|
|
5454
5506
|
const { scene } = (0, import_drei15.useGLTF)(src);
|
|
5455
|
-
const ref = (0,
|
|
5507
|
+
const ref = (0, import_react28.useRef)(null);
|
|
5456
5508
|
(0, import_fiber7.useFrame)((state, delta) => {
|
|
5457
5509
|
if (ref.current && autoRotate) {
|
|
5458
5510
|
ref.current.rotation.y += delta * 0.5;
|
|
5459
5511
|
}
|
|
5460
5512
|
});
|
|
5461
|
-
return /* @__PURE__ */ (0,
|
|
5513
|
+
return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("primitive", { object: scene, scale, ref });
|
|
5462
5514
|
}
|
|
5463
5515
|
|
|
5464
5516
|
// src/components/ui/videoplane.tsx
|
|
5465
|
-
var
|
|
5517
|
+
var import_react29 = require("react");
|
|
5466
5518
|
var import_drei16 = require("@react-three/drei");
|
|
5467
5519
|
var THREE = __toESM(require("three"), 1);
|
|
5468
|
-
var
|
|
5520
|
+
var import_jsx_runtime82 = require("react/jsx-runtime");
|
|
5469
5521
|
function VideoPlane({
|
|
5470
5522
|
src,
|
|
5471
5523
|
width = 4,
|
|
@@ -5476,14 +5528,14 @@ function VideoPlane({
|
|
|
5476
5528
|
opacity = 1,
|
|
5477
5529
|
side = "double"
|
|
5478
5530
|
}) {
|
|
5479
|
-
return /* @__PURE__ */ (0,
|
|
5480
|
-
|
|
5531
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
5532
|
+
import_react29.Suspense,
|
|
5481
5533
|
{
|
|
5482
|
-
fallback: /* @__PURE__ */ (0,
|
|
5483
|
-
/* @__PURE__ */ (0,
|
|
5484
|
-
/* @__PURE__ */ (0,
|
|
5534
|
+
fallback: /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("mesh", { children: [
|
|
5535
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("planeGeometry", { args: [width, width * 0.56] }),
|
|
5536
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("meshBasicMaterial", { color: "gray", wireframe: true })
|
|
5485
5537
|
] }),
|
|
5486
|
-
children: /* @__PURE__ */ (0,
|
|
5538
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
5487
5539
|
VideoPlaneContent,
|
|
5488
5540
|
{
|
|
5489
5541
|
src,
|
|
@@ -5520,9 +5572,9 @@ function VideoPlaneContent({
|
|
|
5520
5572
|
const aspect = video && video.videoWidth > 0 && video.videoHeight > 0 ? video.videoWidth / video.videoHeight : 16 / 9;
|
|
5521
5573
|
const planeHeight = height ?? width / aspect;
|
|
5522
5574
|
const materialSide = side === "double" ? THREE.DoubleSide : side === "back" ? THREE.BackSide : THREE.FrontSide;
|
|
5523
|
-
return /* @__PURE__ */ (0,
|
|
5524
|
-
/* @__PURE__ */ (0,
|
|
5525
|
-
/* @__PURE__ */ (0,
|
|
5575
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("mesh", { children: [
|
|
5576
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("planeGeometry", { args: [width, planeHeight] }),
|
|
5577
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
5526
5578
|
"meshBasicMaterial",
|
|
5527
5579
|
{
|
|
5528
5580
|
map: texture,
|
|
@@ -5536,20 +5588,20 @@ function VideoPlaneContent({
|
|
|
5536
5588
|
}
|
|
5537
5589
|
|
|
5538
5590
|
// src/components/ui/audiovisualizer.tsx
|
|
5539
|
-
var
|
|
5591
|
+
var import_react30 = require("react");
|
|
5540
5592
|
var import_fiber8 = require("@react-three/fiber");
|
|
5541
5593
|
var THREE2 = __toESM(require("three"), 1);
|
|
5542
|
-
var
|
|
5594
|
+
var import_jsx_runtime83 = require("react/jsx-runtime");
|
|
5543
5595
|
function AudioVisualizer({
|
|
5544
5596
|
audioSrc,
|
|
5545
5597
|
fftSize = 64,
|
|
5546
5598
|
barColor = "#22d3ee",
|
|
5547
5599
|
width = 10
|
|
5548
5600
|
}) {
|
|
5549
|
-
const analyserRef = (0,
|
|
5550
|
-
const meshRef = (0,
|
|
5551
|
-
const [ready, setReady] = (0,
|
|
5552
|
-
(0,
|
|
5601
|
+
const analyserRef = (0, import_react30.useRef)(null);
|
|
5602
|
+
const meshRef = (0, import_react30.useRef)(null);
|
|
5603
|
+
const [ready, setReady] = (0, import_react30.useState)(false);
|
|
5604
|
+
(0, import_react30.useEffect)(() => {
|
|
5553
5605
|
const listener = new THREE2.AudioListener();
|
|
5554
5606
|
const sound = new THREE2.Audio(listener);
|
|
5555
5607
|
const audioLoader = new THREE2.AudioLoader();
|
|
@@ -5584,25 +5636,25 @@ function AudioVisualizer({
|
|
|
5584
5636
|
meshRef.current.instanceMatrix.needsUpdate = true;
|
|
5585
5637
|
}
|
|
5586
5638
|
});
|
|
5587
|
-
return /* @__PURE__ */ (0,
|
|
5588
|
-
/* @__PURE__ */ (0,
|
|
5589
|
-
/* @__PURE__ */ (0,
|
|
5639
|
+
return /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("instancedMesh", { ref: meshRef, args: [void 0, void 0, fftSize / 2], children: [
|
|
5640
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("boxGeometry", { args: [1, 1, 1] }),
|
|
5641
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("meshStandardMaterial", { color: barColor })
|
|
5590
5642
|
] });
|
|
5591
5643
|
}
|
|
5592
5644
|
|
|
5593
5645
|
// src/components/ui/particles.tsx
|
|
5594
|
-
var
|
|
5646
|
+
var import_react31 = require("react");
|
|
5595
5647
|
var import_fiber9 = require("@react-three/fiber");
|
|
5596
5648
|
var import_three8 = require("three");
|
|
5597
|
-
var
|
|
5649
|
+
var import_jsx_runtime84 = require("react/jsx-runtime");
|
|
5598
5650
|
function Particles({
|
|
5599
5651
|
count: count2 = 1e3,
|
|
5600
5652
|
size = 0.03,
|
|
5601
5653
|
color = "#a78bfa",
|
|
5602
5654
|
speed = 0.1
|
|
5603
5655
|
}) {
|
|
5604
|
-
const points = (0,
|
|
5605
|
-
const particlesPosition = (0,
|
|
5656
|
+
const points = (0, import_react31.useRef)(null);
|
|
5657
|
+
const particlesPosition = (0, import_react31.useMemo)(() => {
|
|
5606
5658
|
const positions = new Float32Array(count2 * 3);
|
|
5607
5659
|
for (let i = 0; i < count2; i++) {
|
|
5608
5660
|
positions[i * 3] = (Math.random() - 0.5) * 10;
|
|
@@ -5616,8 +5668,8 @@ function Particles({
|
|
|
5616
5668
|
points.current.rotation.y += delta * speed;
|
|
5617
5669
|
}
|
|
5618
5670
|
});
|
|
5619
|
-
return /* @__PURE__ */ (0,
|
|
5620
|
-
/* @__PURE__ */ (0,
|
|
5671
|
+
return /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("points", { ref: points, children: [
|
|
5672
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("bufferGeometry", { children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
|
|
5621
5673
|
"bufferAttribute",
|
|
5622
5674
|
{
|
|
5623
5675
|
attach: "attributes-position",
|
|
@@ -5626,7 +5678,7 @@ function Particles({
|
|
|
5626
5678
|
itemSize: 3
|
|
5627
5679
|
}
|
|
5628
5680
|
) }),
|
|
5629
|
-
/* @__PURE__ */ (0,
|
|
5681
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
|
|
5630
5682
|
"pointsMaterial",
|
|
5631
5683
|
{
|
|
5632
5684
|
size,
|
|
@@ -5641,7 +5693,7 @@ function Particles({
|
|
|
5641
5693
|
}
|
|
5642
5694
|
|
|
5643
5695
|
// src/components/ui/bloom.tsx
|
|
5644
|
-
var
|
|
5696
|
+
var import_react32 = require("react");
|
|
5645
5697
|
var import_fiber10 = require("@react-three/fiber");
|
|
5646
5698
|
|
|
5647
5699
|
// node_modules/three-stdlib/postprocessing/ShaderPass.js
|
|
@@ -6395,12 +6447,12 @@ var RenderPass = class extends Pass {
|
|
|
6395
6447
|
|
|
6396
6448
|
// src/components/ui/bloom.tsx
|
|
6397
6449
|
var import_three15 = require("three");
|
|
6398
|
-
var
|
|
6450
|
+
var import_jsx_runtime85 = require("react/jsx-runtime");
|
|
6399
6451
|
(0, import_fiber10.extend)({ EffectComposer, RenderPass, UnrealBloomPass });
|
|
6400
6452
|
function Bloom({ intensity = 1, radius = 0.4, threshold = 0 }) {
|
|
6401
6453
|
const { gl, scene, camera, size } = (0, import_fiber10.useThree)();
|
|
6402
|
-
const composer = (0,
|
|
6403
|
-
(0,
|
|
6454
|
+
const composer = (0, import_react32.useRef)(null);
|
|
6455
|
+
(0, import_react32.useEffect)(() => {
|
|
6404
6456
|
if (composer.current) {
|
|
6405
6457
|
composer.current.setSize(size.width, size.height);
|
|
6406
6458
|
}
|
|
@@ -6410,24 +6462,24 @@ function Bloom({ intensity = 1, radius = 0.4, threshold = 0 }) {
|
|
|
6410
6462
|
composer.current.render();
|
|
6411
6463
|
}
|
|
6412
6464
|
}, 1);
|
|
6413
|
-
return /* @__PURE__ */ (0,
|
|
6414
|
-
/* @__PURE__ */ (0,
|
|
6415
|
-
/* @__PURE__ */ (0,
|
|
6465
|
+
return /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)("effectComposer", { ref: composer, args: [gl], children: [
|
|
6466
|
+
/* @__PURE__ */ (0, import_jsx_runtime85.jsx)("renderPass", { attach: "passes", args: [scene, camera] }),
|
|
6467
|
+
/* @__PURE__ */ (0, import_jsx_runtime85.jsx)("unrealBloomPass", { attach: "passes", args: [new import_three15.Vector2(size.width, size.height), intensity, radius, threshold] })
|
|
6416
6468
|
] });
|
|
6417
6469
|
}
|
|
6418
6470
|
|
|
6419
6471
|
// src/components/ui/reflection.tsx
|
|
6420
6472
|
var import_drei17 = require("@react-three/drei");
|
|
6421
|
-
var
|
|
6473
|
+
var import_jsx_runtime86 = require("react/jsx-runtime");
|
|
6422
6474
|
function Reflection({
|
|
6423
6475
|
blur = [300, 100],
|
|
6424
6476
|
opacity = 0.5,
|
|
6425
6477
|
resolution = 512,
|
|
6426
6478
|
color = "#101010"
|
|
6427
6479
|
}) {
|
|
6428
|
-
return /* @__PURE__ */ (0,
|
|
6429
|
-
/* @__PURE__ */ (0,
|
|
6430
|
-
/* @__PURE__ */ (0,
|
|
6480
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)("mesh", { rotation: [-Math.PI / 2, 0, 0], position: [0, -0.01, 0], children: [
|
|
6481
|
+
/* @__PURE__ */ (0, import_jsx_runtime86.jsx)("planeGeometry", { args: [50, 50] }),
|
|
6482
|
+
/* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
6431
6483
|
import_drei17.MeshReflectorMaterial,
|
|
6432
6484
|
{
|
|
6433
6485
|
blur,
|
|
@@ -6447,7 +6499,7 @@ function Reflection({
|
|
|
6447
6499
|
}
|
|
6448
6500
|
|
|
6449
6501
|
// src/components/ui/fog.tsx
|
|
6450
|
-
var
|
|
6502
|
+
var import_jsx_runtime87 = require("react/jsx-runtime");
|
|
6451
6503
|
function Fog({
|
|
6452
6504
|
color = "#000",
|
|
6453
6505
|
near = 5,
|
|
@@ -6456,17 +6508,17 @@ function Fog({
|
|
|
6456
6508
|
density = 0.02
|
|
6457
6509
|
}) {
|
|
6458
6510
|
if (type === "exponential") {
|
|
6459
|
-
return /* @__PURE__ */ (0,
|
|
6511
|
+
return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("fogExp2", { attach: "fog", args: [color, density] });
|
|
6460
6512
|
}
|
|
6461
|
-
return /* @__PURE__ */ (0,
|
|
6513
|
+
return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("fog", { attach: "fog", args: [color, near, far] });
|
|
6462
6514
|
}
|
|
6463
6515
|
|
|
6464
6516
|
// src/components/ui/shadowsystem.tsx
|
|
6465
6517
|
var import_drei18 = require("@react-three/drei");
|
|
6466
|
-
var
|
|
6518
|
+
var import_jsx_runtime88 = require("react/jsx-runtime");
|
|
6467
6519
|
function ShadowSystem({ type = "soft", bias = -1e-4, mapSize = 1024 }) {
|
|
6468
6520
|
if (type === "soft") {
|
|
6469
|
-
return /* @__PURE__ */ (0,
|
|
6521
|
+
return /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(import_drei18.SoftShadows, {});
|
|
6470
6522
|
}
|
|
6471
6523
|
if (type === "contact") {
|
|
6472
6524
|
return null;
|
|
@@ -6475,16 +6527,16 @@ function ShadowSystem({ type = "soft", bias = -1e-4, mapSize = 1024 }) {
|
|
|
6475
6527
|
}
|
|
6476
6528
|
|
|
6477
6529
|
// src/components/ui/gloweffect.tsx
|
|
6478
|
-
var
|
|
6530
|
+
var import_react33 = __toESM(require("react"), 1);
|
|
6479
6531
|
var THREE3 = __toESM(require("three"), 1);
|
|
6480
|
-
var
|
|
6532
|
+
var import_jsx_runtime89 = require("react/jsx-runtime");
|
|
6481
6533
|
function GlowEffect({
|
|
6482
6534
|
children,
|
|
6483
6535
|
color = "#22d3ee",
|
|
6484
6536
|
intensity = 1,
|
|
6485
6537
|
scale = 1.2
|
|
6486
6538
|
}) {
|
|
6487
|
-
const glowMaterial =
|
|
6539
|
+
const glowMaterial = import_react33.default.useMemo(() => {
|
|
6488
6540
|
return new THREE3.MeshBasicMaterial({
|
|
6489
6541
|
color,
|
|
6490
6542
|
transparent: true,
|
|
@@ -6494,11 +6546,11 @@ function GlowEffect({
|
|
|
6494
6546
|
// Outline effect often uses BackSide with scaled mesh
|
|
6495
6547
|
});
|
|
6496
6548
|
}, [color, intensity]);
|
|
6497
|
-
return /* @__PURE__ */ (0,
|
|
6549
|
+
return /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)("group", { children: [
|
|
6498
6550
|
children,
|
|
6499
|
-
/* @__PURE__ */ (0,
|
|
6500
|
-
if (
|
|
6501
|
-
return (0,
|
|
6551
|
+
/* @__PURE__ */ (0, import_jsx_runtime89.jsx)("group", { scale: [scale, scale, scale], children: import_react33.Children.map(children, (child) => {
|
|
6552
|
+
if (import_react33.default.isValidElement(child)) {
|
|
6553
|
+
return (0, import_react33.cloneElement)(child, {
|
|
6502
6554
|
material: glowMaterial
|
|
6503
6555
|
});
|
|
6504
6556
|
}
|
|
@@ -6508,11 +6560,11 @@ function GlowEffect({
|
|
|
6508
6560
|
}
|
|
6509
6561
|
|
|
6510
6562
|
// src/components/ui/waveeffect.tsx
|
|
6511
|
-
var
|
|
6563
|
+
var import_react34 = __toESM(require("react"), 1);
|
|
6512
6564
|
var import_drei19 = require("@react-three/drei");
|
|
6513
6565
|
var import_fiber11 = require("@react-three/fiber");
|
|
6514
6566
|
var THREE4 = __toESM(require("three"), 1);
|
|
6515
|
-
var
|
|
6567
|
+
var import_jsx_runtime90 = require("react/jsx-runtime");
|
|
6516
6568
|
var WaveMaterial = (0, import_drei19.shaderMaterial)(
|
|
6517
6569
|
{ time: 0, color: new THREE4.Color(0.2, 0.5, 1) },
|
|
6518
6570
|
// vertex shader
|
|
@@ -6537,14 +6589,14 @@ var WaveMaterial = (0, import_drei19.shaderMaterial)(
|
|
|
6537
6589
|
);
|
|
6538
6590
|
(0, import_fiber11.extend)({ WaveMaterial });
|
|
6539
6591
|
function WaveEffect({ children, amplitude = 0.3, frequency = 2, speed = 1 }) {
|
|
6540
|
-
const group =
|
|
6541
|
-
const material = (0,
|
|
6592
|
+
const group = import_react34.default.useRef(null);
|
|
6593
|
+
const material = (0, import_react34.useMemo)(() => new WaveMaterial(), []);
|
|
6542
6594
|
(0, import_fiber11.useFrame)((state, delta) => {
|
|
6543
6595
|
if (material) {
|
|
6544
6596
|
material.time += delta * speed;
|
|
6545
6597
|
}
|
|
6546
6598
|
});
|
|
6547
|
-
|
|
6599
|
+
import_react34.default.useEffect(() => {
|
|
6548
6600
|
if (group.current) {
|
|
6549
6601
|
group.current.traverse((obj) => {
|
|
6550
6602
|
if (obj.isMesh) {
|
|
@@ -6553,15 +6605,15 @@ function WaveEffect({ children, amplitude = 0.3, frequency = 2, speed = 1 }) {
|
|
|
6553
6605
|
});
|
|
6554
6606
|
}
|
|
6555
6607
|
}, [children, material]);
|
|
6556
|
-
return /* @__PURE__ */ (0,
|
|
6608
|
+
return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("group", { ref: group, children });
|
|
6557
6609
|
}
|
|
6558
6610
|
|
|
6559
6611
|
// src/components/ui/noisefield.tsx
|
|
6560
|
-
var
|
|
6612
|
+
var import_react35 = require("react");
|
|
6561
6613
|
var import_drei20 = require("@react-three/drei");
|
|
6562
6614
|
var import_fiber12 = require("@react-three/fiber");
|
|
6563
6615
|
var THREE5 = __toESM(require("three"), 1);
|
|
6564
|
-
var
|
|
6616
|
+
var import_jsx_runtime91 = require("react/jsx-runtime");
|
|
6565
6617
|
var NoiseMaterial = (0, import_drei20.shaderMaterial)(
|
|
6566
6618
|
{ time: 0, scale: 1, color: new THREE5.Color(0.2, 0.5, 1) },
|
|
6567
6619
|
// Vertex
|
|
@@ -6592,16 +6644,16 @@ var NoiseMaterial = (0, import_drei20.shaderMaterial)(
|
|
|
6592
6644
|
);
|
|
6593
6645
|
(0, import_fiber12.extend)({ NoiseMaterial });
|
|
6594
6646
|
function NoiseField({ scale = 1, speed = 0.5, mode = "color" }) {
|
|
6595
|
-
const material = (0,
|
|
6647
|
+
const material = (0, import_react35.useMemo)(() => new NoiseMaterial(), []);
|
|
6596
6648
|
(0, import_fiber12.useFrame)((state, delta) => {
|
|
6597
6649
|
if (material) {
|
|
6598
6650
|
material.time += delta * speed;
|
|
6599
6651
|
material.scale = scale;
|
|
6600
6652
|
}
|
|
6601
6653
|
});
|
|
6602
|
-
return /* @__PURE__ */ (0,
|
|
6603
|
-
/* @__PURE__ */ (0,
|
|
6604
|
-
/* @__PURE__ */ (0,
|
|
6654
|
+
return /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)("mesh", { rotation: [-Math.PI / 2, 0, 0], children: [
|
|
6655
|
+
/* @__PURE__ */ (0, import_jsx_runtime91.jsx)("planeGeometry", { args: [10, 10, 64, 64] }),
|
|
6656
|
+
/* @__PURE__ */ (0, import_jsx_runtime91.jsx)("primitive", { object: material, attach: "material" })
|
|
6605
6657
|
] });
|
|
6606
6658
|
}
|
|
6607
6659
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -6871,6 +6923,7 @@ function NoiseField({ scale = 1, speed = 0.5, mode = "color" }) {
|
|
|
6871
6923
|
TableRow,
|
|
6872
6924
|
Tabs3D,
|
|
6873
6925
|
Textarea,
|
|
6926
|
+
ThemeProvider,
|
|
6874
6927
|
Timeline3D,
|
|
6875
6928
|
Toast,
|
|
6876
6929
|
ToastAction,
|
|
@@ -6899,6 +6952,8 @@ function NoiseField({ scale = 1, speed = 0.5, mode = "color" }) {
|
|
|
6899
6952
|
sonnerToast,
|
|
6900
6953
|
toggleVariants,
|
|
6901
6954
|
useFormField,
|
|
6902
|
-
useSidebar
|
|
6955
|
+
useSidebar,
|
|
6956
|
+
useTheme,
|
|
6957
|
+
useThemeOptional
|
|
6903
6958
|
});
|
|
6904
6959
|
//# sourceMappingURL=index.cjs.map
|