@thesage/ui 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/fontThemes-Bwf7_lFg.d.mts +842 -0
  2. package/dist/fontThemes-Bwf7_lFg.d.ts +842 -0
  3. package/dist/hooks-C8PrmIXy.d.mts +225 -0
  4. package/dist/hooks-Ct9RBhg-.d.ts +225 -0
  5. package/dist/hooks.d.mts +3 -0
  6. package/dist/hooks.d.ts +3 -0
  7. package/dist/hooks.js +1342 -0
  8. package/dist/hooks.js.map +1 -0
  9. package/dist/hooks.mjs +1314 -0
  10. package/dist/hooks.mjs.map +1 -0
  11. package/dist/index-CsnncHSm.d.mts +23 -0
  12. package/dist/index-CsnncHSm.d.ts +23 -0
  13. package/dist/index.d.mts +2830 -0
  14. package/dist/index.d.ts +2830 -0
  15. package/dist/index.js +12637 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/index.mjs +12319 -0
  18. package/dist/index.mjs.map +1 -0
  19. package/dist/providers-Dv3LFGtJ.d.mts +17 -0
  20. package/dist/providers-Dv3LFGtJ.d.ts +17 -0
  21. package/dist/providers.d.mts +2 -0
  22. package/dist/providers.d.ts +2 -0
  23. package/dist/providers.js +1944 -0
  24. package/dist/providers.js.map +1 -0
  25. package/dist/providers.mjs +1918 -0
  26. package/dist/providers.mjs.map +1 -0
  27. package/dist/tokens.d.mts +831 -0
  28. package/dist/tokens.d.ts +831 -0
  29. package/dist/tokens.js +2399 -0
  30. package/dist/tokens.js.map +1 -0
  31. package/dist/tokens.mjs +2319 -0
  32. package/dist/tokens.mjs.map +1 -0
  33. package/dist/utils-DlJKRVzQ.d.mts +986 -0
  34. package/dist/utils-xrpHqxXR.d.ts +986 -0
  35. package/dist/utils.d.mts +4 -0
  36. package/dist/utils.d.ts +4 -0
  37. package/dist/utils.js +873 -0
  38. package/dist/utils.js.map +1 -0
  39. package/dist/utils.mjs +805 -0
  40. package/dist/utils.mjs.map +1 -0
  41. package/dist/validation-Bj1ye-v_.d.mts +114 -0
  42. package/dist/validation-Bj1ye-v_.d.ts +114 -0
  43. package/package.json +117 -0
@@ -0,0 +1,831 @@
1
+ export { b as COLOR_MODES, C as ColorMode, a as THEME_NAMES, c as ThemeConfig, T as ThemeName } from './index-CsnncHSm.mjs';
2
+ export { F as FontSize, q as FontTheme, r as FontThemeCategory, n as FontWeight, o as LetterSpacing, L as LineHeight, u as TypeLevel, p as TypePreset, v as TypographyScale, T as TypographyTheme, f as fontFamilies, a as fontLoadingConfig, b as fontSizes, w as fontThemes, c as fontWeights, C as generateScale, A as getAccessibleFontThemes, B as getFontThemeById, x as getFontThemesByCategory, y as getFontThemesByMood, z as getFontThemesForUseCase, i as getFontVariable, k as getResponsiveFontSize, j as getThemeFontVariables, g as letterSpacing, l as lineHeights, h as semanticLetterSpacing, e as semanticLineHeights, s as semanticSizes, d as semanticWeights, t as typePresets, m as typographySystem } from './fontThemes-Bwf7_lFg.mjs';
3
+
4
+ /**
5
+ * Base Design Tokens
6
+ * Shared across all themes (spacing, typography scales, motion)
7
+ */
8
+ declare const baseTokens: {
9
+ /**
10
+ * Spacing scale (based on 4px grid)
11
+ */
12
+ readonly spacing: {
13
+ readonly '0': "0";
14
+ readonly '0.5': "0.125rem";
15
+ readonly '1': "0.25rem";
16
+ readonly '2': "0.5rem";
17
+ readonly '3': "0.75rem";
18
+ readonly '4': "1rem";
19
+ readonly '5': "1.25rem";
20
+ readonly '6': "1.5rem";
21
+ readonly '8': "2rem";
22
+ readonly '10': "2.5rem";
23
+ readonly '12': "3rem";
24
+ readonly '16': "4rem";
25
+ readonly '20': "5rem";
26
+ readonly '24': "6rem";
27
+ readonly '32': "8rem";
28
+ };
29
+ /**
30
+ * Typography scales
31
+ */
32
+ readonly fontSize: {
33
+ readonly xs: "0.75rem";
34
+ readonly sm: "0.875rem";
35
+ readonly base: "1rem";
36
+ readonly lg: "1.125rem";
37
+ readonly xl: "1.25rem";
38
+ readonly '2xl': "1.5rem";
39
+ readonly '3xl': "1.875rem";
40
+ readonly '4xl': "2.25rem";
41
+ readonly '5xl': "3rem";
42
+ readonly '6xl': "3.75rem";
43
+ readonly '7xl': "4.5rem";
44
+ readonly '8xl': "6rem";
45
+ };
46
+ readonly fontWeight: {
47
+ readonly light: "300";
48
+ readonly normal: "400";
49
+ readonly medium: "500";
50
+ readonly semibold: "600";
51
+ readonly bold: "700";
52
+ readonly extrabold: "800";
53
+ readonly black: "900";
54
+ };
55
+ readonly lineHeight: {
56
+ readonly none: "1";
57
+ readonly tight: "1.25";
58
+ readonly snug: "1.375";
59
+ readonly normal: "1.5";
60
+ readonly relaxed: "1.625";
61
+ readonly loose: "2";
62
+ };
63
+ /**
64
+ * Border radius
65
+ */
66
+ readonly borderRadius: {
67
+ readonly none: "0";
68
+ readonly sm: "0.125rem";
69
+ readonly DEFAULT: "0.25rem";
70
+ readonly md: "0.375rem";
71
+ readonly lg: "0.5rem";
72
+ readonly xl: "0.75rem";
73
+ readonly '2xl': "1rem";
74
+ readonly '3xl': "1.5rem";
75
+ readonly full: "9999px";
76
+ };
77
+ /**
78
+ * Motion durations (base values - themes can override)
79
+ */
80
+ readonly duration: {
81
+ readonly instant: "0ms";
82
+ readonly fast: "150ms";
83
+ readonly normal: "300ms";
84
+ readonly slow: "500ms";
85
+ readonly slower: "800ms";
86
+ };
87
+ /**
88
+ * Easing curves (base values - themes can override)
89
+ */
90
+ readonly ease: {
91
+ readonly linear: "linear";
92
+ readonly in: "cubic-bezier(0.4, 0, 1, 1)";
93
+ readonly out: "cubic-bezier(0, 0, 0.2, 1)";
94
+ readonly inOut: "cubic-bezier(0.4, 0, 0.2, 1)";
95
+ };
96
+ /**
97
+ * Z-index scale
98
+ */
99
+ readonly zIndex: {
100
+ readonly auto: "auto";
101
+ readonly '0': "0";
102
+ readonly '10': "10";
103
+ readonly '20': "20";
104
+ readonly '30': "30";
105
+ readonly '40': "40";
106
+ readonly '50': "50";
107
+ readonly dropdown: "1000";
108
+ readonly sticky: "1020";
109
+ readonly fixed: "1030";
110
+ readonly modalBackdrop: "1040";
111
+ readonly modal: "1050";
112
+ readonly popover: "1060";
113
+ readonly tooltip: "1070";
114
+ };
115
+ /**
116
+ * Focus ring configuration
117
+ */
118
+ readonly focus: {
119
+ readonly width: "2px";
120
+ readonly offset: "2px";
121
+ readonly style: "solid";
122
+ };
123
+ };
124
+ type BaseTokens = typeof baseTokens;
125
+ /**
126
+ * Semantic spacing aliases
127
+ * Provides human-readable names matching the README documentation
128
+ */
129
+ declare const spacing: {
130
+ readonly xs: "0.25rem";
131
+ readonly sm: "0.5rem";
132
+ readonly md: "1rem";
133
+ readonly lg: "1.5rem";
134
+ readonly xl: "2rem";
135
+ readonly '2xl': "3rem";
136
+ readonly '3xl': "4rem";
137
+ };
138
+ /**
139
+ * Semantic typography aliases
140
+ */
141
+ declare const typography: {
142
+ readonly fonts: {
143
+ readonly sans: "var(--font-body)";
144
+ readonly serif: "var(--font-heading)";
145
+ readonly mono: "var(--font-mono)";
146
+ };
147
+ readonly sizes: {
148
+ readonly xs: "0.75rem";
149
+ readonly sm: "0.875rem";
150
+ readonly base: "1rem";
151
+ readonly lg: "1.125rem";
152
+ readonly xl: "1.25rem";
153
+ readonly '2xl': "1.5rem";
154
+ readonly '3xl': "1.875rem";
155
+ };
156
+ readonly weights: {
157
+ readonly normal: "400";
158
+ readonly medium: "500";
159
+ readonly semibold: "600";
160
+ readonly bold: "700";
161
+ };
162
+ readonly leading: {
163
+ readonly tight: "1.25";
164
+ readonly normal: "1.5";
165
+ readonly relaxed: "1.625";
166
+ };
167
+ };
168
+ /**
169
+ * Motion configuration
170
+ */
171
+ declare const motion: {
172
+ readonly duration: {
173
+ readonly instant: "0ms";
174
+ readonly fast: "150ms";
175
+ readonly normal: "300ms";
176
+ readonly slow: "500ms";
177
+ readonly slower: "800ms";
178
+ };
179
+ readonly easing: {
180
+ readonly default: "cubic-bezier(0, 0, 0.2, 1)";
181
+ readonly spring: "cubic-bezier(0.16, 1, 0.3, 1)";
182
+ readonly linear: "linear";
183
+ };
184
+ };
185
+
186
+ /**
187
+ * Studio Theme Tokens
188
+ * Professional, polished, balanced design
189
+ * Inspiration: Framer, Vercel, Linear
190
+ */
191
+ declare const studioTokens: {
192
+ readonly light: {
193
+ readonly colors: {
194
+ readonly background: "#ffffff";
195
+ readonly backgroundSecondary: "#fafafa";
196
+ readonly backgroundTertiary: "#f5f5f5";
197
+ readonly foreground: "#0a0a0a";
198
+ readonly foregroundSecondary: "#525252";
199
+ readonly foregroundTertiary: "#a3a3a3";
200
+ readonly primary: "#0a0a0a";
201
+ readonly primaryForeground: "#ffffff";
202
+ readonly secondary: "#f5f5f5";
203
+ readonly secondaryForeground: "#0a0a0a";
204
+ readonly accent: "#0070f3";
205
+ readonly accentForeground: "#ffffff";
206
+ readonly border: "#d4d4d4";
207
+ readonly borderSubtle: "#f5f5f5";
208
+ readonly hover: "#fafafa";
209
+ readonly active: "#f0f0f0";
210
+ readonly linkHover: "#0a0a0a";
211
+ readonly linkHoverForeground: "#ffffff";
212
+ readonly success: "#00a86b";
213
+ readonly successForeground: "#ffffff";
214
+ readonly warning: "#f59e0b";
215
+ readonly warningForeground: "#ffffff";
216
+ readonly error: "#ef4444";
217
+ readonly errorForeground: "#ffffff";
218
+ readonly info: "#0070f3";
219
+ readonly infoForeground: "#ffffff";
220
+ readonly card: "#ffffff";
221
+ readonly cardForeground: "#0a0a0a";
222
+ readonly popover: "#ffffff";
223
+ readonly popoverForeground: "#0a0a0a";
224
+ readonly muted: "#f5f5f5";
225
+ readonly mutedForeground: "#737373";
226
+ readonly destructive: "#ef4444";
227
+ readonly destructiveForeground: "#ffffff";
228
+ readonly input: "#d4d4d4";
229
+ readonly ring: "#0a0a0a";
230
+ readonly surface: "#fafafa";
231
+ readonly glass: "rgba(255, 255, 255, 0.7)";
232
+ readonly glassBorder: "rgba(0, 0, 0, 0.1)";
233
+ };
234
+ readonly effects: {
235
+ readonly blur: {
236
+ readonly sm: "blur(4px)";
237
+ readonly md: "blur(8px)";
238
+ readonly lg: "blur(16px)";
239
+ readonly xl: "blur(24px)";
240
+ };
241
+ readonly shadow: {
242
+ readonly sm: "0 1px 2px 0 rgba(0, 0, 0, 0.05)";
243
+ readonly md: "0 4px 6px -1px rgba(0, 0, 0, 0.1)";
244
+ readonly lg: "0 10px 15px -3px rgba(0, 0, 0, 0.1)";
245
+ readonly xl: "0 20px 25px -5px rgba(0, 0, 0, 0.1)";
246
+ readonly '2xl': "0 25px 50px -12px rgba(0, 0, 0, 0.25)";
247
+ };
248
+ };
249
+ };
250
+ readonly dark: {
251
+ readonly colors: {
252
+ readonly background: "#000000";
253
+ readonly backgroundSecondary: "#171717";
254
+ readonly backgroundTertiary: "#262626";
255
+ readonly foreground: "#fafafa";
256
+ readonly foregroundSecondary: "#a3a3a3";
257
+ readonly foregroundTertiary: "#858585";
258
+ readonly primary: "#ffffff";
259
+ readonly primaryForeground: "#0a0a0a";
260
+ readonly secondary: "#262626";
261
+ readonly secondaryForeground: "#fafafa";
262
+ readonly accent: "#0090ff";
263
+ readonly accentForeground: "#ffffff";
264
+ readonly border: "#404040";
265
+ readonly borderSubtle: "#1a1a1a";
266
+ readonly hover: "#1a1a1a";
267
+ readonly active: "#262626";
268
+ readonly linkHover: "#ffffff";
269
+ readonly linkHoverForeground: "#0a0a0a";
270
+ readonly success: "#10b981";
271
+ readonly successForeground: "#ffffff";
272
+ readonly warning: "#f59e0b";
273
+ readonly warningForeground: "#ffffff";
274
+ readonly error: "#ef4444";
275
+ readonly errorForeground: "#ffffff";
276
+ readonly info: "#0090ff";
277
+ readonly infoForeground: "#ffffff";
278
+ readonly card: "#0a0a0a";
279
+ readonly cardForeground: "#fafafa";
280
+ readonly popover: "#0a0a0a";
281
+ readonly popoverForeground: "#fafafa";
282
+ readonly muted: "#262626";
283
+ readonly mutedForeground: "#a3a3a3";
284
+ readonly destructive: "#ef4444";
285
+ readonly destructiveForeground: "#ffffff";
286
+ readonly input: "#404040";
287
+ readonly ring: "#d4d4d4";
288
+ readonly surface: "#171717";
289
+ readonly glass: "rgba(0, 0, 0, 0.7)";
290
+ readonly glassBorder: "rgba(255, 255, 255, 0.1)";
291
+ };
292
+ readonly effects: {
293
+ readonly blur: {
294
+ readonly sm: "blur(4px)";
295
+ readonly md: "blur(8px)";
296
+ readonly lg: "blur(16px)";
297
+ readonly xl: "blur(24px)";
298
+ };
299
+ readonly shadow: {
300
+ readonly sm: "0 1px 2px 0 rgba(0, 0, 0, 0.3)";
301
+ readonly md: "0 4px 6px -1px rgba(0, 0, 0, 0.5)";
302
+ readonly lg: "0 10px 15px -3px rgba(0, 0, 0, 0.6)";
303
+ readonly xl: "0 20px 25px -5px rgba(0, 0, 0, 0.7)";
304
+ readonly '2xl': "0 25px 50px -12px rgba(0, 0, 0, 0.8)";
305
+ };
306
+ };
307
+ };
308
+ /**
309
+ * Motion personality for Studio theme
310
+ */
311
+ readonly motion: {
312
+ readonly getDuration: (intensity: number) => string;
313
+ readonly ease: {
314
+ readonly default: "cubic-bezier(0.4, 0, 0.2, 1)";
315
+ readonly in: "cubic-bezier(0.4, 0, 1, 1)";
316
+ readonly out: "cubic-bezier(0, 0, 0.2, 1)";
317
+ readonly spring: "cubic-bezier(0.16, 1, 0.3, 1)";
318
+ };
319
+ };
320
+ /**
321
+ * Typography for Studio theme
322
+ */
323
+ readonly typography: {
324
+ readonly heading: {
325
+ readonly fontFamily: "var(--font-geist-sans)";
326
+ readonly fontWeight: "600";
327
+ readonly letterSpacing: "-0.02em";
328
+ };
329
+ readonly body: {
330
+ readonly fontFamily: "var(--font-geist-sans)";
331
+ readonly fontWeight: "400";
332
+ readonly letterSpacing: "0";
333
+ };
334
+ readonly mono: {
335
+ readonly fontFamily: "var(--font-geist-mono)";
336
+ readonly fontWeight: "400";
337
+ readonly letterSpacing: "0";
338
+ };
339
+ };
340
+ };
341
+ type StudioTheme = typeof studioTokens;
342
+
343
+ /**
344
+ * Sage Theme Tokens
345
+ * Calm, organic, feminine/yin design
346
+ * Muted earth tones, flowing animations
347
+ */
348
+ declare const sageTokens: {
349
+ readonly light: {
350
+ readonly colors: {
351
+ readonly background: "#faf8f5";
352
+ readonly backgroundSecondary: "#f5f1eb";
353
+ readonly backgroundTertiary: "#ede8e0";
354
+ readonly foreground: "#2d2823";
355
+ readonly foregroundSecondary: "#5a524a";
356
+ readonly foregroundTertiary: "#8a7f72";
357
+ readonly primary: "#7a9b7f";
358
+ readonly primaryForeground: "#faf8f5";
359
+ readonly primaryHover: "#6a8b6f";
360
+ readonly secondary: "#ede8e0";
361
+ readonly secondaryForeground: "#2d2823";
362
+ readonly accent: "#c17a5f";
363
+ readonly accentForeground: "#faf8f5";
364
+ readonly accentHover: "#b16a4f";
365
+ readonly success: "#6b8e6f";
366
+ readonly successForeground: "#faf8f5";
367
+ readonly warning: "#d4a574";
368
+ readonly warningForeground: "#2d2823";
369
+ readonly error: "#c17a5f";
370
+ readonly errorForeground: "#faf8f5";
371
+ readonly info: "#8b9dc3";
372
+ readonly infoForeground: "#faf8f5";
373
+ readonly border: "#e0d8cf";
374
+ readonly borderSubtle: "#ede8e0";
375
+ readonly hover: "#f5f1eb";
376
+ readonly active: "#ede8e0";
377
+ readonly linkHover: "#7a9b7f";
378
+ readonly linkHoverForeground: "#faf8f5";
379
+ readonly glass: "rgba(250, 248, 245, 0.85)";
380
+ readonly glassBorder: "rgba(122, 155, 127, 0.15)";
381
+ };
382
+ readonly effects: {
383
+ readonly blur: {
384
+ readonly sm: "blur(6px)";
385
+ readonly md: "blur(12px)";
386
+ readonly lg: "blur(20px)";
387
+ readonly xl: "blur(32px)";
388
+ };
389
+ readonly shadow: {
390
+ readonly sm: "0 2px 4px 0 rgba(45, 40, 35, 0.06)";
391
+ readonly md: "0 4px 8px -2px rgba(45, 40, 35, 0.08)";
392
+ readonly lg: "0 8px 16px -4px rgba(45, 40, 35, 0.12)";
393
+ readonly xl: "0 16px 32px -8px rgba(45, 40, 35, 0.16)";
394
+ readonly '2xl': "0 24px 48px -12px rgba(45, 40, 35, 0.20)";
395
+ };
396
+ };
397
+ };
398
+ readonly dark: {
399
+ readonly colors: {
400
+ readonly background: "#1a1614";
401
+ readonly backgroundSecondary: "#252220";
402
+ readonly backgroundTertiary: "#2f2b28";
403
+ readonly foreground: "#f5f1eb";
404
+ readonly foregroundSecondary: "#c7bfb5";
405
+ readonly foregroundTertiary: "#8a7f72";
406
+ readonly primary: "#a8c5ad";
407
+ readonly primaryForeground: "#1a1614";
408
+ readonly primaryHover: "#b8d5bd";
409
+ readonly secondary: "#2f2b28";
410
+ readonly secondaryForeground: "#f5f1eb";
411
+ readonly accent: "#e5a78a";
412
+ readonly accentForeground: "#1a1614";
413
+ readonly accentHover: "#f5b79a";
414
+ readonly success: "#95b89a";
415
+ readonly successForeground: "#1a1614";
416
+ readonly warning: "#e5c59a";
417
+ readonly warningForeground: "#1a1614";
418
+ readonly error: "#e5a78a";
419
+ readonly errorForeground: "#1a1614";
420
+ readonly info: "#a8b5d5";
421
+ readonly infoForeground: "#1a1614";
422
+ readonly border: "#3a3530";
423
+ readonly borderSubtle: "#2f2b28";
424
+ readonly hover: "#252220";
425
+ readonly active: "#2f2b28";
426
+ readonly linkHover: "#a8c5ad";
427
+ readonly linkHoverForeground: "#1a1614";
428
+ readonly glass: "rgba(26, 22, 20, 0.85)";
429
+ readonly glassBorder: "rgba(168, 197, 173, 0.2)";
430
+ };
431
+ readonly effects: {
432
+ readonly blur: {
433
+ readonly sm: "blur(6px)";
434
+ readonly md: "blur(12px)";
435
+ readonly lg: "blur(20px)";
436
+ readonly xl: "blur(32px)";
437
+ };
438
+ readonly shadow: {
439
+ readonly sm: "0 2px 4px 0 rgba(0, 0, 0, 0.3)";
440
+ readonly md: "0 4px 8px -2px rgba(0, 0, 0, 0.4)";
441
+ readonly lg: "0 8px 16px -4px rgba(0, 0, 0, 0.5)";
442
+ readonly xl: "0 16px 32px -8px rgba(0, 0, 0, 0.6)";
443
+ readonly '2xl': "0 24px 48px -12px rgba(0, 0, 0, 0.7)";
444
+ };
445
+ };
446
+ };
447
+ readonly motion: {
448
+ readonly getDuration: (intensity: number) => string;
449
+ readonly ease: {
450
+ readonly default: "cubic-bezier(0.33, 1, 0.68, 1)";
451
+ readonly in: "cubic-bezier(0.4, 0, 1, 1)";
452
+ readonly out: "cubic-bezier(0, 0, 0.2, 1)";
453
+ readonly spring: "cubic-bezier(0.16, 1, 0.3, 1)";
454
+ };
455
+ };
456
+ readonly interactions: {
457
+ readonly hover: {
458
+ readonly overlayColor: "var(--color-interaction-overlay)";
459
+ readonly opacity: "var(--opacity-interaction-hover)";
460
+ };
461
+ readonly active: {
462
+ readonly scale: "var(--scale-interaction-active)";
463
+ };
464
+ readonly focus: {
465
+ readonly ringColor: "var(--color-interaction-focus-ring)";
466
+ readonly ringWidth: "var(--width-interaction-focus-ring)";
467
+ readonly ringOffset: "var(--width-interaction-focus-offset)";
468
+ };
469
+ readonly disabled: {
470
+ readonly opacity: "var(--opacity-interaction-disabled)";
471
+ };
472
+ };
473
+ readonly typography: {
474
+ readonly heading: {
475
+ readonly fontFamily: "var(--font-sage-serif)";
476
+ readonly fontWeight: "600";
477
+ readonly letterSpacing: "-0.01em";
478
+ };
479
+ readonly body: {
480
+ readonly fontFamily: "var(--font-sage-sans)";
481
+ readonly fontWeight: "400";
482
+ readonly letterSpacing: "0";
483
+ };
484
+ readonly mono: {
485
+ readonly fontFamily: "var(--font-sage-mono)";
486
+ readonly fontWeight: "400";
487
+ readonly letterSpacing: "0";
488
+ };
489
+ };
490
+ };
491
+ type SageTheme = typeof sageTokens;
492
+
493
+ /**
494
+ * Volt Theme Tokens
495
+ * Bold, electric, masculine/yang design
496
+ * High-chroma colors, dynamic animations, cyberpunk aesthetic
497
+ */
498
+ declare const voltTokens: {
499
+ readonly light: {
500
+ readonly colors: {
501
+ readonly background: "#ffffff";
502
+ readonly backgroundSecondary: "#f8f9fb";
503
+ readonly backgroundTertiary: "#f0f2f5";
504
+ readonly foreground: "#0a0a0a";
505
+ readonly foregroundSecondary: "#4a4a4a";
506
+ readonly foregroundTertiary: "#8a8a8a";
507
+ readonly primary: "#0066ff";
508
+ readonly primaryForeground: "#ffffff";
509
+ readonly primaryHover: "#0052cc";
510
+ readonly secondary: "#f0f2f5";
511
+ readonly secondaryForeground: "#0a0a0a";
512
+ readonly accent: "#00d9ff";
513
+ readonly accentForeground: "#0a0a0a";
514
+ readonly accentHover: "#00c3e6";
515
+ readonly success: "#00cc66";
516
+ readonly successForeground: "#ffffff";
517
+ readonly warning: "#ffaa00";
518
+ readonly warningForeground: "#0a0a0a";
519
+ readonly error: "#ff3366";
520
+ readonly errorForeground: "#ffffff";
521
+ readonly info: "#3399ff";
522
+ readonly infoForeground: "#ffffff";
523
+ readonly border: "#e0e4ea";
524
+ readonly borderSubtle: "#f0f2f5";
525
+ readonly hover: "#f8f9fb";
526
+ readonly active: "#f0f2f5";
527
+ readonly linkHover: "#0066ff";
528
+ readonly linkHoverForeground: "#ffffff";
529
+ readonly glass: "rgba(255, 255, 255, 0.8)";
530
+ readonly glassBorder: "rgba(0, 102, 255, 0.2)";
531
+ };
532
+ readonly effects: {
533
+ readonly blur: {
534
+ readonly sm: "blur(8px)";
535
+ readonly md: "blur(16px)";
536
+ readonly lg: "blur(32px)";
537
+ readonly xl: "blur(48px)";
538
+ };
539
+ readonly shadow: {
540
+ readonly sm: "0 0 8px rgba(0, 102, 255, 0.15)";
541
+ readonly md: "0 0 16px rgba(0, 102, 255, 0.2)";
542
+ readonly lg: "0 0 24px rgba(0, 102, 255, 0.25)";
543
+ readonly xl: "0 0 32px rgba(0, 102, 255, 0.3)";
544
+ readonly '2xl': "0 0 48px rgba(0, 102, 255, 0.4)";
545
+ };
546
+ };
547
+ };
548
+ readonly dark: {
549
+ readonly colors: {
550
+ readonly background: "#000000";
551
+ readonly backgroundSecondary: "#0a0a0a";
552
+ readonly backgroundTertiary: "#141414";
553
+ readonly foreground: "#ffffff";
554
+ readonly foregroundSecondary: "#b3b3b3";
555
+ readonly foregroundTertiary: "#666666";
556
+ readonly primary: "#0099ff";
557
+ readonly primaryForeground: "#000000";
558
+ readonly primaryHover: "#00aaff";
559
+ readonly secondary: "#141414";
560
+ readonly secondaryForeground: "#ffffff";
561
+ readonly accent: "#00ffff";
562
+ readonly accentForeground: "#000000";
563
+ readonly accentHover: "#33ffff";
564
+ readonly success: "#00ff99";
565
+ readonly successForeground: "#000000";
566
+ readonly warning: "#ffcc00";
567
+ readonly warningForeground: "#000000";
568
+ readonly error: "#ff0066";
569
+ readonly errorForeground: "#ffffff";
570
+ readonly info: "#66ccff";
571
+ readonly infoForeground: "#000000";
572
+ readonly border: "#1a1a1a";
573
+ readonly borderSubtle: "#141414";
574
+ readonly hover: "#0a0a0a";
575
+ readonly active: "#141414";
576
+ readonly linkHover: "#00ffff";
577
+ readonly linkHoverForeground: "#000000";
578
+ readonly glass: "rgba(0, 0, 0, 0.8)";
579
+ readonly glassBorder: "rgba(0, 153, 255, 0.3)";
580
+ };
581
+ readonly effects: {
582
+ readonly blur: {
583
+ readonly sm: "blur(8px)";
584
+ readonly md: "blur(16px)";
585
+ readonly lg: "blur(32px)";
586
+ readonly xl: "blur(48px)";
587
+ };
588
+ readonly shadow: {
589
+ readonly sm: "0 0 12px rgba(0, 153, 255, 0.4)";
590
+ readonly md: "0 0 20px rgba(0, 153, 255, 0.5)";
591
+ readonly lg: "0 0 32px rgba(0, 153, 255, 0.6)";
592
+ readonly xl: "0 0 48px rgba(0, 153, 255, 0.7)";
593
+ readonly '2xl': "0 0 64px rgba(0, 153, 255, 0.8)";
594
+ };
595
+ };
596
+ };
597
+ readonly motion: {
598
+ readonly getDuration: (intensity: number) => string;
599
+ readonly ease: {
600
+ readonly default: "cubic-bezier(0.16, 1, 0.3, 1)";
601
+ readonly in: "cubic-bezier(0.4, 0, 1, 1)";
602
+ readonly out: "cubic-bezier(0, 0, 0.2, 1)";
603
+ readonly spring: "cubic-bezier(0.68, -0.55, 0.27, 1.55)";
604
+ };
605
+ };
606
+ readonly typography: {
607
+ readonly heading: {
608
+ readonly fontFamily: "var(--font-volt-sans)";
609
+ readonly fontWeight: "700";
610
+ readonly letterSpacing: "-0.03em";
611
+ };
612
+ readonly body: {
613
+ readonly fontFamily: "var(--font-volt-sans)";
614
+ readonly fontWeight: "400";
615
+ readonly letterSpacing: "0";
616
+ };
617
+ readonly mono: {
618
+ readonly fontFamily: "var(--font-volt-mono)";
619
+ readonly fontWeight: "400";
620
+ readonly letterSpacing: "0";
621
+ };
622
+ };
623
+ };
624
+ type VoltTheme = typeof voltTokens;
625
+
626
+ /**
627
+ * Syntax Highlighting Tokens
628
+ * Based on VS Code Dark+ theme with light mode variants
629
+ * Includes accessible background and border colors for code blocks
630
+ */
631
+ declare const syntaxColors: {
632
+ readonly light: {
633
+ readonly comment: "#22863a";
634
+ readonly keyword: "#8250df";
635
+ readonly function: "#6639ba";
636
+ readonly string: "#c1592a";
637
+ readonly number: "#0a3069";
638
+ readonly boolean: "#0550ae";
639
+ readonly operator: "#1a1a1a";
640
+ readonly property: "#0550ae";
641
+ readonly className: "#005cc5";
642
+ readonly tag: "#005cc5";
643
+ readonly attribute: "#0550ae";
644
+ readonly variable: "#0550ae";
645
+ readonly punctuation: "#57606a";
646
+ readonly plain: "#1a1a1a";
647
+ };
648
+ readonly dark: {
649
+ readonly comment: "#6A9955";
650
+ readonly keyword: "#C586C0";
651
+ readonly function: "#DCDCAA";
652
+ readonly string: "#CE9178";
653
+ readonly number: "#B5CEA8";
654
+ readonly boolean: "#569CD6";
655
+ readonly operator: "#D4D4D4";
656
+ readonly property: "#9CDCFE";
657
+ readonly className: "#4EC9B0";
658
+ readonly tag: "#4EC9B0";
659
+ readonly attribute: "#9CDCFE";
660
+ readonly variable: "#9CDCFE";
661
+ readonly punctuation: "#808080";
662
+ readonly plain: "#D4D4D4";
663
+ };
664
+ };
665
+ /**
666
+ * Code Block Background and Border Colors
667
+ * Designed for optimal contrast and accessibility (WCAG AA 4.5:1)
668
+ */
669
+ declare const codeColors: {
670
+ readonly light: {
671
+ readonly blockBackground: "#F8F9FA";
672
+ readonly inlineBackground: "#FEF3E7";
673
+ readonly border: "#E1E4E8";
674
+ };
675
+ readonly dark: {
676
+ readonly blockBackground: "#1E1E1E";
677
+ readonly inlineBackground: "#252525";
678
+ readonly border: "#3D3D3D";
679
+ };
680
+ };
681
+ type SyntaxColorScheme = 'light' | 'dark';
682
+ type SyntaxTokenType = keyof typeof syntaxColors.light;
683
+
684
+ /**
685
+ * Curated Color Palette Library
686
+ * Pre-designed, accessible color schemes for quick customization
687
+ */
688
+ interface ColorPalette {
689
+ id: string;
690
+ name: string;
691
+ description: string;
692
+ category: PaletteCategory;
693
+ primary: string;
694
+ secondary: string;
695
+ accent: string;
696
+ harmony?: string;
697
+ rationale?: string;
698
+ bestFor?: string[];
699
+ mood?: string[];
700
+ wcagAA?: boolean;
701
+ wcagAAA?: boolean;
702
+ }
703
+ type PaletteCategory = 'professional' | 'creative' | 'nature' | 'vibrant' | 'minimal' | 'luxury' | 'playful' | 'accessible' | 'custom';
704
+ /**
705
+ * Curated Palette Collection
706
+ */
707
+ declare const colorPalettes: ColorPalette[];
708
+ /**
709
+ * Get palettes by category
710
+ */
711
+ declare function getPalettesByCategory(category: PaletteCategory): ColorPalette[];
712
+ /**
713
+ * Get palettes by mood/tag
714
+ */
715
+ declare function getPalettesByMood(mood: string): ColorPalette[];
716
+ /**
717
+ * Search palettes by use case
718
+ */
719
+ declare function getPalettesForUseCase(useCase: string): ColorPalette[];
720
+ /**
721
+ * Get accessible palettes only
722
+ */
723
+ declare function getAccessiblePalettes(level?: 'AA' | 'AAA'): ColorPalette[];
724
+
725
+ /**
726
+ * Color Transformation Utilities
727
+ * Standalone utilities for the token system (no external dependencies)
728
+ */
729
+ /**
730
+ * Convert hex to RGB
731
+ */
732
+ declare function hexToRgb(hex: string): {
733
+ r: number;
734
+ g: number;
735
+ b: number;
736
+ } | null;
737
+ /**
738
+ * Convert hex to HSL
739
+ */
740
+ declare function hexToHSL(hex: string): {
741
+ h: number;
742
+ s: number;
743
+ l: number;
744
+ };
745
+ /**
746
+ * Convert HSL to hex
747
+ */
748
+ declare function hslToHex(h: number, s: number, l: number): string;
749
+ /**
750
+ * Adjust lightness of a hex color
751
+ */
752
+ declare function adjustLightness(hex: string, percent: number): string;
753
+ /**
754
+ * Adjust saturation of a hex color
755
+ */
756
+ declare function adjustSaturation(hex: string, percent: number): string;
757
+ /**
758
+ * Rotate hue of a hex color
759
+ */
760
+ declare function rotateHue(hex: string, degrees: number): string;
761
+ /**
762
+ * Add opacity to a hex color (returns rgba CSS value)
763
+ */
764
+ declare function adjustOpacity(hex: string, opacity: number): string;
765
+ /**
766
+ * Calculate relative luminance (WCAG formula)
767
+ */
768
+ declare function getLuminance(r: number, g: number, b: number): number;
769
+ /**
770
+ * Calculate contrast ratio between two colors (WCAG formula)
771
+ */
772
+ declare function getContrastRatio(hex1: string, hex2: string): number;
773
+ /**
774
+ * Get optimal foreground color (white or black) for a background
775
+ */
776
+ declare function getOptimalForeground(bgHex: string, whiteHex?: string, blackHex?: string): string;
777
+
778
+ /**
779
+ * Token Dependency Graph
780
+ * Defines which tokens are computed from other tokens for "change once, ripple everywhere"
781
+ */
782
+ type TokenDerivation = {
783
+ source: string;
784
+ transform: (sourceValue: string) => string;
785
+ description: string;
786
+ };
787
+ /**
788
+ * Primary Color Derivations
789
+ * These tokens automatically update when primary color changes
790
+ */
791
+ declare const primaryColorDerivations: Record<string, TokenDerivation>;
792
+ /**
793
+ * Secondary Color Derivations
794
+ * These derive from secondary color
795
+ */
796
+ declare const secondaryColorDerivations: Record<string, TokenDerivation>;
797
+ /**
798
+ * Accent Color Derivations
799
+ * These derive from accent (used for highlights and CTAs)
800
+ */
801
+ declare const accentColorDerivations: Record<string, TokenDerivation>;
802
+ /**
803
+ * Mode-Specific Derivations
804
+ * These need different transforms for light vs dark mode
805
+ */
806
+ declare const modeSpecificDerivations: Record<string, {
807
+ light: TokenDerivation;
808
+ dark: TokenDerivation;
809
+ }>;
810
+ /**
811
+ * Complete dependency graph
812
+ */
813
+ declare const tokenDependencyGraph: {
814
+ primary: Record<string, TokenDerivation>;
815
+ secondary: Record<string, TokenDerivation>;
816
+ accent: Record<string, TokenDerivation>;
817
+ modeSpecific: Record<string, {
818
+ light: TokenDerivation;
819
+ dark: TokenDerivation;
820
+ }>;
821
+ };
822
+ /**
823
+ * Get all tokens that depend on a source token
824
+ */
825
+ declare function getDependentTokens(sourceToken: string): string[];
826
+ /**
827
+ * Compute all derived tokens from a source
828
+ */
829
+ declare function computeDerivedTokens(sourceToken: string, sourceValue: string, mode: 'light' | 'dark'): Record<string, string>;
830
+
831
+ export { type BaseTokens, type ColorPalette, type PaletteCategory, type SageTheme, type StudioTheme, type SyntaxColorScheme, type SyntaxTokenType, type TokenDerivation, type VoltTheme, accentColorDerivations, adjustLightness, adjustOpacity, adjustSaturation, baseTokens, codeColors, colorPalettes, computeDerivedTokens, getAccessiblePalettes, getContrastRatio, getDependentTokens, getLuminance, getOptimalForeground, getPalettesByCategory, getPalettesByMood, getPalettesForUseCase, hexToHSL, hexToRgb, hslToHex, modeSpecificDerivations, motion, primaryColorDerivations, rotateHue, sageTokens, secondaryColorDerivations, spacing, studioTokens, syntaxColors, tokenDependencyGraph, typography, voltTokens };