phaser-wind 0.1.0 → 0.3.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 (111) hide show
  1. package/README.md +317 -95
  2. package/dist/core/color.d.ts +287 -0
  3. package/dist/core/color.d.ts.map +1 -0
  4. package/dist/core/color.js +386 -0
  5. package/dist/core/color.js.map +1 -0
  6. package/dist/core/color.spec.d.ts +2 -0
  7. package/dist/core/color.spec.d.ts.map +1 -0
  8. package/dist/core/color.spec.js +252 -0
  9. package/dist/core/color.spec.js.map +1 -0
  10. package/dist/core/font-size.d.ts +34 -0
  11. package/dist/core/font-size.d.ts.map +1 -0
  12. package/dist/core/font-size.js +68 -0
  13. package/dist/core/font-size.js.map +1 -0
  14. package/dist/core/font-size.spec.d.ts +2 -0
  15. package/dist/core/font-size.spec.d.ts.map +1 -0
  16. package/dist/core/font-size.spec.js +73 -0
  17. package/dist/core/font-size.spec.js.map +1 -0
  18. package/dist/core/font.d.ts +94 -0
  19. package/dist/core/font.d.ts.map +1 -0
  20. package/dist/core/font.js +178 -0
  21. package/dist/core/font.js.map +1 -0
  22. package/dist/core/font.spec.d.ts +2 -0
  23. package/dist/core/font.spec.d.ts.map +1 -0
  24. package/dist/core/font.spec.js +84 -0
  25. package/dist/core/font.spec.js.map +1 -0
  26. package/dist/core/index.d.ts +8 -0
  27. package/dist/core/index.d.ts.map +1 -0
  28. package/dist/core/index.js +8 -0
  29. package/dist/core/index.js.map +1 -0
  30. package/dist/{color → core}/pallete.d.ts.map +1 -1
  31. package/dist/core/pallete.js.map +1 -0
  32. package/dist/core/radius.d.ts +34 -0
  33. package/dist/core/radius.d.ts.map +1 -0
  34. package/dist/core/radius.js +46 -0
  35. package/dist/core/radius.js.map +1 -0
  36. package/dist/core/radius.spec.d.ts +2 -0
  37. package/dist/core/radius.spec.d.ts.map +1 -0
  38. package/dist/core/radius.spec.js +61 -0
  39. package/dist/core/radius.spec.js.map +1 -0
  40. package/dist/core/shadow.d.ts +23 -0
  41. package/dist/core/shadow.d.ts.map +1 -0
  42. package/dist/core/shadow.js +23 -0
  43. package/dist/core/shadow.js.map +1 -0
  44. package/dist/core/spacing.d.ts +39 -0
  45. package/dist/core/spacing.d.ts.map +1 -0
  46. package/dist/core/spacing.js +82 -0
  47. package/dist/core/spacing.js.map +1 -0
  48. package/dist/core/spacing.spec.d.ts +2 -0
  49. package/dist/core/spacing.spec.d.ts.map +1 -0
  50. package/dist/core/spacing.spec.js +49 -0
  51. package/dist/core/spacing.spec.js.map +1 -0
  52. package/dist/font/index.d.ts +2 -1
  53. package/dist/font/index.d.ts.map +1 -1
  54. package/dist/font/index.js +2 -1
  55. package/dist/font/index.js.map +1 -1
  56. package/dist/index.d.ts +3 -1
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +3 -1
  59. package/dist/index.js.map +1 -1
  60. package/dist/theme/index.d.ts +3 -0
  61. package/dist/theme/index.d.ts.map +1 -0
  62. package/dist/theme/index.js +3 -0
  63. package/dist/theme/index.js.map +1 -0
  64. package/dist/theme/theme-config.d.ts +98 -0
  65. package/dist/theme/theme-config.d.ts.map +1 -0
  66. package/dist/theme/theme-config.js +156 -0
  67. package/dist/theme/theme-config.js.map +1 -0
  68. package/dist/theme/theme-manager.d.ts +108 -0
  69. package/dist/theme/theme-manager.d.ts.map +1 -0
  70. package/dist/theme/theme-manager.js +190 -0
  71. package/dist/theme/theme-manager.js.map +1 -0
  72. package/dist/theme/type.d.ts +1 -0
  73. package/dist/theme/type.d.ts.map +1 -0
  74. package/dist/theme/type.js +2 -0
  75. package/dist/theme/type.js.map +1 -0
  76. package/dist/utils/index.d.ts +2 -0
  77. package/dist/utils/index.d.ts.map +1 -0
  78. package/dist/utils/index.js +2 -0
  79. package/dist/utils/index.js.map +1 -0
  80. package/dist/utils/is-valid-color.d.ts +13 -0
  81. package/dist/utils/is-valid-color.d.ts.map +1 -0
  82. package/dist/utils/is-valid-color.js +32 -0
  83. package/dist/utils/is-valid-color.js.map +1 -0
  84. package/dist/utils/is-valid-color.spec.d.ts +2 -0
  85. package/dist/utils/is-valid-color.spec.d.ts.map +1 -0
  86. package/dist/utils/is-valid-color.spec.js +82 -0
  87. package/dist/utils/is-valid-color.spec.js.map +1 -0
  88. package/package.json +5 -3
  89. package/dist/color/color-picker.d.ts +0 -13
  90. package/dist/color/color-picker.d.ts.map +0 -1
  91. package/dist/color/color-picker.js +0 -61
  92. package/dist/color/color-picker.js.map +0 -1
  93. package/dist/color/color-picker.spec.d.ts +0 -2
  94. package/dist/color/color-picker.spec.d.ts.map +0 -1
  95. package/dist/color/color-picker.spec.js +0 -41
  96. package/dist/color/color-picker.spec.js.map +0 -1
  97. package/dist/color/index.d.ts +0 -3
  98. package/dist/color/index.d.ts.map +0 -1
  99. package/dist/color/index.js +0 -3
  100. package/dist/color/index.js.map +0 -1
  101. package/dist/color/pallete.js.map +0 -1
  102. package/dist/font/font-size-picker.d.ts +0 -19
  103. package/dist/font/font-size-picker.d.ts.map +0 -1
  104. package/dist/font/font-size-picker.js +0 -24
  105. package/dist/font/font-size-picker.js.map +0 -1
  106. package/dist/font/font-size-picker.spec.d.ts +0 -2
  107. package/dist/font/font-size-picker.spec.d.ts.map +0 -1
  108. package/dist/font/font-size-picker.spec.js +0 -48
  109. package/dist/font/font-size-picker.spec.js.map +0 -1
  110. /package/dist/{color → core}/pallete.d.ts +0 -0
  111. /package/dist/{color → core}/pallete.js +0 -0
@@ -0,0 +1,190 @@
1
+ import merge from 'lodash/merge';
2
+ import { defaultDarkTheme, defaultLightTheme, } from './theme-config';
3
+ /**
4
+ * Global theme manager for Phaser Wind
5
+ * Handles theme registration, switching, and token resolution with nested object support
6
+ */
7
+ class ThemeManagerClass {
8
+ currentTheme = defaultLightTheme;
9
+ registeredThemes = new Map();
10
+ listeners = [];
11
+ /**
12
+ * Initialize the theme manager with a default theme
13
+ */
14
+ init(theme, type = 'light') {
15
+ this.currentTheme = merge({}, type === 'light' ? defaultLightTheme : defaultDarkTheme, theme);
16
+ this.registerTheme('default', theme);
17
+ }
18
+ /**
19
+ * Register a named theme
20
+ */
21
+ registerTheme(name, theme) {
22
+ this.registeredThemes.set(name, theme);
23
+ }
24
+ /**
25
+ * Switch to a registered theme by name
26
+ */
27
+ setTheme(name) {
28
+ const theme = this.registeredThemes.get(name);
29
+ if (!theme) {
30
+ // eslint-disable-next-line no-console
31
+ console.warn(`[Phaser Wind] Theme "${name}" not found. Available themes: ${Array.from(this.registeredThemes.keys()).join(', ')}`);
32
+ return;
33
+ }
34
+ this.currentTheme = theme;
35
+ this.notifyListeners();
36
+ }
37
+ /**
38
+ * Set theme directly with object by merging with current theme
39
+ * This method will merge the provided theme object with the current theme:
40
+ * - Existing properties will be replaced with new values
41
+ * - New properties will be added
42
+ * - Properties not specified in the new theme will be preserved
43
+ *
44
+ * Example:
45
+ * Current theme: { colors: { primary: 'blue', secondary: 'gray' } }
46
+ * New theme: { colors: { primary: 'red', accent: 'yellow' } }
47
+ * Result: { colors: { primary: 'red', secondary: 'gray', accent: 'yellow' } }
48
+ */
49
+ setThemeObject(theme) {
50
+ this.currentTheme = merge({}, this.currentTheme, theme);
51
+ this.notifyListeners();
52
+ }
53
+ /**
54
+ * Get the current theme
55
+ */
56
+ getCurrentTheme() {
57
+ return this.currentTheme;
58
+ }
59
+ /**
60
+ * Get a nested token using dot notation (e.g., 'colors.primary', 'fonts.display')
61
+ * @param path - The path to the token (e.g., 'colors.primary')
62
+ * @returns The resolved token value
63
+ */
64
+ getToken(path) {
65
+ return this.getNestedValue(this.currentTheme, path);
66
+ }
67
+ /**
68
+ * Check if a nested token exists using dot notation
69
+ * @param path - The path to check (e.g., 'colors.primary')
70
+ * @returns True if the token exists
71
+ */
72
+ hasToken(path) {
73
+ return this.getNestedValue(this.currentTheme, path) !== undefined;
74
+ }
75
+ /**
76
+ * Get a token with type safety for specific namespaces
77
+ */
78
+ getColorToken(key) {
79
+ const value = this.getToken(`colors.${key}`);
80
+ return typeof value === 'string' ? value : undefined;
81
+ }
82
+ /**
83
+ * Get a font token
84
+ */
85
+ getFontToken(key) {
86
+ const value = this.getToken(`fonts.${key}`);
87
+ return typeof value === 'string' ? value : undefined;
88
+ }
89
+ /**
90
+ * Get a spacing token
91
+ */
92
+ getSpacingToken(key) {
93
+ const value = this.getToken(`spacing.${key}`);
94
+ return typeof value === 'number' ? value : undefined;
95
+ }
96
+ /**
97
+ * Get a typography token
98
+ */
99
+ getTypographyToken(key) {
100
+ return this.getToken(`typography.${key}`);
101
+ }
102
+ /**
103
+ * Get an effect token
104
+ */
105
+ getEffectToken(key) {
106
+ return this.getToken(`effects.${key}`);
107
+ }
108
+ /**
109
+ * Resolve a theme reference (e.g., 'colors.primary' -> actual color value)
110
+ * This allows theme tokens to reference other theme tokens
111
+ */
112
+ resolveToken(value) {
113
+ if (typeof value === 'string' && value.includes('.')) {
114
+ // Check if it's a theme reference
115
+ const resolved = this.getToken(value);
116
+ if (resolved !== undefined) {
117
+ // Recursively resolve in case of nested references
118
+ return typeof resolved === 'string' && resolved.includes('.')
119
+ ? this.resolveToken(resolved)
120
+ : resolved;
121
+ }
122
+ }
123
+ return value;
124
+ }
125
+ /**
126
+ * Listen for theme changes
127
+ */
128
+ onThemeChange(listener) {
129
+ this.listeners.push(listener);
130
+ // Return unsubscribe function
131
+ return () => {
132
+ const index = this.listeners.indexOf(listener);
133
+ if (index > -1) {
134
+ this.listeners.splice(index, 1);
135
+ }
136
+ };
137
+ }
138
+ /**
139
+ * Get all registered theme names
140
+ */
141
+ getRegisteredThemes() {
142
+ return Array.from(this.registeredThemes.keys());
143
+ }
144
+ /**
145
+ * Create a new theme based on the current one with overrides
146
+ */
147
+ extendCurrentTheme(overrides) {
148
+ return { ...this.currentTheme, ...overrides };
149
+ }
150
+ /**
151
+ * Reset to default theme
152
+ */
153
+ reset() {
154
+ const defaultTheme = this.registeredThemes.get('default');
155
+ if (defaultTheme) {
156
+ this.currentTheme = defaultTheme;
157
+ this.notifyListeners();
158
+ }
159
+ }
160
+ /**
161
+ * Clear all registered themes and reset to default
162
+ */
163
+ clear() {
164
+ this.registeredThemes.clear();
165
+ this.currentTheme = defaultLightTheme;
166
+ this.registerTheme('default', defaultLightTheme);
167
+ this.listeners = [];
168
+ }
169
+ notifyListeners() {
170
+ this.listeners.forEach(listener => listener(this.currentTheme));
171
+ }
172
+ /**
173
+ * Helper method to get nested values using dot notation
174
+ * @param obj - The object to search in
175
+ * @param path - The dot notation path (e.g., 'colors.primary')
176
+ * @returns The value at the path or undefined
177
+ */
178
+ getNestedValue(obj, path) {
179
+ return path.split('.').reduce((current, key) => {
180
+ return current && typeof current === 'object'
181
+ ? current[key]
182
+ : undefined;
183
+ }, obj);
184
+ }
185
+ }
186
+ // Export singleton instance
187
+ export const ThemeManager = new ThemeManagerClass();
188
+ // Type helper for creating themes with proper typing
189
+ export const createTheme = (theme) => merge({}, defaultLightTheme, theme);
190
+ //# sourceMappingURL=theme-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-manager.js","sourceRoot":"","sources":["../../src/theme/theme-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../src/theme/type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/theme/type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export * from './is-valid-color';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './is-valid-color';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Checks if a string is a valid CSS color value
3
+ * @param color - The color string to validate
4
+ * @returns True if the color string is valid, false otherwise
5
+ *
6
+ * Supports the following formats:
7
+ * - Hex colors (#RRGGBB or #RGB)
8
+ * - RGB colors (rgb(r, g, b))
9
+ * - RGBA colors (rgba(r, g, b, a))
10
+ * - OKLCH colors (oklch(l c h [/ a]))
11
+ */
12
+ export declare const isValidColor: (color: string) => boolean;
13
+ //# sourceMappingURL=is-valid-color.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-valid-color.d.ts","sourceRoot":"","sources":["../../src/utils/is-valid-color.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,KAAG,OAmC5C,CAAC"}
@@ -0,0 +1,32 @@
1
+ /* eslint-disable security/detect-unsafe-regex */
2
+ /**
3
+ * Checks if a string is a valid CSS color value
4
+ * @param color - The color string to validate
5
+ * @returns True if the color string is valid, false otherwise
6
+ *
7
+ * Supports the following formats:
8
+ * - Hex colors (#RRGGBB or #RGB)
9
+ * - RGB colors (rgb(r, g, b))
10
+ * - RGBA colors (rgba(r, g, b, a))
11
+ * - OKLCH colors (oklch(l c h [/ a]))
12
+ */
13
+ export const isValidColor = (color) => {
14
+ if (typeof color !== 'string') {
15
+ return false;
16
+ }
17
+ const trimmedColor = color.trim();
18
+ if (/^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$/.test(trimmedColor)) {
19
+ return true;
20
+ }
21
+ if (/^rgb\(\s*(\d{1,3}%?)\s*,\s*(\d{1,3}%?)\s*,\s*(\d{1,3}%?)\s*\)$/.test(trimmedColor)) {
22
+ return true;
23
+ }
24
+ if (/^rgba\(\s*(\d{1,3}%?)\s*,\s*(\d{1,3}%?)\s*,\s*(\d{1,3}%?)\s*,\s*([01]|0?\.\d+)\s*\)$/.test(trimmedColor)) {
25
+ return true;
26
+ }
27
+ if (/^oklch\(\s*(\d*\.?\d+%?)\s+(\d*\.?\d+)\s+(\d*\.?\d+)(?:\s*\/\s*([01]|0?\.\d+))?\s*\)$/.test(trimmedColor)) {
28
+ return true;
29
+ }
30
+ return false;
31
+ };
32
+ //# sourceMappingURL=is-valid-color.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-valid-color.js","sourceRoot":"","sources":["../../src/utils/is-valid-color.ts"],"names":[],"mappings":"AAAA,iDAAiD;AAEjD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAa,EAAW,EAAE;IACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAClC,IAAI,oCAAoC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IACE,gEAAgE,CAAC,IAAI,CACnE,YAAY,CACb,EACD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IACE,sFAAsF,CAAC,IAAI,CACzF,YAAY,CACb,EACD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IACE,uFAAuF,CAAC,IAAI,CAC1F,YAAY,CACb,EACD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=is-valid-color.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-valid-color.spec.d.ts","sourceRoot":"","sources":["../../src/utils/is-valid-color.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,82 @@
1
+ /* eslint-disable max-lines-per-function */
2
+ /* eslint-disable sonarjs/no-duplicate-string */
3
+ import { describe, expect, it } from 'vitest';
4
+ import { isValidColor } from './is-valid-color';
5
+ describe('isValidColor', () => {
6
+ describe('hex colors', () => {
7
+ it('should return true for valid 6-digit hex colors', () => {
8
+ expect(isValidColor('#000000')).toBe(true);
9
+ expect(isValidColor('#FFFFFF')).toBe(true);
10
+ expect(isValidColor('#ff0000')).toBe(true);
11
+ expect(isValidColor('#00ff00')).toBe(true);
12
+ expect(isValidColor('#0000ff')).toBe(true);
13
+ });
14
+ it('should return true for valid 3-digit hex colors', () => {
15
+ expect(isValidColor('#000')).toBe(true);
16
+ expect(isValidColor('#FFF')).toBe(true);
17
+ expect(isValidColor('#f00')).toBe(true);
18
+ expect(isValidColor('#0f0')).toBe(true);
19
+ expect(isValidColor('#00f')).toBe(true);
20
+ });
21
+ it('should return false for invalid hex colors', () => {
22
+ expect(isValidColor('#12')).toBe(false);
23
+ expect(isValidColor('#1234')).toBe(false);
24
+ expect(isValidColor('#12345')).toBe(false);
25
+ expect(isValidColor('#1234567')).toBe(false);
26
+ expect(isValidColor('#xyz')).toBe(false);
27
+ });
28
+ });
29
+ describe('rgb/rgba colors', () => {
30
+ it('should return true for rgb format', () => {
31
+ expect(isValidColor('rgb(0, 0, 0)')).toBe(true);
32
+ expect(isValidColor('rgb(255, 255, 255)')).toBe(true);
33
+ expect(isValidColor('rgb(100%, 0%, 0%)')).toBe(true);
34
+ expect(isValidColor('rgb(0,0,0)')).toBe(true);
35
+ expect(isValidColor('rgb( 0, 0, 0 )')).toBe(true);
36
+ expect(isValidColor(' rgb(0, 0, 0)')).toBe(true);
37
+ expect(isValidColor('rgb(0, 0, 0) ')).toBe(true);
38
+ });
39
+ it('should return true for rgba format', () => {
40
+ expect(isValidColor('rgba(0, 0, 0, 1)')).toBe(true);
41
+ expect(isValidColor('rgba(255, 255, 255, 0.5)')).toBe(true);
42
+ expect(isValidColor('rgba(0,0,0,1)')).toBe(true);
43
+ expect(isValidColor('rgba( 0, 0, 0, 1 )')).toBe(true);
44
+ expect(isValidColor(' rgba(0, 0, 0, 1)')).toBe(true);
45
+ expect(isValidColor('rgba(0, 0, 0, 1) ')).toBe(true);
46
+ });
47
+ });
48
+ describe('oklch colors', () => {
49
+ it('should return true for oklch format', () => {
50
+ expect(isValidColor('oklch(40% 0.268 34.568)')).toBe(true);
51
+ expect(isValidColor('oklch(40% 0.268 34.568 / 1)')).toBe(true);
52
+ expect(isValidColor('oklch( 40% 0.268 34.568 )')).toBe(true);
53
+ expect(isValidColor(' oklch(40% 0.268 34.568)')).toBe(true);
54
+ expect(isValidColor('oklch(40% 0.268 34.568) ')).toBe(true);
55
+ expect(isValidColor('oklch(0.5 0.2 268)')).toBe(true);
56
+ });
57
+ });
58
+ describe('invalid inputs', () => {
59
+ it('should return false for non-color strings', () => {
60
+ expect(isValidColor('not a color')).toBe(false);
61
+ expect(isValidColor('')).toBe(false);
62
+ expect(isValidColor('123456')).toBe(false);
63
+ expect(isValidColor(' ')).toBe(false);
64
+ expect(isValidColor('\t')).toBe(false);
65
+ expect(isValidColor('\n')).toBe(false);
66
+ expect(isValidColor('oklch(40%0.268 34.568)')).toBe(false);
67
+ });
68
+ it('should return false for hex colors without #', () => {
69
+ expect(isValidColor('000000')).toBe(false);
70
+ expect(isValidColor('FFFFFF')).toBe(false);
71
+ expect(isValidColor(' 000000')).toBe(false);
72
+ expect(isValidColor('FFFFFF ')).toBe(false);
73
+ });
74
+ it('should handle hex colors with spacing correctly', () => {
75
+ expect(isValidColor(' #000000')).toBe(true);
76
+ expect(isValidColor('#000000 ')).toBe(true);
77
+ expect(isValidColor('# 000000')).toBe(false);
78
+ expect(isValidColor('# 000000')).toBe(false);
79
+ });
80
+ });
81
+ });
82
+ //# sourceMappingURL=is-valid-color.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-valid-color.spec.js","sourceRoot":"","sources":["../../src/utils/is-valid-color.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "phaser-wind",
3
- "version": "0.1.0",
3
+ "version": "0.3.0",
4
4
  "description": "Wind theme like Tailwind CSS for Phaser games",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -35,7 +35,7 @@
35
35
  "homepage": "https://github.com/renatocassino/phaser-toolkit/tree/main/packages/phaser-wind#readme",
36
36
  "devDependencies": {
37
37
  "@eslint-recommended/eslint-config": "^28.0.0",
38
- "@types/node": "^24.1.0",
38
+ "@types/node": "^24.2.0",
39
39
  "@typescript-eslint/eslint-plugin": "^7.0.0",
40
40
  "@typescript-eslint/parser": "^6.15.0",
41
41
  "eslint": "^8.55.0",
@@ -47,6 +47,7 @@
47
47
  "eslint-plugin-security": "^1.7.1",
48
48
  "eslint-plugin-sonarjs": "^0.23.0",
49
49
  "eslint-plugin-unicorn": "^50.0.1",
50
+ "tsx": "^4.20.3",
50
51
  "typescript": "^5.3.0",
51
52
  "vitest": "^3.2.4"
52
53
  },
@@ -65,6 +66,7 @@
65
66
  "typecheck": "tsc --noEmit",
66
67
  "lint": "eslint src --ext .ts,.tsx --max-warnings 0",
67
68
  "lint:fix": "eslint src --ext .ts,.tsx --fix",
68
- "lint:report": "eslint src --ext .ts,.tsx --format html --output-file eslint-report.html"
69
+ "lint:report": "eslint src --ext .ts,.tsx --format html --output-file eslint-report.html",
70
+ "validate": "pnpm run lint && pnpm run typecheck && pnpm run test && lint-staged"
69
71
  }
70
72
  }
@@ -1,13 +0,0 @@
1
- import { pallete } from './pallete';
2
- export type ColorKey = keyof typeof pallete;
3
- export type ShadeKey = '50' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900' | '950';
4
- export type ColorToken = `${ColorKey}-${ShadeKey}` | 'black' | 'white';
5
- export declare class ColorPicker {
6
- private colorKey;
7
- constructor(colorKey: ColorKey);
8
- static rgb(color: ColorToken): string;
9
- static hex(color: ColorToken): number;
10
- getRgb(shade: ShadeKey): string;
11
- getHex(shade: ShadeKey): number;
12
- }
13
- //# sourceMappingURL=color-picker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"color-picker.d.ts","sourceRoot":"","sources":["../../src/color/color-picker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,OAAO,CAAC;AAC5C,MAAM,MAAM,QAAQ,GAChB,IAAI,GACJ,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,CAAC;AACV,MAAM,MAAM,UAAU,GAAG,GAAG,QAAQ,IAAI,QAAQ,EAAE,GAAG,OAAO,GAAG,OAAO,CAAC;AAEvE,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,QAAQ;IAEtC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM;IAUrC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM;IAoBrC,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM;IAQ/B,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM;CAmBhC"}
@@ -1,61 +0,0 @@
1
- /* eslint-disable no-magic-numbers */
2
- /* eslint-disable @typescript-eslint/no-non-null-assertion */
3
- import { pallete } from './pallete';
4
- export class ColorPicker {
5
- colorKey;
6
- constructor(colorKey) {
7
- this.colorKey = colorKey;
8
- }
9
- static rgb(color) {
10
- const parts = color.split('-');
11
- if (parts.length === 2) {
12
- const colorKey = parts[0];
13
- const shade = parts[1];
14
- return pallete[colorKey][shade];
15
- }
16
- return pallete[color];
17
- }
18
- static hex(color) {
19
- const parts = color.split('-');
20
- if (parts.length === 2) {
21
- const colorKey = parts[0];
22
- const shade = parts[1];
23
- const colorPicker = new ColorPicker(colorKey);
24
- return colorPicker.getHex(shade);
25
- }
26
- const colorToConvert = pallete[color];
27
- // Handle 3-digit hex values like #fff by expanding them to 6 digits
28
- const hex = colorToConvert.slice(1);
29
- if (hex.length === 3) {
30
- const r = parseInt(hex[0] + hex[0], 16);
31
- const g = parseInt(hex[1] + hex[1], 16);
32
- const b = parseInt(hex[2] + hex[2], 16);
33
- return (r << 16) + (g << 8) + b;
34
- }
35
- return parseInt(hex, 16);
36
- }
37
- getRgb(shade) {
38
- const color = pallete[this.colorKey];
39
- if (typeof color === 'string') {
40
- return color;
41
- }
42
- return color[shade];
43
- }
44
- getHex(shade) {
45
- const rgb = this.getRgb(shade);
46
- if (rgb.startsWith('#')) {
47
- return parseInt(rgb.slice(1), 16);
48
- }
49
- // Extract RGB values from string like 'rgb(x, y, z)'
50
- const matches = rgb.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);
51
- if (!matches) {
52
- throw new Error(`Invalid RGB format: ${rgb}`);
53
- }
54
- const r = parseInt(matches[1]);
55
- const g = parseInt(matches[2]);
56
- const b = parseInt(matches[3]);
57
- // Convert to hex number format 0xRRGGBB
58
- return (r << 16) + (g << 8) + b;
59
- }
60
- }
61
- //# sourceMappingURL=color-picker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"color-picker.js","sourceRoot":"","sources":["../../src/color/color-picker.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=color-picker.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"color-picker.spec.d.ts","sourceRoot":"","sources":["../../src/color/color-picker.spec.ts"],"names":[],"mappings":""}
@@ -1,41 +0,0 @@
1
- /* eslint-disable no-magic-numbers */
2
- /* eslint-disable max-lines-per-function */
3
- import { describe, expect, it } from 'vitest';
4
- import { ColorPicker } from './color-picker';
5
- describe('ColorPicker', () => {
6
- it('should get the correct hex value for a shade', () => {
7
- const colorPicker = new ColorPicker('slate');
8
- expect(colorPicker.getHex('50')).toBe(0xf8fafc);
9
- });
10
- it.each([
11
- ['slate', '50', 0xf8fafc],
12
- ['slate', '900', 0x0f172a],
13
- ['rose', '500', 0xf43f5e],
14
- ['fuchsia', '400', 0xe879f9],
15
- ['zinc', '200', 0xe4e4e7],
16
- ['gray', '600', 0x4b5563],
17
- ['pink', '300', 0xf9a8d4],
18
- ['stone', '700', 0x44403c],
19
- ])('should convert %s-%s to hex %s', (color, shade, expected) => {
20
- const colorPicker = new ColorPicker(color);
21
- expect(colorPicker.getHex(shade)).toBe(expected);
22
- });
23
- it('should convert color token to rgb using static method', () => {
24
- expect(ColorPicker.rgb('slate-50')).toBe('rgb(248, 250, 252)');
25
- expect(ColorPicker.rgb('black')).toBe('#000');
26
- expect(ColorPicker.rgb('white')).toBe('#fff');
27
- });
28
- it('should convert color token to hex using static method', () => {
29
- expect(ColorPicker.hex('slate-50')).toBe(0xf8fafc);
30
- expect(ColorPicker.hex('black')).toBe(0x000000);
31
- expect(ColorPicker.hex('white')).toBe(0xffffff);
32
- expect(ColorPicker.hex('slate-900')).toBe(0x0f172a);
33
- expect(ColorPicker.hex('slate-500')).toBe(0x64748b);
34
- expect(ColorPicker.hex('slate-200')).toBe(0xe2e8f0);
35
- expect(ColorPicker.hex('slate-100')).toBe(0xf1f5f9);
36
- expect(ColorPicker.hex('slate-50')).toBe(0xf8fafc);
37
- expect(ColorPicker.hex('slate-950')).toBe(0x020617);
38
- expect(ColorPicker.hex('slate-800')).toBe(0x1e293b);
39
- });
40
- });
41
- //# sourceMappingURL=color-picker.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"color-picker.spec.js","sourceRoot":"","sources":["../../src/color/color-picker.spec.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export * from './color-picker';
2
- export * from './pallete';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/color/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC"}
@@ -1,3 +0,0 @@
1
- export * from './color-picker';
2
- export * from './pallete';
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/color/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pallete.js","sourceRoot":"","sources":["../../src/color/pallete.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- export declare const fontSizes: {
2
- readonly xs: 12;
3
- readonly sm: 14;
4
- readonly md: 16;
5
- readonly lg: 18;
6
- readonly xl: 20;
7
- readonly '2xl': 24;
8
- readonly '3xl': 30;
9
- readonly '4xl': 36;
10
- readonly '5xl': 48;
11
- readonly '6xl': 60;
12
- };
13
- export type FontSizeKey = keyof typeof fontSizes;
14
- export declare class FontSizePicker {
15
- static px(key: FontSizeKey): number;
16
- static rem(key: FontSizeKey): number;
17
- static css(key: FontSizeKey): string;
18
- }
19
- //# sourceMappingURL=font-size-picker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"font-size-picker.d.ts","sourceRoot":"","sources":["../../src/font/font-size-picker.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS;;;;;;;;;;;CAWZ,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,SAAS,CAAC;AAEjD,qBAAa,cAAc;IACzB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM;IAInC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM;IAIpC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM;CAGrC"}