@thesage/ui 1.1.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/.claude/CLAUDE.md +3 -3
  2. package/LICENSE +21 -0
  3. package/README.md +3 -4
  4. package/dist/dates.js +15 -5
  5. package/dist/dates.js.map +1 -1
  6. package/dist/dates.mjs +15 -5
  7. package/dist/dates.mjs.map +1 -1
  8. package/dist/{fontThemes-Cum0S1DI.d.mts → fontThemes-Dh8mtXES.d.mts} +27 -1
  9. package/dist/{fontThemes-Cum0S1DI.d.ts → fontThemes-Dh8mtXES.d.ts} +27 -1
  10. package/dist/forms.js +1 -1
  11. package/dist/forms.js.map +1 -1
  12. package/dist/forms.mjs +1 -1
  13. package/dist/forms.mjs.map +1 -1
  14. package/dist/{hooks-CobTQpCg.d.mts → hooks-1b8WaQf1.d.mts} +2 -2
  15. package/dist/{hooks-DHPlUx3T.d.ts → hooks-CKW8vE9H.d.ts} +2 -2
  16. package/dist/hooks.d.mts +2 -2
  17. package/dist/hooks.d.ts +2 -2
  18. package/dist/hooks.js +3 -375
  19. package/dist/hooks.js.map +1 -1
  20. package/dist/hooks.mjs +3 -375
  21. package/dist/hooks.mjs.map +1 -1
  22. package/dist/index-DscTIrZ2.d.mts +29 -0
  23. package/dist/index-DscTIrZ2.d.ts +29 -0
  24. package/dist/index.d.mts +62 -36
  25. package/dist/index.d.ts +62 -36
  26. package/dist/index.js +617 -331
  27. package/dist/index.js.map +1 -1
  28. package/dist/index.mjs +634 -348
  29. package/dist/index.mjs.map +1 -1
  30. package/dist/providers-aJW1AKg6.d.mts +30 -0
  31. package/dist/providers-qfyBVcPW.d.ts +30 -0
  32. package/dist/providers.d.mts +2 -1
  33. package/dist/providers.d.ts +2 -1
  34. package/dist/providers.js +226 -375
  35. package/dist/providers.js.map +1 -1
  36. package/dist/providers.mjs +226 -375
  37. package/dist/providers.mjs.map +1 -1
  38. package/dist/tables.js +5 -5
  39. package/dist/tables.js.map +1 -1
  40. package/dist/tables.mjs +5 -5
  41. package/dist/tables.mjs.map +1 -1
  42. package/dist/tokens.d.mts +165 -3
  43. package/dist/tokens.d.ts +165 -3
  44. package/dist/tokens.js +219 -1
  45. package/dist/tokens.js.map +1 -1
  46. package/dist/tokens.mjs +217 -1
  47. package/dist/tokens.mjs.map +1 -1
  48. package/dist/{utils-xrpHqxXR.d.ts → utils-CIIM7dAC.d.ts} +1 -1
  49. package/dist/{utils-DlJKRVzQ.d.mts → utils-Cs04sxth.d.mts} +1 -1
  50. package/dist/utils.d.mts +1 -1
  51. package/dist/utils.d.ts +1 -1
  52. package/package.json +22 -10
  53. package/dist/index-L8R3gyuQ.d.mts +0 -23
  54. package/dist/index-L8R3gyuQ.d.ts +0 -23
  55. package/dist/providers-Dv3LFGtJ.d.mts +0 -17
  56. package/dist/providers-Dv3LFGtJ.d.ts +0 -17
package/dist/index.js CHANGED
@@ -405,12 +405,12 @@ var buttonVariants = (0, import_class_variance_authority.cva)(
405
405
  {
406
406
  variants: {
407
407
  variant: {
408
- default: "bg-primary text-primary-foreground shadow",
409
- primary: "bg-primary text-primary-foreground shadow",
408
+ default: "bg-primary text-primary-foreground shadow-sm",
409
+ primary: "bg-primary text-primary-foreground shadow-sm",
410
410
  // Alias for default
411
- destructive: "bg-destructive text-destructive-foreground shadow-sm",
412
- outline: "border border-input bg-transparent shadow-sm hover:bg-primary hover:text-primary-foreground hover:border-primary",
413
- secondary: "bg-black/5 dark:bg-white/10 backdrop-blur-md border border-black/5 dark:border-white/10 text-secondary-foreground shadow-sm hover:bg-primary hover:text-primary-foreground dark:hover:bg-primary dark:hover:text-primary-foreground",
411
+ destructive: "bg-destructive text-destructive-foreground shadow-xs",
412
+ outline: "border border-input bg-transparent shadow-xs hover:bg-primary hover:text-primary-foreground hover:border-primary",
413
+ secondary: "bg-black/5 dark:bg-white/10 backdrop-blur-md border border-black/5 dark:border-white/10 text-secondary-foreground shadow-xs hover:bg-primary hover:text-primary-foreground dark:hover:bg-primary dark:hover:text-primary-foreground",
414
414
  ghost: "hover:text-accent-foreground",
415
415
  link: "text-primary underline-offset-4 hover:underline"
416
416
  },
@@ -496,7 +496,7 @@ var toggleVariants = (0, import_class_variance_authority2.cva)(
496
496
  variants: {
497
497
  variant: {
498
498
  default: "bg-transparent",
499
- outline: "border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground"
499
+ outline: "border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground"
500
500
  },
501
501
  size: {
502
502
  default: "h-9 px-3",
@@ -586,225 +586,6 @@ var import_react = require("react");
586
586
  var import_zustand = require("zustand");
587
587
  var import_middleware = require("zustand/middleware");
588
588
 
589
- // ../tokens/src/base.ts
590
- var baseTokens = {
591
- /**
592
- * Spacing scale (based on 4px grid)
593
- */
594
- spacing: {
595
- "0": "0",
596
- "0.5": "0.125rem",
597
- // 2px
598
- "1": "0.25rem",
599
- // 4px
600
- "2": "0.5rem",
601
- // 8px
602
- "3": "0.75rem",
603
- // 12px
604
- "4": "1rem",
605
- // 16px
606
- "5": "1.25rem",
607
- // 20px
608
- "6": "1.5rem",
609
- // 24px
610
- "8": "2rem",
611
- // 32px
612
- "10": "2.5rem",
613
- // 40px
614
- "12": "3rem",
615
- // 48px
616
- "16": "4rem",
617
- // 64px
618
- "20": "5rem",
619
- // 80px
620
- "24": "6rem",
621
- // 96px
622
- "32": "8rem"
623
- // 128px
624
- },
625
- /**
626
- * Typography scales
627
- */
628
- fontSize: {
629
- "xs": "0.75rem",
630
- // 12px
631
- "sm": "0.875rem",
632
- // 14px
633
- "base": "1rem",
634
- // 16px
635
- "lg": "1.125rem",
636
- // 18px
637
- "xl": "1.25rem",
638
- // 20px
639
- "2xl": "1.5rem",
640
- // 24px
641
- "3xl": "1.875rem",
642
- // 30px
643
- "4xl": "2.25rem",
644
- // 36px
645
- "5xl": "3rem",
646
- // 48px
647
- "6xl": "3.75rem",
648
- // 60px
649
- "7xl": "4.5rem",
650
- // 72px
651
- "8xl": "6rem"
652
- // 96px
653
- },
654
- fontWeight: {
655
- light: "300",
656
- normal: "400",
657
- medium: "500",
658
- semibold: "600",
659
- bold: "700",
660
- extrabold: "800",
661
- black: "900"
662
- },
663
- lineHeight: {
664
- none: "1",
665
- tight: "1.25",
666
- snug: "1.375",
667
- normal: "1.5",
668
- relaxed: "1.625",
669
- loose: "2"
670
- },
671
- /**
672
- * Border radius
673
- */
674
- borderRadius: {
675
- none: "0",
676
- sm: "0.125rem",
677
- // 2px
678
- DEFAULT: "0.25rem",
679
- // 4px
680
- md: "0.375rem",
681
- // 6px
682
- lg: "0.5rem",
683
- // 8px
684
- xl: "0.75rem",
685
- // 12px
686
- "2xl": "1rem",
687
- // 16px
688
- "3xl": "1.5rem",
689
- // 24px
690
- full: "9999px"
691
- },
692
- /**
693
- * Motion durations (base values - themes can override)
694
- */
695
- duration: {
696
- instant: "0ms",
697
- fast: "150ms",
698
- normal: "300ms",
699
- slow: "500ms",
700
- slower: "800ms"
701
- },
702
- /**
703
- * Easing curves (base values - themes can override)
704
- */
705
- ease: {
706
- linear: "linear",
707
- in: "cubic-bezier(0.4, 0, 1, 1)",
708
- out: "cubic-bezier(0, 0, 0.2, 1)",
709
- inOut: "cubic-bezier(0.4, 0, 0.2, 1)"
710
- },
711
- /**
712
- * Z-index scale
713
- */
714
- zIndex: {
715
- "auto": "auto",
716
- "0": "0",
717
- "10": "10",
718
- "20": "20",
719
- "30": "30",
720
- "40": "40",
721
- "50": "50",
722
- dropdown: "1000",
723
- sticky: "1020",
724
- fixed: "1030",
725
- modalBackdrop: "1040",
726
- modal: "1050",
727
- popover: "1060",
728
- tooltip: "1070"
729
- },
730
- /**
731
- * Focus ring configuration
732
- */
733
- focus: {
734
- width: "2px",
735
- offset: "2px",
736
- style: "solid"
737
- }
738
- };
739
- var spacing = {
740
- xs: baseTokens.spacing["1"],
741
- // 4px — Tight internal padding
742
- sm: baseTokens.spacing["2"],
743
- // 8px — Default gap
744
- md: baseTokens.spacing["4"],
745
- // 16px — Section padding
746
- lg: baseTokens.spacing["6"],
747
- // 24px — Card padding
748
- xl: baseTokens.spacing["8"],
749
- // 32px — Section margins
750
- "2xl": baseTokens.spacing["12"],
751
- // 48px — Page sections
752
- "3xl": baseTokens.spacing["16"]
753
- // 64px — Major divisions
754
- };
755
- var typography = {
756
- fonts: {
757
- sans: "var(--font-body)",
758
- serif: "var(--font-heading)",
759
- mono: "var(--font-mono)"
760
- },
761
- sizes: {
762
- xs: baseTokens.fontSize.xs,
763
- // 12px — Fine print
764
- sm: baseTokens.fontSize.sm,
765
- // 14px — Secondary text
766
- base: baseTokens.fontSize.base,
767
- // 16px — Body text
768
- lg: baseTokens.fontSize.lg,
769
- // 18px — Lead paragraphs
770
- xl: baseTokens.fontSize.xl,
771
- // 20px — Section headers
772
- "2xl": baseTokens.fontSize["2xl"],
773
- // 24px — Page headers
774
- "3xl": baseTokens.fontSize["3xl"]
775
- // 30px — Hero text
776
- },
777
- weights: {
778
- normal: baseTokens.fontWeight.normal,
779
- // 400
780
- medium: baseTokens.fontWeight.medium,
781
- // 500
782
- semibold: baseTokens.fontWeight.semibold,
783
- // 600
784
- bold: baseTokens.fontWeight.bold
785
- // 700
786
- },
787
- leading: {
788
- tight: baseTokens.lineHeight.tight,
789
- // 1.25 — Headings
790
- normal: baseTokens.lineHeight.normal,
791
- // 1.5 — Body
792
- relaxed: baseTokens.lineHeight.relaxed
793
- // 1.625 — Spacious reading
794
- }
795
- };
796
- var motion = {
797
- duration: baseTokens.duration,
798
- easing: {
799
- default: baseTokens.ease.out,
800
- // Most transitions
801
- spring: "cubic-bezier(0.16, 1, 0.3, 1)",
802
- // Playful interactions
803
- linear: baseTokens.ease.linear
804
- // Progress indicators
805
- }
806
- };
807
-
808
589
  // ../tokens/src/studio.ts
809
590
  var studioTokens = {
810
591
  light: {
@@ -1314,6 +1095,206 @@ var voltTokens = {
1314
1095
  }
1315
1096
  };
1316
1097
 
1098
+ // ../tokens/src/speedboat.ts
1099
+ var speedboatTokens = {
1100
+ light: {
1101
+ colors: {
1102
+ // Backgrounds
1103
+ background: "#FFFFFF",
1104
+ backgroundSecondary: "#F8F8F8",
1105
+ // grey50
1106
+ backgroundTertiary: "#ECECEC",
1107
+ // grey100
1108
+ // Foregrounds
1109
+ foreground: "#212121",
1110
+ // grey900 — ContentPrimary
1111
+ foregroundSecondary: "#5D5D5D",
1112
+ // grey700 — ContentSecondary
1113
+ foregroundTertiary: "#8891A7",
1114
+ // grey500 — muted icons
1115
+ // Brand
1116
+ primary: "#346BEA",
1117
+ // accent blue
1118
+ primaryForeground: "#FFFFFF",
1119
+ secondary: "#EBF0FD",
1120
+ // blue100 — chip bg
1121
+ secondaryForeground: "#1E49AA",
1122
+ // blue600 — chip text
1123
+ accent: "#346BEA",
1124
+ // same as primary for Speedboat
1125
+ accentForeground: "#FFFFFF",
1126
+ // Borders
1127
+ border: "#ECECEC",
1128
+ // grey100 — BorderPrimary
1129
+ borderSubtle: "#F8F8F8",
1130
+ // grey50
1131
+ // States
1132
+ hover: "#F8F8F8",
1133
+ // grey50
1134
+ active: "#ECECEC",
1135
+ // grey100
1136
+ // Link hover states
1137
+ linkHover: "#1E49AA",
1138
+ // blue600
1139
+ linkHoverForeground: "#FFFFFF",
1140
+ // Semantic
1141
+ success: "#2E7D32",
1142
+ successForeground: "#FFFFFF",
1143
+ warning: "#E65100",
1144
+ warningForeground: "#FFFFFF",
1145
+ error: "#C62828",
1146
+ errorForeground: "#FFFFFF",
1147
+ info: "#346BEA",
1148
+ infoForeground: "#FFFFFF",
1149
+ // Component-specific colors
1150
+ card: "#FFFFFF",
1151
+ cardForeground: "#212121",
1152
+ popover: "#FFFFFF",
1153
+ popoverForeground: "#212121",
1154
+ muted: "#F8F8F8",
1155
+ // grey50
1156
+ mutedForeground: "#8891A7",
1157
+ // grey500
1158
+ destructive: "#C62828",
1159
+ // error red
1160
+ destructiveForeground: "#FFFFFF",
1161
+ input: "#DFDFDF",
1162
+ // grey200 — input borders
1163
+ ring: "#346BEA",
1164
+ // accent blue for focus rings
1165
+ // Surface
1166
+ surface: "#F8F8F8",
1167
+ // grey50
1168
+ // Glass effects
1169
+ glass: "rgba(255, 255, 255, 0.85)",
1170
+ glassBorder: "rgba(0, 0, 0, 0.08)"
1171
+ },
1172
+ effects: {
1173
+ blur: {
1174
+ sm: "blur(4px)",
1175
+ md: "blur(8px)",
1176
+ lg: "blur(16px)",
1177
+ xl: "blur(24px)"
1178
+ },
1179
+ shadow: {
1180
+ sm: "0 1px 2px rgba(0, 0, 0, 0.05)",
1181
+ md: "0 2px 8px rgba(0, 0, 0, 0.08)",
1182
+ lg: "0 4px 16px rgba(0, 0, 0, 0.10)",
1183
+ xl: "0 8px 24px rgba(0, 0, 0, 0.12)",
1184
+ "2xl": "0 16px 48px rgba(0, 0, 0, 0.16)"
1185
+ }
1186
+ }
1187
+ },
1188
+ dark: {
1189
+ colors: {
1190
+ // Backgrounds — derived dark palette
1191
+ background: "#0F1117",
1192
+ backgroundSecondary: "#1A1C25",
1193
+ backgroundTertiary: "#252833",
1194
+ // Foregrounds
1195
+ foreground: "#F0F0F2",
1196
+ foregroundSecondary: "#A0A3B1",
1197
+ foregroundTertiary: "#6B6F80",
1198
+ // Brand — keep the accent blue, slightly brighten for dark bg
1199
+ primary: "#4A7FF7",
1200
+ primaryForeground: "#FFFFFF",
1201
+ secondary: "#1E2540",
1202
+ secondaryForeground: "#A6C1FF",
1203
+ // blue300
1204
+ accent: "#4A7FF7",
1205
+ accentForeground: "#FFFFFF",
1206
+ // Borders
1207
+ border: "#2E3140",
1208
+ borderSubtle: "#1A1C25",
1209
+ // States
1210
+ hover: "#1A1C25",
1211
+ active: "#252833",
1212
+ // Link hover states
1213
+ linkHover: "#A6C1FF",
1214
+ // blue300 — lighter for dark mode
1215
+ linkHoverForeground: "#0F1117",
1216
+ // Semantic — slightly brighter versions for dark bg
1217
+ success: "#4CAF50",
1218
+ successForeground: "#FFFFFF",
1219
+ warning: "#FF8A50",
1220
+ warningForeground: "#FFFFFF",
1221
+ error: "#EF5350",
1222
+ errorForeground: "#FFFFFF",
1223
+ info: "#4A7FF7",
1224
+ infoForeground: "#FFFFFF",
1225
+ // Component-specific colors
1226
+ card: "#1A1C25",
1227
+ cardForeground: "#F0F0F2",
1228
+ popover: "#1A1C25",
1229
+ popoverForeground: "#F0F0F2",
1230
+ muted: "#252833",
1231
+ mutedForeground: "#6B6F80",
1232
+ destructive: "#EF5350",
1233
+ destructiveForeground: "#FFFFFF",
1234
+ input: "#2E3140",
1235
+ ring: "#4A7FF7",
1236
+ // Surface
1237
+ surface: "#1A1C25",
1238
+ // Glass effects
1239
+ glass: "rgba(15, 17, 23, 0.85)",
1240
+ glassBorder: "rgba(255, 255, 255, 0.08)"
1241
+ },
1242
+ effects: {
1243
+ blur: {
1244
+ sm: "blur(4px)",
1245
+ md: "blur(8px)",
1246
+ lg: "blur(16px)",
1247
+ xl: "blur(24px)"
1248
+ },
1249
+ shadow: {
1250
+ sm: "0 1px 2px rgba(0, 0, 0, 0.20)",
1251
+ md: "0 2px 8px rgba(0, 0, 0, 0.30)",
1252
+ lg: "0 4px 16px rgba(0, 0, 0, 0.35)",
1253
+ xl: "0 8px 24px rgba(0, 0, 0, 0.40)",
1254
+ "2xl": "0 16px 48px rgba(0, 0, 0, 0.50)"
1255
+ }
1256
+ }
1257
+ },
1258
+ /**
1259
+ * Motion personality for Speedboat theme
1260
+ * Professional and snappy — slightly faster than Studio
1261
+ */
1262
+ motion: {
1263
+ getDuration: (intensity) => {
1264
+ if (intensity === 0) return "0ms";
1265
+ const ms = 120 + (intensity - 1) * 35;
1266
+ return `${ms}ms`;
1267
+ },
1268
+ ease: {
1269
+ default: "cubic-bezier(0.4, 0, 0.2, 1)",
1270
+ in: "cubic-bezier(0.4, 0, 1, 1)",
1271
+ out: "cubic-bezier(0, 0, 0.2, 1)",
1272
+ spring: "cubic-bezier(0.16, 1, 0.3, 1)"
1273
+ }
1274
+ },
1275
+ /**
1276
+ * Typography for Speedboat theme
1277
+ * Montserrat headings + Roboto body — Moloco brand fonts
1278
+ */
1279
+ typography: {
1280
+ heading: {
1281
+ fontFamily: "var(--font-montserrat)",
1282
+ fontWeight: "700",
1283
+ letterSpacing: "-0.01em"
1284
+ },
1285
+ body: {
1286
+ fontFamily: "var(--font-roboto)",
1287
+ fontWeight: "400",
1288
+ letterSpacing: "0"
1289
+ },
1290
+ mono: {
1291
+ fontFamily: "var(--font-geist-mono)",
1292
+ fontWeight: "400",
1293
+ letterSpacing: "0"
1294
+ }
1295
+ }
1296
+ };
1297
+
1317
1298
  // ../tokens/src/typography.ts
1318
1299
  var fontFamilies = {
1319
1300
  studio: {
@@ -1357,6 +1338,19 @@ var fontFamilies = {
1357
1338
  sans: "All sans-serif needs",
1358
1339
  mono: "Code blocks, technical content"
1359
1340
  }
1341
+ },
1342
+ speedboat: {
1343
+ heading: "Montserrat",
1344
+ body: "Roboto",
1345
+ sans: "Roboto",
1346
+ mono: "Fira Code",
1347
+ description: "Moloco brand typography \u2014 Montserrat headings with Roboto body",
1348
+ usage: {
1349
+ heading: "Brand headings, section titles",
1350
+ body: "UI text, data labels, form content",
1351
+ sans: "All sans-serif needs",
1352
+ mono: "Code blocks, technical content"
1353
+ }
1360
1354
  }
1361
1355
  };
1362
1356
  var fontSizes = {
@@ -1914,6 +1908,9 @@ function computeDerivedTokens(sourceToken, sourceValue, mode) {
1914
1908
  return derived;
1915
1909
  }
1916
1910
 
1911
+ // ../tokens/src/index.ts
1912
+ var PUBLIC_THEME_NAMES = ["studio", "terra", "volt"];
1913
+
1917
1914
  // src/lib/colors.ts
1918
1915
  var colorTokens = {
1919
1916
  // Background colors
@@ -2473,7 +2470,7 @@ var useCustomizer = (0, import_zustand.create)()(
2473
2470
 
2474
2471
  // src/hooks/useMotionPreference.ts
2475
2472
  function useMotionPreference() {
2476
- const { motion: motion7, prefersReducedMotion, setPrefersReducedMotion } = useCustomizer();
2473
+ const { motion: motion6, prefersReducedMotion, setPrefersReducedMotion } = useCustomizer();
2477
2474
  (0, import_react.useEffect)(() => {
2478
2475
  if (typeof window === "undefined") return;
2479
2476
  const mediaQuery = window.matchMedia("(prefers-reduced-motion: reduce)");
@@ -2485,8 +2482,8 @@ function useMotionPreference() {
2485
2482
  return () => mediaQuery.removeEventListener("change", handleChange);
2486
2483
  }, [setPrefersReducedMotion]);
2487
2484
  return {
2488
- scale: motion7,
2489
- shouldAnimate: motion7 > 0 && !prefersReducedMotion,
2485
+ scale: motion6,
2486
+ shouldAnimate: motion6 > 0 && !prefersReducedMotion,
2490
2487
  prefersReducedMotion
2491
2488
  };
2492
2489
  }
@@ -2540,7 +2537,7 @@ var Checkbox = ({
2540
2537
  {
2541
2538
  ref,
2542
2539
  className: cn(
2543
- "peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",
2540
+ "peer h-4 w-4 shrink-0 rounded-xs border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",
2544
2541
  className
2545
2542
  ),
2546
2543
  ...props,
@@ -2562,7 +2559,7 @@ var import_class_variance_authority3 = require("class-variance-authority");
2562
2559
  var LabelPrimitive = __toESM(require("@radix-ui/react-label"));
2563
2560
  var import_jsx_runtime7 = require("react/jsx-runtime");
2564
2561
  var labelVariants = (0, import_class_variance_authority3.cva)(
2565
- "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
2562
+ "block mb-1.5 text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
2566
2563
  );
2567
2564
  var Label = ({
2568
2565
  ref,
@@ -2583,6 +2580,7 @@ var Input = ({
2583
2580
  ref,
2584
2581
  className,
2585
2582
  type,
2583
+ style,
2586
2584
  ...props
2587
2585
  }) => {
2588
2586
  return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
@@ -2590,9 +2588,21 @@ var Input = ({
2590
2588
  {
2591
2589
  type,
2592
2590
  className: cn(
2593
- "flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
2591
+ "flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-xs transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
2594
2592
  className
2595
2593
  ),
2594
+ style: {
2595
+ height: "2.25rem",
2596
+ width: "100%",
2597
+ border: "1px solid var(--color-input, #DFDFDF)",
2598
+ borderRadius: "var(--radius-md, 0.375rem)",
2599
+ padding: "0.25rem 0.75rem",
2600
+ fontSize: "var(--text-sm, 0.875rem)",
2601
+ backgroundColor: "transparent",
2602
+ boxShadow: "0 1px 2px 0 rgb(0 0 0 / 0.05)",
2603
+ outline: "none",
2604
+ ...style
2605
+ },
2596
2606
  ref,
2597
2607
  ...props
2598
2608
  }
@@ -2633,7 +2643,7 @@ function ColorPicker({
2633
2643
  onChange(newColor);
2634
2644
  };
2635
2645
  return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "space-y-2", children: [
2636
- label && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "flex items-baseline justify-between", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(Label, { className: "text-sm font-medium", children: [
2646
+ label && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "flex items-baseline justify-between", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(Label, { className: "text-sm font-medium mb-0", children: [
2637
2647
  label,
2638
2648
  optional && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "text-xs text-muted-foreground ml-1", children: "(optional)" })
2639
2649
  ] }) }),
@@ -2703,6 +2713,7 @@ function DialogClose({
2703
2713
  }
2704
2714
  function DialogOverlay({
2705
2715
  className,
2716
+ style,
2706
2717
  ...props
2707
2718
  }) {
2708
2719
  return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
@@ -2713,6 +2724,11 @@ function DialogOverlay({
2713
2724
  "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
2714
2725
  className
2715
2726
  ),
2727
+ style: {
2728
+ backgroundColor: "rgba(0, 0, 0, 0.5)",
2729
+ zIndex: 50,
2730
+ ...style
2731
+ },
2716
2732
  ...props
2717
2733
  }
2718
2734
  );
@@ -2721,6 +2737,7 @@ function DialogContent({
2721
2737
  className,
2722
2738
  children,
2723
2739
  showCloseButton = true,
2740
+ style,
2724
2741
  ...props
2725
2742
  }) {
2726
2743
  return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(DialogPortal, { "data-slot": "dialog-portal", children: [
@@ -2733,6 +2750,14 @@ function DialogContent({
2733
2750
  "bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 outline-none sm:max-w-lg",
2734
2751
  className
2735
2752
  ),
2753
+ style: {
2754
+ backgroundColor: "var(--color-background, #ffffff)",
2755
+ border: "1px solid var(--color-border, #d4d4d4)",
2756
+ borderRadius: "0.75rem",
2757
+ boxShadow: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",
2758
+ zIndex: 50,
2759
+ ...style
2760
+ },
2736
2761
  ...props,
2737
2762
  children: [
2738
2763
  children,
@@ -2740,7 +2765,7 @@ function DialogContent({
2740
2765
  DialogPrimitive.Close,
2741
2766
  {
2742
2767
  "data-slot": "dialog-close",
2743
- className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2768
+ className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2744
2769
  children: [
2745
2770
  /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_lucide_react2.X, {}),
2746
2771
  /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "sr-only", children: "Close" })
@@ -2899,7 +2924,7 @@ var CommandItem = ({
2899
2924
  {
2900
2925
  ref,
2901
2926
  className: cn(
2902
- "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-primary data-[selected=true]:text-primary-foreground data-[disabled=true]:opacity-50",
2927
+ "relative flex cursor-default select-none items-center rounded-xs px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-primary data-[selected=true]:text-primary-foreground data-[disabled=true]:opacity-50",
2903
2928
  className
2904
2929
  ),
2905
2930
  ...props
@@ -2933,6 +2958,7 @@ var PopoverContent = ({
2933
2958
  className,
2934
2959
  align = "center",
2935
2960
  sideOffset = 4,
2961
+ style,
2936
2962
  ...props
2937
2963
  }) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(PopoverPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2938
2964
  PopoverPrimitive.Content,
@@ -2944,6 +2970,15 @@ var PopoverContent = ({
2944
2970
  "z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
2945
2971
  className
2946
2972
  ),
2973
+ style: {
2974
+ backgroundColor: "var(--color-popover, #ffffff)",
2975
+ color: "var(--color-popover-foreground, #0a0a0a)",
2976
+ border: "1px solid var(--color-border, #d4d4d4)",
2977
+ borderRadius: "var(--radius, 0.5rem)",
2978
+ boxShadow: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",
2979
+ zIndex: 50,
2980
+ ...style
2981
+ },
2947
2982
  ...props
2948
2983
  }
2949
2984
  ) });
@@ -3665,12 +3700,12 @@ var SearchBar = ({
3665
3700
  onKeyDown: handleKeyDown,
3666
3701
  placeholder,
3667
3702
  variant: "outlined",
3668
- className: "pl-10 !bg-[var(--color-surface)] !border !border-[var(--color-border)]",
3703
+ className: "pl-10 bg-[var(--color-surface)]! border! border-[var(--color-border)]!",
3669
3704
  style: { paddingRight: showClear || showShortcut ? "3rem" : void 0 },
3670
3705
  ...props
3671
3706
  }
3672
3707
  ),
3673
- showShortcut && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "absolute right-3 top-1/2 -translate-y-1/2 pointer-events-none", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("kbd", { className: "px-2 py-0.5 text-xs font-mono text-[var(--color-text-primary)] bg-[var(--color-background)] border border-[var(--color-border)] rounded shadow-sm", children: shortcut }) }),
3708
+ showShortcut && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "absolute right-3 top-1/2 -translate-y-1/2 pointer-events-none", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("kbd", { className: "px-2 py-0.5 text-xs font-mono text-[var(--color-text-primary)] bg-[var(--color-background)] border border-[var(--color-border)] rounded shadow-xs", children: shortcut }) }),
3674
3709
  showClear && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
3675
3710
  "button",
3676
3711
  {
@@ -3713,22 +3748,47 @@ var SelectTrigger = ({
3713
3748
  ref,
3714
3749
  className,
3715
3750
  children,
3751
+ style,
3752
+ label,
3753
+ labelClassName,
3716
3754
  ...props
3717
- }) => /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
3718
- import_react_select.Trigger,
3719
- {
3720
- ref,
3721
- className: cn(
3722
- "flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
3723
- className
3724
- ),
3725
- ...props,
3726
- children: [
3727
- children,
3728
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_select.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_lucide_react8.ChevronDown, { className: "h-4 w-4 opacity-50" }) })
3729
- ]
3730
- }
3731
- );
3755
+ }) => {
3756
+ const trigger = /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
3757
+ import_react_select.Trigger,
3758
+ {
3759
+ ref,
3760
+ className: cn(
3761
+ "flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
3762
+ className
3763
+ ),
3764
+ style: {
3765
+ height: "2.25rem",
3766
+ width: "100%",
3767
+ display: "flex",
3768
+ alignItems: "center",
3769
+ justifyContent: "space-between",
3770
+ border: "1px solid var(--color-input, #DFDFDF)",
3771
+ borderRadius: "var(--radius-md, 0.375rem)",
3772
+ padding: "0.5rem 0.75rem",
3773
+ fontSize: "var(--text-sm, 0.875rem)",
3774
+ backgroundColor: "transparent",
3775
+ boxShadow: "0 1px 2px 0 rgb(0 0 0 / 0.05)",
3776
+ outline: "none",
3777
+ ...style
3778
+ },
3779
+ ...props,
3780
+ children: [
3781
+ children,
3782
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_select.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_lucide_react8.ChevronDown, { className: "h-4 w-4 opacity-50" }) })
3783
+ ]
3784
+ }
3785
+ );
3786
+ if (!label) return trigger;
3787
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { children: [
3788
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Label, { className: cn("text-xs font-medium text-muted-foreground", labelClassName), children: label }),
3789
+ trigger
3790
+ ] });
3791
+ };
3732
3792
  var SelectScrollUpButton = ({
3733
3793
  ref,
3734
3794
  className,
@@ -3766,8 +3826,9 @@ var SelectContent = ({
3766
3826
  className,
3767
3827
  children,
3768
3828
  position = "popper",
3829
+ style,
3769
3830
  ...props
3770
- }) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_select.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
3831
+ }) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_select.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3771
3832
  import_react_select.Content,
3772
3833
  {
3773
3834
  ref,
@@ -3776,22 +3837,41 @@ var SelectContent = ({
3776
3837
  position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
3777
3838
  className
3778
3839
  ),
3840
+ style,
3779
3841
  position,
3780
3842
  ...props,
3781
- children: [
3782
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(SelectScrollUpButton, {}),
3783
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3784
- import_react_select.Viewport,
3785
- {
3786
- className: cn(
3787
- "p-1",
3788
- position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
3843
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
3844
+ "div",
3845
+ {
3846
+ style: {
3847
+ backgroundColor: "var(--color-popover, #ffffff)",
3848
+ color: "var(--color-popover-foreground, #0a0a0a)",
3849
+ borderWidth: "1px",
3850
+ borderStyle: "solid",
3851
+ borderColor: "var(--color-border, #d4d4d4)",
3852
+ borderRadius: "var(--radius, 0.5rem)",
3853
+ boxShadow: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",
3854
+ overflow: "hidden"
3855
+ },
3856
+ children: [
3857
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(SelectScrollUpButton, {}),
3858
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3859
+ import_react_select.Viewport,
3860
+ {
3861
+ className: cn(
3862
+ "p-1",
3863
+ position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
3864
+ ),
3865
+ style: {
3866
+ padding: "0.25rem"
3867
+ },
3868
+ children
3869
+ }
3789
3870
  ),
3790
- children
3791
- }
3792
- ),
3793
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(SelectScrollDownButton, {})
3794
- ]
3871
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(SelectScrollDownButton, {})
3872
+ ]
3873
+ }
3874
+ )
3795
3875
  }
3796
3876
  ) });
3797
3877
  var SelectLabel = ({
@@ -3816,12 +3896,39 @@ var SelectItem = ({
3816
3896
  {
3817
3897
  ref,
3818
3898
  className: cn(
3819
- "relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
3899
+ "relative flex w-full cursor-default select-none items-center rounded-xs py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
3820
3900
  className
3821
3901
  ),
3902
+ style: {
3903
+ position: "relative",
3904
+ display: "flex",
3905
+ width: "100%",
3906
+ cursor: "default",
3907
+ userSelect: "none",
3908
+ alignItems: "center",
3909
+ borderRadius: "var(--radius-sm, 0.125rem)",
3910
+ padding: "0.375rem 2rem 0.375rem 0.5rem",
3911
+ fontSize: "var(--text-sm, 0.875rem)",
3912
+ outline: "none"
3913
+ },
3822
3914
  ...props,
3823
3915
  children: [
3824
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_select.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_lucide_react8.Check, { className: "h-4 w-4" }) }) }),
3916
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3917
+ "span",
3918
+ {
3919
+ className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center",
3920
+ style: {
3921
+ position: "absolute",
3922
+ right: "0.5rem",
3923
+ display: "flex",
3924
+ height: "0.875rem",
3925
+ width: "0.875rem",
3926
+ alignItems: "center",
3927
+ justifyContent: "center"
3928
+ },
3929
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_select.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_lucide_react8.Check, { className: "h-4 w-4", style: { height: "1rem", width: "1rem" } }) })
3930
+ }
3931
+ ),
3825
3932
  /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_select.ItemText, { children })
3826
3933
  ]
3827
3934
  }
@@ -3857,7 +3964,7 @@ var Slider = ({
3857
3964
  ...props,
3858
3965
  children: [
3859
3966
  /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(SliderPrimitive.Track, { className: "relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }),
3860
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(SliderPrimitive.Thumb, { className: "block h-4 w-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50" })
3967
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(SliderPrimitive.Thumb, { className: "block h-4 w-4 rounded-full border border-primary/50 bg-background shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50" })
3861
3968
  ]
3862
3969
  }
3863
3970
  );
@@ -3873,7 +3980,7 @@ var Switch = ({
3873
3980
  SwitchPrimitives.Root,
3874
3981
  {
3875
3982
  className: cn(
3876
- "peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",
3983
+ "peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-xs transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",
3877
3984
  className
3878
3985
  ),
3879
3986
  ...props,
@@ -4111,7 +4218,7 @@ var ThemeSwitcher = ({
4111
4218
  className: `
4112
4219
  flex-1 py-2 px-3 rounded-md
4113
4220
  transition-all duration-200
4114
- ${mode === "light" ? "bg-[var(--color-primary)] text-[var(--color-primary-foreground)] shadow-sm" : "bg-[var(--color-background)] border border-[var(--color-border)] text-[var(--color-text-secondary)] hover:bg-[var(--color-hover)]"}
4221
+ ${mode === "light" ? "bg-[var(--color-primary)] text-[var(--color-primary-foreground)] shadow-xs" : "bg-[var(--color-background)] border border-[var(--color-border)] text-[var(--color-text-secondary)] hover:bg-[var(--color-hover)]"}
4115
4222
  `,
4116
4223
  children: "Light"
4117
4224
  }
@@ -4123,7 +4230,7 @@ var ThemeSwitcher = ({
4123
4230
  className: `
4124
4231
  flex-1 py-2 px-3 rounded-md
4125
4232
  transition-all duration-200
4126
- ${mode === "dark" ? "bg-[var(--color-primary)] text-[var(--color-primary-foreground)] shadow-sm" : "bg-[var(--color-background)] border border-[var(--color-border)] text-[var(--color-text-secondary)] hover:bg-[var(--color-hover)]"}
4233
+ ${mode === "dark" ? "bg-[var(--color-primary)] text-[var(--color-primary-foreground)] shadow-xs" : "bg-[var(--color-background)] border border-[var(--color-border)] text-[var(--color-text-secondary)] hover:bg-[var(--color-hover)]"}
4127
4234
  `,
4128
4235
  children: "Dark"
4129
4236
  }
@@ -4439,7 +4546,7 @@ function FileUpload({
4439
4546
  e.stopPropagation();
4440
4547
  removeFile(index);
4441
4548
  },
4442
- className: "shrink-0 rounded-sm p-1 text-foreground-secondary hover:text-foreground hover:bg-muted transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
4549
+ className: "shrink-0 rounded-xs p-1 text-foreground-secondary hover:text-foreground hover:bg-muted transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
4443
4550
  "aria-label": `Remove ${file.name}`,
4444
4551
  children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(XIcon, {})
4445
4552
  }
@@ -4685,7 +4792,7 @@ var MenubarTrigger = ({
4685
4792
  MenubarPrimitive.Trigger,
4686
4793
  {
4687
4794
  ref,
4688
- className: cn("flex cursor-default select-none items-center rounded-sm px-3 py-1 text-sm font-medium outline-none focus:bg-accent data-[state=open]:bg-accent", className),
4795
+ className: cn("flex cursor-default select-none items-center rounded-xs px-3 py-1 text-sm font-medium outline-none focus:bg-accent data-[state=open]:bg-accent", className),
4689
4796
  ...props
4690
4797
  }
4691
4798
  );
@@ -4695,6 +4802,7 @@ var MenubarContent = ({
4695
4802
  align = "start",
4696
4803
  alignOffset = -4,
4697
4804
  sideOffset = 8,
4805
+ style,
4698
4806
  ...props
4699
4807
  }) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(MenubarPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4700
4808
  MenubarPrimitive.Content,
@@ -4704,6 +4812,16 @@ var MenubarContent = ({
4704
4812
  alignOffset,
4705
4813
  sideOffset,
4706
4814
  className: cn("z-50 min-w-[12rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md", className),
4815
+ style: {
4816
+ backgroundColor: "var(--color-popover, #ffffff)",
4817
+ color: "var(--color-popover-foreground, #0a0a0a)",
4818
+ border: "1px solid var(--color-border, #d4d4d4)",
4819
+ borderRadius: "var(--radius, 0.5rem)",
4820
+ boxShadow: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",
4821
+ zIndex: 50,
4822
+ overflow: "hidden",
4823
+ ...style
4824
+ },
4707
4825
  ...props
4708
4826
  }
4709
4827
  ) });
@@ -4715,7 +4833,7 @@ var MenubarItem = ({
4715
4833
  MenubarPrimitive.Item,
4716
4834
  {
4717
4835
  ref,
4718
- className: cn("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-50", className),
4836
+ className: cn("relative flex cursor-default select-none items-center rounded-xs px-2 py-1.5 text-sm outline-none focus:bg-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-50", className),
4719
4837
  ...props
4720
4838
  }
4721
4839
  );
@@ -4743,7 +4861,7 @@ var NavLink = ({
4743
4861
  const variants = {
4744
4862
  pill: `px-3 py-2 rounded-lg
4745
4863
  ${active ? "bg-[var(--color-primary)]/10 text-[var(--color-primary)]" : "text-[var(--color-text-secondary)] hover:bg-[var(--color-hover)] hover:text-[var(--color-text-primary)]"}`,
4746
- minimal: `relative pb-1 rounded-sm
4864
+ minimal: `relative pb-1 rounded-xs
4747
4865
  ${active ? "text-[var(--color-text-primary)] font-medium after:absolute after:bottom-0 after:left-0 after:right-0 after:h-0.5 after:bg-[var(--color-primary)] after:rounded-full" : "text-[var(--color-text-secondary)] hover:text-[var(--color-primary)]"}`
4748
4866
  };
4749
4867
  return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
@@ -4849,7 +4967,7 @@ var NavigationMenuViewport = ({
4849
4967
  }) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4850
4968
  NavigationMenuPrimitive.Viewport,
4851
4969
  {
4852
- className: cn("origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]", className),
4970
+ className: cn("origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]", className),
4853
4971
  ref,
4854
4972
  ...props
4855
4973
  }
@@ -5041,7 +5159,7 @@ var TabsTrigger = ({
5041
5159
  {
5042
5160
  ref,
5043
5161
  className: cn(
5044
- "inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",
5162
+ "inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",
5045
5163
  className
5046
5164
  ),
5047
5165
  ...props
@@ -5111,6 +5229,7 @@ var AlertDialogPortal = AlertDialogPrimitive.Portal;
5111
5229
  var AlertDialogOverlay = ({
5112
5230
  ref,
5113
5231
  className,
5232
+ style,
5114
5233
  ...props
5115
5234
  }) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
5116
5235
  AlertDialogPrimitive.Overlay,
@@ -5119,6 +5238,11 @@ var AlertDialogOverlay = ({
5119
5238
  "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
5120
5239
  className
5121
5240
  ),
5241
+ style: {
5242
+ backgroundColor: "rgba(0, 0, 0, 0.8)",
5243
+ zIndex: 50,
5244
+ ...style
5245
+ },
5122
5246
  ...props,
5123
5247
  ref
5124
5248
  }
@@ -5126,6 +5250,7 @@ var AlertDialogOverlay = ({
5126
5250
  var AlertDialogContent = ({
5127
5251
  ref,
5128
5252
  className,
5253
+ style,
5129
5254
  ...props
5130
5255
  }) => /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(AlertDialogPortal, { children: [
5131
5256
  /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(AlertDialogOverlay, {}),
@@ -5137,6 +5262,14 @@ var AlertDialogContent = ({
5137
5262
  "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",
5138
5263
  className
5139
5264
  ),
5265
+ style: {
5266
+ backgroundColor: "var(--color-background, #ffffff)",
5267
+ border: "1px solid var(--color-border, #d4d4d4)",
5268
+ borderRadius: "0.75rem",
5269
+ boxShadow: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",
5270
+ zIndex: 50,
5271
+ ...style
5272
+ },
5140
5273
  ...props
5141
5274
  }
5142
5275
  )
@@ -5243,7 +5376,7 @@ var ContextMenuSubTrigger = ({
5243
5376
  {
5244
5377
  ref,
5245
5378
  className: cn(
5246
- "flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
5379
+ "flex cursor-default select-none items-center rounded-xs px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
5247
5380
  inset && "pl-8",
5248
5381
  className
5249
5382
  ),
@@ -5257,6 +5390,7 @@ var ContextMenuSubTrigger = ({
5257
5390
  var ContextMenuSubContent = ({
5258
5391
  ref,
5259
5392
  className,
5393
+ style,
5260
5394
  ...props
5261
5395
  }) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
5262
5396
  ContextMenuPrimitive.SubContent,
@@ -5266,12 +5400,23 @@ var ContextMenuSubContent = ({
5266
5400
  "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
5267
5401
  className
5268
5402
  ),
5403
+ style: {
5404
+ backgroundColor: "var(--color-popover, #ffffff)",
5405
+ color: "var(--color-popover-foreground, #0a0a0a)",
5406
+ border: "1px solid var(--color-border, #d4d4d4)",
5407
+ borderRadius: "var(--radius, 0.5rem)",
5408
+ boxShadow: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",
5409
+ zIndex: 50,
5410
+ overflow: "hidden",
5411
+ ...style
5412
+ },
5269
5413
  ...props
5270
5414
  }
5271
5415
  );
5272
5416
  var ContextMenuContent = ({
5273
5417
  ref,
5274
5418
  className,
5419
+ style,
5275
5420
  ...props
5276
5421
  }) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
5277
5422
  ContextMenuPrimitive.Content,
@@ -5281,6 +5426,16 @@ var ContextMenuContent = ({
5281
5426
  "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
5282
5427
  className
5283
5428
  ),
5429
+ style: {
5430
+ backgroundColor: "var(--color-popover, #ffffff)",
5431
+ color: "var(--color-popover-foreground, #0a0a0a)",
5432
+ border: "1px solid var(--color-border, #d4d4d4)",
5433
+ borderRadius: "var(--radius, 0.5rem)",
5434
+ boxShadow: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",
5435
+ zIndex: 50,
5436
+ overflow: "hidden",
5437
+ ...style
5438
+ },
5284
5439
  ...props
5285
5440
  }
5286
5441
  ) });
@@ -5294,7 +5449,7 @@ var ContextMenuItem = ({
5294
5449
  {
5295
5450
  ref,
5296
5451
  className: cn(
5297
- "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
5452
+ "relative flex cursor-default select-none items-center rounded-xs px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
5298
5453
  inset && "pl-8",
5299
5454
  className
5300
5455
  ),
@@ -5312,7 +5467,7 @@ var ContextMenuCheckboxItem = ({
5312
5467
  {
5313
5468
  ref,
5314
5469
  className: cn(
5315
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
5470
+ "relative flex cursor-default select-none items-center rounded-xs py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
5316
5471
  className
5317
5472
  ),
5318
5473
  checked,
@@ -5333,7 +5488,7 @@ var ContextMenuRadioItem = ({
5333
5488
  {
5334
5489
  ref,
5335
5490
  className: cn(
5336
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
5491
+ "relative flex cursor-default select-none items-center rounded-xs py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
5337
5492
  className
5338
5493
  ),
5339
5494
  ...props,
@@ -5399,12 +5554,18 @@ var DrawerClose = import_vaul.Drawer.Close;
5399
5554
  var DrawerOverlay = ({
5400
5555
  ref,
5401
5556
  className,
5557
+ style,
5402
5558
  ...props
5403
5559
  }) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
5404
5560
  import_vaul.Drawer.Overlay,
5405
5561
  {
5406
5562
  ref,
5407
5563
  className: cn("fixed inset-0 z-50 bg-black/80", className),
5564
+ style: {
5565
+ backgroundColor: "rgba(0, 0, 0, 0.8)",
5566
+ zIndex: 50,
5567
+ ...style
5568
+ },
5408
5569
  ...props
5409
5570
  }
5410
5571
  );
@@ -5412,6 +5573,7 @@ var DrawerContent = ({
5412
5573
  ref,
5413
5574
  className,
5414
5575
  children,
5576
+ style,
5415
5577
  ...props
5416
5578
  }) => /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(DrawerPortal, { children: [
5417
5579
  /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(DrawerOverlay, {}),
@@ -5423,6 +5585,13 @@ var DrawerContent = ({
5423
5585
  "fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background",
5424
5586
  className
5425
5587
  ),
5588
+ style: {
5589
+ backgroundColor: "var(--color-background, #ffffff)",
5590
+ border: "1px solid var(--color-border, #d4d4d4)",
5591
+ borderRadius: "10px 10px 0 0",
5592
+ zIndex: 50,
5593
+ ...style
5594
+ },
5426
5595
  ...props,
5427
5596
  children: [
5428
5597
  /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted" }),
@@ -5868,7 +6037,7 @@ var DropdownMenuSubTrigger = ({
5868
6037
  {
5869
6038
  ref,
5870
6039
  className: cn(
5871
- "flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-primary focus:text-primary-foreground data-[state=open]:bg-primary data-[state=open]:text-primary-foreground",
6040
+ "flex cursor-default select-none items-center rounded-xs px-2 py-1.5 text-sm outline-none focus:bg-primary focus:text-primary-foreground data-[state=open]:bg-primary data-[state=open]:text-primary-foreground",
5872
6041
  inset && "pl-8",
5873
6042
  className
5874
6043
  ),
@@ -5882,6 +6051,7 @@ var DropdownMenuSubTrigger = ({
5882
6051
  var DropdownMenuSubContent = ({
5883
6052
  ref,
5884
6053
  className,
6054
+ style,
5885
6055
  ...props
5886
6056
  }) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
5887
6057
  DropdownMenuPrimitive.SubContent,
@@ -5891,6 +6061,16 @@ var DropdownMenuSubContent = ({
5891
6061
  "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
5892
6062
  className
5893
6063
  ),
6064
+ style: {
6065
+ backgroundColor: "var(--color-popover, #ffffff)",
6066
+ color: "var(--color-popover-foreground, #0a0a0a)",
6067
+ border: "1px solid var(--color-border, #d4d4d4)",
6068
+ borderRadius: "var(--radius, 0.5rem)",
6069
+ boxShadow: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",
6070
+ zIndex: 50,
6071
+ overflow: "hidden",
6072
+ ...style
6073
+ },
5894
6074
  ...props
5895
6075
  }
5896
6076
  );
@@ -5898,6 +6078,7 @@ var DropdownMenuContent = ({
5898
6078
  ref,
5899
6079
  className,
5900
6080
  sideOffset = 4,
6081
+ style,
5901
6082
  ...props
5902
6083
  }) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
5903
6084
  DropdownMenuPrimitive.Content,
@@ -5908,6 +6089,16 @@ var DropdownMenuContent = ({
5908
6089
  "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
5909
6090
  className
5910
6091
  ),
6092
+ style: {
6093
+ backgroundColor: "var(--color-popover, #ffffff)",
6094
+ color: "var(--color-popover-foreground, #0a0a0a)",
6095
+ border: "1px solid var(--color-border, #d4d4d4)",
6096
+ borderRadius: "var(--radius, 0.5rem)",
6097
+ boxShadow: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",
6098
+ zIndex: 50,
6099
+ overflow: "hidden",
6100
+ ...style
6101
+ },
5911
6102
  ...props
5912
6103
  }
5913
6104
  ) });
@@ -5921,7 +6112,7 @@ var DropdownMenuItem = ({
5921
6112
  {
5922
6113
  ref,
5923
6114
  className: cn(
5924
- "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-primary focus:text-primary-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
6115
+ "relative flex cursor-default select-none items-center rounded-xs px-2 py-1.5 text-sm outline-none transition-colors focus:bg-primary focus:text-primary-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
5925
6116
  inset && "pl-8",
5926
6117
  className
5927
6118
  ),
@@ -5939,7 +6130,7 @@ var DropdownMenuCheckboxItem = ({
5939
6130
  {
5940
6131
  ref,
5941
6132
  className: cn(
5942
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-primary focus:text-primary-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
6133
+ "relative flex cursor-default select-none items-center rounded-xs py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-primary focus:text-primary-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
5943
6134
  className
5944
6135
  ),
5945
6136
  checked,
@@ -5960,7 +6151,7 @@ var DropdownMenuRadioItem = ({
5960
6151
  {
5961
6152
  ref,
5962
6153
  className: cn(
5963
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-primary focus:text-primary-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
6154
+ "relative flex cursor-default select-none items-center rounded-xs py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-primary focus:text-primary-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
5964
6155
  className
5965
6156
  ),
5966
6157
  ...props,
@@ -6092,7 +6283,7 @@ var Modal = ({
6092
6283
  {
6093
6284
  className: `
6094
6285
  fixed inset-0 z-[9999] flex items-center justify-center p-4
6095
- bg-black/50 backdrop-blur-sm
6286
+ bg-black/50 backdrop-blur-xs
6096
6287
  ${shouldAnimate ? "animate-fade-in" : ""}
6097
6288
  `,
6098
6289
  style: { animationDuration },
@@ -6190,6 +6381,7 @@ var SheetPortal = SheetPrimitive.Portal;
6190
6381
  var SheetOverlay = ({
6191
6382
  ref,
6192
6383
  className,
6384
+ style,
6193
6385
  ...props
6194
6386
  }) => /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
6195
6387
  SheetPrimitive.Overlay,
@@ -6198,6 +6390,11 @@ var SheetOverlay = ({
6198
6390
  "fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
6199
6391
  className
6200
6392
  ),
6393
+ style: {
6394
+ backgroundColor: "rgba(0, 0, 0, 0.5)",
6395
+ zIndex: 50,
6396
+ ...style
6397
+ },
6201
6398
  ...props,
6202
6399
  ref
6203
6400
  }
@@ -6223,6 +6420,7 @@ var SheetContent = ({
6223
6420
  side = "right",
6224
6421
  className,
6225
6422
  children,
6423
+ style,
6226
6424
  ...props
6227
6425
  }) => /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(SheetPortal, { children: [
6228
6426
  /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(SheetOverlay, {}),
@@ -6231,10 +6429,16 @@ var SheetContent = ({
6231
6429
  {
6232
6430
  ref,
6233
6431
  className: cn(sheetVariants({ side }), className),
6432
+ style: {
6433
+ backgroundColor: "var(--color-background, #ffffff)",
6434
+ boxShadow: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",
6435
+ zIndex: 50,
6436
+ ...style
6437
+ },
6234
6438
  ...props,
6235
6439
  children: [
6236
6440
  children,
6237
- /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary", children: [
6441
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary", children: [
6238
6442
  /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react14.X, { className: "h-4 w-4" }),
6239
6443
  /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "sr-only", children: "Close" })
6240
6444
  ] })
@@ -6514,7 +6718,7 @@ function NotificationCenter({
6514
6718
  /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(BellIcon, { className: "text-foreground-secondary mb-2 opacity-40" }),
6515
6719
  /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("p", { className: "text-sm text-foreground-secondary", children: emptyMessage })
6516
6720
  ] }) : groupOrder.filter((group) => grouped[group]?.length > 0).map((group) => /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { children: [
6517
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "sticky top-0 bg-popover/95 backdrop-blur-sm px-4 py-1.5 border-b border-border/50", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "text-[11px] font-medium uppercase tracking-wider text-foreground-secondary", children: group }) }),
6721
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "sticky top-0 bg-popover/95 backdrop-blur-xs px-4 py-1.5 border-b border-border/50", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "text-[11px] font-medium uppercase tracking-wider text-foreground-secondary", children: group }) }),
6518
6722
  grouped[group].map((notification) => /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
6519
6723
  "div",
6520
6724
  {
@@ -6566,7 +6770,7 @@ function NotificationCenter({
6566
6770
  e.stopPropagation();
6567
6771
  onMarkRead(notification.id);
6568
6772
  },
6569
- className: "rounded-sm p-1 text-foreground-secondary hover:text-foreground hover:bg-muted transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",
6773
+ className: "rounded-xs p-1 text-foreground-secondary hover:text-foreground hover:bg-muted transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",
6570
6774
  "aria-label": `Mark "${notification.title}" as read`,
6571
6775
  children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(CheckIcon, {})
6572
6776
  }
@@ -6579,7 +6783,7 @@ function NotificationCenter({
6579
6783
  e.stopPropagation();
6580
6784
  onDismiss(notification.id);
6581
6785
  },
6582
- className: "rounded-sm p-1 text-foreground-secondary hover:text-foreground hover:bg-muted transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",
6786
+ className: "rounded-xs p-1 text-foreground-secondary hover:text-foreground hover:bg-muted transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",
6583
6787
  "aria-label": `Dismiss "${notification.title}"`,
6584
6788
  children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(XIcon2, {})
6585
6789
  }
@@ -6782,7 +6986,7 @@ function Skeleton({ className, variant = "default", width, height, style, ...pro
6782
6986
  default: "rounded-md",
6783
6987
  circular: "rounded-full",
6784
6988
  rectangular: "rounded-none",
6785
- text: "rounded-sm h-4"
6989
+ text: "rounded-xs h-4"
6786
6990
  };
6787
6991
  return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
6788
6992
  "div",
@@ -7508,14 +7712,45 @@ var badgeVariants = (0, import_class_variance_authority10.cva)(
7508
7712
  }
7509
7713
  }
7510
7714
  );
7511
- function Badge({ className, variant, size, dot, children, ...props }) {
7512
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: cn(badgeVariants({ variant, size }), className), ...props, children: [
7513
- dot && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: cn(
7514
- "mr-1.5 rounded-full bg-current animate-pulse",
7515
- size === "sm" ? "w-1.5 h-1.5" : size === "lg" ? "w-2.5 h-2.5" : "w-2 h-2"
7516
- ), "aria-hidden": "true" }),
7517
- children
7518
- ] });
7715
+ function Badge({ className, variant, size, dot, children, style, ...props }) {
7716
+ const sizeStyles = {
7717
+ sm: { padding: "0.125rem 0.5rem", fontSize: "var(--text-xs, 0.75rem)" },
7718
+ md: { padding: "0.25rem 0.625rem", fontSize: "var(--text-sm, 0.875rem)" },
7719
+ lg: { padding: "0.375rem 0.75rem", fontSize: "1rem" }
7720
+ };
7721
+ const variantStyles = {
7722
+ default: { backgroundColor: "var(--color-primary, #346BEA)", color: "var(--color-primary-foreground, #ffffff)", borderColor: "transparent" },
7723
+ secondary: { backgroundColor: "var(--color-secondary, #EBF0FD)", color: "var(--color-secondary-foreground, #1E49AA)", borderColor: "transparent" },
7724
+ destructive: { backgroundColor: "var(--color-destructive, #C62828)", color: "var(--color-destructive-foreground, #ffffff)", borderColor: "transparent" },
7725
+ outline: { color: "var(--color-foreground, #212121)" },
7726
+ success: { backgroundColor: "var(--color-success, #2E7D32)", color: "var(--color-success-foreground, #ffffff)", borderColor: "transparent" },
7727
+ warning: { backgroundColor: "var(--color-warning, #E65100)", color: "var(--color-warning-foreground, #ffffff)", borderColor: "transparent" },
7728
+ error: { backgroundColor: "var(--color-error, #C62828)", color: "var(--color-error-foreground, #ffffff)", borderColor: "transparent" },
7729
+ info: { backgroundColor: "var(--color-info, #346BEA)", color: "var(--color-info-foreground, #ffffff)", borderColor: "transparent" }
7730
+ };
7731
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(
7732
+ "div",
7733
+ {
7734
+ className: cn(badgeVariants({ variant, size }), className),
7735
+ style: {
7736
+ display: "inline-flex",
7737
+ alignItems: "center",
7738
+ borderRadius: "9999px",
7739
+ fontWeight: 600,
7740
+ ...sizeStyles[size || "md"],
7741
+ ...variantStyles[variant || "default"],
7742
+ ...style
7743
+ },
7744
+ ...props,
7745
+ children: [
7746
+ dot && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: cn(
7747
+ "mr-1.5 rounded-full bg-current animate-pulse",
7748
+ size === "sm" ? "w-1.5 h-1.5" : size === "lg" ? "w-2.5 h-2.5" : "w-2 h-2"
7749
+ ), "aria-hidden": "true" }),
7750
+ children
7751
+ ]
7752
+ }
7753
+ );
7519
7754
  }
7520
7755
 
7521
7756
  // src/components/data-display/Brand.tsx
@@ -7631,7 +7866,7 @@ Calendar.displayName = "Calendar";
7631
7866
  var import_class_variance_authority11 = require("class-variance-authority");
7632
7867
  var import_jsx_runtime61 = require("react/jsx-runtime");
7633
7868
  var cardVariants = (0, import_class_variance_authority11.cva)(
7634
- "rounded-2xl border bg-surface text-foreground shadow-sm",
7869
+ "rounded-2xl border bg-surface text-foreground shadow-xs",
7635
7870
  {
7636
7871
  variants: {
7637
7872
  hoverEffect: {
@@ -8408,6 +8643,11 @@ var Text = ({
8408
8643
  secondary: "text-[var(--color-text-secondary)]",
8409
8644
  muted: "text-[var(--color-text-muted)]"
8410
8645
  };
8646
+ const variantInlineStyles = {
8647
+ primary: { color: "var(--color-text-primary, #212121)" },
8648
+ secondary: { color: "var(--color-text-secondary, #5D5D5D)" },
8649
+ muted: { color: "var(--color-text-muted, #8891A7)" }
8650
+ };
8411
8651
  const sizeStyles = {
8412
8652
  xs: "text-xs",
8413
8653
  // 12px
@@ -8420,17 +8660,35 @@ var Text = ({
8420
8660
  xl: "text-xl"
8421
8661
  // 20px
8422
8662
  };
8663
+ const sizeInlineStyles = {
8664
+ xs: { fontSize: "0.75rem", lineHeight: String(1 / 0.75) },
8665
+ sm: { fontSize: "0.875rem", lineHeight: String(1.25 / 0.875) },
8666
+ base: { fontSize: "1rem", lineHeight: "1.5" },
8667
+ lg: { fontSize: "1.125rem", lineHeight: String(1.75 / 1.125) },
8668
+ xl: { fontSize: "1.25rem", lineHeight: String(1.75 / 1.25) }
8669
+ };
8423
8670
  const weightStyles = {
8424
8671
  normal: "font-normal",
8425
8672
  medium: "font-medium",
8426
8673
  semibold: "font-semibold",
8427
8674
  bold: "font-bold"
8428
8675
  };
8676
+ const weightInlineStyles = {
8677
+ normal: { fontWeight: 400 },
8678
+ medium: { fontWeight: 500 },
8679
+ semibold: { fontWeight: 600 },
8680
+ bold: { fontWeight: 700 }
8681
+ };
8429
8682
  return import_react14.default.createElement(
8430
8683
  Component,
8431
8684
  {
8432
8685
  ref,
8433
- className: `${variantStyles[variant]} ${sizeStyles[size]} ${weightStyles[weight]} ${className}`
8686
+ className: `${variantStyles[variant]} ${sizeStyles[size]} ${weightStyles[weight]} ${className}`,
8687
+ style: {
8688
+ ...variantInlineStyles[variant],
8689
+ ...sizeInlineStyles[size],
8690
+ ...weightInlineStyles[weight]
8691
+ }
8434
8692
  },
8435
8693
  children
8436
8694
  );
@@ -8592,7 +8850,7 @@ function Typewriter({
8592
8850
  var import_class_variance_authority12 = require("class-variance-authority");
8593
8851
  var import_jsx_runtime70 = require("react/jsx-runtime");
8594
8852
  var statCardVariants = (0, import_class_variance_authority12.cva)(
8595
- "rounded-2xl border bg-surface text-foreground shadow-sm p-6",
8853
+ "rounded-2xl border bg-surface text-foreground shadow-xs p-6",
8596
8854
  {
8597
8855
  variants: {
8598
8856
  variant: {
@@ -9565,12 +9823,18 @@ var Container = ({
9565
9823
  var import_react17 = __toESM(require("react"));
9566
9824
  var import_lucide_react18 = require("lucide-react");
9567
9825
  var import_jsx_runtime77 = require("react/jsx-runtime");
9568
- var CustomizerPanel = ({ mode = "full", showMotionIntensity = false }) => {
9826
+ var allThemeOptions = [
9827
+ { id: "studio", label: "Studio", icon: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react18.Building2, { className: "w-4 h-4" }) },
9828
+ { id: "terra", label: "Terra", icon: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react18.Leaf, { className: "w-4 h-4" }) },
9829
+ { id: "volt", label: "Volt", icon: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react18.Zap, { className: "w-4 h-4" }) },
9830
+ { id: "speedboat", label: "Speedboat", icon: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react18.Rocket, { className: "w-4 h-4" }) }
9831
+ ];
9832
+ var CustomizerPanel = ({ mode = "full", showMotionIntensity = false, themes }) => {
9569
9833
  const [mounted, setMounted] = import_react17.default.useState(false);
9570
9834
  const [isOpen, setIsOpen] = import_react17.default.useState(false);
9571
9835
  const panelRef = import_react17.default.useRef(null);
9572
9836
  const {
9573
- motion: motion7,
9837
+ motion: motion6,
9574
9838
  setMotion,
9575
9839
  customizationMode,
9576
9840
  setCustomizationMode,
@@ -9579,7 +9843,10 @@ var CustomizerPanel = ({ mode = "full", showMotionIntensity = false }) => {
9579
9843
  resetCustomColors
9580
9844
  } = useCustomizer();
9581
9845
  const { theme, mode: colorMode, setTheme, setMode } = useThemeStore();
9846
+ const visibleThemes = themes ? allThemeOptions.filter((t) => themes.includes(t.id)) : allThemeOptions.filter((t) => PUBLIC_THEME_NAMES.includes(t.id));
9847
+ const showThemeSelector = visibleThemes.length > 1;
9582
9848
  const getDefaultPrimary = import_react17.default.useCallback((t, m) => {
9849
+ if (t === "speedboat") return m === "dark" ? speedboatTokens.dark.colors.primary : speedboatTokens.light.colors.primary;
9583
9850
  if (t === "volt") return m === "dark" ? voltTokens.dark.colors.primary : voltTokens.light.colors.primary;
9584
9851
  if (t === "terra") return m === "dark" ? terraTokens.dark.colors.primary : terraTokens.light.colors.primary;
9585
9852
  return m === "dark" ? studioTokens.dark.colors.primary : studioTokens.light.colors.primary;
@@ -9688,7 +9955,7 @@ var CustomizerPanel = ({ mode = "full", showMotionIntensity = false }) => {
9688
9955
  mode === "full" && showMotionIntensity && /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { children: [
9689
9956
  /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "flex justify-between mb-2", children: [
9690
9957
  /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("label", { className: "text-sm font-medium opacity-80", children: "Motion Intensity" }),
9691
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("span", { className: "text-sm opacity-60", children: motion7 })
9958
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("span", { className: "text-sm opacity-60", children: motion6 })
9692
9959
  ] }),
9693
9960
  /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
9694
9961
  "input",
@@ -9696,23 +9963,19 @@ var CustomizerPanel = ({ mode = "full", showMotionIntensity = false }) => {
9696
9963
  type: "range",
9697
9964
  min: "0",
9698
9965
  max: "10",
9699
- value: motion7,
9966
+ value: motion6,
9700
9967
  onChange: (e) => setMotion(Number(e.target.value)),
9701
9968
  "aria-label": "Motion intensity",
9702
9969
  "aria-valuemin": 0,
9703
9970
  "aria-valuemax": 10,
9704
- "aria-valuenow": motion7,
9971
+ "aria-valuenow": motion6,
9705
9972
  className: "w-full h-2 bg-[var(--color-surface)] rounded-lg appearance-none cursor-pointer accent-primary"
9706
9973
  }
9707
9974
  )
9708
9975
  ] }),
9709
- mode === "full" && /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { children: [
9976
+ mode === "full" && showThemeSelector && /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { children: [
9710
9977
  /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("label", { className: "block text-sm font-medium opacity-80 mb-3", children: "Theme" }),
9711
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "grid grid-cols-3 gap-2 mb-3", children: [
9712
- { id: "studio", label: "Studio", icon: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react18.Building2, { className: "w-4 h-4" }) },
9713
- { id: "terra", label: "Terra", icon: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react18.Leaf, { className: "w-4 h-4" }) },
9714
- { id: "volt", label: "Volt", icon: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react18.Zap, { className: "w-4 h-4" }) }
9715
- ].map((t) => /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
9978
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: `grid gap-2 mb-3 ${visibleThemes.length <= 3 ? "grid-cols-3" : "grid-cols-4"}`, children: visibleThemes.map((t) => /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
9716
9979
  "button",
9717
9980
  {
9718
9981
  onClick: () => setTheme(t.id),
@@ -9737,12 +10000,12 @@ var CustomizerPanel = ({ mode = "full", showMotionIntensity = false }) => {
9737
10000
  /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { children: [
9738
10001
  /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("span", { className: "font-heading", children: "Heading:" }),
9739
10002
  " ",
9740
- theme === "studio" ? "Outfit" : theme === "terra" ? "Lora" : "Space Grotesk"
10003
+ theme === "studio" ? "Outfit" : theme === "terra" ? "Lora" : theme === "speedboat" ? "Montserrat" : "Space Grotesk"
9741
10004
  ] }),
9742
10005
  /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { children: [
9743
10006
  /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("span", { className: "font-body", children: "Body:" }),
9744
10007
  " ",
9745
- theme === "studio" ? "Manrope" : theme === "terra" ? "Instrument Sans" : "Space Grotesk"
10008
+ theme === "studio" ? "Manrope" : theme === "terra" ? "Instrument Sans" : theme === "speedboat" ? "Roboto" : "Space Grotesk"
9746
10009
  ] })
9747
10010
  ] })
9748
10011
  ] }),
@@ -10139,7 +10402,7 @@ var Header2 = ({
10139
10402
  const baseStyles = "top-0 left-0 right-0 z-50";
10140
10403
  const positionStyles = sticky ? "fixed" : "relative";
10141
10404
  const transitionStyles = shouldAnimate ? "transition-all" : "";
10142
- const backgroundStyles = hasScrolled && glassOnScroll ? "backdrop-blur-3xl bg-[var(--color-surface)]/60 border-b border-transparent shadow-sm supports-[backdrop-filter]:bg-[var(--color-surface)]/50" : "bg-transparent border-b border-transparent backdrop-blur-xl";
10405
+ const backgroundStyles = hasScrolled && glassOnScroll ? "backdrop-blur-3xl bg-[var(--color-surface)]/60 border-b border-transparent shadow-xs supports-[backdrop-filter]:bg-[var(--color-surface)]/50" : "bg-transparent border-b border-transparent backdrop-blur-xl";
10143
10406
  const getNavClasses = () => {
10144
10407
  switch (navAlignment) {
10145
10408
  case "left":
@@ -10188,7 +10451,7 @@ var Header2 = ({
10188
10451
  focus-visible:outline-2
10189
10452
  focus-visible:outline-offset-4
10190
10453
  focus-visible:outline-[var(--color-focus)]
10191
- rounded-sm
10454
+ rounded-xs
10192
10455
  ${shouldAnimate ? "transition-colors" : ""}
10193
10456
  ${link.active ? "text-[var(--color-text-primary)] font-medium after:absolute after:bottom-0 after:left-0 after:right-0 after:h-0.5 after:bg-[var(--color-primary)] after:rounded-full" : "text-[var(--color-text-secondary)] hover:text-[var(--color-text-primary)]"}
10194
10457
  `,
@@ -10291,7 +10554,7 @@ var Header2 = ({
10291
10554
  focus-visible:outline-2
10292
10555
  focus-visible:outline-offset-4
10293
10556
  focus-visible:outline-[var(--color-focus)]
10294
- rounded-sm
10557
+ rounded-xs
10295
10558
  ${shouldAnimate ? "transition-all" : ""}
10296
10559
  ${link.active ? "text-[var(--color-primary)] font-semibold" : "text-[var(--color-text-primary)] hover:text-[var(--color-text-secondary)]"}
10297
10560
  `,
@@ -10316,7 +10579,7 @@ var Header2 = ({
10316
10579
  focus-visible:outline-2
10317
10580
  focus-visible:outline-offset-4
10318
10581
  focus-visible:outline-[var(--color-focus)]
10319
- rounded-sm
10582
+ rounded-xs
10320
10583
  ${shouldAnimate ? "transition-colors" : ""}
10321
10584
  ${child.active ? "text-[var(--color-primary)] font-medium" : "text-[var(--color-text-secondary)] hover:text-[var(--color-text-primary)]"}
10322
10585
  `,
@@ -10340,7 +10603,7 @@ var Header2 = ({
10340
10603
  focus-visible:outline-2
10341
10604
  focus-visible:outline-offset-4
10342
10605
  focus-visible:outline-[var(--color-focus)]
10343
- rounded-sm
10606
+ rounded-xs
10344
10607
  ${shouldAnimate ? "transition-all" : ""}
10345
10608
  ${link.active ? "text-[var(--color-primary)] font-semibold" : "text-[var(--color-text-primary)] hover:text-[var(--color-text-secondary)]"}
10346
10609
  `,
@@ -10414,7 +10677,7 @@ function PageLayout({
10414
10677
  "div",
10415
10678
  {
10416
10679
  className: `
10417
- sticky bg-[var(--color-background)]/95 backdrop-blur-sm
10680
+ sticky bg-[var(--color-background)]/95 backdrop-blur-xs
10418
10681
  border-b border-[var(--color-border)]
10419
10682
  transition-all duration-300
10420
10683
  top-16 lg:top-20
@@ -10528,7 +10791,7 @@ var ResizableHandle = ({
10528
10791
  className
10529
10792
  ),
10530
10793
  ...props,
10531
- children: withHandle && /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border", children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_lucide_react21.GripVertical, { className: "h-2.5 w-2.5" }) })
10794
+ children: withHandle && /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-xs border bg-border", children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_lucide_react21.GripVertical, { className: "h-2.5 w-2.5" }) })
10532
10795
  }
10533
10796
  );
10534
10797
  };
@@ -13448,7 +13711,8 @@ var import_jsx_runtime96 = require("react/jsx-runtime");
13448
13711
  var themeTokens = {
13449
13712
  studio: studioTokens,
13450
13713
  terra: terraTokens,
13451
- volt: voltTokens
13714
+ volt: voltTokens,
13715
+ speedboat: speedboatTokens
13452
13716
  };
13453
13717
  var fontFamilies2 = {
13454
13718
  studio: {
@@ -13464,6 +13728,11 @@ var fontFamilies2 = {
13464
13728
  volt: {
13465
13729
  sans: "var(--font-volt-heading)",
13466
13730
  mono: "var(--font-mono)"
13731
+ },
13732
+ speedboat: {
13733
+ heading: "var(--font-montserrat)",
13734
+ body: "var(--font-roboto)",
13735
+ mono: "var(--font-mono)"
13467
13736
  }
13468
13737
  };
13469
13738
  function getThemeVars(theme, mode) {
@@ -13508,6 +13777,16 @@ function getThemeVars(theme, mode) {
13508
13777
  "--color-active": colors?.active || colors?.backgroundTertiary || "#f0f0f0",
13509
13778
  "--color-link-hover": colors?.linkHover || colors?.primary || "#0a0a0a",
13510
13779
  "--color-link-hover-foreground": colors?.linkHoverForeground || colors?.background || "#ffffff",
13780
+ // Component-specific (previously only set in globals.css defaults)
13781
+ "--color-card": colors?.card || colors?.background || "#ffffff",
13782
+ "--color-card-foreground": colors?.cardForeground || colors?.foreground || "#0a0a0a",
13783
+ "--color-popover": colors?.popover || colors?.background || "#ffffff",
13784
+ "--color-popover-foreground": colors?.popoverForeground || colors?.foreground || "#0a0a0a",
13785
+ "--color-muted": colors?.muted || colors?.backgroundSecondary || "#f5f5f5",
13786
+ "--color-muted-foreground": colors?.mutedForeground || colors?.foregroundTertiary || "#737373",
13787
+ "--color-destructive": colors?.destructive || colors?.error || "#ef4444",
13788
+ "--color-destructive-foreground": colors?.destructiveForeground || "#ffffff",
13789
+ "--color-input": colors?.input || colors?.border || "#d4d4d4",
13511
13790
  // Effects - Blur
13512
13791
  "--effect-blur-sm": effects?.blur?.sm || "blur(4px)",
13513
13792
  "--effect-blur-md": effects?.blur?.md || "blur(8px)",
@@ -13546,9 +13825,9 @@ function getThemeVars(theme, mode) {
13546
13825
  "--code-border": mode === "light" ? codeColors.light.border : codeColors.dark.border
13547
13826
  };
13548
13827
  }
13549
- function mergeCustomColorTokens(baseTokens2, customPalette) {
13828
+ function mergeCustomColorTokens(baseTokens, customPalette) {
13550
13829
  return {
13551
- ...baseTokens2,
13830
+ ...baseTokens,
13552
13831
  // Override primary color
13553
13832
  "--color-primary": customPalette.primary,
13554
13833
  "--color-primary-foreground": customPalette.primaryForeground,
@@ -13566,12 +13845,12 @@ function mergeCustomColorTokens(baseTokens2, customPalette) {
13566
13845
  // Override secondary color if provided (advanced mode)
13567
13846
  ...customPalette.secondary && {
13568
13847
  "--color-secondary": customPalette.secondary,
13569
- "--color-secondary-foreground": customPalette.secondaryForeground || baseTokens2["--color-secondary-foreground"]
13848
+ "--color-secondary-foreground": customPalette.secondaryForeground || baseTokens["--color-secondary-foreground"]
13570
13849
  },
13571
13850
  // Override accent color if provided (advanced mode)
13572
13851
  ...customPalette.accent && {
13573
13852
  "--color-accent": customPalette.accent,
13574
- "--color-accent-foreground": customPalette.accentForeground || baseTokens2["--color-accent-foreground"]
13853
+ "--color-accent-foreground": customPalette.accentForeground || baseTokens["--color-accent-foreground"]
13575
13854
  },
13576
13855
  // Apply ALL derived tokens from dependency graph
13577
13856
  // This automatically updates:
@@ -13625,11 +13904,18 @@ function validateThemeTokens(theme, mode) {
13625
13904
  console.log(`[ThemeProvider] \u2713 Theme validation passed for "${theme}" (${mode} mode)`);
13626
13905
  }
13627
13906
  }
13628
- function ThemeProvider({ children }) {
13629
- const { theme, mode } = useThemeStore();
13907
+ function ThemeProvider({ children, defaultTheme, defaultMode }) {
13908
+ const { theme, mode, setTheme, setMode } = useThemeStore();
13630
13909
  const customPalette = useCustomizer((state) => state.customColors?.[theme]?.[mode]);
13631
13910
  const [isTransitioning, setIsTransitioning] = (0, import_react25.useState)(false);
13632
13911
  const [mounted, setMounted] = (0, import_react25.useState)(false);
13912
+ (0, import_react25.useEffect)(() => {
13913
+ if (!defaultTheme && !defaultMode) return;
13914
+ const persisted = typeof window !== "undefined" && localStorage.getItem("ecosystem-theme");
13915
+ if (persisted) return;
13916
+ if (defaultTheme) setTheme(defaultTheme);
13917
+ if (defaultMode) setMode(defaultMode);
13918
+ }, []);
13633
13919
  (0, import_react25.useEffect)(() => {
13634
13920
  setMounted(true);
13635
13921
  }, []);
@@ -13637,7 +13923,7 @@ function ThemeProvider({ children }) {
13637
13923
  if (!mounted) return;
13638
13924
  setIsTransitioning(true);
13639
13925
  const root = document.documentElement;
13640
- const baseTokens2 = getThemeVars(theme, mode);
13926
+ const baseTokens = getThemeVars(theme, mode);
13641
13927
  console.log("[ThemeProvider] Update:", {
13642
13928
  theme,
13643
13929
  mode,
@@ -13645,7 +13931,7 @@ function ThemeProvider({ children }) {
13645
13931
  customPrimary: customPalette?.primary,
13646
13932
  timestamp: (/* @__PURE__ */ new Date()).toISOString()
13647
13933
  });
13648
- const finalTokens = customPalette ? mergeCustomColorTokens(baseTokens2, customPalette) : baseTokens2;
13934
+ const finalTokens = customPalette ? mergeCustomColorTokens(baseTokens, customPalette) : baseTokens;
13649
13935
  root.classList.add("theme-transitioning");
13650
13936
  Object.entries(finalTokens).forEach(([key, value]) => {
13651
13937
  root.style.setProperty(key, value);