phaser-wind 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +170 -413
- package/dist/components/column.d.ts +2 -0
- package/dist/components/column.d.ts.map +1 -0
- package/dist/components/column.js +2 -0
- package/dist/components/column.js.map +1 -0
- package/dist/core/color.d.ts +149 -282
- package/dist/core/color.d.ts.map +1 -1
- package/dist/core/color.js +117 -298
- package/dist/core/color.js.map +1 -1
- package/dist/core/color.spec.js +46 -55
- package/dist/core/color.spec.js.map +1 -1
- package/dist/core/font-size.d.ts +36 -15
- package/dist/core/font-size.d.ts.map +1 -1
- package/dist/core/font-size.js +42 -47
- package/dist/core/font-size.js.map +1 -1
- package/dist/core/font-size.spec.js +55 -43
- package/dist/core/font-size.spec.js.map +1 -1
- package/dist/core/font.d.ts +18 -91
- package/dist/core/font.d.ts.map +1 -1
- package/dist/core/font.js +33 -174
- package/dist/core/font.js.map +1 -1
- package/dist/core/font.spec.js +45 -49
- package/dist/core/font.spec.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/{pallete.d.ts → palette.d.ts} +2 -2
- package/dist/core/{pallete.d.ts.map → palette.d.ts.map} +1 -1
- package/dist/core/{pallete.js → palette.js} +2 -2
- package/dist/core/{pallete.js.map → palette.js.map} +1 -1
- package/dist/core/radius.d.ts +19 -24
- package/dist/core/radius.d.ts.map +1 -1
- package/dist/core/radius.js +20 -28
- package/dist/core/radius.js.map +1 -1
- package/dist/core/radius.spec.js +28 -33
- package/dist/core/radius.spec.js.map +1 -1
- package/dist/core/shadow.d.ts +18 -10
- package/dist/core/shadow.d.ts.map +1 -1
- package/dist/core/shadow.js +29 -19
- package/dist/core/shadow.js.map +1 -1
- package/dist/core/shadow.spec.d.ts +2 -0
- package/dist/core/shadow.spec.d.ts.map +1 -0
- package/dist/core/shadow.spec.js +21 -0
- package/dist/core/shadow.spec.js.map +1 -0
- package/dist/core/spacing.d.ts +22 -29
- package/dist/core/spacing.d.ts.map +1 -1
- package/dist/core/spacing.js +27 -39
- package/dist/core/spacing.js.map +1 -1
- package/dist/core/spacing.spec.js +18 -29
- package/dist/core/spacing.spec.js.map +1 -1
- package/dist/exceptions.d.ts +1 -0
- package/dist/exceptions.d.ts.map +1 -0
- package/dist/exceptions.js +2 -0
- package/dist/exceptions.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/plugin/index.d.ts +2 -0
- package/dist/plugin/index.d.ts.map +1 -0
- package/dist/plugin/index.js +2 -0
- package/dist/plugin/index.js.map +1 -0
- package/dist/plugin/plugin.d.ts +71 -0
- package/dist/plugin/plugin.d.ts.map +1 -0
- package/dist/plugin/plugin.js +91 -0
- package/dist/plugin/plugin.js.map +1 -0
- package/dist/scene/index.d.ts +2 -0
- package/dist/scene/index.d.ts.map +1 -0
- package/dist/scene/index.js +2 -0
- package/dist/scene/index.js.map +1 -0
- package/dist/scene/scene-with-phaser-wind.d.ts +11 -0
- package/dist/scene/scene-with-phaser-wind.d.ts.map +1 -0
- package/dist/scene/scene-with-phaser-wind.js +11 -0
- package/dist/scene/scene-with-phaser-wind.js.map +1 -0
- package/dist/theme/theme-config.d.ts +24 -48
- package/dist/theme/theme-config.d.ts.map +1 -1
- package/dist/theme/theme-config.js +4 -1
- package/dist/theme/theme-config.js.map +1 -1
- package/dist/theme/theme-manager.d.ts +1 -106
- package/dist/theme/theme-manager.d.ts.map +1 -1
- package/dist/theme/theme-manager.js +1 -187
- package/dist/theme/theme-manager.js.map +1 -1
- package/dist/theme/type.d.ts +48 -0
- package/dist/theme/type.d.ts.map +1 -1
- package/dist/theme/type.js +1 -1
- package/package.json +3 -3
package/dist/core/color.spec.js
CHANGED
|
@@ -1,16 +1,24 @@
|
|
|
1
1
|
/* eslint-disable no-magic-numbers */
|
|
2
2
|
/* eslint-disable max-lines-per-function */
|
|
3
|
-
import {
|
|
4
|
-
import { createTheme
|
|
5
|
-
import { Color } from './color';
|
|
3
|
+
import { beforeEach, describe, expect, it } from 'vitest';
|
|
4
|
+
import { createTheme } from '../theme';
|
|
5
|
+
import { createColor, Color as ColorDefault, } from './color';
|
|
6
6
|
const RED_500_RGB = 'rgb(239, 68, 68)';
|
|
7
7
|
const SLATE_50_RGB = 'rgb(248, 250, 252)';
|
|
8
|
+
const RED_500_TOKEN = 'red-500';
|
|
9
|
+
const SLATE_50_TOKEN = '50';
|
|
10
|
+
const BLUE_500_TOKEN = '500';
|
|
8
11
|
describe('ColorPicker', () => {
|
|
12
|
+
let color;
|
|
9
13
|
beforeEach(() => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
+
const fakeTheme = createTheme({
|
|
15
|
+
colors: {
|
|
16
|
+
primary: 'red-500',
|
|
17
|
+
secondary: 'slate-50',
|
|
18
|
+
another: '#ff9887',
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
color = createColor(fakeTheme);
|
|
14
22
|
});
|
|
15
23
|
describe('rgb method', () => {
|
|
16
24
|
it.each([
|
|
@@ -90,42 +98,27 @@ describe('ColorPicker', () => {
|
|
|
90
98
|
['black', '#000'],
|
|
91
99
|
['white', '#fff'],
|
|
92
100
|
])('should convert %s to rgb %s', (colorToken, expected) => {
|
|
93
|
-
expect(
|
|
101
|
+
expect(color.rgb(colorToken)).toBe(expected);
|
|
94
102
|
});
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
expect(
|
|
104
|
-
expect(Color.rgb('rgb(0, 0, 0)')).toBe('rgb(0, 0, 0)');
|
|
105
|
-
expect(Color.rgb('rgb(255, 0, 0)')).toBe('rgb(255, 0, 0)');
|
|
106
|
-
expect(Color.rgb('rgb(0, 255, 0)')).toBe('rgb(0, 255, 0)');
|
|
107
|
-
expect(Color.rgb('rgb(0, 0, 255)')).toBe('rgb(0, 0, 255)');
|
|
108
|
-
});
|
|
109
|
-
it('should return the color if it is a valid rgba color', () => {
|
|
110
|
-
expect(Color.rgb('rgba(255, 255, 255, 1)')).toBe('rgba(255, 255, 255, 1)');
|
|
111
|
-
expect(Color.rgb('rgba(0, 0, 0, 1)')).toBe('rgba(0, 0, 0, 1)');
|
|
112
|
-
expect(Color.rgb('rgba(255, 0, 0, 1)')).toBe('rgba(255, 0, 0, 1)');
|
|
113
|
-
expect(Color.rgb('rgba(0, 255, 0, 1)')).toBe('rgba(0, 255, 0, 1)');
|
|
114
|
-
expect(Color.rgb('rgba(0, 0, 255, 1)')).toBe('rgba(0, 0, 255, 1)');
|
|
103
|
+
// With stronger typing, direct CSS strings are not allowed by the type system.
|
|
104
|
+
// Runtime still supports them when needed, but they are intentionally not tested here.
|
|
105
|
+
it('should return the theme color when pass a token', () => {
|
|
106
|
+
const color = createColor({
|
|
107
|
+
primary: 'red-500',
|
|
108
|
+
secondary: 'slate-50',
|
|
109
|
+
});
|
|
110
|
+
expect(color.rgb('primary')).toBe('rgb(239, 68, 68)');
|
|
111
|
+
expect(color.rgb('secondary')).toBe('rgb(248, 250, 252)');
|
|
115
112
|
});
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
113
|
+
});
|
|
114
|
+
describe('default Color constant (no theme)', () => {
|
|
115
|
+
it('should resolve palette tokens via Color constant', () => {
|
|
116
|
+
expect(ColorDefault.rgb(RED_500_TOKEN)).toBe(RED_500_RGB);
|
|
117
|
+
expect(ColorDefault.slate(SLATE_50_TOKEN)).toBe(SLATE_50_RGB);
|
|
118
|
+
expect(ColorDefault.blueHex(BLUE_500_TOKEN)).toBe(0x3b82f6);
|
|
119
119
|
});
|
|
120
|
-
it('should
|
|
121
|
-
|
|
122
|
-
colors: {
|
|
123
|
-
primary: 'red-500',
|
|
124
|
-
secondary: 'slate-50',
|
|
125
|
-
},
|
|
126
|
-
}));
|
|
127
|
-
expect(Color.rgb('primary')).toBe(RED_500_RGB);
|
|
128
|
-
expect(Color.rgb('secondary')).toBe(SLATE_50_RGB);
|
|
120
|
+
it('should throw for unknown tokens', () => {
|
|
121
|
+
expect(() => ColorDefault.rgb('unknown-123')).toThrow();
|
|
129
122
|
});
|
|
130
123
|
});
|
|
131
124
|
describe('hex method', () => {
|
|
@@ -206,18 +199,18 @@ describe('ColorPicker', () => {
|
|
|
206
199
|
['black', 0x000000],
|
|
207
200
|
['white', 0xffffff],
|
|
208
201
|
])('should convert %s to hex 0x%s', (colorToken, expected) => {
|
|
209
|
-
expect(
|
|
202
|
+
expect(color.hex(colorToken)).toBe(expected);
|
|
210
203
|
});
|
|
211
204
|
});
|
|
212
205
|
describe('error handling', () => {
|
|
213
206
|
it('should throw an error for invalid color token', () => {
|
|
214
|
-
expect(() =>
|
|
207
|
+
expect(() => color.rgb('invalid-color')).toThrow('Color token "invalid-color" not found');
|
|
215
208
|
});
|
|
216
209
|
it('should throw an error for invalid shade', () => {
|
|
217
|
-
expect(() =>
|
|
210
|
+
expect(() => color.rgb('red-999')).toThrow('Color token "red-999" not found');
|
|
218
211
|
});
|
|
219
212
|
it('should throw an error for invalid color key', () => {
|
|
220
|
-
expect(() =>
|
|
213
|
+
expect(() => color.hex('purples-500')).toThrow('Color token "purples-500" not found');
|
|
221
214
|
});
|
|
222
215
|
});
|
|
223
216
|
describe('theme integration', () => {
|
|
@@ -228,24 +221,22 @@ describe('ColorPicker', () => {
|
|
|
228
221
|
another: '#ff9887',
|
|
229
222
|
},
|
|
230
223
|
});
|
|
231
|
-
|
|
232
|
-
ThemeManager.init(fakeTheme);
|
|
233
|
-
});
|
|
224
|
+
const color = createColor(fakeTheme.colors);
|
|
234
225
|
it('should resolve theme token with colors. prefix', () => {
|
|
235
|
-
expect(
|
|
236
|
-
expect(
|
|
237
|
-
expect(
|
|
226
|
+
expect(color.rgb('primary')).toBe(RED_500_RGB);
|
|
227
|
+
expect(color.rgb('secondary')).toBe(SLATE_50_RGB);
|
|
228
|
+
expect(color.rgb('another')).toBe('#ff9887');
|
|
238
229
|
});
|
|
239
230
|
it('should resolve theme token without colors. prefix', () => {
|
|
240
|
-
expect(
|
|
241
|
-
expect(
|
|
231
|
+
expect(color.rgb('primary')).toBe(RED_500_RGB);
|
|
232
|
+
expect(color.rgb('secondary')).toBe(SLATE_50_RGB);
|
|
242
233
|
});
|
|
243
234
|
it('should convert theme tokens to hex', () => {
|
|
244
|
-
expect(
|
|
245
|
-
expect(
|
|
235
|
+
expect(color.hex('primary')).toBe(0xef4444);
|
|
236
|
+
expect(color.hex('secondary')).toBe(0xf8fafc);
|
|
246
237
|
});
|
|
247
238
|
it('should throw an error if theme token is not found', () => {
|
|
248
|
-
expect(() =>
|
|
239
|
+
expect(() => color.rgb('colors.not-found')).toThrow('Color token "colors.not-found" not found');
|
|
249
240
|
});
|
|
250
241
|
});
|
|
251
242
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color.spec.js","sourceRoot":"","sources":["../../src/core/color.spec.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,2CAA2C;AAC3C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"color.spec.js","sourceRoot":"","sources":["../../src/core/color.spec.ts"],"names":[],"mappings":"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"}
|
package/dist/core/font-size.d.ts
CHANGED
|
@@ -1,34 +1,55 @@
|
|
|
1
|
+
import { BaseThemeConfig } from '../theme';
|
|
1
2
|
/**
|
|
2
3
|
* Available font size keys matching Tailwind CSS font size scale
|
|
3
4
|
*/
|
|
4
5
|
export type FontSizeKey = 'xs' | 'sm' | 'base' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | '6xl' | '7xl' | '8xl' | '9xl';
|
|
5
|
-
export type FontSizeMap = Record<FontSizeKey, number>;
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* Maps font size keys to their pixel values
|
|
8
8
|
*/
|
|
9
|
+
/** Map of font-size tokens to pixel values. */
|
|
10
|
+
export type FontSizeMap = Record<FontSizeKey | string, number>;
|
|
11
|
+
/**
|
|
12
|
+
* Default mapping of font size keys to their pixel values in pixels
|
|
13
|
+
*/
|
|
14
|
+
/** Default font-size scale mapping (in pixels). */
|
|
9
15
|
export declare const fontSizeMap: FontSizeMap;
|
|
10
16
|
/**
|
|
11
|
-
*
|
|
17
|
+
* API for converting font sizes between different units
|
|
18
|
+
* @template T - Optional custom font size map type
|
|
12
19
|
*/
|
|
13
|
-
|
|
14
|
-
|
|
20
|
+
/** API for resolving font sizes to px/rem/css. */
|
|
21
|
+
export type FontSizeApi<T extends FontSizeMap | undefined> = {
|
|
15
22
|
/**
|
|
16
|
-
*
|
|
17
|
-
* @param key - Font size key
|
|
23
|
+
* Convert font size key to pixels
|
|
24
|
+
* @param key - Font size key from default or custom map
|
|
18
25
|
* @returns Font size in pixels
|
|
19
26
|
*/
|
|
20
|
-
px: (key: FontSizeKey |
|
|
27
|
+
px: (key: FontSizeKey | (T extends FontSizeMap ? keyof T : never)) => number;
|
|
21
28
|
/**
|
|
22
|
-
*
|
|
23
|
-
* @param key - Font size key
|
|
29
|
+
* Convert font size key to rem units
|
|
30
|
+
* @param key - Font size key from default or custom map
|
|
24
31
|
* @returns Font size in rem units
|
|
25
32
|
*/
|
|
26
|
-
rem: (key: FontSizeKey |
|
|
33
|
+
rem: (key: FontSizeKey | (T extends FontSizeMap ? keyof T : never)) => number;
|
|
27
34
|
/**
|
|
28
|
-
*
|
|
29
|
-
* @param key - Font size key
|
|
30
|
-
* @returns Font size as CSS string (e.g
|
|
35
|
+
* Convert font size key to CSS string with px unit
|
|
36
|
+
* @param key - Font size key from default or custom map
|
|
37
|
+
* @returns Font size as CSS string (e.g. "16px")
|
|
31
38
|
*/
|
|
32
|
-
css: (key: FontSizeKey |
|
|
39
|
+
css: (key: FontSizeKey | (T extends FontSizeMap ? keyof T : never)) => string;
|
|
33
40
|
};
|
|
41
|
+
/**
|
|
42
|
+
* Creates a font size conversion API with optional custom font sizes
|
|
43
|
+
* @template T - Optional custom font size map type
|
|
44
|
+
* @param themeFontSizes - Optional custom font size mappings to extend defaults
|
|
45
|
+
* @returns Font size conversion API
|
|
46
|
+
*/
|
|
47
|
+
/**
|
|
48
|
+
* Create a font-size API bound to an optional custom map.
|
|
49
|
+
* @example
|
|
50
|
+
* const f = createFontSize({ xxl: 28 });
|
|
51
|
+
* f.css('xxl'); // '28px'
|
|
52
|
+
*/
|
|
53
|
+
export declare const createFontSize: <T extends FontSizeMap | undefined = BaseThemeConfig["fontSizes"]>(themeFontSizes?: T) => FontSizeApi<T>;
|
|
54
|
+
export declare const FontSize: FontSizeApi<undefined>;
|
|
34
55
|
//# sourceMappingURL=font-size.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"font-size.d.ts","sourceRoot":"","sources":["../../src/core/font-size.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"font-size.d.ts","sourceRoot":"","sources":["../../src/core/font-size.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,IAAI,GACJ,IAAI,GACJ,MAAM,GACN,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,CAAC;AAEV;;GAEG;AACH,+CAA+C;AAC/C,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC;AAE/D;;GAEG;AACH,mDAAmD;AACnD,eAAO,MAAM,WAAW,EAAE,WAczB,CAAC;AAEF;;;GAGG;AACH,kDAAkD;AAClD,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,WAAW,GAAG,SAAS,IAAI;IAC3D;;;;OAIG;IACH,EAAE,EAAE,CAAC,GAAG,EAAE,WAAW,GAAG,CAAC,CAAC,SAAS,WAAW,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,MAAM,CAAC;IAE7E;;;;OAIG;IACH,GAAG,EAAE,CAAC,GAAG,EAAE,WAAW,GAAG,CAAC,CAAC,SAAS,WAAW,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,MAAM,CAAC;IAE9E;;;;OAIG;IACH,GAAG,EAAE,CAAC,GAAG,EAAE,WAAW,GAAG,CAAC,CAAC,SAAS,WAAW,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,MAAM,CAAC;CAC/E,CAAC;AAEF;;;;;GAKG;AACH;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GACzB,CAAC,SAAS,WAAW,GAAG,SAAS,GAAG,eAAe,CAAC,WAAW,CAAC,EAEhE,iBAAiB,CAAC,KACjB,WAAW,CAAC,CAAC,CAsCf,CAAC;AAGF,eAAO,MAAM,QAAQ,EAAE,WAAW,CAAC,SAAS,CACN,CAAC"}
|
package/dist/core/font-size.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ThemeManager } from '../theme';
|
|
2
1
|
/**
|
|
3
|
-
*
|
|
2
|
+
* Default mapping of font size keys to their pixel values in pixels
|
|
4
3
|
*/
|
|
4
|
+
/** Default font-size scale mapping (in pixels). */
|
|
5
5
|
export const fontSizeMap = {
|
|
6
6
|
xs: 12,
|
|
7
7
|
sm: 14,
|
|
@@ -18,51 +18,46 @@ export const fontSizeMap = {
|
|
|
18
18
|
'9xl': 128,
|
|
19
19
|
};
|
|
20
20
|
/**
|
|
21
|
-
*
|
|
21
|
+
* Creates a font size conversion API with optional custom font sizes
|
|
22
|
+
* @template T - Optional custom font size map type
|
|
23
|
+
* @param themeFontSizes - Optional custom font size mappings to extend defaults
|
|
24
|
+
* @returns Font size conversion API
|
|
22
25
|
*/
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
* @param key - Font size key (e.g., 'sm', 'lg', '2xl')
|
|
58
|
-
* @returns Font size as CSS string (e.g., '14px')
|
|
59
|
-
*/
|
|
60
|
-
css: (key) => {
|
|
61
|
-
const value = ThemeManager.getToken(`fontSizes.${key}`);
|
|
62
|
-
if (typeof value === 'number') {
|
|
63
|
-
return `${value}px`;
|
|
64
|
-
}
|
|
65
|
-
return `${fontSizeMap[key] ?? 0}px`;
|
|
66
|
-
},
|
|
26
|
+
/**
|
|
27
|
+
* Create a font-size API bound to an optional custom map.
|
|
28
|
+
* @example
|
|
29
|
+
* const f = createFontSize({ xxl: 28 });
|
|
30
|
+
* f.css('xxl'); // '28px'
|
|
31
|
+
*/
|
|
32
|
+
export const createFontSize = (themeFontSizes) => {
|
|
33
|
+
const fontmap = {
|
|
34
|
+
...fontSizeMap,
|
|
35
|
+
...themeFontSizes,
|
|
36
|
+
};
|
|
37
|
+
return {
|
|
38
|
+
px: (key) => {
|
|
39
|
+
const value = fontmap[key];
|
|
40
|
+
if (typeof value === 'number') {
|
|
41
|
+
return value;
|
|
42
|
+
}
|
|
43
|
+
return 0;
|
|
44
|
+
},
|
|
45
|
+
rem: (key) => {
|
|
46
|
+
const value = fontmap[key];
|
|
47
|
+
if (typeof value === 'number') {
|
|
48
|
+
return value / 16;
|
|
49
|
+
}
|
|
50
|
+
return 0;
|
|
51
|
+
},
|
|
52
|
+
css: (key) => {
|
|
53
|
+
const value = fontmap[key];
|
|
54
|
+
if (typeof value === 'number') {
|
|
55
|
+
return `${value}px`;
|
|
56
|
+
}
|
|
57
|
+
return '0px';
|
|
58
|
+
},
|
|
59
|
+
};
|
|
67
60
|
};
|
|
61
|
+
// Convenience instance using default font sizes (no theme)
|
|
62
|
+
export const FontSize = createFontSize(undefined);
|
|
68
63
|
//# sourceMappingURL=font-size.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"font-size.js","sourceRoot":"","sources":["../../src/core/font-size.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"font-size.js","sourceRoot":"","sources":["../../src/core/font-size.ts"],"names":[],"mappings":"AA0BA;;GAEG;AACH,mDAAmD;AACnD,MAAM,CAAC,MAAM,WAAW,GAAgB;IACtC,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,IAAI,EAAE,EAAE;IACR,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,GAAG;CACX,CAAC;AA8BF;;;;;GAKG;AACH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAG5B,cAAkB,EACF,EAAE;IAClB,MAAM,OAAO,GAAgB;QAC3B,GAAG,WAAW;QACd,GAAI,cAA0C;KAChC,CAAC;IAEjB,OAAO;QACL,EAAE,EAAE,CACF,GAA4D,EACpD,EAAE;YACV,MAAM,KAAK,GAAG,OAAO,CAAC,GAAkB,CAAC,CAAC;YAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,CAAC,CAAC;QACX,CAAC;QACD,GAAG,EAAE,CACH,GAA4D,EACpD,EAAE;YACV,MAAM,KAAK,GAAG,OAAO,CAAC,GAAkB,CAAC,CAAC;YAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,KAAK,GAAG,EAAE,CAAC;YACpB,CAAC;YAED,OAAO,CAAC,CAAC;QACX,CAAC;QACD,GAAG,EAAE,CACH,GAA4D,EACpD,EAAE;YACV,MAAM,KAAK,GAAG,OAAO,CAAC,GAAkB,CAAC,CAAC;YAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,GAAG,KAAK,IAAI,CAAC;YACtB,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,QAAQ,GACnB,cAAc,CAAY,SAAS,CAAC,CAAC"}
|
|
@@ -2,71 +2,83 @@
|
|
|
2
2
|
/* eslint-disable max-lines */
|
|
3
3
|
/* eslint-disable max-lines-per-function */
|
|
4
4
|
/* eslint-disable sonarjs/no-duplicate-string */
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { FontSize, fontSizeMap } from './font-size';
|
|
5
|
+
import { describe, expect, it } from 'vitest';
|
|
6
|
+
import { createFontSize, fontSizeMap } from './font-size';
|
|
8
7
|
describe('FontSize', () => {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
describe('factory', () => {
|
|
9
|
+
it('should return correct font size in pixels', () => {
|
|
10
|
+
const fontSize = createFontSize();
|
|
11
|
+
expect(fontSize.px('sm')).toBe(14);
|
|
12
|
+
expect(fontSize.px('lg')).toBe(18);
|
|
13
|
+
expect(fontSize.px('2xl')).toBe(24);
|
|
14
|
+
});
|
|
15
|
+
it('should return correct font size with extra theme param', () => {
|
|
16
|
+
const fontSize = createFontSize({
|
|
17
|
+
tooMuchLarge: 300,
|
|
18
|
+
});
|
|
19
|
+
expect(fontSize.px('sm')).toBe(14);
|
|
20
|
+
expect(fontSize.px('lg')).toBe(18);
|
|
21
|
+
expect(fontSize.px('2xl')).toBe(24);
|
|
22
|
+
expect(fontSize.px('tooMuchLarge')).toBe(300);
|
|
23
|
+
});
|
|
14
24
|
});
|
|
15
25
|
describe('px', () => {
|
|
16
26
|
it('should return pixel value for font size key', () => {
|
|
17
|
-
|
|
18
|
-
expect(
|
|
19
|
-
expect(
|
|
27
|
+
const fontSize = createFontSize();
|
|
28
|
+
expect(fontSize.px('sm')).toBe(14);
|
|
29
|
+
expect(fontSize.px('lg')).toBe(18);
|
|
30
|
+
expect(fontSize.px('2xl')).toBe(24);
|
|
20
31
|
});
|
|
21
32
|
});
|
|
22
33
|
describe('rem', () => {
|
|
23
34
|
it('should convert pixel value to rem', () => {
|
|
24
|
-
|
|
25
|
-
expect(
|
|
26
|
-
expect(
|
|
35
|
+
const fontSize = createFontSize();
|
|
36
|
+
expect(fontSize.rem('sm')).toBe(14 / 16);
|
|
37
|
+
expect(fontSize.rem('lg')).toBe(18 / 16);
|
|
38
|
+
expect(fontSize.rem('2xl')).toBe(24 / 16);
|
|
27
39
|
});
|
|
28
40
|
it('should handle theme values', () => {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
'2xl': 32,
|
|
34
|
-
},
|
|
41
|
+
const fontSize = createFontSize({
|
|
42
|
+
sm: 16,
|
|
43
|
+
lg: 24,
|
|
44
|
+
'2xl': 32,
|
|
35
45
|
});
|
|
36
|
-
expect(
|
|
37
|
-
expect(
|
|
38
|
-
expect(
|
|
46
|
+
expect(fontSize.rem('sm')).toBe(1); // 16/16
|
|
47
|
+
expect(fontSize.rem('lg')).toBe(1.5); // 24/16
|
|
48
|
+
expect(fontSize.rem('2xl')).toBe(2); // 32/16
|
|
39
49
|
});
|
|
40
50
|
it('should return 0 for invalid keys', () => {
|
|
41
|
-
|
|
51
|
+
const fontSize = createFontSize();
|
|
52
|
+
// @ts-ignore
|
|
53
|
+
expect(fontSize.rem('invalid')).toBe(0);
|
|
42
54
|
});
|
|
43
55
|
});
|
|
44
56
|
describe('css', () => {
|
|
45
57
|
it('should return CSS string with px unit', () => {
|
|
46
|
-
|
|
47
|
-
expect(
|
|
48
|
-
expect(
|
|
58
|
+
const fontSize = createFontSize();
|
|
59
|
+
expect(fontSize.css('sm')).toBe('14px');
|
|
60
|
+
expect(fontSize.css('lg')).toBe('18px');
|
|
61
|
+
expect(fontSize.css('2xl')).toBe('24px');
|
|
49
62
|
});
|
|
50
63
|
});
|
|
51
64
|
describe('with theme', () => {
|
|
52
65
|
it('should return value from theme', () => {
|
|
53
|
-
|
|
54
|
-
expect(
|
|
55
|
-
expect(
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
},
|
|
66
|
+
const fontSize = createFontSize();
|
|
67
|
+
expect(fontSize.px('sm')).toBe(fontSizeMap['sm']);
|
|
68
|
+
expect(fontSize.px('lg')).toBe(fontSizeMap['lg']);
|
|
69
|
+
expect(fontSize.px('2xl')).toBe(fontSizeMap['2xl']);
|
|
70
|
+
const fontSize2 = createFontSize({
|
|
71
|
+
sm: 16,
|
|
72
|
+
lg: 24,
|
|
73
|
+
'2xl': 32,
|
|
74
|
+
custom: 42,
|
|
75
|
+
'11': 100,
|
|
64
76
|
});
|
|
65
|
-
expect(
|
|
66
|
-
expect(
|
|
67
|
-
expect(
|
|
68
|
-
expect(
|
|
69
|
-
expect(
|
|
77
|
+
expect(fontSize2.px('sm')).toBe(16);
|
|
78
|
+
expect(fontSize2.px('lg')).toBe(24);
|
|
79
|
+
expect(fontSize2.px('2xl')).toBe(32);
|
|
80
|
+
expect(fontSize2.px('custom')).toBe(42);
|
|
81
|
+
expect(fontSize2.px('11')).toBe(100);
|
|
70
82
|
});
|
|
71
83
|
});
|
|
72
84
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"font-size.spec.js","sourceRoot":"","sources":["../../src/core/font-size.spec.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,8BAA8B;AAC9B,2CAA2C;AAC3C,gDAAgD;AAChD,OAAO,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"font-size.spec.js","sourceRoot":"","sources":["../../src/core/font-size.spec.ts"],"names":[],"mappings":"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"}
|