@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.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-
|
|
30
|
-
outline: "border border-input bg-transparent shadow-
|
|
31
|
-
secondary: "bg-black/5 dark:bg-white/10 backdrop-blur-md border border-black/5 dark:border-white/10 text-secondary-foreground shadow-
|
|
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-
|
|
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
|
|
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:
|
|
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:
|
|
2107
|
-
shouldAnimate:
|
|
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
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
|
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-
|
|
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
|
-
}) =>
|
|
3370
|
-
|
|
3371
|
-
|
|
3372
|
-
|
|
3373
|
-
|
|
3374
|
-
|
|
3375
|
-
|
|
3376
|
-
|
|
3377
|
-
|
|
3378
|
-
|
|
3379
|
-
|
|
3380
|
-
|
|
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__ */
|
|
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
|
-
|
|
3435
|
-
|
|
3436
|
-
|
|
3437
|
-
|
|
3438
|
-
|
|
3439
|
-
|
|
3440
|
-
|
|
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
|
-
|
|
3443
|
-
|
|
3444
|
-
|
|
3445
|
-
|
|
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-
|
|
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(
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
-
|
|
7165
|
-
|
|
7166
|
-
|
|
7167
|
-
|
|
7168
|
-
|
|
7169
|
-
|
|
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-
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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-
|
|
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
|
|
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:
|
|
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:
|
|
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:
|
|
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":
|
|
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:
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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(
|
|
11831
|
-
children && /* @__PURE__ */ jsx93(
|
|
11832
|
-
/* @__PURE__ */ jsxs56(
|
|
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(
|
|
13486
|
+
function mergeCustomColorTokens(baseTokens, customPalette) {
|
|
13208
13487
|
return {
|
|
13209
|
-
...
|
|
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 ||
|
|
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 ||
|
|
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
|
|
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(
|
|
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);
|