@tamagui/theme-builder 1.89.26 → 1.89.27-1708112217600
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.native.js +259 -127
- package/dist/cjs/ThemeBuilder.native.js.map +3 -3
- package/dist/cjs/index.native.js.map +2 -2
- package/dist/esm/ThemeBuilder.native.js +260 -134
- package/dist/esm/ThemeBuilder.native.js.map +3 -3
- package/dist/esm/index.native.js.map +1 -1
- package/package.json +3 -3
|
@@ -20,144 +20,276 @@ __export(ThemeBuilder_exports, {
|
|
|
20
20
|
});
|
|
21
21
|
module.exports = __toCommonJS(ThemeBuilder_exports);
|
|
22
22
|
var import_create_theme = require("@tamagui/create-theme");
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
23
|
+
function _array_like_to_array(arr, len) {
|
|
24
|
+
(len == null || len > arr.length) && (len = arr.length);
|
|
25
|
+
for (var i = 0, arr2 = new Array(len); i < len; i++)
|
|
26
|
+
arr2[i] = arr[i];
|
|
27
|
+
return arr2;
|
|
28
|
+
}
|
|
29
|
+
function _array_with_holes(arr) {
|
|
30
|
+
if (Array.isArray(arr))
|
|
31
|
+
return arr;
|
|
32
|
+
}
|
|
33
|
+
function _class_call_check(instance, Constructor) {
|
|
34
|
+
if (!(instance instanceof Constructor))
|
|
35
|
+
throw new TypeError("Cannot call a class as a function");
|
|
36
|
+
}
|
|
37
|
+
function _defineProperties(target, props) {
|
|
38
|
+
for (var i = 0; i < props.length; i++) {
|
|
39
|
+
var descriptor = props[i];
|
|
40
|
+
descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, "value" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor);
|
|
35
41
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
+
}
|
|
43
|
+
function _create_class(Constructor, protoProps, staticProps) {
|
|
44
|
+
return protoProps && _defineProperties(Constructor.prototype, protoProps), staticProps && _defineProperties(Constructor, staticProps), Constructor;
|
|
45
|
+
}
|
|
46
|
+
function _define_property(obj, key, value) {
|
|
47
|
+
return key in obj ? Object.defineProperty(obj, key, {
|
|
48
|
+
value,
|
|
49
|
+
enumerable: !0,
|
|
50
|
+
configurable: !0,
|
|
51
|
+
writable: !0
|
|
52
|
+
}) : obj[key] = value, obj;
|
|
53
|
+
}
|
|
54
|
+
function _iterable_to_array_limit(arr, i) {
|
|
55
|
+
var _i = arr == null ? null : typeof Symbol < "u" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
56
|
+
if (_i != null) {
|
|
57
|
+
var _arr = [], _n = !0, _d = !1, _s, _e;
|
|
58
|
+
try {
|
|
59
|
+
for (_i = _i.call(arr); !(_n = (_s = _i.next()).done) && (_arr.push(_s.value), !(i && _arr.length === i)); _n = !0)
|
|
60
|
+
;
|
|
61
|
+
} catch (err) {
|
|
62
|
+
_d = !0, _e = err;
|
|
63
|
+
} finally {
|
|
64
|
+
try {
|
|
65
|
+
!_n && _i.return != null && _i.return();
|
|
66
|
+
} finally {
|
|
67
|
+
if (_d)
|
|
68
|
+
throw _e;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return _arr;
|
|
42
72
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
73
|
+
}
|
|
74
|
+
function _non_iterable_rest() {
|
|
75
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
76
|
+
}
|
|
77
|
+
function _object_spread(target) {
|
|
78
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
79
|
+
var source = arguments[i] != null ? arguments[i] : {}, ownKeys = Object.keys(source);
|
|
80
|
+
typeof Object.getOwnPropertySymbols == "function" && (ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
81
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
82
|
+
}))), ownKeys.forEach(function(key) {
|
|
83
|
+
_define_property(target, key, source[key]);
|
|
84
|
+
});
|
|
51
85
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
86
|
+
return target;
|
|
87
|
+
}
|
|
88
|
+
function _object_without_properties(source, excluded) {
|
|
89
|
+
if (source == null)
|
|
90
|
+
return {};
|
|
91
|
+
var target = _object_without_properties_loose(source, excluded), key, i;
|
|
92
|
+
if (Object.getOwnPropertySymbols) {
|
|
93
|
+
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
|
|
94
|
+
for (i = 0; i < sourceSymbolKeys.length; i++)
|
|
95
|
+
key = sourceSymbolKeys[i], !(excluded.indexOf(key) >= 0) && Object.prototype.propertyIsEnumerable.call(source, key) && (target[key] = source[key]);
|
|
58
96
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
97
|
+
return target;
|
|
98
|
+
}
|
|
99
|
+
function _object_without_properties_loose(source, excluded) {
|
|
100
|
+
if (source == null)
|
|
101
|
+
return {};
|
|
102
|
+
var target = {}, sourceKeys = Object.keys(source), key, i;
|
|
103
|
+
for (i = 0; i < sourceKeys.length; i++)
|
|
104
|
+
key = sourceKeys[i], !(excluded.indexOf(key) >= 0) && (target[key] = source[key]);
|
|
105
|
+
return target;
|
|
106
|
+
}
|
|
107
|
+
function _sliced_to_array(arr, i) {
|
|
108
|
+
return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
|
|
109
|
+
}
|
|
110
|
+
function _unsupported_iterable_to_array(o, minLen) {
|
|
111
|
+
if (o) {
|
|
112
|
+
if (typeof o == "string")
|
|
113
|
+
return _array_like_to_array(o, minLen);
|
|
114
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
115
|
+
if (n === "Object" && o.constructor && (n = o.constructor.name), n === "Map" || n === "Set")
|
|
116
|
+
return Array.from(n);
|
|
117
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
|
|
118
|
+
return _array_like_to_array(o, minLen);
|
|
62
119
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
);
|
|
69
|
-
this._addedThemes.push({ type: "childThemes", args: [childThemeDefinition, options] });
|
|
70
|
-
const currentThemeNames = Object.keys(currentThemes), incomingThemeNames = Object.keys(childThemeDefinition), namesWithDefinitions = currentThemeNames.flatMap((prefix) => {
|
|
71
|
-
const avoidNestingWithin = options == null ? void 0 : options.avoidNestingWithin;
|
|
72
|
-
return avoidNestingWithin && avoidNestingWithin.some(
|
|
73
|
-
(avoidName) => prefix.startsWith(avoidName) || prefix.endsWith(avoidName)
|
|
74
|
-
) ? [] : incomingThemeNames.map((subName) => {
|
|
75
|
-
const fullName = `${prefix}_${subName}`, definition = childThemeDefinition[subName];
|
|
76
|
-
return "avoidNestingWithin" in definition && definition.avoidNestingWithin.some((name) => prefix.startsWith(name) || prefix.endsWith(name)) ? null : [fullName, definition];
|
|
77
|
-
}).filter(Boolean);
|
|
78
|
-
}), childThemes = Object.fromEntries(namesWithDefinitions), next = {
|
|
79
|
-
// as {} prevents generic string key merge messing up types
|
|
80
|
-
...this.state.themes,
|
|
81
|
-
...childThemes
|
|
82
|
-
};
|
|
83
|
-
return this.state.themes = next, this;
|
|
120
|
+
}
|
|
121
|
+
var ThemeBuilder = /* @__PURE__ */ function() {
|
|
122
|
+
"use strict";
|
|
123
|
+
function ThemeBuilder2(state) {
|
|
124
|
+
_class_call_check(this, ThemeBuilder2), _define_property(this, "state", void 0), _define_property(this, "_addedThemes", void 0), this.state = state, this._addedThemes = [];
|
|
84
125
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
);
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
126
|
+
return _create_class(ThemeBuilder2, [
|
|
127
|
+
{
|
|
128
|
+
key: "addPalettes",
|
|
129
|
+
value: function(palettes) {
|
|
130
|
+
return this.state.palettes = _object_spread({}, this.state.palettes, palettes), this;
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
key: "addTemplates",
|
|
135
|
+
value: function(templates) {
|
|
136
|
+
return this.state.templates = _object_spread({}, this.state.templates, templates), this;
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
key: "addMasks",
|
|
141
|
+
value: function(masks) {
|
|
142
|
+
return this.state.masks = _object_spread({}, this.state.masks, (0, import_create_theme.objectFromEntries)((0, import_create_theme.objectEntries)(masks).map(function(param) {
|
|
143
|
+
var _param = _sliced_to_array(param, 2), key = _param[0], val = _param[1];
|
|
144
|
+
return [
|
|
145
|
+
key,
|
|
146
|
+
(0, import_create_theme.createMask)(val)
|
|
147
|
+
];
|
|
148
|
+
}))), this;
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
key: "addThemes",
|
|
153
|
+
value: function(themes) {
|
|
154
|
+
return this._addedThemes.push({
|
|
155
|
+
type: "themes",
|
|
156
|
+
args: [
|
|
157
|
+
themes
|
|
158
|
+
]
|
|
159
|
+
}), this.state.themes = _object_spread({}, this.state.themes, themes), this;
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
// these wont be typed to save some complexity and because they don't need to be typed!
|
|
164
|
+
key: "addComponentThemes",
|
|
165
|
+
value: function(childThemeDefinition, options) {
|
|
166
|
+
return this.addChildThemes(childThemeDefinition, options), this;
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
key: "addChildThemes",
|
|
171
|
+
value: function(childThemeDefinition, options) {
|
|
172
|
+
var currentThemes = this.state.themes;
|
|
173
|
+
if (!currentThemes)
|
|
174
|
+
throw new Error("No themes defined yet, use addThemes first to set your base themes");
|
|
175
|
+
this._addedThemes.push({
|
|
176
|
+
type: "childThemes",
|
|
177
|
+
args: [
|
|
178
|
+
childThemeDefinition,
|
|
179
|
+
options
|
|
180
|
+
]
|
|
181
|
+
});
|
|
182
|
+
var currentThemeNames = Object.keys(currentThemes), incomingThemeNames = Object.keys(childThemeDefinition), namesWithDefinitions = currentThemeNames.flatMap(function(prefix) {
|
|
183
|
+
var avoidNestingWithin = options == null ? void 0 : options.avoidNestingWithin;
|
|
184
|
+
return avoidNestingWithin && avoidNestingWithin.some(function(avoidName) {
|
|
185
|
+
return prefix.startsWith(avoidName) || prefix.endsWith(avoidName);
|
|
186
|
+
}) ? [] : incomingThemeNames.map(function(subName) {
|
|
187
|
+
var fullName = "".concat(prefix, "_").concat(subName), definition = childThemeDefinition[subName];
|
|
188
|
+
if ("avoidNestingWithin" in definition) {
|
|
189
|
+
var avoidNest = definition.avoidNestingWithin;
|
|
190
|
+
if (avoidNest.some(function(name) {
|
|
191
|
+
return prefix.startsWith(name) || prefix.endsWith(name);
|
|
192
|
+
}))
|
|
193
|
+
return null;
|
|
194
|
+
}
|
|
195
|
+
return [
|
|
196
|
+
fullName,
|
|
197
|
+
definition
|
|
198
|
+
];
|
|
199
|
+
}).filter(Boolean);
|
|
200
|
+
}), childThemes = Object.fromEntries(namesWithDefinitions), next = _object_spread({}, this.state.themes, childThemes);
|
|
201
|
+
return this.state.themes = next, this;
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
key: "build",
|
|
206
|
+
value: function() {
|
|
207
|
+
var _this = this, _loop = function(_ref2) {
|
|
208
|
+
var themeName2 = _ref2, nameParts = themeName2.split("_"), parentName2 = nameParts.slice(0, nameParts.length - 1).join("_"), definitions = _this.state.themes[themeName2], themeDefinition = Array.isArray(definitions) ? function() {
|
|
209
|
+
var found = definitions.find(
|
|
210
|
+
// endWith match stronger than startsWith
|
|
211
|
+
function(d) {
|
|
212
|
+
return d.parent ? parentName2.endsWith(d.parent) || parentName2.startsWith(d.parent) : !0;
|
|
213
|
+
}
|
|
113
214
|
);
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
215
|
+
return found || null;
|
|
216
|
+
}() : definitions;
|
|
217
|
+
if (!themeDefinition)
|
|
218
|
+
return "continue";
|
|
219
|
+
if ("theme" in themeDefinition)
|
|
220
|
+
out[themeName2] = themeDefinition.theme;
|
|
221
|
+
else if ("mask" in themeDefinition)
|
|
222
|
+
maskedThemes.push({
|
|
223
|
+
parentName: parentName2,
|
|
224
|
+
themeName: themeName2,
|
|
225
|
+
mask: themeDefinition
|
|
226
|
+
});
|
|
227
|
+
else {
|
|
228
|
+
var _this_state_templates, tmp = themeDefinition.palette, paletteName = tmp === void 0 ? "" : tmp, templateName = themeDefinition.template, options2 = _object_without_properties(themeDefinition, [
|
|
229
|
+
"palette",
|
|
230
|
+
"template"
|
|
231
|
+
]), parentDefinition = _this.state.themes[parentName2];
|
|
232
|
+
if (!_this.state.palettes)
|
|
233
|
+
throw new Error("No palettes defined for theme with palette expected: ".concat(themeName2));
|
|
234
|
+
for (var palette = _this.state.palettes[paletteName || ""], attemptParentName = "".concat(parentName2, "_").concat(paletteName); !palette && attemptParentName; )
|
|
235
|
+
attemptParentName in _this.state.palettes ? (palette = _this.state.palettes[attemptParentName], paletteName = attemptParentName) : attemptParentName = attemptParentName.split("_").slice(0, -1).join("_");
|
|
236
|
+
if (!palette) {
|
|
237
|
+
var msg = process.env.NODE_ENV !== "production" ? ": ".concat(themeName2, ": ").concat(paletteName, `
|
|
238
|
+
Definition: `).concat(JSON.stringify(themeDefinition), `
|
|
239
|
+
Parent: `).concat(JSON.stringify(parentDefinition), `
|
|
240
|
+
Potential: (`).concat(Object.keys(_this.state.palettes).join(", "), ")") : "";
|
|
241
|
+
throw new Error("No palette for theme".concat(msg));
|
|
242
|
+
}
|
|
243
|
+
var template = (_this_state_templates = _this.state.templates) === null || _this_state_templates === void 0 ? void 0 : _this_state_templates[templateName];
|
|
244
|
+
if (!template)
|
|
245
|
+
throw new Error("No template for theme ".concat(themeName2, ": ").concat(templateName));
|
|
246
|
+
out[themeName2] = (0, import_create_theme.createThemeWithPalettes)(_this.state.palettes, paletteName, template, options2, themeName2, !0);
|
|
247
|
+
}
|
|
248
|
+
};
|
|
249
|
+
if (!this.state.themes)
|
|
250
|
+
return {};
|
|
251
|
+
var out = {}, maskedThemes = [];
|
|
252
|
+
for (var _ref in this.state.themes)
|
|
253
|
+
_loop(_ref);
|
|
254
|
+
var _iteratorNormalCompletion = !0, _didIteratorError = !1, _iteratorError = void 0;
|
|
255
|
+
try {
|
|
256
|
+
for (var _iterator = maskedThemes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
|
|
257
|
+
var _ref1 = _step.value, mask = _ref1.mask, themeName = _ref1.themeName, parentName = _ref1.parentName, _this_state_masks, parent = out[parentName];
|
|
258
|
+
if (parent) {
|
|
259
|
+
var maskName = mask.mask, options = _object_without_properties(mask, [
|
|
260
|
+
"mask"
|
|
261
|
+
]), maskFunction = (_this_state_masks = this.state.masks) === null || _this_state_masks === void 0 ? void 0 : _this_state_masks[maskName];
|
|
262
|
+
if (!maskFunction)
|
|
263
|
+
throw new Error("No mask ".concat(maskFunction));
|
|
264
|
+
var parentTheme = this.state.themes[parentName];
|
|
265
|
+
if (parentTheme && "childOptions" in parentTheme) {
|
|
266
|
+
var _parentTheme_childOptions = parentTheme.childOptions, mask1 = _parentTheme_childOptions.mask, childOpts = _object_without_properties(_parentTheme_childOptions, [
|
|
267
|
+
"mask"
|
|
268
|
+
]);
|
|
269
|
+
if (mask1) {
|
|
270
|
+
var _this_state_masks1;
|
|
271
|
+
maskFunction = (_this_state_masks1 = this.state.masks) === null || _this_state_masks1 === void 0 ? void 0 : _this_state_masks1[mask1];
|
|
272
|
+
}
|
|
273
|
+
Object.assign(options, childOpts);
|
|
274
|
+
}
|
|
275
|
+
out[themeName] = (0, import_create_theme.applyMask)(parent, maskFunction, options, parentName, themeName);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
} catch (err) {
|
|
279
|
+
_didIteratorError = !0, _iteratorError = err;
|
|
280
|
+
} finally {
|
|
281
|
+
try {
|
|
282
|
+
!_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
|
|
283
|
+
} finally {
|
|
284
|
+
if (_didIteratorError)
|
|
285
|
+
throw _iteratorError;
|
|
123
286
|
}
|
|
124
|
-
const template = (_a = this.state.templates) == null ? void 0 : _a[templateName];
|
|
125
|
-
if (!template)
|
|
126
|
-
throw new Error(`No template for theme ${themeName}: ${templateName}`);
|
|
127
|
-
out[themeName] = (0, import_create_theme.createThemeWithPalettes)(
|
|
128
|
-
this.state.palettes,
|
|
129
|
-
paletteName,
|
|
130
|
-
template,
|
|
131
|
-
options,
|
|
132
|
-
themeName,
|
|
133
|
-
!0
|
|
134
|
-
);
|
|
135
287
|
}
|
|
136
|
-
|
|
137
|
-
for (const { mask, themeName, parentName } of maskedThemes) {
|
|
138
|
-
const parent = out[parentName];
|
|
139
|
-
if (!parent)
|
|
140
|
-
continue;
|
|
141
|
-
const { mask: maskName, ...options } = mask;
|
|
142
|
-
let maskFunction = (_b = this.state.masks) == null ? void 0 : _b[maskName];
|
|
143
|
-
if (!maskFunction)
|
|
144
|
-
throw new Error(`No mask ${maskFunction}`);
|
|
145
|
-
const parentTheme = this.state.themes[parentName];
|
|
146
|
-
if (parentTheme && "childOptions" in parentTheme) {
|
|
147
|
-
const { mask: mask2, ...childOpts } = parentTheme.childOptions;
|
|
148
|
-
mask2 && (maskFunction = (_c = this.state.masks) == null ? void 0 : _c[mask2]), Object.assign(options, childOpts);
|
|
288
|
+
return out;
|
|
149
289
|
}
|
|
150
|
-
out[themeName] = (0, import_create_theme.applyMask)(
|
|
151
|
-
parent,
|
|
152
|
-
maskFunction,
|
|
153
|
-
options,
|
|
154
|
-
parentName,
|
|
155
|
-
themeName
|
|
156
|
-
);
|
|
157
290
|
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
}
|
|
291
|
+
]), ThemeBuilder2;
|
|
292
|
+
}();
|
|
161
293
|
function createThemeBuilder() {
|
|
162
294
|
return new ThemeBuilder({});
|
|
163
295
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../src/ThemeBuilder.ts"],
|
|
4
|
-
"mappings": "
|
|
5
|
-
"names": ["mask"]
|
|
3
|
+
"sources": ["../../src/Users/n8/tamagui/packages/theme-builder/src/ThemeBuilder.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["ThemeBuilder", "state", "_addedThemes", "addPalettes", "palettes", "addTemplates", "templates", "addMasks", "masks", "objectFromEntries", "objectEntries", "map", "key", "val", "createMask", "addThemes", "themes", "push", "type", "args", "addComponentThemes", "childThemeDefinition", "options", "addChildThemes", "currentThemes", "Error", "currentThemeNames", "Object", "keys", "incomingThemeNames", "namesWithDefinitions", "flatMap", "prefix", "avoidNestingWithin", "some", "avoidName", "startsWith", "endsWith", "subName", "fullName", "definition", "avoidNest", "name", "filter", "Boolean", "childThemes", "fromEntries", "next", "build", "themeName", "nameParts", "split", "parentName", "slice", "length", "join", "definitions", "themeDefinition", "Array", "isArray", "found", "find", "d", "parent", "out", "theme", "maskedThemes", "mask", "paletteName", "palette", "templateName", "template", "parentDefinition", "attemptParentName", "msg", "process", "env", "NODE_ENV", "JSON", "stringify", "createThemeWithPalettes", "maskName", "maskFunction", "parentTheme", "childOptions", "childOpts", "assign", "applyMask", "createThemeBuilder"]
|
|
6
6
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../src/index.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;AAAA
|
|
3
|
+
"sources": ["../../src/Users/n8/tamagui/packages/theme-builder/src/index.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;AAAA;;wBAAc,2BAAd;AACA,wBAAc,kCADd;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1,148 +1,274 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
1
|
+
import { applyMask, createMask, createThemeWithPalettes, objectEntries, objectFromEntries } from "@tamagui/create-theme";
|
|
2
|
+
function _array_like_to_array(arr, len) {
|
|
3
|
+
(len == null || len > arr.length) && (len = arr.length);
|
|
4
|
+
for (var i = 0, arr2 = new Array(len); i < len; i++)
|
|
5
|
+
arr2[i] = arr[i];
|
|
6
|
+
return arr2;
|
|
7
|
+
}
|
|
8
|
+
function _array_with_holes(arr) {
|
|
9
|
+
if (Array.isArray(arr))
|
|
10
|
+
return arr;
|
|
11
|
+
}
|
|
12
|
+
function _class_call_check(instance, Constructor) {
|
|
13
|
+
if (!(instance instanceof Constructor))
|
|
14
|
+
throw new TypeError("Cannot call a class as a function");
|
|
15
|
+
}
|
|
16
|
+
function _defineProperties(target, props) {
|
|
17
|
+
for (var i = 0; i < props.length; i++) {
|
|
18
|
+
var descriptor = props[i];
|
|
19
|
+
descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, "value" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor);
|
|
20
20
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
}
|
|
22
|
+
function _create_class(Constructor, protoProps, staticProps) {
|
|
23
|
+
return protoProps && _defineProperties(Constructor.prototype, protoProps), staticProps && _defineProperties(Constructor, staticProps), Constructor;
|
|
24
|
+
}
|
|
25
|
+
function _define_property(obj, key, value) {
|
|
26
|
+
return key in obj ? Object.defineProperty(obj, key, {
|
|
27
|
+
value,
|
|
28
|
+
enumerable: !0,
|
|
29
|
+
configurable: !0,
|
|
30
|
+
writable: !0
|
|
31
|
+
}) : obj[key] = value, obj;
|
|
32
|
+
}
|
|
33
|
+
function _iterable_to_array_limit(arr, i) {
|
|
34
|
+
var _i = arr == null ? null : typeof Symbol < "u" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
35
|
+
if (_i != null) {
|
|
36
|
+
var _arr = [], _n = !0, _d = !1, _s, _e;
|
|
37
|
+
try {
|
|
38
|
+
for (_i = _i.call(arr); !(_n = (_s = _i.next()).done) && (_arr.push(_s.value), !(i && _arr.length === i)); _n = !0)
|
|
39
|
+
;
|
|
40
|
+
} catch (err) {
|
|
41
|
+
_d = !0, _e = err;
|
|
42
|
+
} finally {
|
|
43
|
+
try {
|
|
44
|
+
!_n && _i.return != null && _i.return();
|
|
45
|
+
} finally {
|
|
46
|
+
if (_d)
|
|
47
|
+
throw _e;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return _arr;
|
|
27
51
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
52
|
+
}
|
|
53
|
+
function _non_iterable_rest() {
|
|
54
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
55
|
+
}
|
|
56
|
+
function _object_spread(target) {
|
|
57
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
58
|
+
var source = arguments[i] != null ? arguments[i] : {}, ownKeys = Object.keys(source);
|
|
59
|
+
typeof Object.getOwnPropertySymbols == "function" && (ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
60
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
61
|
+
}))), ownKeys.forEach(function(key) {
|
|
62
|
+
_define_property(target, key, source[key]);
|
|
63
|
+
});
|
|
36
64
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
65
|
+
return target;
|
|
66
|
+
}
|
|
67
|
+
function _object_without_properties(source, excluded) {
|
|
68
|
+
if (source == null)
|
|
69
|
+
return {};
|
|
70
|
+
var target = _object_without_properties_loose(source, excluded), key, i;
|
|
71
|
+
if (Object.getOwnPropertySymbols) {
|
|
72
|
+
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
|
|
73
|
+
for (i = 0; i < sourceSymbolKeys.length; i++)
|
|
74
|
+
key = sourceSymbolKeys[i], !(excluded.indexOf(key) >= 0) && Object.prototype.propertyIsEnumerable.call(source, key) && (target[key] = source[key]);
|
|
43
75
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
76
|
+
return target;
|
|
77
|
+
}
|
|
78
|
+
function _object_without_properties_loose(source, excluded) {
|
|
79
|
+
if (source == null)
|
|
80
|
+
return {};
|
|
81
|
+
var target = {}, sourceKeys = Object.keys(source), key, i;
|
|
82
|
+
for (i = 0; i < sourceKeys.length; i++)
|
|
83
|
+
key = sourceKeys[i], !(excluded.indexOf(key) >= 0) && (target[key] = source[key]);
|
|
84
|
+
return target;
|
|
85
|
+
}
|
|
86
|
+
function _sliced_to_array(arr, i) {
|
|
87
|
+
return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
|
|
88
|
+
}
|
|
89
|
+
function _unsupported_iterable_to_array(o, minLen) {
|
|
90
|
+
if (o) {
|
|
91
|
+
if (typeof o == "string")
|
|
92
|
+
return _array_like_to_array(o, minLen);
|
|
93
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
94
|
+
if (n === "Object" && o.constructor && (n = o.constructor.name), n === "Map" || n === "Set")
|
|
95
|
+
return Array.from(n);
|
|
96
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
|
|
97
|
+
return _array_like_to_array(o, minLen);
|
|
47
98
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
);
|
|
54
|
-
this._addedThemes.push({ type: "childThemes", args: [childThemeDefinition, options] });
|
|
55
|
-
const currentThemeNames = Object.keys(currentThemes), incomingThemeNames = Object.keys(childThemeDefinition), namesWithDefinitions = currentThemeNames.flatMap((prefix) => {
|
|
56
|
-
const avoidNestingWithin = options == null ? void 0 : options.avoidNestingWithin;
|
|
57
|
-
return avoidNestingWithin && avoidNestingWithin.some(
|
|
58
|
-
(avoidName) => prefix.startsWith(avoidName) || prefix.endsWith(avoidName)
|
|
59
|
-
) ? [] : incomingThemeNames.map((subName) => {
|
|
60
|
-
const fullName = `${prefix}_${subName}`, definition = childThemeDefinition[subName];
|
|
61
|
-
return "avoidNestingWithin" in definition && definition.avoidNestingWithin.some((name) => prefix.startsWith(name) || prefix.endsWith(name)) ? null : [fullName, definition];
|
|
62
|
-
}).filter(Boolean);
|
|
63
|
-
}), childThemes = Object.fromEntries(namesWithDefinitions), next = {
|
|
64
|
-
// as {} prevents generic string key merge messing up types
|
|
65
|
-
...this.state.themes,
|
|
66
|
-
...childThemes
|
|
67
|
-
};
|
|
68
|
-
return this.state.themes = next, this;
|
|
99
|
+
}
|
|
100
|
+
var ThemeBuilder = /* @__PURE__ */ function() {
|
|
101
|
+
"use strict";
|
|
102
|
+
function ThemeBuilder2(state) {
|
|
103
|
+
_class_call_check(this, ThemeBuilder2), _define_property(this, "state", void 0), _define_property(this, "_addedThemes", void 0), this.state = state, this._addedThemes = [];
|
|
69
104
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
);
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
105
|
+
return _create_class(ThemeBuilder2, [
|
|
106
|
+
{
|
|
107
|
+
key: "addPalettes",
|
|
108
|
+
value: function(palettes) {
|
|
109
|
+
return this.state.palettes = _object_spread({}, this.state.palettes, palettes), this;
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
key: "addTemplates",
|
|
114
|
+
value: function(templates) {
|
|
115
|
+
return this.state.templates = _object_spread({}, this.state.templates, templates), this;
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
key: "addMasks",
|
|
120
|
+
value: function(masks) {
|
|
121
|
+
return this.state.masks = _object_spread({}, this.state.masks, objectFromEntries(objectEntries(masks).map(function(param) {
|
|
122
|
+
var _param = _sliced_to_array(param, 2), key = _param[0], val = _param[1];
|
|
123
|
+
return [
|
|
124
|
+
key,
|
|
125
|
+
createMask(val)
|
|
126
|
+
];
|
|
127
|
+
}))), this;
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
key: "addThemes",
|
|
132
|
+
value: function(themes) {
|
|
133
|
+
return this._addedThemes.push({
|
|
134
|
+
type: "themes",
|
|
135
|
+
args: [
|
|
136
|
+
themes
|
|
137
|
+
]
|
|
138
|
+
}), this.state.themes = _object_spread({}, this.state.themes, themes), this;
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
// these wont be typed to save some complexity and because they don't need to be typed!
|
|
143
|
+
key: "addComponentThemes",
|
|
144
|
+
value: function(childThemeDefinition, options) {
|
|
145
|
+
return this.addChildThemes(childThemeDefinition, options), this;
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
key: "addChildThemes",
|
|
150
|
+
value: function(childThemeDefinition, options) {
|
|
151
|
+
var currentThemes = this.state.themes;
|
|
152
|
+
if (!currentThemes)
|
|
153
|
+
throw new Error("No themes defined yet, use addThemes first to set your base themes");
|
|
154
|
+
this._addedThemes.push({
|
|
155
|
+
type: "childThemes",
|
|
156
|
+
args: [
|
|
157
|
+
childThemeDefinition,
|
|
158
|
+
options
|
|
159
|
+
]
|
|
160
|
+
});
|
|
161
|
+
var currentThemeNames = Object.keys(currentThemes), incomingThemeNames = Object.keys(childThemeDefinition), namesWithDefinitions = currentThemeNames.flatMap(function(prefix) {
|
|
162
|
+
var avoidNestingWithin = options == null ? void 0 : options.avoidNestingWithin;
|
|
163
|
+
return avoidNestingWithin && avoidNestingWithin.some(function(avoidName) {
|
|
164
|
+
return prefix.startsWith(avoidName) || prefix.endsWith(avoidName);
|
|
165
|
+
}) ? [] : incomingThemeNames.map(function(subName) {
|
|
166
|
+
var fullName = "".concat(prefix, "_").concat(subName), definition = childThemeDefinition[subName];
|
|
167
|
+
if ("avoidNestingWithin" in definition) {
|
|
168
|
+
var avoidNest = definition.avoidNestingWithin;
|
|
169
|
+
if (avoidNest.some(function(name) {
|
|
170
|
+
return prefix.startsWith(name) || prefix.endsWith(name);
|
|
171
|
+
}))
|
|
172
|
+
return null;
|
|
173
|
+
}
|
|
174
|
+
return [
|
|
175
|
+
fullName,
|
|
176
|
+
definition
|
|
177
|
+
];
|
|
178
|
+
}).filter(Boolean);
|
|
179
|
+
}), childThemes = Object.fromEntries(namesWithDefinitions), next = _object_spread({}, this.state.themes, childThemes);
|
|
180
|
+
return this.state.themes = next, this;
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
key: "build",
|
|
185
|
+
value: function() {
|
|
186
|
+
var _this = this, _loop = function(_ref2) {
|
|
187
|
+
var themeName2 = _ref2, nameParts = themeName2.split("_"), parentName2 = nameParts.slice(0, nameParts.length - 1).join("_"), definitions = _this.state.themes[themeName2], themeDefinition = Array.isArray(definitions) ? function() {
|
|
188
|
+
var found = definitions.find(
|
|
189
|
+
// endWith match stronger than startsWith
|
|
190
|
+
function(d) {
|
|
191
|
+
return d.parent ? parentName2.endsWith(d.parent) || parentName2.startsWith(d.parent) : !0;
|
|
192
|
+
}
|
|
98
193
|
);
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
194
|
+
return found || null;
|
|
195
|
+
}() : definitions;
|
|
196
|
+
if (!themeDefinition)
|
|
197
|
+
return "continue";
|
|
198
|
+
if ("theme" in themeDefinition)
|
|
199
|
+
out[themeName2] = themeDefinition.theme;
|
|
200
|
+
else if ("mask" in themeDefinition)
|
|
201
|
+
maskedThemes.push({
|
|
202
|
+
parentName: parentName2,
|
|
203
|
+
themeName: themeName2,
|
|
204
|
+
mask: themeDefinition
|
|
205
|
+
});
|
|
206
|
+
else {
|
|
207
|
+
var _this_state_templates, tmp = themeDefinition.palette, paletteName = tmp === void 0 ? "" : tmp, templateName = themeDefinition.template, options2 = _object_without_properties(themeDefinition, [
|
|
208
|
+
"palette",
|
|
209
|
+
"template"
|
|
210
|
+
]), parentDefinition = _this.state.themes[parentName2];
|
|
211
|
+
if (!_this.state.palettes)
|
|
212
|
+
throw new Error("No palettes defined for theme with palette expected: ".concat(themeName2));
|
|
213
|
+
for (var palette = _this.state.palettes[paletteName || ""], attemptParentName = "".concat(parentName2, "_").concat(paletteName); !palette && attemptParentName; )
|
|
214
|
+
attemptParentName in _this.state.palettes ? (palette = _this.state.palettes[attemptParentName], paletteName = attemptParentName) : attemptParentName = attemptParentName.split("_").slice(0, -1).join("_");
|
|
215
|
+
if (!palette) {
|
|
216
|
+
var msg = process.env.NODE_ENV !== "production" ? ": ".concat(themeName2, ": ").concat(paletteName, `
|
|
217
|
+
Definition: `).concat(JSON.stringify(themeDefinition), `
|
|
218
|
+
Parent: `).concat(JSON.stringify(parentDefinition), `
|
|
219
|
+
Potential: (`).concat(Object.keys(_this.state.palettes).join(", "), ")") : "";
|
|
220
|
+
throw new Error("No palette for theme".concat(msg));
|
|
221
|
+
}
|
|
222
|
+
var template = (_this_state_templates = _this.state.templates) === null || _this_state_templates === void 0 ? void 0 : _this_state_templates[templateName];
|
|
223
|
+
if (!template)
|
|
224
|
+
throw new Error("No template for theme ".concat(themeName2, ": ").concat(templateName));
|
|
225
|
+
out[themeName2] = createThemeWithPalettes(_this.state.palettes, paletteName, template, options2, themeName2, !0);
|
|
226
|
+
}
|
|
227
|
+
};
|
|
228
|
+
if (!this.state.themes)
|
|
229
|
+
return {};
|
|
230
|
+
var out = {}, maskedThemes = [];
|
|
231
|
+
for (var _ref in this.state.themes)
|
|
232
|
+
_loop(_ref);
|
|
233
|
+
var _iteratorNormalCompletion = !0, _didIteratorError = !1, _iteratorError = void 0;
|
|
234
|
+
try {
|
|
235
|
+
for (var _iterator = maskedThemes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
|
|
236
|
+
var _ref1 = _step.value, mask = _ref1.mask, themeName = _ref1.themeName, parentName = _ref1.parentName, _this_state_masks, parent = out[parentName];
|
|
237
|
+
if (parent) {
|
|
238
|
+
var maskName = mask.mask, options = _object_without_properties(mask, [
|
|
239
|
+
"mask"
|
|
240
|
+
]), maskFunction = (_this_state_masks = this.state.masks) === null || _this_state_masks === void 0 ? void 0 : _this_state_masks[maskName];
|
|
241
|
+
if (!maskFunction)
|
|
242
|
+
throw new Error("No mask ".concat(maskFunction));
|
|
243
|
+
var parentTheme = this.state.themes[parentName];
|
|
244
|
+
if (parentTheme && "childOptions" in parentTheme) {
|
|
245
|
+
var _parentTheme_childOptions = parentTheme.childOptions, mask1 = _parentTheme_childOptions.mask, childOpts = _object_without_properties(_parentTheme_childOptions, [
|
|
246
|
+
"mask"
|
|
247
|
+
]);
|
|
248
|
+
if (mask1) {
|
|
249
|
+
var _this_state_masks1;
|
|
250
|
+
maskFunction = (_this_state_masks1 = this.state.masks) === null || _this_state_masks1 === void 0 ? void 0 : _this_state_masks1[mask1];
|
|
251
|
+
}
|
|
252
|
+
Object.assign(options, childOpts);
|
|
253
|
+
}
|
|
254
|
+
out[themeName] = applyMask(parent, maskFunction, options, parentName, themeName);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
} catch (err) {
|
|
258
|
+
_didIteratorError = !0, _iteratorError = err;
|
|
259
|
+
} finally {
|
|
260
|
+
try {
|
|
261
|
+
!_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
|
|
262
|
+
} finally {
|
|
263
|
+
if (_didIteratorError)
|
|
264
|
+
throw _iteratorError;
|
|
108
265
|
}
|
|
109
|
-
const template = (_a = this.state.templates) == null ? void 0 : _a[templateName];
|
|
110
|
-
if (!template)
|
|
111
|
-
throw new Error(`No template for theme ${themeName}: ${templateName}`);
|
|
112
|
-
out[themeName] = createThemeWithPalettes(
|
|
113
|
-
this.state.palettes,
|
|
114
|
-
paletteName,
|
|
115
|
-
template,
|
|
116
|
-
options,
|
|
117
|
-
themeName,
|
|
118
|
-
!0
|
|
119
|
-
);
|
|
120
266
|
}
|
|
121
|
-
|
|
122
|
-
for (const { mask, themeName, parentName } of maskedThemes) {
|
|
123
|
-
const parent = out[parentName];
|
|
124
|
-
if (!parent)
|
|
125
|
-
continue;
|
|
126
|
-
const { mask: maskName, ...options } = mask;
|
|
127
|
-
let maskFunction = (_b = this.state.masks) == null ? void 0 : _b[maskName];
|
|
128
|
-
if (!maskFunction)
|
|
129
|
-
throw new Error(`No mask ${maskFunction}`);
|
|
130
|
-
const parentTheme = this.state.themes[parentName];
|
|
131
|
-
if (parentTheme && "childOptions" in parentTheme) {
|
|
132
|
-
const { mask: mask2, ...childOpts } = parentTheme.childOptions;
|
|
133
|
-
mask2 && (maskFunction = (_c = this.state.masks) == null ? void 0 : _c[mask2]), Object.assign(options, childOpts);
|
|
267
|
+
return out;
|
|
134
268
|
}
|
|
135
|
-
out[themeName] = applyMask(
|
|
136
|
-
parent,
|
|
137
|
-
maskFunction,
|
|
138
|
-
options,
|
|
139
|
-
parentName,
|
|
140
|
-
themeName
|
|
141
|
-
);
|
|
142
269
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
}
|
|
270
|
+
]), ThemeBuilder2;
|
|
271
|
+
}();
|
|
146
272
|
function createThemeBuilder() {
|
|
147
273
|
return new ThemeBuilder({});
|
|
148
274
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../src/ThemeBuilder.ts"],
|
|
4
|
-
"mappings": "AAOA
|
|
5
|
-
"names": ["mask"]
|
|
3
|
+
"sources": ["../../src/Users/n8/tamagui/packages/theme-builder/src/ThemeBuilder.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["applyMask", "createMask", "createThemeWithPalettes", "objectEntries", "objectFromEntries", "ThemeBuilder", "state", "_addedThemes", "addPalettes", "palettes", "addTemplates", "templates", "addMasks", "masks", "map", "key", "val", "addThemes", "themes", "push", "type", "args", "addComponentThemes", "childThemeDefinition", "options", "addChildThemes", "currentThemes", "Error", "currentThemeNames", "Object", "keys", "incomingThemeNames", "namesWithDefinitions", "flatMap", "prefix", "avoidNestingWithin", "some", "avoidName", "startsWith", "endsWith", "subName", "fullName", "definition", "avoidNest", "name", "filter", "Boolean", "childThemes", "fromEntries", "next", "build", "themeName", "nameParts", "split", "parentName", "slice", "length", "join", "definitions", "themeDefinition", "Array", "isArray", "found", "find", "d", "parent", "out", "theme", "maskedThemes", "mask", "paletteName", "palette", "templateName", "template", "parentDefinition", "attemptParentName", "msg", "process", "env", "NODE_ENV", "JSON", "stringify", "maskName", "maskFunction", "parentTheme", "childOptions", "childOpts", "assign", "createThemeBuilder"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/theme-builder",
|
|
3
|
-
"version": "1.89.
|
|
3
|
+
"version": "1.89.27-1708112217600",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"types": "./types/index.d.ts",
|
|
6
6
|
"main": "dist/cjs",
|
|
@@ -28,11 +28,11 @@
|
|
|
28
28
|
}
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@tamagui/create-theme": "1.89.
|
|
31
|
+
"@tamagui/create-theme": "1.89.27-1708112217600",
|
|
32
32
|
"color2k": "^2.0.2"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@tamagui/build": "1.89.
|
|
35
|
+
"@tamagui/build": "1.89.27-1708112217600"
|
|
36
36
|
},
|
|
37
37
|
"publishConfig": {
|
|
38
38
|
"access": "public"
|