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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radius.spec.js","sourceRoot":"","sources":["../../src/core/radius.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { BaseThemeConfig } from '../theme';
2
+ /** Default shadow keys. */
3
+ export type ShadowKey = 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'inner';
4
+ /**
5
+ * Shadow configuration type defining blur, offset and alpha values
6
+ */
7
+ /** Shadow configuration shape (compatible with Phaser effects). */
8
+ export type ShadowConfig = {
9
+ blur: number;
10
+ offsetX: number;
11
+ offsetY: number;
12
+ alpha: number;
13
+ };
14
+ /** Default shadow presets. */
15
+ export declare const defaultShadowMap: Record<ShadowKey, ShadowConfig>;
16
+ /** Map of shadow keys to shadow configs. */
17
+ export type ShadowMap = Record<ShadowKey | string, ShadowConfig>;
18
+ /** API for resolving shadow tokens to configs. */
19
+ export type ShadowApi<T extends Record<string, unknown> | undefined> = {
20
+ get: (key: ShadowKey | (T extends Record<string, unknown> ? keyof T : never)) => ShadowConfig;
21
+ };
22
+ /**
23
+ * Create a shadow API bound to an optional effects map.
24
+ * @example
25
+ * const sh = createShadow({ glow: { blur: 8, offsetX: 0, offsetY: 0, alpha: .6 } });
26
+ * sh.get('glow');
27
+ */
28
+ export declare const createShadow: <T extends BaseThemeConfig["effects"] = BaseThemeConfig["effects"]>(effects?: T) => ShadowApi<T>;
29
+ /** Convenience instance using default shadows (no theme). */
30
+ export declare const Shadow: ShadowApi<undefined>;
31
+ //# sourceMappingURL=shadow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow.d.ts","sourceRoot":"","sources":["../../src/core/shadow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,2BAA2B;AAC3B,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,OAAO,CAAC;AAEpE;;GAEG;AACH,mEAAmE;AACnE,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,8BAA8B;AAC9B,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,CAO5D,CAAC;AAEF,4CAA4C;AAC5C,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,GAAG,MAAM,EAAE,YAAY,CAAC,CAAC;AAEjE,kDAAkD;AAClD,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,IAAI;IACrE,GAAG,EAAE,CACH,GAAG,EAAE,SAAS,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC,KACnE,YAAY,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GACvB,CAAC,SAAS,eAAe,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC,EAEjE,UAAU,CAAC,KACV,SAAS,CAAC,CAAC,CAiBb,CAAC;AAEF,6DAA6D;AAC7D,eAAO,MAAM,MAAM,EAAE,SAAS,CAAC,SAAS,CAAsC,CAAC"}
@@ -0,0 +1,33 @@
1
+ /** Default shadow presets. */
2
+ export const defaultShadowMap = {
3
+ sm: { blur: 2, offsetX: 1, offsetY: 1, alpha: 0.15 },
4
+ md: { blur: 4, offsetX: 2, offsetY: 2, alpha: 0.2 },
5
+ lg: { blur: 6, offsetX: 4, offsetY: 4, alpha: 0.25 },
6
+ xl: { blur: 8, offsetX: 6, offsetY: 6, alpha: 0.3 },
7
+ '2xl': { blur: 12, offsetX: 8, offsetY: 8, alpha: 0.35 },
8
+ inner: { blur: 4, offsetX: -2, offsetY: -2, alpha: 0.2 },
9
+ };
10
+ /**
11
+ * Create a shadow API bound to an optional effects map.
12
+ * @example
13
+ * const sh = createShadow({ glow: { blur: 8, offsetX: 0, offsetY: 0, alpha: .6 } });
14
+ * sh.get('glow');
15
+ */
16
+ export const createShadow = (effects) => {
17
+ const map = {
18
+ ...defaultShadowMap,
19
+ ...effects,
20
+ };
21
+ const getConfig = (key) => {
22
+ const cfg = map[key];
23
+ if (cfg && typeof cfg === 'object')
24
+ return cfg;
25
+ return defaultShadowMap['md'];
26
+ };
27
+ return {
28
+ get: (key) => getConfig(key),
29
+ };
30
+ };
31
+ /** Convenience instance using default shadows (no theme). */
32
+ export const Shadow = createShadow(undefined);
33
+ //# sourceMappingURL=shadow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow.js","sourceRoot":"","sources":["../../src/core/shadow.ts"],"names":[],"mappings":"AAgBA,8BAA8B;AAC9B,MAAM,CAAC,MAAM,gBAAgB,GAAoC;IAC/D,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;IACpD,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;IACnD,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;IACpD,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;IACnD,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;IACxD,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;CACzD,CAAC;AAYF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAG1B,OAAW,EACG,EAAE;IAChB,MAAM,GAAG,GAAc;QACrB,GAAG,gBAAgB;QACnB,GAAI,OAA4C;KACpC,CAAC;IAEf,MAAM,SAAS,GAAG,CAAC,GAAW,EAAgB,EAAE;QAC9C,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,GAAmB,CAAC;QAC/D,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,OAAO;QACL,GAAG,EAAE,CACH,GAAsE,EACxD,EAAE,CAAC,SAAS,CAAC,GAAa,CAAC;KAC5C,CAAC;AACJ,CAAC,CAAC;AAEF,6DAA6D;AAC7D,MAAM,CAAC,MAAM,MAAM,GAAyB,YAAY,CAAY,SAAS,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=shadow.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow.spec.d.ts","sourceRoot":"","sources":["../../src/core/shadow.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ /* eslint-disable no-magic-numbers */
2
+ import { describe, expect, it } from 'vitest';
3
+ import { Shadow, createShadow } from './shadow';
4
+ describe('Shadow', () => {
5
+ it('should provide defaults via Shadow constant', () => {
6
+ expect(Shadow.get('sm')).toEqual({
7
+ blur: 2,
8
+ offsetX: 1,
9
+ offsetY: 1,
10
+ alpha: 0.15,
11
+ });
12
+ expect(Shadow.get('md').blur).toBe(4);
13
+ });
14
+ it('should allow theme effect keys via factory', () => {
15
+ const shadow = createShadow({
16
+ customGlow: { blur: 20, offsetX: 0, offsetY: 0, alpha: 0.5 },
17
+ });
18
+ expect(shadow.get('customGlow').blur).toBe(20);
19
+ });
20
+ });
21
+ //# sourceMappingURL=shadow.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow.spec.js","sourceRoot":"","sources":["../../src/core/shadow.spec.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAEhD,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YAC/B,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,MAAM,GAAG,YAAY,CAAC;YAC1B,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SAC7D,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,32 @@
1
+ import type { BaseThemeConfig } from '../theme';
2
+ /**
3
+ * Valid spacing scale keys following Tailwind's spacing scale.
4
+ * Values range from '0' to '96', including fractional values and `px` (1px).
5
+ */
6
+ export type SpacingKey = '0' | 'px' | '0.5' | '1' | '1.5' | '2' | '2.5' | '3' | '3.5' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | '14' | '16' | '20' | '24' | '28' | '32' | '36' | '40' | '44' | '48' | '52' | '56' | '60' | '64' | '72' | '80' | '96';
7
+ /** Maps spacing scale keys to their pixel values. */
8
+ export type SpacingMap = Record<SpacingKey | string, number>;
9
+ /**
10
+ * Spacing scale mapping following Tailwind's spacing scale.
11
+ * Values are in pixels, with a base unit of 4px (1 = 4px).
12
+ */
13
+ export declare const spacingMap: SpacingMap;
14
+ /**
15
+ * API for resolving spacing tokens to px/rem/css.
16
+ * The accepted keys are narrowed to default tokens plus theme keys.
17
+ */
18
+ export type SpacingApi<T extends SpacingMap | undefined> = {
19
+ px: (key: SpacingKey | (T extends SpacingMap ? keyof T : never)) => number;
20
+ rem: (key: SpacingKey | (T extends SpacingMap ? keyof T : never)) => number;
21
+ css: (key: SpacingKey | (T extends SpacingMap ? keyof T : never)) => string;
22
+ };
23
+ /**
24
+ * Create a spacing API bound to an optional theme spacing map.
25
+ * @example
26
+ * const s = createSpacing({ gutter: 24 });
27
+ * s.px('gutter'); // 24
28
+ */
29
+ export declare const createSpacing: <T extends SpacingMap | undefined = BaseThemeConfig["spacing"]>(themeSpacing?: T) => SpacingApi<T>;
30
+ /** Convenience instance using default spacing map (no theme). */
31
+ export declare const Spacing: SpacingApi<undefined>;
32
+ //# sourceMappingURL=spacing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spacing.d.ts","sourceRoot":"","sources":["../../src/core/spacing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD;;;GAGG;AACH,MAAM,MAAM,UAAU,GAClB,GAAG,GACH,IAAI,GACJ,KAAK,GACL,GAAG,GACH,KAAK,GACL,GAAG,GACH,KAAK,GACL,GAAG,GACH,KAAK,GACL,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC;AAET,qDAAqD;AACrD,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,UAoCxB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,UAAU,GAAG,SAAS,IAAI;IACzD,EAAE,EAAE,CAAC,GAAG,EAAE,UAAU,GAAG,CAAC,CAAC,SAAS,UAAU,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,MAAM,CAAC;IAC3E,GAAG,EAAE,CAAC,GAAG,EAAE,UAAU,GAAG,CAAC,CAAC,SAAS,UAAU,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,MAAM,CAAC;IAC5E,GAAG,EAAE,CAAC,GAAG,EAAE,UAAU,GAAG,CAAC,CAAC,SAAS,UAAU,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,MAAM,CAAC;CAC7E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GACxB,CAAC,SAAS,UAAU,GAAG,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC,EAE7D,eAAe,CAAC,KACf,UAAU,CAAC,CAAC,CA2Bd,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,OAAO,EAAE,UAAU,CAAC,SAAS,CACL,CAAC"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Spacing scale mapping following Tailwind's spacing scale.
3
+ * Values are in pixels, with a base unit of 4px (1 = 4px).
4
+ */
5
+ export const spacingMap = {
6
+ '0': 0,
7
+ px: 1,
8
+ '0.5': 2,
9
+ '1': 4,
10
+ '1.5': 6,
11
+ '2': 8,
12
+ '2.5': 10,
13
+ '3': 12,
14
+ '3.5': 14,
15
+ '4': 16,
16
+ '5': 20,
17
+ '6': 24,
18
+ '7': 28,
19
+ '8': 32,
20
+ '9': 36,
21
+ '10': 40,
22
+ '11': 44,
23
+ '12': 48,
24
+ '14': 56,
25
+ '16': 64,
26
+ '20': 80,
27
+ '24': 96,
28
+ '28': 112,
29
+ '32': 128,
30
+ '36': 144,
31
+ '40': 160,
32
+ '44': 176,
33
+ '48': 192,
34
+ '52': 208,
35
+ '56': 224,
36
+ '60': 240,
37
+ '64': 256,
38
+ '72': 288,
39
+ '80': 320,
40
+ '96': 384,
41
+ };
42
+ /**
43
+ * Create a spacing API bound to an optional theme spacing map.
44
+ * @example
45
+ * const s = createSpacing({ gutter: 24 });
46
+ * s.px('gutter'); // 24
47
+ */
48
+ export const createSpacing = (themeSpacing) => {
49
+ const map = {
50
+ ...spacingMap,
51
+ ...themeSpacing,
52
+ };
53
+ const get = (key) => {
54
+ return typeof map[key] === 'number' ? map[key] : 0;
55
+ };
56
+ return {
57
+ px: (key) => {
58
+ return get(key);
59
+ },
60
+ rem: (key) => {
61
+ return get(key) / 16;
62
+ },
63
+ css: (key) => {
64
+ return `${get(key)}px`;
65
+ },
66
+ };
67
+ };
68
+ /** Convenience instance using default spacing map (no theme). */
69
+ export const Spacing = createSpacing(undefined);
70
+ //# sourceMappingURL=spacing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spacing.js","sourceRoot":"","sources":["../../src/core/spacing.ts"],"names":[],"mappings":"AA8CA;;;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;AAYF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAG3B,YAAgB,EACD,EAAE;IACjB,MAAM,GAAG,GAAe;QACtB,GAAG,UAAU;QACb,GAAI,YAAuC;KAC9B,CAAC;IAEhB,MAAM,GAAG,GAAG,CAAC,GAAW,EAAU,EAAE;QAClC,OAAO,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,GAAG,CAAC,GAAG,CAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC;IAEF,OAAO;QACL,EAAE,EAAE,CACF,GAA0D,EAClD,EAAE;YACV,OAAO,GAAG,CAAC,GAAa,CAAC,CAAC;QAC5B,CAAC;QACD,GAAG,EAAE,CACH,GAA0D,EAClD,EAAE;YACV,OAAO,GAAG,CAAC,GAAa,CAAC,GAAG,EAAE,CAAC;QACjC,CAAC;QACD,GAAG,EAAE,CACH,GAA0D,EAClD,EAAE;YACV,OAAO,GAAG,GAAG,CAAC,GAAa,CAAC,IAAI,CAAC;QACnC,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,iEAAiE;AACjE,MAAM,CAAC,MAAM,OAAO,GAClB,aAAa,CAAY,SAAS,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=spacing.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spacing.spec.d.ts","sourceRoot":"","sources":["../../src/core/spacing.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,38 @@
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 { describe, expect, it } from 'vitest';
6
+ import { createSpacing, Spacing } from './spacing';
7
+ describe('Spacing', () => {
8
+ describe('px', () => {
9
+ it('should return pixel values', () => {
10
+ const spacing = createSpacing();
11
+ expect(spacing.px('2')).toBe(8);
12
+ expect(spacing.px('4')).toBe(16);
13
+ expect(spacing.px('8')).toBe(32);
14
+ });
15
+ });
16
+ describe('rem', () => {
17
+ it('should convert pixel values to rem', () => {
18
+ const spacing = createSpacing();
19
+ expect(spacing.rem('16')).toBe(4);
20
+ expect(spacing.rem('8')).toBe(2);
21
+ expect(spacing.rem('4')).toBe(1);
22
+ });
23
+ });
24
+ describe('css', () => {
25
+ it('should return pixel values as CSS strings', () => {
26
+ const spacing = createSpacing();
27
+ expect(spacing.css('2')).toBe('8px');
28
+ expect(spacing.css('4')).toBe('16px');
29
+ expect(spacing.css('8')).toBe('32px');
30
+ });
31
+ it('should work with default Spacing constant', () => {
32
+ expect(Spacing.px('2')).toBe(8);
33
+ expect(Spacing.css('4')).toBe('16px');
34
+ expect(Spacing.rem('8')).toBe(2);
35
+ });
36
+ });
37
+ });
38
+ //# 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,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEnD,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE;QAClB,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;YAChC,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,OAAO,GAAG,aAAa,EAAE,CAAC;YAChC,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,OAAO,GAAG,aAAa,EAAE,CAAC;YAChC,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,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChC,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,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=exceptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exceptions.d.ts","sourceRoot":"","sources":["../src/exceptions.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=exceptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../src/exceptions.ts"],"names":[],"mappings":""}
@@ -1,3 +1,3 @@
1
- export * from './font-picker';
2
- export * from './font-size-picker';
1
+ export * from '../core/font';
2
+ export * from '../core/font-size';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/font/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/font/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC"}
@@ -1,3 +1,3 @@
1
- export * from './font-picker';
2
- export * from './font-size-picker';
1
+ export * from '../core/font';
2
+ export * from '../core/font-size';
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/font/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,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
@@ -1,4 +1,6 @@
1
- export * from './color';
1
+ export * from './core';
2
2
  export * from './font';
3
3
  export * from './theme';
4
+ export * from './utils';
5
+ export * from './plugin';
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,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;AACxB,cAAc,UAAU,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,6 @@
1
- export * from './color';
1
+ export * from './core';
2
2
  export * from './font';
3
3
  export * from './theme';
4
+ export * from './utils';
5
+ export * from './plugin';
4
6
  //# sourceMappingURL=index.js.map
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,QAAQ,CAAC;AACvB,cAAc,SAAS,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;AACxB,cAAc,UAAU,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './plugin';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './plugin';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
@@ -0,0 +1,71 @@
1
+ import { Plugins } from 'phaser';
2
+ import { FontSizeApi, type SpacingApi, type FontApi, type ShadowApi } from '../core';
3
+ import { type Color } from '../core/color';
4
+ import { type RadiusApi } from '../core/radius';
5
+ import { BaseThemeConfig, ThemeOverride } from '../theme';
6
+ export declare const PHASER_WIND_KEY: string;
7
+ /**
8
+ * Plugin configuration data type.
9
+ *
10
+ * @typedef {Object} PhaserWindPluginData
11
+ * @property {BaseThemeConfig} [theme] - Custom theme created using createTheme(). If not provided,
12
+ * the default light theme will be used
13
+ * @property {boolean} [darkMode=false] - When true, uses the default dark theme. Only takes effect
14
+ * if no custom theme is provided
15
+ */
16
+ export type PhaserWindPluginData<T = ThemeOverride> = {
17
+ theme?: T;
18
+ darkMode?: boolean;
19
+ };
20
+ /**
21
+ * Phaser Wind Plugin class that manages theme configuration
22
+ * @extends Plugins.BasePlugin
23
+ */
24
+ export declare class PhaserWindPlugin<T extends BaseThemeConfig> extends Plugins.BasePlugin {
25
+ private colorInstance;
26
+ private fontSizeInstance;
27
+ private spacingInstance;
28
+ private radiusInstance;
29
+ private fontInstance;
30
+ private shadowInstance;
31
+ /** Current theme configuration */
32
+ private theme;
33
+ /**
34
+ * Creates an instance of PhaserWindPlugin
35
+ * @param pluginManager - Phaser plugin manager instance
36
+ */
37
+ constructor(pluginManager: Plugins.PluginManager);
38
+ /**
39
+ * Initializes the plugin with theme configuration
40
+ * @param theme - Custom theme configuration
41
+ * @param darkMode - Whether to use dark mode theme when no custom theme provided
42
+ * @example
43
+ * ```typescript
44
+ * const game = new Phaser.Game({
45
+ * plugins: {
46
+ * global: [
47
+ * {
48
+ * key: PHASER_WIND_KEY,
49
+ * plugin: PhaserWindPlugin,
50
+ * mapping: PHASER_WIND_KEY,
51
+ * data: { theme: defaultLightTheme }
52
+ * },
53
+ * ],
54
+ * },
55
+ * });
56
+ * ```
57
+ */
58
+ init({ theme, darkMode }: PhaserWindPluginData<T>): void;
59
+ /**
60
+ * Returns the current theme configuration
61
+ * @returns Current BaseThemeConfig
62
+ */
63
+ getTheme(): T & BaseThemeConfig;
64
+ get color(): Color<T['colors']>;
65
+ get fontSize(): FontSizeApi<T['fontSizes']>;
66
+ get spacing(): SpacingApi<T['spacing']>;
67
+ get radius(): RadiusApi<T['radius']>;
68
+ get font(): FontApi<T['fonts'], T['fontSizes']>;
69
+ get shadow(): ShadowApi<T['effects']>;
70
+ }
71
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/plugin/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjC,OAAO,EAEL,WAAW,EAEX,KAAK,UAAU,EAGf,KAAK,OAAO,EACZ,KAAK,SAAS,EACf,MAAM,SAAS,CAAC;AACjB,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EACL,eAAe,EAGf,aAAa,EACd,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,eAAe,EAAE,MAAa,CAAC;AAE5C;;;;;;;;GAQG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,GAAG,aAAa,IAAI;IACpD,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AACF;;;GAGG;AACH,qBAAa,gBAAgB,CAC3B,CAAC,SAAS,eAAe,CACzB,SAAQ,OAAO,CAAC,UAAU;IAC1B,OAAO,CAAC,aAAa,CAAmC;IACxD,OAAO,CAAC,gBAAgB,CAA4C;IACpE,OAAO,CAAC,eAAe,CAAyC;IAChE,OAAO,CAAC,cAAc,CAAuC;IAC7D,OAAO,CAAC,YAAY,CAAoD;IACxE,OAAO,CAAC,cAAc,CAAwC;IAE9D,kCAAkC;IAClC,OAAO,CAAC,KAAK,CAAsB;IAEnC;;;OAGG;gBACS,aAAa,EAAE,OAAO,CAAC,aAAa;IAMhD;;;;;;;;;;;;;;;;;;;OAmBG;IACM,IAAI,CAAC,EAAE,KAAK,EAAE,QAAgB,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,IAAI;IA6BzE;;;OAGG;IACI,QAAQ,IAAI,CAAC,GAAG,eAAe;IAItC,IAAW,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAErC;IAED,IAAW,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAEjD;IAED,IAAW,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAE7C;IAED,IAAW,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAE1C;IAED,IAAW,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAErD;IAED,IAAW,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAE3C;CACF"}
@@ -0,0 +1,91 @@
1
+ import { Plugins } from 'phaser';
2
+ import { createFontSize, createSpacing, createFont, createShadow, } from '../core';
3
+ import { createColor } from '../core/color';
4
+ import { createRadius } from '../core/radius';
5
+ import { defaultDarkTheme, defaultLightTheme, } from '../theme';
6
+ export const PHASER_WIND_KEY = 'pw';
7
+ /**
8
+ * Phaser Wind Plugin class that manages theme configuration
9
+ * @extends Plugins.BasePlugin
10
+ */
11
+ export class PhaserWindPlugin extends Plugins.BasePlugin {
12
+ colorInstance = null;
13
+ fontSizeInstance = null;
14
+ spacingInstance = null;
15
+ radiusInstance = null;
16
+ fontInstance = null;
17
+ shadowInstance = null;
18
+ /** Current theme configuration */
19
+ theme;
20
+ /**
21
+ * Creates an instance of PhaserWindPlugin
22
+ * @param pluginManager - Phaser plugin manager instance
23
+ */
24
+ constructor(pluginManager) {
25
+ super(pluginManager);
26
+ this.theme = defaultLightTheme;
27
+ }
28
+ /**
29
+ * Initializes the plugin with theme configuration
30
+ * @param theme - Custom theme configuration
31
+ * @param darkMode - Whether to use dark mode theme when no custom theme provided
32
+ * @example
33
+ * ```typescript
34
+ * const game = new Phaser.Game({
35
+ * plugins: {
36
+ * global: [
37
+ * {
38
+ * key: PHASER_WIND_KEY,
39
+ * plugin: PhaserWindPlugin,
40
+ * mapping: PHASER_WIND_KEY,
41
+ * data: { theme: defaultLightTheme }
42
+ * },
43
+ * ],
44
+ * },
45
+ * });
46
+ * ```
47
+ */
48
+ init({ theme, darkMode = false }) {
49
+ if (!theme) {
50
+ this.theme = darkMode
51
+ ? defaultDarkTheme
52
+ : defaultLightTheme;
53
+ return;
54
+ }
55
+ else {
56
+ this.theme = theme;
57
+ }
58
+ this.colorInstance = createColor(this.theme.colors);
59
+ this.fontSizeInstance = createFontSize(this.theme.fontSizes);
60
+ this.spacingInstance = createSpacing(this.theme.spacing);
61
+ this.radiusInstance = createRadius(this.theme.radius);
62
+ this.fontInstance = createFont(this.theme.fonts, this.theme.fontSizes);
63
+ this.shadowInstance = createShadow(this.theme.effects);
64
+ }
65
+ /**
66
+ * Returns the current theme configuration
67
+ * @returns Current BaseThemeConfig
68
+ */
69
+ getTheme() {
70
+ return this.theme;
71
+ }
72
+ get color() {
73
+ return this.colorInstance;
74
+ }
75
+ get fontSize() {
76
+ return this.fontSizeInstance;
77
+ }
78
+ get spacing() {
79
+ return this.spacingInstance;
80
+ }
81
+ get radius() {
82
+ return this.radiusInstance;
83
+ }
84
+ get font() {
85
+ return this.fontInstance;
86
+ }
87
+ get shadow() {
88
+ return this.shadowInstance;
89
+ }
90
+ }
91
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjC,OAAO,EACL,cAAc,EAEd,aAAa,EAEb,UAAU,EACV,YAAY,GAGb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,WAAW,EAAc,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAEL,gBAAgB,EAChB,iBAAiB,GAElB,MAAM,UAAU,CAAC;AAElB,MAAM,CAAC,MAAM,eAAe,GAAW,IAAI,CAAC;AAe5C;;;GAGG;AACH,MAAM,OAAO,gBAEX,SAAQ,OAAO,CAAC,UAAU;IAClB,aAAa,GAA8B,IAAI,CAAC;IAChD,gBAAgB,GAAuC,IAAI,CAAC;IAC5D,eAAe,GAAoC,IAAI,CAAC;IACxD,cAAc,GAAkC,IAAI,CAAC;IACrD,YAAY,GAA+C,IAAI,CAAC;IAChE,cAAc,GAAmC,IAAI,CAAC;IAE9D,kCAAkC;IAC1B,KAAK,CAAsB;IAEnC;;;OAGG;IACH,YAAY,aAAoC;QAC9C,KAAK,CAAC,aAAa,CAAC,CAAC;QAErB,IAAI,CAAC,KAAK,GAAG,iBAAwC,CAAC;IACxD,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACM,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,GAAG,KAAK,EAA2B;QAChE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,KAAK,GAAG,QAAQ;gBACnB,CAAC,CAAE,gBAAwC;gBAC3C,CAAC,CAAE,iBAAyC,CAAC;YAC/C,OAAO;QACT,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,GAAG,KAA4B,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,WAAW,CAC9B,IAAI,CAAC,KAAK,CAAC,MAAqB,CACjC,CAAC;QACF,IAAI,CAAC,gBAAgB,GAAG,cAAc,CACpC,IAAI,CAAC,KAAK,CAAC,SAA2B,CACvC,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,aAAa,CAClC,IAAI,CAAC,KAAK,CAAC,OAAuB,CACnC,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,YAAY,CAChC,IAAI,CAAC,KAAK,CAAC,MAAqB,CACjC,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,UAAU,CAC5B,IAAI,CAAC,KAAK,CAAC,KAAmB,EAC9B,IAAI,CAAC,KAAK,CAAC,SAA2B,CACvC,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,OAAuB,CAAC,CAAC;IACzE,CAAC;IAED;;;OAGG;IACI,QAAQ;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,aAAmC,CAAC;IAClD,CAAC;IAED,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,gBAA+C,CAAC;IAC9D,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,eAA2C,CAAC;IAC1D,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,cAAwC,CAAC;IACvD,CAAC;IAED,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,YAAmD,CAAC;IAClE,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,cAAyC,CAAC;IACxD,CAAC;CACF"}