@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.mjs CHANGED
@@ -23,12 +23,12 @@ var buttonVariants = cva(
23
23
  {
24
24
  variants: {
25
25
  variant: {
26
- default: "bg-primary text-primary-foreground shadow",
27
- primary: "bg-primary text-primary-foreground shadow",
26
+ default: "bg-primary text-primary-foreground shadow-sm",
27
+ primary: "bg-primary text-primary-foreground shadow-sm",
28
28
  // Alias for default
29
- destructive: "bg-destructive text-destructive-foreground shadow-sm",
30
- outline: "border border-input bg-transparent shadow-sm hover:bg-primary hover:text-primary-foreground hover:border-primary",
31
- 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",
29
+ destructive: "bg-destructive text-destructive-foreground shadow-xs",
30
+ outline: "border border-input bg-transparent shadow-xs hover:bg-primary hover:text-primary-foreground hover:border-primary",
31
+ 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",
32
32
  ghost: "hover:text-accent-foreground",
33
33
  link: "text-primary underline-offset-4 hover:underline"
34
34
  },
@@ -114,7 +114,7 @@ var toggleVariants = cva2(
114
114
  variants: {
115
115
  variant: {
116
116
  default: "bg-transparent",
117
- outline: "border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground"
117
+ outline: "border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground"
118
118
  },
119
119
  size: {
120
120
  default: "h-9 px-3",
@@ -194,7 +194,7 @@ var ToggleGroupItem = ({
194
194
  };
195
195
 
196
196
  // src/components/actions/Magnetic.tsx
197
- import { motion as motion2, useMotionValue, useSpring } from "framer-motion";
197
+ import { motion, useMotionValue, useSpring } from "framer-motion";
198
198
  import { useRef } from "react";
199
199
 
200
200
  // src/hooks/useMotionPreference.ts
@@ -204,225 +204,6 @@ import { useEffect } from "react";
204
204
  import { create } from "zustand";
205
205
  import { persist } from "zustand/middleware";
206
206
 
207
- // ../tokens/src/base.ts
208
- var baseTokens = {
209
- /**
210
- * Spacing scale (based on 4px grid)
211
- */
212
- spacing: {
213
- "0": "0",
214
- "0.5": "0.125rem",
215
- // 2px
216
- "1": "0.25rem",
217
- // 4px
218
- "2": "0.5rem",
219
- // 8px
220
- "3": "0.75rem",
221
- // 12px
222
- "4": "1rem",
223
- // 16px
224
- "5": "1.25rem",
225
- // 20px
226
- "6": "1.5rem",
227
- // 24px
228
- "8": "2rem",
229
- // 32px
230
- "10": "2.5rem",
231
- // 40px
232
- "12": "3rem",
233
- // 48px
234
- "16": "4rem",
235
- // 64px
236
- "20": "5rem",
237
- // 80px
238
- "24": "6rem",
239
- // 96px
240
- "32": "8rem"
241
- // 128px
242
- },
243
- /**
244
- * Typography scales
245
- */
246
- fontSize: {
247
- "xs": "0.75rem",
248
- // 12px
249
- "sm": "0.875rem",
250
- // 14px
251
- "base": "1rem",
252
- // 16px
253
- "lg": "1.125rem",
254
- // 18px
255
- "xl": "1.25rem",
256
- // 20px
257
- "2xl": "1.5rem",
258
- // 24px
259
- "3xl": "1.875rem",
260
- // 30px
261
- "4xl": "2.25rem",
262
- // 36px
263
- "5xl": "3rem",
264
- // 48px
265
- "6xl": "3.75rem",
266
- // 60px
267
- "7xl": "4.5rem",
268
- // 72px
269
- "8xl": "6rem"
270
- // 96px
271
- },
272
- fontWeight: {
273
- light: "300",
274
- normal: "400",
275
- medium: "500",
276
- semibold: "600",
277
- bold: "700",
278
- extrabold: "800",
279
- black: "900"
280
- },
281
- lineHeight: {
282
- none: "1",
283
- tight: "1.25",
284
- snug: "1.375",
285
- normal: "1.5",
286
- relaxed: "1.625",
287
- loose: "2"
288
- },
289
- /**
290
- * Border radius
291
- */
292
- borderRadius: {
293
- none: "0",
294
- sm: "0.125rem",
295
- // 2px
296
- DEFAULT: "0.25rem",
297
- // 4px
298
- md: "0.375rem",
299
- // 6px
300
- lg: "0.5rem",
301
- // 8px
302
- xl: "0.75rem",
303
- // 12px
304
- "2xl": "1rem",
305
- // 16px
306
- "3xl": "1.5rem",
307
- // 24px
308
- full: "9999px"
309
- },
310
- /**
311
- * Motion durations (base values - themes can override)
312
- */
313
- duration: {
314
- instant: "0ms",
315
- fast: "150ms",
316
- normal: "300ms",
317
- slow: "500ms",
318
- slower: "800ms"
319
- },
320
- /**
321
- * Easing curves (base values - themes can override)
322
- */
323
- ease: {
324
- linear: "linear",
325
- in: "cubic-bezier(0.4, 0, 1, 1)",
326
- out: "cubic-bezier(0, 0, 0.2, 1)",
327
- inOut: "cubic-bezier(0.4, 0, 0.2, 1)"
328
- },
329
- /**
330
- * Z-index scale
331
- */
332
- zIndex: {
333
- "auto": "auto",
334
- "0": "0",
335
- "10": "10",
336
- "20": "20",
337
- "30": "30",
338
- "40": "40",
339
- "50": "50",
340
- dropdown: "1000",
341
- sticky: "1020",
342
- fixed: "1030",
343
- modalBackdrop: "1040",
344
- modal: "1050",
345
- popover: "1060",
346
- tooltip: "1070"
347
- },
348
- /**
349
- * Focus ring configuration
350
- */
351
- focus: {
352
- width: "2px",
353
- offset: "2px",
354
- style: "solid"
355
- }
356
- };
357
- var spacing = {
358
- xs: baseTokens.spacing["1"],
359
- // 4px — Tight internal padding
360
- sm: baseTokens.spacing["2"],
361
- // 8px — Default gap
362
- md: baseTokens.spacing["4"],
363
- // 16px — Section padding
364
- lg: baseTokens.spacing["6"],
365
- // 24px — Card padding
366
- xl: baseTokens.spacing["8"],
367
- // 32px — Section margins
368
- "2xl": baseTokens.spacing["12"],
369
- // 48px — Page sections
370
- "3xl": baseTokens.spacing["16"]
371
- // 64px — Major divisions
372
- };
373
- var typography = {
374
- fonts: {
375
- sans: "var(--font-body)",
376
- serif: "var(--font-heading)",
377
- mono: "var(--font-mono)"
378
- },
379
- sizes: {
380
- xs: baseTokens.fontSize.xs,
381
- // 12px — Fine print
382
- sm: baseTokens.fontSize.sm,
383
- // 14px — Secondary text
384
- base: baseTokens.fontSize.base,
385
- // 16px — Body text
386
- lg: baseTokens.fontSize.lg,
387
- // 18px — Lead paragraphs
388
- xl: baseTokens.fontSize.xl,
389
- // 20px — Section headers
390
- "2xl": baseTokens.fontSize["2xl"],
391
- // 24px — Page headers
392
- "3xl": baseTokens.fontSize["3xl"]
393
- // 30px — Hero text
394
- },
395
- weights: {
396
- normal: baseTokens.fontWeight.normal,
397
- // 400
398
- medium: baseTokens.fontWeight.medium,
399
- // 500
400
- semibold: baseTokens.fontWeight.semibold,
401
- // 600
402
- bold: baseTokens.fontWeight.bold
403
- // 700
404
- },
405
- leading: {
406
- tight: baseTokens.lineHeight.tight,
407
- // 1.25 — Headings
408
- normal: baseTokens.lineHeight.normal,
409
- // 1.5 — Body
410
- relaxed: baseTokens.lineHeight.relaxed
411
- // 1.625 — Spacious reading
412
- }
413
- };
414
- var motion = {
415
- duration: baseTokens.duration,
416
- easing: {
417
- default: baseTokens.ease.out,
418
- // Most transitions
419
- spring: "cubic-bezier(0.16, 1, 0.3, 1)",
420
- // Playful interactions
421
- linear: baseTokens.ease.linear
422
- // Progress indicators
423
- }
424
- };
425
-
426
207
  // ../tokens/src/studio.ts
427
208
  var studioTokens = {
428
209
  light: {
@@ -932,6 +713,206 @@ var voltTokens = {
932
713
  }
933
714
  };
934
715
 
716
+ // ../tokens/src/speedboat.ts
717
+ var speedboatTokens = {
718
+ light: {
719
+ colors: {
720
+ // Backgrounds
721
+ background: "#FFFFFF",
722
+ backgroundSecondary: "#F8F8F8",
723
+ // grey50
724
+ backgroundTertiary: "#ECECEC",
725
+ // grey100
726
+ // Foregrounds
727
+ foreground: "#212121",
728
+ // grey900 — ContentPrimary
729
+ foregroundSecondary: "#5D5D5D",
730
+ // grey700 — ContentSecondary
731
+ foregroundTertiary: "#8891A7",
732
+ // grey500 — muted icons
733
+ // Brand
734
+ primary: "#346BEA",
735
+ // accent blue
736
+ primaryForeground: "#FFFFFF",
737
+ secondary: "#EBF0FD",
738
+ // blue100 — chip bg
739
+ secondaryForeground: "#1E49AA",
740
+ // blue600 — chip text
741
+ accent: "#346BEA",
742
+ // same as primary for Speedboat
743
+ accentForeground: "#FFFFFF",
744
+ // Borders
745
+ border: "#ECECEC",
746
+ // grey100 — BorderPrimary
747
+ borderSubtle: "#F8F8F8",
748
+ // grey50
749
+ // States
750
+ hover: "#F8F8F8",
751
+ // grey50
752
+ active: "#ECECEC",
753
+ // grey100
754
+ // Link hover states
755
+ linkHover: "#1E49AA",
756
+ // blue600
757
+ linkHoverForeground: "#FFFFFF",
758
+ // Semantic
759
+ success: "#2E7D32",
760
+ successForeground: "#FFFFFF",
761
+ warning: "#E65100",
762
+ warningForeground: "#FFFFFF",
763
+ error: "#C62828",
764
+ errorForeground: "#FFFFFF",
765
+ info: "#346BEA",
766
+ infoForeground: "#FFFFFF",
767
+ // Component-specific colors
768
+ card: "#FFFFFF",
769
+ cardForeground: "#212121",
770
+ popover: "#FFFFFF",
771
+ popoverForeground: "#212121",
772
+ muted: "#F8F8F8",
773
+ // grey50
774
+ mutedForeground: "#8891A7",
775
+ // grey500
776
+ destructive: "#C62828",
777
+ // error red
778
+ destructiveForeground: "#FFFFFF",
779
+ input: "#DFDFDF",
780
+ // grey200 — input borders
781
+ ring: "#346BEA",
782
+ // accent blue for focus rings
783
+ // Surface
784
+ surface: "#F8F8F8",
785
+ // grey50
786
+ // Glass effects
787
+ glass: "rgba(255, 255, 255, 0.85)",
788
+ glassBorder: "rgba(0, 0, 0, 0.08)"
789
+ },
790
+ effects: {
791
+ blur: {
792
+ sm: "blur(4px)",
793
+ md: "blur(8px)",
794
+ lg: "blur(16px)",
795
+ xl: "blur(24px)"
796
+ },
797
+ shadow: {
798
+ sm: "0 1px 2px rgba(0, 0, 0, 0.05)",
799
+ md: "0 2px 8px rgba(0, 0, 0, 0.08)",
800
+ lg: "0 4px 16px rgba(0, 0, 0, 0.10)",
801
+ xl: "0 8px 24px rgba(0, 0, 0, 0.12)",
802
+ "2xl": "0 16px 48px rgba(0, 0, 0, 0.16)"
803
+ }
804
+ }
805
+ },
806
+ dark: {
807
+ colors: {
808
+ // Backgrounds — derived dark palette
809
+ background: "#0F1117",
810
+ backgroundSecondary: "#1A1C25",
811
+ backgroundTertiary: "#252833",
812
+ // Foregrounds
813
+ foreground: "#F0F0F2",
814
+ foregroundSecondary: "#A0A3B1",
815
+ foregroundTertiary: "#6B6F80",
816
+ // Brand — keep the accent blue, slightly brighten for dark bg
817
+ primary: "#4A7FF7",
818
+ primaryForeground: "#FFFFFF",
819
+ secondary: "#1E2540",
820
+ secondaryForeground: "#A6C1FF",
821
+ // blue300
822
+ accent: "#4A7FF7",
823
+ accentForeground: "#FFFFFF",
824
+ // Borders
825
+ border: "#2E3140",
826
+ borderSubtle: "#1A1C25",
827
+ // States
828
+ hover: "#1A1C25",
829
+ active: "#252833",
830
+ // Link hover states
831
+ linkHover: "#A6C1FF",
832
+ // blue300 — lighter for dark mode
833
+ linkHoverForeground: "#0F1117",
834
+ // Semantic — slightly brighter versions for dark bg
835
+ success: "#4CAF50",
836
+ successForeground: "#FFFFFF",
837
+ warning: "#FF8A50",
838
+ warningForeground: "#FFFFFF",
839
+ error: "#EF5350",
840
+ errorForeground: "#FFFFFF",
841
+ info: "#4A7FF7",
842
+ infoForeground: "#FFFFFF",
843
+ // Component-specific colors
844
+ card: "#1A1C25",
845
+ cardForeground: "#F0F0F2",
846
+ popover: "#1A1C25",
847
+ popoverForeground: "#F0F0F2",
848
+ muted: "#252833",
849
+ mutedForeground: "#6B6F80",
850
+ destructive: "#EF5350",
851
+ destructiveForeground: "#FFFFFF",
852
+ input: "#2E3140",
853
+ ring: "#4A7FF7",
854
+ // Surface
855
+ surface: "#1A1C25",
856
+ // Glass effects
857
+ glass: "rgba(15, 17, 23, 0.85)",
858
+ glassBorder: "rgba(255, 255, 255, 0.08)"
859
+ },
860
+ effects: {
861
+ blur: {
862
+ sm: "blur(4px)",
863
+ md: "blur(8px)",
864
+ lg: "blur(16px)",
865
+ xl: "blur(24px)"
866
+ },
867
+ shadow: {
868
+ sm: "0 1px 2px rgba(0, 0, 0, 0.20)",
869
+ md: "0 2px 8px rgba(0, 0, 0, 0.30)",
870
+ lg: "0 4px 16px rgba(0, 0, 0, 0.35)",
871
+ xl: "0 8px 24px rgba(0, 0, 0, 0.40)",
872
+ "2xl": "0 16px 48px rgba(0, 0, 0, 0.50)"
873
+ }
874
+ }
875
+ },
876
+ /**
877
+ * Motion personality for Speedboat theme
878
+ * Professional and snappy — slightly faster than Studio
879
+ */
880
+ motion: {
881
+ getDuration: (intensity) => {
882
+ if (intensity === 0) return "0ms";
883
+ const ms = 120 + (intensity - 1) * 35;
884
+ return `${ms}ms`;
885
+ },
886
+ ease: {
887
+ default: "cubic-bezier(0.4, 0, 0.2, 1)",
888
+ in: "cubic-bezier(0.4, 0, 1, 1)",
889
+ out: "cubic-bezier(0, 0, 0.2, 1)",
890
+ spring: "cubic-bezier(0.16, 1, 0.3, 1)"
891
+ }
892
+ },
893
+ /**
894
+ * Typography for Speedboat theme
895
+ * Montserrat headings + Roboto body — Moloco brand fonts
896
+ */
897
+ typography: {
898
+ heading: {
899
+ fontFamily: "var(--font-montserrat)",
900
+ fontWeight: "700",
901
+ letterSpacing: "-0.01em"
902
+ },
903
+ body: {
904
+ fontFamily: "var(--font-roboto)",
905
+ fontWeight: "400",
906
+ letterSpacing: "0"
907
+ },
908
+ mono: {
909
+ fontFamily: "var(--font-geist-mono)",
910
+ fontWeight: "400",
911
+ letterSpacing: "0"
912
+ }
913
+ }
914
+ };
915
+
935
916
  // ../tokens/src/typography.ts
936
917
  var fontFamilies = {
937
918
  studio: {
@@ -975,6 +956,19 @@ var fontFamilies = {
975
956
  sans: "All sans-serif needs",
976
957
  mono: "Code blocks, technical content"
977
958
  }
959
+ },
960
+ speedboat: {
961
+ heading: "Montserrat",
962
+ body: "Roboto",
963
+ sans: "Roboto",
964
+ mono: "Fira Code",
965
+ description: "Moloco brand typography \u2014 Montserrat headings with Roboto body",
966
+ usage: {
967
+ heading: "Brand headings, section titles",
968
+ body: "UI text, data labels, form content",
969
+ sans: "All sans-serif needs",
970
+ mono: "Code blocks, technical content"
971
+ }
978
972
  }
979
973
  };
980
974
  var fontSizes = {
@@ -1532,6 +1526,9 @@ function computeDerivedTokens(sourceToken, sourceValue, mode) {
1532
1526
  return derived;
1533
1527
  }
1534
1528
 
1529
+ // ../tokens/src/index.ts
1530
+ var PUBLIC_THEME_NAMES = ["studio", "terra", "volt"];
1531
+
1535
1532
  // src/lib/colors.ts
1536
1533
  var colorTokens = {
1537
1534
  // Background colors
@@ -2091,7 +2088,7 @@ var useCustomizer = create()(
2091
2088
 
2092
2089
  // src/hooks/useMotionPreference.ts
2093
2090
  function useMotionPreference() {
2094
- const { motion: motion7, prefersReducedMotion, setPrefersReducedMotion } = useCustomizer();
2091
+ const { motion: motion6, prefersReducedMotion, setPrefersReducedMotion } = useCustomizer();
2095
2092
  useEffect(() => {
2096
2093
  if (typeof window === "undefined") return;
2097
2094
  const mediaQuery = window.matchMedia("(prefers-reduced-motion: reduce)");
@@ -2103,8 +2100,8 @@ function useMotionPreference() {
2103
2100
  return () => mediaQuery.removeEventListener("change", handleChange);
2104
2101
  }, [setPrefersReducedMotion]);
2105
2102
  return {
2106
- scale: motion7,
2107
- shouldAnimate: motion7 > 0 && !prefersReducedMotion,
2103
+ scale: motion6,
2104
+ shouldAnimate: motion6 > 0 && !prefersReducedMotion,
2108
2105
  prefersReducedMotion
2109
2106
  };
2110
2107
  }
@@ -2133,7 +2130,7 @@ function Magnetic({ children, strength = 0.2, range = 100, className }) {
2133
2130
  position.y.set(0);
2134
2131
  };
2135
2132
  return /* @__PURE__ */ jsx5(
2136
- motion2.div,
2133
+ motion.div,
2137
2134
  {
2138
2135
  ref,
2139
2136
  onMouseMove: handleMouseMove,
@@ -2158,7 +2155,7 @@ var Checkbox = ({
2158
2155
  {
2159
2156
  ref,
2160
2157
  className: cn(
2161
- "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",
2158
+ "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",
2162
2159
  className
2163
2160
  ),
2164
2161
  ...props,
@@ -2180,7 +2177,7 @@ import { cva as cva3 } from "class-variance-authority";
2180
2177
  import * as LabelPrimitive from "@radix-ui/react-label";
2181
2178
  import { jsx as jsx7 } from "react/jsx-runtime";
2182
2179
  var labelVariants = cva3(
2183
- "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
2180
+ "block mb-1.5 text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
2184
2181
  );
2185
2182
  var Label = ({
2186
2183
  ref,
@@ -2201,6 +2198,7 @@ var Input = ({
2201
2198
  ref,
2202
2199
  className,
2203
2200
  type,
2201
+ style,
2204
2202
  ...props
2205
2203
  }) => {
2206
2204
  return /* @__PURE__ */ jsx8(
@@ -2208,9 +2206,21 @@ var Input = ({
2208
2206
  {
2209
2207
  type,
2210
2208
  className: cn(
2211
- "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",
2209
+ "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",
2212
2210
  className
2213
2211
  ),
2212
+ style: {
2213
+ height: "2.25rem",
2214
+ width: "100%",
2215
+ border: "1px solid var(--color-input, #DFDFDF)",
2216
+ borderRadius: "var(--radius-md, 0.375rem)",
2217
+ padding: "0.25rem 0.75rem",
2218
+ fontSize: "var(--text-sm, 0.875rem)",
2219
+ backgroundColor: "transparent",
2220
+ boxShadow: "0 1px 2px 0 rgb(0 0 0 / 0.05)",
2221
+ outline: "none",
2222
+ ...style
2223
+ },
2214
2224
  ref,
2215
2225
  ...props
2216
2226
  }
@@ -2251,7 +2261,7 @@ function ColorPicker({
2251
2261
  onChange(newColor);
2252
2262
  };
2253
2263
  return /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
2254
- label && /* @__PURE__ */ jsx9("div", { className: "flex items-baseline justify-between", children: /* @__PURE__ */ jsxs(Label, { className: "text-sm font-medium", children: [
2264
+ label && /* @__PURE__ */ jsx9("div", { className: "flex items-baseline justify-between", children: /* @__PURE__ */ jsxs(Label, { className: "text-sm font-medium mb-0", children: [
2255
2265
  label,
2256
2266
  optional && /* @__PURE__ */ jsx9("span", { className: "text-xs text-muted-foreground ml-1", children: "(optional)" })
2257
2267
  ] }) }),
@@ -2321,6 +2331,7 @@ function DialogClose({
2321
2331
  }
2322
2332
  function DialogOverlay({
2323
2333
  className,
2334
+ style,
2324
2335
  ...props
2325
2336
  }) {
2326
2337
  return /* @__PURE__ */ jsx10(
@@ -2331,6 +2342,11 @@ function DialogOverlay({
2331
2342
  "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",
2332
2343
  className
2333
2344
  ),
2345
+ style: {
2346
+ backgroundColor: "rgba(0, 0, 0, 0.5)",
2347
+ zIndex: 50,
2348
+ ...style
2349
+ },
2334
2350
  ...props
2335
2351
  }
2336
2352
  );
@@ -2339,6 +2355,7 @@ function DialogContent({
2339
2355
  className,
2340
2356
  children,
2341
2357
  showCloseButton = true,
2358
+ style,
2342
2359
  ...props
2343
2360
  }) {
2344
2361
  return /* @__PURE__ */ jsxs2(DialogPortal, { "data-slot": "dialog-portal", children: [
@@ -2351,6 +2368,14 @@ function DialogContent({
2351
2368
  "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",
2352
2369
  className
2353
2370
  ),
2371
+ style: {
2372
+ backgroundColor: "var(--color-background, #ffffff)",
2373
+ border: "1px solid var(--color-border, #d4d4d4)",
2374
+ borderRadius: "0.75rem",
2375
+ boxShadow: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",
2376
+ zIndex: 50,
2377
+ ...style
2378
+ },
2354
2379
  ...props,
2355
2380
  children: [
2356
2381
  children,
@@ -2358,7 +2383,7 @@ function DialogContent({
2358
2383
  DialogPrimitive.Close,
2359
2384
  {
2360
2385
  "data-slot": "dialog-close",
2361
- 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",
2386
+ 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",
2362
2387
  children: [
2363
2388
  /* @__PURE__ */ jsx10(X, {}),
2364
2389
  /* @__PURE__ */ jsx10("span", { className: "sr-only", children: "Close" })
@@ -2517,7 +2542,7 @@ var CommandItem = ({
2517
2542
  {
2518
2543
  ref,
2519
2544
  className: cn(
2520
- "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",
2545
+ "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",
2521
2546
  className
2522
2547
  ),
2523
2548
  ...props
@@ -2551,6 +2576,7 @@ var PopoverContent = ({
2551
2576
  className,
2552
2577
  align = "center",
2553
2578
  sideOffset = 4,
2579
+ style,
2554
2580
  ...props
2555
2581
  }) => /* @__PURE__ */ jsx12(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx12(
2556
2582
  PopoverPrimitive.Content,
@@ -2562,6 +2588,15 @@ var PopoverContent = ({
2562
2588
  "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",
2563
2589
  className
2564
2590
  ),
2591
+ style: {
2592
+ backgroundColor: "var(--color-popover, #ffffff)",
2593
+ color: "var(--color-popover-foreground, #0a0a0a)",
2594
+ border: "1px solid var(--color-border, #d4d4d4)",
2595
+ borderRadius: "var(--radius, 0.5rem)",
2596
+ boxShadow: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",
2597
+ zIndex: 50,
2598
+ ...style
2599
+ },
2565
2600
  ...props
2566
2601
  }
2567
2602
  ) });
@@ -3301,12 +3336,12 @@ var SearchBar = ({
3301
3336
  onKeyDown: handleKeyDown,
3302
3337
  placeholder,
3303
3338
  variant: "outlined",
3304
- className: "pl-10 !bg-[var(--color-surface)] !border !border-[var(--color-border)]",
3339
+ className: "pl-10 bg-[var(--color-surface)]! border! border-[var(--color-border)]!",
3305
3340
  style: { paddingRight: showClear || showShortcut ? "3rem" : void 0 },
3306
3341
  ...props
3307
3342
  }
3308
3343
  ),
3309
- showShortcut && /* @__PURE__ */ jsx20("div", { className: "absolute right-3 top-1/2 -translate-y-1/2 pointer-events-none", children: /* @__PURE__ */ jsx20("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 }) }),
3344
+ showShortcut && /* @__PURE__ */ jsx20("div", { className: "absolute right-3 top-1/2 -translate-y-1/2 pointer-events-none", children: /* @__PURE__ */ jsx20("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 }) }),
3310
3345
  showClear && /* @__PURE__ */ jsx20(
3311
3346
  "button",
3312
3347
  {
@@ -3365,22 +3400,47 @@ var SelectTrigger = ({
3365
3400
  ref,
3366
3401
  className,
3367
3402
  children,
3403
+ style,
3404
+ label,
3405
+ labelClassName,
3368
3406
  ...props
3369
- }) => /* @__PURE__ */ jsxs10(
3370
- Trigger3,
3371
- {
3372
- ref,
3373
- className: cn(
3374
- "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",
3375
- className
3376
- ),
3377
- ...props,
3378
- children: [
3379
- children,
3380
- /* @__PURE__ */ jsx21(SelectIcon, { asChild: true, children: /* @__PURE__ */ jsx21(ChevronDown, { className: "h-4 w-4 opacity-50" }) })
3381
- ]
3382
- }
3383
- );
3407
+ }) => {
3408
+ const trigger = /* @__PURE__ */ jsxs10(
3409
+ Trigger3,
3410
+ {
3411
+ ref,
3412
+ className: cn(
3413
+ "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",
3414
+ className
3415
+ ),
3416
+ style: {
3417
+ height: "2.25rem",
3418
+ width: "100%",
3419
+ display: "flex",
3420
+ alignItems: "center",
3421
+ justifyContent: "space-between",
3422
+ border: "1px solid var(--color-input, #DFDFDF)",
3423
+ borderRadius: "var(--radius-md, 0.375rem)",
3424
+ padding: "0.5rem 0.75rem",
3425
+ fontSize: "var(--text-sm, 0.875rem)",
3426
+ backgroundColor: "transparent",
3427
+ boxShadow: "0 1px 2px 0 rgb(0 0 0 / 0.05)",
3428
+ outline: "none",
3429
+ ...style
3430
+ },
3431
+ ...props,
3432
+ children: [
3433
+ children,
3434
+ /* @__PURE__ */ jsx21(SelectIcon, { asChild: true, children: /* @__PURE__ */ jsx21(ChevronDown, { className: "h-4 w-4 opacity-50" }) })
3435
+ ]
3436
+ }
3437
+ );
3438
+ if (!label) return trigger;
3439
+ return /* @__PURE__ */ jsxs10("div", { children: [
3440
+ /* @__PURE__ */ jsx21(Label, { className: cn("text-xs font-medium text-muted-foreground", labelClassName), children: label }),
3441
+ trigger
3442
+ ] });
3443
+ };
3384
3444
  var SelectScrollUpButton = ({
3385
3445
  ref,
3386
3446
  className,
@@ -3418,8 +3478,9 @@ var SelectContent = ({
3418
3478
  className,
3419
3479
  children,
3420
3480
  position = "popper",
3481
+ style,
3421
3482
  ...props
3422
- }) => /* @__PURE__ */ jsx21(Portal3, { children: /* @__PURE__ */ jsxs10(
3483
+ }) => /* @__PURE__ */ jsx21(Portal3, { children: /* @__PURE__ */ jsx21(
3423
3484
  Content3,
3424
3485
  {
3425
3486
  ref,
@@ -3428,22 +3489,41 @@ var SelectContent = ({
3428
3489
  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",
3429
3490
  className
3430
3491
  ),
3492
+ style,
3431
3493
  position,
3432
3494
  ...props,
3433
- children: [
3434
- /* @__PURE__ */ jsx21(SelectScrollUpButton, {}),
3435
- /* @__PURE__ */ jsx21(
3436
- Viewport,
3437
- {
3438
- className: cn(
3439
- "p-1",
3440
- position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
3495
+ children: /* @__PURE__ */ jsxs10(
3496
+ "div",
3497
+ {
3498
+ style: {
3499
+ backgroundColor: "var(--color-popover, #ffffff)",
3500
+ color: "var(--color-popover-foreground, #0a0a0a)",
3501
+ borderWidth: "1px",
3502
+ borderStyle: "solid",
3503
+ borderColor: "var(--color-border, #d4d4d4)",
3504
+ borderRadius: "var(--radius, 0.5rem)",
3505
+ boxShadow: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",
3506
+ overflow: "hidden"
3507
+ },
3508
+ children: [
3509
+ /* @__PURE__ */ jsx21(SelectScrollUpButton, {}),
3510
+ /* @__PURE__ */ jsx21(
3511
+ Viewport,
3512
+ {
3513
+ className: cn(
3514
+ "p-1",
3515
+ position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
3516
+ ),
3517
+ style: {
3518
+ padding: "0.25rem"
3519
+ },
3520
+ children
3521
+ }
3441
3522
  ),
3442
- children
3443
- }
3444
- ),
3445
- /* @__PURE__ */ jsx21(SelectScrollDownButton, {})
3446
- ]
3523
+ /* @__PURE__ */ jsx21(SelectScrollDownButton, {})
3524
+ ]
3525
+ }
3526
+ )
3447
3527
  }
3448
3528
  ) });
3449
3529
  var SelectLabel = ({
@@ -3468,12 +3548,39 @@ var SelectItem = ({
3468
3548
  {
3469
3549
  ref,
3470
3550
  className: cn(
3471
- "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",
3551
+ "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",
3472
3552
  className
3473
3553
  ),
3554
+ style: {
3555
+ position: "relative",
3556
+ display: "flex",
3557
+ width: "100%",
3558
+ cursor: "default",
3559
+ userSelect: "none",
3560
+ alignItems: "center",
3561
+ borderRadius: "var(--radius-sm, 0.125rem)",
3562
+ padding: "0.375rem 2rem 0.375rem 0.5rem",
3563
+ fontSize: "var(--text-sm, 0.875rem)",
3564
+ outline: "none"
3565
+ },
3474
3566
  ...props,
3475
3567
  children: [
3476
- /* @__PURE__ */ jsx21("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx21(ItemIndicator, { children: /* @__PURE__ */ jsx21(Check3, { className: "h-4 w-4" }) }) }),
3568
+ /* @__PURE__ */ jsx21(
3569
+ "span",
3570
+ {
3571
+ className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center",
3572
+ style: {
3573
+ position: "absolute",
3574
+ right: "0.5rem",
3575
+ display: "flex",
3576
+ height: "0.875rem",
3577
+ width: "0.875rem",
3578
+ alignItems: "center",
3579
+ justifyContent: "center"
3580
+ },
3581
+ children: /* @__PURE__ */ jsx21(ItemIndicator, { children: /* @__PURE__ */ jsx21(Check3, { className: "h-4 w-4", style: { height: "1rem", width: "1rem" } }) })
3582
+ }
3583
+ ),
3477
3584
  /* @__PURE__ */ jsx21(ItemText, { children })
3478
3585
  ]
3479
3586
  }
@@ -3509,7 +3616,7 @@ var Slider = ({
3509
3616
  ...props,
3510
3617
  children: [
3511
3618
  /* @__PURE__ */ jsx22(SliderPrimitive.Track, { className: "relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20", children: /* @__PURE__ */ jsx22(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }),
3512
- /* @__PURE__ */ jsx22(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" })
3619
+ /* @__PURE__ */ jsx22(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" })
3513
3620
  ]
3514
3621
  }
3515
3622
  );
@@ -3525,7 +3632,7 @@ var Switch = ({
3525
3632
  SwitchPrimitives.Root,
3526
3633
  {
3527
3634
  className: cn(
3528
- "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",
3635
+ "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",
3529
3636
  className
3530
3637
  ),
3531
3638
  ...props,
@@ -3763,7 +3870,7 @@ var ThemeSwitcher = ({
3763
3870
  className: `
3764
3871
  flex-1 py-2 px-3 rounded-md
3765
3872
  transition-all duration-200
3766
- ${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)]"}
3873
+ ${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)]"}
3767
3874
  `,
3768
3875
  children: "Light"
3769
3876
  }
@@ -3775,7 +3882,7 @@ var ThemeSwitcher = ({
3775
3882
  className: `
3776
3883
  flex-1 py-2 px-3 rounded-md
3777
3884
  transition-all duration-200
3778
- ${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)]"}
3885
+ ${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)]"}
3779
3886
  `,
3780
3887
  children: "Dark"
3781
3888
  }
@@ -4091,7 +4198,7 @@ function FileUpload({
4091
4198
  e.stopPropagation();
4092
4199
  removeFile(index);
4093
4200
  },
4094
- 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",
4201
+ 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",
4095
4202
  "aria-label": `Remove ${file.name}`,
4096
4203
  children: /* @__PURE__ */ jsx27(XIcon, {})
4097
4204
  }
@@ -4337,7 +4444,7 @@ var MenubarTrigger = ({
4337
4444
  MenubarPrimitive.Trigger,
4338
4445
  {
4339
4446
  ref,
4340
- 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),
4447
+ 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),
4341
4448
  ...props
4342
4449
  }
4343
4450
  );
@@ -4347,6 +4454,7 @@ var MenubarContent = ({
4347
4454
  align = "start",
4348
4455
  alignOffset = -4,
4349
4456
  sideOffset = 8,
4457
+ style,
4350
4458
  ...props
4351
4459
  }) => /* @__PURE__ */ jsx30(MenubarPrimitive.Portal, { children: /* @__PURE__ */ jsx30(
4352
4460
  MenubarPrimitive.Content,
@@ -4356,6 +4464,16 @@ var MenubarContent = ({
4356
4464
  alignOffset,
4357
4465
  sideOffset,
4358
4466
  className: cn("z-50 min-w-[12rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md", className),
4467
+ style: {
4468
+ backgroundColor: "var(--color-popover, #ffffff)",
4469
+ color: "var(--color-popover-foreground, #0a0a0a)",
4470
+ border: "1px solid var(--color-border, #d4d4d4)",
4471
+ borderRadius: "var(--radius, 0.5rem)",
4472
+ boxShadow: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",
4473
+ zIndex: 50,
4474
+ overflow: "hidden",
4475
+ ...style
4476
+ },
4359
4477
  ...props
4360
4478
  }
4361
4479
  ) });
@@ -4367,7 +4485,7 @@ var MenubarItem = ({
4367
4485
  MenubarPrimitive.Item,
4368
4486
  {
4369
4487
  ref,
4370
- 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),
4488
+ 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),
4371
4489
  ...props
4372
4490
  }
4373
4491
  );
@@ -4395,7 +4513,7 @@ var NavLink = ({
4395
4513
  const variants = {
4396
4514
  pill: `px-3 py-2 rounded-lg
4397
4515
  ${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)]"}`,
4398
- minimal: `relative pb-1 rounded-sm
4516
+ minimal: `relative pb-1 rounded-xs
4399
4517
  ${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)]"}`
4400
4518
  };
4401
4519
  return /* @__PURE__ */ jsxs17(
@@ -4501,7 +4619,7 @@ var NavigationMenuViewport = ({
4501
4619
  }) => /* @__PURE__ */ jsx32("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsx32(
4502
4620
  NavigationMenuPrimitive.Viewport,
4503
4621
  {
4504
- 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),
4622
+ 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),
4505
4623
  ref,
4506
4624
  ...props
4507
4625
  }
@@ -4693,7 +4811,7 @@ var TabsTrigger = ({
4693
4811
  {
4694
4812
  ref,
4695
4813
  className: cn(
4696
- "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",
4814
+ "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",
4697
4815
  className
4698
4816
  ),
4699
4817
  ...props
@@ -4763,6 +4881,7 @@ var AlertDialogPortal = AlertDialogPrimitive.Portal;
4763
4881
  var AlertDialogOverlay = ({
4764
4882
  ref,
4765
4883
  className,
4884
+ style,
4766
4885
  ...props
4767
4886
  }) => /* @__PURE__ */ jsx37(
4768
4887
  AlertDialogPrimitive.Overlay,
@@ -4771,6 +4890,11 @@ var AlertDialogOverlay = ({
4771
4890
  "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",
4772
4891
  className
4773
4892
  ),
4893
+ style: {
4894
+ backgroundColor: "rgba(0, 0, 0, 0.8)",
4895
+ zIndex: 50,
4896
+ ...style
4897
+ },
4774
4898
  ...props,
4775
4899
  ref
4776
4900
  }
@@ -4778,6 +4902,7 @@ var AlertDialogOverlay = ({
4778
4902
  var AlertDialogContent = ({
4779
4903
  ref,
4780
4904
  className,
4905
+ style,
4781
4906
  ...props
4782
4907
  }) => /* @__PURE__ */ jsxs21(AlertDialogPortal, { children: [
4783
4908
  /* @__PURE__ */ jsx37(AlertDialogOverlay, {}),
@@ -4789,6 +4914,14 @@ var AlertDialogContent = ({
4789
4914
  "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",
4790
4915
  className
4791
4916
  ),
4917
+ style: {
4918
+ backgroundColor: "var(--color-background, #ffffff)",
4919
+ border: "1px solid var(--color-border, #d4d4d4)",
4920
+ borderRadius: "0.75rem",
4921
+ boxShadow: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",
4922
+ zIndex: 50,
4923
+ ...style
4924
+ },
4792
4925
  ...props
4793
4926
  }
4794
4927
  )
@@ -4895,7 +5028,7 @@ var ContextMenuSubTrigger = ({
4895
5028
  {
4896
5029
  ref,
4897
5030
  className: cn(
4898
- "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",
5031
+ "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",
4899
5032
  inset && "pl-8",
4900
5033
  className
4901
5034
  ),
@@ -4909,6 +5042,7 @@ var ContextMenuSubTrigger = ({
4909
5042
  var ContextMenuSubContent = ({
4910
5043
  ref,
4911
5044
  className,
5045
+ style,
4912
5046
  ...props
4913
5047
  }) => /* @__PURE__ */ jsx38(
4914
5048
  ContextMenuPrimitive.SubContent,
@@ -4918,12 +5052,23 @@ var ContextMenuSubContent = ({
4918
5052
  "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",
4919
5053
  className
4920
5054
  ),
5055
+ style: {
5056
+ backgroundColor: "var(--color-popover, #ffffff)",
5057
+ color: "var(--color-popover-foreground, #0a0a0a)",
5058
+ border: "1px solid var(--color-border, #d4d4d4)",
5059
+ borderRadius: "var(--radius, 0.5rem)",
5060
+ boxShadow: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",
5061
+ zIndex: 50,
5062
+ overflow: "hidden",
5063
+ ...style
5064
+ },
4921
5065
  ...props
4922
5066
  }
4923
5067
  );
4924
5068
  var ContextMenuContent = ({
4925
5069
  ref,
4926
5070
  className,
5071
+ style,
4927
5072
  ...props
4928
5073
  }) => /* @__PURE__ */ jsx38(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx38(
4929
5074
  ContextMenuPrimitive.Content,
@@ -4933,6 +5078,16 @@ var ContextMenuContent = ({
4933
5078
  "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",
4934
5079
  className
4935
5080
  ),
5081
+ style: {
5082
+ backgroundColor: "var(--color-popover, #ffffff)",
5083
+ color: "var(--color-popover-foreground, #0a0a0a)",
5084
+ border: "1px solid var(--color-border, #d4d4d4)",
5085
+ borderRadius: "var(--radius, 0.5rem)",
5086
+ boxShadow: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",
5087
+ zIndex: 50,
5088
+ overflow: "hidden",
5089
+ ...style
5090
+ },
4936
5091
  ...props
4937
5092
  }
4938
5093
  ) });
@@ -4946,7 +5101,7 @@ var ContextMenuItem = ({
4946
5101
  {
4947
5102
  ref,
4948
5103
  className: cn(
4949
- "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",
5104
+ "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",
4950
5105
  inset && "pl-8",
4951
5106
  className
4952
5107
  ),
@@ -4964,7 +5119,7 @@ var ContextMenuCheckboxItem = ({
4964
5119
  {
4965
5120
  ref,
4966
5121
  className: cn(
4967
- "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",
5122
+ "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",
4968
5123
  className
4969
5124
  ),
4970
5125
  checked,
@@ -4985,7 +5140,7 @@ var ContextMenuRadioItem = ({
4985
5140
  {
4986
5141
  ref,
4987
5142
  className: cn(
4988
- "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",
5143
+ "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",
4989
5144
  className
4990
5145
  ),
4991
5146
  ...props,
@@ -5051,12 +5206,18 @@ var DrawerClose = DrawerPrimitive.Close;
5051
5206
  var DrawerOverlay = ({
5052
5207
  ref,
5053
5208
  className,
5209
+ style,
5054
5210
  ...props
5055
5211
  }) => /* @__PURE__ */ jsx39(
5056
5212
  DrawerPrimitive.Overlay,
5057
5213
  {
5058
5214
  ref,
5059
5215
  className: cn("fixed inset-0 z-50 bg-black/80", className),
5216
+ style: {
5217
+ backgroundColor: "rgba(0, 0, 0, 0.8)",
5218
+ zIndex: 50,
5219
+ ...style
5220
+ },
5060
5221
  ...props
5061
5222
  }
5062
5223
  );
@@ -5064,6 +5225,7 @@ var DrawerContent = ({
5064
5225
  ref,
5065
5226
  className,
5066
5227
  children,
5228
+ style,
5067
5229
  ...props
5068
5230
  }) => /* @__PURE__ */ jsxs23(DrawerPortal, { children: [
5069
5231
  /* @__PURE__ */ jsx39(DrawerOverlay, {}),
@@ -5075,6 +5237,13 @@ var DrawerContent = ({
5075
5237
  "fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background",
5076
5238
  className
5077
5239
  ),
5240
+ style: {
5241
+ backgroundColor: "var(--color-background, #ffffff)",
5242
+ border: "1px solid var(--color-border, #d4d4d4)",
5243
+ borderRadius: "10px 10px 0 0",
5244
+ zIndex: 50,
5245
+ ...style
5246
+ },
5078
5247
  ...props,
5079
5248
  children: [
5080
5249
  /* @__PURE__ */ jsx39("div", { className: "mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted" }),
@@ -5520,7 +5689,7 @@ var DropdownMenuSubTrigger = ({
5520
5689
  {
5521
5690
  ref,
5522
5691
  className: cn(
5523
- "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",
5692
+ "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",
5524
5693
  inset && "pl-8",
5525
5694
  className
5526
5695
  ),
@@ -5534,6 +5703,7 @@ var DropdownMenuSubTrigger = ({
5534
5703
  var DropdownMenuSubContent = ({
5535
5704
  ref,
5536
5705
  className,
5706
+ style,
5537
5707
  ...props
5538
5708
  }) => /* @__PURE__ */ jsx41(
5539
5709
  DropdownMenuPrimitive.SubContent,
@@ -5543,6 +5713,16 @@ var DropdownMenuSubContent = ({
5543
5713
  "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",
5544
5714
  className
5545
5715
  ),
5716
+ style: {
5717
+ backgroundColor: "var(--color-popover, #ffffff)",
5718
+ color: "var(--color-popover-foreground, #0a0a0a)",
5719
+ border: "1px solid var(--color-border, #d4d4d4)",
5720
+ borderRadius: "var(--radius, 0.5rem)",
5721
+ boxShadow: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",
5722
+ zIndex: 50,
5723
+ overflow: "hidden",
5724
+ ...style
5725
+ },
5546
5726
  ...props
5547
5727
  }
5548
5728
  );
@@ -5550,6 +5730,7 @@ var DropdownMenuContent = ({
5550
5730
  ref,
5551
5731
  className,
5552
5732
  sideOffset = 4,
5733
+ style,
5553
5734
  ...props
5554
5735
  }) => /* @__PURE__ */ jsx41(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx41(
5555
5736
  DropdownMenuPrimitive.Content,
@@ -5560,6 +5741,16 @@ var DropdownMenuContent = ({
5560
5741
  "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",
5561
5742
  className
5562
5743
  ),
5744
+ style: {
5745
+ backgroundColor: "var(--color-popover, #ffffff)",
5746
+ color: "var(--color-popover-foreground, #0a0a0a)",
5747
+ border: "1px solid var(--color-border, #d4d4d4)",
5748
+ borderRadius: "var(--radius, 0.5rem)",
5749
+ boxShadow: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",
5750
+ zIndex: 50,
5751
+ overflow: "hidden",
5752
+ ...style
5753
+ },
5563
5754
  ...props
5564
5755
  }
5565
5756
  ) });
@@ -5573,7 +5764,7 @@ var DropdownMenuItem = ({
5573
5764
  {
5574
5765
  ref,
5575
5766
  className: cn(
5576
- "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",
5767
+ "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",
5577
5768
  inset && "pl-8",
5578
5769
  className
5579
5770
  ),
@@ -5591,7 +5782,7 @@ var DropdownMenuCheckboxItem = ({
5591
5782
  {
5592
5783
  ref,
5593
5784
  className: cn(
5594
- "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",
5785
+ "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",
5595
5786
  className
5596
5787
  ),
5597
5788
  checked,
@@ -5612,7 +5803,7 @@ var DropdownMenuRadioItem = ({
5612
5803
  {
5613
5804
  ref,
5614
5805
  className: cn(
5615
- "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",
5806
+ "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",
5616
5807
  className
5617
5808
  ),
5618
5809
  ...props,
@@ -5744,7 +5935,7 @@ var Modal = ({
5744
5935
  {
5745
5936
  className: `
5746
5937
  fixed inset-0 z-[9999] flex items-center justify-center p-4
5747
- bg-black/50 backdrop-blur-sm
5938
+ bg-black/50 backdrop-blur-xs
5748
5939
  ${shouldAnimate ? "animate-fade-in" : ""}
5749
5940
  `,
5750
5941
  style: { animationDuration },
@@ -5842,6 +6033,7 @@ var SheetPortal = SheetPrimitive.Portal;
5842
6033
  var SheetOverlay = ({
5843
6034
  ref,
5844
6035
  className,
6036
+ style,
5845
6037
  ...props
5846
6038
  }) => /* @__PURE__ */ jsx44(
5847
6039
  SheetPrimitive.Overlay,
@@ -5850,6 +6042,11 @@ var SheetOverlay = ({
5850
6042
  "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",
5851
6043
  className
5852
6044
  ),
6045
+ style: {
6046
+ backgroundColor: "rgba(0, 0, 0, 0.5)",
6047
+ zIndex: 50,
6048
+ ...style
6049
+ },
5853
6050
  ...props,
5854
6051
  ref
5855
6052
  }
@@ -5875,6 +6072,7 @@ var SheetContent = ({
5875
6072
  side = "right",
5876
6073
  className,
5877
6074
  children,
6075
+ style,
5878
6076
  ...props
5879
6077
  }) => /* @__PURE__ */ jsxs27(SheetPortal, { children: [
5880
6078
  /* @__PURE__ */ jsx44(SheetOverlay, {}),
@@ -5883,10 +6081,16 @@ var SheetContent = ({
5883
6081
  {
5884
6082
  ref,
5885
6083
  className: cn(sheetVariants({ side }), className),
6084
+ style: {
6085
+ backgroundColor: "var(--color-background, #ffffff)",
6086
+ boxShadow: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",
6087
+ zIndex: 50,
6088
+ ...style
6089
+ },
5886
6090
  ...props,
5887
6091
  children: [
5888
6092
  children,
5889
- /* @__PURE__ */ jsxs27(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: [
6093
+ /* @__PURE__ */ jsxs27(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: [
5890
6094
  /* @__PURE__ */ jsx44(X2, { className: "h-4 w-4" }),
5891
6095
  /* @__PURE__ */ jsx44("span", { className: "sr-only", children: "Close" })
5892
6096
  ] })
@@ -6166,7 +6370,7 @@ function NotificationCenter({
6166
6370
  /* @__PURE__ */ jsx46(BellIcon, { className: "text-foreground-secondary mb-2 opacity-40" }),
6167
6371
  /* @__PURE__ */ jsx46("p", { className: "text-sm text-foreground-secondary", children: emptyMessage })
6168
6372
  ] }) : groupOrder.filter((group) => grouped[group]?.length > 0).map((group) => /* @__PURE__ */ jsxs28("div", { children: [
6169
- /* @__PURE__ */ jsx46("div", { className: "sticky top-0 bg-popover/95 backdrop-blur-sm px-4 py-1.5 border-b border-border/50", children: /* @__PURE__ */ jsx46("span", { className: "text-[11px] font-medium uppercase tracking-wider text-foreground-secondary", children: group }) }),
6373
+ /* @__PURE__ */ jsx46("div", { className: "sticky top-0 bg-popover/95 backdrop-blur-xs px-4 py-1.5 border-b border-border/50", children: /* @__PURE__ */ jsx46("span", { className: "text-[11px] font-medium uppercase tracking-wider text-foreground-secondary", children: group }) }),
6170
6374
  grouped[group].map((notification) => /* @__PURE__ */ jsxs28(
6171
6375
  "div",
6172
6376
  {
@@ -6218,7 +6422,7 @@ function NotificationCenter({
6218
6422
  e.stopPropagation();
6219
6423
  onMarkRead(notification.id);
6220
6424
  },
6221
- 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",
6425
+ 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",
6222
6426
  "aria-label": `Mark "${notification.title}" as read`,
6223
6427
  children: /* @__PURE__ */ jsx46(CheckIcon, {})
6224
6428
  }
@@ -6231,7 +6435,7 @@ function NotificationCenter({
6231
6435
  e.stopPropagation();
6232
6436
  onDismiss(notification.id);
6233
6437
  },
6234
- 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",
6438
+ 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",
6235
6439
  "aria-label": `Dismiss "${notification.title}"`,
6236
6440
  children: /* @__PURE__ */ jsx46(XIcon2, {})
6237
6441
  }
@@ -6434,7 +6638,7 @@ function Skeleton({ className, variant = "default", width, height, style, ...pro
6434
6638
  default: "rounded-md",
6435
6639
  circular: "rounded-full",
6436
6640
  rectangular: "rounded-none",
6437
- text: "rounded-sm h-4"
6641
+ text: "rounded-xs h-4"
6438
6642
  };
6439
6643
  return /* @__PURE__ */ jsx50(
6440
6644
  "div",
@@ -7160,14 +7364,45 @@ var badgeVariants = cva10(
7160
7364
  }
7161
7365
  }
7162
7366
  );
7163
- function Badge({ className, variant, size, dot, children, ...props }) {
7164
- return /* @__PURE__ */ jsxs35("div", { className: cn(badgeVariants({ variant, size }), className), ...props, children: [
7165
- dot && /* @__PURE__ */ jsx58("span", { className: cn(
7166
- "mr-1.5 rounded-full bg-current animate-pulse",
7167
- size === "sm" ? "w-1.5 h-1.5" : size === "lg" ? "w-2.5 h-2.5" : "w-2 h-2"
7168
- ), "aria-hidden": "true" }),
7169
- children
7170
- ] });
7367
+ function Badge({ className, variant, size, dot, children, style, ...props }) {
7368
+ const sizeStyles = {
7369
+ sm: { padding: "0.125rem 0.5rem", fontSize: "var(--text-xs, 0.75rem)" },
7370
+ md: { padding: "0.25rem 0.625rem", fontSize: "var(--text-sm, 0.875rem)" },
7371
+ lg: { padding: "0.375rem 0.75rem", fontSize: "1rem" }
7372
+ };
7373
+ const variantStyles = {
7374
+ default: { backgroundColor: "var(--color-primary, #346BEA)", color: "var(--color-primary-foreground, #ffffff)", borderColor: "transparent" },
7375
+ secondary: { backgroundColor: "var(--color-secondary, #EBF0FD)", color: "var(--color-secondary-foreground, #1E49AA)", borderColor: "transparent" },
7376
+ destructive: { backgroundColor: "var(--color-destructive, #C62828)", color: "var(--color-destructive-foreground, #ffffff)", borderColor: "transparent" },
7377
+ outline: { color: "var(--color-foreground, #212121)" },
7378
+ success: { backgroundColor: "var(--color-success, #2E7D32)", color: "var(--color-success-foreground, #ffffff)", borderColor: "transparent" },
7379
+ warning: { backgroundColor: "var(--color-warning, #E65100)", color: "var(--color-warning-foreground, #ffffff)", borderColor: "transparent" },
7380
+ error: { backgroundColor: "var(--color-error, #C62828)", color: "var(--color-error-foreground, #ffffff)", borderColor: "transparent" },
7381
+ info: { backgroundColor: "var(--color-info, #346BEA)", color: "var(--color-info-foreground, #ffffff)", borderColor: "transparent" }
7382
+ };
7383
+ return /* @__PURE__ */ jsxs35(
7384
+ "div",
7385
+ {
7386
+ className: cn(badgeVariants({ variant, size }), className),
7387
+ style: {
7388
+ display: "inline-flex",
7389
+ alignItems: "center",
7390
+ borderRadius: "9999px",
7391
+ fontWeight: 600,
7392
+ ...sizeStyles[size || "md"],
7393
+ ...variantStyles[variant || "default"],
7394
+ ...style
7395
+ },
7396
+ ...props,
7397
+ children: [
7398
+ dot && /* @__PURE__ */ jsx58("span", { className: cn(
7399
+ "mr-1.5 rounded-full bg-current animate-pulse",
7400
+ size === "sm" ? "w-1.5 h-1.5" : size === "lg" ? "w-2.5 h-2.5" : "w-2 h-2"
7401
+ ), "aria-hidden": "true" }),
7402
+ children
7403
+ ]
7404
+ }
7405
+ );
7171
7406
  }
7172
7407
 
7173
7408
  // src/components/data-display/Brand.tsx
@@ -7283,7 +7518,7 @@ Calendar.displayName = "Calendar";
7283
7518
  import { cva as cva11 } from "class-variance-authority";
7284
7519
  import { jsx as jsx61 } from "react/jsx-runtime";
7285
7520
  var cardVariants = cva11(
7286
- "rounded-2xl border bg-surface text-foreground shadow-sm",
7521
+ "rounded-2xl border bg-surface text-foreground shadow-xs",
7287
7522
  {
7288
7523
  variants: {
7289
7524
  hoverEffect: {
@@ -8066,6 +8301,11 @@ var Text = ({
8066
8301
  secondary: "text-[var(--color-text-secondary)]",
8067
8302
  muted: "text-[var(--color-text-muted)]"
8068
8303
  };
8304
+ const variantInlineStyles = {
8305
+ primary: { color: "var(--color-text-primary, #212121)" },
8306
+ secondary: { color: "var(--color-text-secondary, #5D5D5D)" },
8307
+ muted: { color: "var(--color-text-muted, #8891A7)" }
8308
+ };
8069
8309
  const sizeStyles = {
8070
8310
  xs: "text-xs",
8071
8311
  // 12px
@@ -8078,24 +8318,42 @@ var Text = ({
8078
8318
  xl: "text-xl"
8079
8319
  // 20px
8080
8320
  };
8321
+ const sizeInlineStyles = {
8322
+ xs: { fontSize: "0.75rem", lineHeight: String(1 / 0.75) },
8323
+ sm: { fontSize: "0.875rem", lineHeight: String(1.25 / 0.875) },
8324
+ base: { fontSize: "1rem", lineHeight: "1.5" },
8325
+ lg: { fontSize: "1.125rem", lineHeight: String(1.75 / 1.125) },
8326
+ xl: { fontSize: "1.25rem", lineHeight: String(1.75 / 1.25) }
8327
+ };
8081
8328
  const weightStyles = {
8082
8329
  normal: "font-normal",
8083
8330
  medium: "font-medium",
8084
8331
  semibold: "font-semibold",
8085
8332
  bold: "font-bold"
8086
8333
  };
8334
+ const weightInlineStyles = {
8335
+ normal: { fontWeight: 400 },
8336
+ medium: { fontWeight: 500 },
8337
+ semibold: { fontWeight: 600 },
8338
+ bold: { fontWeight: 700 }
8339
+ };
8087
8340
  return React17.createElement(
8088
8341
  Component,
8089
8342
  {
8090
8343
  ref,
8091
- className: `${variantStyles[variant]} ${sizeStyles[size]} ${weightStyles[weight]} ${className}`
8344
+ className: `${variantStyles[variant]} ${sizeStyles[size]} ${weightStyles[weight]} ${className}`,
8345
+ style: {
8346
+ ...variantInlineStyles[variant],
8347
+ ...sizeInlineStyles[size],
8348
+ ...weightInlineStyles[weight]
8349
+ }
8092
8350
  },
8093
8351
  children
8094
8352
  );
8095
8353
  };
8096
8354
 
8097
8355
  // src/components/data-display/VariableWeightText.tsx
8098
- import { motion as motion3 } from "framer-motion";
8356
+ import { motion as motion2 } from "framer-motion";
8099
8357
  import { jsx as jsx68 } from "react/jsx-runtime";
8100
8358
  var VariableWeightText = ({
8101
8359
  children,
@@ -8132,7 +8390,7 @@ var VariableWeightText = ({
8132
8390
  );
8133
8391
  }
8134
8392
  return /* @__PURE__ */ jsx68(
8135
- motion3.div,
8393
+ motion2.div,
8136
8394
  {
8137
8395
  initial: {
8138
8396
  fontVariationSettings: `'wght' ${minWeight}`
@@ -8166,7 +8424,7 @@ var VariableWeightText = ({
8166
8424
  };
8167
8425
 
8168
8426
  // src/components/data-display/Typewriter.tsx
8169
- import { motion as motion4 } from "framer-motion";
8427
+ import { motion as motion3 } from "framer-motion";
8170
8428
  import { useEffect as useEffect8, useState as useState13 } from "react";
8171
8429
  import { jsx as jsx69, jsxs as jsxs40 } from "react/jsx-runtime";
8172
8430
  function Typewriter({
@@ -8234,7 +8492,7 @@ function Typewriter({
8234
8492
  return /* @__PURE__ */ jsxs40(Component, { className: cn("inline", className), children: [
8235
8493
  /* @__PURE__ */ jsx69("span", { children: displayedText }),
8236
8494
  showCursor && /* @__PURE__ */ jsx69(
8237
- motion4.span,
8495
+ motion3.span,
8238
8496
  {
8239
8497
  initial: { opacity: 0 },
8240
8498
  animate: { opacity: 1 },
@@ -8250,7 +8508,7 @@ function Typewriter({
8250
8508
  import { cva as cva12 } from "class-variance-authority";
8251
8509
  import { jsx as jsx70, jsxs as jsxs41 } from "react/jsx-runtime";
8252
8510
  var statCardVariants = cva12(
8253
- "rounded-2xl border bg-surface text-foreground shadow-sm p-6",
8511
+ "rounded-2xl border bg-surface text-foreground shadow-xs p-6",
8254
8512
  {
8255
8513
  variants: {
8256
8514
  variant: {
@@ -9221,14 +9479,20 @@ var Container = ({
9221
9479
 
9222
9480
  // src/components/layout/CustomizerPanel.tsx
9223
9481
  import React21 from "react";
9224
- import { SlidersHorizontal, Sun, Moon, SunMoon, Building2, Leaf, Zap, X as X3, Palette } from "lucide-react";
9482
+ import { SlidersHorizontal, Sun, Moon, SunMoon, Building2, Leaf, Zap, Rocket, X as X3, Palette } from "lucide-react";
9225
9483
  import { jsx as jsx77, jsxs as jsxs47 } from "react/jsx-runtime";
9226
- var CustomizerPanel = ({ mode = "full", showMotionIntensity = false }) => {
9484
+ var allThemeOptions = [
9485
+ { id: "studio", label: "Studio", icon: /* @__PURE__ */ jsx77(Building2, { className: "w-4 h-4" }) },
9486
+ { id: "terra", label: "Terra", icon: /* @__PURE__ */ jsx77(Leaf, { className: "w-4 h-4" }) },
9487
+ { id: "volt", label: "Volt", icon: /* @__PURE__ */ jsx77(Zap, { className: "w-4 h-4" }) },
9488
+ { id: "speedboat", label: "Speedboat", icon: /* @__PURE__ */ jsx77(Rocket, { className: "w-4 h-4" }) }
9489
+ ];
9490
+ var CustomizerPanel = ({ mode = "full", showMotionIntensity = false, themes }) => {
9227
9491
  const [mounted, setMounted] = React21.useState(false);
9228
9492
  const [isOpen, setIsOpen] = React21.useState(false);
9229
9493
  const panelRef = React21.useRef(null);
9230
9494
  const {
9231
- motion: motion7,
9495
+ motion: motion6,
9232
9496
  setMotion,
9233
9497
  customizationMode,
9234
9498
  setCustomizationMode,
@@ -9237,7 +9501,10 @@ var CustomizerPanel = ({ mode = "full", showMotionIntensity = false }) => {
9237
9501
  resetCustomColors
9238
9502
  } = useCustomizer();
9239
9503
  const { theme, mode: colorMode, setTheme, setMode } = useThemeStore();
9504
+ const visibleThemes = themes ? allThemeOptions.filter((t) => themes.includes(t.id)) : allThemeOptions.filter((t) => PUBLIC_THEME_NAMES.includes(t.id));
9505
+ const showThemeSelector = visibleThemes.length > 1;
9240
9506
  const getDefaultPrimary = React21.useCallback((t, m) => {
9507
+ if (t === "speedboat") return m === "dark" ? speedboatTokens.dark.colors.primary : speedboatTokens.light.colors.primary;
9241
9508
  if (t === "volt") return m === "dark" ? voltTokens.dark.colors.primary : voltTokens.light.colors.primary;
9242
9509
  if (t === "terra") return m === "dark" ? terraTokens.dark.colors.primary : terraTokens.light.colors.primary;
9243
9510
  return m === "dark" ? studioTokens.dark.colors.primary : studioTokens.light.colors.primary;
@@ -9346,7 +9613,7 @@ var CustomizerPanel = ({ mode = "full", showMotionIntensity = false }) => {
9346
9613
  mode === "full" && showMotionIntensity && /* @__PURE__ */ jsxs47("div", { children: [
9347
9614
  /* @__PURE__ */ jsxs47("div", { className: "flex justify-between mb-2", children: [
9348
9615
  /* @__PURE__ */ jsx77("label", { className: "text-sm font-medium opacity-80", children: "Motion Intensity" }),
9349
- /* @__PURE__ */ jsx77("span", { className: "text-sm opacity-60", children: motion7 })
9616
+ /* @__PURE__ */ jsx77("span", { className: "text-sm opacity-60", children: motion6 })
9350
9617
  ] }),
9351
9618
  /* @__PURE__ */ jsx77(
9352
9619
  "input",
@@ -9354,23 +9621,19 @@ var CustomizerPanel = ({ mode = "full", showMotionIntensity = false }) => {
9354
9621
  type: "range",
9355
9622
  min: "0",
9356
9623
  max: "10",
9357
- value: motion7,
9624
+ value: motion6,
9358
9625
  onChange: (e) => setMotion(Number(e.target.value)),
9359
9626
  "aria-label": "Motion intensity",
9360
9627
  "aria-valuemin": 0,
9361
9628
  "aria-valuemax": 10,
9362
- "aria-valuenow": motion7,
9629
+ "aria-valuenow": motion6,
9363
9630
  className: "w-full h-2 bg-[var(--color-surface)] rounded-lg appearance-none cursor-pointer accent-primary"
9364
9631
  }
9365
9632
  )
9366
9633
  ] }),
9367
- mode === "full" && /* @__PURE__ */ jsxs47("div", { children: [
9634
+ mode === "full" && showThemeSelector && /* @__PURE__ */ jsxs47("div", { children: [
9368
9635
  /* @__PURE__ */ jsx77("label", { className: "block text-sm font-medium opacity-80 mb-3", children: "Theme" }),
9369
- /* @__PURE__ */ jsx77("div", { className: "grid grid-cols-3 gap-2 mb-3", children: [
9370
- { id: "studio", label: "Studio", icon: /* @__PURE__ */ jsx77(Building2, { className: "w-4 h-4" }) },
9371
- { id: "terra", label: "Terra", icon: /* @__PURE__ */ jsx77(Leaf, { className: "w-4 h-4" }) },
9372
- { id: "volt", label: "Volt", icon: /* @__PURE__ */ jsx77(Zap, { className: "w-4 h-4" }) }
9373
- ].map((t) => /* @__PURE__ */ jsxs47(
9636
+ /* @__PURE__ */ jsx77("div", { className: `grid gap-2 mb-3 ${visibleThemes.length <= 3 ? "grid-cols-3" : "grid-cols-4"}`, children: visibleThemes.map((t) => /* @__PURE__ */ jsxs47(
9374
9637
  "button",
9375
9638
  {
9376
9639
  onClick: () => setTheme(t.id),
@@ -9395,12 +9658,12 @@ var CustomizerPanel = ({ mode = "full", showMotionIntensity = false }) => {
9395
9658
  /* @__PURE__ */ jsxs47("div", { children: [
9396
9659
  /* @__PURE__ */ jsx77("span", { className: "font-heading", children: "Heading:" }),
9397
9660
  " ",
9398
- theme === "studio" ? "Outfit" : theme === "terra" ? "Lora" : "Space Grotesk"
9661
+ theme === "studio" ? "Outfit" : theme === "terra" ? "Lora" : theme === "speedboat" ? "Montserrat" : "Space Grotesk"
9399
9662
  ] }),
9400
9663
  /* @__PURE__ */ jsxs47("div", { children: [
9401
9664
  /* @__PURE__ */ jsx77("span", { className: "font-body", children: "Body:" }),
9402
9665
  " ",
9403
- theme === "studio" ? "Manrope" : theme === "terra" ? "Instrument Sans" : "Space Grotesk"
9666
+ theme === "studio" ? "Manrope" : theme === "terra" ? "Instrument Sans" : theme === "speedboat" ? "Roboto" : "Space Grotesk"
9404
9667
  ] })
9405
9668
  ] })
9406
9669
  ] }),
@@ -9797,7 +10060,7 @@ var Header2 = ({
9797
10060
  const baseStyles = "top-0 left-0 right-0 z-50";
9798
10061
  const positionStyles = sticky ? "fixed" : "relative";
9799
10062
  const transitionStyles = shouldAnimate ? "transition-all" : "";
9800
- 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";
10063
+ 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";
9801
10064
  const getNavClasses = () => {
9802
10065
  switch (navAlignment) {
9803
10066
  case "left":
@@ -9846,7 +10109,7 @@ var Header2 = ({
9846
10109
  focus-visible:outline-2
9847
10110
  focus-visible:outline-offset-4
9848
10111
  focus-visible:outline-[var(--color-focus)]
9849
- rounded-sm
10112
+ rounded-xs
9850
10113
  ${shouldAnimate ? "transition-colors" : ""}
9851
10114
  ${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)]"}
9852
10115
  `,
@@ -9949,7 +10212,7 @@ var Header2 = ({
9949
10212
  focus-visible:outline-2
9950
10213
  focus-visible:outline-offset-4
9951
10214
  focus-visible:outline-[var(--color-focus)]
9952
- rounded-sm
10215
+ rounded-xs
9953
10216
  ${shouldAnimate ? "transition-all" : ""}
9954
10217
  ${link.active ? "text-[var(--color-primary)] font-semibold" : "text-[var(--color-text-primary)] hover:text-[var(--color-text-secondary)]"}
9955
10218
  `,
@@ -9974,7 +10237,7 @@ var Header2 = ({
9974
10237
  focus-visible:outline-2
9975
10238
  focus-visible:outline-offset-4
9976
10239
  focus-visible:outline-[var(--color-focus)]
9977
- rounded-sm
10240
+ rounded-xs
9978
10241
  ${shouldAnimate ? "transition-colors" : ""}
9979
10242
  ${child.active ? "text-[var(--color-primary)] font-medium" : "text-[var(--color-text-secondary)] hover:text-[var(--color-text-primary)]"}
9980
10243
  `,
@@ -9998,7 +10261,7 @@ var Header2 = ({
9998
10261
  focus-visible:outline-2
9999
10262
  focus-visible:outline-offset-4
10000
10263
  focus-visible:outline-[var(--color-focus)]
10001
- rounded-sm
10264
+ rounded-xs
10002
10265
  ${shouldAnimate ? "transition-all" : ""}
10003
10266
  ${link.active ? "text-[var(--color-primary)] font-semibold" : "text-[var(--color-text-primary)] hover:text-[var(--color-text-secondary)]"}
10004
10267
  `,
@@ -10072,7 +10335,7 @@ function PageLayout({
10072
10335
  "div",
10073
10336
  {
10074
10337
  className: `
10075
- sticky bg-[var(--color-background)]/95 backdrop-blur-sm
10338
+ sticky bg-[var(--color-background)]/95 backdrop-blur-xs
10076
10339
  border-b border-[var(--color-border)]
10077
10340
  transition-all duration-300
10078
10341
  top-16 lg:top-20
@@ -10186,7 +10449,7 @@ var ResizableHandle = ({
10186
10449
  className
10187
10450
  ),
10188
10451
  ...props,
10189
- children: withHandle && /* @__PURE__ */ jsx84("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border", children: /* @__PURE__ */ jsx84(GripVertical2, { className: "h-2.5 w-2.5" }) })
10452
+ children: withHandle && /* @__PURE__ */ jsx84("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-xs border bg-border", children: /* @__PURE__ */ jsx84(GripVertical2, { className: "h-2.5 w-2.5" }) })
10190
10453
  }
10191
10454
  );
10192
10455
  };
@@ -11320,7 +11583,7 @@ function FaultyTerminal({
11320
11583
  }
11321
11584
 
11322
11585
  // src/components/motion/AnimatedBeam.tsx
11323
- import { motion as motion5 } from "framer-motion";
11586
+ import { motion as motion4 } from "framer-motion";
11324
11587
  import { useId as useId2 } from "react";
11325
11588
  import { jsx as jsx91, jsxs as jsxs55 } from "react/jsx-runtime";
11326
11589
  var AnimatedBeam = ({
@@ -11406,7 +11669,7 @@ var AnimatedBeam = ({
11406
11669
  }
11407
11670
  ),
11408
11671
  shouldAnimate && /* @__PURE__ */ jsx91(
11409
- motion5.circle,
11672
+ motion4.circle,
11410
11673
  {
11411
11674
  r: pathWidth * 1.5,
11412
11675
  fill: gradientStartColor,
@@ -11423,7 +11686,7 @@ var AnimatedBeam = ({
11423
11686
  }
11424
11687
  ),
11425
11688
  shouldAnimate && /* @__PURE__ */ jsx91(
11426
- motion5.circle,
11689
+ motion4.circle,
11427
11690
  {
11428
11691
  r: pathWidth,
11429
11692
  fill: gradientStopColor,
@@ -11765,7 +12028,7 @@ function OrbBackground({
11765
12028
 
11766
12029
  // src/components/blocks/Hero.tsx
11767
12030
  import { ArrowRight as ArrowRight2 } from "lucide-react";
11768
- import { motion as motion6 } from "framer-motion";
12031
+ import { motion as motion5 } from "framer-motion";
11769
12032
  import { jsx as jsx93, jsxs as jsxs56 } from "react/jsx-runtime";
11770
12033
  function HeroBlock({
11771
12034
  className,
@@ -11810,7 +12073,7 @@ function HeroBlock({
11810
12073
  /* @__PURE__ */ jsx93("div", { className: "absolute inset-0 bg-gradient-to-b from-transparent via-transparent to-[var(--color-background)] z-10" })
11811
12074
  ] }),
11812
12075
  /* @__PURE__ */ jsxs56(
11813
- motion6.div,
12076
+ motion5.div,
11814
12077
  {
11815
12078
  className: "relative z-20 container max-w-4xl px-4 text-center space-y-8",
11816
12079
  variants: containerVariants,
@@ -11818,18 +12081,18 @@ function HeroBlock({
11818
12081
  whileInView: "visible",
11819
12082
  viewport: { once: true },
11820
12083
  children: [
11821
- badge && /* @__PURE__ */ jsx93(motion6.div, { variants: itemVariants, className: "flex justify-center", children: /* @__PURE__ */ jsx93(Badge, { variant: "outline", className: "backdrop-blur-md bg-[var(--color-surface)]/30 border-[var(--color-border)] px-4 py-1.5", children: badge }) }),
12084
+ badge && /* @__PURE__ */ jsx93(motion5.div, { variants: itemVariants, className: "flex justify-center", children: /* @__PURE__ */ jsx93(Badge, { variant: "outline", className: "backdrop-blur-md bg-[var(--color-surface)]/30 border-[var(--color-border)] px-4 py-1.5", children: badge }) }),
11822
12085
  /* @__PURE__ */ jsx93(
11823
- motion6.h1,
12086
+ motion5.h1,
11824
12087
  {
11825
12088
  variants: itemVariants,
11826
12089
  className: "text-5xl md:text-7xl font-bold tracking-tight text-[var(--color-text-primary)]",
11827
12090
  children: headline
11828
12091
  }
11829
12092
  ),
11830
- /* @__PURE__ */ jsx93(motion6.div, { variants: itemVariants, children: /* @__PURE__ */ jsx93(Text, { variant: "secondary", className: "text-xl md:text-2xl max-w-2xl mx-auto", children: description }) }),
11831
- children && /* @__PURE__ */ jsx93(motion6.div, { variants: itemVariants, className: "flex justify-center", children }),
11832
- /* @__PURE__ */ jsxs56(motion6.div, { variants: itemVariants, className: "flex flex-col sm:flex-row gap-4 justify-center items-center pt-4", children: [
12093
+ /* @__PURE__ */ jsx93(motion5.div, { variants: itemVariants, children: /* @__PURE__ */ jsx93(Text, { variant: "secondary", className: "text-xl md:text-2xl max-w-2xl mx-auto", children: description }) }),
12094
+ children && /* @__PURE__ */ jsx93(motion5.div, { variants: itemVariants, className: "flex justify-center", children }),
12095
+ /* @__PURE__ */ jsxs56(motion5.div, { variants: itemVariants, className: "flex flex-col sm:flex-row gap-4 justify-center items-center pt-4", children: [
11833
12096
  primaryCta && /* @__PURE__ */ jsxs56(Button, { size: "lg", variant: primaryCta.variant || "default", onClick: primaryCta.onClick, children: [
11834
12097
  primaryCta.label,
11835
12098
  /* @__PURE__ */ jsx93(ArrowRight2, { className: "w-4 h-4 ml-2" })
@@ -13106,7 +13369,8 @@ import { Fragment as Fragment6, jsx as jsx96 } from "react/jsx-runtime";
13106
13369
  var themeTokens = {
13107
13370
  studio: studioTokens,
13108
13371
  terra: terraTokens,
13109
- volt: voltTokens
13372
+ volt: voltTokens,
13373
+ speedboat: speedboatTokens
13110
13374
  };
13111
13375
  var fontFamilies2 = {
13112
13376
  studio: {
@@ -13122,6 +13386,11 @@ var fontFamilies2 = {
13122
13386
  volt: {
13123
13387
  sans: "var(--font-volt-heading)",
13124
13388
  mono: "var(--font-mono)"
13389
+ },
13390
+ speedboat: {
13391
+ heading: "var(--font-montserrat)",
13392
+ body: "var(--font-roboto)",
13393
+ mono: "var(--font-mono)"
13125
13394
  }
13126
13395
  };
13127
13396
  function getThemeVars(theme, mode) {
@@ -13166,6 +13435,16 @@ function getThemeVars(theme, mode) {
13166
13435
  "--color-active": colors?.active || colors?.backgroundTertiary || "#f0f0f0",
13167
13436
  "--color-link-hover": colors?.linkHover || colors?.primary || "#0a0a0a",
13168
13437
  "--color-link-hover-foreground": colors?.linkHoverForeground || colors?.background || "#ffffff",
13438
+ // Component-specific (previously only set in globals.css defaults)
13439
+ "--color-card": colors?.card || colors?.background || "#ffffff",
13440
+ "--color-card-foreground": colors?.cardForeground || colors?.foreground || "#0a0a0a",
13441
+ "--color-popover": colors?.popover || colors?.background || "#ffffff",
13442
+ "--color-popover-foreground": colors?.popoverForeground || colors?.foreground || "#0a0a0a",
13443
+ "--color-muted": colors?.muted || colors?.backgroundSecondary || "#f5f5f5",
13444
+ "--color-muted-foreground": colors?.mutedForeground || colors?.foregroundTertiary || "#737373",
13445
+ "--color-destructive": colors?.destructive || colors?.error || "#ef4444",
13446
+ "--color-destructive-foreground": colors?.destructiveForeground || "#ffffff",
13447
+ "--color-input": colors?.input || colors?.border || "#d4d4d4",
13169
13448
  // Effects - Blur
13170
13449
  "--effect-blur-sm": effects?.blur?.sm || "blur(4px)",
13171
13450
  "--effect-blur-md": effects?.blur?.md || "blur(8px)",
@@ -13204,9 +13483,9 @@ function getThemeVars(theme, mode) {
13204
13483
  "--code-border": mode === "light" ? codeColors.light.border : codeColors.dark.border
13205
13484
  };
13206
13485
  }
13207
- function mergeCustomColorTokens(baseTokens2, customPalette) {
13486
+ function mergeCustomColorTokens(baseTokens, customPalette) {
13208
13487
  return {
13209
- ...baseTokens2,
13488
+ ...baseTokens,
13210
13489
  // Override primary color
13211
13490
  "--color-primary": customPalette.primary,
13212
13491
  "--color-primary-foreground": customPalette.primaryForeground,
@@ -13224,12 +13503,12 @@ function mergeCustomColorTokens(baseTokens2, customPalette) {
13224
13503
  // Override secondary color if provided (advanced mode)
13225
13504
  ...customPalette.secondary && {
13226
13505
  "--color-secondary": customPalette.secondary,
13227
- "--color-secondary-foreground": customPalette.secondaryForeground || baseTokens2["--color-secondary-foreground"]
13506
+ "--color-secondary-foreground": customPalette.secondaryForeground || baseTokens["--color-secondary-foreground"]
13228
13507
  },
13229
13508
  // Override accent color if provided (advanced mode)
13230
13509
  ...customPalette.accent && {
13231
13510
  "--color-accent": customPalette.accent,
13232
- "--color-accent-foreground": customPalette.accentForeground || baseTokens2["--color-accent-foreground"]
13511
+ "--color-accent-foreground": customPalette.accentForeground || baseTokens["--color-accent-foreground"]
13233
13512
  },
13234
13513
  // Apply ALL derived tokens from dependency graph
13235
13514
  // This automatically updates:
@@ -13283,11 +13562,18 @@ function validateThemeTokens(theme, mode) {
13283
13562
  console.log(`[ThemeProvider] \u2713 Theme validation passed for "${theme}" (${mode} mode)`);
13284
13563
  }
13285
13564
  }
13286
- function ThemeProvider({ children }) {
13287
- const { theme, mode } = useThemeStore();
13565
+ function ThemeProvider({ children, defaultTheme, defaultMode }) {
13566
+ const { theme, mode, setTheme, setMode } = useThemeStore();
13288
13567
  const customPalette = useCustomizer((state) => state.customColors?.[theme]?.[mode]);
13289
13568
  const [isTransitioning, setIsTransitioning] = useState18(false);
13290
13569
  const [mounted, setMounted] = useState18(false);
13570
+ useEffect16(() => {
13571
+ if (!defaultTheme && !defaultMode) return;
13572
+ const persisted = typeof window !== "undefined" && localStorage.getItem("ecosystem-theme");
13573
+ if (persisted) return;
13574
+ if (defaultTheme) setTheme(defaultTheme);
13575
+ if (defaultMode) setMode(defaultMode);
13576
+ }, []);
13291
13577
  useEffect16(() => {
13292
13578
  setMounted(true);
13293
13579
  }, []);
@@ -13295,7 +13581,7 @@ function ThemeProvider({ children }) {
13295
13581
  if (!mounted) return;
13296
13582
  setIsTransitioning(true);
13297
13583
  const root = document.documentElement;
13298
- const baseTokens2 = getThemeVars(theme, mode);
13584
+ const baseTokens = getThemeVars(theme, mode);
13299
13585
  console.log("[ThemeProvider] Update:", {
13300
13586
  theme,
13301
13587
  mode,
@@ -13303,7 +13589,7 @@ function ThemeProvider({ children }) {
13303
13589
  customPrimary: customPalette?.primary,
13304
13590
  timestamp: (/* @__PURE__ */ new Date()).toISOString()
13305
13591
  });
13306
- const finalTokens = customPalette ? mergeCustomColorTokens(baseTokens2, customPalette) : baseTokens2;
13592
+ const finalTokens = customPalette ? mergeCustomColorTokens(baseTokens, customPalette) : baseTokens;
13307
13593
  root.classList.add("theme-transitioning");
13308
13594
  Object.entries(finalTokens).forEach(([key, value]) => {
13309
13595
  root.style.setProperty(key, value);