@yuva-devlab/tokens 0.1.2 → 1.1.0

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 (61) hide show
  1. package/README.md +7 -200
  2. package/dist/index.cjs +23 -1
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.d.cts +16 -0
  5. package/dist/index.d.ts +16 -11
  6. package/dist/index.js +18 -14
  7. package/dist/index.js.map +1 -0
  8. package/dist/preset.css +254 -0
  9. package/dist/root.css +91 -0
  10. package/dist/styles.css +12 -0
  11. package/dist/themes/finai.css +114 -0
  12. package/dist/themes/orchestrai.css +197 -0
  13. package/package.json +25 -17
  14. package/styles/preset.css +254 -0
  15. package/styles/root.css +91 -0
  16. package/styles/styles.css +12 -0
  17. package/styles/themes/finai.css +114 -0
  18. package/styles/themes/orchestrai.css +197 -0
  19. package/.prettierignore +0 -12
  20. package/.turbo/turbo-build.log +0 -18
  21. package/CHANGELOG.md +0 -35
  22. package/dist/breakpoints.css.d.ts +0 -13
  23. package/dist/breakpoints.css.d.ts.map +0 -1
  24. package/dist/colors.css.d.ts +0 -99
  25. package/dist/colors.css.d.ts.map +0 -1
  26. package/dist/index.d.ts.map +0 -1
  27. package/dist/palettes.css.d.ts +0 -109
  28. package/dist/palettes.css.d.ts.map +0 -1
  29. package/dist/radii.css.d.ts +0 -15
  30. package/dist/radii.css.d.ts.map +0 -1
  31. package/dist/shadows.css.d.ts +0 -15
  32. package/dist/shadows.css.d.ts.map +0 -1
  33. package/dist/spacing.css.d.ts +0 -17
  34. package/dist/spacing.css.d.ts.map +0 -1
  35. package/dist/themes.css.d.ts +0 -7
  36. package/dist/themes.css.d.ts.map +0 -1
  37. package/dist/tokens.css +0 -1
  38. package/dist/transitions.css.d.ts +0 -20
  39. package/dist/transitions.css.d.ts.map +0 -1
  40. package/dist/typography.css.d.ts +0 -40
  41. package/dist/typography.css.d.ts.map +0 -1
  42. package/dist/utils/color-generator.d.ts +0 -39
  43. package/dist/utils/color-generator.d.ts.map +0 -1
  44. package/dist/zindex.css.d.ts +0 -16
  45. package/dist/zindex.css.d.ts.map +0 -1
  46. package/eslint.config.js +0 -8
  47. package/prettier.config.js +0 -1
  48. package/src/breakpoints.css.ts +0 -23
  49. package/src/colors.css.ts +0 -73
  50. package/src/index.ts +0 -16
  51. package/src/palettes.css.ts +0 -122
  52. package/src/radii.css.ts +0 -28
  53. package/src/shadows.css.ts +0 -28
  54. package/src/spacing.css.ts +0 -31
  55. package/src/themes.css.ts +0 -181
  56. package/src/transitions.css.ts +0 -38
  57. package/src/typography.css.ts +0 -77
  58. package/src/utils/color-generator.ts +0 -90
  59. package/src/zindex.css.ts +0 -29
  60. package/tsconfig.json +0 -12
  61. package/vite.config.ts +0 -31
@@ -1,122 +0,0 @@
1
- import { createGlobalTheme, createThemeContract } from "@vanilla-extract/css";
2
-
3
- import { generateTonalPalette } from "./utils/color-generator";
4
-
5
- /**
6
- * Seed colors for tonal palette generation
7
- * These are the basis for the entire tonal system.
8
- */
9
- export const SEEDS = {
10
- primary: "#3e6a4d",
11
- secondary: "#516350",
12
- tertiary: "#3b6470",
13
- error: "#ba1a1a",
14
- neutral: "#5e615b",
15
- neutralVariant: "#5d6259",
16
- };
17
-
18
- /**
19
- * Complete tonal palette system with 13 levels per color (0-100)
20
- * These are the foundation colors that semantic tokens map to
21
- */
22
- export const palettes = createThemeContract({
23
- primary: {
24
- 0: null,
25
- 10: null,
26
- 20: null,
27
- 30: null,
28
- 40: null,
29
- 50: null,
30
- 60: null,
31
- 70: null,
32
- 80: null,
33
- 90: null,
34
- 95: null,
35
- 99: null,
36
- 100: null,
37
- },
38
- secondary: {
39
- 0: null,
40
- 10: null,
41
- 20: null,
42
- 30: null,
43
- 40: null,
44
- 50: null,
45
- 60: null,
46
- 70: null,
47
- 80: null,
48
- 90: null,
49
- 95: null,
50
- 99: null,
51
- 100: null,
52
- },
53
- tertiary: {
54
- 0: null,
55
- 10: null,
56
- 20: null,
57
- 30: null,
58
- 40: null,
59
- 50: null,
60
- 60: null,
61
- 70: null,
62
- 80: null,
63
- 90: null,
64
- 95: null,
65
- 99: null,
66
- 100: null,
67
- },
68
- error: {
69
- 0: null,
70
- 10: null,
71
- 20: null,
72
- 30: null,
73
- 40: null,
74
- 50: null,
75
- 60: null,
76
- 70: null,
77
- 80: null,
78
- 90: null,
79
- 95: null,
80
- 99: null,
81
- 100: null,
82
- },
83
- neutral: {
84
- 0: null,
85
- 10: null,
86
- 20: null,
87
- 30: null,
88
- 40: null,
89
- 50: null,
90
- 60: null,
91
- 70: null,
92
- 80: null,
93
- 90: null,
94
- 95: null,
95
- 99: null,
96
- 100: null,
97
- },
98
- neutralVariant: {
99
- 0: null,
100
- 10: null,
101
- 20: null,
102
- 30: null,
103
- 40: null,
104
- 50: null,
105
- 60: null,
106
- 70: null,
107
- 80: null,
108
- 90: null,
109
- 95: null,
110
- 99: null,
111
- 100: null,
112
- },
113
- });
114
-
115
- createGlobalTheme(":root", palettes, {
116
- primary: generateTonalPalette(SEEDS.primary),
117
- secondary: generateTonalPalette(SEEDS.secondary),
118
- tertiary: generateTonalPalette(SEEDS.tertiary),
119
- error: generateTonalPalette(SEEDS.error),
120
- neutral: generateTonalPalette(SEEDS.neutral),
121
- neutralVariant: generateTonalPalette(SEEDS.neutralVariant),
122
- });
package/src/radii.css.ts DELETED
@@ -1,28 +0,0 @@
1
- import { createGlobalTheme, createThemeContract } from "@vanilla-extract/css";
2
-
3
- /**
4
- * Border radius tokens for modern rounded aesthetic.
5
- */
6
- export const radii = createThemeContract({
7
- none: null,
8
- xs: null,
9
- sm: null,
10
- md: null,
11
- lg: null,
12
- xl: null,
13
- "2xl": null,
14
- "3xl": null,
15
- full: null,
16
- });
17
-
18
- createGlobalTheme(":root", radii, {
19
- none: "0",
20
- xs: "2px",
21
- sm: "4px",
22
- md: "8px",
23
- lg: "12px",
24
- xl: "16px",
25
- "2xl": "20px",
26
- "3xl": "24px",
27
- full: "9999px",
28
- });
@@ -1,28 +0,0 @@
1
- import { createGlobalTheme, createThemeContract } from "@vanilla-extract/css";
2
-
3
- /**
4
- * Provides depth and hierarchy through layered shadows.
5
- */
6
- export const shadows = createThemeContract({
7
- none: null,
8
- xs: null,
9
- sm: null,
10
- md: null,
11
- lg: null,
12
- xl: null,
13
- "2xl": null,
14
- inner: null,
15
- focus: null, // Accessible focus indicator
16
- });
17
-
18
- createGlobalTheme(":root", shadows, {
19
- none: "none",
20
- xs: "0 1px 2px 0 rgba(60, 64, 67, 0.15)",
21
- sm: "0 1px 3px 0 rgba(60, 64, 67, 0.15), 0 1px 2px 0 rgba(60, 64, 67, 0.10)",
22
- md: "0 4px 6px -1px rgba(60, 64, 67, 0.15), 0 2px 4px -1px rgba(60, 64, 67, 0.10)",
23
- lg: "0 10px 15px -3px rgba(60, 64, 67, 0.15), 0 4px 6px -2px rgba(60, 64, 67, 0.10)",
24
- xl: "0 20px 25px -5px rgba(60, 64, 67, 0.15), 0 10px 10px -5px rgba(60, 64, 67, 0.10)",
25
- "2xl": "0 25px 50px -12px rgba(60, 64, 67, 0.25)",
26
- inner: "inset 0 2px 4px 0 rgba(60, 64, 67, 0.10)",
27
- focus: "0 0 0 3px rgba(26, 115, 232, 0.2)",
28
- });
@@ -1,31 +0,0 @@
1
- import { createGlobalTheme, createThemeContract } from "@vanilla-extract/css";
2
-
3
- /**
4
- * Spacing tokens using 4px base unit for consistent rhythm.
5
- * Expanded scale for granular control.
6
- */
7
- export const spacing = createThemeContract({
8
- "2xs": null,
9
- xs: null,
10
- sm: null,
11
- md: null,
12
- lg: null,
13
- xl: null,
14
- "2xl": null,
15
- "3xl": null,
16
- "4xl": null,
17
- "5xl": null,
18
- });
19
-
20
- createGlobalTheme(":root", spacing, {
21
- "2xs": "2px",
22
- xs: "4px",
23
- sm: "8px",
24
- md: "12px",
25
- lg: "16px",
26
- xl: "24px",
27
- "2xl": "32px",
28
- "3xl": "48px",
29
- "4xl": "64px",
30
- "5xl": "96px",
31
- });
package/src/themes.css.ts DELETED
@@ -1,181 +0,0 @@
1
- import {
2
- createGlobalTheme,
3
- createTheme,
4
- globalStyle,
5
- } from "@vanilla-extract/css";
6
-
7
- import { colors } from "./colors.css";
8
- import { palettes } from "./palettes.css";
9
- import {
10
- generateSemanticShades,
11
- type SemanticShades,
12
- type TonalPalette,
13
- } from "./utils/color-generator";
14
-
15
- /**
16
- * Semantic Color Mapping
17
- * Instead of hardcoding hex codes, we map semantic roles to specific tones
18
- * in our foundation palettes. This ensures that changing a foundation seed
19
- * updates the entire theme consistently.
20
- */
21
- const mapTones = (
22
- palette: TonalPalette,
23
- mainTone: keyof TonalPalette,
24
- onMainTone: keyof TonalPalette,
25
- containerTone: keyof TonalPalette,
26
- onContainerTone: keyof TonalPalette,
27
- ): SemanticShades => ({
28
- main: palette[mainTone],
29
- onMain: palette[onMainTone],
30
- container: palette[containerTone],
31
- onContainer: palette[onContainerTone],
32
- // Tonal generation for interaction states
33
- // Note: These can also be mapped if we add more tones to our foundation
34
- hover: palette[mainTone === 40 ? 50 : 70], // Dynamic hover
35
- active: palette[mainTone === 40 ? 60 : 60], // Dynamic active
36
- subtle: palette[95],
37
- });
38
-
39
- /**
40
- * ============================================================================
41
- * SEMANTIC COLOR THEMES
42
- * ============================================================================
43
- * Developer-friendly API that maps to palette values
44
- */
45
-
46
- const primaryPalette = mapTones(palettes.primary, 40, 100, 90, 10);
47
- const secondaryPalette = mapTones(palettes.secondary, 40, 100, 90, 10);
48
- const tertiaryPalette = mapTones(palettes.tertiary, 40, 100, 90, 10);
49
- const errorPalette = mapTones(palettes.error, 40, 100, 90, 10);
50
-
51
- // We keep these as generated for now as they are distinct semantic scales
52
- const successPalette = generateSemanticShades("#3e6a4d");
53
- const warningPalette = generateSemanticShades("#815600");
54
- const infoPalette = generateSemanticShades("#006682");
55
-
56
- /**
57
- * Light Theme - Semantic Colors
58
- * Maps semantic tokens to appropriate palette tones globally on :root.
59
- */
60
- createGlobalTheme(":root", colors, {
61
- brand: {
62
- primary: primaryPalette,
63
- secondary: secondaryPalette,
64
- tertiary: tertiaryPalette,
65
- danger: errorPalette,
66
- success: successPalette,
67
- warning: warningPalette,
68
- info: infoPalette,
69
- },
70
-
71
- text: {
72
- primary: palettes.neutral[10],
73
- secondary: palettes.neutralVariant[30],
74
- tertiary: palettes.neutralVariant[50],
75
- disabled: palettes.neutral[80],
76
- onPrimary: palettes.primary[100],
77
- onColor: palettes.primary[100],
78
- inverse: palettes.neutral[95],
79
- },
80
-
81
- bg: {
82
- body: palettes.neutral[99],
83
- surface: palettes.neutral[99],
84
- surfaceHover: palettes.neutral[95],
85
- surfaceActive: palettes.neutral[90],
86
- surfaceRaised: palettes.neutral[100],
87
- surfaceOverlay: palettes.neutral[100],
88
- canvas: palettes.neutral[95],
89
- subtle: palettes.primary[95],
90
- disabled: palettes.neutral[90],
91
- },
92
-
93
- border: {
94
- subtle: palettes.neutralVariant[90],
95
- default: palettes.neutralVariant[50],
96
- strong: palettes.neutralVariant[30],
97
- interactive: palettes.primary[40],
98
- disabled: palettes.neutralVariant[80],
99
- },
100
-
101
- interaction: {
102
- focusRing: `0 0 0 3px ${palettes.primary[90]}`,
103
- overlay: "rgba(0, 0, 0, 0.12)",
104
- },
105
- });
106
-
107
- export const lightTheme = "light-theme";
108
-
109
- /**
110
- * Dark Theme - Semantic Colors
111
- * Maps semantic tokens to appropriate palette tones for dark mode
112
- */
113
- const darkPrimaryPalette = mapTones(palettes.primary, 80, 20, 30, 90);
114
- const darkSecondaryPalette = mapTones(palettes.secondary, 80, 20, 30, 90);
115
- const darkTertiaryPalette = mapTones(palettes.tertiary, 80, 20, 30, 90);
116
- const darkErrorPalette = mapTones(palettes.error, 80, 20, 30, 90);
117
-
118
- const darkSuccessPalette = generateSemanticShades("#3e6a4d", "dark");
119
- const darkWarningPalette = generateSemanticShades("#815600", "dark");
120
- const darkInfoPalette = generateSemanticShades("#006682", "dark");
121
-
122
- export const darkTheme = createTheme(colors, {
123
- brand: {
124
- primary: darkPrimaryPalette,
125
- secondary: darkSecondaryPalette,
126
- tertiary: darkTertiaryPalette,
127
- danger: darkErrorPalette,
128
- success: darkSuccessPalette,
129
- warning: darkWarningPalette,
130
- info: darkInfoPalette,
131
- },
132
-
133
- text: {
134
- primary: palettes.neutral[90],
135
- secondary: palettes.neutralVariant[80],
136
- tertiary: palettes.neutralVariant[60],
137
- disabled: palettes.neutral[30],
138
- onPrimary: palettes.primary[20],
139
- onColor: palettes.primary[10],
140
- inverse: palettes.neutral[10],
141
- },
142
-
143
- bg: {
144
- body: palettes.neutral[10],
145
- surface: palettes.neutral[10],
146
- surfaceHover: palettes.neutral[20],
147
- surfaceActive: palettes.neutral[20],
148
- surfaceRaised: palettes.neutral[20],
149
- surfaceOverlay: palettes.neutral[20],
150
- canvas: palettes.neutral[0],
151
- subtle: palettes.primary[20],
152
- disabled: palettes.neutral[20],
153
- },
154
-
155
- border: {
156
- subtle: palettes.neutralVariant[30],
157
- default: palettes.neutralVariant[60],
158
- strong: palettes.neutralVariant[80],
159
- interactive: palettes.primary[80],
160
- disabled: palettes.neutralVariant[20],
161
- },
162
-
163
- interaction: {
164
- focusRing: `0 0 0 3px ${palettes.primary[40]}`,
165
- overlay: "rgba(255, 255, 255, 0.08)",
166
- },
167
- });
168
-
169
- /**
170
- * Default theme exports
171
- */
172
- export const defaultTheme = lightTheme;
173
-
174
- /**
175
- * Global Styles
176
- * These ensure the core brand experience (like text selection) is consistent.
177
- */
178
- globalStyle("::selection", {
179
- backgroundColor: colors.brand.primary.container,
180
- color: colors.brand.primary.onContainer,
181
- });
@@ -1,38 +0,0 @@
1
- import { createGlobalTheme, createThemeContract } from "@vanilla-extract/css";
2
-
3
- /**
4
- * Transition and animation tokens.
5
- */
6
- export const transitions = createThemeContract({
7
- duration: {
8
- instant: null,
9
- fast: null,
10
- normal: null,
11
- slow: null,
12
- slower: null,
13
- },
14
- easing: {
15
- standard: null, // Deceleration curve
16
- emphasized: null, // emphasized easing
17
- decelerate: null, // Exit animations
18
- accelerate: null, // Enter animations
19
- linear: null,
20
- },
21
- });
22
-
23
- createGlobalTheme(":root", transitions, {
24
- duration: {
25
- instant: "0ms",
26
- fast: "100ms",
27
- normal: "200ms",
28
- slow: "300ms",
29
- slower: "500ms",
30
- },
31
- easing: {
32
- standard: "cubic-bezier(0.4, 0.0, 0.2, 1)", // Deceleration
33
- emphasized: "cubic-bezier(0.2, 0.0, 0, 1)", // emphasized
34
- decelerate: "cubic-bezier(0.0, 0.0, 0.2, 1)", // Exit
35
- accelerate: "cubic-bezier(0.4, 0.0, 1, 1)", // Enter
36
- linear: "linear",
37
- },
38
- });
@@ -1,77 +0,0 @@
1
- import { createGlobalTheme, createThemeContract } from "@vanilla-extract/css";
2
-
3
- /**
4
- * Typography tokens using modern font stack.
5
- * Expanded scale for modern web applications.
6
- */
7
- export const typography = createThemeContract({
8
- fonts: {
9
- sans: null,
10
- mono: null,
11
- display: null,
12
- },
13
- fontSizes: {
14
- xs: null,
15
- sm: null,
16
- md: null,
17
- lg: null,
18
- xl: null,
19
- "2xl": null,
20
- "3xl": null,
21
- "4xl": null,
22
- "5xl": null,
23
- "6xl": null,
24
- },
25
- fontWeights: {
26
- regular: null,
27
- medium: null,
28
- semibold: null,
29
- bold: null,
30
- },
31
- lineHeights: {
32
- tight: null,
33
- normal: null,
34
- relaxed: null,
35
- },
36
- letterSpacing: {
37
- tight: null,
38
- normal: null,
39
- wide: null,
40
- },
41
- });
42
-
43
- createGlobalTheme(":root", typography, {
44
- fonts: {
45
- sans: '"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif',
46
- mono: '"Roboto Mono", "SF Mono", Monaco, "Cascadia Code", "Courier New", monospace',
47
- display: '"Inter", -apple-system, BlinkMacSystemFont, sans-serif',
48
- },
49
- fontSizes: {
50
- xs: "0.75rem", // 12px
51
- sm: "0.875rem", // 14px
52
- md: "1rem", // 16px
53
- lg: "1.125rem", // 18px
54
- xl: "1.25rem", // 20px
55
- "2xl": "1.5rem", // 24px
56
- "3xl": "1.875rem", // 30px
57
- "4xl": "2.25rem", // 36px
58
- "5xl": "3rem", // 48px
59
- "6xl": "3.75rem", // 60px
60
- },
61
- fontWeights: {
62
- regular: "400",
63
- medium: "500",
64
- semibold: "600",
65
- bold: "700",
66
- },
67
- lineHeights: {
68
- tight: "1.25",
69
- normal: "1.5",
70
- relaxed: "1.75",
71
- },
72
- letterSpacing: {
73
- tight: "-0.01em",
74
- normal: "0",
75
- wide: "0.025em",
76
- },
77
- });
@@ -1,90 +0,0 @@
1
- import {
2
- generate,
3
- hexToRgb,
4
- rgbToHsl,
5
- hslToRgb,
6
- rgbToHex,
7
- } from "@yuva-devlab/colors";
8
-
9
- export interface TonalPalette {
10
- 0: string;
11
- 10: string;
12
- 20: string;
13
- 30: string;
14
- 40: string;
15
- 50: string;
16
- 60: string;
17
- 70: string;
18
- 80: string;
19
- 90: string;
20
- 95: string;
21
- 99: string;
22
- 100: string;
23
- }
24
-
25
- export interface SemanticShades {
26
- main: string;
27
- onMain: string;
28
- container: string;
29
- onContainer: string;
30
- hover: string;
31
- active: string;
32
- subtle: string;
33
- }
34
-
35
- /**
36
- * Generates semantic shades (main, hover, active, subtle) from a single seed hex color.
37
- *
38
- * Mapping logic based on @yuva-devlab/colors LIGHTNESS_MAP:
39
- * - main: Index 5 (Primary)
40
- * - hover: Index 6 (Darker)
41
- * - active: Index 7 (Even darker)
42
- * - subtle: Index 0 (Very light)
43
- */
44
- export const generateSemanticShades = (
45
- hex: string,
46
- theme: "light" | "dark" = "light",
47
- overrides?: Partial<Omit<SemanticShades, "hover" | "active" | "subtle">>,
48
- ): SemanticShades => {
49
- const palette = generate(hex, { theme });
50
-
51
- // Fallback generation based on standard tonal maps
52
- const base = {
53
- main: theme === "light" ? palette[5] : palette[5],
54
- onMain: theme === "light" ? "#ffffff" : "#000000",
55
- container: theme === "light" ? palette[1] : palette[1],
56
- onContainer: theme === "light" ? palette[9] : palette[9],
57
- hover: theme === "light" ? palette[6] : palette[6],
58
- active: theme === "light" ? palette[7] : palette[7],
59
- subtle: palette[0],
60
- };
61
-
62
- return {
63
- ...base,
64
- ...overrides,
65
- };
66
- };
67
-
68
- /**
69
- * Generates a full MD3-compatible 13-shade tonal palette (0-100) from a seed color.
70
- */
71
- export const generateTonalPalette = (hex: string): TonalPalette => {
72
- const tones = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 95, 99, 100] as const;
73
- const rgb = hexToRgb(hex);
74
- const hsl = rgbToHsl(rgb);
75
-
76
- const palette: Record<number, string> = {};
77
-
78
- tones.forEach((tone) => {
79
- // MD3 Tones are essentially lightness values
80
- const newHsl = {
81
- h: hsl.h,
82
- s: hsl.s,
83
- l: tone,
84
- };
85
-
86
- palette[tone] = rgbToHex(hslToRgb(newHsl));
87
- });
88
-
89
- return palette as unknown as TonalPalette;
90
- };
package/src/zindex.css.ts DELETED
@@ -1,29 +0,0 @@
1
- import { createGlobalTheme, createThemeContract } from "@vanilla-extract/css";
2
-
3
- /**
4
- * Z-index layering system for predictable stacking.
5
- * Semantic names for common UI layers.
6
- */
7
- export const zIndex = createThemeContract({
8
- base: null,
9
- dropdown: null,
10
- sticky: null,
11
- fixed: null,
12
- overlay: null,
13
- modal: null,
14
- popover: null,
15
- tooltip: null,
16
- toast: null,
17
- });
18
-
19
- createGlobalTheme(":root", zIndex, {
20
- base: "0",
21
- dropdown: "1000",
22
- sticky: "1100",
23
- fixed: "1200",
24
- overlay: "1300",
25
- modal: "1400",
26
- popover: "1500",
27
- tooltip: "1600",
28
- toast: "1700",
29
- });
package/tsconfig.json DELETED
@@ -1,12 +0,0 @@
1
- {
2
- "extends": "@yuva-devlab/typescript-config/base.json",
3
- "compilerOptions": {
4
- "outDir": "./dist",
5
- "rootDir": "./src",
6
- "declaration": true,
7
- "declarationMap": true,
8
- "types": ["vite/client"]
9
- },
10
- "include": ["src"],
11
- "exclude": ["node_modules", "dist"]
12
- }
package/vite.config.ts DELETED
@@ -1,31 +0,0 @@
1
- import { resolve } from "path";
2
-
3
- import { vanillaExtractPlugin } from "@vanilla-extract/vite-plugin";
4
- import { defineConfig } from "vite";
5
- import dts from "vite-plugin-dts";
6
-
7
- export default defineConfig({
8
- plugins: [
9
- vanillaExtractPlugin(),
10
- dts({
11
- include: ["src/**/*.ts"],
12
- exclude: ["src/**/*.test.ts"],
13
- insertTypesEntry: true,
14
- }),
15
- ],
16
- build: {
17
- lib: {
18
- entry: resolve(__dirname, "src/index.ts"),
19
- name: "YuvaDevlabTokens",
20
- formats: ["es", "cjs"],
21
- fileName: (format) => `index.${format === "es" ? "js" : "cjs"}`,
22
- },
23
- rollupOptions: {
24
- external: ["@vanilla-extract/css"],
25
- output: {
26
- preserveModules: false,
27
- exports: "named",
28
- },
29
- },
30
- },
31
- });