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,178 @@
1
+ /* eslint-disable no-magic-numbers */
2
+ import { ThemeManager } from '../theme/theme-manager';
3
+ import { FontSize } from './font-size';
4
+ /**
5
+ * Font picker for accessing theme fonts and font families
6
+ */
7
+ export const Font = {
8
+ /**
9
+ * Get font size in pixels
10
+ * @param key - Font size key (e.g., 'sm', 'lg', '2xl')
11
+ * @returns Font size in pixels
12
+ */
13
+ size: (key) => {
14
+ return FontSize.px(key);
15
+ },
16
+ /**
17
+ * Get font size and family combined in CSS format
18
+ * @param size - Font size key (e.g., 'sm', 'lg', '2xl')
19
+ * @param family - Font family key (e.g., 'primary', 'display') or full path
20
+ * @returns Font string in format "16px 'Arial'"
21
+ */
22
+ format: ({ size, family }) => {
23
+ return `${FontSize.px(size)}px '${Font.family(family)}'`;
24
+ },
25
+ /**
26
+ * Get font family from theme
27
+ * @param key - Font key (e.g., 'primary', 'display') or full path (e.g., 'fonts.primary')
28
+ * @returns Font family string
29
+ */
30
+ family: (key) => {
31
+ // Check if it's a theme token (with or without fonts. prefix)
32
+ const fontPath = key.includes('.') ? key : `fonts.${key}`;
33
+ const themeValue = ThemeManager.getToken(fontPath);
34
+ if (themeValue && typeof themeValue === 'string') {
35
+ return themeValue;
36
+ }
37
+ // Fallback: check if it's a direct theme token (backwards compatibility)
38
+ if (ThemeManager.hasToken(key)) {
39
+ const themeValue = ThemeManager.getToken(key);
40
+ if (themeValue && typeof themeValue === 'string') {
41
+ return themeValue;
42
+ }
43
+ }
44
+ // Fallback to the key itself if not found in theme
45
+ return key;
46
+ },
47
+ /**
48
+ * Get all available font tokens from current theme
49
+ * @returns Array of font token keys
50
+ */
51
+ getAvailableFonts: () => {
52
+ const theme = ThemeManager.getCurrentTheme();
53
+ if (theme.fonts && typeof theme.fonts === 'object') {
54
+ return Object.keys(theme.fonts);
55
+ }
56
+ return [];
57
+ },
58
+ };
59
+ /**
60
+ * Typography picker for accessing complete typography styles from theme
61
+ */
62
+ export class TypographyPicker {
63
+ /**
64
+ * Get complete typography style from theme
65
+ * @param key - Typography key (e.g., 'heading', 'body') or full path
66
+ * @returns Typography style object
67
+ */
68
+ static style(key) {
69
+ // Check if it's a theme token (with or without typography. prefix)
70
+ const typographyPath = key.includes('.') ? key : `typography.${key}`;
71
+ if (ThemeManager.hasToken(typographyPath)) {
72
+ const themeValue = ThemeManager.getToken(typographyPath);
73
+ if (themeValue && typeof themeValue === 'object') {
74
+ // Resolve any theme references in the typography object
75
+ const resolved = this.resolveTypographyReferences(themeValue);
76
+ return resolved;
77
+ }
78
+ }
79
+ // Fallback: check if it's a direct theme token
80
+ if (ThemeManager.hasToken(key)) {
81
+ const themeValue = ThemeManager.getToken(key);
82
+ if (themeValue && typeof themeValue === 'object') {
83
+ const resolved = this.resolveTypographyReferences(themeValue);
84
+ return resolved;
85
+ }
86
+ }
87
+ // Return empty object if not found
88
+ return {};
89
+ }
90
+ /**
91
+ * Get Phaser-compatible text style from typography token
92
+ * @param key - Typography key
93
+ * @returns Object compatible with Phaser text styles
94
+ */
95
+ static phaserStyle(key) {
96
+ const style = this.style(key);
97
+ const result = {
98
+ fontStyle: style.fontWeight && Number(style.fontWeight) >= 600 ? 'bold' : 'normal',
99
+ };
100
+ if (style.fontSize) {
101
+ result.fontSize = style.fontSize;
102
+ }
103
+ if (style.fontFamily) {
104
+ result.fontFamily = style.fontFamily;
105
+ }
106
+ return result;
107
+ }
108
+ /**
109
+ * Get all available typography tokens from current theme
110
+ * @returns Array of typography token keys
111
+ */
112
+ static getAvailableTypography() {
113
+ const theme = ThemeManager.getCurrentTheme();
114
+ if (theme.typography && typeof theme.typography === 'object') {
115
+ return Object.keys(theme.typography);
116
+ }
117
+ return [];
118
+ }
119
+ /**
120
+ * Resolve theme references in typography objects
121
+ * @param typographyObject - Typography style object
122
+ * @returns Resolved typography object
123
+ */
124
+ static resolveTypographyReferences(typographyObject) {
125
+ const resolved = { ...typographyObject };
126
+ // Resolve fontSize if it's a theme reference
127
+ if (resolved['fontSize'] && typeof resolved['fontSize'] === 'string') {
128
+ if (resolved['fontSize'].includes('.')) {
129
+ resolved['fontSize'] = ThemeManager.resolveToken(resolved['fontSize']);
130
+ }
131
+ }
132
+ // Resolve fontFamily if it's a theme reference
133
+ if (resolved['fontFamily'] && typeof resolved['fontFamily'] === 'string') {
134
+ if (resolved['fontFamily'].includes('.')) {
135
+ resolved['fontFamily'] = ThemeManager.resolveToken(resolved['fontFamily']);
136
+ }
137
+ }
138
+ return resolved;
139
+ }
140
+ }
141
+ /**
142
+ * Effect picker for accessing theme effects like shadows
143
+ */
144
+ export class EffectPicker {
145
+ /**
146
+ * Get effect configuration from theme
147
+ * @param key - Effect key (e.g., 'shadow-md') or full path
148
+ * @returns Effect configuration object
149
+ */
150
+ static config(key) {
151
+ // Check if it's a theme token (with or without effects. prefix)
152
+ const effectPath = key.includes('.') ? key : `effects.${key}`;
153
+ if (ThemeManager.hasToken(effectPath)) {
154
+ const themeValue = ThemeManager.getToken(effectPath);
155
+ if (themeValue && typeof themeValue === 'object') {
156
+ // Resolve color references
157
+ const resolved = { ...themeValue };
158
+ if ('color' in resolved && typeof resolved.color === 'string') {
159
+ resolved.color = ThemeManager.resolveToken(resolved.color);
160
+ }
161
+ return resolved;
162
+ }
163
+ }
164
+ return {};
165
+ }
166
+ /**
167
+ * Get all available effect tokens from current theme
168
+ * @returns Array of effect token keys
169
+ */
170
+ static getAvailableEffects() {
171
+ const theme = ThemeManager.getCurrentTheme();
172
+ if (theme.effects && typeof theme.effects === 'object') {
173
+ return Object.keys(theme.effects);
174
+ }
175
+ return [];
176
+ }
177
+ }
178
+ //# sourceMappingURL=font.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"font.js","sourceRoot":"","sources":["../../src/core/font.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=font.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"font.spec.d.ts","sourceRoot":"","sources":["../../src/core/font.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,84 @@
1
+ /* eslint-disable no-magic-numbers */
2
+ /* eslint-disable max-lines-per-function */
3
+ /* eslint-disable sonarjs/no-duplicate-string */
4
+ import { afterAll, beforeEach, describe, expect, it } from 'vitest';
5
+ import { ThemeManager } from '../theme';
6
+ import { Font } from './font';
7
+ describe('Font', () => {
8
+ beforeEach(() => {
9
+ ThemeManager.clear;
10
+ });
11
+ afterAll(() => {
12
+ ThemeManager.clear();
13
+ });
14
+ describe('size', () => {
15
+ it('should return correct font size in pixels', () => {
16
+ expect(Font.size('xs')).toBe(12);
17
+ expect(Font.size('sm')).toBe(14);
18
+ expect(Font.size('base')).toBe(16);
19
+ expect(Font.size('lg')).toBe(18);
20
+ expect(Font.size('xl')).toBe(20);
21
+ });
22
+ });
23
+ describe('format', () => {
24
+ beforeEach(() => {
25
+ ThemeManager.setThemeObject({
26
+ fonts: {
27
+ primary: 'Arial',
28
+ secondary: 'Helvetica',
29
+ },
30
+ });
31
+ });
32
+ it('should return font string with size and family', () => {
33
+ expect(Font.format({ size: 'base', family: 'primary' })).toBe("16px 'Arial'");
34
+ expect(Font.format({ size: 'lg', family: 'secondary' })).toBe("18px 'Helvetica'");
35
+ });
36
+ });
37
+ describe('family', () => {
38
+ beforeEach(() => {
39
+ ThemeManager.setThemeObject({
40
+ fonts: {
41
+ primary: 'Arial',
42
+ display: 'Helvetica',
43
+ },
44
+ });
45
+ });
46
+ it('should return font family from theme using short key', () => {
47
+ expect(Font.family('primary')).toBe('Arial');
48
+ expect(Font.family('display')).toBe('Helvetica');
49
+ });
50
+ it('should return font family from theme using full path', () => {
51
+ expect(Font.family('fonts.primary')).toBe('Arial');
52
+ expect(Font.family('fonts.display')).toBe('Helvetica');
53
+ });
54
+ it('should return key itself if font not found in theme', () => {
55
+ expect(Font.family('Times New Roman')).toBe('Times New Roman');
56
+ });
57
+ });
58
+ describe('getAvailableFonts', () => {
59
+ it('should return array of available font tokens', () => {
60
+ ThemeManager.setThemeObject({
61
+ fonts: {
62
+ primary: 'Arial',
63
+ secondary: 'Helvetica',
64
+ display: 'Roboto',
65
+ monospace: 'Courier New',
66
+ anotherCrazyFont: 'Comic Sans MS',
67
+ },
68
+ });
69
+ expect(Font.getAvailableFonts()).toEqual(expect.arrayContaining([
70
+ 'primary',
71
+ 'secondary',
72
+ 'monospace',
73
+ 'display',
74
+ 'anotherCrazyFont',
75
+ ]));
76
+ });
77
+ it('should return empty array if no fonts in theme', () => {
78
+ const fonts = ThemeManager.getCurrentTheme().fonts ?? {};
79
+ ThemeManager.setThemeObject({ fonts: {} });
80
+ expect(Font.getAvailableFonts()).toEqual(Object.keys(fonts));
81
+ });
82
+ });
83
+ });
84
+ //# sourceMappingURL=font.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"font.spec.js","sourceRoot":"","sources":["../../src/core/font.spec.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,2CAA2C;AAC3C,gDAAgD;AAEhD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IACpB,UAAU,CAAC,GAAG,EAAE;QACd,YAAY,CAAC,KAAK,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE;QACZ,YAAY,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;QACpB,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,UAAU,CAAC,GAAG,EAAE;YACd,YAAY,CAAC,cAAc,CAAC;gBAC1B,KAAK,EAAE;oBACL,OAAO,EAAE,OAAO;oBAChB,SAAS,EAAE,WAAW;iBACvB;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAC3D,cAAc,CACf,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAC3D,kBAAkB,CACnB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,UAAU,CAAC,GAAG,EAAE;YACd,YAAY,CAAC,cAAc,CAAC;gBAC1B,KAAK,EAAE;oBACL,OAAO,EAAE,OAAO;oBAChB,OAAO,EAAE,WAAW;iBACrB;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,YAAY,CAAC,cAAc,CAAC;gBAC1B,KAAK,EAAE;oBACL,OAAO,EAAE,OAAO;oBAChB,SAAS,EAAE,WAAW;oBACtB,OAAO,EAAE,QAAQ;oBACjB,SAAS,EAAE,aAAa;oBACxB,gBAAgB,EAAE,eAAe;iBAClC;aACF,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,OAAO,CACtC,MAAM,CAAC,eAAe,CAAC;gBACrB,SAAS;gBACT,WAAW;gBACX,WAAW;gBACX,SAAS;gBACT,kBAAkB;aACnB,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,KAAK,GAAG,YAAY,CAAC,eAAe,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;YACzD,YAAY,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export * from './color';
2
+ export * from './font';
3
+ export * from './font-size';
4
+ export * from './pallete';
5
+ export * from './radius';
6
+ export * from './shadow';
7
+ export * from './spacing';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC"}
@@ -0,0 +1,8 @@
1
+ export * from './color';
2
+ export * from './font';
3
+ export * from './font-size';
4
+ export * from './pallete';
5
+ export * from './radius';
6
+ export * from './shadow';
7
+ export * from './spacing';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pallete.d.ts","sourceRoot":"","sources":["../../src/color/pallete.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiSnB,CAAC"}
1
+ {"version":3,"file":"pallete.d.ts","sourceRoot":"","sources":["../../src/core/pallete.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiSnB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pallete.js","sourceRoot":"","sources":["../../src/core/pallete.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Available border radius keys matching Tailwind CSS radius scale
3
+ */
4
+ export type RadiusKey = 'none' | 'sm' | 'default' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full';
5
+ export type RadiusMap = Record<RadiusKey, number>;
6
+ /**
7
+ * Mapping of radius keys to their pixel values
8
+ */
9
+ export declare const radiusMap: RadiusMap;
10
+ /**
11
+ * Utility functions for working with border radius values
12
+ */
13
+ export declare const Radius: {
14
+ getValueByKey: (key: RadiusKey | string) => number;
15
+ /**
16
+ * Get border radius in pixels
17
+ * @param key - Radius key (e.g., 'sm', 'lg', 'full')
18
+ * @returns Border radius value in pixels
19
+ */
20
+ px: (key: RadiusKey) => number;
21
+ /**
22
+ * Get border radius in rem units (relative to 16px base)
23
+ * @param key - Radius key (e.g., 'sm', 'lg', 'full')
24
+ * @returns Border radius value in rem units
25
+ */
26
+ rem: (key: RadiusKey) => number;
27
+ /**
28
+ * Get border radius as CSS pixel string
29
+ * @param key - Radius key (e.g., 'sm', 'lg', 'full')
30
+ * @returns Border radius value as CSS string (e.g., '4px')
31
+ */
32
+ css: (key: RadiusKey) => string;
33
+ };
34
+ //# sourceMappingURL=radius.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radius.d.ts","sourceRoot":"","sources":["../../src/core/radius.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,IAAI,GACJ,SAAS,GACT,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,KAAK,GACL,MAAM,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,SAUvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM;yBACI,SAAS,GAAG,MAAM,KAAG,MAAM;IAQhD;;;;OAIG;cACO,SAAS,KAAG,MAAM;IAE5B;;;;OAIG;eACQ,SAAS,KAAG,MAAM;IAE7B;;;;OAIG;eACQ,SAAS,KAAG,MAAM;CAC9B,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { ThemeManager } from '../theme';
2
+ /**
3
+ * Mapping of radius keys to their pixel values
4
+ */
5
+ export const radiusMap = {
6
+ none: 0,
7
+ sm: 2,
8
+ default: 4,
9
+ md: 6,
10
+ lg: 8,
11
+ xl: 12,
12
+ '2xl': 16,
13
+ '3xl': 24,
14
+ full: 9999,
15
+ };
16
+ /**
17
+ * Utility functions for working with border radius values
18
+ */
19
+ export const Radius = {
20
+ getValueByKey: (key) => {
21
+ const value = ThemeManager.getToken(`radius.${key}`);
22
+ if (typeof value === 'number') {
23
+ return value;
24
+ }
25
+ return radiusMap[key] ?? 0;
26
+ },
27
+ /**
28
+ * Get border radius in pixels
29
+ * @param key - Radius key (e.g., 'sm', 'lg', 'full')
30
+ * @returns Border radius value in pixels
31
+ */
32
+ px: (key) => radiusMap[key],
33
+ /**
34
+ * Get border radius in rem units (relative to 16px base)
35
+ * @param key - Radius key (e.g., 'sm', 'lg', 'full')
36
+ * @returns Border radius value in rem units
37
+ */
38
+ rem: (key) => radiusMap[key] / 16,
39
+ /**
40
+ * Get border radius as CSS pixel string
41
+ * @param key - Radius key (e.g., 'sm', 'lg', 'full')
42
+ * @returns Border radius value as CSS string (e.g., '4px')
43
+ */
44
+ css: (key) => `${radiusMap[key]}px`,
45
+ };
46
+ //# sourceMappingURL=radius.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radius.js","sourceRoot":"","sources":["../../src/core/radius.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAkBxC;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAc;IAClC,IAAI,EAAE,CAAC;IACP,EAAE,EAAE,CAAC;IACL,OAAO,EAAE,CAAC;IACV,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,EAAE;IACN,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,IAAI;CACX,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,aAAa,EAAE,CAAC,GAAuB,EAAU,EAAE;QACjD,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;QACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,SAAS,CAAC,GAAgB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IACD;;;;OAIG;IACH,EAAE,EAAE,CAAC,GAAc,EAAU,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC;IAE9C;;;;OAIG;IACH,GAAG,EAAE,CAAC,GAAc,EAAU,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE;IAEpD;;;;OAIG;IACH,GAAG,EAAE,CAAC,GAAc,EAAU,EAAE,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI;CACvD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=radius.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radius.spec.d.ts","sourceRoot":"","sources":["../../src/core/radius.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,61 @@
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, defaultLightTheme } from '../theme';
7
+ import { Radius, radiusMap } from './radius';
8
+ describe('Radius', () => {
9
+ afterAll(() => {
10
+ ThemeManager.clear();
11
+ });
12
+ beforeEach(() => {
13
+ ThemeManager.init(defaultLightTheme);
14
+ });
15
+ describe('px', () => {
16
+ it('should return pixel value for radius key', () => {
17
+ expect(Radius.px('sm')).toBe(2);
18
+ expect(Radius.px('lg')).toBe(8);
19
+ expect(Radius.px('full')).toBe(9999);
20
+ });
21
+ });
22
+ describe('rem', () => {
23
+ it('should convert pixel value to rem', () => {
24
+ expect(Radius.rem('sm')).toBe(2 / 16);
25
+ expect(Radius.rem('lg')).toBe(8 / 16);
26
+ expect(Radius.rem('full')).toBe(9999 / 16);
27
+ });
28
+ });
29
+ describe('css', () => {
30
+ it('should return CSS string with px unit', () => {
31
+ expect(Radius.css('sm')).toBe('2px');
32
+ expect(Radius.css('lg')).toBe('8px');
33
+ expect(Radius.css('full')).toBe('9999px');
34
+ });
35
+ });
36
+ describe('getValueByKey', () => {
37
+ it('should return value from radiusMap', () => {
38
+ expect(Radius.getValueByKey('sm')).toBe(radiusMap.sm);
39
+ expect(Radius.getValueByKey('lg')).toBe(radiusMap.lg);
40
+ expect(Radius.getValueByKey('full')).toBe(radiusMap.full);
41
+ });
42
+ });
43
+ describe('with theme', () => {
44
+ it('should return value from theme', () => {
45
+ expect(Radius.getValueByKey('sm')).toBe(radiusMap.sm);
46
+ expect(Radius.getValueByKey('custom')).toBe(0);
47
+ expect(Radius.getValueByKey('11')).toBe(0);
48
+ ThemeManager.setThemeObject({
49
+ radius: {
50
+ sm: 10,
51
+ custom: 42,
52
+ '11': 100,
53
+ },
54
+ });
55
+ expect(Radius.getValueByKey('sm')).toBe(10);
56
+ expect(Radius.getValueByKey('custom')).toBe(42);
57
+ expect(Radius.getValueByKey('11')).toBe(100);
58
+ });
59
+ });
60
+ });
61
+ //# sourceMappingURL=radius.spec.js.map
@@ -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,23 @@
1
+ export type ShadowKey = 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'inner';
2
+ /**
3
+ * Shadow configuration type defining blur, offset and alpha values
4
+ */
5
+ export type ShadowConfig = {
6
+ blur: number;
7
+ offsetX: number;
8
+ offsetY: number;
9
+ alpha: number;
10
+ };
11
+ /**
12
+ * Utility for working with shadow configurations
13
+ */
14
+ export declare const Shadow: {
15
+ /**
16
+ * Get shadow configuration for given key
17
+ * @param key - Shadow key (e.g., 'sm', 'lg', 'inner')
18
+ * @param defaultKey - Optional default key if provided key is invalid
19
+ * @returns Shadow configuration with blur, offset and alpha values
20
+ */
21
+ get: (key: ShadowKey, defaultKey?: ShadowKey) => ShadowConfig;
22
+ };
23
+ //# sourceMappingURL=shadow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow.d.ts","sourceRoot":"","sources":["../../src/core/shadow.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,OAAO,CAAC;AAEpE;;GAEG;AACH,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;;GAEG;AACH,eAAO,MAAM,MAAM;IACjB;;;;;OAKG;eACQ,SAAS,eAAc,SAAS,KAAU,YAAY;CAWlE,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Utility for working with shadow configurations
3
+ */
4
+ export const Shadow = {
5
+ /**
6
+ * Get shadow configuration for given key
7
+ * @param key - Shadow key (e.g., 'sm', 'lg', 'inner')
8
+ * @param defaultKey - Optional default key if provided key is invalid
9
+ * @returns Shadow configuration with blur, offset and alpha values
10
+ */
11
+ get: (key, defaultKey = 'md') => {
12
+ const shadows = {
13
+ sm: { blur: 2, offsetX: 1, offsetY: 1, alpha: 0.15 },
14
+ md: { blur: 4, offsetX: 2, offsetY: 2, alpha: 0.2 },
15
+ lg: { blur: 6, offsetX: 4, offsetY: 4, alpha: 0.25 },
16
+ xl: { blur: 8, offsetX: 6, offsetY: 6, alpha: 0.3 },
17
+ '2xl': { blur: 12, offsetX: 8, offsetY: 8, alpha: 0.35 },
18
+ inner: { blur: 4, offsetX: -2, offsetY: -2, alpha: 0.2 },
19
+ };
20
+ return shadows[key] || shadows[defaultKey];
21
+ },
22
+ };
23
+ //# sourceMappingURL=shadow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow.js","sourceRoot":"","sources":["../../src/core/shadow.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB;;;;;OAKG;IACH,GAAG,EAAE,CAAC,GAAc,EAAE,aAAwB,IAAI,EAAgB,EAAE;QAClE,MAAM,OAAO,GAAoC;YAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;YACpD,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YACnD,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;YACpD,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YACnD,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;YACxD,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SACzD,CAAC;QACF,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC;CACF,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Valid spacing scale keys following Tailwind's spacing scale
3
+ * Values range from '0' to '96', including fractional values
4
+ */
5
+ 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';
6
+ /**
7
+ * Maps spacing scale keys to their pixel values
8
+ */
9
+ export type SpacingMap = Record<SpacingKey, number>;
10
+ /**
11
+ * Spacing scale mapping following Tailwind's spacing scale
12
+ * Values are in pixels, with a base unit of 4px (1 = 4px)
13
+ */
14
+ export declare const spacingMap: SpacingMap;
15
+ /**
16
+ * Utility functions for working with spacing values
17
+ */
18
+ export declare const Spacing: {
19
+ getValueByKey: (key: SpacingKey | string) => number;
20
+ /**
21
+ * Get spacing value in pixels
22
+ * @param key - Spacing scale key
23
+ * @returns Pixel value
24
+ */
25
+ px: (key: SpacingKey | string) => number;
26
+ /**
27
+ * Get spacing value in rem units (divided by 16)
28
+ * @param key - Spacing scale key
29
+ * @returns Rem value
30
+ */
31
+ rem: (key: SpacingKey | string) => number;
32
+ /**
33
+ * Get spacing value as CSS pixel string
34
+ * @param key - Spacing scale key
35
+ * @returns CSS pixel value string (e.g. "16px")
36
+ */
37
+ css: (key: SpacingKey | string) => string;
38
+ };
39
+ //# sourceMappingURL=spacing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spacing.d.ts","sourceRoot":"","sources":["../../src/core/spacing.ts"],"names":[],"mappings":"AAEA;;;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;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAEpD;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,UAoCxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO;yBACG,UAAU,GAAG,MAAM,KAAG,MAAM;IASjD;;;;OAIG;cACO,UAAU,GAAG,MAAM,KAAG,MAAM;IAKtC;;;;OAIG;eACQ,UAAU,GAAG,MAAM,KAAG,MAAM;IAKvC;;;;OAIG;eACQ,UAAU,GAAG,MAAM,KAAG,MAAM;CAIxC,CAAC"}