@hanzogui/theme-builder 3.0.6 → 4.4.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.
Files changed (69) hide show
  1. package/dist/cjs/ThemeBuilder.cjs +132 -68
  2. package/dist/cjs/ThemeBuilder.native.js +208 -132
  3. package/dist/cjs/ThemeBuilder.native.js.map +1 -1
  4. package/dist/cjs/createStudioThemes.cjs +19 -17
  5. package/dist/cjs/createStudioThemes.native.js +19 -17
  6. package/dist/cjs/createStudioThemes.native.js.map +1 -1
  7. package/dist/cjs/createThemes.cjs +173 -123
  8. package/dist/cjs/createThemes.native.js +287 -248
  9. package/dist/cjs/createThemes.native.js.map +1 -1
  10. package/dist/cjs/defaultComponentThemes.cjs +12 -10
  11. package/dist/cjs/defaultComponentThemes.native.js +12 -10
  12. package/dist/cjs/defaultComponentThemes.native.js.map +1 -1
  13. package/dist/cjs/defaultTemplates.cjs +137 -132
  14. package/dist/cjs/defaultTemplates.native.js +144 -142
  15. package/dist/cjs/defaultTemplates.native.js.map +1 -1
  16. package/dist/cjs/defaultTemplatesStronger.cjs +135 -130
  17. package/dist/cjs/defaultTemplatesStronger.native.js +142 -140
  18. package/dist/cjs/defaultTemplatesStronger.native.js.map +1 -1
  19. package/dist/cjs/defaultTemplatesStrongest.cjs +135 -130
  20. package/dist/cjs/defaultTemplatesStrongest.native.js +142 -140
  21. package/dist/cjs/defaultTemplatesStrongest.native.js.map +1 -1
  22. package/dist/cjs/getThemeSuitePalettes.cjs +61 -50
  23. package/dist/cjs/getThemeSuitePalettes.native.js +79 -55
  24. package/dist/cjs/getThemeSuitePalettes.native.js.map +1 -1
  25. package/dist/cjs/helpers.cjs +12 -10
  26. package/dist/cjs/helpers.native.js +12 -10
  27. package/dist/cjs/helpers.native.js.map +1 -1
  28. package/dist/cjs/index.cjs +19 -17
  29. package/dist/cjs/index.native.js +19 -17
  30. package/dist/cjs/index.native.js.map +1 -1
  31. package/dist/cjs/masks.cjs +29 -26
  32. package/dist/cjs/masks.native.js +98 -96
  33. package/dist/cjs/masks.native.js.map +1 -1
  34. package/dist/cjs/types.cjs +7 -5
  35. package/dist/cjs/types.native.js +7 -5
  36. package/dist/cjs/types.native.js.map +1 -1
  37. package/dist/esm/ThemeBuilder.mjs +120 -58
  38. package/dist/esm/ThemeBuilder.mjs.map +1 -1
  39. package/dist/esm/ThemeBuilder.native.js +196 -122
  40. package/dist/esm/ThemeBuilder.native.js.map +1 -1
  41. package/dist/esm/createStudioThemes.mjs +2 -2
  42. package/dist/esm/createStudioThemes.mjs.map +1 -1
  43. package/dist/esm/createStudioThemes.native.js +2 -2
  44. package/dist/esm/createStudioThemes.native.js.map +1 -1
  45. package/dist/esm/createThemes.mjs +156 -108
  46. package/dist/esm/createThemes.mjs.map +1 -1
  47. package/dist/esm/createThemes.native.js +270 -233
  48. package/dist/esm/createThemes.native.js.map +1 -1
  49. package/dist/esm/defaultTemplates.mjs +125 -122
  50. package/dist/esm/defaultTemplates.mjs.map +1 -1
  51. package/dist/esm/defaultTemplates.native.js +130 -130
  52. package/dist/esm/defaultTemplates.native.js.map +1 -1
  53. package/dist/esm/defaultTemplatesStronger.mjs +123 -120
  54. package/dist/esm/defaultTemplatesStronger.mjs.map +1 -1
  55. package/dist/esm/defaultTemplatesStronger.native.js +128 -128
  56. package/dist/esm/defaultTemplatesStronger.native.js.map +1 -1
  57. package/dist/esm/defaultTemplatesStrongest.mjs +123 -120
  58. package/dist/esm/defaultTemplatesStrongest.mjs.map +1 -1
  59. package/dist/esm/defaultTemplatesStrongest.native.js +128 -128
  60. package/dist/esm/defaultTemplatesStrongest.native.js.map +1 -1
  61. package/dist/esm/getThemeSuitePalettes.mjs +49 -40
  62. package/dist/esm/getThemeSuitePalettes.mjs.map +1 -1
  63. package/dist/esm/getThemeSuitePalettes.native.js +66 -44
  64. package/dist/esm/getThemeSuitePalettes.native.js.map +1 -1
  65. package/dist/esm/masks.mjs +17 -16
  66. package/dist/esm/masks.mjs.map +1 -1
  67. package/dist/esm/masks.native.js +18 -18
  68. package/dist/esm/masks.native.js.map +1 -1
  69. package/package.json +4 -4
@@ -3,115 +3,170 @@ class ThemeBuilder {
3
3
  constructor(state) {
4
4
  this.state = state;
5
5
  }
6
+ state;
6
7
  _getThemeFn;
7
8
  addPalettes(palettes) {
8
- return this.state.palettes = {
9
+ this.state.palettes = {
9
10
  // as {} prevents generic string key merge messing up types
10
11
  ...this.state.palettes,
11
12
  ...palettes
12
- }, this;
13
+ };
14
+ return this;
13
15
  }
14
16
  addTemplates(templates) {
15
- return this.state.templates = {
17
+ this.state.templates = {
16
18
  // as {} prevents generic string key merge messing up types
17
19
  ...this.state.templates,
18
20
  ...templates
19
- }, this;
21
+ };
22
+ return this;
20
23
  }
21
24
  addMasks(masks) {
22
- return this.state.masks = {
25
+ this.state.masks = {
23
26
  // as {} prevents generic string key merge messing up types
24
27
  ...this.state.masks,
25
28
  ...objectFromEntries(objectEntries(masks).map(([key, val]) => [key, createMask(val)]))
26
- }, this;
29
+ };
30
+ return this;
27
31
  }
28
32
  // for dev mode only really
29
33
  _addedThemes = [];
30
34
  addThemes(themes) {
31
- return this._addedThemes.push({
35
+ this._addedThemes.push({
32
36
  type: "themes",
33
37
  args: [themes]
34
- }), this.state.themes = {
38
+ });
39
+ this.state.themes = {
35
40
  // as {} prevents generic string key merge messing up types
36
41
  ...this.state.themes,
37
42
  ...themes
38
- }, this;
43
+ };
44
+ return this;
39
45
  }
40
46
  // these wont be typed to save some complexity and because they don't need to be typed!
41
47
  addComponentThemes(childThemeDefinition, options) {
42
- return this.addChildThemes(childThemeDefinition, options), this;
48
+ void this.addChildThemes(childThemeDefinition, options);
49
+ return this;
43
50
  }
44
51
  addChildThemes(childThemeDefinition, options) {
45
52
  const currentThemes = this.state.themes;
46
- if (!currentThemes) throw new Error("No themes defined yet, use addThemes first to set your base themes");
53
+ if (!currentThemes) {
54
+ throw new Error(`No themes defined yet, use addThemes first to set your base themes`);
55
+ }
47
56
  this._addedThemes.push({
48
57
  type: "childThemes",
49
58
  args: [childThemeDefinition, options]
50
59
  });
51
- const currentThemeNames = Object.keys(currentThemes),
52
- incomingThemeNames = Object.keys(childThemeDefinition),
53
- namesWithDefinitions = currentThemeNames.flatMap(prefix => {
54
- const avoidNestingWithin = options?.avoidNestingWithin;
55
- return avoidNestingWithin && avoidNestingWithin.some(avoidName => prefix.startsWith(avoidName) || prefix.endsWith(avoidName)) ? [] : incomingThemeNames.map(subName => {
56
- const fullName = `${prefix}_${subName}`,
57
- definition = childThemeDefinition[subName];
58
- return "avoidNestingWithin" in definition && definition.avoidNestingWithin.some(name => (name === "light" || name === "dark") && prefix.includes("_") ? !1 : prefix.startsWith(name) || prefix.endsWith(name)) || prefix.endsWith(`_${subName}`) || fullName in currentThemes ? null : [fullName, definition];
59
- }).filter(Boolean);
60
- }),
61
- childThemes = Object.fromEntries(namesWithDefinitions),
62
- next = {
63
- // as {} prevents generic string key merge messing up types
64
- ...this.state.themes,
65
- ...childThemes
66
- };
67
- return this.state.themes = next, this;
60
+ const currentThemeNames = Object.keys(currentThemes);
61
+ const incomingThemeNames = Object.keys(childThemeDefinition);
62
+ const namesWithDefinitions = currentThemeNames.flatMap(prefix => {
63
+ const avoidNestingWithin = options?.avoidNestingWithin;
64
+ if (avoidNestingWithin) {
65
+ if (avoidNestingWithin.some(avoidName => prefix.startsWith(avoidName) || prefix.endsWith(avoidName))) {
66
+ return [];
67
+ }
68
+ }
69
+ return incomingThemeNames.map(subName => {
70
+ const fullName = `${prefix}_${subName}`;
71
+ const definition = childThemeDefinition[subName];
72
+ if ("avoidNestingWithin" in definition) {
73
+ const avoidNest = definition.avoidNestingWithin;
74
+ if (avoidNest.some(name => {
75
+ if ((name === "light" || name === "dark") && prefix.includes("_")) {
76
+ return false;
77
+ }
78
+ return prefix.startsWith(name) || prefix.endsWith(name);
79
+ })) {
80
+ return null;
81
+ }
82
+ }
83
+ if (prefix.endsWith(`_${subName}`)) {
84
+ return null;
85
+ }
86
+ if (fullName in currentThemes) {
87
+ return null;
88
+ }
89
+ return [fullName, definition];
90
+ }).filter(Boolean);
91
+ });
92
+ const childThemes = Object.fromEntries(namesWithDefinitions);
93
+ const next = {
94
+ // as {} prevents generic string key merge messing up types
95
+ ...this.state.themes,
96
+ ...childThemes
97
+ };
98
+ this.state.themes = next;
99
+ return this;
68
100
  }
69
101
  getTheme(fn) {
70
- return this._getThemeFn = fn, this;
102
+ this._getThemeFn = fn;
103
+ return this;
71
104
  }
72
105
  build() {
73
- if (!this.state.themes) return {};
74
- const out = {},
75
- maskedThemes = [];
106
+ if (!this.state.themes) {
107
+ return {};
108
+ }
109
+ const out = {};
110
+ const maskedThemes = [];
76
111
  for (const themeName in this.state.themes) {
77
- const nameParts = themeName.split("_"),
78
- parentName = nameParts.slice(0, nameParts.length - 1).join("_"),
79
- definitions = this.state.themes[themeName],
80
- themeDefinition = Array.isArray(definitions) ? (() => {
81
- const found = definitions.find(
82
- // endWith match stronger than startsWith
83
- d => d.parent ? parentName.endsWith(d.parent) || parentName.startsWith(d.parent) : !0);
84
- return found || null;
85
- })() : definitions;
86
- if (themeDefinition) if ("theme" in themeDefinition) out[themeName] = themeDefinition.theme;else if ("mask" in themeDefinition) maskedThemes.push({
87
- parentName,
88
- themeName,
89
- mask: themeDefinition
90
- });else {
112
+ const nameParts = themeName.split("_");
113
+ const parentName = nameParts.slice(0, nameParts.length - 1).join("_");
114
+ const definitions = this.state.themes[themeName];
115
+ const themeDefinition = Array.isArray(definitions) ? (() => {
116
+ const found = definitions.find(
117
+ // endWith match stronger than startsWith
118
+ d => d.parent ? parentName.endsWith(d.parent) || parentName.startsWith(d.parent) : true);
119
+ if (!found) {
120
+ return null;
121
+ }
122
+ return found;
123
+ })() : definitions;
124
+ if (!themeDefinition) {
125
+ continue;
126
+ }
127
+ if ("theme" in themeDefinition) {
128
+ out[themeName] = themeDefinition.theme;
129
+ } else if ("mask" in themeDefinition) {
130
+ maskedThemes.push({
131
+ parentName,
132
+ themeName,
133
+ mask: themeDefinition
134
+ });
135
+ } else {
91
136
  let {
92
137
  palette: paletteName = "",
93
138
  template: templateName,
94
139
  ...options
95
140
  } = themeDefinition;
96
141
  const parentDefinition = this.state.themes[parentName];
97
- if (!this.state.palettes) throw new Error(`No palettes defined for theme with palette expected: ${themeName}`);
98
- let palette = this.state.palettes[paletteName || ""],
99
- attemptParentName = `${parentName}_${paletteName}`;
100
- for (; !palette && attemptParentName;) attemptParentName in this.state.palettes ? (palette = this.state.palettes[attemptParentName], paletteName = attemptParentName) : attemptParentName = attemptParentName.split("_").slice(0, -1).join("_");
142
+ if (!this.state.palettes) {
143
+ throw new Error(`No palettes defined for theme with palette expected: ${themeName}`);
144
+ }
145
+ let palette = this.state.palettes[paletteName || ""];
146
+ let attemptParentName = `${parentName}_${paletteName}`;
147
+ while (!palette && attemptParentName) {
148
+ if (attemptParentName in this.state.palettes) {
149
+ palette = this.state.palettes[attemptParentName];
150
+ paletteName = attemptParentName;
151
+ } else {
152
+ attemptParentName = attemptParentName.split("_").slice(0, -1).join("_");
153
+ }
154
+ }
101
155
  if (!palette) {
102
156
  const msg = process.env.NODE_ENV !== "production" ? `: ${themeName}: ${paletteName}
103
157
  Definition: ${JSON.stringify(themeDefinition)}
104
158
  Parent: ${JSON.stringify(parentDefinition)}
105
- Potential: (${Object.keys(this.state.palettes).join(", ")})` : "";
159
+ Potential: (${Object.keys(this.state.palettes).join(", ")})` : ``;
106
160
  throw new Error(`No palette for theme${msg}`);
107
161
  }
108
162
  const template = this.state.templates?.[templateName] ??
109
163
  // fall back to finding the scheme specific on if it exists
110
164
  this.state.templates?.[`${nameParts[0]}_${templateName}`];
111
- if (!template) throw new Error(`No template for theme ${themeName}: ${templateName} in templates:
112
- - ${Object.keys(this.state.templates || {}).join(`
113
- - `)}`);
114
- const theme = createThemeWithPalettes(this.state.palettes, paletteName, template, options, themeName, !0);
165
+ if (!template) {
166
+ throw new Error(`No template for theme ${themeName}: ${templateName} in templates:
167
+ - ${Object.keys(this.state.templates || {}).join("\n - ")}`);
168
+ }
169
+ const theme = createThemeWithPalettes(this.state.palettes, paletteName, template, options, themeName, true);
115
170
  out[themeName] = this._getThemeFn ? {
116
171
  ...theme,
117
172
  ...this._getThemeFn({
@@ -133,20 +188,27 @@ class ThemeBuilder {
133
188
  parentName
134
189
  } of maskedThemes) {
135
190
  const parent = out[parentName];
136
- if (!parent) continue;
191
+ if (!parent) {
192
+ continue;
193
+ }
137
194
  const {
138
195
  mask: maskName,
139
196
  ...options
140
197
  } = mask;
141
198
  let maskFunction = this.state.masks?.[maskName];
142
- if (!maskFunction) throw new Error(`No mask ${maskName}`);
199
+ if (!maskFunction) {
200
+ throw new Error(`No mask ${maskName}`);
201
+ }
143
202
  const parentTheme = this.state.themes[parentName];
144
203
  if (parentTheme && "childOptions" in parentTheme) {
145
204
  const {
146
205
  mask: mask2,
147
206
  ...childOpts
148
207
  } = parentTheme.childOptions;
149
- mask2 && (maskFunction = this.state.masks?.[mask2]), Object.assign(options, childOpts);
208
+ if (mask2) {
209
+ maskFunction = this.state.masks?.[mask2];
210
+ }
211
+ Object.assign(options, childOpts);
150
212
  }
151
213
  out[themeName] = applyMask(parent, maskFunction, options, parentName, themeName);
152
214
  }
@@ -1 +1 @@
1
- {"version":3,"names":["applyMask","createMask","createThemeWithPalettes","objectEntries","objectFromEntries","ThemeBuilder","constructor","state","_getThemeFn","addPalettes","palettes","addTemplates","templates","addMasks","masks","map","key","val","_addedThemes","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","name","includes","filter","Boolean","childThemes","fromEntries","next","getTheme","fn","build","out","maskedThemes","themeName","nameParts","split","parentName","slice","length","join","definitions","themeDefinition","Array","isArray","found","find","d","parent","theme","mask","palette","paletteName","template","templateName","parentDefinition","attemptParentName","msg","process","env","NODE_ENV","JSON","stringify","level","scheme","test","parentNames","maskName","maskFunction","parentTheme","mask2","childOpts","childOptions","assign","createThemeBuilder"],"sources":["../../src/ThemeBuilder.ts"],"sourcesContent":[null],"mappings":"AAQA,SACEA,SAAA,EACAC,UAAA,EACAC,uBAAA,EACAC,aAAA,EACAC,iBAAA,QACK;AAwFA,MAAMC,YAAA,CAGX;EAGAC,YAAmBC,KAAA,EAAc;IAAd,KAAAA,KAAA,GAAAA,KAAA;EAAe;EAF1BC,WAAA;EAIRC,YAAgDC,QAAA,EAAa;IAC3D,YAAKH,KAAA,CAAMG,QAAA,GAAW;MAAA;MAEpB,GAAI,KAAKH,KAAA,CAAMG,QAAA;MACf,GAAGA;IACL,GACO;EAMT;EAEAC,aAAkDC,SAAA,EAAc;IAC9D,YAAKL,KAAA,CAAMK,SAAA,GAAY;MAAA;MAErB,GAAI,KAAKL,KAAA,CAAMK,SAAA;MACf,GAAGA;IACL,GACO;EAMT;EAEAC,SAA0CC,KAAA,EAAU;IAClD,YAAKP,KAAA,CAAMO,KAAA,GAAQ;MAAA;MAEjB,GAAI,KAAKP,KAAA,CAAMO,KAAA;MACf,GAAIV,iBAAA,CACFD,aAAA,CAAcW,KAAK,EAAEC,GAAA,CAAI,CAAC,CAACC,GAAA,EAAKC,GAAG,MAAM,CAACD,GAAA,EAAKf,UAAA,CAAWgB,GAAG,CAAC,CAAC,CACjE;IACF,GACO;EAMT;EAAA;EAGAC,YAAA,GAAgE,EAAC;EAEjEC,UACEC,MAAA,EACA;IACA,YAAKF,YAAA,CAAaG,IAAA,CAAK;MAAEC,IAAA,EAAM;MAAUC,IAAA,EAAM,CAACH,MAAM;IAAE,CAAC,GAEzD,KAAKb,KAAA,CAAMa,MAAA,GAAS;MAAA;MAElB,GAAI,KAAKb,KAAA,CAAMa,MAAA;MACf,GAAGA;IACL,GAUO;EAUT;EAAA;EAGAI,mBAGEC,oBAAA,EACAC,OAAA,EAGA;IACA,OAAK,KAAKC,cAAA,CAAeF,oBAAA,EAAsBC,OAAO,GAC/C;EACT;EAEAC,eAIEF,oBAAA,EACAC,OAAA,EAGA;IACA,MAAME,aAAA,GAAgB,KAAKrB,KAAA,CAAMa,MAAA;IACjC,IAAI,CAACQ,aAAA,EACH,MAAM,IAAIC,KAAA,CACR,oEACF;IAGF,KAAKX,YAAA,CAAaG,IAAA,CAAK;MAAEC,IAAA,EAAM;MAAeC,IAAA,EAAM,CAACE,oBAAA,EAAsBC,OAAO;IAAE,CAAC;IAMrF,MAAMI,iBAAA,GAAoBC,MAAA,CAAOC,IAAA,CAAKJ,aAAa;MAC7CK,kBAAA,GAAqBF,MAAA,CAAOC,IAAA,CAAKP,oBAAoB;MAErDS,oBAAA,GAAuBJ,iBAAA,CAAkBK,OAAA,CAASC,MAAA,IAAW;QACjE,MAAMC,kBAAA,GAAqBX,OAAA,EAASW,kBAAA;QACpC,OAAIA,kBAAA,IAEAA,kBAAA,CAAmBC,IAAA,CAChBC,SAAA,IAAcH,MAAA,CAAOI,UAAA,CAAWD,SAAS,KAAKH,MAAA,CAAOK,QAAA,CAASF,SAAS,CAC1E,IAEO,EAAC,GAILN,kBAAA,CACJlB,GAAA,CAAK2B,OAAA,IAAY;UAChB,MAAMC,QAAA,GAAW,GAAGP,MAAM,IAAIM,OAAO;YAC/BE,UAAA,GAAanB,oBAAA,CAAqBiB,OAAO;UAyB/C,OAvBI,wBAAwBE,UAAA,IACRA,UAAA,CAAWP,kBAAA,CAEjBC,IAAA,CAAMO,IAAA,KAETA,IAAA,KAAS,WAAWA,IAAA,KAAS,WAAWT,MAAA,CAAOU,QAAA,CAAS,GAAG,IACvD,KAEFV,MAAA,CAAOI,UAAA,CAAWK,IAAI,KAAKT,MAAA,CAAOK,QAAA,CAASI,IAAI,CACvD,KAQDT,MAAA,CAAOK,QAAA,CAAS,IAAIC,OAAO,EAAE,KAM7BC,QAAA,IAAYf,aAAA,GACP,OAGF,CAACe,QAAA,EAAUC,UAAU;QAC9B,CAAC,EACAG,MAAA,CAAOC,OAAO;MACnB,CAAC;MAQKC,WAAA,GAAclB,MAAA,CAAOmB,WAAA,CAAYhB,oBAAoB;MAErDiB,IAAA,GAAO;QAAA;QAEX,GAAI,KAAK5C,KAAA,CAAMa,MAAA;QACf,GAAG6B;MACL;IAGA,YAAK1C,KAAA,CAAMa,MAAA,GAAS+B,IAAA,EAEb;EAMT;EAEAC,SACEC,EAAA,EAUA;IACA,YAAK7C,WAAA,GAAc6C,EAAA,EACZ;EACT;EAEAC,MAAA,EAAoD;IAClD,IAAI,CAAC,KAAK/C,KAAA,CAAMa,MAAA,EACd,OAAO,CAAC;IAGV,MAAMmC,GAAA,GAAM,CAAC;MACPC,YAAA,GAIA,EAAC;IAEP,WAAWC,SAAA,IAAa,KAAKlD,KAAA,CAAMa,MAAA,EAAQ;MACzC,MAAMsC,SAAA,GAAYD,SAAA,CAAUE,KAAA,CAAM,GAAG;QAC/BC,UAAA,GAAaF,SAAA,CAAUG,KAAA,CAAM,GAAGH,SAAA,CAAUI,MAAA,GAAS,CAAC,EAAEC,IAAA,CAAK,GAAG;QAE9DC,WAAA,GAAc,KAAKzD,KAAA,CAAMa,MAAA,CAAOqC,SAAS;QACzCQ,eAAA,GAAkBC,KAAA,CAAMC,OAAA,CAAQH,WAAW,KAC5C,MAAM;UACL,MAAMI,KAAA,GAAQJ,WAAA,CAAYK,IAAA;UAAA;UAEvBC,CAAA,IACCA,CAAA,CAAEC,MAAA,GACEX,UAAA,CAAWnB,QAAA,CAAS6B,CAAA,CAAEC,MAAO,KAAKX,UAAA,CAAWpB,UAAA,CAAW8B,CAAA,CAAEC,MAAO,IACjE,EACR;UACA,OAAKH,KAAA,IACI;QAGX,GAAG,IACHJ,WAAA;MAEJ,IAAKC,eAAA,EAKL,IAAI,WAAWA,eAAA,EACbV,GAAA,CAAIE,SAAS,IAAIQ,eAAA,CAAgBO,KAAA,UACxB,UAAUP,eAAA,EACnBT,YAAA,CAAanC,IAAA,CAAK;QAAEuC,UAAA;QAAYH,SAAA;QAAWgB,IAAA,EAAMR;MAAgB,CAAC,OAC7D;QACL,IAAI;UACFS,OAAA,EAASC,WAAA,GAAc;UACvBC,QAAA,EAAUC,YAAA;UACV,GAAGnD;QACL,IAAIuC,eAAA;QAEJ,MAAMa,gBAAA,GAAmB,KAAKvE,KAAA,CAAMa,MAAA,CAAOwC,UAAU;QAErD,IAAI,CAAC,KAAKrD,KAAA,CAAMG,QAAA,EACd,MAAM,IAAImB,KAAA,CACR,wDAAwD4B,SAAS,EACnE;QAGF,IAAIiB,OAAA,GAAU,KAAKnE,KAAA,CAAMG,QAAA,CAASiE,WAAA,IAAe,EAAE;UAC/CI,iBAAA,GAAoB,GAAGnB,UAAU,IAAIe,WAAW;QAEpD,OAAO,CAACD,OAAA,IAAWK,iBAAA,GACbA,iBAAA,IAAqB,KAAKxE,KAAA,CAAMG,QAAA,IAClCgE,OAAA,GAAU,KAAKnE,KAAA,CAAMG,QAAA,CAASqE,iBAAiB,GAC/CJ,WAAA,GAAcI,iBAAA,IAEdA,iBAAA,GAAoBA,iBAAA,CAAkBpB,KAAA,CAAM,GAAG,EAAEE,KAAA,CAAM,GAAG,EAAE,EAAEE,IAAA,CAAK,GAAG;QAI1E,IAAI,CAACW,OAAA,EAAS;UACZ,MAAMM,GAAA,GACJC,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,eACrB,KAAK1B,SAAS,KAAKkB,WAAW;AAAA,wBACtBS,IAAA,CAAKC,SAAA,CAAUpB,eAAe,CAAC;AAAA,oBACnCmB,IAAA,CAAKC,SAAA,CAAUP,gBAAgB,CAAC;AAAA,wBAC5B/C,MAAA,CAAOC,IAAA,CAAK,KAAKzB,KAAA,CAAMG,QAAQ,EAAEqD,IAAA,CAAK,IAAI,CAAC,MACnD;UACN,MAAM,IAAIlC,KAAA,CAAM,uBAAuBmD,GAAG,EAAE;QAC9C;QAEA,MAAMJ,QAAA,GACJ,KAAKrE,KAAA,CAAMK,SAAA,GAAYiE,YAAY;QAAA;QAEnC,KAAKtE,KAAA,CAAMK,SAAA,GAAY,GAAG8C,SAAA,CAAU,CAAC,CAAC,IAAImB,YAAY,EAAE;QAE1D,IAAI,CAACD,QAAA,EACH,MAAM,IAAI/C,KAAA,CACR,yBAAyB4B,SAAS,KAAKoB,YAAY;AAAA,IAAqB9C,MAAA,CAAOC,IAAA,CAAK,KAAKzB,KAAA,CAAMK,SAAA,IAAa,CAAC,CAAC,EAAEmD,IAAA,CAAK;AAAA,IAAO,CAAC,EAC/H;QAGF,MAAMS,KAAA,GAAQtE,uBAAA,CACZ,KAAKK,KAAA,CAAMG,QAAA,EACXiE,WAAA,EACAC,QAAA,EACAlD,OAAA,EACA+B,SAAA,EACA,EACF;QAEAF,GAAA,CAAIE,SAAS,IAAI,KAAKjD,WAAA,GAClB;UACE,GAAGgE,KAAA;UACH,GAAG,KAAKhE,WAAA,CAAY;YAClBgE,KAAA;YACA3B,IAAA,EAAMY,SAAA;YACN6B,KAAA,EAAO5B,SAAA,CAAUI,MAAA;YACjBF,UAAA;YACA2B,MAAA,EAAQ,iBAAiBC,IAAA,CAAK9B,SAAA,CAAU,CAAC,CAAC,IACrCA,SAAA,CAAU,CAAC,IACZ;YACJ+B,WAAA,EAAa/B,SAAA,CAAUG,KAAA,CAAM,GAAG,EAAE;YAClCa,OAAA;YACAE;UACF,CAAC;QACH,IACAJ,KAAA;MACN;IACF;IAEA,WAAW;MAAEC,IAAA;MAAMhB,SAAA;MAAWG;IAAW,KAAKJ,YAAA,EAAc;MAC1D,MAAMe,MAAA,GAAShB,GAAA,CAAIK,UAAU;MAE7B,IAAI,CAACW,MAAA,EAEH;MAGF,MAAM;QAAEE,IAAA,EAAMiB,QAAA;QAAU,GAAGhE;MAAQ,IAAI+C,IAAA;MACvC,IAAIkB,YAAA,GAAe,KAAKpF,KAAA,CAAMO,KAAA,GAAQ4E,QAAQ;MAE9C,IAAI,CAACC,YAAA,EACH,MAAM,IAAI9D,KAAA,CAAM,WAAW6D,QAAQ,EAAE;MAGvC,MAAME,WAAA,GAAc,KAAKrF,KAAA,CAAMa,MAAA,CAAOwC,UAAU;MAEhD,IAAIgC,WAAA,IAAe,kBAAkBA,WAAA,EAAa;QAChD,MAAM;UAAEnB,IAAA,EAAAoB,KAAA;UAAM,GAAGC;QAAU,IAAIF,WAAA,CAAYG,YAAA;QACvCF,KAAA,KACFF,YAAA,GAAe,KAAKpF,KAAA,CAAMO,KAAA,GAAQ+E,KAAI,IAExC9D,MAAA,CAAOiE,MAAA,CAAOtE,OAAA,EAASoE,SAAS;MAClC;MAEAvC,GAAA,CAAIE,SAAS,IAAIzD,SAAA,CACfuE,MAAA,EACAoB,YAAA,EACAjE,OAAA,EACAkC,UAAA,EACAH,SACF;IACF;IAEA,OAAOF,GAAA;EACT;AACF;AAEO,SAAS0C,mBAAA,EAAqB;EACnC,OAAO,IAAI5F,YAAA,CAAa,CAAC,CAAC;AAC5B","ignoreList":[]}
1
+ {"version":3,"names":["applyMask","createMask","createThemeWithPalettes","objectEntries","objectFromEntries","ThemeBuilder","constructor","state","_getThemeFn","addPalettes","palettes","addTemplates","templates","addMasks","masks","map","key","val","_addedThemes","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","includes","filter","Boolean","childThemes","fromEntries","next","getTheme","fn","build","out","maskedThemes","themeName","nameParts","split","parentName","slice","length","join","definitions","themeDefinition","Array","isArray","found","find","d","parent","theme","mask","palette","paletteName","template","templateName","parentDefinition","attemptParentName","msg","process","env","NODE_ENV","JSON","stringify","level","scheme","test","parentNames","maskName","maskFunction","parentTheme","mask2","childOpts","childOptions","assign","createThemeBuilder"],"sources":["../../src/ThemeBuilder.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}