phaser-wind 0.2.0 → 0.4.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 (139) hide show
  1. package/README.md +243 -215
  2. package/dist/components/column.d.ts +1 -0
  3. package/dist/components/column.d.ts.map +1 -0
  4. package/dist/components/column.js +7 -0
  5. package/dist/components/column.js.map +1 -0
  6. package/dist/core/color.d.ts +154 -0
  7. package/dist/core/color.d.ts.map +1 -0
  8. package/dist/core/color.js +205 -0
  9. package/dist/core/color.js.map +1 -0
  10. package/dist/core/color.spec.d.ts +2 -0
  11. package/dist/core/color.spec.d.ts.map +1 -0
  12. package/dist/core/color.spec.js +243 -0
  13. package/dist/core/color.spec.js.map +1 -0
  14. package/dist/core/font-size.d.ts +55 -0
  15. package/dist/core/font-size.d.ts.map +1 -0
  16. package/dist/core/font-size.js +63 -0
  17. package/dist/core/font-size.js.map +1 -0
  18. package/dist/core/font-size.spec.d.ts +2 -0
  19. package/dist/core/font-size.spec.d.ts.map +1 -0
  20. package/dist/core/font-size.spec.js +85 -0
  21. package/dist/core/font-size.spec.js.map +1 -0
  22. package/dist/core/font.d.ts +21 -0
  23. package/dist/core/font.d.ts.map +1 -0
  24. package/dist/core/font.js +37 -0
  25. package/dist/core/font.js.map +1 -0
  26. package/dist/core/font.spec.d.ts +2 -0
  27. package/dist/core/font.spec.d.ts.map +1 -0
  28. package/dist/core/font.spec.js +80 -0
  29. package/dist/core/font.spec.js.map +1 -0
  30. package/dist/core/index.d.ts +8 -0
  31. package/dist/core/index.d.ts.map +1 -0
  32. package/dist/core/index.js +8 -0
  33. package/dist/core/index.js.map +1 -0
  34. package/dist/{color/pallete.d.ts → core/palette.d.ts} +2 -2
  35. package/dist/core/palette.d.ts.map +1 -0
  36. package/dist/{color/pallete.js → core/palette.js} +2 -2
  37. package/dist/core/palette.js.map +1 -0
  38. package/dist/core/radius.d.ts +29 -0
  39. package/dist/core/radius.d.ts.map +1 -0
  40. package/dist/core/radius.js +38 -0
  41. package/dist/core/radius.js.map +1 -0
  42. package/dist/core/radius.spec.d.ts +2 -0
  43. package/dist/core/radius.spec.d.ts.map +1 -0
  44. package/dist/core/radius.spec.js +56 -0
  45. package/dist/core/radius.spec.js.map +1 -0
  46. package/dist/core/shadow.d.ts +31 -0
  47. package/dist/core/shadow.d.ts.map +1 -0
  48. package/dist/core/shadow.js +33 -0
  49. package/dist/core/shadow.js.map +1 -0
  50. package/dist/core/shadow.spec.d.ts +2 -0
  51. package/dist/core/shadow.spec.d.ts.map +1 -0
  52. package/dist/core/shadow.spec.js +21 -0
  53. package/dist/core/shadow.spec.js.map +1 -0
  54. package/dist/core/spacing.d.ts +32 -0
  55. package/dist/core/spacing.d.ts.map +1 -0
  56. package/dist/core/spacing.js +70 -0
  57. package/dist/core/spacing.js.map +1 -0
  58. package/dist/core/spacing.spec.d.ts +2 -0
  59. package/dist/core/spacing.spec.d.ts.map +1 -0
  60. package/dist/core/spacing.spec.js +38 -0
  61. package/dist/core/spacing.spec.js.map +1 -0
  62. package/dist/exceptions.d.ts +1 -0
  63. package/dist/exceptions.d.ts.map +1 -0
  64. package/dist/exceptions.js +2 -0
  65. package/dist/exceptions.js.map +1 -0
  66. package/dist/font/index.d.ts +2 -2
  67. package/dist/font/index.d.ts.map +1 -1
  68. package/dist/font/index.js +2 -2
  69. package/dist/font/index.js.map +1 -1
  70. package/dist/index.d.ts +3 -1
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +3 -1
  73. package/dist/index.js.map +1 -1
  74. package/dist/plugin/index.d.ts +2 -0
  75. package/dist/plugin/index.d.ts.map +1 -0
  76. package/dist/plugin/index.js +2 -0
  77. package/dist/plugin/index.js.map +1 -0
  78. package/dist/plugin/plugin.d.ts +71 -0
  79. package/dist/plugin/plugin.d.ts.map +1 -0
  80. package/dist/plugin/plugin.js +91 -0
  81. package/dist/plugin/plugin.js.map +1 -0
  82. package/dist/theme/theme-config.d.ts +44 -132
  83. package/dist/theme/theme-config.d.ts.map +1 -1
  84. package/dist/theme/theme-config.js +15 -52
  85. package/dist/theme/theme-config.js.map +1 -1
  86. package/dist/theme/theme-manager.d.ts +2 -95
  87. package/dist/theme/theme-manager.d.ts.map +1 -1
  88. package/dist/theme/theme-manager.js +3 -170
  89. package/dist/theme/theme-manager.js.map +1 -1
  90. package/dist/theme/type.d.ts +48 -0
  91. package/dist/theme/type.d.ts.map +1 -1
  92. package/dist/theme/type.js +1 -1
  93. package/dist/utils/index.d.ts +2 -0
  94. package/dist/utils/index.d.ts.map +1 -0
  95. package/dist/utils/index.js +2 -0
  96. package/dist/utils/index.js.map +1 -0
  97. package/dist/utils/is-valid-color.d.ts +13 -0
  98. package/dist/utils/is-valid-color.d.ts.map +1 -0
  99. package/dist/utils/is-valid-color.js +32 -0
  100. package/dist/utils/is-valid-color.js.map +1 -0
  101. package/dist/utils/is-valid-color.spec.d.ts +2 -0
  102. package/dist/utils/is-valid-color.spec.d.ts.map +1 -0
  103. package/dist/utils/is-valid-color.spec.js +82 -0
  104. package/dist/utils/is-valid-color.spec.js.map +1 -0
  105. package/package.json +6 -4
  106. package/dist/color/color-picker.d.ts +0 -23
  107. package/dist/color/color-picker.d.ts.map +0 -1
  108. package/dist/color/color-picker.js +0 -118
  109. package/dist/color/color-picker.js.map +0 -1
  110. package/dist/color/color-picker.spec.d.ts +0 -2
  111. package/dist/color/color-picker.spec.d.ts.map +0 -1
  112. package/dist/color/color-picker.spec.js +0 -60
  113. package/dist/color/color-picker.spec.js.map +0 -1
  114. package/dist/color/index.d.ts +0 -3
  115. package/dist/color/index.d.ts.map +0 -1
  116. package/dist/color/index.js +0 -3
  117. package/dist/color/index.js.map +0 -1
  118. package/dist/color/pallete.d.ts.map +0 -1
  119. package/dist/color/pallete.js.map +0 -1
  120. package/dist/examples/nested-theme-example.d.ts +0 -28
  121. package/dist/examples/nested-theme-example.d.ts.map +0 -1
  122. package/dist/examples/nested-theme-example.js +0 -313
  123. package/dist/examples/nested-theme-example.js.map +0 -1
  124. package/dist/examples/usage-example.d.ts +0 -17
  125. package/dist/examples/usage-example.d.ts.map +0 -1
  126. package/dist/examples/usage-example.js +0 -158
  127. package/dist/examples/usage-example.js.map +0 -1
  128. package/dist/font/font-picker.d.ts +0 -93
  129. package/dist/font/font-picker.d.ts.map +0 -1
  130. package/dist/font/font-picker.js +0 -212
  131. package/dist/font/font-picker.js.map +0 -1
  132. package/dist/font/font-size-picker.d.ts +0 -19
  133. package/dist/font/font-size-picker.d.ts.map +0 -1
  134. package/dist/font/font-size-picker.js +0 -24
  135. package/dist/font/font-size-picker.js.map +0 -1
  136. package/dist/font/font-size-picker.spec.d.ts +0 -2
  137. package/dist/font/font-size-picker.spec.d.ts.map +0 -1
  138. package/dist/font/font-size-picker.spec.js +0 -48
  139. package/dist/font/font-size-picker.spec.js.map +0 -1
@@ -1,45 +1,43 @@
1
- import type { ColorToken } from '../color/color-picker';
2
- import type { FontSizeKey } from '../font/font-size-picker';
1
+ import { type FontSizeMap } from '../core/font-size';
2
+ import { type RadiusMap } from '../core/radius';
3
+ import { type ColorConfig, type EffectConfig, type FontConfig, type SpacingConfig, type TypographyConfig } from './type';
3
4
  /**
4
- * Font configuration structure
5
+ * Theme override type - allows partial configuration for theming.
6
+ * This type enables customization of the default theme by overriding existing values
7
+ * and adding new custom tokens.
8
+ *
9
+ * @typedef {Object} ThemeOverride
10
+ * @property {Partial<FontConfig>} [fonts] - Font family configurations that can override default fonts
11
+ * or add new font definitions
12
+ * @property {Partial<FontSizeMap> & Record<string,number>} [fontSizes] - Font size tokens that can override
13
+ * default sizes or add new custom sizes
14
+ * @property {Partial<ColorConfig>} [colors] - Color tokens that can override default colors or add new
15
+ * color definitions using color tokens or hex values
16
+ * @property {Partial<SpacingConfig>} [spacing] - Spacing scale tokens that can override default spacing
17
+ * values or add new spacing definitions
18
+ * @property {Partial<TypographyConfig>} [typography] - Typography style tokens that can override default
19
+ * text styles or add new typography variants
20
+ * @property {Partial<EffectConfig>} [effects] - Visual effect tokens like shadows that can override
21
+ * defaults or add new effects
22
+ * @property {Partial<RadiusMap> & Record<string,number>} [radius] - Border radius tokens that can override
23
+ * default radius values or add new radius sizes
24
+ * @property {Record<string,unknown>} [custom] - Additional custom theme tokens that can be used for
25
+ * specific needs
5
26
  */
6
- export type FontConfig = {
7
- [key: string]: string;
8
- };
9
- /**
10
- * Color configuration structure
11
- */
12
- export type ColorConfig = {
13
- [key: string]: ColorToken | string;
14
- };
15
- /**
16
- * Spacing configuration structure (following Tailwind spacing scale)
17
- */
18
- export type SpacingConfig = {
19
- [key: string]: number;
20
- };
21
- /**
22
- * Typography configuration structure
23
- */
24
- export type TypographyConfig = {
25
- [key: string]: {
26
- fontSize: FontSizeKey | string;
27
- fontFamily?: string;
28
- fontWeight?: number | string;
29
- lineHeight?: number | string;
30
- letterSpacing?: number | string;
27
+ export type ThemeOverride = {
28
+ fonts?: Partial<FontConfig>;
29
+ fontSizes?: Partial<FontSizeMap> & {
30
+ [key: string]: number;
31
31
  };
32
- };
33
- /**
34
- * Shadow/Effect configuration structure
35
- */
36
- export type EffectConfig = {
37
- [key: string]: {
38
- blur?: number;
39
- offsetX?: number;
40
- offsetY?: number;
41
- color?: ColorToken | string;
42
- alpha?: number;
32
+ colors?: Partial<ColorConfig>;
33
+ spacing?: Partial<SpacingConfig>;
34
+ typography?: Partial<TypographyConfig>;
35
+ effects?: Partial<EffectConfig>;
36
+ radius?: Partial<RadiusMap> & {
37
+ [key: string]: number;
38
+ };
39
+ custom?: {
40
+ [key: string]: unknown;
43
41
  };
44
42
  };
45
43
  /**
@@ -48,109 +46,23 @@ export type EffectConfig = {
48
46
  */
49
47
  export type BaseThemeConfig = {
50
48
  fonts?: FontConfig;
49
+ fontSizes?: FontSizeMap;
51
50
  colors?: ColorConfig;
52
51
  spacing?: SpacingConfig;
53
52
  typography?: TypographyConfig;
54
53
  effects?: EffectConfig;
55
- [key: string]: unknown;
56
- };
57
- /**
58
- * Default theme structure following design system best practices
59
- */
60
- export type DefaultThemeStructure = {
61
- fonts: {
62
- primary: string;
63
- secondary: string;
64
- monospace: string;
65
- display: string;
66
- };
67
- colors: {
68
- primary: ColorToken;
69
- secondary: ColorToken;
70
- accent: ColorToken;
71
- success: ColorToken;
72
- warning: ColorToken;
73
- error: ColorToken;
74
- info: ColorToken;
75
- background: ColorToken;
76
- 'background-secondary': ColorToken;
77
- 'background-panel': ColorToken;
78
- 'background-modal': ColorToken;
79
- text: ColorToken;
80
- 'text-secondary': ColorToken;
81
- 'text-muted': ColorToken;
82
- 'text-inverse': ColorToken;
83
- border: ColorToken;
84
- 'border-light': ColorToken;
85
- 'border-focus': ColorToken;
86
- 'button-primary': ColorToken;
87
- 'button-secondary': ColorToken;
88
- 'button-danger': ColorToken;
89
- shadow: ColorToken;
90
- overlay: ColorToken;
91
- };
92
- spacing: {
93
- xs: number;
94
- sm: number;
95
- md: number;
96
- lg: number;
97
- xl: number;
98
- '2xl': number;
99
- '3xl': number;
100
- '4xl': number;
101
- };
102
- typography: {
103
- heading: {
104
- fontSize: FontSizeKey;
105
- fontFamily: string;
106
- fontWeight: number;
107
- lineHeight: number;
108
- };
109
- 'heading-large': {
110
- fontSize: FontSizeKey;
111
- fontFamily: string;
112
- fontWeight: number;
113
- lineHeight: number;
114
- };
115
- body: {
116
- fontSize: FontSizeKey;
117
- fontFamily: string;
118
- fontWeight: number;
119
- lineHeight: number;
120
- };
121
- caption: {
122
- fontSize: FontSizeKey;
123
- fontFamily: string;
124
- fontWeight: number;
125
- lineHeight: number;
126
- };
54
+ radius?: RadiusMap & {
55
+ [key: string]: number;
127
56
  };
128
- effects: {
129
- 'shadow-sm': {
130
- blur: number;
131
- offsetY: number;
132
- color: string;
133
- alpha: number;
134
- };
135
- 'shadow-md': {
136
- blur: number;
137
- offsetY: number;
138
- color: string;
139
- alpha: number;
140
- };
141
- 'shadow-lg': {
142
- blur: number;
143
- offsetY: number;
144
- color: string;
145
- alpha: number;
146
- };
57
+ custom?: {
58
+ [key: string]: unknown;
147
59
  };
148
60
  };
149
61
  /**
150
62
  * Example theme configurations with structured design tokens
151
63
  */
152
- export declare const defaultLightTheme: DefaultThemeStructure;
153
- export declare const defaultDarkTheme: DefaultThemeStructure;
64
+ export declare const defaultLightTheme: BaseThemeConfig;
65
+ export declare const defaultDarkTheme: BaseThemeConfig;
154
66
  /**
155
67
  * Type helper to create strongly-typed custom themes
156
68
  */
@@ -1 +1 @@
1
- {"version":3,"file":"theme-config.d.ts","sourceRoot":"","sources":["../../src/theme/theme-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theme-config.d.ts","sourceRoot":"","sources":["../../src/theme/theme-config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3D,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACtB,MAAM,QAAQ,CAAC;AAEhB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC7D,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACxD,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;CACrC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,MAAM,CAAC,EAAE,SAAS,GAAG;QACnB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACvB,CAAC;IACF,MAAM,CAAC,EAAE;QACP,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,eA8E/B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,eA8E9B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,eAAe,IAAI,CAAC,CAAC;AAEvD;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,eAAe,IAAI,MAAM,CAAC,CAAC"}
@@ -1,3 +1,8 @@
1
+ /* eslint-disable max-lines */
2
+ /* eslint-disable sonarjs/no-duplicate-string */
3
+ import { fontSizeMap } from '../core/font-size';
4
+ import { radiusMap } from '../core/radius';
5
+ import { spacingMap } from '../core/spacing';
1
6
  /**
2
7
  * Example theme configurations with structured design tokens
3
8
  */
@@ -8,11 +13,11 @@ export const defaultLightTheme = {
8
13
  monospace: 'Fira Code, Consolas, monospace',
9
14
  display: 'Poppins, Inter, sans-serif',
10
15
  },
16
+ fontSizes: { ...fontSizeMap },
11
17
  colors: {
12
18
  // Primary colors
13
19
  primary: 'blue-600',
14
20
  secondary: 'gray-600',
15
- accent: 'purple-500',
16
21
  // Semantic colors
17
22
  success: 'green-500',
18
23
  warning: 'yellow-500',
@@ -20,36 +25,13 @@ export const defaultLightTheme = {
20
25
  info: 'blue-400',
21
26
  // Background colors
22
27
  background: 'white',
23
- 'background-secondary': 'gray-50',
24
- 'background-panel': 'gray-100',
25
- 'background-modal': 'white',
26
28
  // Text colors
27
29
  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
30
  // UI elements
40
31
  shadow: 'black',
41
32
  overlay: 'black',
42
33
  },
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
- },
34
+ spacing: { ...spacingMap },
53
35
  typography: {
54
36
  heading: {
55
37
  fontSize: '2xl',
@@ -64,7 +46,7 @@ export const defaultLightTheme = {
64
46
  lineHeight: 1.1,
65
47
  },
66
48
  body: {
67
- fontSize: 'md',
49
+ fontSize: 'base',
68
50
  fontFamily: 'fonts.primary',
69
51
  fontWeight: 400,
70
52
  lineHeight: 1.5,
@@ -76,6 +58,7 @@ export const defaultLightTheme = {
76
58
  lineHeight: 1.4,
77
59
  },
78
60
  },
61
+ // TODO: Check this implementation
79
62
  effects: {
80
63
  'shadow-sm': {
81
64
  blur: 2,
@@ -96,6 +79,7 @@ export const defaultLightTheme = {
96
79
  alpha: 0.1,
97
80
  },
98
81
  },
82
+ custom: {},
99
83
  };
100
84
  export const defaultDarkTheme = {
101
85
  fonts: {
@@ -104,11 +88,12 @@ export const defaultDarkTheme = {
104
88
  monospace: 'Fira Code, Consolas, monospace',
105
89
  display: 'Poppins, Inter, sans-serif',
106
90
  },
91
+ fontSizes: { ...fontSizeMap },
92
+ radius: { ...radiusMap },
107
93
  colors: {
108
94
  // Primary colors
109
95
  primary: 'blue-400',
110
96
  secondary: 'gray-400',
111
- accent: 'purple-400',
112
97
  // Semantic colors
113
98
  success: 'green-400',
114
99
  warning: 'yellow-400',
@@ -116,36 +101,13 @@ export const defaultDarkTheme = {
116
101
  info: 'blue-300',
117
102
  // Background colors
118
103
  background: 'gray-900',
119
- 'background-secondary': 'gray-800',
120
- 'background-panel': 'gray-700',
121
- 'background-modal': 'gray-800',
122
104
  // Text colors
123
105
  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
106
  // UI elements
136
107
  shadow: 'black',
137
108
  overlay: 'black',
138
109
  },
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
- },
110
+ spacing: { ...spacingMap },
149
111
  typography: {
150
112
  heading: {
151
113
  fontSize: '2xl',
@@ -160,7 +122,7 @@ export const defaultDarkTheme = {
160
122
  lineHeight: 1.1,
161
123
  },
162
124
  body: {
163
- fontSize: 'md',
125
+ fontSize: 'base',
164
126
  fontFamily: 'fonts.primary',
165
127
  fontWeight: 400,
166
128
  lineHeight: 1.5,
@@ -192,5 +154,6 @@ export const defaultDarkTheme = {
192
154
  alpha: 0.2,
193
155
  },
194
156
  },
157
+ custom: {},
195
158
  };
196
159
  //# sourceMappingURL=theme-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme-config.js","sourceRoot":"","sources":["../../src/theme/theme-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theme-config.js","sourceRoot":"","sources":["../../src/theme/theme-config.ts"],"names":[],"mappings":"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"}
@@ -1,96 +1,3 @@
1
- import { type BaseThemeConfig, type DefaultThemeStructure } 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): 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
24
- */
25
- setThemeObject<T extends BaseThemeConfig>(theme: T): void;
26
- /**
27
- * Get the current theme
28
- */
29
- getCurrentTheme(): BaseThemeConfig;
30
- /**
31
- * Get a nested token using dot notation (e.g., 'colors.primary', 'fonts.display')
32
- * @param path - The path to the token (e.g., 'colors.primary')
33
- * @returns The resolved token value
34
- */
35
- getToken(path: string): unknown;
36
- /**
37
- * Check if a nested token exists using dot notation
38
- * @param path - The path to check (e.g., 'colors.primary')
39
- * @returns True if the token exists
40
- */
41
- hasToken(path: string): boolean;
42
- /**
43
- * Get a token with type safety for specific namespaces
44
- */
45
- getColorToken(key: string): string | undefined;
46
- /**
47
- * Get a font token
48
- */
49
- getFontToken(key: string): string | undefined;
50
- /**
51
- * Get a spacing token
52
- */
53
- getSpacingToken(key: string): number | undefined;
54
- /**
55
- * Get a typography token
56
- */
57
- getTypographyToken(key: string): unknown;
58
- /**
59
- * Get an effect token
60
- */
61
- getEffectToken(key: string): unknown;
62
- /**
63
- * Resolve a theme reference (e.g., 'colors.primary' -> actual color value)
64
- * This allows theme tokens to reference other theme tokens
65
- */
66
- resolveToken(value: string): unknown;
67
- /**
68
- * Listen for theme changes
69
- */
70
- onThemeChange(listener: (theme: BaseThemeConfig) => void): () => void;
71
- /**
72
- * Get all registered theme names
73
- */
74
- getRegisteredThemes(): string[];
75
- /**
76
- * Create a new theme based on the current one with overrides
77
- */
78
- extendCurrentTheme<T extends BaseThemeConfig>(overrides: Partial<T>): BaseThemeConfig;
79
- /**
80
- * Reset to default theme
81
- */
82
- reset(): void;
83
- private notifyListeners;
84
- /**
85
- * Helper method to get nested values using dot notation
86
- * @param obj - The object to search in
87
- * @param path - The dot notation path (e.g., 'colors.primary')
88
- * @returns The value at the path or undefined
89
- */
90
- private getNestedValue;
91
- }
92
- export declare const ThemeManager: ThemeManagerClass;
93
- export declare const createTheme: <T extends BaseThemeConfig>(theme: T) => T;
94
- export type ThemeConfig<T extends BaseThemeConfig = DefaultThemeStructure> = T;
95
- export {};
1
+ import { type ThemeOverride } from './theme-config';
2
+ export declare const createTheme: <T extends ThemeOverride>(theme: T) => T;
96
3
  //# 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":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC3B,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,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAK/C;;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;;OAEG;IACH,cAAc,CAAC,CAAC,SAAS,eAAe,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAKzD;;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,OAAO,CAAC,eAAe;IAIvB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;CAOvB;AAGD,eAAO,MAAM,YAAY,mBAA0B,CAAC;AAGpD,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,eAAe,EAAE,OAAO,CAAC,KAAG,CAAU,CAAC;AAG7E,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,eAAe,GAAG,qBAAqB,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"theme-manager.d.ts","sourceRoot":"","sources":["../../src/theme/theme-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAqB,MAAM,gBAAgB,CAAC;AAEvE,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,aAAa,EAAE,OAAO,CAAC,KAAG,CAC3B,CAAC"}
@@ -1,171 +1,4 @@
1
- import { defaultLightTheme, } 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
- class ThemeManagerClass {
7
- currentTheme = defaultLightTheme;
8
- registeredThemes = new Map();
9
- listeners = [];
10
- /**
11
- * Initialize the theme manager with a default theme
12
- */
13
- init(theme) {
14
- this.currentTheme = theme;
15
- this.registerTheme('default', theme);
16
- }
17
- /**
18
- * Register a named theme
19
- */
20
- registerTheme(name, theme) {
21
- this.registeredThemes.set(name, theme);
22
- }
23
- /**
24
- * Switch to a registered theme by name
25
- */
26
- setTheme(name) {
27
- const theme = this.registeredThemes.get(name);
28
- if (!theme) {
29
- // eslint-disable-next-line no-console
30
- console.warn(`[Phaser Wind] Theme "${name}" not found. Available themes: ${Array.from(this.registeredThemes.keys()).join(', ')}`);
31
- return;
32
- }
33
- this.currentTheme = theme;
34
- this.notifyListeners();
35
- }
36
- /**
37
- * Set theme directly with object
38
- */
39
- setThemeObject(theme) {
40
- this.currentTheme = theme;
41
- this.notifyListeners();
42
- }
43
- /**
44
- * Get the current theme
45
- */
46
- getCurrentTheme() {
47
- return this.currentTheme;
48
- }
49
- /**
50
- * Get a nested token using dot notation (e.g., 'colors.primary', 'fonts.display')
51
- * @param path - The path to the token (e.g., 'colors.primary')
52
- * @returns The resolved token value
53
- */
54
- getToken(path) {
55
- return this.getNestedValue(this.currentTheme, path);
56
- }
57
- /**
58
- * Check if a nested token exists using dot notation
59
- * @param path - The path to check (e.g., 'colors.primary')
60
- * @returns True if the token exists
61
- */
62
- hasToken(path) {
63
- return this.getNestedValue(this.currentTheme, path) !== undefined;
64
- }
65
- /**
66
- * Get a token with type safety for specific namespaces
67
- */
68
- getColorToken(key) {
69
- const value = this.getToken(`colors.${key}`);
70
- return typeof value === 'string' ? value : undefined;
71
- }
72
- /**
73
- * Get a font token
74
- */
75
- getFontToken(key) {
76
- const value = this.getToken(`fonts.${key}`);
77
- return typeof value === 'string' ? value : undefined;
78
- }
79
- /**
80
- * Get a spacing token
81
- */
82
- getSpacingToken(key) {
83
- const value = this.getToken(`spacing.${key}`);
84
- return typeof value === 'number' ? value : undefined;
85
- }
86
- /**
87
- * Get a typography token
88
- */
89
- getTypographyToken(key) {
90
- return this.getToken(`typography.${key}`);
91
- }
92
- /**
93
- * Get an effect token
94
- */
95
- getEffectToken(key) {
96
- return this.getToken(`effects.${key}`);
97
- }
98
- /**
99
- * Resolve a theme reference (e.g., 'colors.primary' -> actual color value)
100
- * This allows theme tokens to reference other theme tokens
101
- */
102
- resolveToken(value) {
103
- if (typeof value === 'string' && value.includes('.')) {
104
- // Check if it's a theme reference
105
- const resolved = this.getToken(value);
106
- if (resolved !== undefined) {
107
- // Recursively resolve in case of nested references
108
- return typeof resolved === 'string' && resolved.includes('.')
109
- ? this.resolveToken(resolved)
110
- : resolved;
111
- }
112
- }
113
- return value;
114
- }
115
- /**
116
- * Listen for theme changes
117
- */
118
- onThemeChange(listener) {
119
- this.listeners.push(listener);
120
- // Return unsubscribe function
121
- return () => {
122
- const index = this.listeners.indexOf(listener);
123
- if (index > -1) {
124
- this.listeners.splice(index, 1);
125
- }
126
- };
127
- }
128
- /**
129
- * Get all registered theme names
130
- */
131
- getRegisteredThemes() {
132
- return Array.from(this.registeredThemes.keys());
133
- }
134
- /**
135
- * Create a new theme based on the current one with overrides
136
- */
137
- extendCurrentTheme(overrides) {
138
- return { ...this.currentTheme, ...overrides };
139
- }
140
- /**
141
- * Reset to default theme
142
- */
143
- reset() {
144
- const defaultTheme = this.registeredThemes.get('default');
145
- if (defaultTheme) {
146
- this.currentTheme = defaultTheme;
147
- this.notifyListeners();
148
- }
149
- }
150
- notifyListeners() {
151
- this.listeners.forEach(listener => listener(this.currentTheme));
152
- }
153
- /**
154
- * Helper method to get nested values using dot notation
155
- * @param obj - The object to search in
156
- * @param path - The dot notation path (e.g., 'colors.primary')
157
- * @returns The value at the path or undefined
158
- */
159
- getNestedValue(obj, path) {
160
- return path.split('.').reduce((current, key) => {
161
- return current && typeof current === 'object'
162
- ? current[key]
163
- : undefined;
164
- }, obj);
165
- }
166
- }
167
- // Export singleton instance
168
- export const ThemeManager = new ThemeManagerClass();
169
- // Type helper for creating themes with proper typing
170
- export const createTheme = (theme) => theme;
1
+ import merge from 'lodash/merge';
2
+ import { defaultLightTheme } from './theme-config';
3
+ export const createTheme = (theme) => merge({}, defaultLightTheme, theme);
171
4
  //# sourceMappingURL=theme-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme-manager.js","sourceRoot":"","sources":["../../src/theme/theme-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theme-manager.js","sourceRoot":"","sources":["../../src/theme/theme-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,cAAc,CAAC;AAEjC,OAAO,EAAsB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEvE,MAAM,CAAC,MAAM,WAAW,GAAG,CAA0B,KAAQ,EAAK,EAAE,CAClE,KAAK,CAAC,EAAE,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAC"}