@cupcodev/ui 1.4.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -68,6 +68,8 @@ __export(src_exports, {
68
68
  BreadcrumbPage: () => BreadcrumbPage,
69
69
  BreadcrumbSeparator: () => BreadcrumbSeparator,
70
70
  Button: () => Button,
71
+ CUPCODE_APP_VERSION_ENV_KEY: () => CUPCODE_APP_VERSION_ENV_KEY,
72
+ CUPCODE_APP_VERSION_ENV_KEYS: () => CUPCODE_APP_VERSION_ENV_KEYS,
71
73
  Calendar: () => Calendar,
72
74
  Card: () => Card,
73
75
  CardContent: () => CardContent,
@@ -373,6 +375,7 @@ __export(src_exports, {
373
375
  navigationMenuTriggerStyle: () => navigationMenuTriggerStyle,
374
376
  parseAssetId: () => parseAssetId,
375
377
  reducer: () => reducer,
378
+ resolveCupcodeAppVersion: () => resolveCupcodeAppVersion,
376
379
  resolveOidcEndpoints: () => resolveOidcEndpoints,
377
380
  resolveTelescupImageURL: () => resolveTelescupImageURL,
378
381
  responsiveSizeClasses: () => responsiveSizeClasses,
@@ -536,38 +539,111 @@ var AvatarWithStatus = ({
536
539
  var import_react = require("react");
537
540
  var import_jsx_runtime3 = require("react/jsx-runtime");
538
541
  var BackgroundRainbow = () => {
542
+ const rootRef = (0, import_react.useRef)(null);
539
543
  const interactiveRef = (0, import_react.useRef)(null);
540
- const rafRef = (0, import_react.useRef)(null);
541
- const cur = (0, import_react.useRef)({ x: 0, y: 0 });
542
- const target = (0, import_react.useRef)({ x: 0, y: 0 });
544
+ const currentRef = (0, import_react.useRef)({ x: 0, y: 0 });
545
+ const targetRef = (0, import_react.useRef)({ x: 0, y: 0 });
546
+ const filterId = (0, import_react.useId)().replace(/:/g, "");
547
+ const config = (0, import_react.useMemo)(() => {
548
+ const nav = typeof navigator !== "undefined" ? navigator : null;
549
+ const lowMemory = !!nav && typeof nav.deviceMemory === "number" && nav.deviceMemory <= 4;
550
+ const lowCpu = !!nav && typeof nav.hardwareConcurrency === "number" && nav.hardwareConcurrency <= 4;
551
+ const lowPowerDevice = lowMemory || lowCpu;
552
+ return {
553
+ blur: lowPowerDevice ? 20 : 30,
554
+ interactiveOpacity: lowPowerDevice ? 0.54 : 0.7,
555
+ useGoo: !lowPowerDevice,
556
+ snapDistance: lowPowerDevice ? 2.5 : 1.5,
557
+ easeFactor: lowPowerDevice ? 7.5 : 10,
558
+ renderThirdBubble: !lowPowerDevice,
559
+ blendMode: lowPowerDevice ? "screen" : "hard-light"
560
+ };
561
+ }, []);
543
562
  (0, import_react.useEffect)(() => {
544
- const easeFactor = 10;
545
- const move = () => {
546
- cur.current.x += (target.current.x - cur.current.x) / easeFactor;
547
- cur.current.y += (target.current.y - cur.current.y) / easeFactor;
548
- if (interactiveRef.current) {
549
- interactiveRef.current.style.transform = `translate(${Math.round(
550
- cur.current.x
551
- )}px, ${Math.round(cur.current.y)}px)`;
552
- }
553
- rafRef.current = requestAnimationFrame(move);
563
+ const interactive = interactiveRef.current;
564
+ const root = rootRef.current;
565
+ if (!interactive || !root) return;
566
+ const prefersReducedMotion = window.matchMedia("(prefers-reduced-motion: reduce)");
567
+ let raf = 0;
568
+ let running = false;
569
+ const stop = () => {
570
+ running = false;
571
+ if (raf) {
572
+ cancelAnimationFrame(raf);
573
+ raf = 0;
574
+ }
575
+ };
576
+ const updatePlayState = () => {
577
+ const enabled = !prefersReducedMotion.matches && !document.hidden && !document.documentElement.classList.contains("dark");
578
+ root.style.setProperty("--cc-rainbow-play", enabled ? "running" : "paused");
579
+ if (!enabled) stop();
580
+ return enabled;
581
+ };
582
+ const applyTransform = () => {
583
+ const x = Math.round(currentRef.current.x);
584
+ const y = Math.round(currentRef.current.y);
585
+ interactive.style.transform = `translate3d(${x}px, ${y}px, 0)`;
586
+ };
587
+ const animate = () => {
588
+ if (!updatePlayState()) return;
589
+ currentRef.current.x += (targetRef.current.x - currentRef.current.x) / config.easeFactor;
590
+ currentRef.current.y += (targetRef.current.y - currentRef.current.y) / config.easeFactor;
591
+ applyTransform();
592
+ const dx = Math.abs(targetRef.current.x - currentRef.current.x);
593
+ const dy = Math.abs(targetRef.current.y - currentRef.current.y);
594
+ if (dx < config.snapDistance && dy < config.snapDistance) {
595
+ running = false;
596
+ raf = 0;
597
+ return;
598
+ }
599
+ raf = requestAnimationFrame(animate);
600
+ };
601
+ const start = () => {
602
+ if (running) return;
603
+ if (!updatePlayState()) return;
604
+ running = true;
605
+ raf = requestAnimationFrame(animate);
554
606
  };
555
607
  const onPointer = (e) => {
556
- target.current.x = e.clientX;
557
- target.current.y = e.clientY;
608
+ if (!updatePlayState()) return;
609
+ targetRef.current.x = e.clientX;
610
+ targetRef.current.y = e.clientY;
611
+ start();
612
+ };
613
+ const onStateChange = () => {
614
+ updatePlayState();
558
615
  };
616
+ const centerX = window.innerWidth / 2;
617
+ const centerY = window.innerHeight / 2;
618
+ currentRef.current.x = centerX;
619
+ currentRef.current.y = centerY;
620
+ targetRef.current.x = centerX;
621
+ targetRef.current.y = centerY;
622
+ applyTransform();
623
+ updatePlayState();
559
624
  window.addEventListener("pointermove", onPointer, { passive: true });
560
- const prefersReduced = window.matchMedia("(prefers-reduced-motion: reduce)");
561
- if (!prefersReduced.matches) {
562
- rafRef.current = requestAnimationFrame(move);
625
+ document.addEventListener("visibilitychange", onStateChange);
626
+ if (typeof prefersReducedMotion.addEventListener === "function") {
627
+ prefersReducedMotion.addEventListener("change", onStateChange);
628
+ } else {
629
+ prefersReducedMotion.addListener(onStateChange);
563
630
  }
631
+ const observer = new MutationObserver(onStateChange);
632
+ observer.observe(document.documentElement, { attributes: true, attributeFilter: ["class"] });
564
633
  return () => {
565
634
  window.removeEventListener("pointermove", onPointer);
566
- if (rafRef.current) cancelAnimationFrame(rafRef.current);
635
+ document.removeEventListener("visibilitychange", onStateChange);
636
+ if (typeof prefersReducedMotion.removeEventListener === "function") {
637
+ prefersReducedMotion.removeEventListener("change", onStateChange);
638
+ } else {
639
+ prefersReducedMotion.removeListener(onStateChange);
640
+ }
641
+ observer.disconnect();
642
+ stop();
567
643
  };
568
- }, []);
569
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "fixed inset-0 overflow-hidden pointer-events-none z-0 bg-white", children: [
570
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("svg", { className: "hidden", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": true, focusable: "false", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("filter", { id: "cc-goo", children: [
644
+ }, [config.easeFactor, config.snapDistance]);
645
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { ref: rootRef, className: "fixed inset-0 z-0 overflow-hidden bg-white pointer-events-none dark:hidden", children: [
646
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("svg", { className: "hidden", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": true, focusable: "false", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("filter", { id: filterId, children: [
571
647
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("feGaussianBlur", { in: "SourceGraphic", stdDeviation: "10", result: "blur" }),
572
648
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
573
649
  "feColorMatrix",
@@ -580,79 +656,104 @@ var BackgroundRainbow = () => {
580
656
  ),
581
657
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("feBlend", { in: "SourceGraphic", in2: "goo" })
582
658
  ] }) }) }),
583
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "absolute inset-0", style: { filter: "url(#cc-goo) blur(36px)" }, children: [
584
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "cc-bubble cc-a cc-g1" }),
585
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "cc-bubble cc-b cc-g2" }),
586
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "cc-bubble cc-a cc-g3" }),
587
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { ref: interactiveRef, className: "cc-bubble cc-b cc-interactive" })
588
- ] }),
659
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
660
+ "div",
661
+ {
662
+ className: "absolute inset-0 cc-rainbow-layer",
663
+ style: {
664
+ filter: config.useGoo ? `url(#${filterId}) blur(${config.blur}px)` : `blur(${config.blur}px)`
665
+ },
666
+ children: [
667
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "cc-rainbow-bubble cc-rainbow-a cc-rainbow-g1" }),
668
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "cc-rainbow-bubble cc-rainbow-b cc-rainbow-g2" }),
669
+ config.renderThirdBubble ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "cc-rainbow-bubble cc-rainbow-a cc-rainbow-g3" }) : null,
670
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { ref: interactiveRef, className: "cc-rainbow-bubble cc-rainbow-b cc-rainbow-interactive" })
671
+ ]
672
+ }
673
+ ),
589
674
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("style", { children: `
590
- .cc-bubble {
675
+ .cc-rainbow-layer {
676
+ contain: paint;
677
+ }
678
+
679
+ .cc-rainbow-bubble {
591
680
  position: absolute;
592
- mix-blend-mode: hard-light;
681
+ mix-blend-mode: ${config.blendMode};
593
682
  pointer-events: none;
594
683
  will-change: transform;
684
+ transform: translate3d(0, 0, 0);
595
685
  }
596
686
 
597
- /* usa as cores globais de hover/purple com ~0.4 de opacidade */
598
- .cc-a {
687
+ .cc-rainbow-a {
599
688
  background: radial-gradient(circle at center,
600
689
  color-mix(in srgb, var(--color-one) 40%, transparent) 0%,
601
690
  transparent 50%) no-repeat;
602
691
  }
603
- .cc-b {
692
+
693
+ .cc-rainbow-b {
604
694
  background: radial-gradient(circle at center,
605
695
  color-mix(in srgb, var(--color-two) 40%, transparent) 0%,
606
696
  transparent 50%) no-repeat;
607
697
  }
608
698
 
609
- .cc-g1, .cc-g2, .cc-g3 {
699
+ .cc-rainbow-g1, .cc-rainbow-g2, .cc-rainbow-g3 {
610
700
  width: 80vmin;
611
701
  height: 80vmin;
612
702
  top: calc(50% - 40vmin);
613
703
  left: calc(50% - 40vmin);
614
704
  }
615
705
 
616
- .cc-g1 {
706
+ .cc-rainbow-g1 {
617
707
  transform-origin: center center;
618
- animation: cc-bounceV 28s var(--ease-smooth, ease-in-out) infinite;
708
+ animation: cc-rainbow-bounce-v 28s var(--ease-smooth, ease-in-out) infinite;
709
+ animation-play-state: var(--cc-rainbow-play, running);
619
710
  opacity: 1;
620
711
  }
621
- .cc-g2 {
712
+
713
+ .cc-rainbow-g2 {
622
714
  transform-origin: calc(50% - 360px);
623
- animation: cc-circle 22s linear infinite reverse;
715
+ animation: cc-rainbow-circle 22s linear infinite reverse;
716
+ animation-play-state: var(--cc-rainbow-play, running);
624
717
  opacity: 1;
625
718
  }
626
- .cc-g3 {
719
+
720
+ .cc-rainbow-g3 {
627
721
  top: calc(50% - 40vmin + 160px);
628
722
  left: calc(50% - 40vmin - 420px);
629
723
  transform-origin: calc(50% + 360px);
630
- animation: cc-circle 38s linear infinite;
724
+ animation: cc-rainbow-circle 38s linear infinite;
725
+ animation-play-state: var(--cc-rainbow-play, running);
631
726
  opacity: 0.9;
632
727
  }
633
728
 
634
- .cc-interactive {
729
+ .cc-rainbow-interactive {
635
730
  width: 100%;
636
731
  height: 100%;
637
732
  top: -50%;
638
733
  left: -50%;
639
- opacity: 0.7;
640
- transform: translate(0px, 0px); /* evita warning de transform null */
734
+ opacity: ${config.interactiveOpacity};
735
+ transform: translate3d(0px, 0px, 0);
641
736
  }
642
737
 
643
- @keyframes cc-circle {
738
+ @keyframes cc-rainbow-circle {
644
739
  0% { transform: rotate(0deg); }
645
740
  50% { transform: rotate(180deg); }
646
741
  100% { transform: rotate(360deg); }
647
742
  }
648
- @keyframes cc-bounceV {
743
+
744
+ @keyframes cc-rainbow-bounce-v {
649
745
  0% { transform: translateY(-50%); }
650
746
  50% { transform: translateY(50%); }
651
747
  100% { transform: translateY(-50%); }
652
748
  }
653
749
 
654
750
  @media (prefers-reduced-motion: reduce) {
655
- .cc-g1, .cc-g2, .cc-g3 { animation: none !important; }
751
+ .cc-rainbow-g1, .cc-rainbow-g2, .cc-rainbow-g3 {
752
+ animation: none !important;
753
+ }
754
+ .cc-rainbow-interactive {
755
+ opacity: 0.35;
756
+ }
656
757
  }
657
758
  ` })
658
759
  ] });
@@ -661,280 +762,439 @@ var BackgroundRainbow = () => {
661
762
  // src/components/cupcode/BackgroundStars.tsx
662
763
  var import_react2 = require("react");
663
764
  var import_jsx_runtime4 = require("react/jsx-runtime");
765
+ var TWO_PI = Math.PI * 2;
664
766
  var rand = (a, b) => a + Math.random() * (b - a);
665
767
  var choice = (arr) => arr[Math.random() * arr.length | 0];
666
- function hexToRgb(hex) {
667
- const c = hex.replace("#", "");
668
- const n = parseInt(c.length === 3 ? c.split("").map((x) => x + x).join("") : c, 16);
669
- return { r: n >> 16 & 255, g: n >> 8 & 255, b: n & 255 };
768
+ function createCanvas(width, height) {
769
+ const canvas = document.createElement("canvas");
770
+ canvas.width = Math.max(1, Math.floor(width));
771
+ canvas.height = Math.max(1, Math.floor(height));
772
+ return canvas;
773
+ }
774
+ function createStarBaseSprite(size) {
775
+ const canvas = createCanvas(size, size);
776
+ const ctx = canvas.getContext("2d");
777
+ if (!ctx) return canvas;
778
+ const half = size / 2;
779
+ const gradient = ctx.createRadialGradient(half, half, 0, half, half, half);
780
+ gradient.addColorStop(0, "rgba(255,255,255,0.95)");
781
+ gradient.addColorStop(0.24, "rgba(255,255,255,0.72)");
782
+ gradient.addColorStop(0.54, "rgba(255,255,255,0.28)");
783
+ gradient.addColorStop(1, "rgba(0,0,0,0)");
784
+ ctx.fillStyle = gradient;
785
+ ctx.beginPath();
786
+ ctx.arc(half, half, half, 0, TWO_PI);
787
+ ctx.fill();
788
+ return canvas;
789
+ }
790
+ function tintSprite(base, color) {
791
+ const canvas = createCanvas(base.width, base.height);
792
+ const ctx = canvas.getContext("2d");
793
+ if (!ctx) return canvas;
794
+ ctx.drawImage(base, 0, 0);
795
+ ctx.globalCompositeOperation = "source-atop";
796
+ ctx.fillStyle = color;
797
+ ctx.fillRect(0, 0, base.width, base.height);
798
+ ctx.globalCompositeOperation = "source-over";
799
+ return canvas;
800
+ }
801
+ function createHaloSprite(size, color) {
802
+ const canvas = createCanvas(size, size);
803
+ const ctx = canvas.getContext("2d");
804
+ if (!ctx) return canvas;
805
+ const half = size / 2;
806
+ const gradient = ctx.createRadialGradient(half, half, 0, half, half, half);
807
+ gradient.addColorStop(0, color);
808
+ gradient.addColorStop(1, "rgba(0,0,0,0)");
809
+ ctx.fillStyle = gradient;
810
+ ctx.beginPath();
811
+ ctx.arc(half, half, half, 0, TWO_PI);
812
+ ctx.fill();
813
+ return canvas;
814
+ }
815
+ function createFlareSprite(size) {
816
+ const canvas = createCanvas(size * 4, size);
817
+ const ctx = canvas.getContext("2d");
818
+ if (!ctx) return canvas;
819
+ const centerY = size / 2;
820
+ const gradient = ctx.createLinearGradient(0, centerY, canvas.width, centerY);
821
+ gradient.addColorStop(0, "rgba(0,0,0,0)");
822
+ gradient.addColorStop(0.44, "rgba(41,5,40,0.92)");
823
+ gradient.addColorStop(0.56, "rgba(41,5,40,0.92)");
824
+ gradient.addColorStop(1, "rgba(0,0,0,0)");
825
+ ctx.fillStyle = gradient;
826
+ ctx.fillRect(0, (size - 4) / 2, canvas.width, 4);
827
+ return canvas;
828
+ }
829
+ function createCloudSprite(size, color) {
830
+ const canvas = createCanvas(size, size);
831
+ const ctx = canvas.getContext("2d");
832
+ if (!ctx) return canvas;
833
+ const center = size / 2;
834
+ const blobs = [
835
+ { x: center * 0.76, y: center * 0.86, r: center * 0.68 },
836
+ { x: center * 1.28, y: center * 0.94, r: center * 0.72 },
837
+ { x: center * 1.02, y: center * 1.28, r: center * 0.78 }
838
+ ];
839
+ for (const blob of blobs) {
840
+ const g = ctx.createRadialGradient(blob.x, blob.y, 0, blob.x, blob.y, blob.r);
841
+ g.addColorStop(0, color);
842
+ g.addColorStop(1, "rgba(0,0,0,0)");
843
+ ctx.fillStyle = g;
844
+ ctx.beginPath();
845
+ ctx.arc(blob.x, blob.y, blob.r, 0, TWO_PI);
846
+ ctx.fill();
847
+ }
848
+ return canvas;
849
+ }
850
+ function createCometHeadSprite(size) {
851
+ const canvas = createCanvas(size, size);
852
+ const ctx = canvas.getContext("2d");
853
+ if (!ctx) return canvas;
854
+ const half = size / 2;
855
+ const glowA = ctx.createRadialGradient(half, half, 0, half, half, half);
856
+ glowA.addColorStop(0, "rgba(255,255,255,0.96)");
857
+ glowA.addColorStop(0.3, "rgba(151,90,182,0.78)");
858
+ glowA.addColorStop(1, "rgba(0,0,0,0)");
859
+ ctx.fillStyle = glowA;
860
+ ctx.beginPath();
861
+ ctx.arc(half, half, half, 0, TWO_PI);
862
+ ctx.fill();
863
+ const glowB = ctx.createRadialGradient(half, half, 0, half, half, half * 0.56);
864
+ glowB.addColorStop(0, "rgba(255,255,255,0.95)");
865
+ glowB.addColorStop(1, "rgba(0,0,0,0)");
866
+ ctx.fillStyle = glowB;
867
+ ctx.beginPath();
868
+ ctx.arc(half, half, half * 0.56, 0, TWO_PI);
869
+ ctx.fill();
870
+ return canvas;
871
+ }
872
+ function createCometTailSprite(width, height) {
873
+ const canvas = createCanvas(width, height);
874
+ const ctx = canvas.getContext("2d");
875
+ if (!ctx) return canvas;
876
+ const center = height / 2;
877
+ const gradient = ctx.createLinearGradient(0, center, width, center);
878
+ gradient.addColorStop(0, "rgba(0,0,0,0)");
879
+ gradient.addColorStop(0.45, "rgba(124,91,187,0.55)");
880
+ gradient.addColorStop(0.8, "rgba(151,90,182,0.8)");
881
+ gradient.addColorStop(1, "rgba(255,255,255,0.96)");
882
+ ctx.fillStyle = gradient;
883
+ ctx.fillRect(0, center - 1, width, 2);
884
+ return canvas;
885
+ }
886
+ function drawHaloSprite(ctx, sprite, radius) {
887
+ if (radius <= 0.5) return;
888
+ const diameter = radius * 2;
889
+ ctx.drawImage(sprite, -radius, -radius, diameter, diameter);
670
890
  }
671
891
  function BackgroundStars() {
672
892
  const nebulaRef = (0, import_react2.useRef)(null);
673
893
  const starsRef = (0, import_react2.useRef)(null);
674
894
  (0, import_react2.useEffect)(() => {
675
- const w = window.innerWidth;
676
- const h = window.innerHeight;
677
895
  const nebulaCanvas = nebulaRef.current;
678
- const nebulaCtx = nebulaCanvas.getContext("2d", { alpha: true });
679
- nebulaCanvas.width = w;
680
- nebulaCanvas.height = h;
681
896
  const starsCanvas = starsRef.current;
682
- const starsCtx = starsCanvas.getContext("2d", { alpha: true });
683
- starsCanvas.width = w;
684
- starsCanvas.height = h;
685
- const palette = [
686
- "#ffffff",
687
- "#d7c8ff",
688
- "#7c5bbb",
689
- // roxo Cupcode
690
- "#b146ea",
691
- "#975ab6",
692
- // hover tone Cupcode
693
- "#ff8ad1"
897
+ if (!nebulaCanvas || !starsCanvas) return;
898
+ const nebulaCtx = nebulaCanvas.getContext("2d", { alpha: true, desynchronized: true });
899
+ const starsCtx = starsCanvas.getContext("2d", { alpha: true, desynchronized: true });
900
+ if (!nebulaCtx || !starsCtx) return;
901
+ const width = window.innerWidth;
902
+ const height = window.innerHeight;
903
+ const nav = navigator;
904
+ const reducedMotion = window.matchMedia("(prefers-reduced-motion: reduce)").matches;
905
+ const lowMemory = typeof nav.deviceMemory === "number" && nav.deviceMemory <= 4;
906
+ const lowCpu = typeof nav.hardwareConcurrency === "number" && nav.hardwareConcurrency <= 4;
907
+ const lowPowerDevice = lowMemory || lowCpu;
908
+ const nebulaScale = lowPowerDevice ? 0.48 : 0.62;
909
+ const nebulaWidth = Math.max(1, Math.floor(width * nebulaScale));
910
+ const nebulaHeight = Math.max(1, Math.floor(height * nebulaScale));
911
+ nebulaCanvas.width = nebulaWidth;
912
+ nebulaCanvas.height = nebulaHeight;
913
+ nebulaCanvas.style.width = `${width}px`;
914
+ nebulaCanvas.style.height = `${height}px`;
915
+ starsCanvas.width = width;
916
+ starsCanvas.height = height;
917
+ starsCanvas.style.width = `${width}px`;
918
+ starsCanvas.style.height = `${height}px`;
919
+ const palette = ["#ffffff", "#d7c8ff", "#7c5bbb", "#b146ea", "#975ab6", "#ff8ad1"];
920
+ const starSpriteSize = 96;
921
+ const halfStarSprite = starSpriteSize / 2;
922
+ const starBaseSprite = createStarBaseSprite(starSpriteSize);
923
+ const starSprites = /* @__PURE__ */ new Map();
924
+ for (const color of palette) {
925
+ starSprites.set(color, tintSprite(starBaseSprite, color));
926
+ }
927
+ const flareSprite = createFlareSprite(starSpriteSize);
928
+ const haloPink = createHaloSprite(160, "rgba(251,88,235,0.68)");
929
+ const haloPurple = createHaloSprite(160, "rgba(151,90,182,0.6)");
930
+ const haloIndigo = createHaloSprite(160, "rgba(124,91,187,0.54)");
931
+ const haloGlow = createHaloSprite(140, "rgba(151,90,182,0.32)");
932
+ const cloudColors = [
933
+ "rgba(65,105,225,0.18)",
934
+ "rgba(138,43,226,0.17)",
935
+ "rgba(255,20,147,0.16)",
936
+ "rgba(75,0,130,0.18)",
937
+ "rgba(147,112,219,0.17)",
938
+ "rgba(218,112,214,0.16)"
694
939
  ];
695
- const starSprite = document.createElement("canvas");
696
- const SPR = 128;
697
- starSprite.width = SPR;
698
- starSprite.height = SPR;
699
- const sprCtx = starSprite.getContext("2d");
700
- const grad = sprCtx.createRadialGradient(SPR / 2, SPR / 2, 0, SPR / 2, SPR / 2, SPR / 2);
701
- grad.addColorStop(0, "rgba(255,255,255,0.5)");
702
- grad.addColorStop(0.28, "rgba(255,255,255,0.4)");
703
- grad.addColorStop(0.36, "rgba(255,2,230,0.35)");
704
- grad.addColorStop(0.78, "rgba(255,255,255,0.0)");
705
- sprCtx.fillStyle = grad;
706
- sprCtx.beginPath();
707
- sprCtx.arc(SPR / 2, SPR / 2, SPR / 2, 0, Math.PI * 2);
708
- sprCtx.fill();
709
- const flareSprite = document.createElement("canvas");
710
- flareSprite.width = SPR * 4;
711
- flareSprite.height = SPR;
712
- const flareCtx = flareSprite.getContext("2d");
713
- const g2 = flareCtx.createLinearGradient(0, SPR / 2, flareSprite.width, SPR / 2);
714
- g2.addColorStop(0, "rgba(0,0,0,0)");
715
- g2.addColorStop(0.45, "rgba(41,5,40,0.98)");
716
- g2.addColorStop(0.55, "rgba(41,5,40,0.98)");
717
- g2.addColorStop(1, "rgba(0,0,0,0)");
718
- flareCtx.fillStyle = g2;
719
- flareCtx.filter = "blur(0.45px)";
720
- flareCtx.fillRect(0, (SPR - 4) / 2, flareSprite.width, 4);
721
- const off = document.createElement("canvas");
722
- off.width = w;
723
- off.height = h;
724
- const offCtx = off.getContext("2d");
725
- const bg = offCtx.createRadialGradient(w / 2, h / 2, 0, w / 2, h / 2, Math.max(w, h) / 2);
726
- bg.addColorStop(0, "#0c0d1d");
727
- bg.addColorStop(1, "#000000");
728
- offCtx.fillStyle = bg;
729
- offCtx.fillRect(0, 0, w, h);
730
- const colors = [
731
- "rgba(65,105,225,0.10)",
732
- "rgba(138,43,226,0.10)",
733
- "rgba(255,20,147,0.10)",
734
- "rgba(75,0,130,0.10)",
735
- "rgba(147,112,219,0.10)",
736
- "rgba(218,112,214,0.10)"
737
- ];
738
- function genCloud() {
739
- const r = rand(150, 450);
740
- const n = 12;
741
- const step = Math.PI * 2 / n;
742
- const pts = [];
743
- for (let i = 0; i <= n; i++) {
744
- const a = i * step;
745
- const dist = rand(0.5, 1);
746
- pts.push({ x: Math.cos(a) * r * dist, y: Math.sin(a) * r * dist });
747
- }
940
+ const cloudSprites = /* @__PURE__ */ new Map();
941
+ for (const color of cloudColors) {
942
+ cloudSprites.set(color, createCloudSprite(256, color));
943
+ }
944
+ const nebulaBackdrop = createCanvas(nebulaWidth, nebulaHeight);
945
+ const nebulaBackdropCtx = nebulaBackdrop.getContext("2d");
946
+ if (nebulaBackdropCtx) {
947
+ const bg = nebulaBackdropCtx.createRadialGradient(
948
+ nebulaWidth / 2,
949
+ nebulaHeight / 2,
950
+ 0,
951
+ nebulaWidth / 2,
952
+ nebulaHeight / 2,
953
+ Math.max(nebulaWidth, nebulaHeight) / 1.45
954
+ );
955
+ bg.addColorStop(0, "#0c0d1d");
956
+ bg.addColorStop(1, "#000000");
957
+ nebulaBackdropCtx.fillStyle = bg;
958
+ nebulaBackdropCtx.fillRect(0, 0, nebulaWidth, nebulaHeight);
959
+ }
960
+ const cloudCount = lowPowerDevice ? 5 : 8;
961
+ const clouds = Array.from({ length: cloudCount }).map(() => {
962
+ const color = choice(cloudColors);
748
963
  return {
749
- x: Math.random() * w,
750
- y: Math.random() * h,
751
- r,
752
- color: choice(colors),
753
- pts,
754
- angle: 0,
755
- speed: (Math.random() - 0.5) * 1e-3
964
+ x: Math.random() * nebulaWidth,
965
+ y: Math.random() * nebulaHeight,
966
+ size: rand(95, 230),
967
+ alpha: rand(0.65, 1),
968
+ sprite: cloudSprites.get(color),
969
+ angle: Math.random() * TWO_PI,
970
+ speed: rand(-5e-4, 5e-4),
971
+ pulseAmp: rand(0.03, 0.1),
972
+ pulsePhase: Math.random() * TWO_PI
756
973
  };
757
- }
758
- const clouds = Array.from({ length: 8 }, genCloud);
759
- function drawNebula(t) {
760
- nebulaCtx.clearRect(0, 0, w, h);
761
- nebulaCtx.drawImage(off, 0, 0);
762
- nebulaCtx.globalCompositeOperation = "screen";
763
- for (const c of clouds) {
764
- c.angle += c.speed;
765
- nebulaCtx.save();
766
- nebulaCtx.translate(c.x, c.y);
767
- nebulaCtx.rotate(c.angle);
768
- nebulaCtx.beginPath();
769
- nebulaCtx.moveTo(c.pts[0].x, c.pts[0].y);
770
- for (let i = 1; i < c.pts.length; i++) nebulaCtx.lineTo(c.pts[i].x, c.pts[i].y);
771
- nebulaCtx.closePath();
772
- const g = nebulaCtx.createRadialGradient(0, 0, 0, 0, 0, c.r);
773
- g.addColorStop(0, c.color);
774
- g.addColorStop(1, "rgba(0,0,0,0)");
775
- nebulaCtx.fillStyle = g;
776
- nebulaCtx.fill();
777
- nebulaCtx.restore();
778
- }
779
- nebulaCtx.globalCompositeOperation = "source-over";
780
- }
781
- const QUANTITY = 260;
782
- const stars = Array.from({ length: QUANTITY }).map(() => {
783
- const r = Math.random();
974
+ });
975
+ const areaFactor = Math.min(1.25, width * height / (1920 * 1080));
976
+ const baseStars = lowPowerDevice ? 105 : 170;
977
+ const quantity = Math.max(80, Math.min(220, Math.round(baseStars * areaFactor)));
978
+ const stars = Array.from({ length: quantity }).map(() => {
979
+ const bucket = Math.random();
784
980
  let size;
785
981
  let isHighlight = false;
786
- if (r < 0.25) size = rand(0.35, 0.95) * (w * 1e-3);
787
- else if (r < 0.97) size = rand(0.6, 1.8) * (w * 1e-3);
982
+ if (bucket < 0.25) size = rand(0.35, 0.95) * (width * 1e-3);
983
+ else if (bucket < 0.97) size = rand(0.6, 1.8) * (width * 1e-3);
788
984
  else {
789
- size = rand(1.8, 3.6) * (w * 1e-3);
985
+ size = rand(1.8, 3.2) * (width * 1e-3);
790
986
  isHighlight = true;
791
987
  }
792
- const twMs = rand(5e3, 35e3);
988
+ const twinkleDur = rand(5500, 32e3);
989
+ const sparkDur = rand(650, 1100);
990
+ const color = choice(palette);
793
991
  return {
794
- x: Math.random() * w,
795
- y: Math.random() * h,
796
- size: Math.max(1, size),
797
- color: choice(palette),
992
+ x: Math.random() * width,
993
+ y: Math.random() * height,
994
+ size: Math.max(0.8, size),
798
995
  isHighlight,
799
- driftDx: rand(-6e-3, 6e-3) * w,
800
- // ~ -0.6..0.6vw aproximado em px
801
- driftDy: rand(-6e-3, 6e-3) * h,
802
- driftDur: rand(5e4, 9e4),
996
+ sprite: starSprites.get(color),
997
+ driftDx: rand(-6e-3, 6e-3) * width,
998
+ driftDy: rand(-6e-3, 6e-3) * height,
999
+ driftInvDur: 1 / rand(5e4, 9e4),
803
1000
  scaleTo: rand(0.9, 1.12),
804
- baseOpacity: rand(0.85, 1),
805
- intensity: rand(1, 1.6),
806
- twinkleDur: twMs,
807
- twinkleDelay: rand(0, 25e3),
808
- sparkDur: rand(600, 1e3),
1001
+ baseOpacity: rand(0.82, 1),
1002
+ intensity: rand(0.95, 1.5),
1003
+ twinkleFreq: TWO_PI / twinkleDur,
1004
+ twinkleDelay: rand(0, 24e3),
1005
+ sparkInvDur: 1 / sparkDur,
809
1006
  sparkDelay: rand(0, 1200),
810
- phase: Math.random() * Math.PI * 2
1007
+ phase: Math.random() * TWO_PI
811
1008
  };
812
1009
  });
813
- function tintMultiplier(hex) {
814
- const { r, g, b } = hexToRgb(hex);
815
- return [r / 255, g / 255, b / 255];
816
- }
1010
+ const cometHeadSprite = createCometHeadSprite(90);
1011
+ const cometTailSprite = createCometTailSprite(256, 8);
817
1012
  const comets = [];
818
- function spawnComet() {
819
- const angle = Math.random() * Math.PI * 2;
820
- const len = rand(80, 160);
821
- const dur = rand(1400, 2200);
822
- const x = Math.random() * w;
823
- const y = Math.random() * h;
824
- comets.push({ x, y, angle, len, life: 0, t0: performance.now(), dur });
825
- }
826
- let lastComet = performance.now();
827
- let raf = 0;
828
- function draw(t) {
829
- drawNebula(t);
830
- starsCtx.clearRect(0, 0, w, h);
1013
+ const spawnComet = (now) => {
1014
+ comets.push({
1015
+ x: Math.random() * width,
1016
+ y: Math.random() * height,
1017
+ angle: Math.random() * TWO_PI,
1018
+ len: rand(80, 160),
1019
+ t0: now,
1020
+ dur: rand(1400, 2200)
1021
+ });
1022
+ };
1023
+ const drawNebula = (now) => {
1024
+ nebulaCtx.clearRect(0, 0, nebulaWidth, nebulaHeight);
1025
+ nebulaCtx.drawImage(nebulaBackdrop, 0, 0);
1026
+ nebulaCtx.globalCompositeOperation = "screen";
1027
+ for (const cloud of clouds) {
1028
+ cloud.angle += cloud.speed;
1029
+ const pulse = 1 + cloud.pulseAmp * Math.sin(now * 2e-4 + cloud.pulsePhase);
1030
+ const radius = cloud.size * pulse;
1031
+ nebulaCtx.save();
1032
+ nebulaCtx.translate(cloud.x, cloud.y);
1033
+ nebulaCtx.rotate(cloud.angle);
1034
+ nebulaCtx.globalAlpha = cloud.alpha;
1035
+ nebulaCtx.drawImage(cloud.sprite, -radius, -radius, radius * 2, radius * 2);
1036
+ nebulaCtx.restore();
1037
+ }
1038
+ nebulaCtx.globalCompositeOperation = "source-over";
1039
+ nebulaCtx.globalAlpha = 1;
1040
+ };
1041
+ const drawComets = (now) => {
1042
+ for (let i = comets.length - 1; i >= 0; i--) {
1043
+ const comet = comets[i];
1044
+ const p = (now - comet.t0) / comet.dur;
1045
+ if (p >= 1) {
1046
+ comets.splice(i, 1);
1047
+ continue;
1048
+ }
1049
+ const ease = p < 0.5 ? p * 2 : 1 - (p - 0.5) * 2;
1050
+ const dx = Math.cos(comet.angle) * comet.len * 6.8 * p;
1051
+ const dy = Math.sin(comet.angle) * comet.len * 6.8 * p;
1052
+ starsCtx.save();
1053
+ starsCtx.translate(comet.x + dx, comet.y + dy);
1054
+ starsCtx.rotate(comet.angle);
1055
+ starsCtx.globalAlpha = 0.2 + 0.8 * ease;
1056
+ starsCtx.drawImage(cometHeadSprite, -14, -14, 28, 28);
1057
+ starsCtx.globalAlpha = 0.25 + 0.65 * ease;
1058
+ starsCtx.drawImage(cometTailSprite, -comet.len, -3, comet.len, 6);
1059
+ starsCtx.globalAlpha = 0.45 * ease;
1060
+ starsCtx.drawImage(cometTailSprite, 0, -2, Math.min(24, comet.len * 0.24), 4);
1061
+ starsCtx.restore();
1062
+ }
1063
+ };
1064
+ const drawStars = (now) => {
1065
+ starsCtx.clearRect(0, 0, width, height);
831
1066
  starsCtx.globalCompositeOperation = "screen";
832
- for (const s of stars) {
833
- const driftP = Math.min(1, t % s.driftDur / s.driftDur);
834
- const sx = s.x + s.driftDx * driftP;
835
- const sy = s.y + s.driftDy * driftP;
836
- const sc = 1 + (s.scaleTo - 1) * driftP;
837
- const twLerp = (Math.sin((t + s.twinkleDelay) / s.twinkleDur * Math.PI * 2 + s.phase) + 1) * 0.5;
838
- const twPeak = 0.6 + 0.4 * twLerp;
839
- const sparkCycle = (t + s.sparkDelay) % s.sparkDur / s.sparkDur;
1067
+ for (const star of stars) {
1068
+ const drift = now * star.driftInvDur % 1;
1069
+ const sx = star.x + star.driftDx * drift;
1070
+ const sy = star.y + star.driftDy * drift;
1071
+ const scaleByDrift = 1 + (star.scaleTo - 1) * drift;
1072
+ const twinkle = (Math.sin((now + star.twinkleDelay) * star.twinkleFreq + star.phase) + 1) * 0.5;
1073
+ const twinklePeak = 0.58 + 0.42 * twinkle;
1074
+ const sparkCycle = (now + star.sparkDelay) * star.sparkInvDur % 1;
840
1075
  const sparkBoost = sparkCycle < 0.15 ? sparkCycle / 0.15 : sparkCycle < 0.45 ? 1 - (sparkCycle - 0.15) / 0.3 : 0;
841
1076
  const sparkScale = 1 + 0.28 * sparkBoost;
842
- const glow = 0.38 + 0.2 * (0.5 + 0.5 * Math.sin(t * 2e-3 + s.phase));
843
- const opacity = s.baseOpacity * twPeak;
844
- const k = s.intensity * (0.8 + 0.4 * sparkBoost);
845
- const size = s.size * sc * sparkScale;
846
- const [tr, tg, tb] = tintMultiplier(s.color);
1077
+ const glow = 0.38 + 0.2 * (0.5 + 0.5 * Math.sin(now * 2e-3 + star.phase));
1078
+ const opacity = star.baseOpacity * twinklePeak;
1079
+ const intensity = star.intensity * (0.82 + 0.38 * sparkBoost);
1080
+ const size = star.size * scaleByDrift * sparkScale;
847
1081
  starsCtx.save();
848
1082
  starsCtx.globalAlpha = opacity;
849
1083
  starsCtx.translate(sx, sy);
850
- starsCtx.scale(size / SPR, size / SPR);
851
- starsCtx.drawImage(starSprite, -SPR / 2, -SPR / 2);
852
- starsCtx.globalCompositeOperation = "multiply";
853
- starsCtx.fillStyle = `rgba(${tr * 255 | 0}, ${tg * 255 | 0}, ${tb * 255 | 0}, ${0.75})`;
854
- starsCtx.fillRect(-SPR / 2, -SPR / 2, SPR, SPR);
855
- starsCtx.globalCompositeOperation = "screen";
856
- const halo1 = size * 4.2 * k;
857
- const halo2 = size * 7.2 * k;
858
- const halo3 = size * 10.8 * k;
859
- drawHalo(starsCtx, 0, 0, halo1, "rgba(251,88,235,0.65)");
860
- drawHalo(starsCtx, 0, 0, halo2, "rgba(151,90,182,0.58)");
861
- drawHalo(starsCtx, 0, 0, halo3, "rgba(124,91,187,0.52)");
862
- const gp = size * (1.8 + glow);
863
- drawHalo(starsCtx, 0, 0, gp, "rgba(151,90,182,0.28)");
864
- if (s.isHighlight) {
1084
+ starsCtx.scale(size / starSpriteSize, size / starSpriteSize);
1085
+ starsCtx.drawImage(star.sprite, -halfStarSprite, -halfStarSprite);
1086
+ drawHaloSprite(starsCtx, haloPink, size * 4.1 * intensity);
1087
+ drawHaloSprite(starsCtx, haloPurple, size * 6.9 * intensity);
1088
+ drawHaloSprite(starsCtx, haloIndigo, size * 10.2 * intensity);
1089
+ drawHaloSprite(starsCtx, haloGlow, size * (1.8 + glow));
1090
+ if (star.isHighlight) {
865
1091
  starsCtx.globalAlpha = opacity * (0.35 + 0.65 * sparkBoost);
866
- starsCtx.rotate(0);
867
- starsCtx.drawImage(flareSprite, -2 * SPR, -SPR / 2, 4 * SPR, SPR);
1092
+ starsCtx.drawImage(flareSprite, -2 * starSpriteSize, -halfStarSprite, 4 * starSpriteSize, starSpriteSize);
868
1093
  starsCtx.rotate(Math.PI / 2);
869
- starsCtx.drawImage(flareSprite, -2 * SPR, -SPR / 2, 4 * SPR, SPR);
1094
+ starsCtx.drawImage(flareSprite, -2 * starSpriteSize, -halfStarSprite, 4 * starSpriteSize, starSpriteSize);
870
1095
  }
871
1096
  starsCtx.restore();
872
1097
  }
873
- if (t - lastComet > rand(3200, 6800)) {
874
- spawnComet();
875
- lastComet = t;
876
- }
877
- drawComets(starsCtx, comets, t);
878
1098
  starsCtx.globalCompositeOperation = "source-over";
879
- raf = requestAnimationFrame(draw);
880
- }
881
- function drawHalo(ctx, x, y, r, color) {
882
- if (r <= 0.5) return;
883
- const g = ctx.createRadialGradient(x, y, 0, x, y, r);
884
- g.addColorStop(0, color);
885
- g.addColorStop(1, "rgba(0,0,0,0)");
886
- ctx.fillStyle = g;
887
- ctx.beginPath();
888
- ctx.arc(x, y, r, 0, Math.PI * 2);
889
- ctx.fill();
890
- }
891
- function drawComets(ctx, list, t) {
892
- for (let i = list.length - 1; i >= 0; i--) {
893
- const c = list[i];
894
- const p = (t - c.t0) / c.dur;
895
- if (p >= 1) {
896
- list.splice(i, 1);
897
- continue;
898
- }
899
- const ease = p < 0.5 ? p * 2 : 1 - (p - 0.5) * 2;
900
- const dx = Math.cos(c.angle) * c.len * 7 * p;
901
- const dy = Math.sin(c.angle) * c.len * 7 * p;
902
- const x = c.x + dx;
903
- const y = c.y + dy;
904
- ctx.save();
905
- ctx.translate(x, y);
906
- ctx.rotate(c.angle);
907
- ctx.globalAlpha = 0.2 + 0.8 * ease;
908
- drawHalo(ctx, 0, 0, 0.85, "rgba(255,255,255,1)");
909
- drawHalo(ctx, 0, 0, 8, "rgba(151,90,182,0.75)");
910
- drawHalo(ctx, 0, 0, 14, "rgba(124,91,187,0.6)");
911
- const tailLen = c.len;
912
- const grd = ctx.createLinearGradient(0, 0, -tailLen, 0);
913
- grd.addColorStop(0, "rgba(255,255,255,0.95)");
914
- grd.addColorStop(0.4, "rgba(151,90,182,0.75)");
915
- grd.addColorStop(0.75, "rgba(124,91,187,0.55)");
916
- grd.addColorStop(1, "rgba(0,0,0,0)");
917
- ctx.fillStyle = grd;
918
- ctx.fillRect(-tailLen, -1, tailLen, 2);
919
- const shine = ctx.createLinearGradient(0, 0, 20, 0);
920
- shine.addColorStop(0, "rgba(0,0,0,0)");
921
- shine.addColorStop(0.5, "rgba(255,255,255,0.95)");
922
- shine.addColorStop(1, "rgba(0,0,0,0)");
923
- ctx.globalAlpha = 0.6 * ease;
924
- ctx.fillStyle = shine;
925
- ctx.fillRect(0, -1, 20, 2);
926
- ctx.restore();
927
- }
928
- }
929
- raf = requestAnimationFrame(draw);
930
- return () => cancelAnimationFrame(raf);
1099
+ };
1100
+ let raf = 0;
1101
+ let running = false;
1102
+ let disposed = false;
1103
+ let lastFrame = 0;
1104
+ let lastNebulaFrame = 0;
1105
+ let nextCometAt = performance.now() + rand(3200, 6800);
1106
+ const minFrameMs = lowPowerDevice ? 22 : 16;
1107
+ const nebulaFrameMs = lowPowerDevice ? 85 : 55;
1108
+ const isDarkMode = () => document.documentElement.classList.contains("dark");
1109
+ const clearCanvases = () => {
1110
+ starsCtx.clearRect(0, 0, width, height);
1111
+ nebulaCtx.clearRect(0, 0, nebulaWidth, nebulaHeight);
1112
+ };
1113
+ const shouldRun = () => !reducedMotion && !document.hidden && isDarkMode();
1114
+ const stop = () => {
1115
+ running = false;
1116
+ if (raf) {
1117
+ cancelAnimationFrame(raf);
1118
+ raf = 0;
1119
+ }
1120
+ };
1121
+ const frame = (now) => {
1122
+ if (!running || disposed) return;
1123
+ if (now - lastFrame < minFrameMs) {
1124
+ raf = requestAnimationFrame(frame);
1125
+ return;
1126
+ }
1127
+ lastFrame = now;
1128
+ if (now - lastNebulaFrame >= nebulaFrameMs) {
1129
+ drawNebula(now);
1130
+ lastNebulaFrame = now;
1131
+ }
1132
+ drawStars(now);
1133
+ if (now >= nextCometAt) {
1134
+ spawnComet(now);
1135
+ nextCometAt = now + rand(3200, 6800);
1136
+ }
1137
+ drawComets(now);
1138
+ raf = requestAnimationFrame(frame);
1139
+ };
1140
+ const start = () => {
1141
+ if (running || disposed || !shouldRun()) return;
1142
+ running = true;
1143
+ lastFrame = 0;
1144
+ lastNebulaFrame = 0;
1145
+ raf = requestAnimationFrame(frame);
1146
+ };
1147
+ const onVisibilityOrTheme = () => {
1148
+ if (shouldRun()) start();
1149
+ else {
1150
+ stop();
1151
+ clearCanvases();
1152
+ }
1153
+ };
1154
+ if (reducedMotion) {
1155
+ if (isDarkMode()) {
1156
+ drawNebula(0);
1157
+ drawStars(0);
1158
+ } else {
1159
+ clearCanvases();
1160
+ }
1161
+ return () => {
1162
+ stop();
1163
+ };
1164
+ }
1165
+ const observer = new MutationObserver(onVisibilityOrTheme);
1166
+ observer.observe(document.documentElement, { attributes: true, attributeFilter: ["class"] });
1167
+ document.addEventListener("visibilitychange", onVisibilityOrTheme);
1168
+ onVisibilityOrTheme();
1169
+ return () => {
1170
+ disposed = true;
1171
+ stop();
1172
+ observer.disconnect();
1173
+ document.removeEventListener("visibilitychange", onVisibilityOrTheme);
1174
+ };
931
1175
  }, []);
932
1176
  return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
933
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("canvas", { ref: nebulaRef, className: "fixed inset-0 z-0 pointer-events-none hidden dark:block" }),
934
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("canvas", { ref: starsRef, className: "fixed inset-0 z-10 pointer-events-none hidden dark:block" }),
1177
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
1178
+ "canvas",
1179
+ {
1180
+ ref: nebulaRef,
1181
+ "aria-hidden": "true",
1182
+ className: "cc-background-stars-canvas fixed inset-0 z-0 pointer-events-none hidden dark:block"
1183
+ }
1184
+ ),
1185
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
1186
+ "canvas",
1187
+ {
1188
+ ref: starsRef,
1189
+ "aria-hidden": "true",
1190
+ className: "cc-background-stars-canvas fixed inset-0 z-10 pointer-events-none hidden dark:block"
1191
+ }
1192
+ ),
935
1193
  /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("style", { children: `
936
1194
  @media (prefers-reduced-motion: reduce) {
937
- canvas { display: none !important; }
1195
+ .cc-background-stars-canvas {
1196
+ display: none !important;
1197
+ }
938
1198
  }
939
1199
  ` })
940
1200
  ] });
@@ -1072,13 +1332,13 @@ var TagGroup = ({
1072
1332
  var import_react5 = require("react");
1073
1333
 
1074
1334
  // src/components/ui/tooltip.tsx
1075
- var React4 = __toESM(require("react"), 1);
1335
+ var React3 = __toESM(require("react"), 1);
1076
1336
  var TooltipPrimitive = __toESM(require("@radix-ui/react-tooltip"), 1);
1077
1337
  var import_jsx_runtime8 = require("react/jsx-runtime");
1078
1338
  var TooltipProvider = TooltipPrimitive.Provider;
1079
1339
  var Tooltip = TooltipPrimitive.Root;
1080
1340
  var TooltipTrigger = TooltipPrimitive.Trigger;
1081
- var TooltipContent = React4.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1341
+ var TooltipContent = React3.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1082
1342
  TooltipPrimitive.Content,
1083
1343
  {
1084
1344
  ref,
@@ -1203,6 +1463,14 @@ var import_react6 = require("react");
1203
1463
 
1204
1464
  // src/lib/runtimeEnv.ts
1205
1465
  var import_meta = {};
1466
+ var CUPCODE_APP_VERSION_ENV_KEY = "CUPCODE_APP_VERSION";
1467
+ var CUPCODE_APP_VERSION_ENV_KEYS = [
1468
+ CUPCODE_APP_VERSION_ENV_KEY,
1469
+ "VITE_APP_VERSION",
1470
+ "APP_VERSION",
1471
+ "NEXT_PUBLIC_APP_VERSION",
1472
+ "REACT_APP_VERSION"
1473
+ ];
1206
1474
  var runtimeStore = {};
1207
1475
  var normalizeValue = (value) => {
1208
1476
  if (value === null || typeof value === "undefined") return void 0;
@@ -1264,6 +1532,15 @@ var isRuntimeDev = () => {
1264
1532
  const mode = ((_c = (_b7 = getRuntimeEnv("MODE")) != null ? _b7 : getRuntimeEnv("NODE_ENV")) != null ? _c : "").toLowerCase();
1265
1533
  return mode === "development";
1266
1534
  };
1535
+ var resolveCupcodeAppVersion = (explicitVersion) => {
1536
+ const normalizedExplicitVersion = normalizeValue(explicitVersion);
1537
+ if (normalizedExplicitVersion) return normalizedExplicitVersion;
1538
+ for (const key of CUPCODE_APP_VERSION_ENV_KEYS) {
1539
+ const value = getRuntimeEnv(key);
1540
+ if (value) return value;
1541
+ }
1542
+ return void 0;
1543
+ };
1267
1544
 
1268
1545
  // src/utils/parseAssetId.ts
1269
1546
  var UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
@@ -2290,9 +2567,9 @@ var HeroTitle = ({
2290
2567
  };
2291
2568
 
2292
2569
  // src/components/cupcode/InputField.tsx
2293
- var React7 = __toESM(require("react"), 1);
2570
+ var React6 = __toESM(require("react"), 1);
2294
2571
  var import_jsx_runtime16 = require("react/jsx-runtime");
2295
- var InputField = React7.forwardRef(
2572
+ var InputField = React6.forwardRef(
2296
2573
  ({ className, type, label, error, leftIcon, rightIcon, ...props }, ref) => {
2297
2574
  return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "cc-stack space-2 w-full", children: [
2298
2575
  label && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("label", { className: "text-sm font-semibold text-cupcode-ink", children: label }),
@@ -2599,7 +2876,7 @@ var LoadingScreen = ({
2599
2876
  };
2600
2877
 
2601
2878
  // src/components/cupcode/ModalCupcode.tsx
2602
- var React9 = __toESM(require("react"), 1);
2879
+ var React8 = __toESM(require("react"), 1);
2603
2880
  var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
2604
2881
  var import_lucide_react4 = require("lucide-react");
2605
2882
  var import_jsx_runtime20 = require("react/jsx-runtime");
@@ -2607,7 +2884,7 @@ var Modal = DialogPrimitive.Root;
2607
2884
  var ModalTrigger = DialogPrimitive.Trigger;
2608
2885
  var ModalPortal = DialogPrimitive.Portal;
2609
2886
  var ModalClose = DialogPrimitive.Close;
2610
- var ModalOverlay = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2887
+ var ModalOverlay = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2611
2888
  DialogPrimitive.Overlay,
2612
2889
  {
2613
2890
  ref,
@@ -2620,7 +2897,7 @@ var ModalOverlay = React9.forwardRef(({ className, ...props }, ref) => /* @__PUR
2620
2897
  }
2621
2898
  ));
2622
2899
  ModalOverlay.displayName = DialogPrimitive.Overlay.displayName;
2623
- var ModalContent = React9.forwardRef(({ className, children, size = "md", ...props }, ref) => {
2900
+ var ModalContent = React8.forwardRef(({ className, children, size = "md", ...props }, ref) => {
2624
2901
  const sizeClasses2 = {
2625
2902
  sm: "max-w-sm",
2626
2903
  md: "max-w-md",
@@ -2676,7 +2953,7 @@ var ModalFooter = ({
2676
2953
  }
2677
2954
  );
2678
2955
  ModalFooter.displayName = "ModalFooter";
2679
- var ModalTitle = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2956
+ var ModalTitle = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2680
2957
  DialogPrimitive.Title,
2681
2958
  {
2682
2959
  ref,
@@ -2685,7 +2962,7 @@ var ModalTitle = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE_
2685
2962
  }
2686
2963
  ));
2687
2964
  ModalTitle.displayName = DialogPrimitive.Title.displayName;
2688
- var ModalDescription = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2965
+ var ModalDescription = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2689
2966
  DialogPrimitive.Description,
2690
2967
  {
2691
2968
  ref,
@@ -2696,7 +2973,7 @@ var ModalDescription = React9.forwardRef(({ className, ...props }, ref) => /* @_
2696
2973
  ModalDescription.displayName = DialogPrimitive.Description.displayName;
2697
2974
 
2698
2975
  // src/components/cupcode/NavbarCupcode.tsx
2699
- var React10 = __toESM(require("react"), 1);
2976
+ var React9 = __toESM(require("react"), 1);
2700
2977
  var import_lucide_react5 = require("lucide-react");
2701
2978
  var import_jsx_runtime21 = require("react/jsx-runtime");
2702
2979
  var NavbarCupcode = ({
@@ -2705,10 +2982,10 @@ var NavbarCupcode = ({
2705
2982
  actions,
2706
2983
  className
2707
2984
  }) => {
2708
- const [isOpen, setIsOpen] = React10.useState(false);
2709
- const navRef = React10.useRef(null);
2710
- const mobileMenuId = React10.useId();
2711
- React10.useEffect(() => {
2985
+ const [isOpen, setIsOpen] = React9.useState(false);
2986
+ const navRef = React9.useRef(null);
2987
+ const mobileMenuId = React9.useId();
2988
+ React9.useEffect(() => {
2712
2989
  if (!isOpen) return;
2713
2990
  const handlePointerDown = (event) => {
2714
2991
  var _a74;
@@ -2730,7 +3007,7 @@ var NavbarCupcode = ({
2730
3007
  document.removeEventListener("keydown", handleEscape);
2731
3008
  };
2732
3009
  }, [isOpen]);
2733
- React10.useEffect(() => {
3010
+ React9.useEffect(() => {
2734
3011
  if (!isOpen) return;
2735
3012
  const { style } = document.body;
2736
3013
  const previousOverflow = style.overflow;
@@ -2739,7 +3016,7 @@ var NavbarCupcode = ({
2739
3016
  style.overflow = previousOverflow;
2740
3017
  };
2741
3018
  }, [isOpen]);
2742
- React10.useEffect(() => {
3019
+ React9.useEffect(() => {
2743
3020
  const handleResize = () => {
2744
3021
  if (window.innerWidth >= 768) {
2745
3022
  setIsOpen(false);
@@ -2910,14 +3187,14 @@ var import_lucide_react10 = require("lucide-react");
2910
3187
  var import_react18 = require("react");
2911
3188
 
2912
3189
  // src/components/ui/select.tsx
2913
- var React11 = __toESM(require("react"), 1);
3190
+ var React10 = __toESM(require("react"), 1);
2914
3191
  var SelectPrimitive = __toESM(require("@radix-ui/react-select"), 1);
2915
3192
  var import_lucide_react6 = require("lucide-react");
2916
3193
  var import_jsx_runtime23 = require("react/jsx-runtime");
2917
3194
  var Select = SelectPrimitive.Root;
2918
3195
  var SelectGroup = SelectPrimitive.Group;
2919
3196
  var SelectValue = SelectPrimitive.Value;
2920
- var SelectTrigger = React11.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
3197
+ var SelectTrigger = React10.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
2921
3198
  SelectPrimitive.Trigger,
2922
3199
  {
2923
3200
  ref,
@@ -2933,7 +3210,7 @@ var SelectTrigger = React11.forwardRef(({ className, children, ...props }, ref)
2933
3210
  }
2934
3211
  ));
2935
3212
  SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
2936
- var SelectScrollUpButton = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
3213
+ var SelectScrollUpButton = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2937
3214
  SelectPrimitive.ScrollUpButton,
2938
3215
  {
2939
3216
  ref,
@@ -2943,7 +3220,7 @@ var SelectScrollUpButton = React11.forwardRef(({ className, ...props }, ref) =>
2943
3220
  }
2944
3221
  ));
2945
3222
  SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
2946
- var SelectScrollDownButton = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
3223
+ var SelectScrollDownButton = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2947
3224
  SelectPrimitive.ScrollDownButton,
2948
3225
  {
2949
3226
  ref,
@@ -2953,7 +3230,7 @@ var SelectScrollDownButton = React11.forwardRef(({ className, ...props }, ref) =
2953
3230
  }
2954
3231
  ));
2955
3232
  SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
2956
- var SelectContent = React11.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(SelectPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
3233
+ var SelectContent = React10.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(SelectPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
2957
3234
  SelectPrimitive.Content,
2958
3235
  {
2959
3236
  ref,
@@ -2981,9 +3258,9 @@ var SelectContent = React11.forwardRef(({ className, children, position = "poppe
2981
3258
  }
2982
3259
  ) }));
2983
3260
  SelectContent.displayName = SelectPrimitive.Content.displayName;
2984
- var SelectLabel = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(SelectPrimitive.Label, { ref, className: cn("py-1.5 pl-8 pr-2 text-sm font-semibold", className), ...props }));
3261
+ var SelectLabel = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(SelectPrimitive.Label, { ref, className: cn("py-1.5 pl-8 pr-2 text-sm font-semibold", className), ...props }));
2985
3262
  SelectLabel.displayName = SelectPrimitive.Label.displayName;
2986
- var SelectItem = React11.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
3263
+ var SelectItem = React10.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
2987
3264
  SelectPrimitive.Item,
2988
3265
  {
2989
3266
  ref,
@@ -2999,14 +3276,14 @@ var SelectItem = React11.forwardRef(({ className, children, ...props }, ref) =>
2999
3276
  }
3000
3277
  ));
3001
3278
  SelectItem.displayName = SelectPrimitive.Item.displayName;
3002
- var SelectSeparator = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(SelectPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-muted", className), ...props }));
3279
+ var SelectSeparator = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(SelectPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-muted", className), ...props }));
3003
3280
  SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
3004
3281
 
3005
3282
  // src/components/ui/avatar.tsx
3006
- var React12 = __toESM(require("react"), 1);
3283
+ var React11 = __toESM(require("react"), 1);
3007
3284
  var AvatarPrimitive2 = __toESM(require("@radix-ui/react-avatar"), 1);
3008
3285
  var import_jsx_runtime24 = require("react/jsx-runtime");
3009
- var Avatar2 = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3286
+ var Avatar2 = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3010
3287
  AvatarPrimitive2.Root,
3011
3288
  {
3012
3289
  ref,
@@ -3015,7 +3292,7 @@ var Avatar2 = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__
3015
3292
  }
3016
3293
  ));
3017
3294
  Avatar2.displayName = AvatarPrimitive2.Root.displayName;
3018
- var AvatarImage2 = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3295
+ var AvatarImage2 = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3019
3296
  AvatarPrimitive2.Image,
3020
3297
  {
3021
3298
  ref,
@@ -3024,7 +3301,7 @@ var AvatarImage2 = React12.forwardRef(({ className, ...props }, ref) => /* @__PU
3024
3301
  }
3025
3302
  ));
3026
3303
  AvatarImage2.displayName = AvatarPrimitive2.Image.displayName;
3027
- var AvatarFallback2 = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3304
+ var AvatarFallback2 = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3028
3305
  AvatarPrimitive2.Fallback,
3029
3306
  {
3030
3307
  ref,
@@ -3035,7 +3312,7 @@ var AvatarFallback2 = React12.forwardRef(({ className, ...props }, ref) => /* @_
3035
3312
  AvatarFallback2.displayName = AvatarPrimitive2.Fallback.displayName;
3036
3313
 
3037
3314
  // src/components/ui/dropdown-menu.tsx
3038
- var React13 = __toESM(require("react"), 1);
3315
+ var React12 = __toESM(require("react"), 1);
3039
3316
  var DropdownMenuPrimitive = __toESM(require("@radix-ui/react-dropdown-menu"), 1);
3040
3317
  var import_lucide_react7 = require("lucide-react");
3041
3318
  var import_jsx_runtime25 = require("react/jsx-runtime");
@@ -3045,7 +3322,7 @@ var DropdownMenuGroup = DropdownMenuPrimitive.Group;
3045
3322
  var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
3046
3323
  var DropdownMenuSub = DropdownMenuPrimitive.Sub;
3047
3324
  var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
3048
- var DropdownMenuSubTrigger = React13.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
3325
+ var DropdownMenuSubTrigger = React12.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
3049
3326
  DropdownMenuPrimitive.SubTrigger,
3050
3327
  {
3051
3328
  ref,
@@ -3062,7 +3339,7 @@ var DropdownMenuSubTrigger = React13.forwardRef(({ className, inset, children, .
3062
3339
  }
3063
3340
  ));
3064
3341
  DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
3065
- var DropdownMenuSubContent = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3342
+ var DropdownMenuSubContent = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3066
3343
  DropdownMenuPrimitive.SubContent,
3067
3344
  {
3068
3345
  ref,
@@ -3074,7 +3351,7 @@ var DropdownMenuSubContent = React13.forwardRef(({ className, ...props }, ref) =
3074
3351
  }
3075
3352
  ));
3076
3353
  DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
3077
- var DropdownMenuContent = React13.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3354
+ var DropdownMenuContent = React12.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3078
3355
  DropdownMenuPrimitive.Content,
3079
3356
  {
3080
3357
  ref,
@@ -3087,7 +3364,7 @@ var DropdownMenuContent = React13.forwardRef(({ className, sideOffset = 4, ...pr
3087
3364
  }
3088
3365
  ) }));
3089
3366
  DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
3090
- var DropdownMenuItem = React13.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3367
+ var DropdownMenuItem = React12.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3091
3368
  DropdownMenuPrimitive.Item,
3092
3369
  {
3093
3370
  ref,
@@ -3100,7 +3377,7 @@ var DropdownMenuItem = React13.forwardRef(({ className, inset, ...props }, ref)
3100
3377
  }
3101
3378
  ));
3102
3379
  DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
3103
- var DropdownMenuCheckboxItem = React13.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
3380
+ var DropdownMenuCheckboxItem = React12.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
3104
3381
  DropdownMenuPrimitive.CheckboxItem,
3105
3382
  {
3106
3383
  ref,
@@ -3117,7 +3394,7 @@ var DropdownMenuCheckboxItem = React13.forwardRef(({ className, children, checke
3117
3394
  }
3118
3395
  ));
3119
3396
  DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
3120
- var DropdownMenuRadioItem = React13.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
3397
+ var DropdownMenuRadioItem = React12.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
3121
3398
  DropdownMenuPrimitive.RadioItem,
3122
3399
  {
3123
3400
  ref,
@@ -3133,7 +3410,7 @@ var DropdownMenuRadioItem = React13.forwardRef(({ className, children, ...props
3133
3410
  }
3134
3411
  ));
3135
3412
  DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
3136
- var DropdownMenuLabel = React13.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3413
+ var DropdownMenuLabel = React12.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3137
3414
  DropdownMenuPrimitive.Label,
3138
3415
  {
3139
3416
  ref,
@@ -3142,7 +3419,7 @@ var DropdownMenuLabel = React13.forwardRef(({ className, inset, ...props }, ref)
3142
3419
  }
3143
3420
  ));
3144
3421
  DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
3145
- var DropdownMenuSeparator = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(DropdownMenuPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-muted", className), ...props }));
3422
+ var DropdownMenuSeparator = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(DropdownMenuPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-muted", className), ...props }));
3146
3423
  DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
3147
3424
  var DropdownMenuShortcut = ({ className, ...props }) => {
3148
3425
  return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
@@ -3150,11 +3427,11 @@ var DropdownMenuShortcut = ({ className, ...props }) => {
3150
3427
  DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
3151
3428
 
3152
3429
  // src/components/ui/alert-dialog.tsx
3153
- var React15 = __toESM(require("react"), 1);
3430
+ var React14 = __toESM(require("react"), 1);
3154
3431
  var AlertDialogPrimitive = __toESM(require("@radix-ui/react-alert-dialog"), 1);
3155
3432
 
3156
3433
  // src/components/ui/button.tsx
3157
- var React14 = __toESM(require("react"), 1);
3434
+ var React13 = __toESM(require("react"), 1);
3158
3435
  var import_react_slot = require("@radix-ui/react-slot");
3159
3436
  var import_class_variance_authority = require("class-variance-authority");
3160
3437
  var import_jsx_runtime26 = require("react/jsx-runtime");
@@ -3183,7 +3460,7 @@ var buttonVariants = (0, import_class_variance_authority.cva)(
3183
3460
  }
3184
3461
  }
3185
3462
  );
3186
- var Button = React14.forwardRef(
3463
+ var Button = React13.forwardRef(
3187
3464
  ({ className, variant, size, asChild = false, ...props }, ref) => {
3188
3465
  const Comp = asChild ? import_react_slot.Slot : "button";
3189
3466
  return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Comp, { className: cn(buttonVariants({ variant, size, className })), ref, ...props });
@@ -3196,7 +3473,7 @@ var import_jsx_runtime27 = require("react/jsx-runtime");
3196
3473
  var AlertDialog = AlertDialogPrimitive.Root;
3197
3474
  var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
3198
3475
  var AlertDialogPortal = AlertDialogPrimitive.Portal;
3199
- var AlertDialogOverlay = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3476
+ var AlertDialogOverlay = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3200
3477
  AlertDialogPrimitive.Overlay,
3201
3478
  {
3202
3479
  className: cn(
@@ -3208,7 +3485,7 @@ var AlertDialogOverlay = React15.forwardRef(({ className, ...props }, ref) => /*
3208
3485
  }
3209
3486
  ));
3210
3487
  AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
3211
- var AlertDialogContent = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(AlertDialogPortal, { children: [
3488
+ var AlertDialogContent = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(AlertDialogPortal, { children: [
3212
3489
  /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(AlertDialogOverlay, {}),
3213
3490
  /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3214
3491
  AlertDialogPrimitive.Content,
@@ -3227,13 +3504,13 @@ var AlertDialogHeader = ({ className, ...props }) => /* @__PURE__ */ (0, import_
3227
3504
  AlertDialogHeader.displayName = "AlertDialogHeader";
3228
3505
  var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
3229
3506
  AlertDialogFooter.displayName = "AlertDialogFooter";
3230
- var AlertDialogTitle = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(AlertDialogPrimitive.Title, { ref, className: cn("text-lg font-semibold", className), ...props }));
3507
+ var AlertDialogTitle = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(AlertDialogPrimitive.Title, { ref, className: cn("text-lg font-semibold", className), ...props }));
3231
3508
  AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
3232
- var AlertDialogDescription = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(AlertDialogPrimitive.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
3509
+ var AlertDialogDescription = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(AlertDialogPrimitive.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
3233
3510
  AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
3234
- var AlertDialogAction = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(AlertDialogPrimitive.Action, { ref, className: cn(buttonVariants(), className), ...props }));
3511
+ var AlertDialogAction = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(AlertDialogPrimitive.Action, { ref, className: cn(buttonVariants(), className), ...props }));
3235
3512
  AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
3236
- var AlertDialogCancel = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3513
+ var AlertDialogCancel = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3237
3514
  AlertDialogPrimitive.Cancel,
3238
3515
  {
3239
3516
  ref,
@@ -3244,7 +3521,7 @@ var AlertDialogCancel = React15.forwardRef(({ className, ...props }, ref) => /*
3244
3521
  AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
3245
3522
 
3246
3523
  // src/components/ui/dialog.tsx
3247
- var React16 = __toESM(require("react"), 1);
3524
+ var React15 = __toESM(require("react"), 1);
3248
3525
  var DialogPrimitive2 = __toESM(require("@radix-ui/react-dialog"), 1);
3249
3526
  var import_lucide_react8 = require("lucide-react");
3250
3527
  var import_jsx_runtime28 = require("react/jsx-runtime");
@@ -3252,7 +3529,7 @@ var Dialog = DialogPrimitive2.Root;
3252
3529
  var DialogTrigger = DialogPrimitive2.Trigger;
3253
3530
  var DialogPortal = DialogPrimitive2.Portal;
3254
3531
  var DialogClose = DialogPrimitive2.Close;
3255
- var DialogOverlay = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
3532
+ var DialogOverlay = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
3256
3533
  DialogPrimitive2.Overlay,
3257
3534
  {
3258
3535
  ref,
@@ -3264,7 +3541,7 @@ var DialogOverlay = React16.forwardRef(({ className, ...props }, ref) => /* @__P
3264
3541
  }
3265
3542
  ));
3266
3543
  DialogOverlay.displayName = DialogPrimitive2.Overlay.displayName;
3267
- var DialogContent = React16.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(DialogPortal, { children: [
3544
+ var DialogContent = React15.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(DialogPortal, { children: [
3268
3545
  /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(DialogOverlay, {}),
3269
3546
  /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
3270
3547
  DialogPrimitive2.Content,
@@ -3290,7 +3567,7 @@ var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_r
3290
3567
  DialogHeader.displayName = "DialogHeader";
3291
3568
  var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
3292
3569
  DialogFooter.displayName = "DialogFooter";
3293
- var DialogTitle = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
3570
+ var DialogTitle = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
3294
3571
  DialogPrimitive2.Title,
3295
3572
  {
3296
3573
  ref,
@@ -3299,14 +3576,14 @@ var DialogTitle = React16.forwardRef(({ className, ...props }, ref) => /* @__PUR
3299
3576
  }
3300
3577
  ));
3301
3578
  DialogTitle.displayName = DialogPrimitive2.Title.displayName;
3302
- var DialogDescription = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(DialogPrimitive2.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
3579
+ var DialogDescription = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(DialogPrimitive2.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
3303
3580
  DialogDescription.displayName = DialogPrimitive2.Description.displayName;
3304
3581
 
3305
3582
  // src/components/ui/switch.tsx
3306
- var React17 = __toESM(require("react"), 1);
3583
+ var React16 = __toESM(require("react"), 1);
3307
3584
  var SwitchPrimitives = __toESM(require("@radix-ui/react-switch"), 1);
3308
3585
  var import_jsx_runtime29 = require("react/jsx-runtime");
3309
- var Switch = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3586
+ var Switch = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3310
3587
  SwitchPrimitives.Root,
3311
3588
  {
3312
3589
  className: cn(
@@ -3328,7 +3605,7 @@ var Switch = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
3328
3605
  Switch.displayName = SwitchPrimitives.Root.displayName;
3329
3606
 
3330
3607
  // src/hooks/use-toast.ts
3331
- var React18 = __toESM(require("react"), 1);
3608
+ var React17 = __toESM(require("react"), 1);
3332
3609
  var TOAST_LIMIT = 1;
3333
3610
  var TOAST_REMOVE_DELAY = 1e6;
3334
3611
  var count = 0;
@@ -3427,8 +3704,8 @@ function toast({ ...props }) {
3427
3704
  };
3428
3705
  }
3429
3706
  function useToast() {
3430
- const [state, setState] = React18.useState(memoryState);
3431
- React18.useEffect(() => {
3707
+ const [state, setState] = React17.useState(memoryState);
3708
+ React17.useEffect(() => {
3432
3709
  listeners.push(setState);
3433
3710
  return () => {
3434
3711
  const index = listeners.indexOf(setState);
@@ -5014,9 +5291,9 @@ var TelescupVideo = ({
5014
5291
  };
5015
5292
 
5016
5293
  // src/components/ui/input.tsx
5017
- var React19 = __toESM(require("react"), 1);
5294
+ var React18 = __toESM(require("react"), 1);
5018
5295
  var import_jsx_runtime31 = require("react/jsx-runtime");
5019
- var Input = React19.forwardRef(
5296
+ var Input = React18.forwardRef(
5020
5297
  ({ className, type, ...props }, ref) => {
5021
5298
  return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
5022
5299
  "input",
@@ -5064,10 +5341,10 @@ function Skeleton2({ className, ...props }) {
5064
5341
  }
5065
5342
 
5066
5343
  // src/components/ui/scroll-area.tsx
5067
- var React20 = __toESM(require("react"), 1);
5344
+ var React19 = __toESM(require("react"), 1);
5068
5345
  var ScrollAreaPrimitive = __toESM(require("@radix-ui/react-scroll-area"), 1);
5069
5346
  var import_jsx_runtime34 = require("react/jsx-runtime");
5070
- var ScrollArea = React20.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
5347
+ var ScrollArea = React19.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
5071
5348
  ScrollAreaPrimitive.Root,
5072
5349
  {
5073
5350
  ref,
@@ -5083,7 +5360,7 @@ var ScrollArea = React20.forwardRef(({ className, children, ...props }, ref) =>
5083
5360
  }
5084
5361
  ));
5085
5362
  ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
5086
- var ScrollBar = React20.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
5363
+ var ScrollBar = React19.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
5087
5364
  ScrollAreaPrimitive.ScrollAreaScrollbar,
5088
5365
  {
5089
5366
  ref,
@@ -5673,10 +5950,10 @@ function useTelescupUploadQueue(options) {
5673
5950
  }
5674
5951
 
5675
5952
  // src/components/ui/progress.tsx
5676
- var React22 = __toESM(require("react"), 1);
5953
+ var React21 = __toESM(require("react"), 1);
5677
5954
  var ProgressPrimitive = __toESM(require("@radix-ui/react-progress"), 1);
5678
5955
  var import_jsx_runtime36 = require("react/jsx-runtime");
5679
- var Progress = React22.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
5956
+ var Progress = React21.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
5680
5957
  ProgressPrimitive.Root,
5681
5958
  {
5682
5959
  ref,
@@ -5864,11 +6141,11 @@ var TelescupUploader = ({
5864
6141
  };
5865
6142
 
5866
6143
  // src/components/ui/tabs.tsx
5867
- var React24 = __toESM(require("react"), 1);
6144
+ var React23 = __toESM(require("react"), 1);
5868
6145
  var TabsPrimitive = __toESM(require("@radix-ui/react-tabs"), 1);
5869
6146
  var import_jsx_runtime38 = require("react/jsx-runtime");
5870
6147
  var Tabs = TabsPrimitive.Root;
5871
- var TabsList = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
6148
+ var TabsList = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
5872
6149
  TabsPrimitive.List,
5873
6150
  {
5874
6151
  ref,
@@ -5880,7 +6157,7 @@ var TabsList = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__
5880
6157
  }
5881
6158
  ));
5882
6159
  TabsList.displayName = TabsPrimitive.List.displayName;
5883
- var TabsTrigger = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
6160
+ var TabsTrigger = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
5884
6161
  TabsPrimitive.Trigger,
5885
6162
  {
5886
6163
  ref,
@@ -5892,7 +6169,7 @@ var TabsTrigger = React24.forwardRef(({ className, ...props }, ref) => /* @__PUR
5892
6169
  }
5893
6170
  ));
5894
6171
  TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
5895
- var TabsContent = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
6172
+ var TabsContent = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
5896
6173
  TabsPrimitive.Content,
5897
6174
  {
5898
6175
  ref,
@@ -5906,7 +6183,7 @@ var TabsContent = React24.forwardRef(({ className, ...props }, ref) => /* @__PUR
5906
6183
  TabsContent.displayName = TabsPrimitive.Content.displayName;
5907
6184
 
5908
6185
  // src/components/ui/drawer.tsx
5909
- var React25 = __toESM(require("react"), 1);
6186
+ var React24 = __toESM(require("react"), 1);
5910
6187
  var import_vaul = require("vaul");
5911
6188
  var import_jsx_runtime39 = require("react/jsx-runtime");
5912
6189
  var Drawer = ({ shouldScaleBackground = true, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_vaul.Drawer.Root, { shouldScaleBackground, ...props });
@@ -5914,9 +6191,9 @@ Drawer.displayName = "Drawer";
5914
6191
  var DrawerTrigger = import_vaul.Drawer.Trigger;
5915
6192
  var DrawerPortal = import_vaul.Drawer.Portal;
5916
6193
  var DrawerClose = import_vaul.Drawer.Close;
5917
- var DrawerOverlay = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_vaul.Drawer.Overlay, { ref, className: cn("fixed inset-0 z-50 bg-black/80", className), ...props }));
6194
+ var DrawerOverlay = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_vaul.Drawer.Overlay, { ref, className: cn("fixed inset-0 z-50 bg-black/80", className), ...props }));
5918
6195
  DrawerOverlay.displayName = import_vaul.Drawer.Overlay.displayName;
5919
- var DrawerContent = React25.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(DrawerPortal, { children: [
6196
+ var DrawerContent = React24.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(DrawerPortal, { children: [
5920
6197
  /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(DrawerOverlay, {}),
5921
6198
  /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
5922
6199
  import_vaul.Drawer.Content,
@@ -5939,7 +6216,7 @@ var DrawerHeader = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_r
5939
6216
  DrawerHeader.displayName = "DrawerHeader";
5940
6217
  var DrawerFooter = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: cn("mt-auto flex flex-col gap-2 p-4", className), ...props });
5941
6218
  DrawerFooter.displayName = "DrawerFooter";
5942
- var DrawerTitle = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
6219
+ var DrawerTitle = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
5943
6220
  import_vaul.Drawer.Title,
5944
6221
  {
5945
6222
  ref,
@@ -5948,13 +6225,13 @@ var DrawerTitle = React25.forwardRef(({ className, ...props }, ref) => /* @__PUR
5948
6225
  }
5949
6226
  ));
5950
6227
  DrawerTitle.displayName = import_vaul.Drawer.Title.displayName;
5951
- var DrawerDescription = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_vaul.Drawer.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
6228
+ var DrawerDescription = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_vaul.Drawer.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
5952
6229
  DrawerDescription.displayName = import_vaul.Drawer.Description.displayName;
5953
6230
 
5954
6231
  // src/components/ui/textarea.tsx
5955
- var React26 = __toESM(require("react"), 1);
6232
+ var React25 = __toESM(require("react"), 1);
5956
6233
  var import_jsx_runtime40 = require("react/jsx-runtime");
5957
- var Textarea = React26.forwardRef(({ className, ...props }, ref) => {
6234
+ var Textarea = React25.forwardRef(({ className, ...props }, ref) => {
5958
6235
  return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
5959
6236
  "textarea",
5960
6237
  {
@@ -7114,6 +7391,11 @@ var formatRecentActivityDateTime = (value) => {
7114
7391
  minute: "2-digit"
7115
7392
  });
7116
7393
  };
7394
+ var formatAppVersion = (value) => {
7395
+ const normalized = value == null ? void 0 : value.trim();
7396
+ if (!normalized) return "N\xE3o informada";
7397
+ return normalized.toLowerCase().startsWith("v") ? normalized : `v${normalized}`;
7398
+ };
7117
7399
  var PresenceBadge = ({ status, size = "sm" }) => {
7118
7400
  const meta = PRESENCE_META[status];
7119
7401
  const dotSize = size === "lg" ? "h-[0.95rem] w-[0.95rem]" : size === "md" ? "h-3 w-3" : "h-2.5 w-2.5";
@@ -7184,6 +7466,7 @@ var UserMenuCupcode = ({
7184
7466
  isRecentActivityLoading = false,
7185
7467
  telescupBaseUrl,
7186
7468
  getTelescupAccessToken,
7469
+ appVersion,
7187
7470
  panels,
7188
7471
  className
7189
7472
  }) => {
@@ -7268,6 +7551,8 @@ var UserMenuCupcode = ({
7268
7551
  const initials = (0, import_react18.useMemo)(() => buildInitials(displayName, email), [displayName, email]);
7269
7552
  const handle = (0, import_react18.useMemo)(() => buildHandle(username, email), [username, email]);
7270
7553
  const resolvedRole = roleLabel == null ? void 0 : roleLabel.trim();
7554
+ const resolvedAppVersion = (0, import_react18.useMemo)(() => resolveCupcodeAppVersion(appVersion), [appVersion]);
7555
+ const appVersionLabel = (0, import_react18.useMemo)(() => formatAppVersion(resolvedAppVersion), [resolvedAppVersion]);
7271
7556
  const isStatusControlled = typeof status !== "undefined";
7272
7557
  const currentStatus = status != null ? status : internalStatus;
7273
7558
  const baseNotificationList = (0, import_react18.useMemo)(
@@ -10440,6 +10725,28 @@ var UserMenuCupcode = ({
10440
10725
  ]
10441
10726
  }
10442
10727
  )
10728
+ ] }),
10729
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { className: cn(settingsCardClassName, "space-y-2.5"), children: [
10730
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { children: [
10731
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("p", { className: "text-xs font-semibold text-foreground", children: "Vers\xE3o do app" }),
10732
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("p", { className: "mt-1 text-[11px] leading-relaxed text-muted-foreground", children: "Vers\xE3o do aplicativo atual que est\xE1 exibindo este menu." })
10733
+ ] }),
10734
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
10735
+ "div",
10736
+ {
10737
+ className: cn(
10738
+ "flex items-center justify-between gap-2 rounded-xl border bg-background/45 px-3 py-2",
10739
+ isHighContrastEnabled ? "border-foreground/40" : "border-border/70"
10740
+ ),
10741
+ children: [
10742
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("span", { className: "inline-flex items-center gap-1.5 text-xs font-semibold text-foreground", children: [
10743
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_lucide_react10.Info, { className: "h-3.5 w-3.5 text-primary" }),
10744
+ "Vers\xE3o atual"
10745
+ ] }),
10746
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "rounded-md border border-border/70 bg-background/60 px-2 py-1 text-[10px] font-semibold text-foreground", children: appVersionLabel })
10747
+ ]
10748
+ }
10749
+ )
10443
10750
  ] })
10444
10751
  ] });
10445
10752
  }
@@ -22433,7 +22740,7 @@ function getSupabasePublic() {
22433
22740
  }
22434
22741
 
22435
22742
  // src/components/ui/sonner.tsx
22436
- var React28 = __toESM(require("react"), 1);
22743
+ var React27 = __toESM(require("react"), 1);
22437
22744
  var import_sonner = require("sonner");
22438
22745
  var import_jsx_runtime44 = require("react/jsx-runtime");
22439
22746
  function resolveDocumentTheme() {
@@ -22446,8 +22753,8 @@ function resolveDocumentTheme() {
22446
22753
  return "light";
22447
22754
  }
22448
22755
  var Toaster = ({ theme, ...props }) => {
22449
- const [resolvedTheme, setResolvedTheme] = React28.useState(() => theme != null ? theme : "system");
22450
- React28.useEffect(() => {
22756
+ const [resolvedTheme, setResolvedTheme] = React27.useState(() => theme != null ? theme : "system");
22757
+ React27.useEffect(() => {
22451
22758
  if (typeof theme !== "undefined") return;
22452
22759
  const syncTheme = () => setResolvedTheme(resolveDocumentTheme());
22453
22760
  syncTheme();
@@ -23149,7 +23456,8 @@ var MainNavbar = ({
23149
23456
  onPresenceStatusChange,
23150
23457
  onLogoutClick,
23151
23458
  onOpenAccountClick,
23152
- getAccessToken
23459
+ getAccessToken,
23460
+ appVersion
23153
23461
  }) => {
23154
23462
  var _a74, _b7, _c;
23155
23463
  const [chatUsers, setChatUsers] = (0, import_react19.useState)([]);
@@ -24678,7 +24986,8 @@ var MainNavbar = ({
24678
24986
  recentActivity: accountsRecentActivity,
24679
24987
  isRecentActivityLoading: isAccountsActivityLoading,
24680
24988
  telescupBaseUrl: resolvedTelescupBaseUrl,
24681
- getTelescupAccessToken
24989
+ getTelescupAccessToken,
24990
+ appVersion
24682
24991
  }
24683
24992
  ) })
24684
24993
  }
@@ -24837,10 +25146,10 @@ function PricingCard({
24837
25146
  }
24838
25147
 
24839
25148
  // src/components/cupcode/ProgressCupcode.tsx
24840
- var React29 = __toESM(require("react"), 1);
25149
+ var React28 = __toESM(require("react"), 1);
24841
25150
  var ProgressPrimitive2 = __toESM(require("@radix-ui/react-progress"), 1);
24842
25151
  var import_jsx_runtime48 = require("react/jsx-runtime");
24843
- var ProgressCupcode = React29.forwardRef(({ className, value, variant = "default", showLabel = false, size = "md", ...props }, ref) => {
25152
+ var ProgressCupcode = React28.forwardRef(({ className, value, variant = "default", showLabel = false, size = "md", ...props }, ref) => {
24844
25153
  const sizeClasses2 = {
24845
25154
  sm: "h-2",
24846
25155
  md: "h-3",
@@ -24888,7 +25197,7 @@ var ProgressCupcode = React29.forwardRef(({ className, value, variant = "default
24888
25197
  ProgressCupcode.displayName = "ProgressCupcode";
24889
25198
 
24890
25199
  // src/components/cupcode/ScrollbarTheme.tsx
24891
- var React30 = __toESM(require("react"), 1);
25200
+ var React29 = __toESM(require("react"), 1);
24892
25201
  var import_jsx_runtime49 = require("react/jsx-runtime");
24893
25202
  var SCROLLBAR_COLOR_ATTR = "data-cc-scrollbar-color";
24894
25203
  var SCROLLBAR_THEME_ATTR = "data-cc-scrollbar-theme";
@@ -24896,7 +25205,7 @@ var ScrollbarThemeProvider = ({
24896
25205
  color = "purple",
24897
25206
  theme = "auto"
24898
25207
  }) => {
24899
- React30.useEffect(() => {
25208
+ React29.useEffect(() => {
24900
25209
  if (typeof document === "undefined") return;
24901
25210
  const root = document.documentElement;
24902
25211
  const previousColor = root.getAttribute(SCROLLBAR_COLOR_ATTR);
@@ -24927,7 +25236,7 @@ var ScrollbarThemeProvider = ({
24927
25236
  }, [color, theme]);
24928
25237
  return null;
24929
25238
  };
24930
- var ScrollbarArea = React30.forwardRef(
25239
+ var ScrollbarArea = React29.forwardRef(
24931
25240
  ({ color = "purple", theme = "auto", className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
24932
25241
  "div",
24933
25242
  {
@@ -24946,14 +25255,14 @@ var ScrollbarArea = React30.forwardRef(
24946
25255
  ScrollbarArea.displayName = "ScrollbarArea";
24947
25256
 
24948
25257
  // src/components/cupcode/SelectField.tsx
24949
- var React31 = __toESM(require("react"), 1);
25258
+ var React30 = __toESM(require("react"), 1);
24950
25259
  var SelectPrimitive2 = __toESM(require("@radix-ui/react-select"), 1);
24951
25260
  var import_lucide_react13 = require("lucide-react");
24952
25261
  var import_jsx_runtime50 = require("react/jsx-runtime");
24953
25262
  var Select2 = SelectPrimitive2.Root;
24954
25263
  var SelectGroup2 = SelectPrimitive2.Group;
24955
25264
  var SelectValue2 = SelectPrimitive2.Value;
24956
- var SelectTrigger2 = React31.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
25265
+ var SelectTrigger2 = React30.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
24957
25266
  SelectPrimitive2.Trigger,
24958
25267
  {
24959
25268
  ref,
@@ -24976,7 +25285,7 @@ var SelectTrigger2 = React31.forwardRef(({ className, children, ...props }, ref)
24976
25285
  }
24977
25286
  ));
24978
25287
  SelectTrigger2.displayName = SelectPrimitive2.Trigger.displayName;
24979
- var SelectContent2 = React31.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SelectPrimitive2.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
25288
+ var SelectContent2 = React30.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SelectPrimitive2.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
24980
25289
  SelectPrimitive2.Content,
24981
25290
  {
24982
25291
  ref,
@@ -25006,7 +25315,7 @@ var SelectContent2 = React31.forwardRef(({ className, children, position = "popp
25006
25315
  }
25007
25316
  ) }));
25008
25317
  SelectContent2.displayName = SelectPrimitive2.Content.displayName;
25009
- var SelectItem2 = React31.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
25318
+ var SelectItem2 = React30.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
25010
25319
  SelectPrimitive2.Item,
25011
25320
  {
25012
25321
  ref,
@@ -25045,10 +25354,10 @@ var SelectField = ({
25045
25354
  };
25046
25355
 
25047
25356
  // src/components/cupcode/SwitchField.tsx
25048
- var React32 = __toESM(require("react"), 1);
25357
+ var React31 = __toESM(require("react"), 1);
25049
25358
  var SwitchPrimitives2 = __toESM(require("@radix-ui/react-switch"), 1);
25050
25359
  var import_jsx_runtime51 = require("react/jsx-runtime");
25051
- var Switch2 = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
25360
+ var Switch2 = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
25052
25361
  SwitchPrimitives2.Root,
25053
25362
  {
25054
25363
  className: cn(
@@ -25089,11 +25398,11 @@ var SwitchField = ({ label, description, ...props }) => {
25089
25398
  };
25090
25399
 
25091
25400
  // src/components/cupcode/TabsCupcode.tsx
25092
- var React33 = __toESM(require("react"), 1);
25401
+ var React32 = __toESM(require("react"), 1);
25093
25402
  var TabsPrimitive2 = __toESM(require("@radix-ui/react-tabs"), 1);
25094
25403
  var import_jsx_runtime52 = require("react/jsx-runtime");
25095
25404
  var Tabs2 = TabsPrimitive2.Root;
25096
- var TabsList2 = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
25405
+ var TabsList2 = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
25097
25406
  TabsPrimitive2.List,
25098
25407
  {
25099
25408
  ref,
@@ -25106,7 +25415,7 @@ var TabsList2 = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE_
25106
25415
  }
25107
25416
  ));
25108
25417
  TabsList2.displayName = TabsPrimitive2.List.displayName;
25109
- var TabsTrigger2 = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
25418
+ var TabsTrigger2 = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
25110
25419
  TabsPrimitive2.Trigger,
25111
25420
  {
25112
25421
  ref,
@@ -25128,7 +25437,7 @@ var TabsTrigger2 = React33.forwardRef(({ className, ...props }, ref) => /* @__PU
25128
25437
  }
25129
25438
  ));
25130
25439
  TabsTrigger2.displayName = TabsPrimitive2.Trigger.displayName;
25131
- var TabsContent2 = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
25440
+ var TabsContent2 = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
25132
25441
  TabsPrimitive2.Content,
25133
25442
  {
25134
25443
  ref,
@@ -25144,9 +25453,9 @@ var TabsContent2 = React33.forwardRef(({ className, ...props }, ref) => /* @__PU
25144
25453
  TabsContent2.displayName = TabsPrimitive2.Content.displayName;
25145
25454
 
25146
25455
  // src/components/cupcode/TextareaField.tsx
25147
- var React34 = __toESM(require("react"), 1);
25456
+ var React33 = __toESM(require("react"), 1);
25148
25457
  var import_jsx_runtime53 = require("react/jsx-runtime");
25149
- var TextareaField = React34.forwardRef(
25458
+ var TextareaField = React33.forwardRef(
25150
25459
  ({ className, label, error, ...props }, ref) => {
25151
25460
  return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "cc-stack space-2 w-full", children: [
25152
25461
  label && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("label", { className: "text-sm font-semibold text-cupcode-ink", children: label }),
@@ -25177,7 +25486,7 @@ var TextareaField = React34.forwardRef(
25177
25486
  TextareaField.displayName = "TextareaField";
25178
25487
 
25179
25488
  // src/components/cupcode/ThemeToggle.tsx
25180
- var React35 = __toESM(require("react"), 1);
25489
+ var React34 = __toESM(require("react"), 1);
25181
25490
  var import_lucide_react14 = require("lucide-react");
25182
25491
  var import_jsx_runtime54 = require("react/jsx-runtime");
25183
25492
  var THEME_STORAGE_KEY2 = "cupcode-theme";
@@ -25226,22 +25535,22 @@ var ThemeToggle = ({
25226
25535
  onThemeChange
25227
25536
  }) => {
25228
25537
  var _a74;
25229
- const [mounted, setMounted] = React35.useState(false);
25230
- const [internalTheme, setInternalTheme] = React35.useState(defaultTheme);
25538
+ const [mounted, setMounted] = React34.useState(false);
25539
+ const [internalTheme, setInternalTheme] = React34.useState(defaultTheme);
25231
25540
  const isControlled = typeof theme !== "undefined";
25232
25541
  const activeTheme = (_a74 = isControlled ? theme : internalTheme) != null ? _a74 : defaultTheme;
25233
- React35.useEffect(() => {
25542
+ React34.useEffect(() => {
25234
25543
  if (!isControlled) {
25235
25544
  setInternalTheme(resolveTheme(defaultTheme));
25236
25545
  }
25237
25546
  setMounted(true);
25238
25547
  }, [defaultTheme, isControlled]);
25239
- React35.useEffect(() => {
25548
+ React34.useEffect(() => {
25240
25549
  if (!mounted) return;
25241
25550
  applyThemeClass(activeTheme);
25242
25551
  writeStoredTheme(activeTheme);
25243
25552
  }, [activeTheme, mounted]);
25244
- React35.useEffect(() => {
25553
+ React34.useEffect(() => {
25245
25554
  if (isControlled || typeof document === "undefined") return;
25246
25555
  const observer = new MutationObserver(() => {
25247
25556
  const resolvedTheme = resolveTheme(defaultTheme);
@@ -25409,13 +25718,13 @@ var ToastCupcode = ({
25409
25718
  };
25410
25719
 
25411
25720
  // src/components/cupcode/TooltipCupcode.tsx
25412
- var React36 = __toESM(require("react"), 1);
25721
+ var React35 = __toESM(require("react"), 1);
25413
25722
  var TooltipPrimitive2 = __toESM(require("@radix-ui/react-tooltip"), 1);
25414
25723
  var import_jsx_runtime57 = require("react/jsx-runtime");
25415
25724
  var TooltipProvider2 = TooltipPrimitive2.Provider;
25416
25725
  var TooltipCupcode = TooltipPrimitive2.Root;
25417
25726
  var TooltipTrigger2 = TooltipPrimitive2.Trigger;
25418
- var TooltipContent2 = React36.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
25727
+ var TooltipContent2 = React35.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
25419
25728
  TooltipPrimitive2.Content,
25420
25729
  {
25421
25730
  ref,
@@ -25436,14 +25745,14 @@ var TooltipContent2 = React36.forwardRef(({ className, sideOffset = 4, ...props
25436
25745
  TooltipContent2.displayName = TooltipPrimitive2.Content.displayName;
25437
25746
 
25438
25747
  // src/components/ui/accordion.tsx
25439
- var React37 = __toESM(require("react"), 1);
25748
+ var React36 = __toESM(require("react"), 1);
25440
25749
  var AccordionPrimitive2 = __toESM(require("@radix-ui/react-accordion"), 1);
25441
25750
  var import_lucide_react16 = require("lucide-react");
25442
25751
  var import_jsx_runtime58 = require("react/jsx-runtime");
25443
25752
  var Accordion = AccordionPrimitive2.Root;
25444
- var AccordionItem2 = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(AccordionPrimitive2.Item, { ref, className: cn("border-b", className), ...props }));
25753
+ var AccordionItem2 = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(AccordionPrimitive2.Item, { ref, className: cn("border-b", className), ...props }));
25445
25754
  AccordionItem2.displayName = "AccordionItem";
25446
- var AccordionTrigger2 = React37.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(AccordionPrimitive2.Header, { className: "flex", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(
25755
+ var AccordionTrigger2 = React36.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(AccordionPrimitive2.Header, { className: "flex", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(
25447
25756
  AccordionPrimitive2.Trigger,
25448
25757
  {
25449
25758
  ref,
@@ -25459,7 +25768,7 @@ var AccordionTrigger2 = React37.forwardRef(({ className, children, ...props }, r
25459
25768
  }
25460
25769
  ) }));
25461
25770
  AccordionTrigger2.displayName = AccordionPrimitive2.Trigger.displayName;
25462
- var AccordionContent2 = React37.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
25771
+ var AccordionContent2 = React36.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
25463
25772
  AccordionPrimitive2.Content,
25464
25773
  {
25465
25774
  ref,
@@ -25471,7 +25780,7 @@ var AccordionContent2 = React37.forwardRef(({ className, children, ...props }, r
25471
25780
  AccordionContent2.displayName = AccordionPrimitive2.Content.displayName;
25472
25781
 
25473
25782
  // src/components/ui/alert.tsx
25474
- var React38 = __toESM(require("react"), 1);
25783
+ var React37 = __toESM(require("react"), 1);
25475
25784
  var import_class_variance_authority3 = require("class-variance-authority");
25476
25785
  var import_jsx_runtime59 = require("react/jsx-runtime");
25477
25786
  var alertVariants = (0, import_class_variance_authority3.cva)(
@@ -25488,13 +25797,13 @@ var alertVariants = (0, import_class_variance_authority3.cva)(
25488
25797
  }
25489
25798
  }
25490
25799
  );
25491
- var Alert = React38.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { ref, role: "alert", className: cn(alertVariants({ variant }), className), ...props }));
25800
+ var Alert = React37.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { ref, role: "alert", className: cn(alertVariants({ variant }), className), ...props }));
25492
25801
  Alert.displayName = "Alert";
25493
- var AlertTitle = React38.forwardRef(
25802
+ var AlertTitle = React37.forwardRef(
25494
25803
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("h5", { ref, className: cn("mb-1 font-medium leading-none tracking-tight", className), ...props })
25495
25804
  );
25496
25805
  AlertTitle.displayName = "AlertTitle";
25497
- var AlertDescription = React38.forwardRef(
25806
+ var AlertDescription = React37.forwardRef(
25498
25807
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { ref, className: cn("text-sm [&_p]:leading-relaxed", className), ...props })
25499
25808
  );
25500
25809
  AlertDescription.displayName = "AlertDescription";
@@ -25504,13 +25813,13 @@ var AspectRatioPrimitive = __toESM(require("@radix-ui/react-aspect-ratio"), 1);
25504
25813
  var AspectRatio = AspectRatioPrimitive.Root;
25505
25814
 
25506
25815
  // src/components/ui/breadcrumb.tsx
25507
- var React39 = __toESM(require("react"), 1);
25816
+ var React38 = __toESM(require("react"), 1);
25508
25817
  var import_react_slot2 = require("@radix-ui/react-slot");
25509
25818
  var import_lucide_react17 = require("lucide-react");
25510
25819
  var import_jsx_runtime60 = require("react/jsx-runtime");
25511
- var Breadcrumb = React39.forwardRef(({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("nav", { ref, "aria-label": "breadcrumb", ...props }));
25820
+ var Breadcrumb = React38.forwardRef(({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("nav", { ref, "aria-label": "breadcrumb", ...props }));
25512
25821
  Breadcrumb.displayName = "Breadcrumb";
25513
- var BreadcrumbList = React39.forwardRef(
25822
+ var BreadcrumbList = React38.forwardRef(
25514
25823
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
25515
25824
  "ol",
25516
25825
  {
@@ -25524,16 +25833,16 @@ var BreadcrumbList = React39.forwardRef(
25524
25833
  )
25525
25834
  );
25526
25835
  BreadcrumbList.displayName = "BreadcrumbList";
25527
- var BreadcrumbItem = React39.forwardRef(
25836
+ var BreadcrumbItem = React38.forwardRef(
25528
25837
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("li", { ref, className: cn("inline-flex items-center gap-1.5", className), ...props })
25529
25838
  );
25530
25839
  BreadcrumbItem.displayName = "BreadcrumbItem";
25531
- var BreadcrumbLink = React39.forwardRef(({ asChild, className, ...props }, ref) => {
25840
+ var BreadcrumbLink = React38.forwardRef(({ asChild, className, ...props }, ref) => {
25532
25841
  const Comp = asChild ? import_react_slot2.Slot : "a";
25533
25842
  return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Comp, { ref, className: cn("transition-colors hover:text-foreground", className), ...props });
25534
25843
  });
25535
25844
  BreadcrumbLink.displayName = "BreadcrumbLink";
25536
- var BreadcrumbPage = React39.forwardRef(
25845
+ var BreadcrumbPage = React38.forwardRef(
25537
25846
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
25538
25847
  "span",
25539
25848
  {
@@ -25616,45 +25925,45 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
25616
25925
  Calendar.displayName = "Calendar";
25617
25926
 
25618
25927
  // src/components/ui/card.tsx
25619
- var React40 = __toESM(require("react"), 1);
25928
+ var React39 = __toESM(require("react"), 1);
25620
25929
  var import_jsx_runtime62 = require("react/jsx-runtime");
25621
- var Card = React40.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { ref, className: cn("rounded-lg border bg-card text-card-foreground shadow-sm", className), ...props }));
25930
+ var Card = React39.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { ref, className: cn("rounded-lg border bg-card text-card-foreground shadow-sm", className), ...props }));
25622
25931
  Card.displayName = "Card";
25623
- var CardHeader = React40.forwardRef(
25932
+ var CardHeader = React39.forwardRef(
25624
25933
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { ref, className: cn("flex flex-col space-y-1.5 p-6", className), ...props })
25625
25934
  );
25626
25935
  CardHeader.displayName = "CardHeader";
25627
- var CardTitle = React40.forwardRef(
25936
+ var CardTitle = React39.forwardRef(
25628
25937
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("h3", { ref, className: cn("text-2xl font-semibold leading-none tracking-tight", className), ...props })
25629
25938
  );
25630
25939
  CardTitle.displayName = "CardTitle";
25631
- var CardDescription = React40.forwardRef(
25940
+ var CardDescription = React39.forwardRef(
25632
25941
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("p", { ref, className: cn("text-sm text-muted-foreground", className), ...props })
25633
25942
  );
25634
25943
  CardDescription.displayName = "CardDescription";
25635
- var CardContent = React40.forwardRef(
25944
+ var CardContent = React39.forwardRef(
25636
25945
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { ref, className: cn("p-6 pt-0", className), ...props })
25637
25946
  );
25638
25947
  CardContent.displayName = "CardContent";
25639
- var CardFooter = React40.forwardRef(
25948
+ var CardFooter = React39.forwardRef(
25640
25949
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { ref, className: cn("flex items-center p-6 pt-0", className), ...props })
25641
25950
  );
25642
25951
  CardFooter.displayName = "CardFooter";
25643
25952
 
25644
25953
  // src/components/ui/carousel.tsx
25645
- var React41 = __toESM(require("react"), 1);
25954
+ var React40 = __toESM(require("react"), 1);
25646
25955
  var import_embla_carousel_react = __toESM(require("embla-carousel-react"), 1);
25647
25956
  var import_lucide_react19 = require("lucide-react");
25648
25957
  var import_jsx_runtime63 = require("react/jsx-runtime");
25649
- var CarouselContext = React41.createContext(null);
25958
+ var CarouselContext = React40.createContext(null);
25650
25959
  function useCarousel() {
25651
- const context = React41.useContext(CarouselContext);
25960
+ const context = React40.useContext(CarouselContext);
25652
25961
  if (!context) {
25653
25962
  throw new Error("useCarousel must be used within a <Carousel />");
25654
25963
  }
25655
25964
  return context;
25656
25965
  }
25657
- var Carousel = React41.forwardRef(
25966
+ var Carousel = React40.forwardRef(
25658
25967
  ({ orientation = "horizontal", opts, setApi, plugins, className, children, ...props }, ref) => {
25659
25968
  const [carouselRef, api] = (0, import_embla_carousel_react.default)(
25660
25969
  {
@@ -25663,22 +25972,22 @@ var Carousel = React41.forwardRef(
25663
25972
  },
25664
25973
  plugins
25665
25974
  );
25666
- const [canScrollPrev, setCanScrollPrev] = React41.useState(false);
25667
- const [canScrollNext, setCanScrollNext] = React41.useState(false);
25668
- const onSelect = React41.useCallback((api2) => {
25975
+ const [canScrollPrev, setCanScrollPrev] = React40.useState(false);
25976
+ const [canScrollNext, setCanScrollNext] = React40.useState(false);
25977
+ const onSelect = React40.useCallback((api2) => {
25669
25978
  if (!api2) {
25670
25979
  return;
25671
25980
  }
25672
25981
  setCanScrollPrev(api2.canScrollPrev());
25673
25982
  setCanScrollNext(api2.canScrollNext());
25674
25983
  }, []);
25675
- const scrollPrev = React41.useCallback(() => {
25984
+ const scrollPrev = React40.useCallback(() => {
25676
25985
  api == null ? void 0 : api.scrollPrev();
25677
25986
  }, [api]);
25678
- const scrollNext = React41.useCallback(() => {
25987
+ const scrollNext = React40.useCallback(() => {
25679
25988
  api == null ? void 0 : api.scrollNext();
25680
25989
  }, [api]);
25681
- const handleKeyDown = React41.useCallback(
25990
+ const handleKeyDown = React40.useCallback(
25682
25991
  (event) => {
25683
25992
  if (event.key === "ArrowLeft") {
25684
25993
  event.preventDefault();
@@ -25690,13 +25999,13 @@ var Carousel = React41.forwardRef(
25690
25999
  },
25691
26000
  [scrollPrev, scrollNext]
25692
26001
  );
25693
- React41.useEffect(() => {
26002
+ React40.useEffect(() => {
25694
26003
  if (!api || !setApi) {
25695
26004
  return;
25696
26005
  }
25697
26006
  setApi(api);
25698
26007
  }, [api, setApi]);
25699
- React41.useEffect(() => {
26008
+ React40.useEffect(() => {
25700
26009
  if (!api) {
25701
26010
  return;
25702
26011
  }
@@ -25737,7 +26046,7 @@ var Carousel = React41.forwardRef(
25737
26046
  }
25738
26047
  );
25739
26048
  Carousel.displayName = "Carousel";
25740
- var CarouselContent = React41.forwardRef(
26049
+ var CarouselContent = React40.forwardRef(
25741
26050
  ({ className, ...props }, ref) => {
25742
26051
  const { carouselRef, orientation } = useCarousel();
25743
26052
  return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { ref: carouselRef, className: "overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
@@ -25751,7 +26060,7 @@ var CarouselContent = React41.forwardRef(
25751
26060
  }
25752
26061
  );
25753
26062
  CarouselContent.displayName = "CarouselContent";
25754
- var CarouselItem = React41.forwardRef(
26063
+ var CarouselItem = React40.forwardRef(
25755
26064
  ({ className, ...props }, ref) => {
25756
26065
  const { orientation } = useCarousel();
25757
26066
  return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
@@ -25767,7 +26076,7 @@ var CarouselItem = React41.forwardRef(
25767
26076
  }
25768
26077
  );
25769
26078
  CarouselItem.displayName = "CarouselItem";
25770
- var CarouselPrevious = React41.forwardRef(
26079
+ var CarouselPrevious = React40.forwardRef(
25771
26080
  ({ className, variant = "outline", size = "icon", ...props }, ref) => {
25772
26081
  const { orientation, scrollPrev, canScrollPrev } = useCarousel();
25773
26082
  return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
@@ -25793,7 +26102,7 @@ var CarouselPrevious = React41.forwardRef(
25793
26102
  }
25794
26103
  );
25795
26104
  CarouselPrevious.displayName = "CarouselPrevious";
25796
- var CarouselNext = React41.forwardRef(
26105
+ var CarouselNext = React40.forwardRef(
25797
26106
  ({ className, variant = "outline", size = "icon", ...props }, ref) => {
25798
26107
  const { orientation, scrollNext, canScrollNext } = useCarousel();
25799
26108
  return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
@@ -25821,20 +26130,20 @@ var CarouselNext = React41.forwardRef(
25821
26130
  CarouselNext.displayName = "CarouselNext";
25822
26131
 
25823
26132
  // src/components/ui/chart.tsx
25824
- var React42 = __toESM(require("react"), 1);
26133
+ var React41 = __toESM(require("react"), 1);
25825
26134
  var RechartsPrimitive = __toESM(require("recharts"), 1);
25826
26135
  var import_jsx_runtime64 = require("react/jsx-runtime");
25827
26136
  var THEMES = { light: "", dark: ".dark" };
25828
- var ChartContext = React42.createContext(null);
26137
+ var ChartContext = React41.createContext(null);
25829
26138
  function useChart() {
25830
- const context = React42.useContext(ChartContext);
26139
+ const context = React41.useContext(ChartContext);
25831
26140
  if (!context) {
25832
26141
  throw new Error("useChart must be used within a <ChartContainer />");
25833
26142
  }
25834
26143
  return context;
25835
26144
  }
25836
- var ChartContainer = React42.forwardRef(({ id, className, children, config, ...props }, ref) => {
25837
- const uniqueId = React42.useId();
26145
+ var ChartContainer = React41.forwardRef(({ id, className, children, config, ...props }, ref) => {
26146
+ const uniqueId = React41.useId();
25838
26147
  const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
25839
26148
  return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
25840
26149
  "div",
@@ -25879,7 +26188,7 @@ ${colorConfig.map(([key, itemConfig]) => {
25879
26188
  );
25880
26189
  };
25881
26190
  var ChartTooltip = RechartsPrimitive.Tooltip;
25882
- var ChartTooltipContent = React42.forwardRef(
26191
+ var ChartTooltipContent = React41.forwardRef(
25883
26192
  ({
25884
26193
  active,
25885
26194
  payload,
@@ -25896,7 +26205,7 @@ var ChartTooltipContent = React42.forwardRef(
25896
26205
  labelKey
25897
26206
  }, ref) => {
25898
26207
  const { config } = useChart();
25899
- const tooltipLabel = React42.useMemo(() => {
26208
+ const tooltipLabel = React41.useMemo(() => {
25900
26209
  var _a74;
25901
26210
  if (hideLabel || !(payload == null ? void 0 : payload.length)) {
25902
26211
  return null;
@@ -25982,7 +26291,7 @@ var ChartTooltipContent = React42.forwardRef(
25982
26291
  );
25983
26292
  ChartTooltipContent.displayName = "ChartTooltip";
25984
26293
  var ChartLegend = RechartsPrimitive.Legend;
25985
- var ChartLegendContent = React42.forwardRef(({ className, hideIcon = false, payload, verticalAlign = "bottom", nameKey }, ref) => {
26294
+ var ChartLegendContent = React41.forwardRef(({ className, hideIcon = false, payload, verticalAlign = "bottom", nameKey }, ref) => {
25986
26295
  const { config } = useChart();
25987
26296
  if (!(payload == null ? void 0 : payload.length)) {
25988
26297
  return null;
@@ -26034,11 +26343,11 @@ function getPayloadConfigFromPayload(config, payload, key) {
26034
26343
  }
26035
26344
 
26036
26345
  // src/components/ui/checkbox.tsx
26037
- var React43 = __toESM(require("react"), 1);
26346
+ var React42 = __toESM(require("react"), 1);
26038
26347
  var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"), 1);
26039
26348
  var import_lucide_react20 = require("lucide-react");
26040
26349
  var import_jsx_runtime65 = require("react/jsx-runtime");
26041
- var Checkbox = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
26350
+ var Checkbox = React42.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
26042
26351
  CheckboxPrimitive.Root,
26043
26352
  {
26044
26353
  ref,
@@ -26059,11 +26368,11 @@ var CollapsibleTrigger2 = CollapsiblePrimitive.CollapsibleTrigger;
26059
26368
  var CollapsibleContent2 = CollapsiblePrimitive.CollapsibleContent;
26060
26369
 
26061
26370
  // src/components/ui/command.tsx
26062
- var React44 = __toESM(require("react"), 1);
26371
+ var React43 = __toESM(require("react"), 1);
26063
26372
  var import_cmdk = require("cmdk");
26064
26373
  var import_lucide_react21 = require("lucide-react");
26065
26374
  var import_jsx_runtime66 = require("react/jsx-runtime");
26066
- var Command = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
26375
+ var Command = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
26067
26376
  import_cmdk.Command,
26068
26377
  {
26069
26378
  ref,
@@ -26078,7 +26387,7 @@ Command.displayName = import_cmdk.Command.displayName;
26078
26387
  var CommandDialog = ({ children, ...props }) => {
26079
26388
  return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Dialog, { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(DialogContent, { className: "overflow-hidden p-0 shadow-lg", children: /* @__PURE__ */ (0, import_jsx_runtime66.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 }) }) });
26080
26389
  };
26081
- var CommandInput = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
26390
+ var CommandInput = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
26082
26391
  /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react21.Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
26083
26392
  /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
26084
26393
  import_cmdk.Command.Input,
@@ -26093,7 +26402,7 @@ var CommandInput = React44.forwardRef(({ className, ...props }, ref) => /* @__PU
26093
26402
  )
26094
26403
  ] }));
26095
26404
  CommandInput.displayName = import_cmdk.Command.Input.displayName;
26096
- var CommandList = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
26405
+ var CommandList = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
26097
26406
  import_cmdk.Command.List,
26098
26407
  {
26099
26408
  ref,
@@ -26102,9 +26411,9 @@ var CommandList = React44.forwardRef(({ className, ...props }, ref) => /* @__PUR
26102
26411
  }
26103
26412
  ));
26104
26413
  CommandList.displayName = import_cmdk.Command.List.displayName;
26105
- var CommandEmpty = React44.forwardRef((props, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_cmdk.Command.Empty, { ref, className: "py-6 text-center text-sm", ...props }));
26414
+ var CommandEmpty = React43.forwardRef((props, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_cmdk.Command.Empty, { ref, className: "py-6 text-center text-sm", ...props }));
26106
26415
  CommandEmpty.displayName = import_cmdk.Command.Empty.displayName;
26107
- var CommandGroup = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
26416
+ var CommandGroup = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
26108
26417
  import_cmdk.Command.Group,
26109
26418
  {
26110
26419
  ref,
@@ -26116,9 +26425,9 @@ var CommandGroup = React44.forwardRef(({ className, ...props }, ref) => /* @__PU
26116
26425
  }
26117
26426
  ));
26118
26427
  CommandGroup.displayName = import_cmdk.Command.Group.displayName;
26119
- var CommandSeparator = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_cmdk.Command.Separator, { ref, className: cn("-mx-1 h-px bg-border", className), ...props }));
26428
+ var CommandSeparator = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_cmdk.Command.Separator, { ref, className: cn("-mx-1 h-px bg-border", className), ...props }));
26120
26429
  CommandSeparator.displayName = import_cmdk.Command.Separator.displayName;
26121
- var CommandItem = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
26430
+ var CommandItem = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
26122
26431
  import_cmdk.Command.Item,
26123
26432
  {
26124
26433
  ref,
@@ -26136,7 +26445,7 @@ var CommandShortcut = ({ className, ...props }) => {
26136
26445
  CommandShortcut.displayName = "CommandShortcut";
26137
26446
 
26138
26447
  // src/components/ui/context-menu.tsx
26139
- var React45 = __toESM(require("react"), 1);
26448
+ var React44 = __toESM(require("react"), 1);
26140
26449
  var ContextMenuPrimitive = __toESM(require("@radix-ui/react-context-menu"), 1);
26141
26450
  var import_lucide_react22 = require("lucide-react");
26142
26451
  var import_jsx_runtime67 = require("react/jsx-runtime");
@@ -26146,7 +26455,7 @@ var ContextMenuGroup = ContextMenuPrimitive.Group;
26146
26455
  var ContextMenuPortal = ContextMenuPrimitive.Portal;
26147
26456
  var ContextMenuSub = ContextMenuPrimitive.Sub;
26148
26457
  var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
26149
- var ContextMenuSubTrigger = React45.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
26458
+ var ContextMenuSubTrigger = React44.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
26150
26459
  ContextMenuPrimitive.SubTrigger,
26151
26460
  {
26152
26461
  ref,
@@ -26163,7 +26472,7 @@ var ContextMenuSubTrigger = React45.forwardRef(({ className, inset, children, ..
26163
26472
  }
26164
26473
  ));
26165
26474
  ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
26166
- var ContextMenuSubContent = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
26475
+ var ContextMenuSubContent = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
26167
26476
  ContextMenuPrimitive.SubContent,
26168
26477
  {
26169
26478
  ref,
@@ -26175,7 +26484,7 @@ var ContextMenuSubContent = React45.forwardRef(({ className, ...props }, ref) =>
26175
26484
  }
26176
26485
  ));
26177
26486
  ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
26178
- var ContextMenuContent = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
26487
+ var ContextMenuContent = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
26179
26488
  ContextMenuPrimitive.Content,
26180
26489
  {
26181
26490
  ref,
@@ -26187,7 +26496,7 @@ var ContextMenuContent = React45.forwardRef(({ className, ...props }, ref) => /*
26187
26496
  }
26188
26497
  ) }));
26189
26498
  ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
26190
- var ContextMenuItem = React45.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
26499
+ var ContextMenuItem = React44.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
26191
26500
  ContextMenuPrimitive.Item,
26192
26501
  {
26193
26502
  ref,
@@ -26200,7 +26509,7 @@ var ContextMenuItem = React45.forwardRef(({ className, inset, ...props }, ref) =
26200
26509
  }
26201
26510
  ));
26202
26511
  ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
26203
- var ContextMenuCheckboxItem = React45.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
26512
+ var ContextMenuCheckboxItem = React44.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
26204
26513
  ContextMenuPrimitive.CheckboxItem,
26205
26514
  {
26206
26515
  ref,
@@ -26217,7 +26526,7 @@ var ContextMenuCheckboxItem = React45.forwardRef(({ className, children, checked
26217
26526
  }
26218
26527
  ));
26219
26528
  ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
26220
- var ContextMenuRadioItem = React45.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
26529
+ var ContextMenuRadioItem = React44.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
26221
26530
  ContextMenuPrimitive.RadioItem,
26222
26531
  {
26223
26532
  ref,
@@ -26233,7 +26542,7 @@ var ContextMenuRadioItem = React45.forwardRef(({ className, children, ...props }
26233
26542
  }
26234
26543
  ));
26235
26544
  ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
26236
- var ContextMenuLabel = React45.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
26545
+ var ContextMenuLabel = React44.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
26237
26546
  ContextMenuPrimitive.Label,
26238
26547
  {
26239
26548
  ref,
@@ -26242,7 +26551,7 @@ var ContextMenuLabel = React45.forwardRef(({ className, inset, ...props }, ref)
26242
26551
  }
26243
26552
  ));
26244
26553
  ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
26245
- var ContextMenuSeparator = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ContextMenuPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-border", className), ...props }));
26554
+ var ContextMenuSeparator = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ContextMenuPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-border", className), ...props }));
26246
26555
  ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
26247
26556
  var ContextMenuShortcut = ({ className, ...props }) => {
26248
26557
  return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className), ...props });
@@ -26250,31 +26559,31 @@ var ContextMenuShortcut = ({ className, ...props }) => {
26250
26559
  ContextMenuShortcut.displayName = "ContextMenuShortcut";
26251
26560
 
26252
26561
  // src/components/ui/form.tsx
26253
- var React47 = __toESM(require("react"), 1);
26562
+ var React46 = __toESM(require("react"), 1);
26254
26563
  var import_react_slot3 = require("@radix-ui/react-slot");
26255
26564
  var import_react_hook_form = require("react-hook-form");
26256
26565
 
26257
26566
  // src/components/ui/label.tsx
26258
- var React46 = __toESM(require("react"), 1);
26567
+ var React45 = __toESM(require("react"), 1);
26259
26568
  var LabelPrimitive = __toESM(require("@radix-ui/react-label"), 1);
26260
26569
  var import_class_variance_authority4 = require("class-variance-authority");
26261
26570
  var import_jsx_runtime68 = require("react/jsx-runtime");
26262
26571
  var labelVariants = (0, import_class_variance_authority4.cva)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70");
26263
- var Label4 = React46.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(LabelPrimitive.Root, { ref, className: cn(labelVariants(), className), ...props }));
26572
+ var Label4 = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(LabelPrimitive.Root, { ref, className: cn(labelVariants(), className), ...props }));
26264
26573
  Label4.displayName = LabelPrimitive.Root.displayName;
26265
26574
 
26266
26575
  // src/components/ui/form.tsx
26267
26576
  var import_jsx_runtime69 = require("react/jsx-runtime");
26268
26577
  var Form = import_react_hook_form.FormProvider;
26269
- var FormFieldContext = React47.createContext({});
26578
+ var FormFieldContext = React46.createContext({});
26270
26579
  var FormField = ({
26271
26580
  ...props
26272
26581
  }) => {
26273
26582
  return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react_hook_form.Controller, { ...props }) });
26274
26583
  };
26275
26584
  var useFormField = () => {
26276
- const fieldContext = React47.useContext(FormFieldContext);
26277
- const itemContext = React47.useContext(FormItemContext);
26585
+ const fieldContext = React46.useContext(FormFieldContext);
26586
+ const itemContext = React46.useContext(FormItemContext);
26278
26587
  const { getFieldState, formState } = (0, import_react_hook_form.useFormContext)();
26279
26588
  const fieldState = getFieldState(fieldContext.name, formState);
26280
26589
  if (!fieldContext) {
@@ -26290,20 +26599,20 @@ var useFormField = () => {
26290
26599
  ...fieldState
26291
26600
  };
26292
26601
  };
26293
- var FormItemContext = React47.createContext({});
26294
- var FormItem = React47.forwardRef(
26602
+ var FormItemContext = React46.createContext({});
26603
+ var FormItem = React46.forwardRef(
26295
26604
  ({ className, ...props }, ref) => {
26296
- const id = React47.useId();
26605
+ const id = React46.useId();
26297
26606
  return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { ref, className: cn("space-y-2", className), ...props }) });
26298
26607
  }
26299
26608
  );
26300
26609
  FormItem.displayName = "FormItem";
26301
- var FormLabel = React47.forwardRef(({ className, ...props }, ref) => {
26610
+ var FormLabel = React46.forwardRef(({ className, ...props }, ref) => {
26302
26611
  const { error, formItemId } = useFormField();
26303
26612
  return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Label4, { ref, className: cn(error && "text-destructive", className), htmlFor: formItemId, ...props });
26304
26613
  });
26305
26614
  FormLabel.displayName = "FormLabel";
26306
- var FormControl = React47.forwardRef(
26615
+ var FormControl = React46.forwardRef(
26307
26616
  ({ ...props }, ref) => {
26308
26617
  const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
26309
26618
  return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
@@ -26319,14 +26628,14 @@ var FormControl = React47.forwardRef(
26319
26628
  }
26320
26629
  );
26321
26630
  FormControl.displayName = "FormControl";
26322
- var FormDescription = React47.forwardRef(
26631
+ var FormDescription = React46.forwardRef(
26323
26632
  ({ className, ...props }, ref) => {
26324
26633
  const { formDescriptionId } = useFormField();
26325
26634
  return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("p", { ref, id: formDescriptionId, className: cn("text-sm text-muted-foreground", className), ...props });
26326
26635
  }
26327
26636
  );
26328
26637
  FormDescription.displayName = "FormDescription";
26329
- var FormMessage = React47.forwardRef(
26638
+ var FormMessage = React46.forwardRef(
26330
26639
  ({ className, children, ...props }, ref) => {
26331
26640
  const { error, formMessageId } = useFormField();
26332
26641
  const body = error ? String(error == null ? void 0 : error.message) : children;
@@ -26339,12 +26648,12 @@ var FormMessage = React47.forwardRef(
26339
26648
  FormMessage.displayName = "FormMessage";
26340
26649
 
26341
26650
  // src/components/ui/hover-card.tsx
26342
- var React48 = __toESM(require("react"), 1);
26651
+ var React47 = __toESM(require("react"), 1);
26343
26652
  var HoverCardPrimitive = __toESM(require("@radix-ui/react-hover-card"), 1);
26344
26653
  var import_jsx_runtime70 = require("react/jsx-runtime");
26345
26654
  var HoverCard = HoverCardPrimitive.Root;
26346
26655
  var HoverCardTrigger = HoverCardPrimitive.Trigger;
26347
- var HoverCardContent = React48.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
26656
+ var HoverCardContent = React47.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
26348
26657
  HoverCardPrimitive.Content,
26349
26658
  {
26350
26659
  ref,
@@ -26360,11 +26669,11 @@ var HoverCardContent = React48.forwardRef(({ className, align = "center", sideOf
26360
26669
  HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
26361
26670
 
26362
26671
  // src/components/ui/input-otp.tsx
26363
- var React49 = __toESM(require("react"), 1);
26672
+ var React48 = __toESM(require("react"), 1);
26364
26673
  var import_input_otp = require("input-otp");
26365
26674
  var import_lucide_react23 = require("lucide-react");
26366
26675
  var import_jsx_runtime71 = require("react/jsx-runtime");
26367
- var InputOTP = React49.forwardRef(
26676
+ var InputOTP = React48.forwardRef(
26368
26677
  ({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
26369
26678
  import_input_otp.OTPInput,
26370
26679
  {
@@ -26376,12 +26685,12 @@ var InputOTP = React49.forwardRef(
26376
26685
  )
26377
26686
  );
26378
26687
  InputOTP.displayName = "InputOTP";
26379
- var InputOTPGroup = React49.forwardRef(
26688
+ var InputOTPGroup = React48.forwardRef(
26380
26689
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { ref, className: cn("flex items-center", className), ...props })
26381
26690
  );
26382
26691
  InputOTPGroup.displayName = "InputOTPGroup";
26383
- var InputOTPSlot = React49.forwardRef(({ index, className, ...props }, ref) => {
26384
- const inputOTPContext = React49.useContext(import_input_otp.OTPInputContext);
26692
+ var InputOTPSlot = React48.forwardRef(({ index, className, ...props }, ref) => {
26693
+ const inputOTPContext = React48.useContext(import_input_otp.OTPInputContext);
26385
26694
  const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];
26386
26695
  return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
26387
26696
  "div",
@@ -26401,13 +26710,13 @@ var InputOTPSlot = React49.forwardRef(({ index, className, ...props }, ref) => {
26401
26710
  );
26402
26711
  });
26403
26712
  InputOTPSlot.displayName = "InputOTPSlot";
26404
- var InputOTPSeparator = React49.forwardRef(
26713
+ var InputOTPSeparator = React48.forwardRef(
26405
26714
  ({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_lucide_react23.Dot, {}) })
26406
26715
  );
26407
26716
  InputOTPSeparator.displayName = "InputOTPSeparator";
26408
26717
 
26409
26718
  // src/components/ui/menubar.tsx
26410
- var React50 = __toESM(require("react"), 1);
26719
+ var React49 = __toESM(require("react"), 1);
26411
26720
  var MenubarPrimitive = __toESM(require("@radix-ui/react-menubar"), 1);
26412
26721
  var import_lucide_react24 = require("lucide-react");
26413
26722
  var import_jsx_runtime72 = require("react/jsx-runtime");
@@ -26416,7 +26725,7 @@ var MenubarGroup = MenubarPrimitive.Group;
26416
26725
  var MenubarPortal = MenubarPrimitive.Portal;
26417
26726
  var MenubarSub = MenubarPrimitive.Sub;
26418
26727
  var MenubarRadioGroup = MenubarPrimitive.RadioGroup;
26419
- var Menubar = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
26728
+ var Menubar = React49.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
26420
26729
  MenubarPrimitive.Root,
26421
26730
  {
26422
26731
  ref,
@@ -26425,7 +26734,7 @@ var Menubar = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE__
26425
26734
  }
26426
26735
  ));
26427
26736
  Menubar.displayName = MenubarPrimitive.Root.displayName;
26428
- var MenubarTrigger = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
26737
+ var MenubarTrigger = React49.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
26429
26738
  MenubarPrimitive.Trigger,
26430
26739
  {
26431
26740
  ref,
@@ -26437,7 +26746,7 @@ var MenubarTrigger = React50.forwardRef(({ className, ...props }, ref) => /* @__
26437
26746
  }
26438
26747
  ));
26439
26748
  MenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;
26440
- var MenubarSubTrigger = React50.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
26749
+ var MenubarSubTrigger = React49.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
26441
26750
  MenubarPrimitive.SubTrigger,
26442
26751
  {
26443
26752
  ref,
@@ -26454,7 +26763,7 @@ var MenubarSubTrigger = React50.forwardRef(({ className, inset, children, ...pro
26454
26763
  }
26455
26764
  ));
26456
26765
  MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
26457
- var MenubarSubContent = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
26766
+ var MenubarSubContent = React49.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
26458
26767
  MenubarPrimitive.SubContent,
26459
26768
  {
26460
26769
  ref,
@@ -26466,7 +26775,7 @@ var MenubarSubContent = React50.forwardRef(({ className, ...props }, ref) => /*
26466
26775
  }
26467
26776
  ));
26468
26777
  MenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;
26469
- var MenubarContent = React50.forwardRef(({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(MenubarPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
26778
+ var MenubarContent = React49.forwardRef(({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(MenubarPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
26470
26779
  MenubarPrimitive.Content,
26471
26780
  {
26472
26781
  ref,
@@ -26481,7 +26790,7 @@ var MenubarContent = React50.forwardRef(({ className, align = "start", alignOffs
26481
26790
  }
26482
26791
  ) }));
26483
26792
  MenubarContent.displayName = MenubarPrimitive.Content.displayName;
26484
- var MenubarItem = React50.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
26793
+ var MenubarItem = React49.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
26485
26794
  MenubarPrimitive.Item,
26486
26795
  {
26487
26796
  ref,
@@ -26494,7 +26803,7 @@ var MenubarItem = React50.forwardRef(({ className, inset, ...props }, ref) => /*
26494
26803
  }
26495
26804
  ));
26496
26805
  MenubarItem.displayName = MenubarPrimitive.Item.displayName;
26497
- var MenubarCheckboxItem = React50.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
26806
+ var MenubarCheckboxItem = React49.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
26498
26807
  MenubarPrimitive.CheckboxItem,
26499
26808
  {
26500
26809
  ref,
@@ -26511,7 +26820,7 @@ var MenubarCheckboxItem = React50.forwardRef(({ className, children, checked, ..
26511
26820
  }
26512
26821
  ));
26513
26822
  MenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;
26514
- var MenubarRadioItem = React50.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
26823
+ var MenubarRadioItem = React49.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
26515
26824
  MenubarPrimitive.RadioItem,
26516
26825
  {
26517
26826
  ref,
@@ -26527,7 +26836,7 @@ var MenubarRadioItem = React50.forwardRef(({ className, children, ...props }, re
26527
26836
  }
26528
26837
  ));
26529
26838
  MenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;
26530
- var MenubarLabel = React50.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
26839
+ var MenubarLabel = React49.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
26531
26840
  MenubarPrimitive.Label,
26532
26841
  {
26533
26842
  ref,
@@ -26536,7 +26845,7 @@ var MenubarLabel = React50.forwardRef(({ className, inset, ...props }, ref) => /
26536
26845
  }
26537
26846
  ));
26538
26847
  MenubarLabel.displayName = MenubarPrimitive.Label.displayName;
26539
- var MenubarSeparator = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(MenubarPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-muted", className), ...props }));
26848
+ var MenubarSeparator = React49.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(MenubarPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-muted", className), ...props }));
26540
26849
  MenubarSeparator.displayName = MenubarPrimitive.Separator.displayName;
26541
26850
  var MenubarShortcut = ({ className, ...props }) => {
26542
26851
  return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("span", { className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className), ...props });
@@ -26544,12 +26853,12 @@ var MenubarShortcut = ({ className, ...props }) => {
26544
26853
  MenubarShortcut.displayname = "MenubarShortcut";
26545
26854
 
26546
26855
  // src/components/ui/navigation-menu.tsx
26547
- var React51 = __toESM(require("react"), 1);
26856
+ var React50 = __toESM(require("react"), 1);
26548
26857
  var NavigationMenuPrimitive = __toESM(require("@radix-ui/react-navigation-menu"), 1);
26549
26858
  var import_class_variance_authority5 = require("class-variance-authority");
26550
26859
  var import_lucide_react25 = require("lucide-react");
26551
26860
  var import_jsx_runtime73 = require("react/jsx-runtime");
26552
- var NavigationMenu = React51.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
26861
+ var NavigationMenu = React50.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
26553
26862
  NavigationMenuPrimitive.Root,
26554
26863
  {
26555
26864
  ref,
@@ -26562,7 +26871,7 @@ var NavigationMenu = React51.forwardRef(({ className, children, ...props }, ref)
26562
26871
  }
26563
26872
  ));
26564
26873
  NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
26565
- var NavigationMenuList = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
26874
+ var NavigationMenuList = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
26566
26875
  NavigationMenuPrimitive.List,
26567
26876
  {
26568
26877
  ref,
@@ -26575,7 +26884,7 @@ var NavigationMenuItem = NavigationMenuPrimitive.Item;
26575
26884
  var navigationMenuTriggerStyle = (0, import_class_variance_authority5.cva)(
26576
26885
  "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"
26577
26886
  );
26578
- var NavigationMenuTrigger = React51.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
26887
+ var NavigationMenuTrigger = React50.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
26579
26888
  NavigationMenuPrimitive.Trigger,
26580
26889
  {
26581
26890
  ref,
@@ -26595,7 +26904,7 @@ var NavigationMenuTrigger = React51.forwardRef(({ className, children, ...props
26595
26904
  }
26596
26905
  ));
26597
26906
  NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
26598
- var NavigationMenuContent = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
26907
+ var NavigationMenuContent = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
26599
26908
  NavigationMenuPrimitive.Content,
26600
26909
  {
26601
26910
  ref,
@@ -26608,7 +26917,7 @@ var NavigationMenuContent = React51.forwardRef(({ className, ...props }, ref) =>
26608
26917
  ));
26609
26918
  NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
26610
26919
  var NavigationMenuLink = NavigationMenuPrimitive.Link;
26611
- var NavigationMenuViewport = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
26920
+ var NavigationMenuViewport = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
26612
26921
  NavigationMenuPrimitive.Viewport,
26613
26922
  {
26614
26923
  className: cn(
@@ -26620,7 +26929,7 @@ var NavigationMenuViewport = React51.forwardRef(({ className, ...props }, ref) =
26620
26929
  }
26621
26930
  ) }));
26622
26931
  NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
26623
- var NavigationMenuIndicator = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
26932
+ var NavigationMenuIndicator = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
26624
26933
  NavigationMenuPrimitive.Indicator,
26625
26934
  {
26626
26935
  ref,
@@ -26635,7 +26944,7 @@ var NavigationMenuIndicator = React51.forwardRef(({ className, ...props }, ref)
26635
26944
  NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName;
26636
26945
 
26637
26946
  // src/components/ui/pagination.tsx
26638
- var React52 = __toESM(require("react"), 1);
26947
+ var React51 = __toESM(require("react"), 1);
26639
26948
  var import_lucide_react26 = require("lucide-react");
26640
26949
  var import_jsx_runtime74 = require("react/jsx-runtime");
26641
26950
  var Pagination = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
@@ -26648,11 +26957,11 @@ var Pagination = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_run
26648
26957
  }
26649
26958
  );
26650
26959
  Pagination.displayName = "Pagination";
26651
- var PaginationContent = React52.forwardRef(
26960
+ var PaginationContent = React51.forwardRef(
26652
26961
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("ul", { ref, className: cn("flex flex-row items-center gap-1", className), ...props })
26653
26962
  );
26654
26963
  PaginationContent.displayName = "PaginationContent";
26655
- var PaginationItem = React52.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("li", { ref, className: cn("", className), ...props }));
26964
+ var PaginationItem = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("li", { ref, className: cn("", className), ...props }));
26656
26965
  PaginationItem.displayName = "PaginationItem";
26657
26966
  var PaginationLink = ({ className, isActive, size = "icon", ...props }) => /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
26658
26967
  "a",
@@ -26686,12 +26995,12 @@ var PaginationEllipsis = ({ className, ...props }) => /* @__PURE__ */ (0, import
26686
26995
  PaginationEllipsis.displayName = "PaginationEllipsis";
26687
26996
 
26688
26997
  // src/components/ui/popover.tsx
26689
- var React53 = __toESM(require("react"), 1);
26998
+ var React52 = __toESM(require("react"), 1);
26690
26999
  var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"), 1);
26691
27000
  var import_jsx_runtime75 = require("react/jsx-runtime");
26692
27001
  var Popover = PopoverPrimitive.Root;
26693
27002
  var PopoverTrigger = PopoverPrimitive.Trigger;
26694
- var PopoverContent = React53.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(PopoverPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
27003
+ var PopoverContent = React52.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(PopoverPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
26695
27004
  PopoverPrimitive.Content,
26696
27005
  {
26697
27006
  ref,
@@ -26707,15 +27016,15 @@ var PopoverContent = React53.forwardRef(({ className, align = "center", sideOffs
26707
27016
  PopoverContent.displayName = PopoverPrimitive.Content.displayName;
26708
27017
 
26709
27018
  // src/components/ui/radio-group.tsx
26710
- var React54 = __toESM(require("react"), 1);
27019
+ var React53 = __toESM(require("react"), 1);
26711
27020
  var RadioGroupPrimitive = __toESM(require("@radix-ui/react-radio-group"), 1);
26712
27021
  var import_lucide_react27 = require("lucide-react");
26713
27022
  var import_jsx_runtime76 = require("react/jsx-runtime");
26714
- var RadioGroup4 = React54.forwardRef(({ className, ...props }, ref) => {
27023
+ var RadioGroup4 = React53.forwardRef(({ className, ...props }, ref) => {
26715
27024
  return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(RadioGroupPrimitive.Root, { className: cn("grid gap-2", className), ...props, ref });
26716
27025
  });
26717
27026
  RadioGroup4.displayName = RadioGroupPrimitive.Root.displayName;
26718
- var RadioGroupItem = React54.forwardRef(({ className, ...props }, ref) => {
27027
+ var RadioGroupItem = React53.forwardRef(({ className, ...props }, ref) => {
26719
27028
  return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
26720
27029
  RadioGroupPrimitive.Item,
26721
27030
  {
@@ -26760,10 +27069,10 @@ var ResizableHandle = ({
26760
27069
  );
26761
27070
 
26762
27071
  // src/components/ui/separator.tsx
26763
- var React55 = __toESM(require("react"), 1);
27072
+ var React54 = __toESM(require("react"), 1);
26764
27073
  var SeparatorPrimitive = __toESM(require("@radix-ui/react-separator"), 1);
26765
27074
  var import_jsx_runtime78 = require("react/jsx-runtime");
26766
- var Separator5 = React55.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
27075
+ var Separator5 = React54.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
26767
27076
  SeparatorPrimitive.Root,
26768
27077
  {
26769
27078
  ref,
@@ -26779,13 +27088,13 @@ Separator5.displayName = SeparatorPrimitive.Root.displayName;
26779
27088
  var SheetPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
26780
27089
  var import_class_variance_authority6 = require("class-variance-authority");
26781
27090
  var import_lucide_react29 = require("lucide-react");
26782
- var React56 = __toESM(require("react"), 1);
27091
+ var React55 = __toESM(require("react"), 1);
26783
27092
  var import_jsx_runtime79 = require("react/jsx-runtime");
26784
27093
  var Sheet = SheetPrimitive.Root;
26785
27094
  var SheetTrigger = SheetPrimitive.Trigger;
26786
27095
  var SheetClose = SheetPrimitive.Close;
26787
27096
  var SheetPortal = SheetPrimitive.Portal;
26788
- var SheetOverlay = React56.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
27097
+ var SheetOverlay = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
26789
27098
  SheetPrimitive.Overlay,
26790
27099
  {
26791
27100
  className: cn(
@@ -26813,7 +27122,7 @@ var sheetVariants = (0, import_class_variance_authority6.cva)(
26813
27122
  }
26814
27123
  }
26815
27124
  );
26816
- var SheetContent = React56.forwardRef(
27125
+ var SheetContent = React55.forwardRef(
26817
27126
  ({
26818
27127
  side = "right",
26819
27128
  className,
@@ -26847,23 +27156,23 @@ var SheetHeader = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_ru
26847
27156
  SheetHeader.displayName = "SheetHeader";
26848
27157
  var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
26849
27158
  SheetFooter.displayName = "SheetFooter";
26850
- var SheetTitle = React56.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(SheetPrimitive.Title, { ref, className: cn("text-lg font-semibold text-foreground", className), ...props }));
27159
+ var SheetTitle = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(SheetPrimitive.Title, { ref, className: cn("text-lg font-semibold text-foreground", className), ...props }));
26851
27160
  SheetTitle.displayName = SheetPrimitive.Title.displayName;
26852
- var SheetDescription = React56.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(SheetPrimitive.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
27161
+ var SheetDescription = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(SheetPrimitive.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
26853
27162
  SheetDescription.displayName = SheetPrimitive.Description.displayName;
26854
27163
 
26855
27164
  // src/components/ui/sidebar.tsx
26856
- var React58 = __toESM(require("react"), 1);
27165
+ var React57 = __toESM(require("react"), 1);
26857
27166
  var import_react_slot4 = require("@radix-ui/react-slot");
26858
27167
  var import_class_variance_authority7 = require("class-variance-authority");
26859
27168
  var import_lucide_react30 = require("lucide-react");
26860
27169
 
26861
27170
  // src/hooks/use-mobile.tsx
26862
- var React57 = __toESM(require("react"), 1);
27171
+ var React56 = __toESM(require("react"), 1);
26863
27172
  var MOBILE_BREAKPOINT = 768;
26864
27173
  function useIsMobile() {
26865
- const [isMobile, setIsMobile] = React57.useState(void 0);
26866
- React57.useEffect(() => {
27174
+ const [isMobile, setIsMobile] = React56.useState(void 0);
27175
+ React56.useEffect(() => {
26867
27176
  const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
26868
27177
  const onChange = () => {
26869
27178
  setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
@@ -26883,20 +27192,20 @@ var SIDEBAR_WIDTH = "16rem";
26883
27192
  var SIDEBAR_WIDTH_MOBILE = "18rem";
26884
27193
  var SIDEBAR_WIDTH_ICON = "3rem";
26885
27194
  var SIDEBAR_KEYBOARD_SHORTCUT = "b";
26886
- var SidebarContext = React58.createContext(null);
27195
+ var SidebarContext = React57.createContext(null);
26887
27196
  function useSidebar() {
26888
- const context = React58.useContext(SidebarContext);
27197
+ const context = React57.useContext(SidebarContext);
26889
27198
  if (!context) {
26890
27199
  throw new Error("useSidebar must be used within a SidebarProvider.");
26891
27200
  }
26892
27201
  return context;
26893
27202
  }
26894
- var SidebarProvider = React58.forwardRef(({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }, ref) => {
27203
+ var SidebarProvider = React57.forwardRef(({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }, ref) => {
26895
27204
  const isMobile = useIsMobile();
26896
- const [openMobile, setOpenMobile] = React58.useState(false);
26897
- const [_open, _setOpen] = React58.useState(defaultOpen);
27205
+ const [openMobile, setOpenMobile] = React57.useState(false);
27206
+ const [_open, _setOpen] = React57.useState(defaultOpen);
26898
27207
  const open = openProp != null ? openProp : _open;
26899
- const setOpen = React58.useCallback(
27208
+ const setOpen = React57.useCallback(
26900
27209
  (value) => {
26901
27210
  const openState = typeof value === "function" ? value(open) : value;
26902
27211
  if (setOpenProp) {
@@ -26908,10 +27217,10 @@ var SidebarProvider = React58.forwardRef(({ defaultOpen = true, open: openProp,
26908
27217
  },
26909
27218
  [setOpenProp, open]
26910
27219
  );
26911
- const toggleSidebar = React58.useCallback(() => {
27220
+ const toggleSidebar = React57.useCallback(() => {
26912
27221
  return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
26913
27222
  }, [isMobile, setOpen, setOpenMobile]);
26914
- React58.useEffect(() => {
27223
+ React57.useEffect(() => {
26915
27224
  const handleKeyDown = (event) => {
26916
27225
  if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
26917
27226
  event.preventDefault();
@@ -26922,7 +27231,7 @@ var SidebarProvider = React58.forwardRef(({ defaultOpen = true, open: openProp,
26922
27231
  return () => window.removeEventListener("keydown", handleKeyDown);
26923
27232
  }, [toggleSidebar]);
26924
27233
  const state = open ? "expanded" : "collapsed";
26925
- const contextValue = React58.useMemo(
27234
+ const contextValue = React57.useMemo(
26926
27235
  () => ({
26927
27236
  state,
26928
27237
  open,
@@ -26950,7 +27259,7 @@ var SidebarProvider = React58.forwardRef(({ defaultOpen = true, open: openProp,
26950
27259
  ) }) });
26951
27260
  });
26952
27261
  SidebarProvider.displayName = "SidebarProvider";
26953
- var Sidebar = React58.forwardRef(({ side = "left", variant = "sidebar", collapsible = "offcanvas", className, children, ...props }, ref) => {
27262
+ var Sidebar = React57.forwardRef(({ side = "left", variant = "sidebar", collapsible = "offcanvas", className, children, ...props }, ref) => {
26954
27263
  const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
26955
27264
  if (collapsible === "none") {
26956
27265
  return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
@@ -27025,7 +27334,7 @@ var Sidebar = React58.forwardRef(({ side = "left", variant = "sidebar", collapsi
27025
27334
  );
27026
27335
  });
27027
27336
  Sidebar.displayName = "Sidebar";
27028
- var SidebarTrigger = React58.forwardRef(
27337
+ var SidebarTrigger = React57.forwardRef(
27029
27338
  ({ className, onClick, ...props }, ref) => {
27030
27339
  const { toggleSidebar } = useSidebar();
27031
27340
  return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
@@ -27050,7 +27359,7 @@ var SidebarTrigger = React58.forwardRef(
27050
27359
  }
27051
27360
  );
27052
27361
  SidebarTrigger.displayName = "SidebarTrigger";
27053
- var SidebarRail = React58.forwardRef(
27362
+ var SidebarRail = React57.forwardRef(
27054
27363
  ({ className, ...props }, ref) => {
27055
27364
  const { toggleSidebar } = useSidebar();
27056
27365
  return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
@@ -27077,7 +27386,7 @@ var SidebarRail = React58.forwardRef(
27077
27386
  }
27078
27387
  );
27079
27388
  SidebarRail.displayName = "SidebarRail";
27080
- var SidebarInset = React58.forwardRef(({ className, ...props }, ref) => {
27389
+ var SidebarInset = React57.forwardRef(({ className, ...props }, ref) => {
27081
27390
  return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
27082
27391
  "main",
27083
27392
  {
@@ -27092,7 +27401,7 @@ var SidebarInset = React58.forwardRef(({ className, ...props }, ref) => {
27092
27401
  );
27093
27402
  });
27094
27403
  SidebarInset.displayName = "SidebarInset";
27095
- var SidebarInput = React58.forwardRef(
27404
+ var SidebarInput = React57.forwardRef(
27096
27405
  ({ className, ...props }, ref) => {
27097
27406
  return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
27098
27407
  Input,
@@ -27109,15 +27418,15 @@ var SidebarInput = React58.forwardRef(
27109
27418
  }
27110
27419
  );
27111
27420
  SidebarInput.displayName = "SidebarInput";
27112
- var SidebarHeader = React58.forwardRef(({ className, ...props }, ref) => {
27421
+ var SidebarHeader = React57.forwardRef(({ className, ...props }, ref) => {
27113
27422
  return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { ref, "data-sidebar": "header", className: cn("flex flex-col gap-2 p-2", className), ...props });
27114
27423
  });
27115
27424
  SidebarHeader.displayName = "SidebarHeader";
27116
- var SidebarFooter = React58.forwardRef(({ className, ...props }, ref) => {
27425
+ var SidebarFooter = React57.forwardRef(({ className, ...props }, ref) => {
27117
27426
  return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { ref, "data-sidebar": "footer", className: cn("flex flex-col gap-2 p-2", className), ...props });
27118
27427
  });
27119
27428
  SidebarFooter.displayName = "SidebarFooter";
27120
- var SidebarSeparator = React58.forwardRef(
27429
+ var SidebarSeparator = React57.forwardRef(
27121
27430
  ({ className, ...props }, ref) => {
27122
27431
  return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
27123
27432
  Separator5,
@@ -27131,7 +27440,7 @@ var SidebarSeparator = React58.forwardRef(
27131
27440
  }
27132
27441
  );
27133
27442
  SidebarSeparator.displayName = "SidebarSeparator";
27134
- var SidebarContent = React58.forwardRef(({ className, ...props }, ref) => {
27443
+ var SidebarContent = React57.forwardRef(({ className, ...props }, ref) => {
27135
27444
  return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
27136
27445
  "div",
27137
27446
  {
@@ -27146,7 +27455,7 @@ var SidebarContent = React58.forwardRef(({ className, ...props }, ref) => {
27146
27455
  );
27147
27456
  });
27148
27457
  SidebarContent.displayName = "SidebarContent";
27149
- var SidebarGroup = React58.forwardRef(({ className, ...props }, ref) => {
27458
+ var SidebarGroup = React57.forwardRef(({ className, ...props }, ref) => {
27150
27459
  return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
27151
27460
  "div",
27152
27461
  {
@@ -27158,7 +27467,7 @@ var SidebarGroup = React58.forwardRef(({ className, ...props }, ref) => {
27158
27467
  );
27159
27468
  });
27160
27469
  SidebarGroup.displayName = "SidebarGroup";
27161
- var SidebarGroupLabel = React58.forwardRef(
27470
+ var SidebarGroupLabel = React57.forwardRef(
27162
27471
  ({ className, asChild = false, ...props }, ref) => {
27163
27472
  const Comp = asChild ? import_react_slot4.Slot : "div";
27164
27473
  return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
@@ -27177,7 +27486,7 @@ var SidebarGroupLabel = React58.forwardRef(
27177
27486
  }
27178
27487
  );
27179
27488
  SidebarGroupLabel.displayName = "SidebarGroupLabel";
27180
- var SidebarGroupAction = React58.forwardRef(
27489
+ var SidebarGroupAction = React57.forwardRef(
27181
27490
  ({ className, asChild = false, ...props }, ref) => {
27182
27491
  const Comp = asChild ? import_react_slot4.Slot : "button";
27183
27492
  return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
@@ -27198,13 +27507,13 @@ var SidebarGroupAction = React58.forwardRef(
27198
27507
  }
27199
27508
  );
27200
27509
  SidebarGroupAction.displayName = "SidebarGroupAction";
27201
- var SidebarGroupContent = React58.forwardRef(
27510
+ var SidebarGroupContent = React57.forwardRef(
27202
27511
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { ref, "data-sidebar": "group-content", className: cn("w-full text-sm", className), ...props })
27203
27512
  );
27204
27513
  SidebarGroupContent.displayName = "SidebarGroupContent";
27205
- var SidebarMenu = React58.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("ul", { ref, "data-sidebar": "menu", className: cn("flex w-full min-w-0 flex-col gap-1", className), ...props }));
27514
+ var SidebarMenu = React57.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("ul", { ref, "data-sidebar": "menu", className: cn("flex w-full min-w-0 flex-col gap-1", className), ...props }));
27206
27515
  SidebarMenu.displayName = "SidebarMenu";
27207
- var SidebarMenuItem = React58.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("li", { ref, "data-sidebar": "menu-item", className: cn("group/menu-item relative", className), ...props }));
27516
+ var SidebarMenuItem = React57.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("li", { ref, "data-sidebar": "menu-item", className: cn("group/menu-item relative", className), ...props }));
27208
27517
  SidebarMenuItem.displayName = "SidebarMenuItem";
27209
27518
  var sidebarMenuButtonVariants = (0, import_class_variance_authority7.cva)(
27210
27519
  "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",
@@ -27226,7 +27535,7 @@ var sidebarMenuButtonVariants = (0, import_class_variance_authority7.cva)(
27226
27535
  }
27227
27536
  }
27228
27537
  );
27229
- var SidebarMenuButton = React58.forwardRef(({ asChild = false, isActive = false, variant = "default", size = "default", tooltip, className, ...props }, ref) => {
27538
+ var SidebarMenuButton = React57.forwardRef(({ asChild = false, isActive = false, variant = "default", size = "default", tooltip, className, ...props }, ref) => {
27230
27539
  const Comp = asChild ? import_react_slot4.Slot : "button";
27231
27540
  const { isMobile, state } = useSidebar();
27232
27541
  const button = /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
@@ -27254,7 +27563,7 @@ var SidebarMenuButton = React58.forwardRef(({ asChild = false, isActive = false,
27254
27563
  ] });
27255
27564
  });
27256
27565
  SidebarMenuButton.displayName = "SidebarMenuButton";
27257
- var SidebarMenuAction = React58.forwardRef(({ className, asChild = false, showOnHover = false, ...props }, ref) => {
27566
+ var SidebarMenuAction = React57.forwardRef(({ className, asChild = false, showOnHover = false, ...props }, ref) => {
27258
27567
  const Comp = asChild ? import_react_slot4.Slot : "button";
27259
27568
  return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
27260
27569
  Comp,
@@ -27277,7 +27586,7 @@ var SidebarMenuAction = React58.forwardRef(({ className, asChild = false, showOn
27277
27586
  );
27278
27587
  });
27279
27588
  SidebarMenuAction.displayName = "SidebarMenuAction";
27280
- var SidebarMenuBadge = React58.forwardRef(
27589
+ var SidebarMenuBadge = React57.forwardRef(
27281
27590
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
27282
27591
  "div",
27283
27592
  {
@@ -27297,8 +27606,8 @@ var SidebarMenuBadge = React58.forwardRef(
27297
27606
  )
27298
27607
  );
27299
27608
  SidebarMenuBadge.displayName = "SidebarMenuBadge";
27300
- var SidebarMenuSkeleton = React58.forwardRef(({ className, showIcon = false, ...props }, ref) => {
27301
- const width = React58.useMemo(() => {
27609
+ var SidebarMenuSkeleton = React57.forwardRef(({ className, showIcon = false, ...props }, ref) => {
27610
+ const width = React57.useMemo(() => {
27302
27611
  return `${Math.floor(Math.random() * 40) + 50}%`;
27303
27612
  }, []);
27304
27613
  return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
@@ -27325,7 +27634,7 @@ var SidebarMenuSkeleton = React58.forwardRef(({ className, showIcon = false, ...
27325
27634
  );
27326
27635
  });
27327
27636
  SidebarMenuSkeleton.displayName = "SidebarMenuSkeleton";
27328
- var SidebarMenuSub = React58.forwardRef(
27637
+ var SidebarMenuSub = React57.forwardRef(
27329
27638
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
27330
27639
  "ul",
27331
27640
  {
@@ -27341,9 +27650,9 @@ var SidebarMenuSub = React58.forwardRef(
27341
27650
  )
27342
27651
  );
27343
27652
  SidebarMenuSub.displayName = "SidebarMenuSub";
27344
- var SidebarMenuSubItem = React58.forwardRef(({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("li", { ref, ...props }));
27653
+ var SidebarMenuSubItem = React57.forwardRef(({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("li", { ref, ...props }));
27345
27654
  SidebarMenuSubItem.displayName = "SidebarMenuSubItem";
27346
- var SidebarMenuSubButton = React58.forwardRef(({ asChild = false, size = "md", isActive, className, ...props }, ref) => {
27655
+ var SidebarMenuSubButton = React57.forwardRef(({ asChild = false, size = "md", isActive, className, ...props }, ref) => {
27347
27656
  const Comp = asChild ? import_react_slot4.Slot : "a";
27348
27657
  return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
27349
27658
  Comp,
@@ -27367,10 +27676,10 @@ var SidebarMenuSubButton = React58.forwardRef(({ asChild = false, size = "md", i
27367
27676
  SidebarMenuSubButton.displayName = "SidebarMenuSubButton";
27368
27677
 
27369
27678
  // src/components/ui/slider.tsx
27370
- var React59 = __toESM(require("react"), 1);
27679
+ var React58 = __toESM(require("react"), 1);
27371
27680
  var SliderPrimitive = __toESM(require("@radix-ui/react-slider"), 1);
27372
27681
  var import_jsx_runtime81 = require("react/jsx-runtime");
27373
- var Slider = React59.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
27682
+ var Slider = React58.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
27374
27683
  SliderPrimitive.Root,
27375
27684
  {
27376
27685
  ref,
@@ -27385,25 +27694,25 @@ var Slider = React59.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
27385
27694
  Slider.displayName = SliderPrimitive.Root.displayName;
27386
27695
 
27387
27696
  // src/components/ui/table.tsx
27388
- var React60 = __toESM(require("react"), 1);
27697
+ var React59 = __toESM(require("react"), 1);
27389
27698
  var import_jsx_runtime82 = require("react/jsx-runtime");
27390
- var Table = React60.forwardRef(
27699
+ var Table = React59.forwardRef(
27391
27700
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("table", { ref, className: cn("w-full caption-bottom text-sm", className), ...props }) })
27392
27701
  );
27393
27702
  Table.displayName = "Table";
27394
- var TableHeader = React60.forwardRef(
27703
+ var TableHeader = React59.forwardRef(
27395
27704
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("thead", { ref, className: cn("[&_tr]:border-b", className), ...props })
27396
27705
  );
27397
27706
  TableHeader.displayName = "TableHeader";
27398
- var TableBody = React60.forwardRef(
27707
+ var TableBody = React59.forwardRef(
27399
27708
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("tbody", { ref, className: cn("[&_tr:last-child]:border-0", className), ...props })
27400
27709
  );
27401
27710
  TableBody.displayName = "TableBody";
27402
- var TableFooter = React60.forwardRef(
27711
+ var TableFooter = React59.forwardRef(
27403
27712
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("tfoot", { ref, className: cn("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", className), ...props })
27404
27713
  );
27405
27714
  TableFooter.displayName = "TableFooter";
27406
- var TableRow = React60.forwardRef(
27715
+ var TableRow = React59.forwardRef(
27407
27716
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
27408
27717
  "tr",
27409
27718
  {
@@ -27414,7 +27723,7 @@ var TableRow = React60.forwardRef(
27414
27723
  )
27415
27724
  );
27416
27725
  TableRow.displayName = "TableRow";
27417
- var TableHead = React60.forwardRef(
27726
+ var TableHead = React59.forwardRef(
27418
27727
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
27419
27728
  "th",
27420
27729
  {
@@ -27428,23 +27737,23 @@ var TableHead = React60.forwardRef(
27428
27737
  )
27429
27738
  );
27430
27739
  TableHead.displayName = "TableHead";
27431
- var TableCell = React60.forwardRef(
27740
+ var TableCell = React59.forwardRef(
27432
27741
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("td", { ref, className: cn("p-4 align-middle [&:has([role=checkbox])]:pr-0", className), ...props })
27433
27742
  );
27434
27743
  TableCell.displayName = "TableCell";
27435
- var TableCaption = React60.forwardRef(
27744
+ var TableCaption = React59.forwardRef(
27436
27745
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("caption", { ref, className: cn("mt-4 text-sm text-muted-foreground", className), ...props })
27437
27746
  );
27438
27747
  TableCaption.displayName = "TableCaption";
27439
27748
 
27440
27749
  // src/components/ui/toast.tsx
27441
- var React61 = __toESM(require("react"), 1);
27750
+ var React60 = __toESM(require("react"), 1);
27442
27751
  var ToastPrimitives = __toESM(require("@radix-ui/react-toast"), 1);
27443
27752
  var import_class_variance_authority8 = require("class-variance-authority");
27444
27753
  var import_lucide_react31 = require("lucide-react");
27445
27754
  var import_jsx_runtime83 = require("react/jsx-runtime");
27446
27755
  var ToastProvider = ToastPrimitives.Provider;
27447
- var ToastViewport = React61.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
27756
+ var ToastViewport = React60.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
27448
27757
  ToastPrimitives.Viewport,
27449
27758
  {
27450
27759
  ref,
@@ -27470,11 +27779,11 @@ var toastVariants = (0, import_class_variance_authority8.cva)(
27470
27779
  }
27471
27780
  }
27472
27781
  );
27473
- var Toast = React61.forwardRef(({ className, variant, ...props }, ref) => {
27782
+ var Toast = React60.forwardRef(({ className, variant, ...props }, ref) => {
27474
27783
  return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(ToastPrimitives.Root, { ref, className: cn(toastVariants({ variant }), className), ...props });
27475
27784
  });
27476
27785
  Toast.displayName = ToastPrimitives.Root.displayName;
27477
- var ToastAction = React61.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
27786
+ var ToastAction = React60.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
27478
27787
  ToastPrimitives.Action,
27479
27788
  {
27480
27789
  ref,
@@ -27486,7 +27795,7 @@ var ToastAction = React61.forwardRef(({ className, ...props }, ref) => /* @__PUR
27486
27795
  }
27487
27796
  ));
27488
27797
  ToastAction.displayName = ToastPrimitives.Action.displayName;
27489
- var ToastClose = React61.forwardRef(({ className, onClick, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
27798
+ var ToastClose = React60.forwardRef(({ className, onClick, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
27490
27799
  ToastPrimitives.Close,
27491
27800
  {
27492
27801
  ref,
@@ -27504,9 +27813,9 @@ var ToastClose = React61.forwardRef(({ className, onClick, ...props }, ref) => /
27504
27813
  }
27505
27814
  ));
27506
27815
  ToastClose.displayName = ToastPrimitives.Close.displayName;
27507
- var ToastTitle = React61.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(ToastPrimitives.Title, { ref, className: cn("text-sm font-semibold", className), ...props }));
27816
+ var ToastTitle = React60.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(ToastPrimitives.Title, { ref, className: cn("text-sm font-semibold", className), ...props }));
27508
27817
  ToastTitle.displayName = ToastPrimitives.Title.displayName;
27509
- var ToastDescription = React61.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(ToastPrimitives.Description, { ref, className: cn("text-sm opacity-90", className), ...props }));
27818
+ var ToastDescription = React60.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(ToastPrimitives.Description, { ref, className: cn("text-sm opacity-90", className), ...props }));
27510
27819
  ToastDescription.displayName = ToastPrimitives.Description.displayName;
27511
27820
 
27512
27821
  // src/components/ui/toaster.tsx
@@ -27529,7 +27838,7 @@ function Toaster2() {
27529
27838
  }
27530
27839
 
27531
27840
  // src/components/ui/toggle.tsx
27532
- var React62 = __toESM(require("react"), 1);
27841
+ var React61 = __toESM(require("react"), 1);
27533
27842
  var TogglePrimitive = __toESM(require("@radix-ui/react-toggle"), 1);
27534
27843
  var import_class_variance_authority9 = require("class-variance-authority");
27535
27844
  var import_jsx_runtime85 = require("react/jsx-runtime");
@@ -27553,21 +27862,21 @@ var toggleVariants = (0, import_class_variance_authority9.cva)(
27553
27862
  }
27554
27863
  }
27555
27864
  );
27556
- var Toggle = React62.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(TogglePrimitive.Root, { ref, className: cn(toggleVariants({ variant, size, className })), ...props }));
27865
+ var Toggle = React61.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(TogglePrimitive.Root, { ref, className: cn(toggleVariants({ variant, size, className })), ...props }));
27557
27866
  Toggle.displayName = TogglePrimitive.Root.displayName;
27558
27867
 
27559
27868
  // src/components/ui/toggle-group.tsx
27560
- var React63 = __toESM(require("react"), 1);
27869
+ var React62 = __toESM(require("react"), 1);
27561
27870
  var ToggleGroupPrimitive = __toESM(require("@radix-ui/react-toggle-group"), 1);
27562
27871
  var import_jsx_runtime86 = require("react/jsx-runtime");
27563
- var ToggleGroupContext = React63.createContext({
27872
+ var ToggleGroupContext = React62.createContext({
27564
27873
  size: "default",
27565
27874
  variant: "default"
27566
27875
  });
27567
- var ToggleGroup = React63.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(ToggleGroupPrimitive.Root, { ref, className: cn("flex items-center justify-center gap-1", className), ...props, children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(ToggleGroupContext.Provider, { value: { variant, size }, children }) }));
27876
+ var ToggleGroup = React62.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(ToggleGroupPrimitive.Root, { ref, className: cn("flex items-center justify-center gap-1", className), ...props, children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(ToggleGroupContext.Provider, { value: { variant, size }, children }) }));
27568
27877
  ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
27569
- var ToggleGroupItem = React63.forwardRef(({ className, children, variant, size, ...props }, ref) => {
27570
- const context = React63.useContext(ToggleGroupContext);
27878
+ var ToggleGroupItem = React62.forwardRef(({ className, children, variant, size, ...props }, ref) => {
27879
+ const context = React62.useContext(ToggleGroupContext);
27571
27880
  return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
27572
27881
  ToggleGroupPrimitive.Item,
27573
27882
  {
@@ -28258,6 +28567,8 @@ var useAuth = () => {
28258
28567
  BreadcrumbPage,
28259
28568
  BreadcrumbSeparator,
28260
28569
  Button,
28570
+ CUPCODE_APP_VERSION_ENV_KEY,
28571
+ CUPCODE_APP_VERSION_ENV_KEYS,
28261
28572
  Calendar,
28262
28573
  Card,
28263
28574
  CardContent,
@@ -28563,6 +28874,7 @@ var useAuth = () => {
28563
28874
  navigationMenuTriggerStyle,
28564
28875
  parseAssetId,
28565
28876
  reducer,
28877
+ resolveCupcodeAppVersion,
28566
28878
  resolveOidcEndpoints,
28567
28879
  resolveTelescupImageURL,
28568
28880
  responsiveSizeClasses,