@tamagui/theme-builder 1.61.2 → 1.62.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 +58 -103
- package/dist/cjs/ThemeBuilder.js.map +1 -1
- package/dist/cjs/ThemeBuilder.native.js +147 -0
- package/dist/cjs/ThemeBuilder.native.js.map +6 -0
- package/dist/cjs/index.js +4 -8
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.native.js +22 -0
- package/dist/cjs/index.native.js.map +6 -0
- package/dist/esm/ThemeBuilder.js +53 -94
- package/dist/esm/ThemeBuilder.js.map +1 -1
- package/package.json +3 -3
package/dist/cjs/ThemeBuilder.js
CHANGED
|
@@ -1,21 +1,17 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __defProp = Object.defineProperty;
|
|
3
2
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
4
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
5
|
var __export = (target, all) => {
|
|
7
6
|
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable:
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
8
|
+
}, __copyProps = (to, from, except, desc) => {
|
|
9
|
+
if (from && typeof from == "object" || typeof from == "function")
|
|
12
10
|
for (let key of __getOwnPropNames(from))
|
|
13
|
-
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
11
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
12
|
return to;
|
|
17
13
|
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value:
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
19
15
|
var ThemeBuilder_exports = {};
|
|
20
16
|
__export(ThemeBuilder_exports, {
|
|
21
17
|
ThemeBuilder: () => ThemeBuilder,
|
|
@@ -28,146 +24,105 @@ class ThemeBuilder {
|
|
|
28
24
|
this.state = state;
|
|
29
25
|
}
|
|
30
26
|
addPalettes(palettes) {
|
|
31
|
-
this.state.palettes = {
|
|
27
|
+
return this.state.palettes = {
|
|
32
28
|
// as {} prevents generic string key merge messing up types
|
|
33
29
|
...this.state.palettes,
|
|
34
30
|
...palettes
|
|
35
|
-
};
|
|
36
|
-
return this;
|
|
31
|
+
}, this;
|
|
37
32
|
}
|
|
38
33
|
addTemplates(templates) {
|
|
39
|
-
this.state.templates = {
|
|
34
|
+
return this.state.templates = {
|
|
40
35
|
// as {} prevents generic string key merge messing up types
|
|
41
36
|
...this.state.templates,
|
|
42
37
|
...templates
|
|
43
|
-
};
|
|
44
|
-
return this;
|
|
38
|
+
}, this;
|
|
45
39
|
}
|
|
46
40
|
addMasks(masks) {
|
|
47
|
-
this.state.masks = {
|
|
41
|
+
return this.state.masks = {
|
|
48
42
|
// as {} prevents generic string key merge messing up types
|
|
49
43
|
...this.state.masks,
|
|
50
44
|
...(0, import_create_theme.objectFromEntries)(
|
|
51
45
|
(0, import_create_theme.objectEntries)(masks).map(([key, val]) => [key, (0, import_create_theme.createMask)(val)])
|
|
52
46
|
)
|
|
53
|
-
};
|
|
54
|
-
return this;
|
|
47
|
+
}, this;
|
|
55
48
|
}
|
|
56
49
|
addThemes(themes) {
|
|
57
|
-
this.state.themes = {
|
|
50
|
+
return this.state.themes = {
|
|
58
51
|
// as {} prevents generic string key merge messing up types
|
|
59
52
|
...this.state.themes,
|
|
60
53
|
...themes
|
|
61
|
-
};
|
|
62
|
-
return this;
|
|
54
|
+
}, this;
|
|
63
55
|
}
|
|
64
56
|
addChildThemes(childThemeDefinition, options) {
|
|
65
57
|
const currentThemes = this.state.themes;
|
|
66
|
-
if (!currentThemes)
|
|
58
|
+
if (!currentThemes)
|
|
67
59
|
throw new Error(
|
|
68
|
-
|
|
60
|
+
"No themes defined yet, use addThemes first to set your base themes"
|
|
69
61
|
);
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
(avoidName) => prefix.startsWith(avoidName) || prefix.endsWith(avoidName)
|
|
78
|
-
)) {
|
|
79
|
-
return [];
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
return incomingThemeNames.map((subName) => {
|
|
83
|
-
const fullName = `${prefix}_${subName}`;
|
|
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
|
-
}
|
|
91
|
-
return [fullName, definition];
|
|
62
|
+
const currentThemeNames = Object.keys(currentThemes), incomingThemeNames = Object.keys(childThemeDefinition), namesWithDefinitions = currentThemeNames.flatMap((prefix) => {
|
|
63
|
+
const avoidNestingWithin = options?.avoidNestingWithin;
|
|
64
|
+
return avoidNestingWithin && avoidNestingWithin.some(
|
|
65
|
+
(avoidName) => prefix.startsWith(avoidName) || prefix.endsWith(avoidName)
|
|
66
|
+
) ? [] : incomingThemeNames.map((subName) => {
|
|
67
|
+
const fullName = `${prefix}_${subName}`, definition = childThemeDefinition[subName];
|
|
68
|
+
return "avoidNestingWithin" in definition && definition.avoidNestingWithin.some((name) => prefix.startsWith(name) || prefix.endsWith(name)) ? null : [fullName, definition];
|
|
92
69
|
}).filter(Boolean);
|
|
93
|
-
})
|
|
94
|
-
const childThemes = Object.fromEntries(namesWithDefinitions);
|
|
95
|
-
const next = {
|
|
70
|
+
}), childThemes = Object.fromEntries(namesWithDefinitions), next = {
|
|
96
71
|
// as {} prevents generic string key merge messing up types
|
|
97
72
|
...this.state.themes,
|
|
98
73
|
...childThemes
|
|
99
74
|
};
|
|
100
|
-
this.state.themes = next;
|
|
101
|
-
return this;
|
|
75
|
+
return this.state.themes = next, this;
|
|
102
76
|
}
|
|
103
77
|
build() {
|
|
104
|
-
|
|
105
|
-
if (!this.state.themes) {
|
|
78
|
+
if (!this.state.themes)
|
|
106
79
|
return {};
|
|
107
|
-
}
|
|
108
|
-
const out = {};
|
|
109
|
-
const maskedThemes = [];
|
|
80
|
+
const out = {}, maskedThemes = [];
|
|
110
81
|
for (const themeName in this.state.themes) {
|
|
111
|
-
const nameParts = themeName.split("_")
|
|
112
|
-
const parentName = nameParts.slice(0, nameParts.length - 1).join("_");
|
|
113
|
-
const definitions = this.state.themes[themeName];
|
|
114
|
-
const themeDefinition = Array.isArray(definitions) ? (() => {
|
|
82
|
+
const nameParts = themeName.split("_"), parentName = nameParts.slice(0, nameParts.length - 1).join("_"), definitions = this.state.themes[themeName], themeDefinition = Array.isArray(definitions) ? (() => {
|
|
115
83
|
const found = definitions.find((d) => parentName.startsWith(d.parent));
|
|
116
|
-
|
|
117
|
-
return null;
|
|
118
|
-
}
|
|
119
|
-
return found;
|
|
84
|
+
return found || null;
|
|
120
85
|
})() : definitions;
|
|
121
|
-
if (
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
)
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
const template = (_a = this.state.templates) == null ? void 0 : _a[templateName];
|
|
148
|
-
if (!template) {
|
|
149
|
-
throw new Error(`No template for theme ${themeName}: ${templateName}`);
|
|
86
|
+
if (themeDefinition)
|
|
87
|
+
if ("theme" in themeDefinition)
|
|
88
|
+
out[themeName] = themeDefinition.theme;
|
|
89
|
+
else if ("mask" in themeDefinition)
|
|
90
|
+
maskedThemes.push({ parentName, themeName, mask: themeDefinition });
|
|
91
|
+
else {
|
|
92
|
+
const {
|
|
93
|
+
palette: paletteName,
|
|
94
|
+
template: templateName,
|
|
95
|
+
...options
|
|
96
|
+
} = themeDefinition;
|
|
97
|
+
if (!this.state.palettes)
|
|
98
|
+
throw new Error(
|
|
99
|
+
`No palettes defined for theme with palette expected: ${themeName}`
|
|
100
|
+
);
|
|
101
|
+
let palette = this.state.palettes[paletteName];
|
|
102
|
+
if (!palette) {
|
|
103
|
+
const fullPaletteName = `${parentName}_${paletteName}`;
|
|
104
|
+
palette = this.state.palettes[fullPaletteName];
|
|
105
|
+
}
|
|
106
|
+
if (!palette)
|
|
107
|
+
throw new Error(`No palette for theme ${themeName}: ${paletteName}`);
|
|
108
|
+
const template = this.state.templates?.[templateName];
|
|
109
|
+
if (!template)
|
|
110
|
+
throw new Error(`No template for theme ${themeName}: ${templateName}`);
|
|
111
|
+
out[themeName] = (0, import_create_theme.createTheme)(palette, template, options, themeName);
|
|
150
112
|
}
|
|
151
|
-
out[themeName] = (0, import_create_theme.createTheme)(palette, template, options, themeName);
|
|
152
|
-
}
|
|
153
113
|
}
|
|
154
114
|
for (const { mask, themeName, parentName } of maskedThemes) {
|
|
155
115
|
const parent = out[parentName];
|
|
156
|
-
if (!parent)
|
|
116
|
+
if (!parent)
|
|
157
117
|
continue;
|
|
158
|
-
}
|
|
159
118
|
const { mask: maskName, ...options } = mask;
|
|
160
|
-
let maskFunction =
|
|
161
|
-
if (!maskFunction)
|
|
119
|
+
let maskFunction = this.state.masks?.[maskName];
|
|
120
|
+
if (!maskFunction)
|
|
162
121
|
throw new Error(`No mask ${maskFunction}`);
|
|
163
|
-
}
|
|
164
122
|
const parentTheme = this.state.themes[parentName];
|
|
165
123
|
if (parentTheme && "childOptions" in parentTheme) {
|
|
166
124
|
const { mask: mask2, ...childOpts } = parentTheme.childOptions;
|
|
167
|
-
|
|
168
|
-
maskFunction = (_c = this.state.masks) == null ? void 0 : _c[mask2];
|
|
169
|
-
}
|
|
170
|
-
Object.assign(options, childOpts);
|
|
125
|
+
mask2 && (maskFunction = this.state.masks?.[mask2]), Object.assign(options, childOpts);
|
|
171
126
|
}
|
|
172
127
|
out[themeName] = (0, import_create_theme.applyMask)(
|
|
173
128
|
parent,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/ThemeBuilder.ts"],
|
|
4
|
-
"mappings": "
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["mask"]
|
|
6
6
|
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
9
|
+
}, __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from == "object" || typeof from == "function")
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
13
|
+
return to;
|
|
14
|
+
};
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
16
|
+
var ThemeBuilder_exports = {};
|
|
17
|
+
__export(ThemeBuilder_exports, {
|
|
18
|
+
ThemeBuilder: () => ThemeBuilder,
|
|
19
|
+
createThemeBuilder: () => createThemeBuilder
|
|
20
|
+
});
|
|
21
|
+
module.exports = __toCommonJS(ThemeBuilder_exports);
|
|
22
|
+
var import_create_theme = require("@tamagui/create-theme");
|
|
23
|
+
class ThemeBuilder {
|
|
24
|
+
constructor(state) {
|
|
25
|
+
this.state = state;
|
|
26
|
+
}
|
|
27
|
+
addPalettes(palettes) {
|
|
28
|
+
return this.state.palettes = {
|
|
29
|
+
// as {} prevents generic string key merge messing up types
|
|
30
|
+
...this.state.palettes,
|
|
31
|
+
...palettes
|
|
32
|
+
}, this;
|
|
33
|
+
}
|
|
34
|
+
addTemplates(templates) {
|
|
35
|
+
return this.state.templates = {
|
|
36
|
+
// as {} prevents generic string key merge messing up types
|
|
37
|
+
...this.state.templates,
|
|
38
|
+
...templates
|
|
39
|
+
}, this;
|
|
40
|
+
}
|
|
41
|
+
addMasks(masks) {
|
|
42
|
+
return this.state.masks = {
|
|
43
|
+
// as {} prevents generic string key merge messing up types
|
|
44
|
+
...this.state.masks,
|
|
45
|
+
...(0, import_create_theme.objectFromEntries)(
|
|
46
|
+
(0, import_create_theme.objectEntries)(masks).map(([key, val]) => [key, (0, import_create_theme.createMask)(val)])
|
|
47
|
+
)
|
|
48
|
+
}, this;
|
|
49
|
+
}
|
|
50
|
+
addThemes(themes) {
|
|
51
|
+
return this.state.themes = {
|
|
52
|
+
// as {} prevents generic string key merge messing up types
|
|
53
|
+
...this.state.themes,
|
|
54
|
+
...themes
|
|
55
|
+
}, this;
|
|
56
|
+
}
|
|
57
|
+
addChildThemes(childThemeDefinition, options) {
|
|
58
|
+
const currentThemes = this.state.themes;
|
|
59
|
+
if (!currentThemes)
|
|
60
|
+
throw new Error(
|
|
61
|
+
"No themes defined yet, use addThemes first to set your base themes"
|
|
62
|
+
);
|
|
63
|
+
const currentThemeNames = Object.keys(currentThemes), incomingThemeNames = Object.keys(childThemeDefinition), namesWithDefinitions = currentThemeNames.flatMap((prefix) => {
|
|
64
|
+
const avoidNestingWithin = options?.avoidNestingWithin;
|
|
65
|
+
return avoidNestingWithin && avoidNestingWithin.some(
|
|
66
|
+
(avoidName) => prefix.startsWith(avoidName) || prefix.endsWith(avoidName)
|
|
67
|
+
) ? [] : incomingThemeNames.map((subName) => {
|
|
68
|
+
const fullName = `${prefix}_${subName}`, definition = childThemeDefinition[subName];
|
|
69
|
+
return "avoidNestingWithin" in definition && definition.avoidNestingWithin.some((name) => prefix.startsWith(name) || prefix.endsWith(name)) ? null : [fullName, definition];
|
|
70
|
+
}).filter(Boolean);
|
|
71
|
+
}), childThemes = Object.fromEntries(namesWithDefinitions), next = {
|
|
72
|
+
// as {} prevents generic string key merge messing up types
|
|
73
|
+
...this.state.themes,
|
|
74
|
+
...childThemes
|
|
75
|
+
};
|
|
76
|
+
return this.state.themes = next, this;
|
|
77
|
+
}
|
|
78
|
+
build() {
|
|
79
|
+
if (!this.state.themes)
|
|
80
|
+
return {};
|
|
81
|
+
const out = {}, maskedThemes = [];
|
|
82
|
+
for (const themeName in this.state.themes) {
|
|
83
|
+
const nameParts = themeName.split("_"), parentName = nameParts.slice(0, nameParts.length - 1).join("_"), definitions = this.state.themes[themeName], themeDefinition = Array.isArray(definitions) ? (() => {
|
|
84
|
+
const found = definitions.find((d) => parentName.startsWith(d.parent));
|
|
85
|
+
return found || null;
|
|
86
|
+
})() : definitions;
|
|
87
|
+
if (themeDefinition)
|
|
88
|
+
if ("theme" in themeDefinition)
|
|
89
|
+
out[themeName] = themeDefinition.theme;
|
|
90
|
+
else if ("mask" in themeDefinition)
|
|
91
|
+
maskedThemes.push({ parentName, themeName, mask: themeDefinition });
|
|
92
|
+
else {
|
|
93
|
+
const {
|
|
94
|
+
palette: paletteName,
|
|
95
|
+
template: templateName,
|
|
96
|
+
...options
|
|
97
|
+
} = themeDefinition;
|
|
98
|
+
if (!this.state.palettes)
|
|
99
|
+
throw new Error(
|
|
100
|
+
`No palettes defined for theme with palette expected: ${themeName}`
|
|
101
|
+
);
|
|
102
|
+
let palette = this.state.palettes[paletteName];
|
|
103
|
+
if (!palette) {
|
|
104
|
+
const fullPaletteName = `${parentName}_${paletteName}`;
|
|
105
|
+
palette = this.state.palettes[fullPaletteName];
|
|
106
|
+
}
|
|
107
|
+
if (!palette)
|
|
108
|
+
throw new Error(`No palette for theme ${themeName}: ${paletteName}`);
|
|
109
|
+
const template = this.state.templates?.[templateName];
|
|
110
|
+
if (!template)
|
|
111
|
+
throw new Error(`No template for theme ${themeName}: ${templateName}`);
|
|
112
|
+
out[themeName] = (0, import_create_theme.createTheme)(palette, template, options, themeName);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
for (const { mask, themeName, parentName } of maskedThemes) {
|
|
116
|
+
const parent = out[parentName];
|
|
117
|
+
if (!parent)
|
|
118
|
+
continue;
|
|
119
|
+
const { mask: maskName, ...options } = mask;
|
|
120
|
+
let maskFunction = this.state.masks?.[maskName];
|
|
121
|
+
if (!maskFunction)
|
|
122
|
+
throw new Error(`No mask ${maskFunction}`);
|
|
123
|
+
const parentTheme = this.state.themes[parentName];
|
|
124
|
+
if (parentTheme && "childOptions" in parentTheme) {
|
|
125
|
+
const { mask: mask2, ...childOpts } = parentTheme.childOptions;
|
|
126
|
+
mask2 && (maskFunction = this.state.masks?.[mask2]), Object.assign(options, childOpts);
|
|
127
|
+
}
|
|
128
|
+
out[themeName] = (0, import_create_theme.applyMask)(
|
|
129
|
+
parent,
|
|
130
|
+
maskFunction,
|
|
131
|
+
options,
|
|
132
|
+
parentName,
|
|
133
|
+
themeName
|
|
134
|
+
);
|
|
135
|
+
}
|
|
136
|
+
return out;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
function createThemeBuilder() {
|
|
140
|
+
return new ThemeBuilder({});
|
|
141
|
+
}
|
|
142
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
143
|
+
0 && (module.exports = {
|
|
144
|
+
ThemeBuilder,
|
|
145
|
+
createThemeBuilder
|
|
146
|
+
});
|
|
147
|
+
//# sourceMappingURL=ThemeBuilder.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/ThemeBuilder.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["mask"]
|
|
6
|
+
}
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __defProp = Object.defineProperty;
|
|
3
2
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
4
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
5
|
var __copyProps = (to, from, except, desc) => {
|
|
7
|
-
if (from && typeof from
|
|
6
|
+
if (from && typeof from == "object" || typeof from == "function")
|
|
8
7
|
for (let key of __getOwnPropNames(from))
|
|
9
|
-
|
|
10
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
-
}
|
|
8
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
12
9
|
return to;
|
|
13
|
-
};
|
|
14
|
-
var
|
|
15
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
10
|
+
}, __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
11
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
16
12
|
var src_exports = {};
|
|
17
13
|
module.exports = __toCommonJS(src_exports);
|
|
18
14
|
__reExport(src_exports, require("./ThemeBuilder"), module.exports);
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from == "object" || typeof from == "function")
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
10
|
+
return to;
|
|
11
|
+
}, __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
12
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
13
|
+
var src_exports = {};
|
|
14
|
+
module.exports = __toCommonJS(src_exports);
|
|
15
|
+
__reExport(src_exports, require("./ThemeBuilder"), module.exports);
|
|
16
|
+
__reExport(src_exports, require("@tamagui/create-theme"), module.exports);
|
|
17
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
18
|
+
0 && (module.exports = {
|
|
19
|
+
...require("./ThemeBuilder"),
|
|
20
|
+
...require("@tamagui/create-theme")
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
package/dist/esm/ThemeBuilder.js
CHANGED
|
@@ -10,146 +10,105 @@ class ThemeBuilder {
|
|
|
10
10
|
this.state = state;
|
|
11
11
|
}
|
|
12
12
|
addPalettes(palettes) {
|
|
13
|
-
this.state.palettes = {
|
|
13
|
+
return this.state.palettes = {
|
|
14
14
|
// as {} prevents generic string key merge messing up types
|
|
15
15
|
...this.state.palettes,
|
|
16
16
|
...palettes
|
|
17
|
-
};
|
|
18
|
-
return this;
|
|
17
|
+
}, this;
|
|
19
18
|
}
|
|
20
19
|
addTemplates(templates) {
|
|
21
|
-
this.state.templates = {
|
|
20
|
+
return this.state.templates = {
|
|
22
21
|
// as {} prevents generic string key merge messing up types
|
|
23
22
|
...this.state.templates,
|
|
24
23
|
...templates
|
|
25
|
-
};
|
|
26
|
-
return this;
|
|
24
|
+
}, this;
|
|
27
25
|
}
|
|
28
26
|
addMasks(masks) {
|
|
29
|
-
this.state.masks = {
|
|
27
|
+
return this.state.masks = {
|
|
30
28
|
// as {} prevents generic string key merge messing up types
|
|
31
29
|
...this.state.masks,
|
|
32
30
|
...objectFromEntries(
|
|
33
31
|
objectEntries(masks).map(([key, val]) => [key, createMask(val)])
|
|
34
32
|
)
|
|
35
|
-
};
|
|
36
|
-
return this;
|
|
33
|
+
}, this;
|
|
37
34
|
}
|
|
38
35
|
addThemes(themes) {
|
|
39
|
-
this.state.themes = {
|
|
36
|
+
return this.state.themes = {
|
|
40
37
|
// as {} prevents generic string key merge messing up types
|
|
41
38
|
...this.state.themes,
|
|
42
39
|
...themes
|
|
43
|
-
};
|
|
44
|
-
return this;
|
|
40
|
+
}, this;
|
|
45
41
|
}
|
|
46
42
|
addChildThemes(childThemeDefinition, options) {
|
|
47
43
|
const currentThemes = this.state.themes;
|
|
48
|
-
if (!currentThemes)
|
|
44
|
+
if (!currentThemes)
|
|
49
45
|
throw new Error(
|
|
50
|
-
|
|
46
|
+
"No themes defined yet, use addThemes first to set your base themes"
|
|
51
47
|
);
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
(avoidName) => prefix.startsWith(avoidName) || prefix.endsWith(avoidName)
|
|
60
|
-
)) {
|
|
61
|
-
return [];
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
return incomingThemeNames.map((subName) => {
|
|
65
|
-
const fullName = `${prefix}_${subName}`;
|
|
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
|
-
}
|
|
73
|
-
return [fullName, definition];
|
|
48
|
+
const currentThemeNames = Object.keys(currentThemes), incomingThemeNames = Object.keys(childThemeDefinition), namesWithDefinitions = currentThemeNames.flatMap((prefix) => {
|
|
49
|
+
const avoidNestingWithin = options?.avoidNestingWithin;
|
|
50
|
+
return avoidNestingWithin && avoidNestingWithin.some(
|
|
51
|
+
(avoidName) => prefix.startsWith(avoidName) || prefix.endsWith(avoidName)
|
|
52
|
+
) ? [] : incomingThemeNames.map((subName) => {
|
|
53
|
+
const fullName = `${prefix}_${subName}`, definition = childThemeDefinition[subName];
|
|
54
|
+
return "avoidNestingWithin" in definition && definition.avoidNestingWithin.some((name) => prefix.startsWith(name) || prefix.endsWith(name)) ? null : [fullName, definition];
|
|
74
55
|
}).filter(Boolean);
|
|
75
|
-
})
|
|
76
|
-
const childThemes = Object.fromEntries(namesWithDefinitions);
|
|
77
|
-
const next = {
|
|
56
|
+
}), childThemes = Object.fromEntries(namesWithDefinitions), next = {
|
|
78
57
|
// as {} prevents generic string key merge messing up types
|
|
79
58
|
...this.state.themes,
|
|
80
59
|
...childThemes
|
|
81
60
|
};
|
|
82
|
-
this.state.themes = next;
|
|
83
|
-
return this;
|
|
61
|
+
return this.state.themes = next, this;
|
|
84
62
|
}
|
|
85
63
|
build() {
|
|
86
|
-
|
|
87
|
-
if (!this.state.themes) {
|
|
64
|
+
if (!this.state.themes)
|
|
88
65
|
return {};
|
|
89
|
-
}
|
|
90
|
-
const out = {};
|
|
91
|
-
const maskedThemes = [];
|
|
66
|
+
const out = {}, maskedThemes = [];
|
|
92
67
|
for (const themeName in this.state.themes) {
|
|
93
|
-
const nameParts = themeName.split("_")
|
|
94
|
-
const parentName = nameParts.slice(0, nameParts.length - 1).join("_");
|
|
95
|
-
const definitions = this.state.themes[themeName];
|
|
96
|
-
const themeDefinition = Array.isArray(definitions) ? (() => {
|
|
68
|
+
const nameParts = themeName.split("_"), parentName = nameParts.slice(0, nameParts.length - 1).join("_"), definitions = this.state.themes[themeName], themeDefinition = Array.isArray(definitions) ? (() => {
|
|
97
69
|
const found = definitions.find((d) => parentName.startsWith(d.parent));
|
|
98
|
-
|
|
99
|
-
return null;
|
|
100
|
-
}
|
|
101
|
-
return found;
|
|
70
|
+
return found || null;
|
|
102
71
|
})() : definitions;
|
|
103
|
-
if (
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
)
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
const template = (_a = this.state.templates) == null ? void 0 : _a[templateName];
|
|
130
|
-
if (!template) {
|
|
131
|
-
throw new Error(`No template for theme ${themeName}: ${templateName}`);
|
|
72
|
+
if (themeDefinition)
|
|
73
|
+
if ("theme" in themeDefinition)
|
|
74
|
+
out[themeName] = themeDefinition.theme;
|
|
75
|
+
else if ("mask" in themeDefinition)
|
|
76
|
+
maskedThemes.push({ parentName, themeName, mask: themeDefinition });
|
|
77
|
+
else {
|
|
78
|
+
const {
|
|
79
|
+
palette: paletteName,
|
|
80
|
+
template: templateName,
|
|
81
|
+
...options
|
|
82
|
+
} = themeDefinition;
|
|
83
|
+
if (!this.state.palettes)
|
|
84
|
+
throw new Error(
|
|
85
|
+
`No palettes defined for theme with palette expected: ${themeName}`
|
|
86
|
+
);
|
|
87
|
+
let palette = this.state.palettes[paletteName];
|
|
88
|
+
if (!palette) {
|
|
89
|
+
const fullPaletteName = `${parentName}_${paletteName}`;
|
|
90
|
+
palette = this.state.palettes[fullPaletteName];
|
|
91
|
+
}
|
|
92
|
+
if (!palette)
|
|
93
|
+
throw new Error(`No palette for theme ${themeName}: ${paletteName}`);
|
|
94
|
+
const template = this.state.templates?.[templateName];
|
|
95
|
+
if (!template)
|
|
96
|
+
throw new Error(`No template for theme ${themeName}: ${templateName}`);
|
|
97
|
+
out[themeName] = createTheme(palette, template, options, themeName);
|
|
132
98
|
}
|
|
133
|
-
out[themeName] = createTheme(palette, template, options, themeName);
|
|
134
|
-
}
|
|
135
99
|
}
|
|
136
100
|
for (const { mask, themeName, parentName } of maskedThemes) {
|
|
137
101
|
const parent = out[parentName];
|
|
138
|
-
if (!parent)
|
|
102
|
+
if (!parent)
|
|
139
103
|
continue;
|
|
140
|
-
}
|
|
141
104
|
const { mask: maskName, ...options } = mask;
|
|
142
|
-
let maskFunction =
|
|
143
|
-
if (!maskFunction)
|
|
105
|
+
let maskFunction = this.state.masks?.[maskName];
|
|
106
|
+
if (!maskFunction)
|
|
144
107
|
throw new Error(`No mask ${maskFunction}`);
|
|
145
|
-
}
|
|
146
108
|
const parentTheme = this.state.themes[parentName];
|
|
147
109
|
if (parentTheme && "childOptions" in parentTheme) {
|
|
148
110
|
const { mask: mask2, ...childOpts } = parentTheme.childOptions;
|
|
149
|
-
|
|
150
|
-
maskFunction = (_c = this.state.masks) == null ? void 0 : _c[mask2];
|
|
151
|
-
}
|
|
152
|
-
Object.assign(options, childOpts);
|
|
111
|
+
mask2 && (maskFunction = this.state.masks?.[mask2]), Object.assign(options, childOpts);
|
|
153
112
|
}
|
|
154
113
|
out[themeName] = applyMask(
|
|
155
114
|
parent,
|
|
@@ -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;AA+DA,MAAM,aAA8C;AAAA,EACzD,YAAmB,OAAc;AAAd;AAAA,EAAe;AAAA,EAElC,YAAgD,UAAa;AAC3D,
|
|
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.62.0",
|
|
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.62.0"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@tamagui/build": "1.
|
|
33
|
+
"@tamagui/build": "1.62.0"
|
|
34
34
|
},
|
|
35
35
|
"publishConfig": {
|
|
36
36
|
"access": "public"
|