phaser-wind 0.1.0 → 0.2.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 (44) hide show
  1. package/README.md +243 -10
  2. package/dist/color/color-picker.d.ts +12 -2
  3. package/dist/color/color-picker.d.ts.map +1 -1
  4. package/dist/color/color-picker.js +59 -2
  5. package/dist/color/color-picker.js.map +1 -1
  6. package/dist/color/color-picker.spec.js +19 -0
  7. package/dist/color/color-picker.spec.js.map +1 -1
  8. package/dist/examples/nested-theme-example.d.ts +28 -0
  9. package/dist/examples/nested-theme-example.d.ts.map +1 -0
  10. package/dist/examples/nested-theme-example.js +313 -0
  11. package/dist/examples/nested-theme-example.js.map +1 -0
  12. package/dist/examples/usage-example.d.ts +17 -0
  13. package/dist/examples/usage-example.d.ts.map +1 -0
  14. package/dist/examples/usage-example.js +158 -0
  15. package/dist/examples/usage-example.js.map +1 -0
  16. package/dist/font/font-picker.d.ts +93 -0
  17. package/dist/font/font-picker.d.ts.map +1 -0
  18. package/dist/font/font-picker.js +212 -0
  19. package/dist/font/font-picker.js.map +1 -0
  20. package/dist/font/index.d.ts +1 -0
  21. package/dist/font/index.d.ts.map +1 -1
  22. package/dist/font/index.js +1 -0
  23. package/dist/font/index.js.map +1 -1
  24. package/dist/index.d.ts +1 -0
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +1 -0
  27. package/dist/index.js.map +1 -1
  28. package/dist/theme/index.d.ts +3 -0
  29. package/dist/theme/index.d.ts.map +1 -0
  30. package/dist/theme/index.js +3 -0
  31. package/dist/theme/index.js.map +1 -0
  32. package/dist/theme/theme-config.d.ts +162 -0
  33. package/dist/theme/theme-config.d.ts.map +1 -0
  34. package/dist/theme/theme-config.js +196 -0
  35. package/dist/theme/theme-config.js.map +1 -0
  36. package/dist/theme/theme-manager.d.ts +96 -0
  37. package/dist/theme/theme-manager.d.ts.map +1 -0
  38. package/dist/theme/theme-manager.js +171 -0
  39. package/dist/theme/theme-manager.js.map +1 -0
  40. package/dist/theme/type.d.ts +1 -0
  41. package/dist/theme/type.d.ts.map +1 -0
  42. package/dist/theme/type.js +2 -0
  43. package/dist/theme/type.js.map +1 -0
  44. package/package.json +1 -1
@@ -0,0 +1,212 @@
1
+ /* eslint-disable no-magic-numbers */
2
+ import { ThemeManager } from '../theme/theme-manager';
3
+ /**
4
+ * Font picker for accessing theme fonts and font families
5
+ */
6
+ export class FontPicker {
7
+ /**
8
+ * Get font family from theme
9
+ * @param key - Font key (e.g., 'primary', 'display') or full path (e.g., 'fonts.primary')
10
+ * @returns Font family string
11
+ */
12
+ static family(key) {
13
+ // Check if it's a theme token (with or without fonts. prefix)
14
+ const fontPath = key.includes('.') ? key : `fonts.${key}`;
15
+ if (ThemeManager.hasToken(fontPath)) {
16
+ const themeValue = ThemeManager.getToken(fontPath);
17
+ if (themeValue && typeof themeValue === 'string') {
18
+ return themeValue;
19
+ }
20
+ }
21
+ // Fallback: check if it's a direct theme token (backwards compatibility)
22
+ if (ThemeManager.hasToken(key)) {
23
+ const themeValue = ThemeManager.getToken(key);
24
+ if (themeValue && typeof themeValue === 'string') {
25
+ return themeValue;
26
+ }
27
+ }
28
+ // Fallback to the key itself if not found in theme
29
+ return key;
30
+ }
31
+ /**
32
+ * Get all available font tokens from current theme
33
+ * @returns Array of font token keys
34
+ */
35
+ static getAvailableFonts() {
36
+ const theme = ThemeManager.getCurrentTheme();
37
+ if (theme.fonts && typeof theme.fonts === 'object') {
38
+ return Object.keys(theme.fonts);
39
+ }
40
+ return [];
41
+ }
42
+ }
43
+ /**
44
+ * Spacing picker for accessing theme spacing values
45
+ */
46
+ export class SpacingPicker {
47
+ /**
48
+ * Get spacing value in pixels from theme
49
+ * @param key - Spacing key (e.g., 'sm', 'lg') or full path (e.g., 'spacing.md')
50
+ * @returns Spacing value in pixels
51
+ */
52
+ static px(key) {
53
+ // Check if it's a theme token (with or without spacing. prefix)
54
+ const spacingPath = key.includes('.') ? key : `spacing.${key}`;
55
+ if (ThemeManager.hasToken(spacingPath)) {
56
+ const themeValue = ThemeManager.getToken(spacingPath);
57
+ if (themeValue && typeof themeValue === 'number') {
58
+ return themeValue;
59
+ }
60
+ }
61
+ // Fallback: check if it's a direct theme token (backwards compatibility)
62
+ if (ThemeManager.hasToken(key)) {
63
+ const themeValue = ThemeManager.getToken(key);
64
+ if (themeValue && typeof themeValue === 'number') {
65
+ return themeValue;
66
+ }
67
+ }
68
+ // Default fallback values
69
+ const defaultSpacing = {
70
+ xs: 4,
71
+ sm: 8,
72
+ md: 16,
73
+ lg: 24,
74
+ xl: 32,
75
+ '2xl': 48,
76
+ '3xl': 64,
77
+ '4xl': 96,
78
+ };
79
+ return defaultSpacing[key] ?? 16; // Default to 16px
80
+ }
81
+ /**
82
+ * Get all available spacing tokens from current theme
83
+ * @returns Array of spacing token keys
84
+ */
85
+ static getAvailableSpacing() {
86
+ const theme = ThemeManager.getCurrentTheme();
87
+ if (theme.spacing && typeof theme.spacing === 'object') {
88
+ return Object.keys(theme.spacing);
89
+ }
90
+ return [];
91
+ }
92
+ }
93
+ /**
94
+ * Typography picker for accessing complete typography styles from theme
95
+ */
96
+ export class TypographyPicker {
97
+ /**
98
+ * Get complete typography style from theme
99
+ * @param key - Typography key (e.g., 'heading', 'body') or full path
100
+ * @returns Typography style object
101
+ */
102
+ static style(key) {
103
+ // Check if it's a theme token (with or without typography. prefix)
104
+ const typographyPath = key.includes('.') ? key : `typography.${key}`;
105
+ if (ThemeManager.hasToken(typographyPath)) {
106
+ const themeValue = ThemeManager.getToken(typographyPath);
107
+ if (themeValue && typeof themeValue === 'object') {
108
+ // Resolve any theme references in the typography object
109
+ const resolved = this.resolveTypographyReferences(themeValue);
110
+ return resolved;
111
+ }
112
+ }
113
+ // Fallback: check if it's a direct theme token
114
+ if (ThemeManager.hasToken(key)) {
115
+ const themeValue = ThemeManager.getToken(key);
116
+ if (themeValue && typeof themeValue === 'object') {
117
+ const resolved = this.resolveTypographyReferences(themeValue);
118
+ return resolved;
119
+ }
120
+ }
121
+ // Return empty object if not found
122
+ return {};
123
+ }
124
+ /**
125
+ * Get Phaser-compatible text style from typography token
126
+ * @param key - Typography key
127
+ * @returns Object compatible with Phaser text styles
128
+ */
129
+ static phaserStyle(key) {
130
+ const style = this.style(key);
131
+ const result = {
132
+ fontStyle: style.fontWeight && Number(style.fontWeight) >= 600 ? 'bold' : 'normal',
133
+ };
134
+ if (style.fontSize) {
135
+ result.fontSize = style.fontSize;
136
+ }
137
+ if (style.fontFamily) {
138
+ result.fontFamily = style.fontFamily;
139
+ }
140
+ return result;
141
+ }
142
+ /**
143
+ * Get all available typography tokens from current theme
144
+ * @returns Array of typography token keys
145
+ */
146
+ static getAvailableTypography() {
147
+ const theme = ThemeManager.getCurrentTheme();
148
+ if (theme.typography && typeof theme.typography === 'object') {
149
+ return Object.keys(theme.typography);
150
+ }
151
+ return [];
152
+ }
153
+ /**
154
+ * Resolve theme references in typography objects
155
+ * @param typographyObject - Typography style object
156
+ * @returns Resolved typography object
157
+ */
158
+ static resolveTypographyReferences(typographyObject) {
159
+ const resolved = { ...typographyObject };
160
+ // Resolve fontSize if it's a theme reference
161
+ if (resolved['fontSize'] && typeof resolved['fontSize'] === 'string') {
162
+ if (resolved['fontSize'].includes('.')) {
163
+ resolved['fontSize'] = ThemeManager.resolveToken(resolved['fontSize']);
164
+ }
165
+ }
166
+ // Resolve fontFamily if it's a theme reference
167
+ if (resolved['fontFamily'] && typeof resolved['fontFamily'] === 'string') {
168
+ if (resolved['fontFamily'].includes('.')) {
169
+ resolved['fontFamily'] = ThemeManager.resolveToken(resolved['fontFamily']);
170
+ }
171
+ }
172
+ return resolved;
173
+ }
174
+ }
175
+ /**
176
+ * Effect picker for accessing theme effects like shadows
177
+ */
178
+ export class EffectPicker {
179
+ /**
180
+ * Get effect configuration from theme
181
+ * @param key - Effect key (e.g., 'shadow-md') or full path
182
+ * @returns Effect configuration object
183
+ */
184
+ static config(key) {
185
+ // Check if it's a theme token (with or without effects. prefix)
186
+ const effectPath = key.includes('.') ? key : `effects.${key}`;
187
+ if (ThemeManager.hasToken(effectPath)) {
188
+ const themeValue = ThemeManager.getToken(effectPath);
189
+ if (themeValue && typeof themeValue === 'object') {
190
+ // Resolve color references
191
+ const resolved = { ...themeValue };
192
+ if ('color' in resolved && typeof resolved.color === 'string') {
193
+ resolved.color = ThemeManager.resolveToken(resolved.color);
194
+ }
195
+ return resolved;
196
+ }
197
+ }
198
+ return {};
199
+ }
200
+ /**
201
+ * Get all available effect tokens from current theme
202
+ * @returns Array of effect token keys
203
+ */
204
+ static getAvailableEffects() {
205
+ const theme = ThemeManager.getCurrentTheme();
206
+ if (theme.effects && typeof theme.effects === 'object') {
207
+ return Object.keys(theme.effects);
208
+ }
209
+ return [];
210
+ }
211
+ }
212
+ //# sourceMappingURL=font-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"font-picker.js","sourceRoot":"","sources":["../../src/font/font-picker.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
+ export * from './font-picker';
1
2
  export * from './font-size-picker';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/font/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/font/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC"}
@@ -1,2 +1,3 @@
1
+ export * from './font-picker';
1
2
  export * from './font-size-picker';
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/font/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/font/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from './color';
2
2
  export * from './font';
3
+ export * from './theme';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from './color';
2
2
  export * from './font';
3
+ export * from './theme';
3
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './theme-config';
2
+ export * from './theme-manager';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './theme-config';
2
+ export * from './theme-manager';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,162 @@
1
+ import type { ColorToken } from '../color/color-picker';
2
+ import type { FontSizeKey } from '../font/font-size-picker';
3
+ /**
4
+ * Font configuration structure
5
+ */
6
+ export type FontConfig = {
7
+ [key: string]: string;
8
+ };
9
+ /**
10
+ * Color configuration structure
11
+ */
12
+ export type ColorConfig = {
13
+ [key: string]: ColorToken | string;
14
+ };
15
+ /**
16
+ * Spacing configuration structure (following Tailwind spacing scale)
17
+ */
18
+ export type SpacingConfig = {
19
+ [key: string]: number;
20
+ };
21
+ /**
22
+ * Typography configuration structure
23
+ */
24
+ export type TypographyConfig = {
25
+ [key: string]: {
26
+ fontSize: FontSizeKey | string;
27
+ fontFamily?: string;
28
+ fontWeight?: number | string;
29
+ lineHeight?: number | string;
30
+ letterSpacing?: number | string;
31
+ };
32
+ };
33
+ /**
34
+ * Shadow/Effect configuration structure
35
+ */
36
+ export type EffectConfig = {
37
+ [key: string]: {
38
+ blur?: number;
39
+ offsetX?: number;
40
+ offsetY?: number;
41
+ color?: ColorToken | string;
42
+ alpha?: number;
43
+ };
44
+ };
45
+ /**
46
+ * Base theme configuration structure
47
+ * Supports nested objects for organized design tokens
48
+ */
49
+ export type BaseThemeConfig = {
50
+ fonts?: FontConfig;
51
+ colors?: ColorConfig;
52
+ spacing?: SpacingConfig;
53
+ typography?: TypographyConfig;
54
+ effects?: EffectConfig;
55
+ [key: string]: unknown;
56
+ };
57
+ /**
58
+ * Default theme structure following design system best practices
59
+ */
60
+ export type DefaultThemeStructure = {
61
+ fonts: {
62
+ primary: string;
63
+ secondary: string;
64
+ monospace: string;
65
+ display: string;
66
+ };
67
+ colors: {
68
+ primary: ColorToken;
69
+ secondary: ColorToken;
70
+ accent: ColorToken;
71
+ success: ColorToken;
72
+ warning: ColorToken;
73
+ error: ColorToken;
74
+ info: ColorToken;
75
+ background: ColorToken;
76
+ 'background-secondary': ColorToken;
77
+ 'background-panel': ColorToken;
78
+ 'background-modal': ColorToken;
79
+ text: ColorToken;
80
+ 'text-secondary': ColorToken;
81
+ 'text-muted': ColorToken;
82
+ 'text-inverse': ColorToken;
83
+ border: ColorToken;
84
+ 'border-light': ColorToken;
85
+ 'border-focus': ColorToken;
86
+ 'button-primary': ColorToken;
87
+ 'button-secondary': ColorToken;
88
+ 'button-danger': ColorToken;
89
+ shadow: ColorToken;
90
+ overlay: ColorToken;
91
+ };
92
+ spacing: {
93
+ xs: number;
94
+ sm: number;
95
+ md: number;
96
+ lg: number;
97
+ xl: number;
98
+ '2xl': number;
99
+ '3xl': number;
100
+ '4xl': number;
101
+ };
102
+ typography: {
103
+ heading: {
104
+ fontSize: FontSizeKey;
105
+ fontFamily: string;
106
+ fontWeight: number;
107
+ lineHeight: number;
108
+ };
109
+ 'heading-large': {
110
+ fontSize: FontSizeKey;
111
+ fontFamily: string;
112
+ fontWeight: number;
113
+ lineHeight: number;
114
+ };
115
+ body: {
116
+ fontSize: FontSizeKey;
117
+ fontFamily: string;
118
+ fontWeight: number;
119
+ lineHeight: number;
120
+ };
121
+ caption: {
122
+ fontSize: FontSizeKey;
123
+ fontFamily: string;
124
+ fontWeight: number;
125
+ lineHeight: number;
126
+ };
127
+ };
128
+ effects: {
129
+ 'shadow-sm': {
130
+ blur: number;
131
+ offsetY: number;
132
+ color: string;
133
+ alpha: number;
134
+ };
135
+ 'shadow-md': {
136
+ blur: number;
137
+ offsetY: number;
138
+ color: string;
139
+ alpha: number;
140
+ };
141
+ 'shadow-lg': {
142
+ blur: number;
143
+ offsetY: number;
144
+ color: string;
145
+ alpha: number;
146
+ };
147
+ };
148
+ };
149
+ /**
150
+ * Example theme configurations with structured design tokens
151
+ */
152
+ export declare const defaultLightTheme: DefaultThemeStructure;
153
+ export declare const defaultDarkTheme: DefaultThemeStructure;
154
+ /**
155
+ * Type helper to create strongly-typed custom themes
156
+ */
157
+ export type CreateTheme<T extends BaseThemeConfig> = T;
158
+ /**
159
+ * Type helper to extract theme token keys
160
+ */
161
+ export type ThemeTokenKeys<T extends BaseThemeConfig> = keyof T;
162
+ //# sourceMappingURL=theme-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-config.d.ts","sourceRoot":"","sources":["../../src/theme/theme-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,196 @@
1
+ /**
2
+ * Example theme configurations with structured design tokens
3
+ */
4
+ export const defaultLightTheme = {
5
+ fonts: {
6
+ primary: 'Inter, system-ui, sans-serif',
7
+ secondary: 'Roboto, Arial, sans-serif',
8
+ monospace: 'Fira Code, Consolas, monospace',
9
+ display: 'Poppins, Inter, sans-serif',
10
+ },
11
+ colors: {
12
+ // Primary colors
13
+ primary: 'blue-600',
14
+ secondary: 'gray-600',
15
+ accent: 'purple-500',
16
+ // Semantic colors
17
+ success: 'green-500',
18
+ warning: 'yellow-500',
19
+ error: 'red-500',
20
+ info: 'blue-400',
21
+ // Background colors
22
+ background: 'white',
23
+ 'background-secondary': 'gray-50',
24
+ 'background-panel': 'gray-100',
25
+ 'background-modal': 'white',
26
+ // Text colors
27
+ text: 'gray-900',
28
+ 'text-secondary': 'gray-700',
29
+ 'text-muted': 'gray-500',
30
+ 'text-inverse': 'white',
31
+ // Border colors
32
+ border: 'gray-300',
33
+ 'border-light': 'gray-200',
34
+ 'border-focus': 'blue-500',
35
+ // Button variants
36
+ 'button-primary': 'blue-600',
37
+ 'button-secondary': 'gray-600',
38
+ 'button-danger': 'red-600',
39
+ // UI elements
40
+ shadow: 'black',
41
+ overlay: 'black',
42
+ },
43
+ spacing: {
44
+ xs: 4,
45
+ sm: 8,
46
+ md: 16,
47
+ lg: 24,
48
+ xl: 32,
49
+ '2xl': 48,
50
+ '3xl': 64,
51
+ '4xl': 96,
52
+ },
53
+ typography: {
54
+ heading: {
55
+ fontSize: '2xl',
56
+ fontFamily: 'fonts.display',
57
+ fontWeight: 600,
58
+ lineHeight: 1.2,
59
+ },
60
+ 'heading-large': {
61
+ fontSize: '4xl',
62
+ fontFamily: 'fonts.display',
63
+ fontWeight: 700,
64
+ lineHeight: 1.1,
65
+ },
66
+ body: {
67
+ fontSize: 'md',
68
+ fontFamily: 'fonts.primary',
69
+ fontWeight: 400,
70
+ lineHeight: 1.5,
71
+ },
72
+ caption: {
73
+ fontSize: 'sm',
74
+ fontFamily: 'fonts.primary',
75
+ fontWeight: 400,
76
+ lineHeight: 1.4,
77
+ },
78
+ },
79
+ effects: {
80
+ 'shadow-sm': {
81
+ blur: 2,
82
+ offsetY: 1,
83
+ color: 'colors.shadow',
84
+ alpha: 0.05,
85
+ },
86
+ 'shadow-md': {
87
+ blur: 4,
88
+ offsetY: 2,
89
+ color: 'colors.shadow',
90
+ alpha: 0.1,
91
+ },
92
+ 'shadow-lg': {
93
+ blur: 8,
94
+ offsetY: 4,
95
+ color: 'colors.shadow',
96
+ alpha: 0.1,
97
+ },
98
+ },
99
+ };
100
+ export const defaultDarkTheme = {
101
+ fonts: {
102
+ primary: 'Inter, system-ui, sans-serif',
103
+ secondary: 'Roboto, Arial, sans-serif',
104
+ monospace: 'Fira Code, Consolas, monospace',
105
+ display: 'Poppins, Inter, sans-serif',
106
+ },
107
+ colors: {
108
+ // Primary colors
109
+ primary: 'blue-400',
110
+ secondary: 'gray-400',
111
+ accent: 'purple-400',
112
+ // Semantic colors
113
+ success: 'green-400',
114
+ warning: 'yellow-400',
115
+ error: 'red-400',
116
+ info: 'blue-300',
117
+ // Background colors
118
+ background: 'gray-900',
119
+ 'background-secondary': 'gray-800',
120
+ 'background-panel': 'gray-700',
121
+ 'background-modal': 'gray-800',
122
+ // Text colors
123
+ text: 'white',
124
+ 'text-secondary': 'gray-300',
125
+ 'text-muted': 'gray-400',
126
+ 'text-inverse': 'gray-900',
127
+ // Border colors
128
+ border: 'gray-600',
129
+ 'border-light': 'gray-700',
130
+ 'border-focus': 'blue-400',
131
+ // Button variants
132
+ 'button-primary': 'blue-500',
133
+ 'button-secondary': 'gray-500',
134
+ 'button-danger': 'red-500',
135
+ // UI elements
136
+ shadow: 'black',
137
+ overlay: 'black',
138
+ },
139
+ spacing: {
140
+ xs: 4,
141
+ sm: 8,
142
+ md: 16,
143
+ lg: 24,
144
+ xl: 32,
145
+ '2xl': 48,
146
+ '3xl': 64,
147
+ '4xl': 96,
148
+ },
149
+ typography: {
150
+ heading: {
151
+ fontSize: '2xl',
152
+ fontFamily: 'fonts.display',
153
+ fontWeight: 600,
154
+ lineHeight: 1.2,
155
+ },
156
+ 'heading-large': {
157
+ fontSize: '4xl',
158
+ fontFamily: 'fonts.display',
159
+ fontWeight: 700,
160
+ lineHeight: 1.1,
161
+ },
162
+ body: {
163
+ fontSize: 'md',
164
+ fontFamily: 'fonts.primary',
165
+ fontWeight: 400,
166
+ lineHeight: 1.5,
167
+ },
168
+ caption: {
169
+ fontSize: 'sm',
170
+ fontFamily: 'fonts.primary',
171
+ fontWeight: 400,
172
+ lineHeight: 1.4,
173
+ },
174
+ },
175
+ effects: {
176
+ 'shadow-sm': {
177
+ blur: 2,
178
+ offsetY: 1,
179
+ color: 'colors.shadow',
180
+ alpha: 0.1,
181
+ },
182
+ 'shadow-md': {
183
+ blur: 4,
184
+ offsetY: 2,
185
+ color: 'colors.shadow',
186
+ alpha: 0.15,
187
+ },
188
+ 'shadow-lg': {
189
+ blur: 8,
190
+ offsetY: 4,
191
+ color: 'colors.shadow',
192
+ alpha: 0.2,
193
+ },
194
+ },
195
+ };
196
+ //# sourceMappingURL=theme-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-config.js","sourceRoot":"","sources":["../../src/theme/theme-config.ts"],"names":[],"mappings":"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"}