@mikenotthepope/substrateui 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -400,18 +400,41 @@ var DrawerComponent = Object.assign(Drawer, {
400
400
  // components/ui/Avatar.tsx
401
401
  import * as React5 from "react";
402
402
  import * as AvatarPrimitive from "@radix-ui/react-avatar";
403
- import { jsx as jsx6 } from "react/jsx-runtime";
403
+ import { cva as cva4 } from "class-variance-authority";
404
+ import { jsx as jsx6, jsxs as jsxs2 } from "react/jsx-runtime";
405
+ var avatarVariants = cva4(
406
+ "relative flex h-10 w-10 border-2 overflow-hidden",
407
+ {
408
+ variants: {
409
+ shape: {
410
+ circle: "rounded-full",
411
+ square: "rounded-none",
412
+ rounded: "rounded-lg",
413
+ hexagon: "rounded-none border-0 [clip-path:polygon(50%_0%,100%_25%,100%_75%,50%_100%,0%_75%,0%_25%)]",
414
+ diamond: "rounded-none rotate-45 border-2",
415
+ squircle: "rounded-none border-0 [clip-path:url(#squircle)]",
416
+ shield: "rounded-none border-0 [clip-path:polygon(50%_0%,100%_0%,100%_70%,50%_100%,0%_70%,0%_0%)]"
417
+ }
418
+ },
419
+ defaultVariants: {
420
+ shape: "circle"
421
+ }
422
+ }
423
+ );
404
424
  var Avatar = React5.forwardRef((_a, ref) => {
405
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
406
- return /* @__PURE__ */ jsx6(
425
+ var _b = _a, { className, shape = "circle", children } = _b, props = __objRest(_b, ["className", "shape", "children"]);
426
+ return /* @__PURE__ */ jsxs2(
407
427
  AvatarPrimitive.Root,
408
- __spreadValues({
428
+ __spreadProps(__spreadValues({
409
429
  ref,
410
- className: cn(
411
- "relative flex h-10 w-10 border-2 rounded-full overflow-hidden",
412
- className
413
- )
414
- }, props)
430
+ "data-shape": shape,
431
+ className: cn(avatarVariants({ shape }), className)
432
+ }, props), {
433
+ children: [
434
+ shape === "squircle" && /* @__PURE__ */ jsx6("svg", { width: "0", height: "0", className: "absolute", children: /* @__PURE__ */ jsx6("defs", { children: /* @__PURE__ */ jsx6("clipPath", { id: "squircle", clipPathUnits: "objectBoundingBox", children: /* @__PURE__ */ jsx6("path", { d: "M 0.5 0 C 0.9 0, 1 0.1, 1 0.5 C 1 0.9, 0.9 1, 0.5 1 C 0.1 1, 0 0.9, 0 0.5 C 0 0.1, 0.1 0, 0.5 0" }) }) }) }),
435
+ children
436
+ ]
437
+ })
415
438
  );
416
439
  });
417
440
  Avatar.displayName = "Avatar";
@@ -421,7 +444,10 @@ var AvatarImage = React5.forwardRef((_a, ref) => {
421
444
  AvatarPrimitive.Image,
422
445
  __spreadValues({
423
446
  ref,
424
- className: cn("aspect-square h-full w-full", className)
447
+ className: cn(
448
+ "aspect-square h-full w-full [[data-shape=diamond]>&]:-rotate-45",
449
+ className
450
+ )
425
451
  }, props)
426
452
  );
427
453
  });
@@ -433,7 +459,10 @@ var AvatarFallback = React5.forwardRef((_a, ref) => {
433
459
  __spreadValues({
434
460
  ref,
435
461
  className: cn(
436
- "flex h-full w-full items-center justify-center rounded-full bg-primary text-primary-foreground font-head text-sm",
462
+ "flex h-full w-full items-center justify-center bg-primary text-primary-foreground font-head text-sm",
463
+ "[[data-shape=circle]>&]:rounded-full",
464
+ "[[data-shape=rounded]>&]:rounded-lg",
465
+ "[[data-shape=diamond]>&]:-rotate-45",
437
466
  className
438
467
  )
439
468
  }, props)
@@ -454,7 +483,7 @@ import React6, {
454
483
  useContext,
455
484
  useState
456
485
  } from "react";
457
- import { jsx as jsx7, jsxs as jsxs2 } from "react/jsx-runtime";
486
+ import { jsx as jsx7, jsxs as jsxs3 } from "react/jsx-runtime";
458
487
  var TabsValueContext = createContext({ setValue: () => {
459
488
  } });
460
489
  function TabsRoot(_a) {
@@ -530,8 +559,8 @@ var TabsContent = React6.forwardRef((_a, ref) => {
530
559
  });
531
560
  TabsContent.displayName = "TabsContent";
532
561
  function TabsMore({ children, className, label = "More" }) {
533
- return /* @__PURE__ */ jsxs2(DropdownMenu2.Root, { children: [
534
- /* @__PURE__ */ jsxs2(
562
+ return /* @__PURE__ */ jsxs3(DropdownMenu2.Root, { children: [
563
+ /* @__PURE__ */ jsxs3(
535
564
  DropdownMenu2.Trigger,
536
565
  {
537
566
  className: cn(
@@ -653,10 +682,10 @@ Textarea.displayName = "Textarea";
653
682
  // components/ui/Checkbox.tsx
654
683
  import * as React10 from "react";
655
684
  import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
656
- import { cva as cva4 } from "class-variance-authority";
685
+ import { cva as cva5 } from "class-variance-authority";
657
686
  import { Check } from "lucide-react";
658
687
  import { jsx as jsx11 } from "react/jsx-runtime";
659
- var checkboxVariants = cva4("border-2 shrink-0 cursor-pointer disabled:cursor-not-allowed disabled:opacity-50", {
688
+ var checkboxVariants = cva5("border-2 shrink-0 cursor-pointer disabled:cursor-not-allowed disabled:opacity-50", {
660
689
  variants: {
661
690
  variant: {
662
691
  default: "data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",
@@ -691,9 +720,9 @@ Checkbox.displayName = "Checkbox";
691
720
  // components/ui/RadioGroup.tsx
692
721
  import * as React11 from "react";
693
722
  import * as RadioPrimitive from "@radix-ui/react-radio-group";
694
- import { cva as cva5 } from "class-variance-authority";
695
- import { jsx as jsx12, jsxs as jsxs3 } from "react/jsx-runtime";
696
- var radioVariants = cva5("border-2 border-border shrink-0 cursor-pointer disabled:cursor-not-allowed disabled:opacity-50", {
723
+ import { cva as cva6 } from "class-variance-authority";
724
+ import { jsx as jsx12, jsxs as jsxs4 } from "react/jsx-runtime";
725
+ var radioVariants = cva6("border-2 border-border shrink-0 cursor-pointer disabled:cursor-not-allowed disabled:opacity-50", {
697
726
  variants: {
698
727
  variant: {
699
728
  default: "",
@@ -704,14 +733,19 @@ var radioVariants = cva5("border-2 border-border shrink-0 cursor-pointer disable
704
733
  sm: "h-4 w-4",
705
734
  md: "h-5 w-5",
706
735
  lg: "h-6 w-6"
736
+ },
737
+ shape: {
738
+ circle: "rounded-full",
739
+ diamond: "rotate-45"
707
740
  }
708
741
  },
709
742
  defaultVariants: {
710
743
  variant: "default",
711
- size: "md"
744
+ size: "md",
745
+ shape: "circle"
712
746
  }
713
747
  });
714
- var radioIndicatorVariants = cva5("flex", {
748
+ var radioIndicatorVariants = cva6("flex", {
715
749
  variants: {
716
750
  variant: {
717
751
  default: "bg-primary border-2 border-border",
@@ -719,14 +753,19 @@ var radioIndicatorVariants = cva5("flex", {
719
753
  solid: "bg-border"
720
754
  },
721
755
  size: {
722
- sm: "h-2 w-2",
723
- md: "h-2.5 w-2.5",
724
- lg: "h-3.5 w-3.5"
756
+ sm: "h-2.5 w-2.5",
757
+ md: "h-3 w-3",
758
+ lg: "h-4 w-4"
759
+ },
760
+ shape: {
761
+ circle: "rounded-full",
762
+ diamond: ""
725
763
  }
726
764
  },
727
765
  defaultVariants: {
728
766
  variant: "default",
729
- size: "md"
767
+ size: "md",
768
+ shape: "circle"
730
769
  }
731
770
  });
732
771
  var RadioGroupRoot = React11.forwardRef((_a, ref) => {
@@ -741,15 +780,15 @@ var RadioGroupRoot = React11.forwardRef((_a, ref) => {
741
780
  });
742
781
  RadioGroupRoot.displayName = "RadioGroup";
743
782
  var RadioGroupItem = React11.forwardRef((_a, ref) => {
744
- var _b = _a, { className, size, variant, children } = _b, props = __objRest(_b, ["className", "size", "variant", "children"]);
745
- return /* @__PURE__ */ jsxs3(
783
+ var _b = _a, { className, size, variant, shape, children } = _b, props = __objRest(_b, ["className", "size", "variant", "shape", "children"]);
784
+ return /* @__PURE__ */ jsxs4(
746
785
  RadioPrimitive.Item,
747
786
  __spreadProps(__spreadValues({
748
787
  ref,
749
- className: cn(radioVariants({ size, variant }), className)
788
+ className: cn(radioVariants({ size, variant, shape }), className)
750
789
  }, props), {
751
790
  children: [
752
- /* @__PURE__ */ jsx12(RadioPrimitive.Indicator, { className: "flex justify-center items-center", children: /* @__PURE__ */ jsx12("span", { className: radioIndicatorVariants({ size, variant }) }) }),
791
+ /* @__PURE__ */ jsx12(RadioPrimitive.Indicator, { className: "flex justify-center items-center", children: /* @__PURE__ */ jsx12("span", { className: radioIndicatorVariants({ size, variant, shape }) }) }),
753
792
  children
754
793
  ]
755
794
  })
@@ -764,11 +803,11 @@ var RadioGroup = Object.assign(RadioGroupRoot, {
764
803
  import * as React12 from "react";
765
804
  import * as SelectPrimitive from "@radix-ui/react-select";
766
805
  import { Check as Check2, ChevronDown, ChevronUp } from "lucide-react";
767
- import { jsx as jsx13, jsxs as jsxs4 } from "react/jsx-runtime";
806
+ import { jsx as jsx13, jsxs as jsxs5 } from "react/jsx-runtime";
768
807
  var SelectRoot = SelectPrimitive.Root;
769
808
  var SelectTrigger = React12.forwardRef((_a, ref) => {
770
809
  var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
771
- return /* @__PURE__ */ jsxs4(
810
+ return /* @__PURE__ */ jsxs5(
772
811
  SelectPrimitive.Trigger,
773
812
  __spreadProps(__spreadValues({
774
813
  ref,
@@ -788,7 +827,7 @@ SelectTrigger.displayName = "Select.Trigger";
788
827
  var SelectValue = SelectPrimitive.Value;
789
828
  var SelectContent = React12.forwardRef((_a, ref) => {
790
829
  var _b = _a, { className, children, position = "popper" } = _b, props = __objRest(_b, ["className", "children", "position"]);
791
- return /* @__PURE__ */ jsx13(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs4(
830
+ return /* @__PURE__ */ jsx13(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs5(
792
831
  SelectPrimitive.Content,
793
832
  __spreadProps(__spreadValues({
794
833
  ref,
@@ -819,7 +858,7 @@ SelectContent.displayName = "Select.Content";
819
858
  var SelectGroup = SelectPrimitive.Group;
820
859
  var SelectItem = React12.forwardRef((_a, ref) => {
821
860
  var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
822
- return /* @__PURE__ */ jsxs4(
861
+ return /* @__PURE__ */ jsxs5(
823
862
  SelectPrimitive.Item,
824
863
  __spreadProps(__spreadValues({
825
864
  ref,
@@ -879,10 +918,10 @@ Switch.displayName = "Switch";
879
918
  // components/ui/Slider.tsx
880
919
  import * as React14 from "react";
881
920
  import * as SliderPrimitive from "@radix-ui/react-slider";
882
- import { jsx as jsx15, jsxs as jsxs5 } from "react/jsx-runtime";
921
+ import { jsx as jsx15, jsxs as jsxs6 } from "react/jsx-runtime";
883
922
  var Slider = React14.forwardRef((_a, ref) => {
884
923
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
885
- return /* @__PURE__ */ jsxs5(
924
+ return /* @__PURE__ */ jsxs6(
886
925
  SliderPrimitive.Root,
887
926
  __spreadProps(__spreadValues({
888
927
  ref,
@@ -940,7 +979,7 @@ function Text(_a) {
940
979
 
941
980
  // components/ui/FormLayout.tsx
942
981
  import * as React15 from "react";
943
- import { jsx as jsx17, jsxs as jsxs6 } from "react/jsx-runtime";
982
+ import { jsx as jsx17, jsxs as jsxs7 } from "react/jsx-runtime";
944
983
  var FormLayoutRoot = React15.forwardRef(
945
984
  (_a, ref) => {
946
985
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
@@ -951,14 +990,14 @@ FormLayoutRoot.displayName = "FormLayout";
951
990
  var FormSection = React15.forwardRef(
952
991
  (_a, ref) => {
953
992
  var _b = _a, { className, title, description, children } = _b, props = __objRest(_b, ["className", "title", "description", "children"]);
954
- return /* @__PURE__ */ jsxs6(
993
+ return /* @__PURE__ */ jsxs7(
955
994
  "fieldset",
956
995
  __spreadProps(__spreadValues({
957
996
  ref,
958
997
  className: cn("space-y-6 border-0 p-0 m-0", className)
959
998
  }, props), {
960
999
  children: [
961
- (title || description) && /* @__PURE__ */ jsxs6("div", { className: "space-y-1 border-b-2 border-border pb-4", children: [
1000
+ (title || description) && /* @__PURE__ */ jsxs7("div", { className: "space-y-1 border-b-2 border-border pb-4", children: [
962
1001
  title && /* @__PURE__ */ jsx17("legend", { className: "font-head text-lg font-normal", children: title }),
963
1002
  description && /* @__PURE__ */ jsx17("p", { className: "font-sans text-sm text-muted-foreground", children: description })
964
1003
  ] }),
@@ -972,8 +1011,8 @@ FormSection.displayName = "FormLayout.Section";
972
1011
  var FormField = React15.forwardRef(
973
1012
  (_a, ref) => {
974
1013
  var _b = _a, { className, label, htmlFor, description, error, required, children } = _b, props = __objRest(_b, ["className", "label", "htmlFor", "description", "error", "required", "children"]);
975
- return /* @__PURE__ */ jsxs6("div", __spreadProps(__spreadValues({ ref, className: cn("space-y-2", className) }, props), { children: [
976
- label && /* @__PURE__ */ jsxs6(Label, { htmlFor, children: [
1014
+ return /* @__PURE__ */ jsxs7("div", __spreadProps(__spreadValues({ ref, className: cn("space-y-2", className) }, props), { children: [
1015
+ label && /* @__PURE__ */ jsxs7(Label, { htmlFor, children: [
977
1016
  label,
978
1017
  required && /* @__PURE__ */ jsx17("span", { className: "ml-0.5 text-destructive", "aria-hidden": "true", children: "*" })
979
1018
  ] }),
@@ -1011,7 +1050,7 @@ var FormActions = React15.forwardRef(
1011
1050
  __spreadValues({
1012
1051
  ref,
1013
1052
  className: cn(
1014
- "flex items-center gap-3 border-t-2 border-border pt-6",
1053
+ "flex items-center gap-3 border-t-2 border-border mt-6 pt-6",
1015
1054
  alignMap[align],
1016
1055
  className
1017
1056
  )
@@ -1028,11 +1067,11 @@ var FormLayout = Object.assign(FormLayoutRoot, {
1028
1067
  });
1029
1068
 
1030
1069
  // components/ui/Link.tsx
1031
- import { cva as cva6 } from "class-variance-authority";
1070
+ import { cva as cva7 } from "class-variance-authority";
1032
1071
  import React16 from "react";
1033
1072
  import { Slot as Slot4 } from "@radix-ui/react-slot";
1034
1073
  import { jsx as jsx18 } from "react/jsx-runtime";
1035
- var linkVariants = cva6(
1074
+ var linkVariants = cva7(
1036
1075
  "font-head inline-flex items-center gap-1 cursor-pointer transition-colors duration-200 underline-offset-4",
1037
1076
  {
1038
1077
  variants: {
@@ -1085,9 +1124,9 @@ Link.displayName = "Link";
1085
1124
 
1086
1125
  // components/ui/Alert.tsx
1087
1126
  import * as React17 from "react";
1088
- import { cva as cva7 } from "class-variance-authority";
1127
+ import { cva as cva8 } from "class-variance-authority";
1089
1128
  import { jsx as jsx19 } from "react/jsx-runtime";
1090
- var alertVariants = cva7(
1129
+ var alertVariants = cva8(
1091
1130
  "relative w-full border-2 border-border p-4",
1092
1131
  {
1093
1132
  variants: {
@@ -1151,11 +1190,11 @@ var AlertComponent = Object.assign(AlertRoot, {
1151
1190
  });
1152
1191
 
1153
1192
  // components/ui/IconButton.tsx
1154
- import { cva as cva8 } from "class-variance-authority";
1193
+ import { cva as cva9 } from "class-variance-authority";
1155
1194
  import React18 from "react";
1156
1195
  import { Slot as Slot5 } from "@radix-ui/react-slot";
1157
1196
  import { jsx as jsx20 } from "react/jsx-runtime";
1158
- var iconButtonVariants = cva8(
1197
+ var iconButtonVariants = cva9(
1159
1198
  "font-head transition-all outline-hidden cursor-pointer duration-200 inline-flex justify-center items-center disabled:opacity-60 disabled:cursor-not-allowed border-2 border-border",
1160
1199
  {
1161
1200
  variants: {
@@ -1208,9 +1247,9 @@ IconButton.displayName = "IconButton";
1208
1247
 
1209
1248
  // components/ui/Loader.tsx
1210
1249
  import * as React19 from "react";
1211
- import { cva as cva9 } from "class-variance-authority";
1250
+ import { cva as cva10 } from "class-variance-authority";
1212
1251
  import { jsx as jsx21 } from "react/jsx-runtime";
1213
- var loaderVariants = cva9("flex gap-1", {
1252
+ var loaderVariants = cva10("flex gap-1", {
1214
1253
  variants: {
1215
1254
  variant: {
1216
1255
  default: "[&>div]:bg-primary [&>div]:border-border",
@@ -1275,12 +1314,12 @@ Loader.displayName = "Loader";
1275
1314
  import * as React20 from "react";
1276
1315
  import * as ReactDialog from "@radix-ui/react-dialog";
1277
1316
  import { VisuallyHidden } from "@radix-ui/react-visually-hidden";
1278
- import { cva as cva10 } from "class-variance-authority";
1317
+ import { cva as cva11 } from "class-variance-authority";
1279
1318
  import { X } from "lucide-react";
1280
- import { jsx as jsx22, jsxs as jsxs7 } from "react/jsx-runtime";
1319
+ import { jsx as jsx22, jsxs as jsxs8 } from "react/jsx-runtime";
1281
1320
  var Dialog = ReactDialog.Root;
1282
1321
  var DialogTrigger = ReactDialog.Trigger;
1283
- var overlayVariants = cva10(
1322
+ var overlayVariants = cva11(
1284
1323
  "fixed inset-0 z-50 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0",
1285
1324
  {
1286
1325
  variants: {
@@ -1307,7 +1346,7 @@ var DialogOverlay = React20.forwardRef(
1307
1346
  }
1308
1347
  );
1309
1348
  DialogOverlay.displayName = "Dialog.Overlay";
1310
- var dialogContentVariants = cva10(
1349
+ var dialogContentVariants = cva11(
1311
1350
  "fixed left-[50%] top-[50%] z-50 grid w-full translate-x-[-50%] translate-y-[-50%] border-2 border-border bg-background shadow-lg duration-200 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
1312
1351
  {
1313
1352
  variants: {
@@ -1327,9 +1366,9 @@ var dialogContentVariants = cva10(
1327
1366
  var DialogContent = React20.forwardRef(
1328
1367
  (_a, ref) => {
1329
1368
  var _b = _a, { children, size = "md", className, overlay } = _b, props = __objRest(_b, ["children", "size", "className", "overlay"]);
1330
- return /* @__PURE__ */ jsxs7(ReactDialog.Portal, { children: [
1369
+ return /* @__PURE__ */ jsxs8(ReactDialog.Portal, { children: [
1331
1370
  /* @__PURE__ */ jsx22(DialogOverlay, __spreadValues({}, overlay)),
1332
- /* @__PURE__ */ jsxs7(
1371
+ /* @__PURE__ */ jsxs8(
1333
1372
  ReactDialog.Content,
1334
1373
  __spreadProps(__spreadValues({
1335
1374
  ref,
@@ -1347,7 +1386,7 @@ var DialogContent = React20.forwardRef(
1347
1386
  DialogContent.displayName = "Dialog.Content";
1348
1387
  var DialogHeader = React20.forwardRef((_a, ref) => {
1349
1388
  var _b = _a, { children, className } = _b, props = __objRest(_b, ["children", "className"]);
1350
- return /* @__PURE__ */ jsxs7(
1389
+ return /* @__PURE__ */ jsxs8(
1351
1390
  "div",
1352
1391
  __spreadProps(__spreadValues({
1353
1392
  ref,
@@ -1405,9 +1444,9 @@ var DialogComponent = Object.assign(Dialog, {
1405
1444
 
1406
1445
  // components/ui/Divider.tsx
1407
1446
  import * as React21 from "react";
1408
- import { cva as cva11 } from "class-variance-authority";
1409
- import { jsx as jsx23, jsxs as jsxs8 } from "react/jsx-runtime";
1410
- var dividerVariants = cva11("border-border", {
1447
+ import { cva as cva12 } from "class-variance-authority";
1448
+ import { jsx as jsx23, jsxs as jsxs9 } from "react/jsx-runtime";
1449
+ var dividerVariants = cva12("border-border", {
1411
1450
  variants: {
1412
1451
  orientation: {
1413
1452
  horizontal: "w-full border-t-2",
@@ -1422,7 +1461,7 @@ var Divider = React21.forwardRef(
1422
1461
  (_a, ref) => {
1423
1462
  var _b = _a, { className, orientation = "horizontal", label } = _b, props = __objRest(_b, ["className", "orientation", "label"]);
1424
1463
  if (label && orientation === "horizontal") {
1425
- return /* @__PURE__ */ jsxs8(
1464
+ return /* @__PURE__ */ jsxs9(
1426
1465
  "div",
1427
1466
  __spreadProps(__spreadValues({
1428
1467
  ref,
@@ -1451,9 +1490,9 @@ Divider.displayName = "Divider";
1451
1490
 
1452
1491
  // components/ui/Stack.tsx
1453
1492
  import * as React22 from "react";
1454
- import { cva as cva12 } from "class-variance-authority";
1493
+ import { cva as cva13 } from "class-variance-authority";
1455
1494
  import { jsx as jsx24 } from "react/jsx-runtime";
1456
- var stackVariants = cva12("flex", {
1495
+ var stackVariants = cva13("flex", {
1457
1496
  variants: {
1458
1497
  direction: {
1459
1498
  vertical: "flex-col",
@@ -1523,9 +1562,9 @@ Stack.displayName = "Stack";
1523
1562
 
1524
1563
  // components/ui/Flex.tsx
1525
1564
  import * as React23 from "react";
1526
- import { cva as cva13 } from "class-variance-authority";
1565
+ import { cva as cva14 } from "class-variance-authority";
1527
1566
  import { jsx as jsx25 } from "react/jsx-runtime";
1528
- var flexVariants = cva13("flex", {
1567
+ var flexVariants = cva14("flex", {
1529
1568
  variants: {
1530
1569
  direction: {
1531
1570
  row: "flex-row",
@@ -1607,9 +1646,9 @@ Flex.displayName = "Flex";
1607
1646
 
1608
1647
  // components/ui/Grid.tsx
1609
1648
  import * as React24 from "react";
1610
- import { cva as cva14 } from "class-variance-authority";
1649
+ import { cva as cva15 } from "class-variance-authority";
1611
1650
  import { jsx as jsx26 } from "react/jsx-runtime";
1612
- var gridVariants = cva14("grid", {
1651
+ var gridVariants = cva15("grid", {
1613
1652
  variants: {
1614
1653
  columns: {
1615
1654
  1: "grid-cols-1",
@@ -1700,9 +1739,9 @@ Grid.displayName = "Grid";
1700
1739
 
1701
1740
  // components/ui/Container.tsx
1702
1741
  import * as React25 from "react";
1703
- import { cva as cva15 } from "class-variance-authority";
1742
+ import { cva as cva16 } from "class-variance-authority";
1704
1743
  import { jsx as jsx27 } from "react/jsx-runtime";
1705
- var containerVariants = cva15("mx-auto px-4 sm:px-6 lg:px-8", {
1744
+ var containerVariants = cva16("mx-auto px-4 sm:px-6 lg:px-8", {
1706
1745
  variants: {
1707
1746
  size: {
1708
1747
  sm: "max-w-2xl",
@@ -1746,7 +1785,7 @@ Container.displayName = "Container";
1746
1785
  import * as React26 from "react";
1747
1786
  import * as AccordionPrimitives from "@radix-ui/react-accordion";
1748
1787
  import { ChevronDown as ChevronDown2 } from "lucide-react";
1749
- import { jsx as jsx28, jsxs as jsxs9 } from "react/jsx-runtime";
1788
+ import { jsx as jsx28, jsxs as jsxs10 } from "react/jsx-runtime";
1750
1789
  var AccordionRoot = React26.forwardRef((_a, ref) => {
1751
1790
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1752
1791
  return /* @__PURE__ */ jsx28(
@@ -1774,7 +1813,7 @@ var AccordionItem = React26.forwardRef((_a, ref) => {
1774
1813
  AccordionItem.displayName = "Accordion.Item";
1775
1814
  var AccordionTrigger = React26.forwardRef((_a, ref) => {
1776
1815
  var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
1777
- return /* @__PURE__ */ jsx28(AccordionPrimitives.Header, { className: "flex", children: /* @__PURE__ */ jsxs9(
1816
+ return /* @__PURE__ */ jsx28(AccordionPrimitives.Header, { className: "flex", children: /* @__PURE__ */ jsxs10(
1778
1817
  AccordionPrimitives.Trigger,
1779
1818
  __spreadProps(__spreadValues({
1780
1819
  ref,
@@ -1817,7 +1856,7 @@ var AccordionComponent = Object.assign(AccordionRoot, {
1817
1856
  // components/ui/ScrollArea.tsx
1818
1857
  import * as React27 from "react";
1819
1858
  import * as ScrollAreaPrimitives from "@radix-ui/react-scroll-area";
1820
- import { jsx as jsx29, jsxs as jsxs10 } from "react/jsx-runtime";
1859
+ import { jsx as jsx29, jsxs as jsxs11 } from "react/jsx-runtime";
1821
1860
  var ScrollBar = React27.forwardRef((_a, ref) => {
1822
1861
  var _b = _a, { className, orientation = "vertical" } = _b, props = __objRest(_b, ["className", "orientation"]);
1823
1862
  return /* @__PURE__ */ jsx29(
@@ -1839,7 +1878,7 @@ var ScrollBar = React27.forwardRef((_a, ref) => {
1839
1878
  ScrollBar.displayName = "ScrollArea.ScrollBar";
1840
1879
  var ScrollAreaRoot = React27.forwardRef((_a, ref) => {
1841
1880
  var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
1842
- return /* @__PURE__ */ jsxs10(
1881
+ return /* @__PURE__ */ jsxs11(
1843
1882
  ScrollAreaPrimitives.Root,
1844
1883
  __spreadProps(__spreadValues({
1845
1884
  ref,
@@ -2095,7 +2134,7 @@ var PopoverComponent = Object.assign(PopoverRoot, {
2095
2134
  import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
2096
2135
  import { Check as Check3, ChevronRight, Circle } from "lucide-react";
2097
2136
  import * as React34 from "react";
2098
- import { jsx as jsx36, jsxs as jsxs11 } from "react/jsx-runtime";
2137
+ import { jsx as jsx36, jsxs as jsxs12 } from "react/jsx-runtime";
2099
2138
  var ContextMenuRoot = ContextMenuPrimitive.Root;
2100
2139
  var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
2101
2140
  var ContextMenuGroup = ContextMenuPrimitive.Group;
@@ -2104,7 +2143,7 @@ var ContextMenuSub = ContextMenuPrimitive.Sub;
2104
2143
  var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
2105
2144
  var ContextMenuSubTrigger = React34.forwardRef((_a, ref) => {
2106
2145
  var _b = _a, { className, inset, children } = _b, props = __objRest(_b, ["className", "inset", "children"]);
2107
- return /* @__PURE__ */ jsxs11(
2146
+ return /* @__PURE__ */ jsxs12(
2108
2147
  ContextMenuPrimitive.SubTrigger,
2109
2148
  __spreadProps(__spreadValues({
2110
2149
  ref,
@@ -2167,7 +2206,7 @@ var ContextMenuItem = React34.forwardRef((_a, ref) => {
2167
2206
  ContextMenuItem.displayName = "ContextMenu.Item";
2168
2207
  var ContextMenuCheckboxItem = React34.forwardRef((_a, ref) => {
2169
2208
  var _b = _a, { className, children, checked } = _b, props = __objRest(_b, ["className", "children", "checked"]);
2170
- return /* @__PURE__ */ jsxs11(
2209
+ return /* @__PURE__ */ jsxs12(
2171
2210
  ContextMenuPrimitive.CheckboxItem,
2172
2211
  __spreadProps(__spreadValues({
2173
2212
  ref,
@@ -2187,7 +2226,7 @@ var ContextMenuCheckboxItem = React34.forwardRef((_a, ref) => {
2187
2226
  ContextMenuCheckboxItem.displayName = "ContextMenu.CheckboxItem";
2188
2227
  var ContextMenuRadioItem = React34.forwardRef((_a, ref) => {
2189
2228
  var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
2190
- return /* @__PURE__ */ jsxs11(
2229
+ return /* @__PURE__ */ jsxs12(
2191
2230
  ContextMenuPrimitive.RadioItem,
2192
2231
  __spreadProps(__spreadValues({
2193
2232
  ref,
@@ -2268,7 +2307,7 @@ var ContextMenuComponent = Object.assign(ContextMenuRoot, {
2268
2307
  import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
2269
2308
  import { Check as Check4, ChevronRight as ChevronRight2, Circle as Circle2 } from "lucide-react";
2270
2309
  import * as React35 from "react";
2271
- import { jsx as jsx37, jsxs as jsxs12 } from "react/jsx-runtime";
2310
+ import { jsx as jsx37, jsxs as jsxs13 } from "react/jsx-runtime";
2272
2311
  var DropdownMenuRoot = DropdownMenuPrimitive.Root;
2273
2312
  var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
2274
2313
  var DropdownMenuGroup = DropdownMenuPrimitive.Group;
@@ -2277,7 +2316,7 @@ var DropdownMenuSub = DropdownMenuPrimitive.Sub;
2277
2316
  var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
2278
2317
  var DropdownMenuSubTrigger = React35.forwardRef((_a, ref) => {
2279
2318
  var _b = _a, { className, inset, children } = _b, props = __objRest(_b, ["className", "inset", "children"]);
2280
- return /* @__PURE__ */ jsxs12(
2319
+ return /* @__PURE__ */ jsxs13(
2281
2320
  DropdownMenuPrimitive.SubTrigger,
2282
2321
  __spreadProps(__spreadValues({
2283
2322
  ref,
@@ -2341,7 +2380,7 @@ var DropdownMenuItem = React35.forwardRef((_a, ref) => {
2341
2380
  DropdownMenuItem.displayName = "DropdownMenu.Item";
2342
2381
  var DropdownMenuCheckboxItem = React35.forwardRef((_a, ref) => {
2343
2382
  var _b = _a, { className, children, checked } = _b, props = __objRest(_b, ["className", "children", "checked"]);
2344
- return /* @__PURE__ */ jsxs12(
2383
+ return /* @__PURE__ */ jsxs13(
2345
2384
  DropdownMenuPrimitive.CheckboxItem,
2346
2385
  __spreadProps(__spreadValues({
2347
2386
  ref,
@@ -2361,7 +2400,7 @@ var DropdownMenuCheckboxItem = React35.forwardRef((_a, ref) => {
2361
2400
  DropdownMenuCheckboxItem.displayName = "DropdownMenu.CheckboxItem";
2362
2401
  var DropdownMenuRadioItem = React35.forwardRef((_a, ref) => {
2363
2402
  var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
2364
- return /* @__PURE__ */ jsxs12(
2403
+ return /* @__PURE__ */ jsxs13(
2365
2404
  DropdownMenuPrimitive.RadioItem,
2366
2405
  __spreadProps(__spreadValues({
2367
2406
  ref,
@@ -2558,7 +2597,7 @@ var TableComponent = Object.assign(TableRoot, {
2558
2597
  import * as MenubarPrimitive from "@radix-ui/react-menubar";
2559
2598
  import { Check as Check5, ChevronRight as ChevronRight3, Circle as Circle3 } from "lucide-react";
2560
2599
  import * as React37 from "react";
2561
- import { jsx as jsx39, jsxs as jsxs13 } from "react/jsx-runtime";
2600
+ import { jsx as jsx39, jsxs as jsxs14 } from "react/jsx-runtime";
2562
2601
  var MenubarRoot = React37.forwardRef((_a, ref) => {
2563
2602
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2564
2603
  return /* @__PURE__ */ jsx39(
@@ -2626,7 +2665,7 @@ var MenubarItem = React37.forwardRef((_a, ref) => {
2626
2665
  MenubarItem.displayName = "Menubar.Item";
2627
2666
  var MenubarCheckboxItem = React37.forwardRef((_a, ref) => {
2628
2667
  var _b = _a, { className, children, checked } = _b, props = __objRest(_b, ["className", "children", "checked"]);
2629
- return /* @__PURE__ */ jsxs13(
2668
+ return /* @__PURE__ */ jsxs14(
2630
2669
  MenubarPrimitive.CheckboxItem,
2631
2670
  __spreadProps(__spreadValues({
2632
2671
  ref,
@@ -2646,7 +2685,7 @@ var MenubarCheckboxItem = React37.forwardRef((_a, ref) => {
2646
2685
  MenubarCheckboxItem.displayName = "Menubar.CheckboxItem";
2647
2686
  var MenubarRadioItem = React37.forwardRef((_a, ref) => {
2648
2687
  var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
2649
- return /* @__PURE__ */ jsxs13(
2688
+ return /* @__PURE__ */ jsxs14(
2650
2689
  MenubarPrimitive.RadioItem,
2651
2690
  __spreadProps(__spreadValues({
2652
2691
  ref,
@@ -2708,7 +2747,7 @@ var MenubarShortcut = (_a) => {
2708
2747
  MenubarShortcut.displayName = "Menubar.Shortcut";
2709
2748
  var MenubarSubTrigger = React37.forwardRef((_a, ref) => {
2710
2749
  var _b = _a, { className, inset, children } = _b, props = __objRest(_b, ["className", "inset", "children"]);
2711
- return /* @__PURE__ */ jsxs13(
2750
+ return /* @__PURE__ */ jsxs14(
2712
2751
  MenubarPrimitive.SubTrigger,
2713
2752
  __spreadProps(__spreadValues({
2714
2753
  ref,
@@ -2761,12 +2800,12 @@ var MenubarComponent = Object.assign(MenubarRoot, {
2761
2800
  // components/ui/NavigationMenu.tsx
2762
2801
  import * as React38 from "react";
2763
2802
  import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
2764
- import { cva as cva16 } from "class-variance-authority";
2803
+ import { cva as cva17 } from "class-variance-authority";
2765
2804
  import { ChevronDown as ChevronDown3 } from "lucide-react";
2766
- import { jsx as jsx40, jsxs as jsxs14 } from "react/jsx-runtime";
2805
+ import { jsx as jsx40, jsxs as jsxs15 } from "react/jsx-runtime";
2767
2806
  var NavigationMenuRoot = React38.forwardRef((_a, ref) => {
2768
2807
  var _b = _a, { className, children, viewport = true } = _b, props = __objRest(_b, ["className", "children", "viewport"]);
2769
- return /* @__PURE__ */ jsxs14(
2808
+ return /* @__PURE__ */ jsxs15(
2770
2809
  NavigationMenuPrimitive.Root,
2771
2810
  __spreadProps(__spreadValues({
2772
2811
  ref,
@@ -2809,12 +2848,12 @@ var NavigationMenuItem = React38.forwardRef((_a, ref) => {
2809
2848
  );
2810
2849
  });
2811
2850
  NavigationMenuItem.displayName = "NavigationMenu.Item";
2812
- var navigationMenuTriggerStyle = cva16(
2851
+ var navigationMenuTriggerStyle = cva17(
2813
2852
  "group inline-flex h-10 w-max items-center justify-center bg-background text-foreground px-4 py-2 text-sm font-head transition-colors hover:bg-muted focus:outline-none disabled:pointer-events-none disabled:opacity-50"
2814
2853
  );
2815
2854
  var NavigationMenuTrigger = React38.forwardRef((_a, ref) => {
2816
2855
  var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
2817
- return /* @__PURE__ */ jsxs14(
2856
+ return /* @__PURE__ */ jsxs15(
2818
2857
  NavigationMenuPrimitive.Trigger,
2819
2858
  __spreadProps(__spreadValues({
2820
2859
  ref,
@@ -2976,7 +3015,7 @@ var ResizableComponent = Object.assign(ResizablePanelGroup, {
2976
3015
  // components/ui/Chart.tsx
2977
3016
  import * as React39 from "react";
2978
3017
  import * as RechartsPrimitive from "recharts";
2979
- import { Fragment, jsx as jsx42, jsxs as jsxs15 } from "react/jsx-runtime";
3018
+ import { Fragment, jsx as jsx42, jsxs as jsxs16 } from "react/jsx-runtime";
2980
3019
  var THEMES = { light: "", dark: ".dark" };
2981
3020
  var ChartContext = React39.createContext(null);
2982
3021
  function useChart() {
@@ -2991,7 +3030,7 @@ var ChartContainer = React39.forwardRef(
2991
3030
  var _b = _a, { id, className, children, config } = _b, props = __objRest(_b, ["id", "className", "children", "config"]);
2992
3031
  const uniqueId = React39.useId();
2993
3032
  const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
2994
- return /* @__PURE__ */ jsx42(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs15(
3033
+ return /* @__PURE__ */ jsx42(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs16(
2995
3034
  "div",
2996
3035
  __spreadProps(__spreadValues({
2997
3036
  ref,
@@ -3087,7 +3126,7 @@ var ChartTooltipContent = React39.forwardRef(
3087
3126
  return null;
3088
3127
  }
3089
3128
  const nestLabel = payload.length === 1 && indicator !== "dot";
3090
- return /* @__PURE__ */ jsxs15(
3129
+ return /* @__PURE__ */ jsxs16(
3091
3130
  "div",
3092
3131
  {
3093
3132
  ref,
@@ -3109,7 +3148,7 @@ var ChartTooltipContent = React39.forwardRef(
3109
3148
  "[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5",
3110
3149
  indicator === "dot" && "items-center"
3111
3150
  ),
3112
- children: formatter && (item == null ? void 0 : item.value) !== void 0 && item.name ? formatter(item.value, item.name, item, index, itemPayload) : /* @__PURE__ */ jsxs15(Fragment, { children: [
3151
+ children: formatter && (item == null ? void 0 : item.value) !== void 0 && item.name ? formatter(item.value, item.name, item, index, itemPayload) : /* @__PURE__ */ jsxs16(Fragment, { children: [
3113
3152
  (itemConfig == null ? void 0 : itemConfig.icon) ? /* @__PURE__ */ jsx42(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ jsx42(
3114
3153
  "div",
3115
3154
  {
@@ -3127,7 +3166,7 @@ var ChartTooltipContent = React39.forwardRef(
3127
3166
  }
3128
3167
  }
3129
3168
  ),
3130
- /* @__PURE__ */ jsxs15(
3169
+ /* @__PURE__ */ jsxs16(
3131
3170
  "div",
3132
3171
  {
3133
3172
  className: cn(
@@ -3135,7 +3174,7 @@ var ChartTooltipContent = React39.forwardRef(
3135
3174
  nestLabel ? "items-end" : "items-center"
3136
3175
  ),
3137
3176
  children: [
3138
- /* @__PURE__ */ jsxs15("div", { className: "grid gap-1.5", children: [
3177
+ /* @__PURE__ */ jsxs16("div", { className: "grid gap-1.5", children: [
3139
3178
  nestLabel ? tooltipLabel : null,
3140
3179
  /* @__PURE__ */ jsx42("span", { className: "text-muted-foreground", children: (itemConfig == null ? void 0 : itemConfig.label) || item.name })
3141
3180
  ] }),
@@ -3173,7 +3212,7 @@ var ChartLegendContent = React39.forwardRef(
3173
3212
  children: payload.map((item) => {
3174
3213
  const key = `${nameKey || item.dataKey || "value"}`;
3175
3214
  const itemConfig = getPayloadConfigFromPayload(config, item, key);
3176
- return /* @__PURE__ */ jsxs15(
3215
+ return /* @__PURE__ */ jsxs16(
3177
3216
  "div",
3178
3217
  {
3179
3218
  className: cn(
@@ -3232,30 +3271,58 @@ import * as React40 from "react";
3232
3271
  // components/ThemeProvider.tsx
3233
3272
  import { createContext as createContext3, useContext as useContext3, useEffect, useState as useState2, useCallback, useMemo as useMemo2 } from "react";
3234
3273
  import { jsx as jsx43 } from "react/jsx-runtime";
3274
+ var VALID_THEMES = ["light", "dark", "system"];
3275
+ var COLOR_THEMES = ["blue", "plum", "plum-trio"];
3235
3276
  var ThemeContext = createContext3(void 0);
3236
3277
  var STORAGE_KEY = "substrateui-theme";
3278
+ var COLOR_STORAGE_KEY = "substrateui-color-theme";
3237
3279
  function getSystemTheme() {
3238
3280
  if (typeof window === "undefined") return "light";
3239
3281
  return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
3240
3282
  }
3283
+ function readStoredTheme(key, fallback) {
3284
+ if (typeof window === "undefined") return fallback;
3285
+ const stored = localStorage.getItem(key);
3286
+ return VALID_THEMES.includes(stored) ? stored : fallback;
3287
+ }
3288
+ function readStoredColorTheme(key, fallback) {
3289
+ if (typeof window === "undefined") return fallback;
3290
+ const stored = localStorage.getItem(key);
3291
+ return COLOR_THEMES.includes(stored != null ? stored : "") ? stored : fallback;
3292
+ }
3241
3293
  function applyClass(resolved) {
3242
3294
  document.documentElement.classList.remove("light", "dark");
3243
3295
  document.documentElement.classList.add(resolved);
3244
3296
  }
3297
+ function applyColorTheme(colorTheme) {
3298
+ for (const t of COLOR_THEMES) {
3299
+ document.documentElement.classList.remove(`theme-${t}`);
3300
+ }
3301
+ if (colorTheme !== "blue") {
3302
+ document.documentElement.classList.add(`theme-${colorTheme}`);
3303
+ }
3304
+ }
3245
3305
  function ThemeProvider({
3246
3306
  children,
3247
3307
  defaultTheme = "system",
3248
- storageKey = STORAGE_KEY
3308
+ defaultColorTheme = "blue",
3309
+ storageKey = STORAGE_KEY,
3310
+ colorStorageKey = COLOR_STORAGE_KEY
3249
3311
  }) {
3250
- const [theme, setThemeState] = useState2(() => {
3251
- if (typeof window === "undefined") return defaultTheme;
3252
- return localStorage.getItem(storageKey) || defaultTheme;
3253
- });
3312
+ const [theme, setThemeState] = useState2(
3313
+ () => readStoredTheme(storageKey, defaultTheme)
3314
+ );
3315
+ const [colorTheme, setColorThemeState] = useState2(
3316
+ () => readStoredColorTheme(colorStorageKey, defaultColorTheme)
3317
+ );
3254
3318
  const [systemTheme, setSystemTheme] = useState2(getSystemTheme);
3255
3319
  const resolvedTheme = theme === "system" ? systemTheme : theme;
3256
3320
  useEffect(() => {
3257
3321
  applyClass(resolvedTheme);
3258
3322
  }, [resolvedTheme]);
3323
+ useEffect(() => {
3324
+ applyColorTheme(colorTheme);
3325
+ }, [colorTheme]);
3259
3326
  useEffect(() => {
3260
3327
  const mq = window.matchMedia("(prefers-color-scheme: dark)");
3261
3328
  const handler = (e) => {
@@ -3264,6 +3331,23 @@ function ThemeProvider({
3264
3331
  mq.addEventListener("change", handler);
3265
3332
  return () => mq.removeEventListener("change", handler);
3266
3333
  }, []);
3334
+ useEffect(() => {
3335
+ const handler = (e) => {
3336
+ var _a;
3337
+ if (e.key === storageKey) {
3338
+ setThemeState(
3339
+ VALID_THEMES.includes(e.newValue) ? e.newValue : defaultTheme
3340
+ );
3341
+ }
3342
+ if (e.key === colorStorageKey) {
3343
+ setColorThemeState(
3344
+ COLOR_THEMES.includes((_a = e.newValue) != null ? _a : "") ? e.newValue : defaultColorTheme
3345
+ );
3346
+ }
3347
+ };
3348
+ window.addEventListener("storage", handler);
3349
+ return () => window.removeEventListener("storage", handler);
3350
+ }, [storageKey, colorStorageKey, defaultTheme, defaultColorTheme]);
3267
3351
  const setTheme = useCallback(
3268
3352
  (newTheme) => {
3269
3353
  localStorage.setItem(storageKey, newTheme);
@@ -3271,9 +3355,16 @@ function ThemeProvider({
3271
3355
  },
3272
3356
  [storageKey]
3273
3357
  );
3358
+ const setColorTheme = useCallback(
3359
+ (newColorTheme) => {
3360
+ localStorage.setItem(colorStorageKey, newColorTheme);
3361
+ setColorThemeState(newColorTheme);
3362
+ },
3363
+ [colorStorageKey]
3364
+ );
3274
3365
  const value = useMemo2(
3275
- () => ({ theme, resolvedTheme, setTheme }),
3276
- [theme, resolvedTheme, setTheme]
3366
+ () => ({ theme, resolvedTheme, setTheme, colorTheme, setColorTheme, colorThemes: COLOR_THEMES }),
3367
+ [theme, resolvedTheme, setTheme, colorTheme, setColorTheme]
3277
3368
  );
3278
3369
  return /* @__PURE__ */ jsx43(ThemeContext.Provider, { value, children });
3279
3370
  }
@@ -3316,7 +3407,7 @@ Toaster.displayName = "Toaster";
3316
3407
 
3317
3408
  // components/ui/Marquee.tsx
3318
3409
  import * as React41 from "react";
3319
- import { jsx as jsx45, jsxs as jsxs16 } from "react/jsx-runtime";
3410
+ import { jsx as jsx45, jsxs as jsxs17 } from "react/jsx-runtime";
3320
3411
  var Marquee = React41.forwardRef(
3321
3412
  (_a, ref) => {
3322
3413
  var _b = _a, {
@@ -3333,7 +3424,7 @@ var Marquee = React41.forwardRef(
3333
3424
  "className"
3334
3425
  ]);
3335
3426
  const direction = reverse ? "reverse" : "normal";
3336
- return /* @__PURE__ */ jsxs16(
3427
+ return /* @__PURE__ */ jsxs17(
3337
3428
  "div",
3338
3429
  __spreadProps(__spreadValues({
3339
3430
  ref,
@@ -3375,11 +3466,11 @@ Marquee.displayName = "Marquee";
3375
3466
 
3376
3467
  // components/ui/ImageCard.tsx
3377
3468
  import * as React42 from "react";
3378
- import { jsx as jsx46, jsxs as jsxs17 } from "react/jsx-runtime";
3469
+ import { jsx as jsx46, jsxs as jsxs18 } from "react/jsx-runtime";
3379
3470
  var ImageCard = React42.forwardRef(
3380
3471
  (_a, ref) => {
3381
3472
  var _b = _a, { imageUrl, caption, alt, className } = _b, props = __objRest(_b, ["imageUrl", "caption", "alt", "className"]);
3382
- return /* @__PURE__ */ jsxs17(
3473
+ return /* @__PURE__ */ jsxs18(
3383
3474
  "figure",
3384
3475
  __spreadProps(__spreadValues({
3385
3476
  ref,
@@ -3409,7 +3500,7 @@ ImageCard.displayName = "ImageCard";
3409
3500
  import * as React43 from "react";
3410
3501
  import { OTPInput, OTPInputContext } from "input-otp";
3411
3502
  import { Dot } from "lucide-react";
3412
- import { jsx as jsx47, jsxs as jsxs18 } from "react/jsx-runtime";
3503
+ import { jsx as jsx47, jsxs as jsxs19 } from "react/jsx-runtime";
3413
3504
  var InputOTPRoot = React43.forwardRef(
3414
3505
  (_a, ref) => {
3415
3506
  var _b = _a, { className, containerClassName } = _b, props = __objRest(_b, ["className", "containerClassName"]);
@@ -3446,7 +3537,7 @@ var InputOTPSlot = React43.forwardRef(
3446
3537
  var _a2;
3447
3538
  const inputOTPContext = React43.useContext(OTPInputContext);
3448
3539
  const { char, hasFakeCaret, isActive } = (_a2 = inputOTPContext == null ? void 0 : inputOTPContext.slots[index]) != null ? _a2 : {};
3449
- return /* @__PURE__ */ jsxs18(
3540
+ return /* @__PURE__ */ jsxs19(
3450
3541
  "div",
3451
3542
  __spreadProps(__spreadValues({
3452
3543
  ref,
@@ -3479,7 +3570,7 @@ var InputOTPComponent = Object.assign(InputOTPRoot, {
3479
3570
  // components/ui/AlertDialog.tsx
3480
3571
  import * as React44 from "react";
3481
3572
  import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
3482
- import { jsx as jsx48, jsxs as jsxs19 } from "react/jsx-runtime";
3573
+ import { jsx as jsx48, jsxs as jsxs20 } from "react/jsx-runtime";
3483
3574
  var AlertDialog = AlertDialogPrimitive.Root;
3484
3575
  var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
3485
3576
  var AlertDialogPortal = AlertDialogPrimitive.Portal;
@@ -3499,7 +3590,7 @@ var AlertDialogOverlay = React44.forwardRef((_a, ref) => {
3499
3590
  AlertDialogOverlay.displayName = "AlertDialog.Overlay";
3500
3591
  var AlertDialogContent = React44.forwardRef((_a, ref) => {
3501
3592
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3502
- return /* @__PURE__ */ jsxs19(AlertDialogPortal, { children: [
3593
+ return /* @__PURE__ */ jsxs20(AlertDialogPortal, { children: [
3503
3594
  /* @__PURE__ */ jsx48(AlertDialogOverlay, {}),
3504
3595
  /* @__PURE__ */ jsx48(
3505
3596
  AlertDialogPrimitive.Content,
@@ -3598,7 +3689,7 @@ var AlertDialogComponent = Object.assign(AlertDialog, {
3598
3689
  import * as React45 from "react";
3599
3690
  import { Slot as Slot6 } from "@radix-ui/react-slot";
3600
3691
  import { ChevronRight as ChevronRight4, MoreHorizontal as MoreHorizontal2 } from "lucide-react";
3601
- import { jsx as jsx49, jsxs as jsxs20 } from "react/jsx-runtime";
3692
+ import { jsx as jsx49, jsxs as jsxs21 } from "react/jsx-runtime";
3602
3693
  var Breadcrumb = React45.forwardRef((_a, ref) => {
3603
3694
  var props = __objRest(_a, []);
3604
3695
  return /* @__PURE__ */ jsx49("nav", __spreadValues({ ref, "aria-label": "breadcrumb" }, props));
@@ -3674,7 +3765,7 @@ var BreadcrumbSeparator = React45.forwardRef((_a, ref) => {
3674
3765
  BreadcrumbSeparator.displayName = "Breadcrumb.Separator";
3675
3766
  var BreadcrumbEllipsis = React45.forwardRef((_a, ref) => {
3676
3767
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3677
- return /* @__PURE__ */ jsxs20(
3768
+ return /* @__PURE__ */ jsxs21(
3678
3769
  "span",
3679
3770
  __spreadProps(__spreadValues({
3680
3771
  ref,
@@ -3769,7 +3860,7 @@ Calendar.displayName = "Calendar";
3769
3860
  import * as React47 from "react";
3770
3861
  import useEmblaCarousel from "embla-carousel-react";
3771
3862
  import { ArrowLeft, ArrowRight } from "lucide-react";
3772
- import { jsx as jsx51, jsxs as jsxs21 } from "react/jsx-runtime";
3863
+ import { jsx as jsx51, jsxs as jsxs22 } from "react/jsx-runtime";
3773
3864
  var CarouselContext = React47.createContext(null);
3774
3865
  function useCarousel() {
3775
3866
  const context = React47.useContext(CarouselContext);
@@ -3907,7 +3998,7 @@ var CarouselPrevious = React47.forwardRef(
3907
3998
  (_a, ref) => {
3908
3999
  var _b = _a, { className, variant = "outline", size = "icon" } = _b, props = __objRest(_b, ["className", "variant", "size"]);
3909
4000
  const { orientation, scrollPrev, canScrollPrev } = useCarousel();
3910
- return /* @__PURE__ */ jsxs21(
4001
+ return /* @__PURE__ */ jsxs22(
3911
4002
  Button,
3912
4003
  __spreadProps(__spreadValues({
3913
4004
  ref,
@@ -3934,7 +4025,7 @@ var CarouselNext = React47.forwardRef(
3934
4025
  (_a, ref) => {
3935
4026
  var _b = _a, { className, variant = "outline", size = "icon" } = _b, props = __objRest(_b, ["className", "variant", "size"]);
3936
4027
  const { orientation, scrollNext, canScrollNext } = useCarousel();
3937
- return /* @__PURE__ */ jsxs21(
4028
+ return /* @__PURE__ */ jsxs22(
3938
4029
  Button,
3939
4030
  __spreadProps(__spreadValues({
3940
4031
  ref,
@@ -3967,7 +4058,7 @@ var CarouselComponent = Object.assign(CarouselRoot, {
3967
4058
  // components/ui/Pagination.tsx
3968
4059
  import * as React48 from "react";
3969
4060
  import { ChevronLeft as ChevronLeft2, ChevronRight as ChevronRight6, MoreHorizontal as MoreHorizontal3 } from "lucide-react";
3970
- import { jsx as jsx52, jsxs as jsxs22 } from "react/jsx-runtime";
4061
+ import { jsx as jsx52, jsxs as jsxs23 } from "react/jsx-runtime";
3971
4062
  var PaginationRoot = React48.forwardRef((_a, ref) => {
3972
4063
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3973
4064
  return /* @__PURE__ */ jsx52(
@@ -4019,7 +4110,7 @@ var PaginationLink = React48.forwardRef((_a, ref) => {
4019
4110
  PaginationLink.displayName = "Pagination.Link";
4020
4111
  var PaginationPrevious = React48.forwardRef((_a, ref) => {
4021
4112
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4022
- return /* @__PURE__ */ jsxs22(
4113
+ return /* @__PURE__ */ jsxs23(
4023
4114
  PaginationLink,
4024
4115
  __spreadProps(__spreadValues({
4025
4116
  ref,
@@ -4037,7 +4128,7 @@ var PaginationPrevious = React48.forwardRef((_a, ref) => {
4037
4128
  PaginationPrevious.displayName = "Pagination.Previous";
4038
4129
  var PaginationNext = React48.forwardRef((_a, ref) => {
4039
4130
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4040
- return /* @__PURE__ */ jsxs22(
4131
+ return /* @__PURE__ */ jsxs23(
4041
4132
  PaginationLink,
4042
4133
  __spreadProps(__spreadValues({
4043
4134
  ref,
@@ -4055,7 +4146,7 @@ var PaginationNext = React48.forwardRef((_a, ref) => {
4055
4146
  PaginationNext.displayName = "Pagination.Next";
4056
4147
  var PaginationEllipsis = React48.forwardRef((_a, ref) => {
4057
4148
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4058
- return /* @__PURE__ */ jsxs22(
4149
+ return /* @__PURE__ */ jsxs23(
4059
4150
  "span",
4060
4151
  __spreadProps(__spreadValues({
4061
4152
  ref,
@@ -4082,9 +4173,9 @@ var Pagination = Object.assign(PaginationRoot, {
4082
4173
  // components/ui/Sheet.tsx
4083
4174
  import * as React49 from "react";
4084
4175
  import * as SheetPrimitive from "@radix-ui/react-dialog";
4085
- import { cva as cva17 } from "class-variance-authority";
4176
+ import { cva as cva18 } from "class-variance-authority";
4086
4177
  import { X as X2 } from "lucide-react";
4087
- import { jsx as jsx53, jsxs as jsxs23 } from "react/jsx-runtime";
4178
+ import { jsx as jsx53, jsxs as jsxs24 } from "react/jsx-runtime";
4088
4179
  var Sheet = SheetPrimitive.Root;
4089
4180
  var SheetTrigger = SheetPrimitive.Trigger;
4090
4181
  var SheetClose = SheetPrimitive.Close;
@@ -4102,7 +4193,7 @@ var SheetOverlay = React49.forwardRef((_a, ref) => {
4102
4193
  );
4103
4194
  });
4104
4195
  SheetOverlay.displayName = "Sheet.Overlay";
4105
- var sheetContentVariants = cva17(
4196
+ var sheetContentVariants = cva18(
4106
4197
  "fixed z-50 flex flex-col gap-4 border-2 border-border bg-background transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
4107
4198
  {
4108
4199
  variants: {
@@ -4120,9 +4211,9 @@ var sheetContentVariants = cva17(
4120
4211
  );
4121
4212
  var SheetContent = React49.forwardRef((_a, ref) => {
4122
4213
  var _b = _a, { children, side = "right", className } = _b, props = __objRest(_b, ["children", "side", "className"]);
4123
- return /* @__PURE__ */ jsxs23(SheetPrimitive.Portal, { children: [
4214
+ return /* @__PURE__ */ jsxs24(SheetPrimitive.Portal, { children: [
4124
4215
  /* @__PURE__ */ jsx53(SheetOverlay, {}),
4125
- /* @__PURE__ */ jsxs23(
4216
+ /* @__PURE__ */ jsxs24(
4126
4217
  SheetPrimitive.Content,
4127
4218
  __spreadProps(__spreadValues({
4128
4219
  ref,
@@ -4130,7 +4221,7 @@ var SheetContent = React49.forwardRef((_a, ref) => {
4130
4221
  }, props), {
4131
4222
  children: [
4132
4223
  children,
4133
- /* @__PURE__ */ jsxs23(SheetPrimitive.Close, { className: "absolute right-4 top-4 cursor-pointer ring-offset-background focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none", children: [
4224
+ /* @__PURE__ */ jsxs24(SheetPrimitive.Close, { className: "absolute right-4 top-4 cursor-pointer ring-offset-background focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none", children: [
4134
4225
  /* @__PURE__ */ jsx53(X2, { className: "h-4 w-4" }),
4135
4226
  /* @__PURE__ */ jsx53("span", { className: "sr-only", children: "Close" })
4136
4227
  ] })
@@ -4323,7 +4414,7 @@ var FormComponent = Object.assign(Form, {
4323
4414
  import * as React51 from "react";
4324
4415
  import { Command as CommandPrimitive } from "cmdk";
4325
4416
  import { Search } from "lucide-react";
4326
- import { jsx as jsx55, jsxs as jsxs24 } from "react/jsx-runtime";
4417
+ import { jsx as jsx55, jsxs as jsxs25 } from "react/jsx-runtime";
4327
4418
  var CommandRoot = React51.forwardRef((_a, ref) => {
4328
4419
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4329
4420
  return /* @__PURE__ */ jsx55(
@@ -4355,7 +4446,7 @@ var CommandDialog = (_a) => {
4355
4446
  CommandDialog.displayName = "Command.Dialog";
4356
4447
  var CommandInput = React51.forwardRef((_a, ref) => {
4357
4448
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4358
- return /* @__PURE__ */ jsxs24("div", { className: "flex h-9 gap-2 items-center border-b-2 border-border px-3", children: [
4449
+ return /* @__PURE__ */ jsxs25("div", { className: "flex h-9 gap-2 items-center border-b-2 border-border px-3", children: [
4359
4450
  /* @__PURE__ */ jsx55(Search, { className: "size-4 shrink-0" }),
4360
4451
  /* @__PURE__ */ jsx55(
4361
4452
  CommandPrimitive.Input,
@@ -4465,7 +4556,7 @@ var CommandComponent = Object.assign(CommandRoot, {
4465
4556
  // components/ui/Combobox.tsx
4466
4557
  import * as React52 from "react";
4467
4558
  import { Check as Check6, ChevronsUpDown } from "lucide-react";
4468
- import { jsx as jsx56, jsxs as jsxs25 } from "react/jsx-runtime";
4559
+ import { jsx as jsx56, jsxs as jsxs26 } from "react/jsx-runtime";
4469
4560
  var ComboboxRoot = React52.forwardRef(
4470
4561
  ({
4471
4562
  items,
@@ -4491,8 +4582,8 @@ var ComboboxRoot = React52.forwardRef(
4491
4582
  [onValueChange]
4492
4583
  );
4493
4584
  const selectedItem = items.find((item) => item.value === value);
4494
- return /* @__PURE__ */ jsxs25(PopoverComponent, { open, onOpenChange: setOpen, children: [
4495
- /* @__PURE__ */ jsx56(PopoverComponent.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs25(
4585
+ return /* @__PURE__ */ jsxs26(PopoverComponent, { open, onOpenChange: setOpen, children: [
4586
+ /* @__PURE__ */ jsx56(PopoverComponent.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs26(
4496
4587
  Button,
4497
4588
  {
4498
4589
  ref,
@@ -4507,11 +4598,11 @@ var ComboboxRoot = React52.forwardRef(
4507
4598
  ]
4508
4599
  }
4509
4600
  ) }),
4510
- /* @__PURE__ */ jsx56(PopoverComponent.Content, { className: "w-[200px] border-0! p-0", children: /* @__PURE__ */ jsxs25(CommandComponent, { children: [
4601
+ /* @__PURE__ */ jsx56(PopoverComponent.Content, { className: "w-[200px] border-0! p-0", children: /* @__PURE__ */ jsxs26(CommandComponent, { children: [
4511
4602
  /* @__PURE__ */ jsx56(CommandComponent.Input, { placeholder: searchPlaceholder }),
4512
- /* @__PURE__ */ jsxs25(CommandComponent.List, { children: [
4603
+ /* @__PURE__ */ jsxs26(CommandComponent.List, { children: [
4513
4604
  /* @__PURE__ */ jsx56(CommandComponent.Empty, { children: emptyText }),
4514
- /* @__PURE__ */ jsx56(CommandComponent.Group, { children: items.map((item) => /* @__PURE__ */ jsxs25(
4605
+ /* @__PURE__ */ jsx56(CommandComponent.Group, { children: items.map((item) => /* @__PURE__ */ jsxs26(
4515
4606
  CommandComponent.Item,
4516
4607
  {
4517
4608
  value: item.value,
@@ -4566,8 +4657,8 @@ var ComboboxMulti = React52.forwardRef(
4566
4657
  [onValuesChange]
4567
4658
  );
4568
4659
  const selectedLabels = items.filter((item) => values.includes(item.value)).map((item) => item.label);
4569
- return /* @__PURE__ */ jsxs25(PopoverComponent, { open, onOpenChange: setOpen, children: [
4570
- /* @__PURE__ */ jsx56(PopoverComponent.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs25(
4660
+ return /* @__PURE__ */ jsxs26(PopoverComponent, { open, onOpenChange: setOpen, children: [
4661
+ /* @__PURE__ */ jsx56(PopoverComponent.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs26(
4571
4662
  Button,
4572
4663
  {
4573
4664
  ref,
@@ -4582,11 +4673,11 @@ var ComboboxMulti = React52.forwardRef(
4582
4673
  ]
4583
4674
  }
4584
4675
  ) }),
4585
- /* @__PURE__ */ jsx56(PopoverComponent.Content, { className: "w-[200px] border-0! p-0", children: /* @__PURE__ */ jsxs25(CommandComponent, { children: [
4676
+ /* @__PURE__ */ jsx56(PopoverComponent.Content, { className: "w-[200px] border-0! p-0", children: /* @__PURE__ */ jsxs26(CommandComponent, { children: [
4586
4677
  /* @__PURE__ */ jsx56(CommandComponent.Input, { placeholder: searchPlaceholder }),
4587
- /* @__PURE__ */ jsxs25(CommandComponent.List, { children: [
4678
+ /* @__PURE__ */ jsxs26(CommandComponent.List, { children: [
4588
4679
  /* @__PURE__ */ jsx56(CommandComponent.Empty, { children: emptyText }),
4589
- /* @__PURE__ */ jsx56(CommandComponent.Group, { children: items.map((item) => /* @__PURE__ */ jsxs25(
4680
+ /* @__PURE__ */ jsx56(CommandComponent.Group, { children: items.map((item) => /* @__PURE__ */ jsxs26(
4590
4681
  CommandComponent.Item,
4591
4682
  {
4592
4683
  value: item.value,
@@ -4631,14 +4722,14 @@ import {
4631
4722
  useReactTable
4632
4723
  } from "@tanstack/react-table";
4633
4724
  import { ArrowUpDown, ChevronDown as ChevronDown4 } from "lucide-react";
4634
- import { jsx as jsx57, jsxs as jsxs26 } from "react/jsx-runtime";
4725
+ import { jsx as jsx57, jsxs as jsxs27 } from "react/jsx-runtime";
4635
4726
  var DataTableToolbar = ({
4636
4727
  filterValue,
4637
4728
  onFilterChange,
4638
4729
  filterPlaceholder,
4639
4730
  showColumnToggle,
4640
4731
  columns
4641
- }) => /* @__PURE__ */ jsxs26("div", { className: "flex items-center py-4 gap-2", children: [
4732
+ }) => /* @__PURE__ */ jsxs27("div", { className: "flex items-center py-4 gap-2", children: [
4642
4733
  /* @__PURE__ */ jsx57(
4643
4734
  Input,
4644
4735
  {
@@ -4648,8 +4739,8 @@ var DataTableToolbar = ({
4648
4739
  className: "max-w-sm"
4649
4740
  }
4650
4741
  ),
4651
- showColumnToggle && /* @__PURE__ */ jsxs26(DropdownMenuComponent, { children: [
4652
- /* @__PURE__ */ jsx57(DropdownMenuComponent.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs26(Button, { variant: "outline", className: "ml-auto", children: [
4742
+ showColumnToggle && /* @__PURE__ */ jsxs27(DropdownMenuComponent, { children: [
4743
+ /* @__PURE__ */ jsx57(DropdownMenuComponent.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs27(Button, { variant: "outline", className: "ml-auto", children: [
4653
4744
  "Columns ",
4654
4745
  /* @__PURE__ */ jsx57(ChevronDown4, { className: "ml-2 size-4" })
4655
4746
  ] }) }),
@@ -4674,14 +4765,14 @@ var DataTablePagination = ({
4674
4765
  canNextPage,
4675
4766
  onPreviousPage,
4676
4767
  onNextPage
4677
- }) => /* @__PURE__ */ jsxs26("div", { className: "flex items-center justify-end gap-2 py-4", children: [
4678
- showSelectedCount && /* @__PURE__ */ jsxs26("div", { className: "text-foreground flex-1 text-sm font-sans", children: [
4768
+ }) => /* @__PURE__ */ jsxs27("div", { className: "flex items-center justify-end gap-2 py-4", children: [
4769
+ showSelectedCount && /* @__PURE__ */ jsxs27("div", { className: "text-foreground flex-1 text-sm font-sans", children: [
4679
4770
  selectedCount,
4680
4771
  " of ",
4681
4772
  totalCount,
4682
4773
  " row(s) selected."
4683
4774
  ] }),
4684
- /* @__PURE__ */ jsxs26("div", { className: "flex gap-2", children: [
4775
+ /* @__PURE__ */ jsxs27("div", { className: "flex gap-2", children: [
4685
4776
  /* @__PURE__ */ jsx57(
4686
4777
  Button,
4687
4778
  {
@@ -4709,7 +4800,7 @@ var DataTableSortButton = ({
4709
4800
  children,
4710
4801
  onClick,
4711
4802
  className
4712
- }) => /* @__PURE__ */ jsxs26(
4803
+ }) => /* @__PURE__ */ jsxs27(
4713
4804
  Button,
4714
4805
  {
4715
4806
  variant: "ghost",
@@ -4756,7 +4847,7 @@ function DataTableRoot({
4756
4847
  rowSelection
4757
4848
  }
4758
4849
  });
4759
- return /* @__PURE__ */ jsxs26("div", { className: cn("w-full font-sans text-foreground", className), children: [
4850
+ return /* @__PURE__ */ jsxs27("div", { className: cn("w-full font-sans text-foreground", className), children: [
4760
4851
  filterColumn && /* @__PURE__ */ jsx57(
4761
4852
  DataTableToolbar,
4762
4853
  {
@@ -4770,7 +4861,7 @@ function DataTableRoot({
4770
4861
  columns: table.getAllColumns()
4771
4862
  }
4772
4863
  ),
4773
- /* @__PURE__ */ jsx57("div", { children: /* @__PURE__ */ jsxs26(TableComponent, { children: [
4864
+ /* @__PURE__ */ jsx57("div", { children: /* @__PURE__ */ jsxs27(TableComponent, { children: [
4774
4865
  /* @__PURE__ */ jsx57(TableComponent.Header, { className: "font-head", children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx57(
4775
4866
  TableComponent.Row,
4776
4867
  {
@@ -4822,7 +4913,7 @@ var DataTableComponent = Object.assign(DataTableRoot, {
4822
4913
  // components/ui/Sidebar.tsx
4823
4914
  import * as React55 from "react";
4824
4915
  import { Slot as Slot8 } from "@radix-ui/react-slot";
4825
- import { cva as cva18 } from "class-variance-authority";
4916
+ import { cva as cva19 } from "class-variance-authority";
4826
4917
  import { PanelLeftIcon } from "lucide-react";
4827
4918
 
4828
4919
  // hooks/use-mobile.ts
@@ -4845,7 +4936,7 @@ function useIsMobile() {
4845
4936
  }
4846
4937
 
4847
4938
  // components/ui/Sidebar.tsx
4848
- import { jsx as jsx58, jsxs as jsxs27 } from "react/jsx-runtime";
4939
+ import { jsx as jsx58, jsxs as jsxs28 } from "react/jsx-runtime";
4849
4940
  var SIDEBAR_COOKIE_NAME = "sidebar_state";
4850
4941
  var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
4851
4942
  var SIDEBAR_WIDTH = "16rem";
@@ -4964,7 +5055,7 @@ var SidebarRoot = (_a) => {
4964
5055
  );
4965
5056
  }
4966
5057
  if (isMobile) {
4967
- return /* @__PURE__ */ jsx58(SheetComponent, __spreadProps(__spreadValues({ open: openMobile, onOpenChange: setOpenMobile }, props), { children: /* @__PURE__ */ jsxs27(
5058
+ return /* @__PURE__ */ jsx58(SheetComponent, __spreadProps(__spreadValues({ open: openMobile, onOpenChange: setOpenMobile }, props), { children: /* @__PURE__ */ jsxs28(
4968
5059
  SheetComponent.Content,
4969
5060
  {
4970
5061
  "data-sidebar": "sidebar",
@@ -4975,7 +5066,7 @@ var SidebarRoot = (_a) => {
4975
5066
  },
4976
5067
  side,
4977
5068
  children: [
4978
- /* @__PURE__ */ jsxs27(SheetComponent.Header, { className: "sr-only", children: [
5069
+ /* @__PURE__ */ jsxs28(SheetComponent.Header, { className: "sr-only", children: [
4979
5070
  /* @__PURE__ */ jsx58(SheetComponent.Title, { children: "Sidebar" }),
4980
5071
  /* @__PURE__ */ jsx58(SheetComponent.Description, { children: "Displays the mobile sidebar." })
4981
5072
  ] }),
@@ -4984,7 +5075,7 @@ var SidebarRoot = (_a) => {
4984
5075
  }
4985
5076
  ) }));
4986
5077
  }
4987
- return /* @__PURE__ */ jsxs27(
5078
+ return /* @__PURE__ */ jsxs28(
4988
5079
  "div",
4989
5080
  {
4990
5081
  className: "group peer hidden md:block",
@@ -5032,7 +5123,7 @@ SidebarRoot.displayName = "Sidebar";
5032
5123
  var SidebarTrigger = React55.forwardRef((_a, ref) => {
5033
5124
  var _b = _a, { className, onClick } = _b, props = __objRest(_b, ["className", "onClick"]);
5034
5125
  const { toggleSidebar } = useSidebar();
5035
- return /* @__PURE__ */ jsxs27(
5126
+ return /* @__PURE__ */ jsxs28(
5036
5127
  Button,
5037
5128
  __spreadProps(__spreadValues({
5038
5129
  ref,
@@ -5236,7 +5327,7 @@ var SidebarMenuItem = React55.forwardRef((_a, ref) => {
5236
5327
  );
5237
5328
  });
5238
5329
  SidebarMenuItem.displayName = "Sidebar.MenuItem";
5239
- var sidebarMenuButtonVariants = cva18(
5330
+ var sidebarMenuButtonVariants = cva19(
5240
5331
  "peer/menu-button flex w-full items-center gap-2 overflow-hidden outline-2 outline-transparent p-2 text-left text-sm ring-ring transition-[width,height,padding] hover:bg-primary hover:text-primary-foreground hover:outline-border focus-visible:outline-border focus-visible:text-primary-foreground focus-visible:bg-primary 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 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
5241
5332
  {
5242
5333
  variants: {
@@ -5282,7 +5373,7 @@ var SidebarMenuButton = React55.forwardRef(
5282
5373
  return button;
5283
5374
  }
5284
5375
  const tooltipProps = typeof tooltip === "string" ? { children: tooltip } : tooltip;
5285
- return /* @__PURE__ */ jsxs27(TooltipComponent, { children: [
5376
+ return /* @__PURE__ */ jsxs28(TooltipComponent, { children: [
5286
5377
  /* @__PURE__ */ jsx58(TooltipComponent.Trigger, { asChild: true, children: button }),
5287
5378
  /* @__PURE__ */ jsx58(
5288
5379
  TooltipComponent.Content,
@@ -5343,7 +5434,7 @@ var SidebarMenuSkeleton = React55.forwardRef((_a, ref) => {
5343
5434
  const [width] = React55.useState(
5344
5435
  () => `${Math.floor(Math.random() * 40) + 50}%`
5345
5436
  );
5346
- return /* @__PURE__ */ jsxs27(
5437
+ return /* @__PURE__ */ jsxs28(
5347
5438
  "div",
5348
5439
  __spreadProps(__spreadValues({
5349
5440
  ref,
@@ -5469,11 +5560,11 @@ function CardGrid({ children, columns = 3, className }) {
5469
5560
  // components/NavBar/NavBar.tsx
5470
5561
  import { useState as useState8 } from "react";
5471
5562
  import { AlignJustify, X as X3, ChevronDown as ChevronDown5 } from "lucide-react";
5472
- import { jsx as jsx60, jsxs as jsxs28 } from "react/jsx-runtime";
5563
+ import { jsx as jsx60, jsxs as jsxs29 } from "react/jsx-runtime";
5473
5564
  function NavBar({ brand, links = [], auth, linkComponent: LinkComp = "a", className }) {
5474
5565
  var _a, _b;
5475
5566
  const [drawerOpen, setDrawerOpen] = useState8(false);
5476
- return /* @__PURE__ */ jsxs28(
5567
+ return /* @__PURE__ */ jsxs29(
5477
5568
  "nav",
5478
5569
  {
5479
5570
  className: cn(
@@ -5481,7 +5572,7 @@ function NavBar({ brand, links = [], auth, linkComponent: LinkComp = "a", classN
5481
5572
  className
5482
5573
  ),
5483
5574
  children: [
5484
- /* @__PURE__ */ jsx60("div", { className: "mx-auto max-w-6xl px-4", children: /* @__PURE__ */ jsxs28("div", { className: "flex h-16 items-center justify-between", children: [
5575
+ /* @__PURE__ */ jsx60("div", { className: "mx-auto max-w-6xl px-4", children: /* @__PURE__ */ jsxs29("div", { className: "flex h-16 items-center justify-between", children: [
5485
5576
  /* @__PURE__ */ jsx60(
5486
5577
  LinkComp,
5487
5578
  {
@@ -5500,7 +5591,7 @@ function NavBar({ brand, links = [], auth, linkComponent: LinkComp = "a", classN
5500
5591
  link.href
5501
5592
  )) }),
5502
5593
  /* @__PURE__ */ jsx60("div", { className: "hidden lg:flex items-center gap-3", children: auth.state === "signed-out" ? /* @__PURE__ */ jsx60(SignedOutActions, { auth, linkComponent: LinkComp }) : /* @__PURE__ */ jsx60(UserMenu, { auth, linkComponent: LinkComp }) }),
5503
- /* @__PURE__ */ jsxs28("div", { className: "flex lg:hidden items-center gap-3", children: [
5594
+ /* @__PURE__ */ jsxs29("div", { className: "flex lg:hidden items-center gap-3", children: [
5504
5595
  auth.state === "signed-out" && /* @__PURE__ */ jsx60("div", { className: "hidden sm:flex items-center gap-2", children: /* @__PURE__ */ jsx60(SignedOutActions, { auth, linkComponent: LinkComp }) }),
5505
5596
  /* @__PURE__ */ jsx60(
5506
5597
  Button,
@@ -5520,8 +5611,8 @@ function NavBar({ brand, links = [], auth, linkComponent: LinkComp = "a", classN
5520
5611
  direction: "right",
5521
5612
  open: drawerOpen,
5522
5613
  onOpenChange: setDrawerOpen,
5523
- children: /* @__PURE__ */ jsxs28(DrawerComponent.Content, { children: [
5524
- /* @__PURE__ */ jsxs28(DrawerComponent.Header, { className: "flex-row items-center justify-between", children: [
5614
+ children: /* @__PURE__ */ jsxs29(DrawerComponent.Content, { children: [
5615
+ /* @__PURE__ */ jsxs29(DrawerComponent.Header, { className: "flex-row items-center justify-between", children: [
5525
5616
  /* @__PURE__ */ jsx60(DrawerComponent.Title, { children: brand.name }),
5526
5617
  /* @__PURE__ */ jsx60(DrawerComponent.Close, { asChild: true, children: /* @__PURE__ */ jsx60(Button, { size: "icon", variant: "ghost", className: "p-1", children: /* @__PURE__ */ jsx60(X3, { className: "h-5 w-5" }) }) })
5527
5618
  ] }),
@@ -5535,8 +5626,8 @@ function NavBar({ brand, links = [], auth, linkComponent: LinkComp = "a", classN
5535
5626
  },
5536
5627
  link.href
5537
5628
  )) }),
5538
- /* @__PURE__ */ jsx60(DrawerComponent.Footer, { children: auth.state === "signed-out" ? /* @__PURE__ */ jsx60(Button, { asChild: true, children: /* @__PURE__ */ jsx60(LinkComp, { href: auth.href, children: (_b = auth.label) != null ? _b : "Get Started" }) }) : /* @__PURE__ */ jsxs28("div", { className: "flex flex-col gap-1 border-t-2 pt-4", children: [
5539
- /* @__PURE__ */ jsxs28("div", { className: "flex items-center gap-3 px-2 pb-3", children: [
5629
+ /* @__PURE__ */ jsx60(DrawerComponent.Footer, { children: auth.state === "signed-out" ? /* @__PURE__ */ jsx60(Button, { asChild: true, children: /* @__PURE__ */ jsx60(LinkComp, { href: auth.href, children: (_b = auth.label) != null ? _b : "Get Started" }) }) : /* @__PURE__ */ jsxs29("div", { className: "flex flex-col gap-1 border-t-2 pt-4", children: [
5630
+ /* @__PURE__ */ jsxs29("div", { className: "flex items-center gap-3 px-2 pb-3", children: [
5540
5631
  /* @__PURE__ */ jsx60(AvatarComponent, { className: "h-8 w-8", children: auth.user.avatar ? /* @__PURE__ */ jsx60(AvatarComponent.Image, { src: auth.user.avatar, alt: auth.user.name }) : /* @__PURE__ */ jsx60(AvatarComponent.Fallback, { children: auth.user.name.charAt(0).toUpperCase() }) }),
5541
5632
  /* @__PURE__ */ jsx60("span", { className: "font-head text-sm", children: auth.user.name })
5542
5633
  ] }),
@@ -5583,8 +5674,8 @@ function UserMenu({
5583
5674
  auth,
5584
5675
  linkComponent: LinkComp = "a"
5585
5676
  }) {
5586
- return /* @__PURE__ */ jsxs28(MenuComponent, { children: [
5587
- /* @__PURE__ */ jsx60(MenuComponent.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs28("button", { className: "flex items-center gap-2 cursor-pointer outline-hidden", children: [
5677
+ return /* @__PURE__ */ jsxs29(MenuComponent, { children: [
5678
+ /* @__PURE__ */ jsx60(MenuComponent.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs29("button", { className: "flex items-center gap-2 cursor-pointer outline-hidden", children: [
5588
5679
  /* @__PURE__ */ jsx60(AvatarComponent, { className: "h-8 w-8", children: auth.user.avatar ? /* @__PURE__ */ jsx60(AvatarComponent.Image, { src: auth.user.avatar, alt: auth.user.name }) : /* @__PURE__ */ jsx60(AvatarComponent.Fallback, { children: auth.user.name.charAt(0).toUpperCase() }) }),
5589
5680
  /* @__PURE__ */ jsx60(ChevronDown5, { className: "h-3 w-3" })
5590
5681
  ] }) }),
@@ -5598,7 +5689,7 @@ function UserMenu({
5598
5689
  }
5599
5690
 
5600
5691
  // components/Page/Page.tsx
5601
- import { jsx as jsx61, jsxs as jsxs29 } from "react/jsx-runtime";
5692
+ import { jsx as jsx61, jsxs as jsxs30 } from "react/jsx-runtime";
5602
5693
  function SimplePage({
5603
5694
  title,
5604
5695
  subtitle,
@@ -5606,9 +5697,9 @@ function SimplePage({
5606
5697
  children,
5607
5698
  className
5608
5699
  }) {
5609
- return /* @__PURE__ */ jsxs29("div", { className: cn("min-h-screen", className), children: [
5610
- /* @__PURE__ */ jsx61("header", { className: "border-b-2 bg-background", children: /* @__PURE__ */ jsx61("div", { className: "mx-auto max-w-6xl px-4 py-8", children: /* @__PURE__ */ jsxs29("div", { className: "flex items-start justify-between gap-4", children: [
5611
- /* @__PURE__ */ jsxs29("div", { children: [
5700
+ return /* @__PURE__ */ jsxs30("div", { className: cn("min-h-screen", className), children: [
5701
+ /* @__PURE__ */ jsx61("header", { className: "border-b-2 bg-background", children: /* @__PURE__ */ jsx61("div", { className: "mx-auto max-w-6xl px-4 py-8", children: /* @__PURE__ */ jsxs30("div", { className: "flex items-start justify-between gap-4", children: [
5702
+ /* @__PURE__ */ jsxs30("div", { children: [
5612
5703
  /* @__PURE__ */ jsx61("h1", { className: "font-head text-4xl mb-2", children: title }),
5613
5704
  subtitle && /* @__PURE__ */ jsx61("p", { className: "font-sans text-lg text-muted-foreground max-w-xl", children: subtitle })
5614
5705
  ] }),
@@ -5675,7 +5766,7 @@ function SectionNav({ items, className, offsetTop }) {
5675
5766
  // components/TwoColumnLayout/TwoColumnLayout.tsx
5676
5767
  import { PanelRight } from "lucide-react";
5677
5768
  import React59, { useState as useState10 } from "react";
5678
- import { jsx as jsx63, jsxs as jsxs30 } from "react/jsx-runtime";
5769
+ import { jsx as jsx63, jsxs as jsxs31 } from "react/jsx-runtime";
5679
5770
  function TwoColumnLayout({
5680
5771
  children,
5681
5772
  className,
@@ -5690,7 +5781,7 @@ function TwoColumnLayout({
5690
5781
  if (type.displayName === "TwoColumnLayout.Left") leftContent = child;
5691
5782
  if (type.displayName === "TwoColumnLayout.Right") rightContent = child;
5692
5783
  });
5693
- return /* @__PURE__ */ jsxs30("div", { className: cn("flex flex-col md:flex-row gap-0 min-h-0", className), children: [
5784
+ return /* @__PURE__ */ jsxs31("div", { className: cn("flex flex-col md:flex-row gap-0 min-h-0", className), children: [
5694
5785
  /* @__PURE__ */ jsx63("div", { className: "flex-1 min-w-0 md:border-r-2", children: leftContent }),
5695
5786
  /* @__PURE__ */ jsx63("div", { className: "hidden md:block flex-1 min-w-0", children: rightContent }),
5696
5787
  rightContent && /* @__PURE__ */ jsx63("div", { className: "fixed bottom-6 right-6 md:hidden z-40", children: /* @__PURE__ */ jsx63(
@@ -5703,7 +5794,7 @@ function TwoColumnLayout({
5703
5794
  children: /* @__PURE__ */ jsx63(PanelRight, { className: "size-5" })
5704
5795
  }
5705
5796
  ) }),
5706
- /* @__PURE__ */ jsx63(DrawerComponent, { open: drawerOpen, onOpenChange: setDrawerOpen, direction: "right", children: /* @__PURE__ */ jsxs30(DrawerComponent.Content, { children: [
5797
+ /* @__PURE__ */ jsx63(DrawerComponent, { open: drawerOpen, onOpenChange: setDrawerOpen, direction: "right", children: /* @__PURE__ */ jsxs31(DrawerComponent.Content, { children: [
5707
5798
  /* @__PURE__ */ jsx63(DrawerComponent.Header, { children: /* @__PURE__ */ jsx63(DrawerComponent.Title, { children: drawerTitle }) }),
5708
5799
  /* @__PURE__ */ jsx63("div", { className: "flex-1 overflow-y-auto p-4", children: rightContent })
5709
5800
  ] }) })
@@ -5724,7 +5815,7 @@ var TwoColumnLayoutComponent = Object.assign(TwoColumnLayout, {
5724
5815
 
5725
5816
  // components/ThemeToggle.tsx
5726
5817
  import { useSyncExternalStore } from "react";
5727
- import { jsx as jsx64, jsxs as jsxs31 } from "react/jsx-runtime";
5818
+ import { jsx as jsx64, jsxs as jsxs32 } from "react/jsx-runtime";
5728
5819
  var subscribe = () => () => {
5729
5820
  };
5730
5821
  var getSnapshot = () => true;
@@ -5742,7 +5833,7 @@ function ThemeToggle(_a) {
5742
5833
  const { resolvedTheme, setTheme } = useTheme();
5743
5834
  const mounted = useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
5744
5835
  const opposite = resolvedTheme === "dark" ? "light" : "dark";
5745
- return /* @__PURE__ */ jsxs31(
5836
+ return /* @__PURE__ */ jsxs32(
5746
5837
  IconButton,
5747
5838
  __spreadProps(__spreadValues({
5748
5839
  variant,
@@ -5752,7 +5843,7 @@ function ThemeToggle(_a) {
5752
5843
  "aria-label": mounted ? `Switch to ${opposite} mode` : "Toggle theme"
5753
5844
  }, props), {
5754
5845
  children: [
5755
- /* @__PURE__ */ jsxs31(
5846
+ /* @__PURE__ */ jsxs32(
5756
5847
  "svg",
5757
5848
  {
5758
5849
  xmlns: "http://www.w3.org/2000/svg",
@@ -5797,6 +5888,83 @@ function ThemeToggle(_a) {
5797
5888
  );
5798
5889
  }
5799
5890
 
5891
+ // components/ColorThemeToggle.tsx
5892
+ import { useSyncExternalStore as useSyncExternalStore2 } from "react";
5893
+ import { jsx as jsx65, jsxs as jsxs33 } from "react/jsx-runtime";
5894
+ var subscribe2 = () => () => {
5895
+ };
5896
+ var getSnapshot2 = () => true;
5897
+ var getServerSnapshot2 = () => false;
5898
+ var COLOR_SWATCHES = {
5899
+ blue: "#5294FF",
5900
+ plum: "#B254CF",
5901
+ "plum-trio": "#B254CF"
5902
+ };
5903
+ var COLOR_LABELS = {
5904
+ blue: "Blue",
5905
+ plum: "Plum",
5906
+ "plum-trio": "Plum Trio"
5907
+ };
5908
+ function ColorThemeToggle(_a) {
5909
+ var _b = _a, {
5910
+ variant = "ghost",
5911
+ size = "md",
5912
+ className
5913
+ } = _b, props = __objRest(_b, [
5914
+ "variant",
5915
+ "size",
5916
+ "className"
5917
+ ]);
5918
+ const { colorTheme, setColorTheme, colorThemes } = useTheme();
5919
+ const mounted = useSyncExternalStore2(subscribe2, getSnapshot2, getServerSnapshot2);
5920
+ return /* @__PURE__ */ jsxs33(DropdownMenuComponent, { children: [
5921
+ /* @__PURE__ */ jsx65(DropdownMenuComponent.Trigger, { asChild: true, children: /* @__PURE__ */ jsx65(
5922
+ IconButton,
5923
+ __spreadProps(__spreadValues({
5924
+ variant,
5925
+ size,
5926
+ className,
5927
+ "aria-label": mounted ? `Color theme: ${colorTheme}` : "Color theme"
5928
+ }, props), {
5929
+ children: /* @__PURE__ */ jsx65(
5930
+ "span",
5931
+ {
5932
+ className: "block w-4 h-4 border-2 border-border",
5933
+ style: {
5934
+ backgroundColor: mounted ? COLOR_SWATCHES[colorTheme] : void 0,
5935
+ borderRadius: "var(--radius, 0)"
5936
+ }
5937
+ }
5938
+ )
5939
+ })
5940
+ ) }),
5941
+ /* @__PURE__ */ jsxs33(DropdownMenuComponent.Content, { align: "end", children: [
5942
+ /* @__PURE__ */ jsx65(DropdownMenuComponent.Label, { children: "Color Theme" }),
5943
+ /* @__PURE__ */ jsx65(DropdownMenuComponent.Separator, {}),
5944
+ /* @__PURE__ */ jsx65(
5945
+ DropdownMenuComponent.RadioGroup,
5946
+ {
5947
+ value: colorTheme,
5948
+ onValueChange: (v) => setColorTheme(v),
5949
+ children: colorThemes.map((theme) => /* @__PURE__ */ jsxs33(DropdownMenuComponent.RadioItem, { value: theme, children: [
5950
+ /* @__PURE__ */ jsx65(
5951
+ "span",
5952
+ {
5953
+ className: "inline-block w-3 h-3 border border-border mr-1",
5954
+ style: {
5955
+ backgroundColor: COLOR_SWATCHES[theme],
5956
+ borderRadius: "var(--radius, 0)"
5957
+ }
5958
+ }
5959
+ ),
5960
+ COLOR_LABELS[theme]
5961
+ ] }, theme))
5962
+ }
5963
+ )
5964
+ ] })
5965
+ ] });
5966
+ }
5967
+
5800
5968
  // lib/create-theme.ts
5801
5969
  function createTheme(name, config) {
5802
5970
  const declarations = [];
@@ -5837,7 +6005,7 @@ ${declarations.join("\n")}
5837
6005
  }
5838
6006
 
5839
6007
  // components/landing/Hero.tsx
5840
- import { jsx as jsx65, jsxs as jsxs32 } from "react/jsx-runtime";
6008
+ import { jsx as jsx66, jsxs as jsxs34 } from "react/jsx-runtime";
5841
6009
  function Hero({
5842
6010
  badge,
5843
6011
  title,
@@ -5847,14 +6015,14 @@ function Hero({
5847
6015
  className,
5848
6016
  align = "center"
5849
6017
  }) {
5850
- return /* @__PURE__ */ jsx65(
6018
+ return /* @__PURE__ */ jsx66(
5851
6019
  "section",
5852
6020
  {
5853
6021
  className: cn(
5854
6022
  "w-full border-b-2 bg-background",
5855
6023
  className
5856
6024
  ),
5857
- children: /* @__PURE__ */ jsxs32(
6025
+ children: /* @__PURE__ */ jsxs34(
5858
6026
  "div",
5859
6027
  {
5860
6028
  className: cn(
@@ -5863,10 +6031,10 @@ function Hero({
5863
6031
  align === "left" && "items-start text-left"
5864
6032
  ),
5865
6033
  children: [
5866
- badge && /* @__PURE__ */ jsx65("div", { children: badge }),
5867
- /* @__PURE__ */ jsx65("h1", { className: "font-head text-4xl sm:text-5xl lg:text-6xl max-w-4xl", children: title }),
5868
- subtitle && /* @__PURE__ */ jsx65("p", { className: "font-sans text-lg lg:text-xl text-muted-foreground max-w-2xl", children: subtitle }),
5869
- actions && /* @__PURE__ */ jsx65("div", { className: "flex flex-wrap gap-3 mt-2", children: actions }),
6034
+ badge && /* @__PURE__ */ jsx66("div", { children: badge }),
6035
+ /* @__PURE__ */ jsx66("h1", { className: "font-head text-4xl sm:text-5xl lg:text-6xl max-w-4xl", children: title }),
6036
+ subtitle && /* @__PURE__ */ jsx66("p", { className: "font-sans text-lg lg:text-xl text-muted-foreground max-w-2xl", children: subtitle }),
6037
+ actions && /* @__PURE__ */ jsx66("div", { className: "flex flex-wrap gap-3 mt-2", children: actions }),
5870
6038
  children
5871
6039
  ]
5872
6040
  }
@@ -5876,9 +6044,9 @@ function Hero({
5876
6044
  }
5877
6045
 
5878
6046
  // components/landing/Section.tsx
5879
- import { cva as cva19 } from "class-variance-authority";
5880
- import { jsx as jsx66, jsxs as jsxs33 } from "react/jsx-runtime";
5881
- var sectionVariants = cva19("w-full py-16 lg:py-24 scroll-mt-[120px]", {
6047
+ import { cva as cva20 } from "class-variance-authority";
6048
+ import { jsx as jsx67, jsxs as jsxs35 } from "react/jsx-runtime";
6049
+ var sectionVariants = cva20("w-full py-16 lg:py-24 scroll-mt-[120px]", {
5882
6050
  variants: {
5883
6051
  background: {
5884
6052
  default: "bg-background",
@@ -5907,13 +6075,13 @@ function Section(_a) {
5907
6075
  "background",
5908
6076
  "align"
5909
6077
  ]);
5910
- return /* @__PURE__ */ jsx66(
6078
+ return /* @__PURE__ */ jsx67(
5911
6079
  "section",
5912
6080
  __spreadProps(__spreadValues({
5913
6081
  className: cn(sectionVariants({ background }), className)
5914
6082
  }, props), {
5915
- children: /* @__PURE__ */ jsxs33("div", { className: "mx-auto max-w-6xl px-4", children: [
5916
- (title || subtitle) && /* @__PURE__ */ jsxs33(
6083
+ children: /* @__PURE__ */ jsxs35("div", { className: "mx-auto max-w-6xl px-4", children: [
6084
+ (title || subtitle) && /* @__PURE__ */ jsxs35(
5917
6085
  "div",
5918
6086
  {
5919
6087
  className: cn(
@@ -5922,8 +6090,8 @@ function Section(_a) {
5922
6090
  align === "left" && "text-left"
5923
6091
  ),
5924
6092
  children: [
5925
- title && /* @__PURE__ */ jsx66("h2", { className: "font-head text-3xl lg:text-4xl mb-3", children: title }),
5926
- subtitle && /* @__PURE__ */ jsx66("p", { className: "font-sans text-lg text-muted-foreground max-w-2xl mx-auto", children: subtitle })
6093
+ title && /* @__PURE__ */ jsx67("h2", { className: "font-head text-3xl lg:text-4xl mb-3", children: title }),
6094
+ subtitle && /* @__PURE__ */ jsx67("p", { className: "font-sans text-lg text-muted-foreground max-w-2xl mx-auto", children: subtitle })
5927
6095
  ]
5928
6096
  }
5929
6097
  ),
@@ -5934,7 +6102,7 @@ function Section(_a) {
5934
6102
  }
5935
6103
 
5936
6104
  // components/landing/Footer.tsx
5937
- import { jsx as jsx67, jsxs as jsxs34 } from "react/jsx-runtime";
6105
+ import { jsx as jsx68, jsxs as jsxs36 } from "react/jsx-runtime";
5938
6106
  function Footer({
5939
6107
  brand,
5940
6108
  tagline,
@@ -5942,15 +6110,15 @@ function Footer({
5942
6110
  bottom,
5943
6111
  className
5944
6112
  }) {
5945
- return /* @__PURE__ */ jsx67("footer", { className: cn("w-full border-t-2 bg-background", className), children: /* @__PURE__ */ jsxs34("div", { className: "mx-auto max-w-6xl px-4 py-12 lg:py-16", children: [
5946
- /* @__PURE__ */ jsxs34("div", { className: "grid gap-8 lg:grid-cols-[1.5fr_repeat(auto-fit,1fr)]", children: [
5947
- /* @__PURE__ */ jsxs34("div", { className: "max-w-xs", children: [
5948
- /* @__PURE__ */ jsx67("div", { className: "font-head text-2xl mb-2", children: brand }),
5949
- tagline && /* @__PURE__ */ jsx67("p", { className: "font-sans text-sm text-muted-foreground", children: tagline })
6113
+ return /* @__PURE__ */ jsx68("footer", { className: cn("w-full border-t-2 bg-background", className), children: /* @__PURE__ */ jsxs36("div", { className: "mx-auto max-w-6xl px-4 py-12 lg:py-16", children: [
6114
+ /* @__PURE__ */ jsxs36("div", { className: "grid gap-8 lg:grid-cols-[1.5fr_repeat(auto-fit,1fr)]", children: [
6115
+ /* @__PURE__ */ jsxs36("div", { className: "max-w-xs", children: [
6116
+ /* @__PURE__ */ jsx68("div", { className: "font-head text-2xl mb-2", children: brand }),
6117
+ tagline && /* @__PURE__ */ jsx68("p", { className: "font-sans text-sm text-muted-foreground", children: tagline })
5950
6118
  ] }),
5951
- groups.length > 0 && /* @__PURE__ */ jsx67("div", { className: "grid gap-8 sm:grid-cols-2 lg:grid-cols-3 col-span-full lg:col-span-1", children: groups.map((group) => /* @__PURE__ */ jsxs34("div", { children: [
5952
- /* @__PURE__ */ jsx67("h4", { className: "font-head text-sm uppercase mb-3", children: group.title }),
5953
- /* @__PURE__ */ jsx67("ul", { className: "flex flex-col gap-2", children: group.links.map((link) => /* @__PURE__ */ jsx67("li", { children: /* @__PURE__ */ jsx67(
6119
+ groups.length > 0 && /* @__PURE__ */ jsx68("div", { className: "grid gap-8 sm:grid-cols-2 lg:grid-cols-3 col-span-full lg:col-span-1", children: groups.map((group) => /* @__PURE__ */ jsxs36("div", { children: [
6120
+ /* @__PURE__ */ jsx68("h4", { className: "font-head text-sm uppercase mb-3", children: group.title }),
6121
+ /* @__PURE__ */ jsx68("ul", { className: "flex flex-col gap-2", children: group.links.map((link) => /* @__PURE__ */ jsx68("li", { children: /* @__PURE__ */ jsx68(
5954
6122
  "a",
5955
6123
  {
5956
6124
  href: link.href,
@@ -5960,21 +6128,21 @@ function Footer({
5960
6128
  ) }, link.label)) })
5961
6129
  ] }, group.title)) })
5962
6130
  ] }),
5963
- bottom && /* @__PURE__ */ jsx67("div", { className: "mt-12 pt-6 border-t-2 font-sans text-sm text-muted-foreground", children: bottom })
6131
+ bottom && /* @__PURE__ */ jsx68("div", { className: "mt-12 pt-6 border-t-2 font-sans text-sm text-muted-foreground", children: bottom })
5964
6132
  ] }) });
5965
6133
  }
5966
6134
 
5967
6135
  // components/landing/PricingTable.tsx
5968
- import { jsx as jsx68, jsxs as jsxs35 } from "react/jsx-runtime";
6136
+ import { jsx as jsx69, jsxs as jsxs37 } from "react/jsx-runtime";
5969
6137
  function PricingTable({ tiers, className }) {
5970
- return /* @__PURE__ */ jsx68(
6138
+ return /* @__PURE__ */ jsx69(
5971
6139
  "div",
5972
6140
  {
5973
6141
  className: cn(
5974
6142
  "grid gap-6 sm:grid-cols-2 lg:grid-cols-3",
5975
6143
  className
5976
6144
  ),
5977
- children: tiers.map((tier) => /* @__PURE__ */ jsxs35(
6145
+ children: tiers.map((tier) => /* @__PURE__ */ jsxs37(
5978
6146
  "div",
5979
6147
  {
5980
6148
  className: cn(
@@ -5982,15 +6150,15 @@ function PricingTable({ tiers, className }) {
5982
6150
  tier.highlighted ? "shadow-lg border-primary ring-2 ring-primary scale-[1.02]" : "shadow-md"
5983
6151
  ),
5984
6152
  children: [
5985
- /* @__PURE__ */ jsxs35("div", { className: "p-6 border-b-2", children: [
5986
- /* @__PURE__ */ jsxs35("div", { className: "flex items-center justify-between mb-2", children: [
5987
- /* @__PURE__ */ jsx68("h3", { className: "font-head text-xl", children: tier.name }),
6153
+ /* @__PURE__ */ jsxs37("div", { className: "p-6 border-b-2", children: [
6154
+ /* @__PURE__ */ jsxs37("div", { className: "flex items-center justify-between mb-2", children: [
6155
+ /* @__PURE__ */ jsx69("h3", { className: "font-head text-xl", children: tier.name }),
5988
6156
  tier.badge
5989
6157
  ] }),
5990
- /* @__PURE__ */ jsx68("div", { className: "font-head text-4xl mb-1", children: tier.price }),
5991
- tier.description && /* @__PURE__ */ jsx68("p", { className: "font-sans text-sm text-muted-foreground", children: tier.description })
6158
+ /* @__PURE__ */ jsx69("div", { className: "font-head text-4xl mb-1", children: tier.price }),
6159
+ tier.description && /* @__PURE__ */ jsx69("p", { className: "font-sans text-sm text-muted-foreground", children: tier.description })
5992
6160
  ] }),
5993
- /* @__PURE__ */ jsx68("div", { className: "p-6 flex-1", children: /* @__PURE__ */ jsx68("ul", { className: "flex flex-col gap-3", children: tier.features.map((feature) => /* @__PURE__ */ jsxs35(
6161
+ /* @__PURE__ */ jsx69("div", { className: "p-6 flex-1", children: /* @__PURE__ */ jsx69("ul", { className: "flex flex-col gap-3", children: tier.features.map((feature) => /* @__PURE__ */ jsxs37(
5994
6162
  "li",
5995
6163
  {
5996
6164
  className: cn(
@@ -5998,7 +6166,7 @@ function PricingTable({ tiers, className }) {
5998
6166
  !feature.included && "text-muted-foreground line-through"
5999
6167
  ),
6000
6168
  children: [
6001
- /* @__PURE__ */ jsx68(
6169
+ /* @__PURE__ */ jsx69(
6002
6170
  "span",
6003
6171
  {
6004
6172
  className: cn(
@@ -6013,7 +6181,7 @@ function PricingTable({ tiers, className }) {
6013
6181
  },
6014
6182
  feature.text
6015
6183
  )) }) }),
6016
- /* @__PURE__ */ jsx68("div", { className: "p-6 border-t-2", children: tier.cta })
6184
+ /* @__PURE__ */ jsx69("div", { className: "p-6 border-t-2", children: tier.cta })
6017
6185
  ]
6018
6186
  },
6019
6187
  tier.name
@@ -6023,7 +6191,7 @@ function PricingTable({ tiers, className }) {
6023
6191
  }
6024
6192
 
6025
6193
  // components/landing/FeatureSection.tsx
6026
- import { jsx as jsx69, jsxs as jsxs36 } from "react/jsx-runtime";
6194
+ import { jsx as jsx70, jsxs as jsxs38 } from "react/jsx-runtime";
6027
6195
  var columnClasses2 = {
6028
6196
  2: "grid gap-6 sm:grid-cols-2",
6029
6197
  3: "grid gap-6 sm:grid-cols-2 lg:grid-cols-3",
@@ -6034,14 +6202,14 @@ function FeatureSection({
6034
6202
  columns = 3,
6035
6203
  className
6036
6204
  }) {
6037
- return /* @__PURE__ */ jsx69("div", { className: cn(columnClasses2[columns], className), children: features.map((feature) => /* @__PURE__ */ jsxs36(
6205
+ return /* @__PURE__ */ jsx70("div", { className: cn(columnClasses2[columns], className), children: features.map((feature) => /* @__PURE__ */ jsxs38(
6038
6206
  "div",
6039
6207
  {
6040
6208
  className: "border-2 p-6 bg-card shadow-md",
6041
6209
  children: [
6042
- feature.icon && /* @__PURE__ */ jsx69("div", { className: "mb-4 inline-flex items-center justify-center h-12 w-12 border-2 bg-primary text-primary-foreground shadow-sm", children: feature.icon }),
6043
- /* @__PURE__ */ jsx69("h3", { className: "font-head text-lg mb-2", children: feature.title }),
6044
- /* @__PURE__ */ jsx69("p", { className: "font-sans text-sm text-muted-foreground", children: feature.description })
6210
+ feature.icon && /* @__PURE__ */ jsx70("div", { className: "mb-4 inline-flex items-center justify-center h-12 w-12 border-2 bg-primary text-primary-foreground shadow-sm", children: feature.icon }),
6211
+ /* @__PURE__ */ jsx70("h3", { className: "font-head text-lg mb-2", children: feature.title }),
6212
+ /* @__PURE__ */ jsx70("p", { className: "font-sans text-sm text-muted-foreground", children: feature.description })
6045
6213
  ]
6046
6214
  },
6047
6215
  feature.title
@@ -6049,7 +6217,7 @@ function FeatureSection({
6049
6217
  }
6050
6218
 
6051
6219
  // components/landing/Testimonial.tsx
6052
- import { jsx as jsx70, jsxs as jsxs37 } from "react/jsx-runtime";
6220
+ import { jsx as jsx71, jsxs as jsxs39 } from "react/jsx-runtime";
6053
6221
  var columnClasses3 = {
6054
6222
  1: "grid gap-6 max-w-2xl mx-auto",
6055
6223
  2: "grid gap-6 sm:grid-cols-2",
@@ -6060,21 +6228,21 @@ function Testimonial({
6060
6228
  columns = 3,
6061
6229
  className
6062
6230
  }) {
6063
- return /* @__PURE__ */ jsx70("div", { className: cn(columnClasses3[columns], className), children: testimonials.map((t) => /* @__PURE__ */ jsxs37(
6231
+ return /* @__PURE__ */ jsx71("div", { className: cn(columnClasses3[columns], className), children: testimonials.map((t) => /* @__PURE__ */ jsxs39(
6064
6232
  "div",
6065
6233
  {
6066
6234
  className: "border-2 p-6 bg-card shadow-md flex flex-col",
6067
6235
  children: [
6068
- /* @__PURE__ */ jsxs37("blockquote", { className: "font-sans text-sm leading-relaxed flex-1 mb-6", children: [
6236
+ /* @__PURE__ */ jsxs39("blockquote", { className: "font-sans text-sm leading-relaxed flex-1 mb-6", children: [
6069
6237
  "\u201C",
6070
6238
  t.quote,
6071
6239
  "\u201D"
6072
6240
  ] }),
6073
- /* @__PURE__ */ jsxs37("div", { className: "flex items-center gap-3 border-t-2 pt-4", children: [
6074
- t.avatar && /* @__PURE__ */ jsx70("div", { className: "h-10 w-10 shrink-0 border-2 overflow-hidden", children: t.avatar }),
6075
- /* @__PURE__ */ jsxs37("div", { children: [
6076
- /* @__PURE__ */ jsx70("p", { className: "font-head text-sm", children: t.name }),
6077
- (t.role || t.company) && /* @__PURE__ */ jsx70("p", { className: "font-sans text-xs text-muted-foreground", children: [t.role, t.company].filter(Boolean).join(", ") })
6241
+ /* @__PURE__ */ jsxs39("div", { className: "flex items-center gap-3 border-t-2 pt-4", children: [
6242
+ t.avatar && /* @__PURE__ */ jsx71("div", { className: "h-10 w-10 shrink-0 border-2 overflow-hidden", children: t.avatar }),
6243
+ /* @__PURE__ */ jsxs39("div", { children: [
6244
+ /* @__PURE__ */ jsx71("p", { className: "font-head text-sm", children: t.name }),
6245
+ (t.role || t.company) && /* @__PURE__ */ jsx71("p", { className: "font-sans text-xs text-muted-foreground", children: [t.role, t.company].filter(Boolean).join(", ") })
6078
6246
  ] })
6079
6247
  ] })
6080
6248
  ]
@@ -6084,9 +6252,9 @@ function Testimonial({
6084
6252
  }
6085
6253
 
6086
6254
  // components/landing/LogoCloud.tsx
6087
- import { jsx as jsx71 } from "react/jsx-runtime";
6255
+ import { jsx as jsx72 } from "react/jsx-runtime";
6088
6256
  function LogoCloud({ children, className }) {
6089
- return /* @__PURE__ */ jsx71(
6257
+ return /* @__PURE__ */ jsx72(
6090
6258
  "div",
6091
6259
  {
6092
6260
  className: cn(
@@ -6099,24 +6267,24 @@ function LogoCloud({ children, className }) {
6099
6267
  }
6100
6268
 
6101
6269
  // components/landing/CTABanner.tsx
6102
- import { jsx as jsx72, jsxs as jsxs38 } from "react/jsx-runtime";
6270
+ import { jsx as jsx73, jsxs as jsxs40 } from "react/jsx-runtime";
6103
6271
  function CTABanner({
6104
6272
  title,
6105
6273
  subtitle,
6106
6274
  actions,
6107
6275
  className
6108
6276
  }) {
6109
- return /* @__PURE__ */ jsx72(
6277
+ return /* @__PURE__ */ jsx73(
6110
6278
  "section",
6111
6279
  {
6112
6280
  className: cn(
6113
6281
  "w-full border-y-2 bg-primary text-primary-foreground",
6114
6282
  className
6115
6283
  ),
6116
- children: /* @__PURE__ */ jsxs38("div", { className: "mx-auto max-w-6xl px-4 py-16 lg:py-20 flex flex-col items-center text-center gap-4", children: [
6117
- /* @__PURE__ */ jsx72("h2", { className: "font-head text-3xl lg:text-4xl", children: title }),
6118
- subtitle && /* @__PURE__ */ jsx72("p", { className: "font-sans text-lg max-w-xl", children: subtitle }),
6119
- actions && /* @__PURE__ */ jsx72("div", { className: "flex flex-wrap gap-3 mt-2", children: actions })
6284
+ children: /* @__PURE__ */ jsxs40("div", { className: "mx-auto max-w-6xl px-4 py-16 lg:py-20 flex flex-col items-center text-center gap-4", children: [
6285
+ /* @__PURE__ */ jsx73("h2", { className: "font-head text-3xl lg:text-4xl", children: title }),
6286
+ subtitle && /* @__PURE__ */ jsx73("p", { className: "font-sans text-lg max-w-xl", children: subtitle }),
6287
+ actions && /* @__PURE__ */ jsx73("div", { className: "flex flex-wrap gap-3 mt-2", children: actions })
6120
6288
  ] })
6121
6289
  }
6122
6290
  );
@@ -6125,20 +6293,20 @@ function CTABanner({
6125
6293
  // components/landing/FAQ.tsx
6126
6294
  import * as React60 from "react";
6127
6295
  import { ChevronDown as ChevronDown6 } from "lucide-react";
6128
- import { jsx as jsx73, jsxs as jsxs39 } from "react/jsx-runtime";
6296
+ import { jsx as jsx74, jsxs as jsxs41 } from "react/jsx-runtime";
6129
6297
  function FAQ({ items, className }) {
6130
6298
  const [openIndex, setOpenIndex] = React60.useState(null);
6131
- return /* @__PURE__ */ jsx73("div", { className: cn("w-full max-w-3xl mx-auto", className), children: items.map((item, i) => {
6299
+ return /* @__PURE__ */ jsx74("div", { className: cn("w-full max-w-3xl mx-auto", className), children: items.map((item, i) => {
6132
6300
  const isOpen = openIndex === i;
6133
- return /* @__PURE__ */ jsxs39("div", { className: "border-2 border-b-0 last:border-b-2", children: [
6134
- /* @__PURE__ */ jsxs39(
6301
+ return /* @__PURE__ */ jsxs41("div", { className: "border-2 border-b-0 last:border-b-2", children: [
6302
+ /* @__PURE__ */ jsxs41(
6135
6303
  "button",
6136
6304
  {
6137
6305
  onClick: () => setOpenIndex(isOpen ? null : i),
6138
6306
  className: "w-full flex items-center justify-between p-4 text-left cursor-pointer hover:bg-accent/30 transition-colors",
6139
6307
  children: [
6140
- /* @__PURE__ */ jsx73("span", { className: "font-head text-sm pr-4", children: item.question }),
6141
- /* @__PURE__ */ jsx73(
6308
+ /* @__PURE__ */ jsx74("span", { className: "font-head text-sm pr-4", children: item.question }),
6309
+ /* @__PURE__ */ jsx74(
6142
6310
  ChevronDown6,
6143
6311
  {
6144
6312
  className: cn(
@@ -6150,24 +6318,24 @@ function FAQ({ items, className }) {
6150
6318
  ]
6151
6319
  }
6152
6320
  ),
6153
- isOpen && /* @__PURE__ */ jsx73("div", { className: "px-4 pb-4 font-sans text-sm text-muted-foreground", children: item.answer })
6321
+ isOpen && /* @__PURE__ */ jsx74("div", { className: "px-4 pb-4 font-sans text-sm text-muted-foreground", children: item.answer })
6154
6322
  ] }, i);
6155
6323
  }) });
6156
6324
  }
6157
6325
 
6158
6326
  // components/landing/StatsBar.tsx
6159
- import { jsx as jsx74, jsxs as jsxs40 } from "react/jsx-runtime";
6327
+ import { jsx as jsx75, jsxs as jsxs42 } from "react/jsx-runtime";
6160
6328
  function StatsBar({ stats, className }) {
6161
- return /* @__PURE__ */ jsx74(
6329
+ return /* @__PURE__ */ jsx75(
6162
6330
  "div",
6163
6331
  {
6164
6332
  className: cn(
6165
6333
  "w-full border-y-2 bg-card",
6166
6334
  className
6167
6335
  ),
6168
- children: /* @__PURE__ */ jsx74("div", { className: "mx-auto max-w-6xl px-4 py-10 grid grid-cols-2 lg:grid-cols-4 gap-8", children: stats.map((stat) => /* @__PURE__ */ jsxs40("div", { className: "text-center", children: [
6169
- /* @__PURE__ */ jsx74("div", { className: "font-head text-3xl lg:text-4xl mb-1", children: stat.value }),
6170
- /* @__PURE__ */ jsx74("div", { className: "font-sans text-sm text-muted-foreground uppercase", children: stat.label })
6336
+ children: /* @__PURE__ */ jsx75("div", { className: "mx-auto max-w-6xl px-4 py-10 grid grid-cols-2 lg:grid-cols-4 gap-8", children: stats.map((stat) => /* @__PURE__ */ jsxs42("div", { className: "text-center", children: [
6337
+ /* @__PURE__ */ jsx75("div", { className: "font-head text-3xl lg:text-4xl mb-1", children: stat.value }),
6338
+ /* @__PURE__ */ jsx75("div", { className: "font-sans text-sm text-muted-foreground uppercase", children: stat.label })
6171
6339
  ] }, stat.label)) })
6172
6340
  }
6173
6341
  );
@@ -6176,37 +6344,39 @@ function StatsBar({ stats, className }) {
6176
6344
  // components/landing/AnnouncementBanner.tsx
6177
6345
  import * as React61 from "react";
6178
6346
  import { X as X4 } from "lucide-react";
6179
- import { jsx as jsx75, jsxs as jsxs41 } from "react/jsx-runtime";
6347
+ import { jsx as jsx76, jsxs as jsxs43 } from "react/jsx-runtime";
6180
6348
  function AnnouncementBanner({
6181
6349
  children,
6182
6350
  dismissible = true,
6183
6351
  className
6184
6352
  }) {
6185
- const [visible, setVisible] = React61.useState(() => {
6186
- if (typeof window === "undefined") return true;
6187
- return sessionStorage.getItem("announcement-dismissed") !== "true";
6188
- });
6353
+ const [visible, setVisible] = React61.useState(true);
6354
+ React61.useEffect(() => {
6355
+ if (sessionStorage.getItem("announcement-dismissed") === "true") {
6356
+ setVisible(false);
6357
+ }
6358
+ }, []);
6189
6359
  const handleDismiss = () => {
6190
6360
  setVisible(false);
6191
6361
  sessionStorage.setItem("announcement-dismissed", "true");
6192
6362
  };
6193
6363
  if (!visible) return null;
6194
- return /* @__PURE__ */ jsx75(
6364
+ return /* @__PURE__ */ jsx76(
6195
6365
  "div",
6196
6366
  {
6197
6367
  className: cn(
6198
6368
  "w-full bg-primary text-primary-foreground border-b-2",
6199
6369
  className
6200
6370
  ),
6201
- children: /* @__PURE__ */ jsxs41("div", { className: "mx-auto max-w-6xl px-4 py-2 flex items-center justify-center gap-3", children: [
6202
- /* @__PURE__ */ jsx75("p", { className: "font-sans text-sm text-center flex-1", children }),
6203
- dismissible && /* @__PURE__ */ jsx75(
6371
+ children: /* @__PURE__ */ jsxs43("div", { className: "mx-auto max-w-6xl px-4 py-2 flex items-center justify-center gap-3", children: [
6372
+ /* @__PURE__ */ jsx76("p", { className: "font-sans text-sm text-center flex-1", children }),
6373
+ dismissible && /* @__PURE__ */ jsx76(
6204
6374
  "button",
6205
6375
  {
6206
6376
  onClick: handleDismiss,
6207
6377
  className: "shrink-0 p-2 min-w-[44px] min-h-[44px] inline-flex items-center justify-center hover:bg-foreground/10 transition-colors cursor-pointer",
6208
6378
  "aria-label": "Dismiss",
6209
- children: /* @__PURE__ */ jsx75(X4, { className: "h-4 w-4" })
6379
+ children: /* @__PURE__ */ jsx76(X4, { className: "h-4 w-4" })
6210
6380
  }
6211
6381
  )
6212
6382
  ] })
@@ -6215,7 +6385,7 @@ function AnnouncementBanner({
6215
6385
  }
6216
6386
 
6217
6387
  // components/landing/NewsletterSignup.tsx
6218
- import { jsx as jsx76, jsxs as jsxs42 } from "react/jsx-runtime";
6388
+ import { jsx as jsx77, jsxs as jsxs44 } from "react/jsx-runtime";
6219
6389
  function NewsletterSignup({
6220
6390
  title = "Stay in the loop",
6221
6391
  subtitle,
@@ -6223,16 +6393,16 @@ function NewsletterSignup({
6223
6393
  buttonLabel = "Subscribe",
6224
6394
  className
6225
6395
  }) {
6226
- return /* @__PURE__ */ jsxs42("div", { className: cn("w-full max-w-md mx-auto", className), children: [
6227
- title && /* @__PURE__ */ jsx76("h3", { className: "font-head text-xl mb-2 text-center", children: title }),
6228
- subtitle && /* @__PURE__ */ jsx76("p", { className: "font-sans text-sm text-muted-foreground text-center mb-4", children: subtitle }),
6229
- /* @__PURE__ */ jsxs42(
6396
+ return /* @__PURE__ */ jsxs44("div", { className: cn("w-full max-w-md mx-auto", className), children: [
6397
+ title && /* @__PURE__ */ jsx77("h3", { className: "font-head text-xl mb-2 text-center", children: title }),
6398
+ subtitle && /* @__PURE__ */ jsx77("p", { className: "font-sans text-sm text-muted-foreground text-center mb-4", children: subtitle }),
6399
+ /* @__PURE__ */ jsxs44(
6230
6400
  "form",
6231
6401
  {
6232
6402
  onSubmit: (e) => e.preventDefault(),
6233
6403
  className: "flex gap-2",
6234
6404
  children: [
6235
- /* @__PURE__ */ jsx76(
6405
+ /* @__PURE__ */ jsx77(
6236
6406
  "input",
6237
6407
  {
6238
6408
  type: "email",
@@ -6241,7 +6411,7 @@ function NewsletterSignup({
6241
6411
  required: true
6242
6412
  }
6243
6413
  ),
6244
- /* @__PURE__ */ jsx76(
6414
+ /* @__PURE__ */ jsx77(
6245
6415
  "button",
6246
6416
  {
6247
6417
  type: "submit",
@@ -6271,6 +6441,7 @@ export {
6271
6441
  ChartComponent as Chart,
6272
6442
  Checkbox,
6273
6443
  CollapsibleComponent as Collapsible,
6444
+ ColorThemeToggle,
6274
6445
  ComboboxComponent as Combobox,
6275
6446
  CommandComponent as Command,
6276
6447
  Container,
@@ -6332,6 +6503,7 @@ export {
6332
6503
  TooltipComponent as Tooltip,
6333
6504
  TwoColumnLayoutComponent as TwoColumnLayout,
6334
6505
  alertVariants,
6506
+ avatarVariants,
6335
6507
  badgeVariants,
6336
6508
  buttonVariants,
6337
6509
  cardVariants,