@tamagui/theme-builder 1.81.3 → 1.82.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/dist/cjs/ThemeBuilder.js +15 -12
- package/dist/cjs/ThemeBuilder.js.map +1 -1
- package/dist/cjs/ThemeBuilder.native.js +15 -12
- package/dist/cjs/ThemeBuilder.native.js.map +1 -1
- package/dist/esm/ThemeBuilder.js +16 -13
- package/dist/esm/ThemeBuilder.js.map +1 -1
- package/dist/esm/ThemeBuilder.native.js +16 -13
- package/dist/esm/ThemeBuilder.native.js.map +1 -1
- package/package.json +5 -4
- package/src/ThemeBuilder.ts +23 -20
- package/types/ThemeBuilder.d.ts +4 -4
- package/types/ThemeBuilder.d.ts.map +1 -1
- package/types/buildThemeSuitePalettes.d.ts +0 -3
package/dist/cjs/ThemeBuilder.js
CHANGED
|
@@ -96,26 +96,29 @@ class ThemeBuilder {
|
|
|
96
96
|
else if ("mask" in themeDefinition)
|
|
97
97
|
maskedThemes.push({ parentName, themeName, mask: themeDefinition });
|
|
98
98
|
else {
|
|
99
|
-
|
|
100
|
-
palette: paletteName,
|
|
101
|
-
template: templateName,
|
|
102
|
-
...options
|
|
103
|
-
} = themeDefinition;
|
|
99
|
+
let { palette: paletteName, template: templateName, ...options } = themeDefinition;
|
|
104
100
|
if (!this.state.palettes)
|
|
105
101
|
throw new Error(
|
|
106
102
|
`No palettes defined for theme with palette expected: ${themeName}`
|
|
107
103
|
);
|
|
108
104
|
let palette = this.state.palettes[paletteName];
|
|
109
|
-
if (!palette)
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
105
|
+
if (palette || (paletteName = `${parentName}_${paletteName}`, palette = this.state.palettes[paletteName]), !palette)
|
|
106
|
+
throw new Error(
|
|
107
|
+
`No palette for theme ${themeName}: ${paletteName} (${Object.keys(
|
|
108
|
+
this.state.palettes
|
|
109
|
+
).join(", ")})`
|
|
110
|
+
);
|
|
115
111
|
const template = (_a = this.state.templates) == null ? void 0 : _a[templateName];
|
|
116
112
|
if (!template)
|
|
117
113
|
throw new Error(`No template for theme ${themeName}: ${templateName}`);
|
|
118
|
-
out[themeName] = (0, import_create_theme.
|
|
114
|
+
out[themeName] = (0, import_create_theme.createThemeWithPalettes)(
|
|
115
|
+
this.state.palettes,
|
|
116
|
+
paletteName,
|
|
117
|
+
template,
|
|
118
|
+
options,
|
|
119
|
+
themeName,
|
|
120
|
+
!0
|
|
121
|
+
);
|
|
119
122
|
}
|
|
120
123
|
}
|
|
121
124
|
for (const { mask, themeName, parentName } of maskedThemes) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/ThemeBuilder.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAWO;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["mask"]
|
|
6
6
|
}
|
|
@@ -97,26 +97,29 @@ class ThemeBuilder {
|
|
|
97
97
|
else if ("mask" in themeDefinition)
|
|
98
98
|
maskedThemes.push({ parentName, themeName, mask: themeDefinition });
|
|
99
99
|
else {
|
|
100
|
-
|
|
101
|
-
palette: paletteName,
|
|
102
|
-
template: templateName,
|
|
103
|
-
...options
|
|
104
|
-
} = themeDefinition;
|
|
100
|
+
let { palette: paletteName, template: templateName, ...options } = themeDefinition;
|
|
105
101
|
if (!this.state.palettes)
|
|
106
102
|
throw new Error(
|
|
107
103
|
`No palettes defined for theme with palette expected: ${themeName}`
|
|
108
104
|
);
|
|
109
105
|
let palette = this.state.palettes[paletteName];
|
|
110
|
-
if (!palette)
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
106
|
+
if (palette || (paletteName = `${parentName}_${paletteName}`, palette = this.state.palettes[paletteName]), !palette)
|
|
107
|
+
throw new Error(
|
|
108
|
+
`No palette for theme ${themeName}: ${paletteName} (${Object.keys(
|
|
109
|
+
this.state.palettes
|
|
110
|
+
).join(", ")})`
|
|
111
|
+
);
|
|
116
112
|
const template = (_a = this.state.templates) == null ? void 0 : _a[templateName];
|
|
117
113
|
if (!template)
|
|
118
114
|
throw new Error(`No template for theme ${themeName}: ${templateName}`);
|
|
119
|
-
out[themeName] = (0, import_create_theme.
|
|
115
|
+
out[themeName] = (0, import_create_theme.createThemeWithPalettes)(
|
|
116
|
+
this.state.palettes,
|
|
117
|
+
paletteName,
|
|
118
|
+
template,
|
|
119
|
+
options,
|
|
120
|
+
themeName,
|
|
121
|
+
!0
|
|
122
|
+
);
|
|
120
123
|
}
|
|
121
124
|
}
|
|
122
125
|
for (const { mask, themeName, parentName } of maskedThemes) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/ThemeBuilder.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAWO;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["mask"]
|
|
6
6
|
}
|
package/dist/esm/ThemeBuilder.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
applyMask,
|
|
3
3
|
createMask,
|
|
4
|
-
|
|
4
|
+
createThemeWithPalettes,
|
|
5
5
|
objectEntries,
|
|
6
6
|
objectFromEntries
|
|
7
7
|
} from "@tamagui/create-theme";
|
|
@@ -81,26 +81,29 @@ class ThemeBuilder {
|
|
|
81
81
|
else if ("mask" in themeDefinition)
|
|
82
82
|
maskedThemes.push({ parentName, themeName, mask: themeDefinition });
|
|
83
83
|
else {
|
|
84
|
-
|
|
85
|
-
palette: paletteName,
|
|
86
|
-
template: templateName,
|
|
87
|
-
...options
|
|
88
|
-
} = themeDefinition;
|
|
84
|
+
let { palette: paletteName, template: templateName, ...options } = themeDefinition;
|
|
89
85
|
if (!this.state.palettes)
|
|
90
86
|
throw new Error(
|
|
91
87
|
`No palettes defined for theme with palette expected: ${themeName}`
|
|
92
88
|
);
|
|
93
89
|
let palette = this.state.palettes[paletteName];
|
|
94
|
-
if (!palette)
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
90
|
+
if (palette || (paletteName = `${parentName}_${paletteName}`, palette = this.state.palettes[paletteName]), !palette)
|
|
91
|
+
throw new Error(
|
|
92
|
+
`No palette for theme ${themeName}: ${paletteName} (${Object.keys(
|
|
93
|
+
this.state.palettes
|
|
94
|
+
).join(", ")})`
|
|
95
|
+
);
|
|
100
96
|
const template = this.state.templates?.[templateName];
|
|
101
97
|
if (!template)
|
|
102
98
|
throw new Error(`No template for theme ${themeName}: ${templateName}`);
|
|
103
|
-
out[themeName] =
|
|
99
|
+
out[themeName] = createThemeWithPalettes(
|
|
100
|
+
this.state.palettes,
|
|
101
|
+
paletteName,
|
|
102
|
+
template,
|
|
103
|
+
options,
|
|
104
|
+
themeName,
|
|
105
|
+
!0
|
|
106
|
+
);
|
|
104
107
|
}
|
|
105
108
|
}
|
|
106
109
|
for (const { mask, themeName, parentName } of maskedThemes) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/ThemeBuilder.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA,EAME;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["mask"]
|
|
6
6
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
applyMask,
|
|
3
3
|
createMask,
|
|
4
|
-
|
|
4
|
+
createThemeWithPalettes,
|
|
5
5
|
objectEntries,
|
|
6
6
|
objectFromEntries
|
|
7
7
|
} from "@tamagui/create-theme";
|
|
@@ -81,26 +81,29 @@ class ThemeBuilder {
|
|
|
81
81
|
else if ("mask" in themeDefinition)
|
|
82
82
|
maskedThemes.push({ parentName, themeName, mask: themeDefinition });
|
|
83
83
|
else {
|
|
84
|
-
|
|
85
|
-
palette: paletteName,
|
|
86
|
-
template: templateName,
|
|
87
|
-
...options
|
|
88
|
-
} = themeDefinition;
|
|
84
|
+
let { palette: paletteName, template: templateName, ...options } = themeDefinition;
|
|
89
85
|
if (!this.state.palettes)
|
|
90
86
|
throw new Error(
|
|
91
87
|
`No palettes defined for theme with palette expected: ${themeName}`
|
|
92
88
|
);
|
|
93
89
|
let palette = this.state.palettes[paletteName];
|
|
94
|
-
if (!palette)
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
90
|
+
if (palette || (paletteName = `${parentName}_${paletteName}`, palette = this.state.palettes[paletteName]), !palette)
|
|
91
|
+
throw new Error(
|
|
92
|
+
`No palette for theme ${themeName}: ${paletteName} (${Object.keys(
|
|
93
|
+
this.state.palettes
|
|
94
|
+
).join(", ")})`
|
|
95
|
+
);
|
|
100
96
|
const template = this.state.templates?.[templateName];
|
|
101
97
|
if (!template)
|
|
102
98
|
throw new Error(`No template for theme ${themeName}: ${templateName}`);
|
|
103
|
-
out[themeName] =
|
|
99
|
+
out[themeName] = createThemeWithPalettes(
|
|
100
|
+
this.state.palettes,
|
|
101
|
+
paletteName,
|
|
102
|
+
template,
|
|
103
|
+
options,
|
|
104
|
+
themeName,
|
|
105
|
+
!0
|
|
106
|
+
);
|
|
104
107
|
}
|
|
105
108
|
}
|
|
106
109
|
for (const { mask, themeName, parentName } of maskedThemes) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/ThemeBuilder.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA,EAME;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["mask"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/theme-builder",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.82.0",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"types": "./types/index.d.ts",
|
|
6
6
|
"main": "dist/cjs",
|
|
@@ -23,15 +23,16 @@
|
|
|
23
23
|
".": {
|
|
24
24
|
"types": "./types/index.d.ts",
|
|
25
25
|
"import": "./dist/esm/index.js",
|
|
26
|
-
"require": "./dist/cjs/index.js"
|
|
26
|
+
"require": "./dist/cjs/index.js",
|
|
27
|
+
"react-native": "./dist/cjs/index.native.js"
|
|
27
28
|
}
|
|
28
29
|
},
|
|
29
30
|
"dependencies": {
|
|
30
|
-
"@tamagui/create-theme": "1.
|
|
31
|
+
"@tamagui/create-theme": "1.82.0",
|
|
31
32
|
"color2k": "^2.0.2"
|
|
32
33
|
},
|
|
33
34
|
"devDependencies": {
|
|
34
|
-
"@tamagui/build": "1.
|
|
35
|
+
"@tamagui/build": "1.82.0"
|
|
35
36
|
},
|
|
36
37
|
"publishConfig": {
|
|
37
38
|
"access": "public"
|
package/src/ThemeBuilder.ts
CHANGED
|
@@ -6,13 +6,13 @@ import {
|
|
|
6
6
|
ThemeUsingMask,
|
|
7
7
|
applyMask,
|
|
8
8
|
createMask,
|
|
9
|
-
|
|
9
|
+
createThemeWithPalettes,
|
|
10
10
|
objectEntries,
|
|
11
11
|
objectFromEntries,
|
|
12
12
|
} from '@tamagui/create-theme'
|
|
13
13
|
import type { Narrow } from '@tamagui/web'
|
|
14
14
|
|
|
15
|
-
type
|
|
15
|
+
export type ThemeBuilderInternalState = {
|
|
16
16
|
palettes?: PaletteDefinitions
|
|
17
17
|
templates?: TemplateDefinitions
|
|
18
18
|
themes?: ThemeDefinitions
|
|
@@ -23,12 +23,6 @@ type ObjectStringKeys<A extends Object | undefined> = A extends Object
|
|
|
23
23
|
? Exclude<keyof A, symbol | number>
|
|
24
24
|
: never
|
|
25
25
|
|
|
26
|
-
// type GetNonInheritedKeys<TD> = TD extends { nonInheritedValues: infer X }
|
|
27
|
-
// ? X extends { [key: string]: any }
|
|
28
|
-
// ? keyof X
|
|
29
|
-
// : never
|
|
30
|
-
// : never
|
|
31
|
-
|
|
32
26
|
type GetGeneratedThemeFromTemplate<Template, TD> = {
|
|
33
27
|
[key in keyof Template]: string
|
|
34
28
|
}
|
|
@@ -45,7 +39,7 @@ type GetParentTheme<P, Themes extends ThemeDefinitions | undefined> = P extends
|
|
|
45
39
|
: never
|
|
46
40
|
: never
|
|
47
41
|
|
|
48
|
-
type GetGeneratedTheme<TD, S extends
|
|
42
|
+
type GetGeneratedTheme<TD, S extends ThemeBuilderInternalState> = TD extends {
|
|
49
43
|
theme: infer T
|
|
50
44
|
}
|
|
51
45
|
? T
|
|
@@ -57,7 +51,7 @@ type GetGeneratedTheme<TD, S extends ThemeBuilderState> = TD extends {
|
|
|
57
51
|
: TD
|
|
58
52
|
: TD
|
|
59
53
|
|
|
60
|
-
type ThemeBuilderBuildResult<S extends
|
|
54
|
+
type ThemeBuilderBuildResult<S extends ThemeBuilderInternalState> = {
|
|
61
55
|
[Key in keyof S['themes']]: GetGeneratedTheme<S['themes'][Key], S>
|
|
62
56
|
}
|
|
63
57
|
|
|
@@ -72,7 +66,9 @@ type GetParentName<N extends string> =
|
|
|
72
66
|
? `${A}`
|
|
73
67
|
: never
|
|
74
68
|
|
|
75
|
-
export class ThemeBuilder<
|
|
69
|
+
export class ThemeBuilder<
|
|
70
|
+
State extends ThemeBuilderInternalState = ThemeBuilderInternalState
|
|
71
|
+
> {
|
|
76
72
|
constructor(public state: State) {}
|
|
77
73
|
|
|
78
74
|
addPalettes<const P extends PaletteDefinitions>(palettes: P) {
|
|
@@ -269,11 +265,7 @@ export class ThemeBuilder<State extends ThemeBuilderState = ThemeBuilderState> {
|
|
|
269
265
|
} else if ('mask' in themeDefinition) {
|
|
270
266
|
maskedThemes.push({ parentName, themeName, mask: themeDefinition })
|
|
271
267
|
} else {
|
|
272
|
-
|
|
273
|
-
palette: paletteName,
|
|
274
|
-
template: templateName,
|
|
275
|
-
...options
|
|
276
|
-
} = themeDefinition
|
|
268
|
+
let { palette: paletteName, template: templateName, ...options } = themeDefinition
|
|
277
269
|
|
|
278
270
|
if (!this.state.palettes) {
|
|
279
271
|
throw new Error(
|
|
@@ -283,13 +275,17 @@ export class ThemeBuilder<State extends ThemeBuilderState = ThemeBuilderState> {
|
|
|
283
275
|
|
|
284
276
|
let palette = this.state.palettes[paletteName]
|
|
285
277
|
if (!palette) {
|
|
286
|
-
|
|
287
|
-
palette = this.state.palettes[
|
|
278
|
+
paletteName = `${parentName}_${paletteName}`
|
|
279
|
+
palette = this.state.palettes[paletteName]
|
|
288
280
|
// try using the prefix
|
|
289
281
|
}
|
|
290
282
|
|
|
291
283
|
if (!palette) {
|
|
292
|
-
throw new Error(
|
|
284
|
+
throw new Error(
|
|
285
|
+
`No palette for theme ${themeName}: ${paletteName} (${Object.keys(
|
|
286
|
+
this.state.palettes
|
|
287
|
+
).join(', ')})`
|
|
288
|
+
)
|
|
293
289
|
}
|
|
294
290
|
|
|
295
291
|
const template = this.state.templates?.[templateName]
|
|
@@ -297,7 +293,14 @@ export class ThemeBuilder<State extends ThemeBuilderState = ThemeBuilderState> {
|
|
|
297
293
|
throw new Error(`No template for theme ${themeName}: ${templateName}`)
|
|
298
294
|
}
|
|
299
295
|
|
|
300
|
-
out[themeName] =
|
|
296
|
+
out[themeName] = createThemeWithPalettes(
|
|
297
|
+
this.state.palettes,
|
|
298
|
+
paletteName,
|
|
299
|
+
template,
|
|
300
|
+
options,
|
|
301
|
+
themeName,
|
|
302
|
+
true
|
|
303
|
+
)
|
|
301
304
|
}
|
|
302
305
|
}
|
|
303
306
|
|
package/types/ThemeBuilder.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MaskDefinitions, PaletteDefinitions, TemplateDefinitions, ThemeDefinitions } from '@tamagui/create-theme';
|
|
2
2
|
import type { Narrow } from '@tamagui/web';
|
|
3
|
-
type
|
|
3
|
+
export type ThemeBuilderInternalState = {
|
|
4
4
|
palettes?: PaletteDefinitions;
|
|
5
5
|
templates?: TemplateDefinitions;
|
|
6
6
|
themes?: ThemeDefinitions;
|
|
@@ -11,18 +11,18 @@ type GetGeneratedThemeFromTemplate<Template, TD> = {
|
|
|
11
11
|
[key in keyof Template]: string;
|
|
12
12
|
};
|
|
13
13
|
type GetParentTheme<P, Themes extends ThemeDefinitions | undefined> = P extends string ? P extends keyof Themes ? Themes[P] : GetParentName<P> extends keyof Themes ? Themes[GetParentName<P>] : GetParentName<GetParentName<P>> extends keyof Themes ? Themes[GetParentName<GetParentName<P>>] : GetParentName<GetParentName<GetParentName<P>>> extends keyof Themes ? Themes[GetParentName<GetParentName<GetParentName<P>>>] : never : never;
|
|
14
|
-
type GetGeneratedTheme<TD, S extends
|
|
14
|
+
type GetGeneratedTheme<TD, S extends ThemeBuilderInternalState> = TD extends {
|
|
15
15
|
theme: infer T;
|
|
16
16
|
} ? T : TD extends {
|
|
17
17
|
parent: infer P;
|
|
18
18
|
} ? GetGeneratedTheme<GetParentTheme<P, S['themes']>, S> : TD extends {
|
|
19
19
|
template: infer T;
|
|
20
20
|
} ? T extends keyof S['templates'] ? GetGeneratedThemeFromTemplate<S['templates'][T], TD> : TD : TD;
|
|
21
|
-
type ThemeBuilderBuildResult<S extends
|
|
21
|
+
type ThemeBuilderBuildResult<S extends ThemeBuilderInternalState> = {
|
|
22
22
|
[Key in keyof S['themes']]: GetGeneratedTheme<S['themes'][Key], S>;
|
|
23
23
|
};
|
|
24
24
|
type GetParentName<N extends string> = N extends `${infer A}_${infer B}_${infer C}_${infer D}_${string}` ? `${A}_${B}_${C}_${D}` : N extends `${infer A}_${infer B}_${infer C}_${string}` ? `${A}_${B}_${C}` : N extends `${infer A}_${infer B}_${string}` ? `${A}_${B}` : N extends `${infer A}_${string}` ? `${A}` : never;
|
|
25
|
-
export declare class ThemeBuilder<State extends
|
|
25
|
+
export declare class ThemeBuilder<State extends ThemeBuilderInternalState = ThemeBuilderInternalState> {
|
|
26
26
|
state: State;
|
|
27
27
|
constructor(state: State);
|
|
28
28
|
addPalettes<const P extends PaletteDefinitions>(palettes: P): ThemeBuilder<State & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeBuilder.d.ts","sourceRoot":"","sources":["../src/ThemeBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAOjB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAE1C,
|
|
1
|
+
{"version":3,"file":"ThemeBuilder.d.ts","sourceRoot":"","sources":["../src/ThemeBuilder.ts"],"names":[],"mappings":"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"}
|