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.
- package/README.md +317 -95
- package/dist/core/color.d.ts +287 -0
- package/dist/core/color.d.ts.map +1 -0
- package/dist/core/color.js +386 -0
- package/dist/core/color.js.map +1 -0
- package/dist/core/color.spec.d.ts +2 -0
- package/dist/core/color.spec.d.ts.map +1 -0
- package/dist/core/color.spec.js +252 -0
- package/dist/core/color.spec.js.map +1 -0
- package/dist/core/font-size.d.ts +34 -0
- package/dist/core/font-size.d.ts.map +1 -0
- package/dist/core/font-size.js +68 -0
- package/dist/core/font-size.js.map +1 -0
- package/dist/core/font-size.spec.d.ts +2 -0
- package/dist/core/font-size.spec.d.ts.map +1 -0
- package/dist/core/font-size.spec.js +73 -0
- package/dist/core/font-size.spec.js.map +1 -0
- package/dist/core/font.d.ts +94 -0
- package/dist/core/font.d.ts.map +1 -0
- package/dist/core/font.js +178 -0
- package/dist/core/font.js.map +1 -0
- package/dist/core/font.spec.d.ts +2 -0
- package/dist/core/font.spec.d.ts.map +1 -0
- package/dist/core/font.spec.js +84 -0
- package/dist/core/font.spec.js.map +1 -0
- package/dist/core/index.d.ts +8 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +8 -0
- package/dist/core/index.js.map +1 -0
- package/dist/{color → core}/pallete.d.ts.map +1 -1
- package/dist/core/pallete.js.map +1 -0
- package/dist/core/radius.d.ts +34 -0
- package/dist/core/radius.d.ts.map +1 -0
- package/dist/core/radius.js +46 -0
- package/dist/core/radius.js.map +1 -0
- package/dist/core/radius.spec.d.ts +2 -0
- package/dist/core/radius.spec.d.ts.map +1 -0
- package/dist/core/radius.spec.js +61 -0
- package/dist/core/radius.spec.js.map +1 -0
- package/dist/core/shadow.d.ts +23 -0
- package/dist/core/shadow.d.ts.map +1 -0
- package/dist/core/shadow.js +23 -0
- package/dist/core/shadow.js.map +1 -0
- package/dist/core/spacing.d.ts +39 -0
- package/dist/core/spacing.d.ts.map +1 -0
- package/dist/core/spacing.js +82 -0
- package/dist/core/spacing.js.map +1 -0
- package/dist/core/spacing.spec.d.ts +2 -0
- package/dist/core/spacing.spec.d.ts.map +1 -0
- package/dist/core/spacing.spec.js +49 -0
- package/dist/core/spacing.spec.js.map +1 -0
- package/dist/font/index.d.ts +2 -1
- package/dist/font/index.d.ts.map +1 -1
- package/dist/font/index.js +2 -1
- package/dist/font/index.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/theme/index.d.ts +3 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +3 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/theme/theme-config.d.ts +98 -0
- package/dist/theme/theme-config.d.ts.map +1 -0
- package/dist/theme/theme-config.js +156 -0
- package/dist/theme/theme-config.js.map +1 -0
- package/dist/theme/theme-manager.d.ts +108 -0
- package/dist/theme/theme-manager.d.ts.map +1 -0
- package/dist/theme/theme-manager.js +190 -0
- package/dist/theme/theme-manager.js.map +1 -0
- package/dist/theme/type.d.ts +1 -0
- package/dist/theme/type.d.ts.map +1 -0
- package/dist/theme/type.js +2 -0
- package/dist/theme/type.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/is-valid-color.d.ts +13 -0
- package/dist/utils/is-valid-color.d.ts.map +1 -0
- package/dist/utils/is-valid-color.js +32 -0
- package/dist/utils/is-valid-color.js.map +1 -0
- package/dist/utils/is-valid-color.spec.d.ts +2 -0
- package/dist/utils/is-valid-color.spec.d.ts.map +1 -0
- package/dist/utils/is-valid-color.spec.js +82 -0
- package/dist/utils/is-valid-color.spec.js.map +1 -0
- package/package.json +5 -3
- package/dist/color/color-picker.d.ts +0 -13
- package/dist/color/color-picker.d.ts.map +0 -1
- package/dist/color/color-picker.js +0 -61
- package/dist/color/color-picker.js.map +0 -1
- package/dist/color/color-picker.spec.d.ts +0 -2
- package/dist/color/color-picker.spec.d.ts.map +0 -1
- package/dist/color/color-picker.spec.js +0 -41
- package/dist/color/color-picker.spec.js.map +0 -1
- package/dist/color/index.d.ts +0 -3
- package/dist/color/index.d.ts.map +0 -1
- package/dist/color/index.js +0 -3
- package/dist/color/index.js.map +0 -1
- package/dist/color/pallete.js.map +0 -1
- package/dist/font/font-size-picker.d.ts +0 -19
- package/dist/font/font-size-picker.d.ts.map +0 -1
- package/dist/font/font-size-picker.js +0 -24
- package/dist/font/font-size-picker.js.map +0 -1
- package/dist/font/font-size-picker.spec.d.ts +0 -2
- package/dist/font/font-size-picker.spec.d.ts.map +0 -1
- package/dist/font/font-size-picker.spec.js +0 -48
- package/dist/font/font-size-picker.spec.js.map +0 -1
- /package/dist/{color → core}/pallete.d.ts +0 -0
- /package/dist/{color → core}/pallete.js +0 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { ThemeManager } from '../theme/theme-manager';
|
|
2
|
+
/**
|
|
3
|
+
* Spacing scale mapping following Tailwind's spacing scale
|
|
4
|
+
* Values are in pixels, with a base unit of 4px (1 = 4px)
|
|
5
|
+
*/
|
|
6
|
+
export const spacingMap = {
|
|
7
|
+
'0': 0,
|
|
8
|
+
px: 1,
|
|
9
|
+
'0.5': 2,
|
|
10
|
+
'1': 4,
|
|
11
|
+
'1.5': 6,
|
|
12
|
+
'2': 8,
|
|
13
|
+
'2.5': 10,
|
|
14
|
+
'3': 12,
|
|
15
|
+
'3.5': 14,
|
|
16
|
+
'4': 16,
|
|
17
|
+
'5': 20,
|
|
18
|
+
'6': 24,
|
|
19
|
+
'7': 28,
|
|
20
|
+
'8': 32,
|
|
21
|
+
'9': 36,
|
|
22
|
+
'10': 40,
|
|
23
|
+
'11': 44,
|
|
24
|
+
'12': 48,
|
|
25
|
+
'14': 56,
|
|
26
|
+
'16': 64,
|
|
27
|
+
'20': 80,
|
|
28
|
+
'24': 96,
|
|
29
|
+
'28': 112,
|
|
30
|
+
'32': 128,
|
|
31
|
+
'36': 144,
|
|
32
|
+
'40': 160,
|
|
33
|
+
'44': 176,
|
|
34
|
+
'48': 192,
|
|
35
|
+
'52': 208,
|
|
36
|
+
'56': 224,
|
|
37
|
+
'60': 240,
|
|
38
|
+
'64': 256,
|
|
39
|
+
'72': 288,
|
|
40
|
+
'80': 320,
|
|
41
|
+
'96': 384,
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Utility functions for working with spacing values
|
|
45
|
+
*/
|
|
46
|
+
export const Spacing = {
|
|
47
|
+
getValueByKey: (key) => {
|
|
48
|
+
const value = ThemeManager.getToken(`spacing.${key}`);
|
|
49
|
+
if (typeof value === 'number') {
|
|
50
|
+
return value;
|
|
51
|
+
}
|
|
52
|
+
return spacingMap[key] ?? 0;
|
|
53
|
+
},
|
|
54
|
+
/**
|
|
55
|
+
* Get spacing value in pixels
|
|
56
|
+
* @param key - Spacing scale key
|
|
57
|
+
* @returns Pixel value
|
|
58
|
+
*/
|
|
59
|
+
px: (key) => {
|
|
60
|
+
const value = Spacing.getValueByKey(key);
|
|
61
|
+
return value;
|
|
62
|
+
},
|
|
63
|
+
/**
|
|
64
|
+
* Get spacing value in rem units (divided by 16)
|
|
65
|
+
* @param key - Spacing scale key
|
|
66
|
+
* @returns Rem value
|
|
67
|
+
*/
|
|
68
|
+
rem: (key) => {
|
|
69
|
+
const value = Spacing.getValueByKey(key);
|
|
70
|
+
return value / 16;
|
|
71
|
+
},
|
|
72
|
+
/**
|
|
73
|
+
* Get spacing value as CSS pixel string
|
|
74
|
+
* @param key - Spacing scale key
|
|
75
|
+
* @returns CSS pixel value string (e.g. "16px")
|
|
76
|
+
*/
|
|
77
|
+
css: (key) => {
|
|
78
|
+
const value = Spacing.getValueByKey(key);
|
|
79
|
+
return `${value}px`;
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
//# sourceMappingURL=spacing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spacing.js","sourceRoot":"","sources":["../../src/core/spacing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAgDtD;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAe;IACpC,GAAG,EAAE,CAAC;IACN,EAAE,EAAE,CAAC;IACL,KAAK,EAAE,CAAC;IACR,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;IACR,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,EAAE;IACT,GAAG,EAAE,EAAE;IACP,KAAK,EAAE,EAAE;IACT,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;CACV,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,aAAa,EAAE,CAAC,GAAwB,EAAU,EAAE;QAClD,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;QACtD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,UAAU,CAAC,GAAiB,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACH,EAAE,EAAE,CAAC,GAAwB,EAAU,EAAE;QACvC,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,GAAG,EAAE,CAAC,GAAwB,EAAU,EAAE;QACxC,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACzC,OAAO,KAAK,GAAG,EAAE,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,GAAG,EAAE,CAAC,GAAwB,EAAU,EAAE;QACxC,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACzC,OAAO,GAAG,KAAK,IAAI,CAAC;IACtB,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spacing.spec.d.ts","sourceRoot":"","sources":["../../src/core/spacing.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/* eslint-disable no-magic-numbers */
|
|
2
|
+
/* eslint-disable max-lines */
|
|
3
|
+
/* eslint-disable max-lines-per-function */
|
|
4
|
+
/* eslint-disable sonarjs/no-duplicate-string */
|
|
5
|
+
import { afterAll, beforeEach, describe, expect, it } from 'vitest';
|
|
6
|
+
import { ThemeManager } from '../theme/theme-manager';
|
|
7
|
+
import { Spacing } from './spacing';
|
|
8
|
+
describe('Spacing', () => {
|
|
9
|
+
beforeEach(() => {
|
|
10
|
+
ThemeManager.clear();
|
|
11
|
+
});
|
|
12
|
+
afterAll(() => {
|
|
13
|
+
ThemeManager.clear();
|
|
14
|
+
});
|
|
15
|
+
describe('px', () => {
|
|
16
|
+
it('should return pixel values', () => {
|
|
17
|
+
expect(Spacing.px('2')).toBe(8);
|
|
18
|
+
expect(Spacing.px('4')).toBe(16);
|
|
19
|
+
expect(Spacing.px('8')).toBe(32);
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
describe('rem', () => {
|
|
23
|
+
it('should convert pixel values to rem', () => {
|
|
24
|
+
expect(Spacing.rem('16')).toBe(4);
|
|
25
|
+
expect(Spacing.rem('8')).toBe(2);
|
|
26
|
+
expect(Spacing.rem('4')).toBe(1);
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
describe('css', () => {
|
|
30
|
+
it('should return pixel values as CSS strings', () => {
|
|
31
|
+
expect(Spacing.css('2')).toBe('8px');
|
|
32
|
+
expect(Spacing.css('4')).toBe('16px');
|
|
33
|
+
expect(Spacing.css('8')).toBe('32px');
|
|
34
|
+
});
|
|
35
|
+
it('should handle theme values', () => {
|
|
36
|
+
expect(Spacing.css('custom')).toBe('0px');
|
|
37
|
+
expect(Spacing.css('11')).toBe('44px');
|
|
38
|
+
ThemeManager.setThemeObject({
|
|
39
|
+
spacing: {
|
|
40
|
+
custom: 42,
|
|
41
|
+
'11': 100,
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
expect(Spacing.css('custom')).toBe('42px');
|
|
45
|
+
expect(Spacing.css('11')).toBe('100px');
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
//# sourceMappingURL=spacing.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spacing.spec.js","sourceRoot":"","sources":["../../src/core/spacing.spec.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,8BAA8B;AAC9B,2CAA2C;AAC3C,gDAAgD;AAChD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,UAAU,CAAC,GAAG,EAAE;QACd,YAAY,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE;QACZ,YAAY,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE;QAClB,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;QACnB,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;QACnB,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAEvC,YAAY,CAAC,cAAc,CAAC;gBAC1B,OAAO,EAAE;oBACP,MAAM,EAAE,EAAE;oBACV,IAAI,EAAE,GAAG;iBACV;aACF,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3C,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/font/index.d.ts
CHANGED
package/dist/font/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/font/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/font/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC"}
|
package/dist/font/index.js
CHANGED
package/dist/font/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/font/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/font/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
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,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
|
|
@@ -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 @@
|
|
|
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,98 @@
|
|
|
1
|
+
import type { ColorToken } from '../core/color';
|
|
2
|
+
import { type FontSizeKey, type FontSizeMap } from '../core/font-size';
|
|
3
|
+
import { type RadiusMap } from '../core/radius';
|
|
4
|
+
/**
|
|
5
|
+
* Font configuration structure
|
|
6
|
+
*/
|
|
7
|
+
export type FontConfig = {
|
|
8
|
+
[key: string]: string;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Color configuration structure
|
|
12
|
+
*/
|
|
13
|
+
export type ColorConfig = {
|
|
14
|
+
[key: string]: ColorToken | string;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Spacing configuration structure (following Tailwind spacing scale)
|
|
18
|
+
*/
|
|
19
|
+
export type SpacingConfig = {
|
|
20
|
+
[key: string]: number;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Typography configuration structure
|
|
24
|
+
*/
|
|
25
|
+
export type TypographyConfig = {
|
|
26
|
+
[key: string]: {
|
|
27
|
+
fontSize: FontSizeKey | string;
|
|
28
|
+
fontFamily?: string;
|
|
29
|
+
fontWeight?: number | string;
|
|
30
|
+
lineHeight?: number | string;
|
|
31
|
+
letterSpacing?: number | string;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Shadow/Effect configuration structure
|
|
36
|
+
*/
|
|
37
|
+
export type EffectConfig = {
|
|
38
|
+
[key: string]: {
|
|
39
|
+
blur?: number;
|
|
40
|
+
offsetX?: number;
|
|
41
|
+
offsetY?: number;
|
|
42
|
+
color?: ColorToken | string;
|
|
43
|
+
alpha?: number;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Theme override type - allows partial configuration for theming
|
|
48
|
+
*/
|
|
49
|
+
export type ThemeOverride = {
|
|
50
|
+
fonts?: Partial<FontConfig>;
|
|
51
|
+
fontSizes?: Partial<FontSizeMap> & {
|
|
52
|
+
[key: string]: number;
|
|
53
|
+
};
|
|
54
|
+
colors?: Partial<ColorConfig>;
|
|
55
|
+
spacing?: Partial<SpacingConfig>;
|
|
56
|
+
typography?: Partial<TypographyConfig>;
|
|
57
|
+
effects?: Partial<EffectConfig>;
|
|
58
|
+
radius?: Partial<RadiusMap> & {
|
|
59
|
+
[key: string]: number;
|
|
60
|
+
};
|
|
61
|
+
custom?: {
|
|
62
|
+
[key: string]: unknown;
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Base theme configuration structure
|
|
67
|
+
* Supports nested objects for organized design tokens
|
|
68
|
+
*/
|
|
69
|
+
export type BaseThemeConfig = {
|
|
70
|
+
fonts?: FontConfig;
|
|
71
|
+
fontSizes?: FontSizeMap & {
|
|
72
|
+
[key: string]: number;
|
|
73
|
+
};
|
|
74
|
+
colors?: ColorConfig;
|
|
75
|
+
spacing?: SpacingConfig;
|
|
76
|
+
typography?: TypographyConfig;
|
|
77
|
+
effects?: EffectConfig;
|
|
78
|
+
radius?: RadiusMap & {
|
|
79
|
+
[key: string]: number;
|
|
80
|
+
};
|
|
81
|
+
custom?: {
|
|
82
|
+
[key: string]: unknown;
|
|
83
|
+
};
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* Example theme configurations with structured design tokens
|
|
87
|
+
*/
|
|
88
|
+
export declare const defaultLightTheme: BaseThemeConfig;
|
|
89
|
+
export declare const defaultDarkTheme: BaseThemeConfig;
|
|
90
|
+
/**
|
|
91
|
+
* Type helper to create strongly-typed custom themes
|
|
92
|
+
*/
|
|
93
|
+
export type CreateTheme<T extends BaseThemeConfig> = T;
|
|
94
|
+
/**
|
|
95
|
+
* Type helper to extract theme token keys
|
|
96
|
+
*/
|
|
97
|
+
export type ThemeTokenKeys<T extends BaseThemeConfig> = keyof T;
|
|
98
|
+
//# 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,156 @@
|
|
|
1
|
+
import { fontSizeMap, } from '../core/font-size';
|
|
2
|
+
import { radiusMap } from '../core/radius';
|
|
3
|
+
import { spacingMap } from '../core/spacing';
|
|
4
|
+
/**
|
|
5
|
+
* Example theme configurations with structured design tokens
|
|
6
|
+
*/
|
|
7
|
+
export const defaultLightTheme = {
|
|
8
|
+
fonts: {
|
|
9
|
+
primary: 'Inter, system-ui, sans-serif',
|
|
10
|
+
secondary: 'Roboto, Arial, sans-serif',
|
|
11
|
+
monospace: 'Fira Code, Consolas, monospace',
|
|
12
|
+
display: 'Poppins, Inter, sans-serif',
|
|
13
|
+
},
|
|
14
|
+
fontSizes: { ...fontSizeMap },
|
|
15
|
+
colors: {
|
|
16
|
+
// Primary colors
|
|
17
|
+
primary: 'blue-600',
|
|
18
|
+
secondary: 'gray-600',
|
|
19
|
+
// Semantic colors
|
|
20
|
+
success: 'green-500',
|
|
21
|
+
warning: 'yellow-500',
|
|
22
|
+
error: 'red-500',
|
|
23
|
+
info: 'blue-400',
|
|
24
|
+
// Background colors
|
|
25
|
+
background: 'white',
|
|
26
|
+
// Text colors
|
|
27
|
+
text: 'gray-900',
|
|
28
|
+
// UI elements
|
|
29
|
+
shadow: 'black',
|
|
30
|
+
overlay: 'black',
|
|
31
|
+
},
|
|
32
|
+
spacing: { ...spacingMap },
|
|
33
|
+
typography: {
|
|
34
|
+
heading: {
|
|
35
|
+
fontSize: '2xl',
|
|
36
|
+
fontFamily: 'fonts.display',
|
|
37
|
+
fontWeight: 600,
|
|
38
|
+
lineHeight: 1.2,
|
|
39
|
+
},
|
|
40
|
+
'heading-large': {
|
|
41
|
+
fontSize: '4xl',
|
|
42
|
+
fontFamily: 'fonts.display',
|
|
43
|
+
fontWeight: 700,
|
|
44
|
+
lineHeight: 1.1,
|
|
45
|
+
},
|
|
46
|
+
body: {
|
|
47
|
+
fontSize: 'base',
|
|
48
|
+
fontFamily: 'fonts.primary',
|
|
49
|
+
fontWeight: 400,
|
|
50
|
+
lineHeight: 1.5,
|
|
51
|
+
},
|
|
52
|
+
caption: {
|
|
53
|
+
fontSize: 'sm',
|
|
54
|
+
fontFamily: 'fonts.primary',
|
|
55
|
+
fontWeight: 400,
|
|
56
|
+
lineHeight: 1.4,
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
effects: {
|
|
60
|
+
'shadow-sm': {
|
|
61
|
+
blur: 2,
|
|
62
|
+
offsetY: 1,
|
|
63
|
+
color: 'colors.shadow',
|
|
64
|
+
alpha: 0.05,
|
|
65
|
+
},
|
|
66
|
+
'shadow-md': {
|
|
67
|
+
blur: 4,
|
|
68
|
+
offsetY: 2,
|
|
69
|
+
color: 'colors.shadow',
|
|
70
|
+
alpha: 0.1,
|
|
71
|
+
},
|
|
72
|
+
'shadow-lg': {
|
|
73
|
+
blur: 8,
|
|
74
|
+
offsetY: 4,
|
|
75
|
+
color: 'colors.shadow',
|
|
76
|
+
alpha: 0.1,
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
custom: {},
|
|
80
|
+
};
|
|
81
|
+
export const defaultDarkTheme = {
|
|
82
|
+
fonts: {
|
|
83
|
+
primary: 'Inter, system-ui, sans-serif',
|
|
84
|
+
secondary: 'Roboto, Arial, sans-serif',
|
|
85
|
+
monospace: 'Fira Code, Consolas, monospace',
|
|
86
|
+
display: 'Poppins, Inter, sans-serif',
|
|
87
|
+
},
|
|
88
|
+
fontSizes: { ...fontSizeMap },
|
|
89
|
+
radius: { ...radiusMap },
|
|
90
|
+
colors: {
|
|
91
|
+
// Primary colors
|
|
92
|
+
primary: 'blue-400',
|
|
93
|
+
secondary: 'gray-400',
|
|
94
|
+
// Semantic colors
|
|
95
|
+
success: 'green-400',
|
|
96
|
+
warning: 'yellow-400',
|
|
97
|
+
error: 'red-400',
|
|
98
|
+
info: 'blue-300',
|
|
99
|
+
// Background colors
|
|
100
|
+
background: 'gray-900',
|
|
101
|
+
// Text colors
|
|
102
|
+
text: 'white',
|
|
103
|
+
// UI elements
|
|
104
|
+
shadow: 'black',
|
|
105
|
+
overlay: 'black',
|
|
106
|
+
},
|
|
107
|
+
spacing: { ...spacingMap },
|
|
108
|
+
typography: {
|
|
109
|
+
heading: {
|
|
110
|
+
fontSize: '2xl',
|
|
111
|
+
fontFamily: 'fonts.display',
|
|
112
|
+
fontWeight: 600,
|
|
113
|
+
lineHeight: 1.2,
|
|
114
|
+
},
|
|
115
|
+
'heading-large': {
|
|
116
|
+
fontSize: '4xl',
|
|
117
|
+
fontFamily: 'fonts.display',
|
|
118
|
+
fontWeight: 700,
|
|
119
|
+
lineHeight: 1.1,
|
|
120
|
+
},
|
|
121
|
+
body: {
|
|
122
|
+
fontSize: 'base',
|
|
123
|
+
fontFamily: 'fonts.primary',
|
|
124
|
+
fontWeight: 400,
|
|
125
|
+
lineHeight: 1.5,
|
|
126
|
+
},
|
|
127
|
+
caption: {
|
|
128
|
+
fontSize: 'sm',
|
|
129
|
+
fontFamily: 'fonts.primary',
|
|
130
|
+
fontWeight: 400,
|
|
131
|
+
lineHeight: 1.4,
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
effects: {
|
|
135
|
+
'shadow-sm': {
|
|
136
|
+
blur: 2,
|
|
137
|
+
offsetY: 1,
|
|
138
|
+
color: 'colors.shadow',
|
|
139
|
+
alpha: 0.1,
|
|
140
|
+
},
|
|
141
|
+
'shadow-md': {
|
|
142
|
+
blur: 4,
|
|
143
|
+
offsetY: 2,
|
|
144
|
+
color: 'colors.shadow',
|
|
145
|
+
alpha: 0.15,
|
|
146
|
+
},
|
|
147
|
+
'shadow-lg': {
|
|
148
|
+
blur: 8,
|
|
149
|
+
offsetY: 4,
|
|
150
|
+
color: 'colors.shadow',
|
|
151
|
+
alpha: 0.2,
|
|
152
|
+
},
|
|
153
|
+
},
|
|
154
|
+
custom: {},
|
|
155
|
+
};
|
|
156
|
+
//# 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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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { type BaseThemeConfig, type ThemeOverride } from './theme-config';
|
|
2
|
+
/**
|
|
3
|
+
* Global theme manager for Phaser Wind
|
|
4
|
+
* Handles theme registration, switching, and token resolution with nested object support
|
|
5
|
+
*/
|
|
6
|
+
declare class ThemeManagerClass {
|
|
7
|
+
private currentTheme;
|
|
8
|
+
private registeredThemes;
|
|
9
|
+
private listeners;
|
|
10
|
+
/**
|
|
11
|
+
* Initialize the theme manager with a default theme
|
|
12
|
+
*/
|
|
13
|
+
init<T extends BaseThemeConfig>(theme: T, type?: 'light' | 'dark'): void;
|
|
14
|
+
/**
|
|
15
|
+
* Register a named theme
|
|
16
|
+
*/
|
|
17
|
+
registerTheme<T extends BaseThemeConfig>(name: string, theme: T): void;
|
|
18
|
+
/**
|
|
19
|
+
* Switch to a registered theme by name
|
|
20
|
+
*/
|
|
21
|
+
setTheme(name: string): void;
|
|
22
|
+
/**
|
|
23
|
+
* Set theme directly with object by merging with current theme
|
|
24
|
+
* This method will merge the provided theme object with the current theme:
|
|
25
|
+
* - Existing properties will be replaced with new values
|
|
26
|
+
* - New properties will be added
|
|
27
|
+
* - Properties not specified in the new theme will be preserved
|
|
28
|
+
*
|
|
29
|
+
* Example:
|
|
30
|
+
* Current theme: { colors: { primary: 'blue', secondary: 'gray' } }
|
|
31
|
+
* New theme: { colors: { primary: 'red', accent: 'yellow' } }
|
|
32
|
+
* Result: { colors: { primary: 'red', secondary: 'gray', accent: 'yellow' } }
|
|
33
|
+
*/
|
|
34
|
+
setThemeObject(theme: ThemeOverride): void;
|
|
35
|
+
/**
|
|
36
|
+
* Get the current theme
|
|
37
|
+
*/
|
|
38
|
+
getCurrentTheme(): BaseThemeConfig;
|
|
39
|
+
/**
|
|
40
|
+
* Get a nested token using dot notation (e.g., 'colors.primary', 'fonts.display')
|
|
41
|
+
* @param path - The path to the token (e.g., 'colors.primary')
|
|
42
|
+
* @returns The resolved token value
|
|
43
|
+
*/
|
|
44
|
+
getToken(path: string): unknown;
|
|
45
|
+
/**
|
|
46
|
+
* Check if a nested token exists using dot notation
|
|
47
|
+
* @param path - The path to check (e.g., 'colors.primary')
|
|
48
|
+
* @returns True if the token exists
|
|
49
|
+
*/
|
|
50
|
+
hasToken(path: string): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Get a token with type safety for specific namespaces
|
|
53
|
+
*/
|
|
54
|
+
getColorToken(key: string): string | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Get a font token
|
|
57
|
+
*/
|
|
58
|
+
getFontToken(key: string): string | undefined;
|
|
59
|
+
/**
|
|
60
|
+
* Get a spacing token
|
|
61
|
+
*/
|
|
62
|
+
getSpacingToken(key: string): number | undefined;
|
|
63
|
+
/**
|
|
64
|
+
* Get a typography token
|
|
65
|
+
*/
|
|
66
|
+
getTypographyToken(key: string): unknown;
|
|
67
|
+
/**
|
|
68
|
+
* Get an effect token
|
|
69
|
+
*/
|
|
70
|
+
getEffectToken(key: string): unknown;
|
|
71
|
+
/**
|
|
72
|
+
* Resolve a theme reference (e.g., 'colors.primary' -> actual color value)
|
|
73
|
+
* This allows theme tokens to reference other theme tokens
|
|
74
|
+
*/
|
|
75
|
+
resolveToken(value: string): unknown;
|
|
76
|
+
/**
|
|
77
|
+
* Listen for theme changes
|
|
78
|
+
*/
|
|
79
|
+
onThemeChange(listener: (theme: BaseThemeConfig) => void): () => void;
|
|
80
|
+
/**
|
|
81
|
+
* Get all registered theme names
|
|
82
|
+
*/
|
|
83
|
+
getRegisteredThemes(): string[];
|
|
84
|
+
/**
|
|
85
|
+
* Create a new theme based on the current one with overrides
|
|
86
|
+
*/
|
|
87
|
+
extendCurrentTheme<T extends BaseThemeConfig>(overrides: Partial<T>): BaseThemeConfig;
|
|
88
|
+
/**
|
|
89
|
+
* Reset to default theme
|
|
90
|
+
*/
|
|
91
|
+
reset(): void;
|
|
92
|
+
/**
|
|
93
|
+
* Clear all registered themes and reset to default
|
|
94
|
+
*/
|
|
95
|
+
clear(): void;
|
|
96
|
+
private notifyListeners;
|
|
97
|
+
/**
|
|
98
|
+
* Helper method to get nested values using dot notation
|
|
99
|
+
* @param obj - The object to search in
|
|
100
|
+
* @param path - The dot notation path (e.g., 'colors.primary')
|
|
101
|
+
* @returns The value at the path or undefined
|
|
102
|
+
*/
|
|
103
|
+
private getNestedValue;
|
|
104
|
+
}
|
|
105
|
+
export declare const ThemeManager: ThemeManagerClass;
|
|
106
|
+
export declare const createTheme: <T extends ThemeOverride>(theme: T) => T;
|
|
107
|
+
export {};
|
|
108
|
+
//# sourceMappingURL=theme-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-manager.d.ts","sourceRoot":"","sources":["../../src/theme/theme-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,aAAa,EAGnB,MAAM,gBAAgB,CAAC;AAExB;;;GAGG;AACH,cAAM,iBAAiB;IACrB,OAAO,CAAC,YAAY,CAAsC;IAC1D,OAAO,CAAC,gBAAgB,CAA2C;IACnE,OAAO,CAAC,SAAS,CAA+C;IAEhE;;OAEG;IACH,IAAI,CAAC,CAAC,SAAS,eAAe,EAC5B,KAAK,EAAE,CAAC,EACR,IAAI,GAAE,OAAO,GAAG,MAAgB,GAC/B,IAAI;IASP;;OAEG;IACH,aAAa,CAAC,CAAC,SAAS,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAItE;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAc5B;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAK1C;;OAEG;IACH,eAAe,IAAI,eAAe;IAIlC;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI/B;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI/B;;OAEG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAK9C;;OAEG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAK7C;;OAEG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAKhD;;OAEG;IACH,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIxC;;OAEG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIpC;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAcpC;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,GAAG,MAAM,IAAI;IAYrE;;OAEG;IACH,mBAAmB,IAAI,MAAM,EAAE;IAI/B;;OAEG;IACH,kBAAkB,CAAC,CAAC,SAAS,eAAe,EAC1C,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,GACpB,eAAe;IAIlB;;OAEG;IACH,KAAK,IAAI,IAAI;IAQb;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb,OAAO,CAAC,eAAe;IAIvB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;CAOvB;AAGD,eAAO,MAAM,YAAY,mBAA0B,CAAC;AAGpD,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,aAAa,EAAE,OAAO,CAAC,KAAG,CAC3B,CAAC"}
|