@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.
- package/.claude/CLAUDE.md +3 -3
- package/LICENSE +21 -0
- package/README.md +3 -4
- package/dist/dates.js +15 -5
- package/dist/dates.js.map +1 -1
- package/dist/dates.mjs +15 -5
- package/dist/dates.mjs.map +1 -1
- package/dist/{fontThemes-Cum0S1DI.d.mts → fontThemes-Dh8mtXES.d.mts} +27 -1
- package/dist/{fontThemes-Cum0S1DI.d.ts → fontThemes-Dh8mtXES.d.ts} +27 -1
- package/dist/forms.js +1 -1
- package/dist/forms.js.map +1 -1
- package/dist/forms.mjs +1 -1
- package/dist/forms.mjs.map +1 -1
- package/dist/{hooks-CobTQpCg.d.mts → hooks-1b8WaQf1.d.mts} +2 -2
- package/dist/{hooks-DHPlUx3T.d.ts → hooks-CKW8vE9H.d.ts} +2 -2
- package/dist/hooks.d.mts +2 -2
- package/dist/hooks.d.ts +2 -2
- package/dist/hooks.js +3 -375
- package/dist/hooks.js.map +1 -1
- package/dist/hooks.mjs +3 -375
- package/dist/hooks.mjs.map +1 -1
- package/dist/index-DscTIrZ2.d.mts +29 -0
- package/dist/index-DscTIrZ2.d.ts +29 -0
- package/dist/index.d.mts +62 -36
- package/dist/index.d.ts +62 -36
- package/dist/index.js +617 -331
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +634 -348
- package/dist/index.mjs.map +1 -1
- package/dist/providers-aJW1AKg6.d.mts +30 -0
- package/dist/providers-qfyBVcPW.d.ts +30 -0
- package/dist/providers.d.mts +2 -1
- package/dist/providers.d.ts +2 -1
- package/dist/providers.js +226 -375
- package/dist/providers.js.map +1 -1
- package/dist/providers.mjs +226 -375
- package/dist/providers.mjs.map +1 -1
- package/dist/tables.js +5 -5
- package/dist/tables.js.map +1 -1
- package/dist/tables.mjs +5 -5
- package/dist/tables.mjs.map +1 -1
- package/dist/tokens.d.mts +165 -3
- package/dist/tokens.d.ts +165 -3
- package/dist/tokens.js +219 -1
- package/dist/tokens.js.map +1 -1
- package/dist/tokens.mjs +217 -1
- package/dist/tokens.mjs.map +1 -1
- package/dist/{utils-xrpHqxXR.d.ts → utils-CIIM7dAC.d.ts} +1 -1
- package/dist/{utils-DlJKRVzQ.d.mts → utils-Cs04sxth.d.mts} +1 -1
- package/dist/utils.d.mts +1 -1
- package/dist/utils.d.ts +1 -1
- package/package.json +22 -10
- package/dist/index-L8R3gyuQ.d.mts +0 -23
- package/dist/index-L8R3gyuQ.d.ts +0 -23
- package/dist/providers-Dv3LFGtJ.d.mts +0 -17
- 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-
|
|
412
|
-
outline: "border border-input bg-transparent shadow-
|
|
413
|
-
secondary: "bg-black/5 dark:bg-white/10 backdrop-blur-md border border-black/5 dark:border-white/10 text-secondary-foreground shadow-
|
|
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-
|
|
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:
|
|
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:
|
|
2489
|
-
shouldAnimate:
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
|
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-
|
|
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
|
-
}) =>
|
|
3718
|
-
|
|
3719
|
-
|
|
3720
|
-
|
|
3721
|
-
|
|
3722
|
-
|
|
3723
|
-
|
|
3724
|
-
|
|
3725
|
-
|
|
3726
|
-
|
|
3727
|
-
|
|
3728
|
-
|
|
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.
|
|
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
|
-
|
|
3783
|
-
|
|
3784
|
-
|
|
3785
|
-
|
|
3786
|
-
|
|
3787
|
-
|
|
3788
|
-
|
|
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
|
-
|
|
3791
|
-
|
|
3792
|
-
|
|
3793
|
-
|
|
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-
|
|
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)(
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
-
|
|
7513
|
-
|
|
7514
|
-
|
|
7515
|
-
|
|
7516
|
-
|
|
7517
|
-
|
|
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-
|
|
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-
|
|
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
|
|
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:
|
|
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:
|
|
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:
|
|
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":
|
|
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:
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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(
|
|
13828
|
+
function mergeCustomColorTokens(baseTokens, customPalette) {
|
|
13550
13829
|
return {
|
|
13551
|
-
...
|
|
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 ||
|
|
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 ||
|
|
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
|
|
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(
|
|
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);
|