phaser-wind 0.1.0 → 0.3.0

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