phaser-wind 0.2.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 (113) hide show
  1. package/README.md +124 -135
  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/{font/font-picker.d.ts → core/font.d.ts} +22 -21
  19. package/dist/core/font.d.ts.map +1 -0
  20. package/dist/{font/font-picker.js → core/font.js} +28 -62
  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 -2
  53. package/dist/font/index.d.ts.map +1 -1
  54. package/dist/font/index.js +2 -2
  55. package/dist/font/index.js.map +1 -1
  56. package/dist/index.d.ts +2 -1
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +2 -1
  59. package/dist/index.js.map +1 -1
  60. package/dist/theme/theme-config.d.ts +31 -95
  61. package/dist/theme/theme-config.d.ts.map +1 -1
  62. package/dist/theme/theme-config.js +12 -52
  63. package/dist/theme/theme-config.js.map +1 -1
  64. package/dist/theme/theme-manager.d.ts +18 -6
  65. package/dist/theme/theme-manager.d.ts.map +1 -1
  66. package/dist/theme/theme-manager.js +25 -6
  67. package/dist/theme/theme-manager.js.map +1 -1
  68. package/dist/utils/index.d.ts +2 -0
  69. package/dist/utils/index.d.ts.map +1 -0
  70. package/dist/utils/index.js +2 -0
  71. package/dist/utils/index.js.map +1 -0
  72. package/dist/utils/is-valid-color.d.ts +13 -0
  73. package/dist/utils/is-valid-color.d.ts.map +1 -0
  74. package/dist/utils/is-valid-color.js +32 -0
  75. package/dist/utils/is-valid-color.js.map +1 -0
  76. package/dist/utils/is-valid-color.spec.d.ts +2 -0
  77. package/dist/utils/is-valid-color.spec.d.ts.map +1 -0
  78. package/dist/utils/is-valid-color.spec.js +82 -0
  79. package/dist/utils/is-valid-color.spec.js.map +1 -0
  80. package/package.json +5 -3
  81. package/dist/color/color-picker.d.ts +0 -23
  82. package/dist/color/color-picker.d.ts.map +0 -1
  83. package/dist/color/color-picker.js +0 -118
  84. package/dist/color/color-picker.js.map +0 -1
  85. package/dist/color/color-picker.spec.d.ts +0 -2
  86. package/dist/color/color-picker.spec.d.ts.map +0 -1
  87. package/dist/color/color-picker.spec.js +0 -60
  88. package/dist/color/color-picker.spec.js.map +0 -1
  89. package/dist/color/index.d.ts +0 -3
  90. package/dist/color/index.d.ts.map +0 -1
  91. package/dist/color/index.js +0 -3
  92. package/dist/color/index.js.map +0 -1
  93. package/dist/color/pallete.js.map +0 -1
  94. package/dist/examples/nested-theme-example.d.ts +0 -28
  95. package/dist/examples/nested-theme-example.d.ts.map +0 -1
  96. package/dist/examples/nested-theme-example.js +0 -313
  97. package/dist/examples/nested-theme-example.js.map +0 -1
  98. package/dist/examples/usage-example.d.ts +0 -17
  99. package/dist/examples/usage-example.d.ts.map +0 -1
  100. package/dist/examples/usage-example.js +0 -158
  101. package/dist/examples/usage-example.js.map +0 -1
  102. package/dist/font/font-picker.d.ts.map +0 -1
  103. package/dist/font/font-picker.js.map +0 -1
  104. package/dist/font/font-size-picker.d.ts +0 -19
  105. package/dist/font/font-size-picker.d.ts.map +0 -1
  106. package/dist/font/font-size-picker.js +0 -24
  107. package/dist/font/font-size-picker.js.map +0 -1
  108. package/dist/font/font-size-picker.spec.d.ts +0 -2
  109. package/dist/font/font-size-picker.spec.d.ts.map +0 -1
  110. package/dist/font/font-size-picker.spec.js +0 -48
  111. package/dist/font/font-size-picker.spec.js.map +0 -1
  112. /package/dist/{color → core}/pallete.d.ts +0 -0
  113. /package/dist/{color → core}/pallete.js +0 -0
@@ -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.2.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,23 +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
- /**
9
- * Get RGB string for a color token or theme token
10
- * @param color - Color token (e.g., 'blue-500') or theme token (e.g., 'primary', 'colors.primary')
11
- * @returns RGB string format 'rgb(r, g, b)'
12
- */
13
- static rgb(color: ColorToken | string): string;
14
- /**
15
- * Get hex number for a color token or theme token
16
- * @param color - Color token (e.g., 'blue-500') or theme token (e.g., 'primary', 'colors.primary')
17
- * @returns Hex number format 0xRRGGBB
18
- */
19
- static hex(color: ColorToken | string): number;
20
- getRgb(shade: ShadeKey): string;
21
- getHex(shade: ShadeKey): number;
22
- }
23
- //# 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":"AAIA,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;;;;OAIG;IACH,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM;IAyC9C;;;;OAIG;IACH,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM;IA0C9C,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM;IAQ/B,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM;CAmBhC"}
@@ -1,118 +0,0 @@
1
- /* eslint-disable no-magic-numbers */
2
- /* eslint-disable @typescript-eslint/no-non-null-assertion */
3
- import { ThemeManager } from '../theme/theme-manager';
4
- import { pallete } from './pallete';
5
- export class ColorPicker {
6
- colorKey;
7
- constructor(colorKey) {
8
- this.colorKey = colorKey;
9
- }
10
- /**
11
- * Get RGB string for a color token or theme token
12
- * @param color - Color token (e.g., 'blue-500') or theme token (e.g., 'primary', 'colors.primary')
13
- * @returns RGB string format 'rgb(r, g, b)'
14
- */
15
- static rgb(color) {
16
- // First check if it's a theme token (with or without colors. prefix)
17
- const colorPath = color.includes('.') ? color : `colors.${color}`;
18
- if (ThemeManager.hasToken(colorPath)) {
19
- const themeValue = ThemeManager.getToken(colorPath);
20
- if (themeValue) {
21
- // Recursively resolve the theme token
22
- const resolved = ThemeManager.resolveToken(themeValue);
23
- return ColorPicker.rgb(resolved);
24
- }
25
- }
26
- // Fallback: check if it's a direct theme token (backwards compatibility)
27
- if (ThemeManager.hasToken(color)) {
28
- const themeValue = ThemeManager.getToken(color);
29
- if (themeValue) {
30
- const resolved = ThemeManager.resolveToken(themeValue);
31
- return ColorPicker.rgb(resolved);
32
- }
33
- }
34
- // Handle direct color tokens
35
- const parts = color.split('-');
36
- if (parts.length === 2) {
37
- const colorKey = parts[0];
38
- const shade = parts[1];
39
- const colorValue = pallete[colorKey]?.[shade];
40
- if (!colorValue) {
41
- throw new Error(`Color token "${colorKey}-${shade}" not found`);
42
- }
43
- return colorValue;
44
- }
45
- const colorValue = pallete[color];
46
- if (!colorValue) {
47
- throw new Error(`Color token "${color}" not found`);
48
- }
49
- return colorValue;
50
- }
51
- /**
52
- * Get hex number for a color token or theme token
53
- * @param color - Color token (e.g., 'blue-500') or theme token (e.g., 'primary', 'colors.primary')
54
- * @returns Hex number format 0xRRGGBB
55
- */
56
- static hex(color) {
57
- // First check if it's a theme token (with or without colors. prefix)
58
- const colorPath = color.includes('.') ? color : `colors.${color}`;
59
- if (ThemeManager.hasToken(colorPath)) {
60
- const themeValue = ThemeManager.getToken(colorPath);
61
- if (themeValue) {
62
- // Recursively resolve the theme token
63
- const resolved = ThemeManager.resolveToken(themeValue);
64
- return ColorPicker.hex(resolved);
65
- }
66
- }
67
- // Fallback: check if it's a direct theme token (backwards compatibility)
68
- if (ThemeManager.hasToken(color)) {
69
- const themeValue = ThemeManager.getToken(color);
70
- if (themeValue) {
71
- const resolved = ThemeManager.resolveToken(themeValue);
72
- return ColorPicker.hex(resolved);
73
- }
74
- }
75
- // Handle direct color tokens
76
- const parts = color.split('-');
77
- if (parts.length === 2) {
78
- const colorKey = parts[0];
79
- const shade = parts[1];
80
- const colorPicker = new ColorPicker(colorKey);
81
- return colorPicker.getHex(shade);
82
- }
83
- const colorToConvert = pallete[color];
84
- // Handle 3-digit hex values like #fff by expanding them to 6 digits
85
- const hex = colorToConvert.slice(1);
86
- if (hex.length === 3) {
87
- const r = parseInt(hex[0] + hex[0], 16);
88
- const g = parseInt(hex[1] + hex[1], 16);
89
- const b = parseInt(hex[2] + hex[2], 16);
90
- return (r << 16) + (g << 8) + b;
91
- }
92
- return parseInt(hex, 16);
93
- }
94
- getRgb(shade) {
95
- const color = pallete[this.colorKey];
96
- if (typeof color === 'string') {
97
- return color;
98
- }
99
- return color[shade];
100
- }
101
- getHex(shade) {
102
- const rgb = this.getRgb(shade);
103
- if (rgb.startsWith('#')) {
104
- return parseInt(rgb.slice(1), 16);
105
- }
106
- // Extract RGB values from string like 'rgb(x, y, z)'
107
- const matches = rgb.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);
108
- if (!matches) {
109
- throw new Error(`Invalid RGB format: ${rgb}`);
110
- }
111
- const r = parseInt(matches[1]);
112
- const g = parseInt(matches[2]);
113
- const b = parseInt(matches[3]);
114
- // Convert to hex number format 0xRRGGBB
115
- return (r << 16) + (g << 8) + b;
116
- }
117
- }
118
- //# 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,60 +0,0 @@
1
- /* eslint-disable no-magic-numbers */
2
- /* eslint-disable max-lines-per-function */
3
- import { describe, expect, it } from 'vitest';
4
- import { createTheme, ThemeManager } from '../theme';
5
- import { ColorPicker } from './color-picker';
6
- describe('ColorPicker', () => {
7
- it('should get the correct hex value for a shade', () => {
8
- const colorPicker = new ColorPicker('slate');
9
- expect(colorPicker.getHex('50')).toBe(0xf8fafc);
10
- });
11
- it.each([
12
- ['slate', '50', 0xf8fafc],
13
- ['slate', '900', 0x0f172a],
14
- ['rose', '500', 0xf43f5e],
15
- ['fuchsia', '400', 0xe879f9],
16
- ['zinc', '200', 0xe4e4e7],
17
- ['gray', '600', 0x4b5563],
18
- ['pink', '300', 0xf9a8d4],
19
- ['stone', '700', 0x44403c],
20
- ])('should convert %s-%s to hex %s', (color, shade, expected) => {
21
- const colorPicker = new ColorPicker(color);
22
- expect(colorPicker.getHex(shade)).toBe(expected);
23
- });
24
- it('should convert color token to rgb using static method', () => {
25
- expect(ColorPicker.rgb('slate-50')).toBe('rgb(248, 250, 252)');
26
- expect(ColorPicker.rgb('black')).toBe('#000');
27
- expect(ColorPicker.rgb('white')).toBe('#fff');
28
- });
29
- it('should convert color token to hex using static method', () => {
30
- expect(ColorPicker.hex('slate-50')).toBe(0xf8fafc);
31
- expect(ColorPicker.hex('black')).toBe(0x000000);
32
- expect(ColorPicker.hex('white')).toBe(0xffffff);
33
- expect(ColorPicker.hex('slate-900')).toBe(0x0f172a);
34
- expect(ColorPicker.hex('slate-500')).toBe(0x64748b);
35
- expect(ColorPicker.hex('slate-200')).toBe(0xe2e8f0);
36
- expect(ColorPicker.hex('slate-100')).toBe(0xf1f5f9);
37
- expect(ColorPicker.hex('slate-50')).toBe(0xf8fafc);
38
- expect(ColorPicker.hex('slate-950')).toBe(0x020617);
39
- expect(ColorPicker.hex('slate-800')).toBe(0x1e293b);
40
- });
41
- describe('with theme manager', () => {
42
- const fakeTheme = createTheme({
43
- colors: {
44
- primary: 'red-500',
45
- secondary: 'slate-50',
46
- },
47
- });
48
- ThemeManager.init(fakeTheme);
49
- it('should get the correct hex in theme', () => {
50
- expect(ColorPicker.rgb('colors.primary')).toBe('rgb(239, 68, 68)');
51
- });
52
- it('should get the correct hex in theme using color token', () => {
53
- expect(ColorPicker.rgb('colors.secondary')).toBe('rgb(248, 250, 252)');
54
- });
55
- it('should throw an error if the color token is not found', () => {
56
- expect(() => ColorPicker.rgb('colors.not-found')).toThrow('Color token "colors.not-found" not found');
57
- });
58
- });
59
- });
60
- //# 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,28 +0,0 @@
1
- /**
2
- * Example usage of Phaser Wind with nested theme structure
3
- * This file demonstrates the new complex theme system
4
- */
5
- import Phaser from 'phaser';
6
- import { type BaseThemeConfig } from '..';
7
- export declare const createGameTheme: () => BaseThemeConfig;
8
- export declare class AdvancedGameScene extends Phaser.Scene {
9
- create(): void;
10
- private createBackground;
11
- private createHUD;
12
- private createStatBar;
13
- private createGameElements;
14
- private createItem;
15
- private createUI;
16
- private createButton;
17
- }
18
- export declare const demonstrateThemeSwitching: () => void;
19
- export declare const demonstrateAPIUsage: () => void;
20
- export declare class ThemedButton {
21
- private background;
22
- private text;
23
- constructor(scene: Phaser.Scene, x: number, y: number, label: string, variant?: 'primary' | 'secondary' | 'success' | 'warning' | 'error');
24
- private onHover;
25
- private onLeave;
26
- private onClick;
27
- }
28
- //# sourceMappingURL=nested-theme-example.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nested-theme-example.d.ts","sourceRoot":"","sources":["../../src/examples/nested-theme-example.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAWL,KAAK,eAAe,EACrB,MAAM,IAAI,CAAC;AAGZ,eAAO,MAAM,eAAe,QAAO,eA4G/B,CAAC;AAGL,qBAAa,iBAAkB,SAAQ,MAAM,CAAC,KAAK;IACjD,MAAM,IAAI,IAAI;IAWd,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,SAAS;IA8BjB,OAAO,CAAC,aAAa;IAsCrB,OAAO,CAAC,kBAAkB;IAoC1B,OAAO,CAAC,UAAU;IAqBlB,OAAO,CAAC,QAAQ;IAqBhB,OAAO,CAAC,YAAY;CAgCrB;AAGD,eAAO,MAAM,yBAAyB,QAAO,IAyB5C,CAAC;AAGF,eAAO,MAAM,mBAAmB,QAAO,IAqCtC,CAAC;AAGF,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,IAAI,CAA0B;gBAGpC,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EACb,OAAO,GACH,SAAS,GACT,WAAW,GACX,SAAS,GACT,SAAS,GACT,OAAmB;IAuBzB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,OAAO;CAGhB"}