@tamagui/theme-builder 1.57.8 → 1.58.2
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
CHANGED
|
@@ -71,8 +71,9 @@ class ThemeBuilder {
|
|
|
71
71
|
const currentThemeNames = Object.keys(currentThemes);
|
|
72
72
|
const incomingThemeNames = Object.keys(childThemeDefinition);
|
|
73
73
|
const namesWithDefinitions = currentThemeNames.flatMap((prefix) => {
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
const avoidNestingWithin = options == null ? void 0 : options.avoidNestingWithin;
|
|
75
|
+
if (avoidNestingWithin) {
|
|
76
|
+
if (avoidNestingWithin.some(
|
|
76
77
|
(avoidName) => prefix.startsWith(avoidName) || prefix.endsWith(avoidName)
|
|
77
78
|
)) {
|
|
78
79
|
return [];
|
|
@@ -81,8 +82,14 @@ class ThemeBuilder {
|
|
|
81
82
|
return incomingThemeNames.map((subName) => {
|
|
82
83
|
const fullName = `${prefix}_${subName}`;
|
|
83
84
|
const definition = childThemeDefinition[subName];
|
|
85
|
+
if ("avoidNestingWithin" in definition) {
|
|
86
|
+
const avoidNest = definition.avoidNestingWithin;
|
|
87
|
+
if (avoidNest.some((name) => prefix.startsWith(name) || prefix.endsWith(name))) {
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
84
91
|
return [fullName, definition];
|
|
85
|
-
});
|
|
92
|
+
}).filter(Boolean);
|
|
86
93
|
});
|
|
87
94
|
const childThemes = Object.fromEntries(namesWithDefinitions);
|
|
88
95
|
const next = {
|
|
@@ -107,10 +114,13 @@ class ThemeBuilder {
|
|
|
107
114
|
const themeDefinition = Array.isArray(definitions) ? (() => {
|
|
108
115
|
const found = definitions.find((d) => parentName.startsWith(d.parent));
|
|
109
116
|
if (!found) {
|
|
110
|
-
|
|
117
|
+
return null;
|
|
111
118
|
}
|
|
112
119
|
return found;
|
|
113
120
|
})() : definitions;
|
|
121
|
+
if (!themeDefinition) {
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
114
124
|
if ("theme" in themeDefinition) {
|
|
115
125
|
out[themeName] = themeDefinition.theme;
|
|
116
126
|
} else if ("mask" in themeDefinition) {
|
|
@@ -144,9 +154,7 @@ class ThemeBuilder {
|
|
|
144
154
|
for (const { mask, themeName, parentName } of maskedThemes) {
|
|
145
155
|
const parent = out[parentName];
|
|
146
156
|
if (!parent) {
|
|
147
|
-
|
|
148
|
-
`No parent theme found with name ${parentName} for theme ${themeName} to use as a mask target`
|
|
149
|
-
);
|
|
157
|
+
continue;
|
|
150
158
|
}
|
|
151
159
|
const { mask: maskName, ...options } = mask;
|
|
152
160
|
let maskFunction = (_b = this.state.masks) == null ? void 0 : _b[maskName];
|
|
@@ -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": ["mask"]
|
|
6
6
|
}
|
package/dist/esm/ThemeBuilder.js
CHANGED
|
@@ -53,8 +53,9 @@ class ThemeBuilder {
|
|
|
53
53
|
const currentThemeNames = Object.keys(currentThemes);
|
|
54
54
|
const incomingThemeNames = Object.keys(childThemeDefinition);
|
|
55
55
|
const namesWithDefinitions = currentThemeNames.flatMap((prefix) => {
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
const avoidNestingWithin = options == null ? void 0 : options.avoidNestingWithin;
|
|
57
|
+
if (avoidNestingWithin) {
|
|
58
|
+
if (avoidNestingWithin.some(
|
|
58
59
|
(avoidName) => prefix.startsWith(avoidName) || prefix.endsWith(avoidName)
|
|
59
60
|
)) {
|
|
60
61
|
return [];
|
|
@@ -63,8 +64,14 @@ class ThemeBuilder {
|
|
|
63
64
|
return incomingThemeNames.map((subName) => {
|
|
64
65
|
const fullName = `${prefix}_${subName}`;
|
|
65
66
|
const definition = childThemeDefinition[subName];
|
|
67
|
+
if ("avoidNestingWithin" in definition) {
|
|
68
|
+
const avoidNest = definition.avoidNestingWithin;
|
|
69
|
+
if (avoidNest.some((name) => prefix.startsWith(name) || prefix.endsWith(name))) {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
66
73
|
return [fullName, definition];
|
|
67
|
-
});
|
|
74
|
+
}).filter(Boolean);
|
|
68
75
|
});
|
|
69
76
|
const childThemes = Object.fromEntries(namesWithDefinitions);
|
|
70
77
|
const next = {
|
|
@@ -89,10 +96,13 @@ class ThemeBuilder {
|
|
|
89
96
|
const themeDefinition = Array.isArray(definitions) ? (() => {
|
|
90
97
|
const found = definitions.find((d) => parentName.startsWith(d.parent));
|
|
91
98
|
if (!found) {
|
|
92
|
-
|
|
99
|
+
return null;
|
|
93
100
|
}
|
|
94
101
|
return found;
|
|
95
102
|
})() : definitions;
|
|
103
|
+
if (!themeDefinition) {
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
96
106
|
if ("theme" in themeDefinition) {
|
|
97
107
|
out[themeName] = themeDefinition.theme;
|
|
98
108
|
} else if ("mask" in themeDefinition) {
|
|
@@ -126,9 +136,7 @@ class ThemeBuilder {
|
|
|
126
136
|
for (const { mask, themeName, parentName } of maskedThemes) {
|
|
127
137
|
const parent = out[parentName];
|
|
128
138
|
if (!parent) {
|
|
129
|
-
|
|
130
|
-
`No parent theme found with name ${parentName} for theme ${themeName} to use as a mask target`
|
|
131
|
-
);
|
|
139
|
+
continue;
|
|
132
140
|
}
|
|
133
141
|
const { mask: maskName, ...options } = mask;
|
|
134
142
|
let maskFunction = (_b = this.state.masks) == null ? void 0 : _b[maskName];
|
|
@@ -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": ["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.58.2",
|
|
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.
|
|
30
|
+
"@tamagui/create-theme": "1.58.2"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@tamagui/build": "1.
|
|
33
|
+
"@tamagui/build": "1.58.2"
|
|
34
34
|
},
|
|
35
35
|
"publishConfig": {
|
|
36
36
|
"access": "public"
|
package/src/ThemeBuilder.ts
CHANGED
|
@@ -4,15 +4,13 @@ import {
|
|
|
4
4
|
TemplateDefinitions,
|
|
5
5
|
ThemeDefinitions,
|
|
6
6
|
ThemeUsingMask,
|
|
7
|
-
ThemeUsingTemplate,
|
|
8
7
|
applyMask,
|
|
9
8
|
createMask,
|
|
10
9
|
createTheme,
|
|
11
10
|
objectEntries,
|
|
12
11
|
objectFromEntries,
|
|
13
|
-
objectKeys,
|
|
14
12
|
} from '@tamagui/create-theme'
|
|
15
|
-
import type { Narrow
|
|
13
|
+
import type { Narrow } from '@tamagui/web'
|
|
16
14
|
|
|
17
15
|
type ThemeBuilderState = {
|
|
18
16
|
palettes?: PaletteDefinitions
|
|
@@ -25,11 +23,11 @@ type ObjectStringKeys<A extends Object | undefined> = A extends Object
|
|
|
25
23
|
? Exclude<keyof A, symbol | number>
|
|
26
24
|
: never
|
|
27
25
|
|
|
28
|
-
type GetNonInheritedKeys<TD> = TD extends { nonInheritedValues: infer X }
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
26
|
+
// type GetNonInheritedKeys<TD> = TD extends { nonInheritedValues: infer X }
|
|
27
|
+
// ? X extends { [key: string]: any }
|
|
28
|
+
// ? keyof X
|
|
29
|
+
// : never
|
|
30
|
+
// : never
|
|
33
31
|
|
|
34
32
|
type GetGeneratedThemeFromTemplate<Template, TD> = {
|
|
35
33
|
[key in keyof Template]: string
|
|
@@ -170,9 +168,10 @@ export class ThemeBuilder<State extends ThemeBuilderState> {
|
|
|
170
168
|
const incomingThemeNames = Object.keys(childThemeDefinition) as ChildNames[]
|
|
171
169
|
|
|
172
170
|
const namesWithDefinitions = currentThemeNames.flatMap((prefix) => {
|
|
173
|
-
|
|
171
|
+
const avoidNestingWithin = options?.avoidNestingWithin
|
|
172
|
+
if (avoidNestingWithin) {
|
|
174
173
|
if (
|
|
175
|
-
|
|
174
|
+
avoidNestingWithin.some(
|
|
176
175
|
(avoidName) => prefix.startsWith(avoidName) || prefix.endsWith(avoidName)
|
|
177
176
|
)
|
|
178
177
|
) {
|
|
@@ -180,11 +179,23 @@ export class ThemeBuilder<State extends ThemeBuilderState> {
|
|
|
180
179
|
}
|
|
181
180
|
}
|
|
182
181
|
|
|
183
|
-
return incomingThemeNames
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
182
|
+
return incomingThemeNames
|
|
183
|
+
.map((subName) => {
|
|
184
|
+
const fullName = `${prefix}_${subName}`
|
|
185
|
+
const definition = childThemeDefinition[subName]
|
|
186
|
+
|
|
187
|
+
if ('avoidNestingWithin' in definition) {
|
|
188
|
+
const avoidNest = definition.avoidNestingWithin as string[]
|
|
189
|
+
if (
|
|
190
|
+
avoidNest.some((name) => prefix.startsWith(name) || prefix.endsWith(name))
|
|
191
|
+
) {
|
|
192
|
+
return null as never
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
return [fullName, definition] as const
|
|
197
|
+
})
|
|
198
|
+
.filter(Boolean)
|
|
188
199
|
})
|
|
189
200
|
|
|
190
201
|
type ChildThemes = {
|
|
@@ -232,12 +243,17 @@ export class ThemeBuilder<State extends ThemeBuilderState> {
|
|
|
232
243
|
? (() => {
|
|
233
244
|
const found = definitions.find((d) => parentName.startsWith(d.parent!))
|
|
234
245
|
if (!found) {
|
|
235
|
-
|
|
246
|
+
return null
|
|
236
247
|
}
|
|
237
248
|
return found
|
|
238
249
|
})()
|
|
239
250
|
: definitions
|
|
240
251
|
|
|
252
|
+
if (!themeDefinition) {
|
|
253
|
+
// `No parent for ${themeName}: ${parentName} - Continuing...`
|
|
254
|
+
continue
|
|
255
|
+
}
|
|
256
|
+
|
|
241
257
|
if ('theme' in themeDefinition) {
|
|
242
258
|
out[themeName] = themeDefinition.theme
|
|
243
259
|
} else if ('mask' in themeDefinition) {
|
|
@@ -256,7 +272,6 @@ export class ThemeBuilder<State extends ThemeBuilderState> {
|
|
|
256
272
|
}
|
|
257
273
|
|
|
258
274
|
let palette = this.state.palettes[paletteName]
|
|
259
|
-
|
|
260
275
|
if (!palette) {
|
|
261
276
|
const fullPaletteName = `${parentName}_${paletteName}`
|
|
262
277
|
palette = this.state.palettes[fullPaletteName]
|
|
@@ -280,9 +295,8 @@ export class ThemeBuilder<State extends ThemeBuilderState> {
|
|
|
280
295
|
const parent = out[parentName]
|
|
281
296
|
|
|
282
297
|
if (!parent) {
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
)
|
|
298
|
+
// `No parent theme found with name ${parentName} for theme ${themeName} to use as a mask target - Continuing...`
|
|
299
|
+
continue
|
|
286
300
|
}
|
|
287
301
|
|
|
288
302
|
const { mask: maskName, ...options } = mask
|
|
@@ -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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"}
|