@hanzogui/theme-builder 8.3.0 → 8.3.2

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 +15 -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
@@ -1,395 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all) __defProp(target, name, {
7
- get: all[name],
8
- enumerable: true
9
- });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
14
- get: () => from[key],
15
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
- });
17
- }
18
- return to;
19
- };
20
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
- value: true
22
- }), mod);
23
- var createThemes_exports = {};
24
- __export(createThemes_exports, {
25
- createPalettes: () => createPalettes,
26
- createSimpleThemeBuilder: () => createSimpleThemeBuilder,
27
- createThemes: () => createThemes,
28
- createV4ThemeBuilder: () => createV4ThemeBuilder,
29
- createV4Themes: () => createV4Themes,
30
- getComponentThemes: () => getComponentThemes,
31
- getLastBuilder: () => getLastBuilder
32
- });
33
- module.exports = __toCommonJS(createThemes_exports);
34
- var import_color2k = require("color2k");
35
- var import_defaultComponentThemes = require("./defaultComponentThemes.cjs");
36
- var import_defaultTemplates = require("./defaultTemplates.cjs");
37
- var import_getThemeSuitePalettes = require("./getThemeSuitePalettes.cjs");
38
- var import_ThemeBuilder = require("./ThemeBuilder.cjs");
39
- function createThemes(props) {
40
- const {
41
- accent,
42
- childrenThemes,
43
- grandChildrenThemes,
44
- templates = import_defaultTemplates.defaultTemplates,
45
- componentThemes,
46
- getTheme
47
- } = props;
48
- const builder = createSimpleThemeBuilder({
49
- extra: props.base.extra,
50
- accentExtra: accent?.extra,
51
- componentThemes,
52
- palettes: createPalettes(getThemesPalettes(props)),
53
- templates,
54
- accentTheme: !!accent,
55
- childrenThemes: normalizeSubThemes(childrenThemes),
56
- grandChildrenThemes: grandChildrenThemes ? normalizeSubThemes(grandChildrenThemes) : void 0,
57
- getTheme
58
- });
59
- lastBuilder = builder.themeBuilder;
60
- return builder.themes;
61
- }
62
- let lastBuilder = null;
63
- const getLastBuilder = () => lastBuilder;
64
- function createV4Themes(props) {
65
- const {
66
- accent,
67
- childrenThemes,
68
- grandChildrenThemes,
69
- templates = import_defaultTemplates.defaultTemplates,
70
- componentThemes,
71
- getTheme
72
- } = props;
73
- const builder = createV4ThemeBuilder({
74
- extra: props.base.extra,
75
- accentExtra: accent?.extra,
76
- componentThemes,
77
- palettes: createPalettes(getThemesPalettes(props)),
78
- templates,
79
- accentTheme: !!accent,
80
- childrenThemes: normalizeSubThemes(childrenThemes),
81
- grandChildrenThemes: grandChildrenThemes ? normalizeSubThemes(grandChildrenThemes) : void 0,
82
- getTheme
83
- });
84
- lastBuilder = builder.themeBuilder;
85
- return builder.themes;
86
- }
87
- function normalizeSubThemes(defs) {
88
- return Object.fromEntries(Object.entries(defs || {}).map(([name, value]) => {
89
- const hasPalette = value.palette !== void 0;
90
- return [name, {
91
- // Only add palette if the definition has one, otherwise theme is template-only
92
- ...(hasPalette ? {
93
- palette: name
94
- } : {}),
95
- template: value.template || "base"
96
- }];
97
- }));
98
- }
99
- const defaultPalettes = createPalettes(getThemesPalettes({
100
- base: {
101
- palette: ["#fff", "#000"]
102
- },
103
- accent: {
104
- palette: ["#ff0000", "#ff9999"]
105
- }
106
- }));
107
- function createSimpleThemeBuilder(props) {
108
- const {
109
- getTheme,
110
- extra,
111
- accentExtra,
112
- childrenThemes = null,
113
- grandChildrenThemes = null,
114
- templates = import_defaultTemplates.defaultTemplates,
115
- palettes = defaultPalettes,
116
- accentTheme,
117
- componentThemes = templates === import_defaultTemplates.defaultTemplates ? import_defaultComponentThemes.defaultComponentThemes : void 0
118
- } = props;
119
- let themeBuilder = (0, import_ThemeBuilder.createThemeBuilder)().addPalettes(palettes).addTemplates(templates).addThemes({
120
- light: {
121
- template: "base",
122
- palette: "light",
123
- nonInheritedValues: {
124
- ...extra?.light,
125
- ...(accentTheme && palettes.light_accent && {
126
- accent1: palettes.light_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 0],
127
- accent2: palettes.light_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 1],
128
- accent3: palettes.light_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 2],
129
- accent4: palettes.light_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 3],
130
- accent5: palettes.light_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 4],
131
- accent6: palettes.light_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 5],
132
- accent7: palettes.light_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 6],
133
- accent8: palettes.light_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 7],
134
- accent9: palettes.light_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 8],
135
- accent10: palettes.light_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 9],
136
- accent11: palettes.light_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 10],
137
- accent12: palettes.light_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 11]
138
- })
139
- }
140
- },
141
- dark: {
142
- template: "base",
143
- palette: "dark",
144
- nonInheritedValues: {
145
- ...extra?.dark,
146
- ...(accentTheme && palettes.dark_accent && {
147
- accent1: palettes.dark_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 0],
148
- accent2: palettes.dark_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 1],
149
- accent3: palettes.dark_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 2],
150
- accent4: palettes.dark_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 3],
151
- accent5: palettes.dark_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 4],
152
- accent6: palettes.dark_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 5],
153
- accent7: palettes.dark_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 6],
154
- accent8: palettes.dark_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 7],
155
- accent9: palettes.dark_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 8],
156
- accent10: palettes.dark_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 9],
157
- accent11: palettes.dark_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 10],
158
- accent12: palettes.dark_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 11]
159
- })
160
- }
161
- }
162
- });
163
- if (palettes.light_accent) {
164
- themeBuilder = themeBuilder.addChildThemes({
165
- accent: [{
166
- parent: "light",
167
- template: "base",
168
- palette: "light_accent",
169
- nonInheritedValues: accentExtra?.light
170
- }, {
171
- parent: "dark",
172
- template: "base",
173
- palette: "dark_accent",
174
- nonInheritedValues: accentExtra?.dark
175
- }]
176
- });
177
- }
178
- if (childrenThemes) {
179
- themeBuilder = themeBuilder.addChildThemes(childrenThemes, {
180
- avoidNestingWithin: ["accent"]
181
- });
182
- }
183
- if (grandChildrenThemes) {
184
- themeBuilder = themeBuilder.addChildThemes(grandChildrenThemes, {
185
- avoidNestingWithin: ["accent"]
186
- });
187
- }
188
- if (componentThemes) {
189
- themeBuilder = themeBuilder.addComponentThemes(getComponentThemes(componentThemes), {
190
- avoidNestingWithin: Object.keys(grandChildrenThemes || {})
191
- });
192
- }
193
- if (getTheme) {
194
- themeBuilder = themeBuilder.getTheme(getTheme);
195
- }
196
- return {
197
- themeBuilder,
198
- themes: themeBuilder.build()
199
- };
200
- }
201
- function getSchemePalette(colors) {
202
- return {
203
- light: colors,
204
- dark: [...colors].reverse()
205
- };
206
- }
207
- function getAnchors(palette) {
208
- const maxIndex = 11;
209
- const numItems = palette.light.length;
210
- const anchors = palette.light.map((lcolor, index) => {
211
- const dcolor = palette.dark[index];
212
- const [lhue, lsat, llum, lalpha] = (0, import_color2k.parseToHsla)(lcolor);
213
- const [dhue, dsat, dlum, dalpha] = (0, import_color2k.parseToHsla)(dcolor);
214
- return {
215
- index: spreadIndex(maxIndex, numItems, index),
216
- hue: {
217
- light: lhue,
218
- dark: dhue
219
- },
220
- sat: {
221
- light: lsat,
222
- dark: dsat
223
- },
224
- lum: {
225
- light: llum,
226
- dark: dlum
227
- },
228
- alpha: {
229
- light: lalpha,
230
- dark: dalpha
231
- }
232
- };
233
- });
234
- return anchors;
235
- }
236
- function spreadIndex(maxIndex, numItems, index) {
237
- return Math.round(index / (numItems - 1) * maxIndex);
238
- }
239
- function coerceSimplePaletteToSchemePalette(def) {
240
- return Array.isArray(def) ? getSchemePalette(def) : def;
241
- }
242
- function getThemesPalettes(props) {
243
- const base = coerceSimplePaletteToSchemePalette(props.base.palette);
244
- const accent = props.accent ? coerceSimplePaletteToSchemePalette(props.accent.palette) : null;
245
- const baseAnchors = getAnchors(base);
246
- function getSubThemesPalettes(defs, isGrandChildren = false) {
247
- return Object.fromEntries(Object.entries(defs).map(([key, value]) => {
248
- if (isGrandChildren && key === "accent" && !value.palette) {
249
- return null;
250
- }
251
- return [key, {
252
- name: key,
253
- anchors: value.palette ? getAnchors(coerceSimplePaletteToSchemePalette(value.palette)) : baseAnchors
254
- }];
255
- }).filter(Boolean));
256
- }
257
- return {
258
- base: {
259
- name: "base",
260
- anchors: baseAnchors
261
- },
262
- ...(accent && {
263
- accent: {
264
- name: "accent",
265
- anchors: getAnchors(accent)
266
- }
267
- }),
268
- ...(props.childrenThemes && getSubThemesPalettes(props.childrenThemes, false)),
269
- ...(props.grandChildrenThemes && getSubThemesPalettes(props.grandChildrenThemes, true))
270
- };
271
- }
272
- const getComponentThemes = components => {
273
- return Object.fromEntries(Object.entries(components).map(([componentName, {
274
- template
275
- }]) => {
276
- return [componentName, {
277
- parent: "",
278
- template: template || "base"
279
- }];
280
- }));
281
- };
282
- function createPalettes(palettes) {
283
- const accentPalettes = palettes.accent ? (0, import_getThemeSuitePalettes.getThemeSuitePalettes)(palettes.accent) : null;
284
- const basePalettes = (0, import_getThemeSuitePalettes.getThemeSuitePalettes)(palettes.base);
285
- const next = Object.fromEntries(Object.entries(palettes).flatMap(([name, palette]) => {
286
- const palettes2 = (0, import_getThemeSuitePalettes.getThemeSuitePalettes)(palette);
287
- const isAccent = name.startsWith("accent");
288
- const oppositePalettes = isAccent ? basePalettes : accentPalettes || basePalettes;
289
- if (!oppositePalettes) {
290
- return [];
291
- }
292
- const oppositeLight = oppositePalettes.light;
293
- const oppositeDark = oppositePalettes.dark;
294
- const bgOffset = 7;
295
- const out = [[name === "base" ? "light" : `light_${name}`, [oppositeLight[bgOffset], ...palettes2.light, oppositeLight[oppositeLight.length - bgOffset - 1]]], [name === "base" ? "dark" : `dark_${name}`, [oppositeDark[oppositeDark.length - bgOffset - 1], ...palettes2.dark, oppositeDark[bgOffset]]]];
296
- return out;
297
- }));
298
- return next;
299
- }
300
- function createV4ThemeBuilder(props) {
301
- const {
302
- getTheme,
303
- extra,
304
- accentExtra,
305
- childrenThemes = null,
306
- grandChildrenThemes = null,
307
- templates = import_defaultTemplates.defaultTemplates,
308
- palettes = defaultPalettes,
309
- accentTheme,
310
- componentThemes = templates === import_defaultTemplates.defaultTemplates ? import_defaultComponentThemes.defaultComponentThemes : void 0
311
- } = props;
312
- let themeBuilder = (0, import_ThemeBuilder.createThemeBuilder)().addPalettes(palettes).addTemplates(templates).addThemes({
313
- light: {
314
- template: "base",
315
- palette: "light",
316
- nonInheritedValues: {
317
- ...extra?.light,
318
- ...(accentTheme && palettes.light_accent && {
319
- accent1: palettes.light_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 0],
320
- accent2: palettes.light_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 1],
321
- accent3: palettes.light_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 2],
322
- accent4: palettes.light_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 3],
323
- accent5: palettes.light_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 4],
324
- accent6: palettes.light_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 5],
325
- accent7: palettes.light_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 6],
326
- accent8: palettes.light_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 7],
327
- accent9: palettes.light_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 8],
328
- accent10: palettes.light_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 9],
329
- accent11: palettes.light_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 10],
330
- accent12: palettes.light_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 11]
331
- })
332
- }
333
- },
334
- dark: {
335
- template: "base",
336
- palette: "dark",
337
- nonInheritedValues: {
338
- ...extra?.dark,
339
- ...(accentTheme && palettes.dark_accent && {
340
- accent1: palettes.dark_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 0],
341
- accent2: palettes.dark_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 1],
342
- accent3: palettes.dark_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 2],
343
- accent4: palettes.dark_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 3],
344
- accent5: palettes.dark_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 4],
345
- accent6: palettes.dark_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 5],
346
- accent7: palettes.dark_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 6],
347
- accent8: palettes.dark_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 7],
348
- accent9: palettes.dark_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 8],
349
- accent10: palettes.dark_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 9],
350
- accent11: palettes.dark_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 10],
351
- accent12: palettes.dark_accent[import_getThemeSuitePalettes.PALETTE_BACKGROUND_OFFSET + 11]
352
- })
353
- }
354
- }
355
- });
356
- if (childrenThemes) {
357
- themeBuilder = themeBuilder.addChildThemes(childrenThemes, {
358
- avoidNestingWithin: ["accent"]
359
- });
360
- }
361
- if (grandChildrenThemes) {
362
- themeBuilder = themeBuilder.addChildThemes(grandChildrenThemes, {
363
- avoidNestingWithin: ["accent"]
364
- });
365
- }
366
- if (palettes.light_accent) {
367
- themeBuilder = themeBuilder.addChildThemes({
368
- accent: [{
369
- parent: "light",
370
- template: "base",
371
- palette: "light_accent",
372
- nonInheritedValues: accentExtra?.light
373
- }, {
374
- parent: "dark",
375
- template: "base",
376
- palette: "dark_accent",
377
- nonInheritedValues: accentExtra?.dark
378
- }]
379
- }, {
380
- avoidNestingWithin: Object.keys(childrenThemes || {})
381
- });
382
- }
383
- if (componentThemes) {
384
- themeBuilder = themeBuilder.addComponentThemes(getComponentThemes(componentThemes), {
385
- avoidNestingWithin: Object.keys(grandChildrenThemes || {})
386
- });
387
- }
388
- if (getTheme) {
389
- themeBuilder = themeBuilder.getTheme(getTheme);
390
- }
391
- return {
392
- themeBuilder,
393
- themes: themeBuilder.build()
394
- };
395
- }