@tamagui/theme-builder 1.52.2 → 1.52.3
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 +3 -3
- package/dist/cjs/ThemeBuilder.js.map +1 -1
- package/dist/esm/ThemeBuilder.js +4 -5
- package/dist/esm/ThemeBuilder.js.map +1 -1
- package/package.json +3 -3
- package/src/ThemeBuilder.ts +28 -9
- package/types/ThemeBuilder.d.ts +3 -3
- package/types/ThemeBuilder.d.ts.map +1 -1
package/dist/cjs/ThemeBuilder.js
CHANGED
|
@@ -68,8 +68,8 @@ class ThemeBuilder {
|
|
|
68
68
|
`No themes defined yet, use addThemes first to set your base themes`
|
|
69
69
|
);
|
|
70
70
|
}
|
|
71
|
-
const currentThemeNames =
|
|
72
|
-
const incomingThemeNames =
|
|
71
|
+
const currentThemeNames = Object.keys(currentThemes);
|
|
72
|
+
const incomingThemeNames = Object.keys(childThemeDefinition);
|
|
73
73
|
const namesWithDefinitions = currentThemeNames.flatMap((prefix) => {
|
|
74
74
|
if (options == null ? void 0 : options.avoidNestingWithin) {
|
|
75
75
|
if (options.avoidNestingWithin.some(
|
|
@@ -84,7 +84,7 @@ class ThemeBuilder {
|
|
|
84
84
|
return [fullName, definition];
|
|
85
85
|
});
|
|
86
86
|
});
|
|
87
|
-
const childThemes =
|
|
87
|
+
const childThemes = Object.fromEntries(namesWithDefinitions);
|
|
88
88
|
const next = {
|
|
89
89
|
// as {} prevents generic string key merge messing up types
|
|
90
90
|
...this.state.themes,
|
|
@@ -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,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/esm/ThemeBuilder.js
CHANGED
|
@@ -3,8 +3,7 @@ import {
|
|
|
3
3
|
createMask,
|
|
4
4
|
createTheme,
|
|
5
5
|
objectEntries,
|
|
6
|
-
objectFromEntries
|
|
7
|
-
objectKeys
|
|
6
|
+
objectFromEntries
|
|
8
7
|
} from "@tamagui/create-theme";
|
|
9
8
|
class ThemeBuilder {
|
|
10
9
|
constructor(state) {
|
|
@@ -51,8 +50,8 @@ class ThemeBuilder {
|
|
|
51
50
|
`No themes defined yet, use addThemes first to set your base themes`
|
|
52
51
|
);
|
|
53
52
|
}
|
|
54
|
-
const currentThemeNames =
|
|
55
|
-
const incomingThemeNames =
|
|
53
|
+
const currentThemeNames = Object.keys(currentThemes);
|
|
54
|
+
const incomingThemeNames = Object.keys(childThemeDefinition);
|
|
56
55
|
const namesWithDefinitions = currentThemeNames.flatMap((prefix) => {
|
|
57
56
|
if (options == null ? void 0 : options.avoidNestingWithin) {
|
|
58
57
|
if (options.avoidNestingWithin.some(
|
|
@@ -67,7 +66,7 @@ class ThemeBuilder {
|
|
|
67
66
|
return [fullName, definition];
|
|
68
67
|
});
|
|
69
68
|
});
|
|
70
|
-
const childThemes =
|
|
69
|
+
const childThemes = Object.fromEntries(namesWithDefinitions);
|
|
71
70
|
const next = {
|
|
72
71
|
// as {} prevents generic string key merge messing up types
|
|
73
72
|
...this.state.themes,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/ThemeBuilder.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/theme-builder",
|
|
3
|
-
"version": "1.52.
|
|
3
|
+
"version": "1.52.3",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"types": "./types/index.d.ts",
|
|
6
6
|
"main": "dist/cjs",
|
|
@@ -27,10 +27,10 @@
|
|
|
27
27
|
}
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@tamagui/create-theme": "1.52.
|
|
30
|
+
"@tamagui/create-theme": "1.52.3"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@tamagui/build": "1.52.
|
|
33
|
+
"@tamagui/build": "1.52.3"
|
|
34
34
|
},
|
|
35
35
|
"publishConfig": {
|
|
36
36
|
"access": "public"
|
package/src/ThemeBuilder.ts
CHANGED
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
TemplateDefinitions,
|
|
5
5
|
ThemeDefinitions,
|
|
6
6
|
ThemeUsingMask,
|
|
7
|
+
ThemeUsingTemplate,
|
|
7
8
|
applyMask,
|
|
8
9
|
createMask,
|
|
9
10
|
createTheme,
|
|
@@ -11,7 +12,7 @@ import {
|
|
|
11
12
|
objectFromEntries,
|
|
12
13
|
objectKeys,
|
|
13
14
|
} from '@tamagui/create-theme'
|
|
14
|
-
import type { Narrow } from '@tamagui/web'
|
|
15
|
+
import type { Narrow, ThemeDefinition, UnionableString } from '@tamagui/web'
|
|
15
16
|
|
|
16
17
|
type ThemeBuilderState = {
|
|
17
18
|
palettes?: PaletteDefinitions
|
|
@@ -24,7 +25,13 @@ type ObjectStringKeys<A extends Object | undefined> = A extends Object
|
|
|
24
25
|
? Exclude<keyof A, symbol | number>
|
|
25
26
|
: never
|
|
26
27
|
|
|
27
|
-
type
|
|
28
|
+
type GetNonInheritedKeys<TD> = TD extends { nonInheritedValues: infer X }
|
|
29
|
+
? X extends { [key: string]: any }
|
|
30
|
+
? keyof X
|
|
31
|
+
: never
|
|
32
|
+
: never
|
|
33
|
+
|
|
34
|
+
type GetGeneratedThemeFromTemplate<Template, TD> = {
|
|
28
35
|
[key in keyof Template]: string
|
|
29
36
|
}
|
|
30
37
|
|
|
@@ -45,11 +52,10 @@ type GetGeneratedTheme<TD, S extends ThemeBuilderState> = TD extends {
|
|
|
45
52
|
}
|
|
46
53
|
? T
|
|
47
54
|
: TD extends { parent: infer P }
|
|
48
|
-
?
|
|
49
|
-
GetGeneratedTheme<GetParentTheme<P, S['themes']>, S>
|
|
55
|
+
? GetGeneratedTheme<GetParentTheme<P, S['themes']>, S>
|
|
50
56
|
: TD extends { template: infer T }
|
|
51
57
|
? T extends keyof S['templates']
|
|
52
|
-
? GetGeneratedThemeFromTemplate<S['templates'][T]>
|
|
58
|
+
? GetGeneratedThemeFromTemplate<S['templates'][T], TD>
|
|
53
59
|
: TD
|
|
54
60
|
: TD
|
|
55
61
|
|
|
@@ -120,8 +126,21 @@ export class ThemeBuilder<State extends ThemeBuilderState> {
|
|
|
120
126
|
...(this.state.themes as {}),
|
|
121
127
|
...themes,
|
|
122
128
|
}
|
|
129
|
+
|
|
130
|
+
type TemplateToTheme<X> = State['templates'] extends {}
|
|
131
|
+
? X extends { template: infer Y; nonInheritedValues: infer Z }
|
|
132
|
+
? Y extends keyof State['templates']
|
|
133
|
+
? { theme: Record<keyof State['templates'][Y] | keyof Z, string> }
|
|
134
|
+
: X
|
|
135
|
+
: X
|
|
136
|
+
: X
|
|
137
|
+
|
|
123
138
|
return this as any as ThemeBuilder<
|
|
124
|
-
State & {
|
|
139
|
+
Omit<State, 'themes'> & {
|
|
140
|
+
// lets infer template themes directly onto here to avoid some type nesting issues later one
|
|
141
|
+
// themes: {
|
|
142
|
+
// [Key in keyof T]: TemplateToTheme<T[Key]>
|
|
143
|
+
// } & State['themes']
|
|
125
144
|
themes: T
|
|
126
145
|
}
|
|
127
146
|
>
|
|
@@ -147,8 +166,8 @@ export class ThemeBuilder<State extends ThemeBuilderState> {
|
|
|
147
166
|
type CurrentNames = Exclude<keyof typeof currentThemes, symbol | number>
|
|
148
167
|
type ChildNames = Exclude<keyof CTD, symbol | number>
|
|
149
168
|
|
|
150
|
-
const currentThemeNames =
|
|
151
|
-
const incomingThemeNames =
|
|
169
|
+
const currentThemeNames = Object.keys(currentThemes) as CurrentNames[]
|
|
170
|
+
const incomingThemeNames = Object.keys(childThemeDefinition) as ChildNames[]
|
|
152
171
|
|
|
153
172
|
const namesWithDefinitions = currentThemeNames.flatMap((prefix) => {
|
|
154
173
|
if (options?.avoidNestingWithin) {
|
|
@@ -174,7 +193,7 @@ export class ThemeBuilder<State extends ThemeBuilderState> {
|
|
|
174
193
|
}
|
|
175
194
|
}
|
|
176
195
|
|
|
177
|
-
const childThemes =
|
|
196
|
+
const childThemes = Object.fromEntries(namesWithDefinitions) as any as ChildThemes
|
|
178
197
|
|
|
179
198
|
const next = {
|
|
180
199
|
// as {} prevents generic string key merge messing up types
|
package/types/ThemeBuilder.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ type ThemeBuilderState = {
|
|
|
7
7
|
masks?: MaskDefinitions;
|
|
8
8
|
};
|
|
9
9
|
type ObjectStringKeys<A extends Object | undefined> = A extends Object ? Exclude<keyof A, symbol | number> : never;
|
|
10
|
-
type GetGeneratedThemeFromTemplate<Template> = {
|
|
10
|
+
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;
|
|
@@ -17,7 +17,7 @@ type GetGeneratedTheme<TD, S extends ThemeBuilderState> = TD extends {
|
|
|
17
17
|
parent: infer P;
|
|
18
18
|
} ? GetGeneratedTheme<GetParentTheme<P, S['themes']>, S> : TD extends {
|
|
19
19
|
template: infer T;
|
|
20
|
-
} ? T extends keyof S['templates'] ? GetGeneratedThemeFromTemplate<S['templates'][T]> : TD : TD;
|
|
20
|
+
} ? T extends keyof S['templates'] ? GetGeneratedThemeFromTemplate<S['templates'][T], TD> : TD : TD;
|
|
21
21
|
type ThemeBuilderBuildResult<S extends ThemeBuilderState> = {
|
|
22
22
|
[Key in keyof S['themes']]: GetGeneratedTheme<S['themes'][Key], S>;
|
|
23
23
|
};
|
|
@@ -34,7 +34,7 @@ export declare class ThemeBuilder<State extends ThemeBuilderState> {
|
|
|
34
34
|
addMasks<const M extends MaskDefinitions>(masks: M): ThemeBuilder<State & {
|
|
35
35
|
masks: M;
|
|
36
36
|
}>;
|
|
37
|
-
addThemes<const T extends ThemeDefinitions<ObjectStringKeys<State['masks']>>>(themes: T): ThemeBuilder<State & {
|
|
37
|
+
addThemes<const T extends ThemeDefinitions<ObjectStringKeys<State['masks']>>>(themes: T): ThemeBuilder<Omit<State, "themes"> & {
|
|
38
38
|
themes: T;
|
|
39
39
|
}>;
|
|
40
40
|
addChildThemes<CTD extends Narrow<ThemeDefinitions<ObjectStringKeys<State['masks']>>>, const AvoidNestingWithin extends string[] = []>(childThemeDefinition: CTD, options?: {
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"ThemeBuilder.d.ts","sourceRoot":"","sources":["../src/ThemeBuilder.ts"],"names":[],"mappings":"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"}
|