@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.
@@ -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: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
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
- if (!__hasOwnProp.call(to, key) && key !== except)
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: true }), mod);
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
- `No themes defined yet, use addThemes first to set your base themes`
60
+ "No themes defined yet, use addThemes first to set your base themes"
69
61
  );
70
- }
71
- const currentThemeNames = Object.keys(currentThemes);
72
- const incomingThemeNames = Object.keys(childThemeDefinition);
73
- const namesWithDefinitions = currentThemeNames.flatMap((prefix) => {
74
- const avoidNestingWithin = options == null ? void 0 : options.avoidNestingWithin;
75
- if (avoidNestingWithin) {
76
- if (avoidNestingWithin.some(
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
- var _a, _b, _c;
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
- if (!found) {
117
- return null;
118
- }
119
- return found;
84
+ return found || null;
120
85
  })() : definitions;
121
- if (!themeDefinition) {
122
- continue;
123
- }
124
- if ("theme" in themeDefinition) {
125
- out[themeName] = themeDefinition.theme;
126
- } else if ("mask" in themeDefinition) {
127
- maskedThemes.push({ parentName, themeName, mask: themeDefinition });
128
- } else {
129
- const {
130
- palette: paletteName,
131
- template: templateName,
132
- ...options
133
- } = themeDefinition;
134
- if (!this.state.palettes) {
135
- throw new Error(
136
- `No palettes defined for theme with palette expected: ${themeName}`
137
- );
138
- }
139
- let palette = this.state.palettes[paletteName];
140
- if (!palette) {
141
- const fullPaletteName = `${parentName}_${paletteName}`;
142
- palette = this.state.palettes[fullPaletteName];
143
- }
144
- if (!palette) {
145
- throw new Error(`No palette for theme ${themeName}: ${paletteName}`);
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 = (_b = this.state.masks) == null ? void 0 : _b[maskName];
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
- if (mask2) {
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": "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",
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 === "object" || typeof from === "function") {
6
+ if (from && typeof from == "object" || typeof from == "function")
8
7
  for (let key of __getOwnPropNames(from))
9
- if (!__hasOwnProp.call(to, key) && key !== except)
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 __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
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);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,wBAAc,2BAAd;AACA,wBAAc,kCADd;",
4
+ "mappings": ";;;;;;;;;;;AAAA;AAAA;AAAA,wBAAc,2BAAd;AACA,wBAAc,kCADd;",
5
5
  "names": []
6
6
  }
@@ -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
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/index.ts"],
4
+ "mappings": ";;;;;;;;;;;;AAAA;AAAA;AAAA,wBAAc,2BAAd;AACA,wBAAc,kCADd;",
5
+ "names": []
6
+ }
@@ -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
- `No themes defined yet, use addThemes first to set your base themes`
46
+ "No themes defined yet, use addThemes first to set your base themes"
51
47
  );
52
- }
53
- const currentThemeNames = Object.keys(currentThemes);
54
- const incomingThemeNames = Object.keys(childThemeDefinition);
55
- const namesWithDefinitions = currentThemeNames.flatMap((prefix) => {
56
- const avoidNestingWithin = options == null ? void 0 : options.avoidNestingWithin;
57
- if (avoidNestingWithin) {
58
- if (avoidNestingWithin.some(
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
- var _a, _b, _c;
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
- if (!found) {
99
- return null;
100
- }
101
- return found;
70
+ return found || null;
102
71
  })() : definitions;
103
- if (!themeDefinition) {
104
- continue;
105
- }
106
- if ("theme" in themeDefinition) {
107
- out[themeName] = themeDefinition.theme;
108
- } else if ("mask" in themeDefinition) {
109
- maskedThemes.push({ parentName, themeName, mask: themeDefinition });
110
- } else {
111
- const {
112
- palette: paletteName,
113
- template: templateName,
114
- ...options
115
- } = themeDefinition;
116
- if (!this.state.palettes) {
117
- throw new Error(
118
- `No palettes defined for theme with palette expected: ${themeName}`
119
- );
120
- }
121
- let palette = this.state.palettes[paletteName];
122
- if (!palette) {
123
- const fullPaletteName = `${parentName}_${paletteName}`;
124
- palette = this.state.palettes[fullPaletteName];
125
- }
126
- if (!palette) {
127
- throw new Error(`No palette for theme ${themeName}: ${paletteName}`);
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 = (_b = this.state.masks) == null ? void 0 : _b[maskName];
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
- if (mask2) {
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,SAAK,MAAM,WAAW;AAAA;AAAA,MAEpB,GAAI,KAAK,MAAM;AAAA,MACf,GAAG;AAAA,IACL;AACA,WAAO;AAAA,EAKT;AAAA,EAEA,aAAkD,WAAc;AAC9D,SAAK,MAAM,YAAY;AAAA;AAAA,MAErB,GAAI,KAAK,MAAM;AAAA,MACf,GAAG;AAAA,IACL;AACA,WAAO;AAAA,EAKT;AAAA,EAEA,SAA0C,OAAU;AAClD,SAAK,MAAM,QAAQ;AAAA;AAAA,MAEjB,GAAI,KAAK,MAAM;AAAA,MACf,GAAI;AAAA,QACF,cAAc,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,WAAW,GAAG,CAAC,CAAC;AAAA,MACjE;AAAA,IACF;AACA,WAAO;AAAA,EAKT;AAAA,EAEA,UACE,QACA;AACA,SAAK,MAAM,SAAS;AAAA;AAAA,MAElB,GAAI,KAAK,MAAM;AAAA,MACf,GAAG;AAAA,IACL;AAUA,WAAO;AAAA,EAST;AAAA,EAEA,eAIE,sBACA,SAGA;AACA,UAAM,gBAAgB,KAAK,MAAM;AACjC,QAAI,CAAC,eAAe;AAClB,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAMA,UAAM,oBAAoB,OAAO,KAAK,aAAa;AACnD,UAAM,qBAAqB,OAAO,KAAK,oBAAoB;AAE3D,UAAM,uBAAuB,kBAAkB,QAAQ,CAAC,WAAW;AACjE,YAAM,qBAAqB,mCAAS;AACpC,UAAI,oBAAoB;AACtB,YACE,mBAAmB;AAAA,UACjB,CAAC,cAAc,OAAO,WAAW,SAAS,KAAK,OAAO,SAAS,SAAS;AAAA,QAC1E,GACA;AACA,iBAAO,CAAC;AAAA,QACV;AAAA,MACF;AAEA,aAAO,mBACJ,IAAI,CAAC,YAAY;AAChB,cAAM,WAAW,GAAG,MAAM,IAAI,OAAO;AACrC,cAAM,aAAa,qBAAqB,OAAO;AAE/C,YAAI,wBAAwB,YAAY;AACtC,gBAAM,YAAY,WAAW;AAC7B,cACE,UAAU,KAAK,CAAC,SAAS,OAAO,WAAW,IAAI,KAAK,OAAO,SAAS,IAAI,CAAC,GACzE;AACA,mBAAO;AAAA,UACT;AAAA,QACF;AAEA,eAAO,CAAC,UAAU,UAAU;AAAA,MAC9B,CAAC,EACA,OAAO,OAAO;AAAA,IACnB,CAAC;AAQD,UAAM,cAAc,OAAO,YAAY,oBAAoB;AAE3D,UAAM,OAAO;AAAA;AAAA,MAEX,GAAI,KAAK,MAAM;AAAA,MACf,GAAG;AAAA,IACL;AAGA,SAAK,MAAM,SAAS;AAEpB,WAAO;AAAA,EAKT;AAAA,EAEA,QAAwC;AAhO1C;AAiOI,QAAI,CAAC,KAAK,MAAM,QAAQ;AACtB,aAAO,CAAC;AAAA,IACV;AAEA,UAAM,MAAM,CAAC;AACb,UAAM,eAIA,CAAC;AAEP,eAAW,aAAa,KAAK,MAAM,QAAQ;AACzC,YAAM,YAAY,UAAU,MAAM,GAAG;AACrC,YAAM,aAAa,UAAU,MAAM,GAAG,UAAU,SAAS,CAAC,EAAE,KAAK,GAAG;AAEpE,YAAM,cAAc,KAAK,MAAM,OAAO,SAAS;AAC/C,YAAM,kBAAkB,MAAM,QAAQ,WAAW,KAC5C,MAAM;AACL,cAAM,QAAQ,YAAY,KAAK,CAAC,MAAM,WAAW,WAAW,EAAE,MAAO,CAAC;AACtE,YAAI,CAAC,OAAO;AACV,iBAAO;AAAA,QACT;AACA,eAAO;AAAA,MACT,GAAG,IACH;AAEJ,UAAI,CAAC,iBAAiB;AAEpB;AAAA,MACF;AAEA,UAAI,WAAW,iBAAiB;AAC9B,YAAI,SAAS,IAAI,gBAAgB;AAAA,MACnC,WAAW,UAAU,iBAAiB;AACpC,qBAAa,KAAK,EAAE,YAAY,WAAW,MAAM,gBAAgB,CAAC;AAAA,MACpE,OAAO;AACL,cAAM;AAAA,UACJ,SAAS;AAAA,UACT,UAAU;AAAA,UACV,GAAG;AAAA,QACL,IAAI;AAEJ,YAAI,CAAC,KAAK,MAAM,UAAU;AACxB,gBAAM,IAAI;AAAA,YACR,wDAAwD,SAAS;AAAA,UACnE;AAAA,QACF;AAEA,YAAI,UAAU,KAAK,MAAM,SAAS,WAAW;AAC7C,YAAI,CAAC,SAAS;AACZ,gBAAM,kBAAkB,GAAG,UAAU,IAAI,WAAW;AACpD,oBAAU,KAAK,MAAM,SAAS,eAAe;AAAA,QAE/C;AAEA,YAAI,CAAC,SAAS;AACZ,gBAAM,IAAI,MAAM,wBAAwB,SAAS,KAAK,WAAW,EAAE;AAAA,QACrE;AAEA,cAAM,YAAW,UAAK,MAAM,cAAX,mBAAuB;AACxC,YAAI,CAAC,UAAU;AACb,gBAAM,IAAI,MAAM,yBAAyB,SAAS,KAAK,YAAY,EAAE;AAAA,QACvE;AAEA,YAAI,SAAS,IAAI,YAAY,SAAS,UAAU,SAAS,SAAS;AAAA,MACpE;AAAA,IACF;AAEA,eAAW,EAAE,MAAM,WAAW,WAAW,KAAK,cAAc;AAC1D,YAAM,SAAS,IAAI,UAAU;AAE7B,UAAI,CAAC,QAAQ;AAEX;AAAA,MACF;AAEA,YAAM,EAAE,MAAM,UAAU,GAAG,QAAQ,IAAI;AACvC,UAAI,gBAAe,UAAK,MAAM,UAAX,mBAAmB;AAEtC,UAAI,CAAC,cAAc;AACjB,cAAM,IAAI,MAAM,WAAW,YAAY,EAAE;AAAA,MAC3C;AAEA,YAAM,cAAc,KAAK,MAAM,OAAO,UAAU;AAChD,UAAI,eAAe,kBAAkB,aAAa;AAChD,cAAM,EAAE,MAAAA,OAAM,GAAG,UAAU,IAAI,YAAY;AAC3C,YAAIA,OAAM;AACR,0BAAe,UAAK,MAAM,UAAX,mBAAmBA;AAAA,QACpC;AACA,eAAO,OAAO,SAAS,SAAS;AAAA,MAClC;AAEA,UAAI,SAAS,IAAI;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AACF;AAEO,SAAS,qBAAqB;AACnC,SAAO,IAAI,aAAa,CAAC,CAAC;AAC5B;",
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.61.2",
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.61.2"
30
+ "@tamagui/create-theme": "1.62.0"
31
31
  },
32
32
  "devDependencies": {
33
- "@tamagui/build": "1.61.2"
33
+ "@tamagui/build": "1.62.0"
34
34
  },
35
35
  "publishConfig": {
36
36
  "access": "public"