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.
- package/README.md +124 -135
- 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/{font/font-picker.d.ts → core/font.d.ts} +22 -21
- package/dist/core/font.d.ts.map +1 -0
- package/dist/{font/font-picker.js → core/font.js} +28 -62
- 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 -2
- package/dist/font/index.d.ts.map +1 -1
- package/dist/font/index.js +2 -2
- package/dist/font/index.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/theme/theme-config.d.ts +31 -95
- package/dist/theme/theme-config.d.ts.map +1 -1
- package/dist/theme/theme-config.js +12 -52
- package/dist/theme/theme-config.js.map +1 -1
- package/dist/theme/theme-manager.d.ts +18 -6
- package/dist/theme/theme-manager.d.ts.map +1 -1
- package/dist/theme/theme-manager.js +25 -6
- package/dist/theme/theme-manager.js.map +1 -1
- 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 -23
- package/dist/color/color-picker.d.ts.map +0 -1
- package/dist/color/color-picker.js +0 -118
- 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 -60
- 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/examples/nested-theme-example.d.ts +0 -28
- package/dist/examples/nested-theme-example.d.ts.map +0 -1
- package/dist/examples/nested-theme-example.js +0 -313
- package/dist/examples/nested-theme-example.js.map +0 -1
- package/dist/examples/usage-example.d.ts +0 -17
- package/dist/examples/usage-example.d.ts.map +0 -1
- package/dist/examples/usage-example.js +0 -158
- package/dist/examples/usage-example.js.map +0 -1
- package/dist/font/font-picker.d.ts.map +0 -1
- package/dist/font/font-picker.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 @@
|
|
|
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
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from '
|
|
2
|
-
export * from '
|
|
1
|
+
export * from '../core/font';
|
|
2
|
+
export * from '../core/font-size';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
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
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from '
|
|
2
|
-
export * from '
|
|
1
|
+
export * from '../core/font';
|
|
2
|
+
export * from '../core/font-size';
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
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,
|
|
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,
|
|
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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { ColorToken } from '../
|
|
2
|
-
import type
|
|
1
|
+
import type { ColorToken } from '../core/color';
|
|
2
|
+
import { type FontSizeKey, type FontSizeMap } from '../core/font-size';
|
|
3
|
+
import { type RadiusMap } from '../core/radius';
|
|
3
4
|
/**
|
|
4
5
|
* Font configuration structure
|
|
5
6
|
*/
|
|
@@ -42,115 +43,50 @@ export type EffectConfig = {
|
|
|
42
43
|
alpha?: number;
|
|
43
44
|
};
|
|
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
|
+
};
|
|
45
65
|
/**
|
|
46
66
|
* Base theme configuration structure
|
|
47
67
|
* Supports nested objects for organized design tokens
|
|
48
68
|
*/
|
|
49
69
|
export type BaseThemeConfig = {
|
|
50
70
|
fonts?: FontConfig;
|
|
71
|
+
fontSizes?: FontSizeMap & {
|
|
72
|
+
[key: string]: number;
|
|
73
|
+
};
|
|
51
74
|
colors?: ColorConfig;
|
|
52
75
|
spacing?: SpacingConfig;
|
|
53
76
|
typography?: TypographyConfig;
|
|
54
77
|
effects?: EffectConfig;
|
|
55
|
-
|
|
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
|
-
};
|
|
78
|
+
radius?: RadiusMap & {
|
|
79
|
+
[key: string]: number;
|
|
127
80
|
};
|
|
128
|
-
|
|
129
|
-
|
|
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
|
-
};
|
|
81
|
+
custom?: {
|
|
82
|
+
[key: string]: unknown;
|
|
147
83
|
};
|
|
148
84
|
};
|
|
149
85
|
/**
|
|
150
86
|
* Example theme configurations with structured design tokens
|
|
151
87
|
*/
|
|
152
|
-
export declare const defaultLightTheme:
|
|
153
|
-
export declare const defaultDarkTheme:
|
|
88
|
+
export declare const defaultLightTheme: BaseThemeConfig;
|
|
89
|
+
export declare const defaultDarkTheme: BaseThemeConfig;
|
|
154
90
|
/**
|
|
155
91
|
* Type helper to create strongly-typed custom themes
|
|
156
92
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-config.d.ts","sourceRoot":"","sources":["../../src/theme/theme-config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"theme-config.d.ts","sourceRoot":"","sources":["../../src/theme/theme-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { fontSizeMap, } from '../core/font-size';
|
|
2
|
+
import { radiusMap } from '../core/radius';
|
|
3
|
+
import { spacingMap } from '../core/spacing';
|
|
1
4
|
/**
|
|
2
5
|
* Example theme configurations with structured design tokens
|
|
3
6
|
*/
|
|
@@ -8,11 +11,11 @@ export const defaultLightTheme = {
|
|
|
8
11
|
monospace: 'Fira Code, Consolas, monospace',
|
|
9
12
|
display: 'Poppins, Inter, sans-serif',
|
|
10
13
|
},
|
|
14
|
+
fontSizes: { ...fontSizeMap },
|
|
11
15
|
colors: {
|
|
12
16
|
// Primary colors
|
|
13
17
|
primary: 'blue-600',
|
|
14
18
|
secondary: 'gray-600',
|
|
15
|
-
accent: 'purple-500',
|
|
16
19
|
// Semantic colors
|
|
17
20
|
success: 'green-500',
|
|
18
21
|
warning: 'yellow-500',
|
|
@@ -20,36 +23,13 @@ export const defaultLightTheme = {
|
|
|
20
23
|
info: 'blue-400',
|
|
21
24
|
// Background colors
|
|
22
25
|
background: 'white',
|
|
23
|
-
'background-secondary': 'gray-50',
|
|
24
|
-
'background-panel': 'gray-100',
|
|
25
|
-
'background-modal': 'white',
|
|
26
26
|
// Text colors
|
|
27
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
28
|
// UI elements
|
|
40
29
|
shadow: 'black',
|
|
41
30
|
overlay: 'black',
|
|
42
31
|
},
|
|
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
|
-
},
|
|
32
|
+
spacing: { ...spacingMap },
|
|
53
33
|
typography: {
|
|
54
34
|
heading: {
|
|
55
35
|
fontSize: '2xl',
|
|
@@ -64,7 +44,7 @@ export const defaultLightTheme = {
|
|
|
64
44
|
lineHeight: 1.1,
|
|
65
45
|
},
|
|
66
46
|
body: {
|
|
67
|
-
fontSize: '
|
|
47
|
+
fontSize: 'base',
|
|
68
48
|
fontFamily: 'fonts.primary',
|
|
69
49
|
fontWeight: 400,
|
|
70
50
|
lineHeight: 1.5,
|
|
@@ -96,6 +76,7 @@ export const defaultLightTheme = {
|
|
|
96
76
|
alpha: 0.1,
|
|
97
77
|
},
|
|
98
78
|
},
|
|
79
|
+
custom: {},
|
|
99
80
|
};
|
|
100
81
|
export const defaultDarkTheme = {
|
|
101
82
|
fonts: {
|
|
@@ -104,11 +85,12 @@ export const defaultDarkTheme = {
|
|
|
104
85
|
monospace: 'Fira Code, Consolas, monospace',
|
|
105
86
|
display: 'Poppins, Inter, sans-serif',
|
|
106
87
|
},
|
|
88
|
+
fontSizes: { ...fontSizeMap },
|
|
89
|
+
radius: { ...radiusMap },
|
|
107
90
|
colors: {
|
|
108
91
|
// Primary colors
|
|
109
92
|
primary: 'blue-400',
|
|
110
93
|
secondary: 'gray-400',
|
|
111
|
-
accent: 'purple-400',
|
|
112
94
|
// Semantic colors
|
|
113
95
|
success: 'green-400',
|
|
114
96
|
warning: 'yellow-400',
|
|
@@ -116,36 +98,13 @@ export const defaultDarkTheme = {
|
|
|
116
98
|
info: 'blue-300',
|
|
117
99
|
// Background colors
|
|
118
100
|
background: 'gray-900',
|
|
119
|
-
'background-secondary': 'gray-800',
|
|
120
|
-
'background-panel': 'gray-700',
|
|
121
|
-
'background-modal': 'gray-800',
|
|
122
101
|
// Text colors
|
|
123
102
|
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
103
|
// UI elements
|
|
136
104
|
shadow: 'black',
|
|
137
105
|
overlay: 'black',
|
|
138
106
|
},
|
|
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
|
-
},
|
|
107
|
+
spacing: { ...spacingMap },
|
|
149
108
|
typography: {
|
|
150
109
|
heading: {
|
|
151
110
|
fontSize: '2xl',
|
|
@@ -160,7 +119,7 @@ export const defaultDarkTheme = {
|
|
|
160
119
|
lineHeight: 1.1,
|
|
161
120
|
},
|
|
162
121
|
body: {
|
|
163
|
-
fontSize: '
|
|
122
|
+
fontSize: 'base',
|
|
164
123
|
fontFamily: 'fonts.primary',
|
|
165
124
|
fontWeight: 400,
|
|
166
125
|
lineHeight: 1.5,
|
|
@@ -192,5 +151,6 @@ export const defaultDarkTheme = {
|
|
|
192
151
|
alpha: 0.2,
|
|
193
152
|
},
|
|
194
153
|
},
|
|
154
|
+
custom: {},
|
|
195
155
|
};
|
|
196
156
|
//# sourceMappingURL=theme-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-config.js","sourceRoot":"","sources":["../../src/theme/theme-config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"theme-config.js","sourceRoot":"","sources":["../../src/theme/theme-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type BaseThemeConfig, type
|
|
1
|
+
import { type BaseThemeConfig, type ThemeOverride } from './theme-config';
|
|
2
2
|
/**
|
|
3
3
|
* Global theme manager for Phaser Wind
|
|
4
4
|
* Handles theme registration, switching, and token resolution with nested object support
|
|
@@ -10,7 +10,7 @@ declare class ThemeManagerClass {
|
|
|
10
10
|
/**
|
|
11
11
|
* Initialize the theme manager with a default theme
|
|
12
12
|
*/
|
|
13
|
-
init<T extends BaseThemeConfig>(theme: T): void;
|
|
13
|
+
init<T extends BaseThemeConfig>(theme: T, type?: 'light' | 'dark'): void;
|
|
14
14
|
/**
|
|
15
15
|
* Register a named theme
|
|
16
16
|
*/
|
|
@@ -20,9 +20,18 @@ declare class ThemeManagerClass {
|
|
|
20
20
|
*/
|
|
21
21
|
setTheme(name: string): void;
|
|
22
22
|
/**
|
|
23
|
-
* Set theme directly with object
|
|
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' } }
|
|
24
33
|
*/
|
|
25
|
-
setThemeObject
|
|
34
|
+
setThemeObject(theme: ThemeOverride): void;
|
|
26
35
|
/**
|
|
27
36
|
* Get the current theme
|
|
28
37
|
*/
|
|
@@ -80,6 +89,10 @@ declare class ThemeManagerClass {
|
|
|
80
89
|
* Reset to default theme
|
|
81
90
|
*/
|
|
82
91
|
reset(): void;
|
|
92
|
+
/**
|
|
93
|
+
* Clear all registered themes and reset to default
|
|
94
|
+
*/
|
|
95
|
+
clear(): void;
|
|
83
96
|
private notifyListeners;
|
|
84
97
|
/**
|
|
85
98
|
* Helper method to get nested values using dot notation
|
|
@@ -90,7 +103,6 @@ declare class ThemeManagerClass {
|
|
|
90
103
|
private getNestedValue;
|
|
91
104
|
}
|
|
92
105
|
export declare const ThemeManager: ThemeManagerClass;
|
|
93
|
-
export declare const createTheme: <T extends
|
|
94
|
-
export type ThemeConfig<T extends BaseThemeConfig = DefaultThemeStructure> = T;
|
|
106
|
+
export declare const createTheme: <T extends ThemeOverride>(theme: T) => T;
|
|
95
107
|
export {};
|
|
96
108
|
//# sourceMappingURL=theme-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-manager.d.ts","sourceRoot":"","sources":["../../src/theme/theme-manager.ts"],"names":[],"mappings":"
|
|
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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import merge from 'lodash/merge';
|
|
2
|
+
import { defaultDarkTheme, defaultLightTheme, } from './theme-config';
|
|
2
3
|
/**
|
|
3
4
|
* Global theme manager for Phaser Wind
|
|
4
5
|
* Handles theme registration, switching, and token resolution with nested object support
|
|
@@ -10,8 +11,8 @@ class ThemeManagerClass {
|
|
|
10
11
|
/**
|
|
11
12
|
* Initialize the theme manager with a default theme
|
|
12
13
|
*/
|
|
13
|
-
init(theme) {
|
|
14
|
-
this.currentTheme = theme;
|
|
14
|
+
init(theme, type = 'light') {
|
|
15
|
+
this.currentTheme = merge({}, type === 'light' ? defaultLightTheme : defaultDarkTheme, theme);
|
|
15
16
|
this.registerTheme('default', theme);
|
|
16
17
|
}
|
|
17
18
|
/**
|
|
@@ -34,10 +35,19 @@ class ThemeManagerClass {
|
|
|
34
35
|
this.notifyListeners();
|
|
35
36
|
}
|
|
36
37
|
/**
|
|
37
|
-
* Set theme directly with object
|
|
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' } }
|
|
38
48
|
*/
|
|
39
49
|
setThemeObject(theme) {
|
|
40
|
-
this.currentTheme = theme;
|
|
50
|
+
this.currentTheme = merge({}, this.currentTheme, theme);
|
|
41
51
|
this.notifyListeners();
|
|
42
52
|
}
|
|
43
53
|
/**
|
|
@@ -147,6 +157,15 @@ class ThemeManagerClass {
|
|
|
147
157
|
this.notifyListeners();
|
|
148
158
|
}
|
|
149
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
|
+
}
|
|
150
169
|
notifyListeners() {
|
|
151
170
|
this.listeners.forEach(listener => listener(this.currentTheme));
|
|
152
171
|
}
|
|
@@ -167,5 +186,5 @@ class ThemeManagerClass {
|
|
|
167
186
|
// Export singleton instance
|
|
168
187
|
export const ThemeManager = new ThemeManagerClass();
|
|
169
188
|
// Type helper for creating themes with proper typing
|
|
170
|
-
export const createTheme = (theme) => theme;
|
|
189
|
+
export const createTheme = (theme) => merge({}, defaultLightTheme, theme);
|
|
171
190
|
//# sourceMappingURL=theme-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-manager.js","sourceRoot":"","sources":["../../src/theme/theme-manager.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"theme-manager.js","sourceRoot":"","sources":["../../src/theme/theme-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -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 @@
|
|
|
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"}
|