phaser-wind 0.3.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.
- package/README.md +136 -97
- package/dist/components/column.d.ts +1 -0
- package/dist/components/column.d.ts.map +1 -0
- package/dist/components/column.js +7 -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 +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -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/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/font.d.ts
CHANGED
|
@@ -1,94 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
* @returns Font string in format "16px 'Arial'"
|
|
17
|
-
*/
|
|
18
|
-
readonly format: ({ size, family }: {
|
|
19
|
-
size: FontSizeKey;
|
|
20
|
-
family: string;
|
|
1
|
+
import type { BaseThemeConfig } from '../theme';
|
|
2
|
+
import { type FontSizeKey, type FontSizeMap } from './font-size';
|
|
3
|
+
export declare const fontMap: {
|
|
4
|
+
readonly primary: "Inter, system-ui, sans-serif";
|
|
5
|
+
readonly secondary: "Roboto, Arial, sans-serif";
|
|
6
|
+
readonly monospace: "Fira Code, Consolas, monospace";
|
|
7
|
+
readonly display: "Poppins, Inter, sans-serif";
|
|
8
|
+
};
|
|
9
|
+
export type FontKey = keyof typeof fontMap;
|
|
10
|
+
export type FontMap = Record<FontKey | string, string>;
|
|
11
|
+
export type FontApi<TFonts extends FontMap | undefined, TFontSizes extends FontSizeMap | undefined> = {
|
|
12
|
+
size: (key: FontSizeKey | (TFontSizes extends FontSizeMap ? keyof TFontSizes : never)) => number;
|
|
13
|
+
format: (args: {
|
|
14
|
+
size: FontSizeKey | (TFontSizes extends FontSizeMap ? keyof TFontSizes : never);
|
|
15
|
+
family: FontKey | (TFonts extends FontMap ? keyof TFonts : never);
|
|
21
16
|
}) => string;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
* @param key - Font key (e.g., 'primary', 'display') or full path (e.g., 'fonts.primary')
|
|
25
|
-
* @returns Font family string
|
|
26
|
-
*/
|
|
27
|
-
readonly family: (key: string) => string;
|
|
28
|
-
/**
|
|
29
|
-
* Get all available font tokens from current theme
|
|
30
|
-
* @returns Array of font token keys
|
|
31
|
-
*/
|
|
32
|
-
readonly getAvailableFonts: () => string[];
|
|
17
|
+
family: (key: FontKey | (TFonts extends FontMap ? keyof TFonts : never)) => string;
|
|
18
|
+
getAvailableFonts: () => string[];
|
|
33
19
|
};
|
|
34
|
-
|
|
35
|
-
* Typography picker for accessing complete typography styles from theme
|
|
36
|
-
*/
|
|
37
|
-
export declare class TypographyPicker {
|
|
38
|
-
/**
|
|
39
|
-
* Get complete typography style from theme
|
|
40
|
-
* @param key - Typography key (e.g., 'heading', 'body') or full path
|
|
41
|
-
* @returns Typography style object
|
|
42
|
-
*/
|
|
43
|
-
static style(key: string): {
|
|
44
|
-
fontSize?: string;
|
|
45
|
-
fontFamily?: string;
|
|
46
|
-
fontWeight?: number | string;
|
|
47
|
-
lineHeight?: number | string;
|
|
48
|
-
letterSpacing?: number | string;
|
|
49
|
-
};
|
|
50
|
-
/**
|
|
51
|
-
* Get Phaser-compatible text style from typography token
|
|
52
|
-
* @param key - Typography key
|
|
53
|
-
* @returns Object compatible with Phaser text styles
|
|
54
|
-
*/
|
|
55
|
-
static phaserStyle(key: string): {
|
|
56
|
-
fontSize?: string;
|
|
57
|
-
fontFamily?: string;
|
|
58
|
-
fontStyle: string;
|
|
59
|
-
};
|
|
60
|
-
/**
|
|
61
|
-
* Get all available typography tokens from current theme
|
|
62
|
-
* @returns Array of typography token keys
|
|
63
|
-
*/
|
|
64
|
-
static getAvailableTypography(): string[];
|
|
65
|
-
/**
|
|
66
|
-
* Resolve theme references in typography objects
|
|
67
|
-
* @param typographyObject - Typography style object
|
|
68
|
-
* @returns Resolved typography object
|
|
69
|
-
*/
|
|
70
|
-
private static resolveTypographyReferences;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Effect picker for accessing theme effects like shadows
|
|
74
|
-
*/
|
|
75
|
-
export declare class EffectPicker {
|
|
76
|
-
/**
|
|
77
|
-
* Get effect configuration from theme
|
|
78
|
-
* @param key - Effect key (e.g., 'shadow-md') or full path
|
|
79
|
-
* @returns Effect configuration object
|
|
80
|
-
*/
|
|
81
|
-
static config(key: string): {
|
|
82
|
-
blur?: number;
|
|
83
|
-
offsetX?: number;
|
|
84
|
-
offsetY?: number;
|
|
85
|
-
color?: string;
|
|
86
|
-
alpha?: number;
|
|
87
|
-
};
|
|
88
|
-
/**
|
|
89
|
-
* Get all available effect tokens from current theme
|
|
90
|
-
* @returns Array of effect token keys
|
|
91
|
-
*/
|
|
92
|
-
static getAvailableEffects(): string[];
|
|
93
|
-
}
|
|
20
|
+
export declare const createFont: <TFonts extends FontMap | undefined = BaseThemeConfig["fonts"], TFontSizes extends FontSizeMap | undefined = BaseThemeConfig["fontSizes"]>(fonts?: TFonts, fontSizes?: TFontSizes) => FontApi<TFonts, TFontSizes>;
|
|
94
21
|
//# sourceMappingURL=font.d.ts.map
|
package/dist/core/font.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"font.d.ts","sourceRoot":"","sources":["../../src/core/font.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"font.d.ts","sourceRoot":"","sources":["../../src/core/font.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,OAAO;;;;;CAKV,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,OAAO,CAAC;AAC3C,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC;AAEvD,MAAM,MAAM,OAAO,CACjB,MAAM,SAAS,OAAO,GAAG,SAAS,EAClC,UAAU,SAAS,WAAW,GAAG,SAAS,IACxC;IACF,IAAI,EAAE,CACJ,GAAG,EACC,WAAW,GACX,CAAC,UAAU,SAAS,WAAW,GAAG,MAAM,UAAU,GAAG,KAAK,CAAC,KAC5D,MAAM,CAAC;IACZ,MAAM,EAAE,CAAC,IAAI,EAAE;QACb,IAAI,EACA,WAAW,GACX,CAAC,UAAU,SAAS,WAAW,GAAG,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC;QAChE,MAAM,EAAE,OAAO,GAAG,CAAC,MAAM,SAAS,OAAO,GAAG,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC;KACnE,KAAK,MAAM,CAAC;IACb,MAAM,EAAE,CACN,GAAG,EAAE,OAAO,GAAG,CAAC,MAAM,SAAS,OAAO,GAAG,MAAM,MAAM,GAAG,KAAK,CAAC,KAC3D,MAAM,CAAC;IACZ,iBAAiB,EAAE,MAAM,MAAM,EAAE,CAAC;CACnC,CAAC;AAEF,eAAO,MAAM,UAAU,GACrB,MAAM,SAAS,OAAO,GAAG,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,EAC7D,UAAU,SAAS,WAAW,GAAG,SAAS,GAAG,eAAe,CAAC,WAAW,CAAC,EAEzE,QAAQ,MAAM,EACd,YAAY,UAAU,KACrB,OAAO,CAAC,MAAM,EAAE,UAAU,CAyC5B,CAAC"}
|
package/dist/core/font.js
CHANGED
|
@@ -1,178 +1,37 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
},
|
|
1
|
+
import { createFontSize, } from './font-size';
|
|
2
|
+
export const fontMap = {
|
|
3
|
+
primary: 'Inter, system-ui, sans-serif',
|
|
4
|
+
secondary: 'Roboto, Arial, sans-serif',
|
|
5
|
+
monospace: 'Fira Code, Consolas, monospace',
|
|
6
|
+
display: 'Poppins, Inter, sans-serif',
|
|
58
7
|
};
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
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;
|
|
8
|
+
export const createFont = (fonts, fontSizes) => {
|
|
9
|
+
const map = {
|
|
10
|
+
...fontMap,
|
|
11
|
+
...fonts,
|
|
12
|
+
};
|
|
13
|
+
const fontSizeApi = createFontSize(fontSizes);
|
|
14
|
+
const getFamily = (key) => {
|
|
15
|
+
if (key.includes('.')) {
|
|
16
|
+
const [, short] = key.split('.');
|
|
17
|
+
if (short && typeof map[short] === 'string') {
|
|
18
|
+
return map[short];
|
|
77
19
|
}
|
|
78
20
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
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
|
-
}
|
|
21
|
+
return typeof map[key] === 'string' ? map[key] : key;
|
|
22
|
+
};
|
|
23
|
+
return {
|
|
24
|
+
size: (key) => {
|
|
25
|
+
return fontSizeApi.px(key) ?? 0;
|
|
26
|
+
},
|
|
27
|
+
format: ({ size, family }) => {
|
|
28
|
+
const sizePx = fontSizeApi.px(size) ?? 0;
|
|
29
|
+
return `${sizePx}px '${getFamily(family)}'`;
|
|
30
|
+
},
|
|
31
|
+
family: (key) => getFamily(key),
|
|
32
|
+
getAvailableFonts: () => {
|
|
33
|
+
return Array.from(new Set([...Object.keys(fontMap), ...Object.keys(map)]));
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
};
|
|
178
37
|
//# sourceMappingURL=font.js.map
|
package/dist/core/font.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"font.js","sourceRoot":"","sources":["../../src/core/font.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"font.js","sourceRoot":"","sources":["../../src/core/font.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,cAAc,GAIf,MAAM,aAAa,CAAC;AAErB,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,OAAO,EAAE,8BAA8B;IACvC,SAAS,EAAE,2BAA2B;IACtC,SAAS,EAAE,gCAAgC;IAC3C,OAAO,EAAE,4BAA4B;CAC7B,CAAC;AA0BX,MAAM,CAAC,MAAM,UAAU,GAAG,CAIxB,KAAc,EACd,SAAsB,EACO,EAAE;IAC/B,MAAM,GAAG,GAAY;QACnB,GAAG,OAAO;QACV,GAAI,KAA6B;KACvB,CAAC;IAEb,MAAM,WAAW,GAA4B,cAAc,CACzD,SAAuB,CACxB,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,GAAW,EAAU,EAAE;QACxC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,KAAK,IAAI,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC5C,OAAO,GAAG,CAAC,KAAK,CAAW,CAAC;YAC9B,CAAC;QACH,CAAC;QACD,OAAO,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,GAAG,CAAC,GAAG,CAAY,CAAC,CAAC,CAAC,GAAG,CAAC;IACnE,CAAC,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,CACJ,GAE+D,EACvD,EAAE;YACV,OAAO,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QACD,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAU,EAAE;YACnC,MAAM,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzC,OAAO,GAAG,MAAM,OAAO,SAAS,CAAC,MAAgB,CAAC,GAAG,CAAC;QACxD,CAAC;QACD,MAAM,EAAE,CACN,GAA8D,EACtD,EAAE,CAAC,SAAS,CAAC,GAAa,CAAC;QACrC,iBAAiB,EAAE,GAAa,EAAE;YAChC,OAAO,KAAK,CAAC,IAAI,CACf,IAAI,GAAG,CAAC,CAAC,GAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAc,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CACtE,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
package/dist/core/font.spec.js
CHANGED
|
@@ -1,72 +1,69 @@
|
|
|
1
1
|
/* eslint-disable no-magic-numbers */
|
|
2
2
|
/* eslint-disable max-lines-per-function */
|
|
3
3
|
/* eslint-disable sonarjs/no-duplicate-string */
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { Font } from './font';
|
|
4
|
+
import { describe, expect, it } from 'vitest';
|
|
5
|
+
import { createFont, fontMap } from './font';
|
|
7
6
|
describe('Font', () => {
|
|
8
|
-
beforeEach(() => {
|
|
9
|
-
ThemeManager.clear;
|
|
10
|
-
});
|
|
11
|
-
afterAll(() => {
|
|
12
|
-
ThemeManager.clear();
|
|
13
|
-
});
|
|
14
7
|
describe('size', () => {
|
|
15
8
|
it('should return correct font size in pixels', () => {
|
|
16
|
-
|
|
17
|
-
expect(
|
|
18
|
-
expect(
|
|
19
|
-
expect(
|
|
20
|
-
expect(
|
|
9
|
+
const font = createFont();
|
|
10
|
+
expect(font.size('xs')).toBe(12);
|
|
11
|
+
expect(font.size('sm')).toBe(14);
|
|
12
|
+
expect(font.size('base')).toBe(16);
|
|
13
|
+
expect(font.size('lg')).toBe(18);
|
|
14
|
+
expect(font.size('xl')).toBe(20);
|
|
21
15
|
});
|
|
22
16
|
});
|
|
23
17
|
describe('format', () => {
|
|
24
|
-
beforeEach(() => {
|
|
25
|
-
ThemeManager.setThemeObject({
|
|
26
|
-
fonts: {
|
|
27
|
-
primary: 'Arial',
|
|
28
|
-
secondary: 'Helvetica',
|
|
29
|
-
},
|
|
30
|
-
});
|
|
31
|
-
});
|
|
32
18
|
it('should return font string with size and family', () => {
|
|
33
|
-
|
|
34
|
-
expect(
|
|
19
|
+
const font = createFont();
|
|
20
|
+
expect(font.format({ size: 'base', family: 'primary' })).toBe("16px 'Inter, system-ui, sans-serif'");
|
|
21
|
+
expect(font.format({ size: 'lg', family: 'secondary' })).toBe("18px 'Roboto, Arial, sans-serif'");
|
|
35
22
|
});
|
|
36
23
|
});
|
|
37
24
|
describe('family', () => {
|
|
38
|
-
beforeEach(() => {
|
|
39
|
-
ThemeManager.setThemeObject({
|
|
40
|
-
fonts: {
|
|
41
|
-
primary: 'Arial',
|
|
42
|
-
display: 'Helvetica',
|
|
43
|
-
},
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
25
|
it('should return font family from theme using short key', () => {
|
|
47
|
-
|
|
48
|
-
|
|
26
|
+
const font = createFont({
|
|
27
|
+
primary: 'Arial',
|
|
28
|
+
display: 'Helvetica',
|
|
29
|
+
}, {
|
|
30
|
+
base: 16,
|
|
31
|
+
});
|
|
32
|
+
expect(font.family('primary')).toBe('Arial');
|
|
33
|
+
expect(font.family('display')).toBe('Helvetica');
|
|
49
34
|
});
|
|
50
35
|
it('should return font family from theme using full path', () => {
|
|
51
|
-
|
|
52
|
-
|
|
36
|
+
const font = createFont({
|
|
37
|
+
primary: 'Arial',
|
|
38
|
+
display: 'Helvetica',
|
|
39
|
+
}, {
|
|
40
|
+
base: 16,
|
|
41
|
+
});
|
|
42
|
+
expect(font.family('primary')).toBe('Arial');
|
|
43
|
+
expect(font.family('display')).toBe('Helvetica');
|
|
53
44
|
});
|
|
54
45
|
it('should return key itself if font not found in theme', () => {
|
|
55
|
-
|
|
46
|
+
const font = createFont({
|
|
47
|
+
primary: 'Arial',
|
|
48
|
+
display: 'Helvetica',
|
|
49
|
+
}, {
|
|
50
|
+
base: 16,
|
|
51
|
+
});
|
|
52
|
+
expect(font.family('primary')).toBe('Arial');
|
|
56
53
|
});
|
|
57
54
|
});
|
|
58
55
|
describe('getAvailableFonts', () => {
|
|
59
56
|
it('should return array of available font tokens', () => {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
57
|
+
const font = createFont({
|
|
58
|
+
primary: 'Arial',
|
|
59
|
+
secondary: 'Helvetica',
|
|
60
|
+
monospace: 'Courier New',
|
|
61
|
+
display: 'Roboto',
|
|
62
|
+
anotherCrazyFont: 'Comic Sans MS',
|
|
63
|
+
}, {
|
|
64
|
+
base: 16,
|
|
68
65
|
});
|
|
69
|
-
expect(
|
|
66
|
+
expect(font.getAvailableFonts()).toEqual(expect.arrayContaining([
|
|
70
67
|
'primary',
|
|
71
68
|
'secondary',
|
|
72
69
|
'monospace',
|
|
@@ -75,9 +72,8 @@ describe('Font', () => {
|
|
|
75
72
|
]));
|
|
76
73
|
});
|
|
77
74
|
it('should return empty array if no fonts in theme', () => {
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
expect(Font.getAvailableFonts()).toEqual(Object.keys(fonts));
|
|
75
|
+
const font = createFont();
|
|
76
|
+
expect(font.getAvailableFonts()).toEqual(Object.keys(fontMap));
|
|
81
77
|
});
|
|
82
78
|
});
|
|
83
79
|
});
|
|
@@ -1 +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,
|
|
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,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAE7C,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IACpB,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;QACpB,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;YAC1B,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,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAC3D,qCAAqC,CACtC,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAC3D,kCAAkC,CACnC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,MAAM,IAAI,GAAG,UAAU,CACrB;gBACE,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,WAAW;aACrB,EACD;gBACE,IAAI,EAAE,EAAE;aACT,CACF,CAAC;YACF,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,IAAI,GAAG,UAAU,CACrB;gBACE,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,WAAW;aACrB,EACD;gBACE,IAAI,EAAE,EAAE;aACT,CACF,CAAC;YACF,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,qDAAqD,EAAE,GAAG,EAAE;YAC7D,MAAM,IAAI,GAAG,UAAU,CACrB;gBACE,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,WAAW;aACrB,EACD;gBACE,IAAI,EAAE,EAAE;aACT,CACF,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,IAAI,GAAG,UAAU,CACrB;gBACE,OAAO,EAAE,OAAO;gBAChB,SAAS,EAAE,WAAW;gBACtB,SAAS,EAAE,aAAa;gBACxB,OAAO,EAAE,QAAQ;gBACjB,gBAAgB,EAAE,eAAe;aAClC,EACD;gBACE,IAAI,EAAE,EAAE;aACT,CACF,CAAC;YACF,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,IAAI,GAAG,UAAU,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/core/index.d.ts
CHANGED
package/dist/core/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const
|
|
1
|
+
export declare const palette: {
|
|
2
2
|
black: string;
|
|
3
3
|
white: string;
|
|
4
4
|
slate: {
|
|
@@ -288,4 +288,4 @@ export declare const pallete: {
|
|
|
288
288
|
'950': string;
|
|
289
289
|
};
|
|
290
290
|
};
|
|
291
|
-
//# sourceMappingURL=
|
|
291
|
+
//# sourceMappingURL=palette.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"palette.d.ts","sourceRoot":"","sources":["../../src/core/palette.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiSnB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// https://github.com/tailwindlabs/tailwindcss/blob/main/packages/tailwindcss/src/compat/colors.ts
|
|
2
|
-
export const
|
|
2
|
+
export const palette = {
|
|
3
3
|
black: '#000',
|
|
4
4
|
white: '#fff',
|
|
5
5
|
slate: {
|
|
@@ -289,4 +289,4 @@ export const pallete = {
|
|
|
289
289
|
'950': 'rgb(76, 5, 25)',
|
|
290
290
|
},
|
|
291
291
|
};
|
|
292
|
-
//# sourceMappingURL=
|
|
292
|
+
//# sourceMappingURL=palette.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"palette.js","sourceRoot":"","sources":["../../src/core/palette.ts"],"names":[],"mappings":"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"}
|