@hanzogui/theme-builder 8.3.1 → 8.3.3

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 (159) hide show
  1. package/dist/cjs/ThemeBuilder.js +262 -0
  2. package/dist/cjs/ThemeBuilder.js.map +1 -0
  3. package/dist/cjs/createStudioThemes.js +26 -0
  4. package/dist/cjs/createStudioThemes.js.map +1 -0
  5. package/dist/cjs/createThemes.js +402 -0
  6. package/dist/cjs/createThemes.js.map +1 -0
  7. package/dist/cjs/defaultComponentThemes.js +28 -0
  8. package/dist/cjs/defaultComponentThemes.js.map +1 -0
  9. package/dist/cjs/defaultTemplates.js +136 -0
  10. package/dist/cjs/defaultTemplates.js.map +1 -0
  11. package/dist/cjs/defaultTemplatesStronger.js +131 -0
  12. package/dist/cjs/defaultTemplatesStronger.js.map +1 -0
  13. package/dist/cjs/defaultTemplatesStrongest.js +131 -0
  14. package/dist/cjs/defaultTemplatesStrongest.js.map +1 -0
  15. package/dist/cjs/getThemeSuitePalettes.js +80 -0
  16. package/dist/cjs/getThemeSuitePalettes.js.map +1 -0
  17. package/dist/cjs/helpers.js +14 -0
  18. package/dist/cjs/helpers.js.map +1 -0
  19. package/dist/cjs/index.js +25 -0
  20. package/dist/cjs/index.js.map +1 -0
  21. package/dist/cjs/masks.js +73 -0
  22. package/dist/cjs/masks.js.map +1 -0
  23. package/dist/cjs/package.json +1 -0
  24. package/dist/cjs/types.js +3 -0
  25. package/dist/cjs/types.js.map +1 -0
  26. package/dist/esm/ThemeBuilder.js +257 -0
  27. package/dist/esm/ThemeBuilder.js.map +1 -0
  28. package/dist/esm/createStudioThemes.js +23 -0
  29. package/dist/esm/createStudioThemes.js.map +1 -0
  30. package/dist/esm/createThemes.js +392 -0
  31. package/dist/esm/createThemes.js.map +1 -0
  32. package/dist/esm/defaultComponentThemes.js +25 -0
  33. package/dist/esm/defaultComponentThemes.js.map +1 -0
  34. package/dist/esm/defaultTemplates.js +133 -0
  35. package/dist/esm/defaultTemplates.js.map +1 -0
  36. package/dist/esm/defaultTemplatesStronger.js +128 -0
  37. package/dist/esm/defaultTemplatesStronger.js.map +1 -0
  38. package/dist/esm/defaultTemplatesStrongest.js +128 -0
  39. package/dist/esm/defaultTemplatesStrongest.js.map +1 -0
  40. package/dist/esm/getThemeSuitePalettes.js +76 -0
  41. package/dist/esm/getThemeSuitePalettes.js.map +1 -0
  42. package/dist/esm/helpers.js +8 -0
  43. package/dist/esm/helpers.js.map +1 -0
  44. package/dist/esm/index.js +11 -10
  45. package/dist/esm/index.js.map +1 -1
  46. package/dist/esm/masks.js +70 -0
  47. package/dist/esm/masks.js.map +1 -0
  48. package/dist/esm/types.js +2 -0
  49. package/dist/esm/types.js.map +1 -0
  50. package/package.json +20 -15
  51. package/src/ThemeBuilder.ts +1 -1
  52. package/src/createStudioThemes.ts +6 -6
  53. package/src/createThemes.ts +24 -17
  54. package/src/defaultComponentThemes.ts +1 -1
  55. package/src/defaultTemplates.ts +2 -2
  56. package/src/defaultTemplatesStronger.ts +2 -2
  57. package/src/defaultTemplatesStrongest.ts +2 -2
  58. package/src/getThemeSuitePalettes.ts +1 -1
  59. package/src/helpers.ts +10 -3
  60. package/src/index.ts +11 -8
  61. package/types/ThemeBuilder.d.ts +1 -1
  62. package/types/ThemeBuilder.d.ts.map +1 -1
  63. package/types/createStudioThemes.d.ts +3 -3
  64. package/types/createStudioThemes.d.ts.map +1 -1
  65. package/types/createThemes.d.ts +5 -5
  66. package/types/createThemes.d.ts.map +1 -1
  67. package/types/defaultComponentThemes.d.ts.map +1 -1
  68. package/types/defaultTemplates.d.ts +2 -2
  69. package/types/defaultTemplatesStronger.d.ts +2 -2
  70. package/types/defaultTemplatesStrongest.d.ts +2 -2
  71. package/types/getThemeSuitePalettes.d.ts +1 -1
  72. package/types/getThemeSuitePalettes.d.ts.map +1 -1
  73. package/types/helpers.d.ts.map +1 -1
  74. package/types/index.d.ts +8 -8
  75. package/types/index.d.ts.map +1 -1
  76. package/dist/cjs/ThemeBuilder.cjs +0 -248
  77. package/dist/cjs/ThemeBuilder.native.js +0 -338
  78. package/dist/cjs/ThemeBuilder.native.js.map +0 -1
  79. package/dist/cjs/createStudioThemes.cjs +0 -42
  80. package/dist/cjs/createStudioThemes.native.js +0 -45
  81. package/dist/cjs/createStudioThemes.native.js.map +0 -1
  82. package/dist/cjs/createThemes.cjs +0 -395
  83. package/dist/cjs/createThemes.native.js +0 -405
  84. package/dist/cjs/createThemes.native.js.map +0 -1
  85. package/dist/cjs/defaultComponentThemes.cjs +0 -86
  86. package/dist/cjs/defaultComponentThemes.native.js +0 -89
  87. package/dist/cjs/defaultComponentThemes.native.js.map +0 -1
  88. package/dist/cjs/defaultTemplates.cjs +0 -154
  89. package/dist/cjs/defaultTemplates.native.js +0 -162
  90. package/dist/cjs/defaultTemplates.native.js.map +0 -1
  91. package/dist/cjs/defaultTemplatesStronger.cjs +0 -152
  92. package/dist/cjs/defaultTemplatesStronger.native.js +0 -160
  93. package/dist/cjs/defaultTemplatesStronger.native.js.map +0 -1
  94. package/dist/cjs/defaultTemplatesStrongest.cjs +0 -152
  95. package/dist/cjs/defaultTemplatesStrongest.native.js +0 -160
  96. package/dist/cjs/defaultTemplatesStrongest.native.js.map +0 -1
  97. package/dist/cjs/getThemeSuitePalettes.cjs +0 -92
  98. package/dist/cjs/getThemeSuitePalettes.native.js +0 -117
  99. package/dist/cjs/getThemeSuitePalettes.native.js.map +0 -1
  100. package/dist/cjs/helpers.cjs +0 -36
  101. package/dist/cjs/helpers.native.js +0 -41
  102. package/dist/cjs/helpers.native.js.map +0 -1
  103. package/dist/cjs/index.cjs +0 -45
  104. package/dist/cjs/index.native.js +0 -48
  105. package/dist/cjs/index.native.js.map +0 -1
  106. package/dist/cjs/masks.cjs +0 -117
  107. package/dist/cjs/masks.native.js +0 -120
  108. package/dist/cjs/masks.native.js.map +0 -1
  109. package/dist/cjs/types.cjs +0 -18
  110. package/dist/cjs/types.native.js +0 -21
  111. package/dist/cjs/types.native.js.map +0 -1
  112. package/dist/esm/ThemeBuilder.mjs +0 -222
  113. package/dist/esm/ThemeBuilder.mjs.map +0 -1
  114. package/dist/esm/ThemeBuilder.native.js +0 -309
  115. package/dist/esm/ThemeBuilder.native.js.map +0 -1
  116. package/dist/esm/createStudioThemes.mjs +0 -17
  117. package/dist/esm/createStudioThemes.mjs.map +0 -1
  118. package/dist/esm/createStudioThemes.native.js +0 -17
  119. package/dist/esm/createStudioThemes.native.js.map +0 -1
  120. package/dist/esm/createThemes.mjs +0 -364
  121. package/dist/esm/createThemes.mjs.map +0 -1
  122. package/dist/esm/createThemes.native.js +0 -371
  123. package/dist/esm/createThemes.native.js.map +0 -1
  124. package/dist/esm/defaultComponentThemes.mjs +0 -61
  125. package/dist/esm/defaultComponentThemes.mjs.map +0 -1
  126. package/dist/esm/defaultComponentThemes.native.js +0 -61
  127. package/dist/esm/defaultComponentThemes.native.js.map +0 -1
  128. package/dist/esm/defaultTemplates.mjs +0 -129
  129. package/dist/esm/defaultTemplates.mjs.map +0 -1
  130. package/dist/esm/defaultTemplates.native.js +0 -134
  131. package/dist/esm/defaultTemplates.native.js.map +0 -1
  132. package/dist/esm/defaultTemplatesStronger.mjs +0 -127
  133. package/dist/esm/defaultTemplatesStronger.mjs.map +0 -1
  134. package/dist/esm/defaultTemplatesStronger.native.js +0 -132
  135. package/dist/esm/defaultTemplatesStronger.native.js.map +0 -1
  136. package/dist/esm/defaultTemplatesStrongest.mjs +0 -127
  137. package/dist/esm/defaultTemplatesStrongest.mjs.map +0 -1
  138. package/dist/esm/defaultTemplatesStrongest.native.js +0 -132
  139. package/dist/esm/defaultTemplatesStrongest.native.js.map +0 -1
  140. package/dist/esm/getThemeSuitePalettes.mjs +0 -66
  141. package/dist/esm/getThemeSuitePalettes.mjs.map +0 -1
  142. package/dist/esm/getThemeSuitePalettes.native.js +0 -88
  143. package/dist/esm/getThemeSuitePalettes.native.js.map +0 -1
  144. package/dist/esm/helpers.mjs +0 -9
  145. package/dist/esm/helpers.mjs.map +0 -1
  146. package/dist/esm/helpers.native.js +0 -11
  147. package/dist/esm/helpers.native.js.map +0 -1
  148. package/dist/esm/index.mjs +0 -10
  149. package/dist/esm/index.mjs.map +0 -1
  150. package/dist/esm/index.native.js +0 -10
  151. package/dist/esm/index.native.js.map +0 -1
  152. package/dist/esm/masks.mjs +0 -92
  153. package/dist/esm/masks.mjs.map +0 -1
  154. package/dist/esm/masks.native.js +0 -92
  155. package/dist/esm/masks.native.js.map +0 -1
  156. package/dist/esm/types.mjs +0 -2
  157. package/dist/esm/types.mjs.map +0 -1
  158. package/dist/esm/types.native.js +0 -2
  159. package/dist/esm/types.native.js.map +0 -1
@@ -0,0 +1,262 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ThemeBuilder = void 0;
4
+ exports.createThemeBuilder = createThemeBuilder;
5
+ const create_theme_1 = require("@hanzogui/create-theme");
6
+ class ThemeBuilder {
7
+ constructor(state) {
8
+ this.state = state;
9
+ // for dev mode only really
10
+ this._addedThemes = [];
11
+ }
12
+ addPalettes(palettes) {
13
+ this.state.palettes = {
14
+ // as {} prevents generic string key merge messing up types
15
+ ...this.state.palettes,
16
+ ...palettes,
17
+ };
18
+ return this;
19
+ }
20
+ addTemplates(templates) {
21
+ this.state.templates = {
22
+ // as {} prevents generic string key merge messing up types
23
+ ...this.state.templates,
24
+ ...templates,
25
+ };
26
+ return this;
27
+ }
28
+ addMasks(masks) {
29
+ this.state.masks = {
30
+ // as {} prevents generic string key merge messing up types
31
+ ...this.state.masks,
32
+ ...(0, create_theme_1.objectFromEntries)((0, create_theme_1.objectEntries)(masks).map(([key, val]) => [key, (0, create_theme_1.createMask)(val)])),
33
+ };
34
+ return this;
35
+ }
36
+ addThemes(themes) {
37
+ this._addedThemes.push({ type: 'themes', args: [themes] });
38
+ this.state.themes = {
39
+ // as {} prevents generic string key merge messing up types
40
+ ...this.state.themes,
41
+ ...themes,
42
+ };
43
+ // type TemplateToTheme<X> = State['templates'] extends {}
44
+ // ? X extends { template: infer Y; nonInheritedValues: infer Z }
45
+ // ? Y extends keyof State['templates']
46
+ // ? { theme: Record<keyof State['templates'][Y] | keyof Z, string> }
47
+ // : X
48
+ // : X
49
+ // : X
50
+ return this;
51
+ }
52
+ // these wont be typed to save some complexity and because they don't need to be typed!
53
+ addComponentThemes(childThemeDefinition, options) {
54
+ void this.addChildThemes(childThemeDefinition, options);
55
+ return this;
56
+ }
57
+ addChildThemes(childThemeDefinition, options) {
58
+ const currentThemes = this.state.themes;
59
+ if (!currentThemes) {
60
+ throw new Error(`No themes defined yet, use addThemes first to set your base themes`);
61
+ }
62
+ this._addedThemes.push({ type: 'childThemes', args: [childThemeDefinition, options] });
63
+ const currentThemeNames = Object.keys(currentThemes);
64
+ const incomingThemeNames = Object.keys(childThemeDefinition);
65
+ const namesWithDefinitions = currentThemeNames.flatMap((prefix) => {
66
+ const avoidNestingWithin = options?.avoidNestingWithin;
67
+ if (avoidNestingWithin) {
68
+ if (avoidNestingWithin.some((avoidName) => prefix.startsWith(avoidName) || prefix.endsWith(avoidName))) {
69
+ return [];
70
+ }
71
+ }
72
+ return incomingThemeNames
73
+ .map((subName) => {
74
+ const fullName = `${prefix}_${subName}`;
75
+ const definition = childThemeDefinition[subName];
76
+ if ('avoidNestingWithin' in definition) {
77
+ const avoidNest = definition.avoidNestingWithin;
78
+ if (avoidNest.some((name) => {
79
+ // For base scheme names (light/dark), use exact match to avoid matching derivatives
80
+ if ((name === 'light' || name === 'dark') && prefix.includes('_')) {
81
+ return false;
82
+ }
83
+ return prefix.startsWith(name) || prefix.endsWith(name);
84
+ })) {
85
+ return null;
86
+ }
87
+ }
88
+ // Avoid double-nesting: don't add a child theme to a parent that already ends with that child
89
+ // e.g., don't create light_blue_accent_accent from light_blue_accent + accent
90
+ if (prefix.endsWith(`_${subName}`)) {
91
+ return null;
92
+ }
93
+ // Don't overwrite existing themes (e.g., a grandchild "accent" template
94
+ // should not overwrite a dedicated "accent" child theme with its own palette)
95
+ if (fullName in currentThemes) {
96
+ return null;
97
+ }
98
+ return [fullName, definition];
99
+ })
100
+ .filter(Boolean);
101
+ });
102
+ const childThemes = Object.fromEntries(namesWithDefinitions);
103
+ const next = {
104
+ // as {} prevents generic string key merge messing up types
105
+ ...this.state.themes,
106
+ ...childThemes,
107
+ };
108
+ // @ts-ignore
109
+ this.state.themes = next;
110
+ return this;
111
+ }
112
+ getTheme(fn) {
113
+ this._getThemeFn = fn;
114
+ return this;
115
+ }
116
+ build() {
117
+ if (!this.state.themes) {
118
+ return {};
119
+ }
120
+ const out = {};
121
+ const maskedThemes = [];
122
+ for (const themeName in this.state.themes) {
123
+ const nameParts = themeName.split('_');
124
+ const parentName = nameParts.slice(0, nameParts.length - 1).join('_');
125
+ const definitions = this.state.themes[themeName];
126
+ const themeDefinition = Array.isArray(definitions)
127
+ ? (() => {
128
+ const found = definitions.find(
129
+ // endWith match stronger than startsWith
130
+ (d) => d.parent
131
+ ? parentName.endsWith(d.parent) || parentName.startsWith(d.parent)
132
+ : true);
133
+ if (!found) {
134
+ return null;
135
+ }
136
+ return found;
137
+ })()
138
+ : definitions;
139
+ if (!themeDefinition) {
140
+ // `No parent for ${themeName}: ${parentName} - Continuing...`
141
+ continue;
142
+ }
143
+ if ('theme' in themeDefinition) {
144
+ out[themeName] = themeDefinition.theme;
145
+ }
146
+ else if ('mask' in themeDefinition) {
147
+ maskedThemes.push({ parentName, themeName, mask: themeDefinition });
148
+ }
149
+ else {
150
+ let { palette: paletteName = '', template: templateName, ...options } = themeDefinition;
151
+ const parentDefinition = this.state.themes[parentName];
152
+ if (!this.state.palettes) {
153
+ throw new Error(`No palettes defined for theme with palette expected: ${themeName}`);
154
+ }
155
+ let palette = this.state.palettes[paletteName || ''];
156
+ let attemptParentName = `${parentName}_${paletteName}`;
157
+ while (!palette && attemptParentName) {
158
+ if (attemptParentName in this.state.palettes) {
159
+ palette = this.state.palettes[attemptParentName];
160
+ paletteName = attemptParentName;
161
+ }
162
+ else {
163
+ attemptParentName = attemptParentName.split('_').slice(0, -1).join('_');
164
+ }
165
+ }
166
+ if (!palette) {
167
+ const msg = process.env.NODE_ENV !== 'production'
168
+ ? `: ${themeName}: ${paletteName}
169
+ Definition: ${JSON.stringify(themeDefinition)}
170
+ Parent: ${JSON.stringify(parentDefinition)}
171
+ Potential: (${Object.keys(this.state.palettes).join(', ')})`
172
+ : ``;
173
+ throw new Error(`No palette for theme${msg}`);
174
+ }
175
+ const template = this.state.templates?.[templateName] ??
176
+ // fall back to finding the scheme specific on if it exists
177
+ this.state.templates?.[`${nameParts[0]}_${templateName}`];
178
+ if (!template) {
179
+ throw new Error(`No template for theme ${themeName}: ${templateName} in templates:\n- ${Object.keys(this.state.templates || {}).join('\n - ')}`);
180
+ }
181
+ const theme = (0, create_theme_1.createThemeWithPalettes)(this.state.palettes, paletteName, template, options, themeName, true);
182
+ out[themeName] = this._getThemeFn
183
+ ? {
184
+ ...theme,
185
+ ...this._getThemeFn({
186
+ theme,
187
+ name: themeName,
188
+ level: nameParts.length,
189
+ parentName,
190
+ scheme: /^(light|dark)$/.test(nameParts[0])
191
+ ? nameParts[0]
192
+ : undefined,
193
+ parentNames: nameParts.slice(0, -1),
194
+ palette,
195
+ template,
196
+ }),
197
+ }
198
+ : theme;
199
+ }
200
+ }
201
+ for (const { mask, themeName, parentName } of maskedThemes) {
202
+ const parent = out[parentName];
203
+ if (!parent) {
204
+ // `No parent theme found with name ${parentName} for theme ${themeName} to use as a mask target - Continuing...`
205
+ continue;
206
+ }
207
+ const { mask: maskName, ...options } = mask;
208
+ let maskFunction = this.state.masks?.[maskName];
209
+ if (!maskFunction) {
210
+ throw new Error(`No mask ${maskName}`);
211
+ }
212
+ const parentTheme = this.state.themes[parentName];
213
+ if (parentTheme && 'childOptions' in parentTheme) {
214
+ const { mask, ...childOpts } = parentTheme.childOptions;
215
+ if (mask) {
216
+ maskFunction = this.state.masks?.[mask];
217
+ }
218
+ Object.assign(options, childOpts);
219
+ }
220
+ out[themeName] = (0, create_theme_1.applyMask)(parent, maskFunction, options, parentName, themeName);
221
+ }
222
+ return out;
223
+ }
224
+ }
225
+ exports.ThemeBuilder = ThemeBuilder;
226
+ function createThemeBuilder() {
227
+ return new ThemeBuilder({});
228
+ }
229
+ // // test types
230
+ // let x = createThemeBuilder()
231
+ // .addMasks({
232
+ // test: {
233
+ // name: 'mask',
234
+ // mask: (() => {}) as any,
235
+ // },
236
+ // })
237
+ // .addThemes({
238
+ // light: {
239
+ // template: '',
240
+ // palette: '',
241
+ // },
242
+ // dark: {
243
+ // mask: 'test',
244
+ // },
245
+ // })
246
+ // .addChildThemes({
247
+ // List: [
248
+ // {
249
+ // parent: '',
250
+ // mask: 'test',
251
+ // },
252
+ // ],
253
+ // })
254
+ // x
255
+ // x.state.themes
256
+ // x.state.masks
257
+ // let y = x.addChildThemes({
258
+ // blue: {
259
+ // mask: 'ok',
260
+ // },
261
+ // })
262
+ //# sourceMappingURL=ThemeBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeBuilder.js","sourceRoot":"","sources":["../../src/ThemeBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createStudioThemes = createStudioThemes;
4
+ const createThemes_ts_1 = require("./createThemes.js");
5
+ const defaultComponentThemes_ts_1 = require("./defaultComponentThemes.js");
6
+ const defaultTemplates_ts_1 = require("./defaultTemplates.js");
7
+ const defaultTemplatesStronger_ts_1 = require("./defaultTemplatesStronger.js");
8
+ const defaultTemplatesStrongest_ts_1 = require("./defaultTemplatesStrongest.js");
9
+ // for studio
10
+ // allows more detailed configuration, used by studio
11
+ // eventually we should merge this down into simple and have it handle what we need
12
+ function createStudioThemes(props) {
13
+ const palettes = (0, createThemes_ts_1.createPalettes)(props.palettes);
14
+ const templates = props.templateStrategy === 'stronger'
15
+ ? defaultTemplatesStronger_ts_1.defaultTemplatesStronger
16
+ : props.templateStrategy === 'strongest'
17
+ ? defaultTemplatesStrongest_ts_1.defaultTemplatesStrongest
18
+ : defaultTemplates_ts_1.defaultTemplates;
19
+ return (0, createThemes_ts_1.createSimpleThemeBuilder)({
20
+ palettes,
21
+ templates,
22
+ componentThemes: defaultComponentThemes_ts_1.defaultComponentThemes,
23
+ accentTheme: !!props.palettes.accent,
24
+ });
25
+ }
26
+ //# sourceMappingURL=createStudioThemes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createStudioThemes.js","sourceRoot":"","sources":["../../src/createStudioThemes.ts"],"names":[],"mappings":";;;AAAA,uDAA4E;AAC5E,2EAAoE;AACpE,+DAAwD;AACxD,+EAAwE;AACxE,iFAA0E;AAG1E,aAAa;AACb,qDAAqD;AACrD,mFAAmF;AAEnF,4BAAmC,KAA2B;IAC5D,MAAM,QAAQ,GAAG,IAAA,gCAAc,EAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAE/C,MAAM,SAAS,GACb,KAAK,CAAC,gBAAgB,KAAK,UAAU;QACnC,CAAC,CAAC,sDAAwB;QAC1B,CAAC,CAAC,KAAK,CAAC,gBAAgB,KAAK,WAAW;YACtC,CAAC,CAAC,wDAAyB;YAC3B,CAAC,CAAC,sCAAgB,CAAA;IAExB,OAAO,IAAA,0CAAwB,EAAC;QAC9B,QAAQ;QACR,SAAS;QACT,eAAe,EAAE,kDAAsB;QACvC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM;KACrC,CAAC,CAAA;AACJ,CAAC"}