@tamagui/theme-builder 2.0.0-rc.4 → 2.0.0-rc.40

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 (119) hide show
  1. package/dist/cjs/ThemeBuilder.cjs +131 -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 +119 -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/index.js +8 -24
  66. package/dist/esm/index.js.map +1 -6
  67. package/dist/esm/masks.mjs +17 -16
  68. package/dist/esm/masks.mjs.map +1 -1
  69. package/dist/esm/masks.native.js +18 -18
  70. package/dist/esm/masks.native.js.map +1 -1
  71. package/package.json +8 -10
  72. package/src/ThemeBuilder.ts +6 -0
  73. package/types/ThemeBuilder.d.ts.map +1 -1
  74. package/dist/cjs/ThemeBuilder.js +0 -184
  75. package/dist/cjs/ThemeBuilder.js.map +0 -6
  76. package/dist/cjs/createStudioThemes.js +0 -30
  77. package/dist/cjs/createStudioThemes.js.map +0 -6
  78. package/dist/cjs/createThemes.js +0 -356
  79. package/dist/cjs/createThemes.js.map +0 -6
  80. package/dist/cjs/defaultComponentThemes.js +0 -41
  81. package/dist/cjs/defaultComponentThemes.js.map +0 -6
  82. package/dist/cjs/defaultTemplates.js +0 -138
  83. package/dist/cjs/defaultTemplates.js.map +0 -6
  84. package/dist/cjs/defaultTemplatesStronger.js +0 -137
  85. package/dist/cjs/defaultTemplatesStronger.js.map +0 -6
  86. package/dist/cjs/defaultTemplatesStrongest.js +0 -137
  87. package/dist/cjs/defaultTemplatesStrongest.js.map +0 -6
  88. package/dist/cjs/getThemeSuitePalettes.js +0 -69
  89. package/dist/cjs/getThemeSuitePalettes.js.map +0 -6
  90. package/dist/cjs/helpers.js +0 -29
  91. package/dist/cjs/helpers.js.map +0 -6
  92. package/dist/cjs/index.js +0 -32
  93. package/dist/cjs/index.js.map +0 -6
  94. package/dist/cjs/masks.js +0 -86
  95. package/dist/cjs/masks.js.map +0 -6
  96. package/dist/cjs/types.js +0 -14
  97. package/dist/cjs/types.js.map +0 -6
  98. package/dist/esm/ThemeBuilder.js +0 -174
  99. package/dist/esm/ThemeBuilder.js.map +0 -6
  100. package/dist/esm/createStudioThemes.js +0 -18
  101. package/dist/esm/createStudioThemes.js.map +0 -6
  102. package/dist/esm/createThemes.js +0 -344
  103. package/dist/esm/createThemes.js.map +0 -6
  104. package/dist/esm/defaultComponentThemes.js +0 -25
  105. package/dist/esm/defaultComponentThemes.js.map +0 -6
  106. package/dist/esm/defaultTemplates.js +0 -122
  107. package/dist/esm/defaultTemplates.js.map +0 -6
  108. package/dist/esm/defaultTemplatesStronger.js +0 -121
  109. package/dist/esm/defaultTemplatesStronger.js.map +0 -6
  110. package/dist/esm/defaultTemplatesStrongest.js +0 -121
  111. package/dist/esm/defaultTemplatesStrongest.js.map +0 -6
  112. package/dist/esm/getThemeSuitePalettes.js +0 -53
  113. package/dist/esm/getThemeSuitePalettes.js.map +0 -6
  114. package/dist/esm/helpers.js +0 -13
  115. package/dist/esm/helpers.js.map +0 -6
  116. package/dist/esm/masks.js +0 -78
  117. package/dist/esm/masks.js.map +0 -6
  118. package/dist/esm/types.js +0 -1
  119. package/dist/esm/types.js.map +0 -6
package/dist/cjs/masks.js DELETED
@@ -1,86 +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)
7
- __defProp(target, name, { get: all[name], enumerable: !0 });
8
- }, __copyProps = (to, from, except, desc) => {
9
- if (from && typeof from == "object" || typeof from == "function")
10
- for (let key of __getOwnPropNames(from))
11
- !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
12
- return to;
13
- };
14
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
15
- var masks_exports = {};
16
- __export(masks_exports, {
17
- masks: () => masks
18
- });
19
- module.exports = __toCommonJS(masks_exports);
20
- var import_create_theme = require("@tamagui/create-theme");
21
- const masks = {
22
- identity: (0, import_create_theme.createIdentityMask)(),
23
- soften: (0, import_create_theme.createSoftenMask)(),
24
- soften2: (0, import_create_theme.createSoftenMask)({ strength: 2 }),
25
- soften3: (0, import_create_theme.createSoftenMask)({ strength: 3 }),
26
- strengthen: (0, import_create_theme.createStrengthenMask)(),
27
- inverse: (0, import_create_theme.createInverseMask)(),
28
- inverseSoften: (0, import_create_theme.combineMasks)((0, import_create_theme.createInverseMask)(), (0, import_create_theme.createSoftenMask)({ strength: 2 })),
29
- inverseSoften2: (0, import_create_theme.combineMasks)((0, import_create_theme.createInverseMask)(), (0, import_create_theme.createSoftenMask)({ strength: 3 })),
30
- inverseSoften3: (0, import_create_theme.combineMasks)((0, import_create_theme.createInverseMask)(), (0, import_create_theme.createSoftenMask)({ strength: 4 })),
31
- inverseStrengthen2: (0, import_create_theme.combineMasks)(
32
- (0, import_create_theme.createInverseMask)(),
33
- (0, import_create_theme.createStrengthenMask)({ strength: 2 })
34
- ),
35
- strengthenButSoftenBorder: (0, import_create_theme.createMask)((template, options) => {
36
- const stronger = (0, import_create_theme.createStrengthenMask)().mask(template, options), softer = (0, import_create_theme.createSoftenMask)().mask(template, options);
37
- return {
38
- ...stronger,
39
- borderColor: softer.borderColor,
40
- borderColorHover: softer.borderColorHover,
41
- borderColorPress: softer.borderColorPress,
42
- borderColorFocus: softer.borderColorFocus
43
- };
44
- }),
45
- soften2Border1: (0, import_create_theme.createMask)((template, options) => {
46
- const softer2 = (0, import_create_theme.createSoftenMask)({ strength: 2 }).mask(template, options), softer1 = (0, import_create_theme.createSoftenMask)({ strength: 1 }).mask(template, options);
47
- return {
48
- ...softer2,
49
- borderColor: softer1.borderColor,
50
- borderColorHover: softer1.borderColorHover,
51
- borderColorPress: softer1.borderColorPress,
52
- borderColorFocus: softer1.borderColorFocus
53
- };
54
- }),
55
- soften3FlatBorder: (0, import_create_theme.createMask)((template, options) => {
56
- const borderMask = (0, import_create_theme.createSoftenMask)({ strength: 2 }).mask(template, options);
57
- return {
58
- ...(0, import_create_theme.createSoftenMask)({ strength: 3 }).mask(template, options),
59
- borderColor: borderMask.borderColor,
60
- borderColorHover: borderMask.borderColorHover,
61
- borderColorPress: borderMask.borderColorPress,
62
- borderColorFocus: borderMask.borderColorFocus
63
- };
64
- }),
65
- softenBorder: (0, import_create_theme.createMask)((template, options) => {
66
- const plain = import_create_theme.skipMask.mask(template, options), softer = (0, import_create_theme.createSoftenMask)().mask(template, options);
67
- return {
68
- ...plain,
69
- borderColor: softer.borderColor,
70
- borderColorHover: softer.borderColorHover,
71
- borderColorPress: softer.borderColorPress,
72
- borderColorFocus: softer.borderColorFocus
73
- };
74
- }),
75
- softenBorder2: (0, import_create_theme.createMask)((template, options) => {
76
- const plain = import_create_theme.skipMask.mask(template, options), softer = (0, import_create_theme.createSoftenMask)({ strength: 2 }).mask(template, options);
77
- return {
78
- ...plain,
79
- borderColor: softer.borderColor,
80
- borderColorHover: softer.borderColorHover,
81
- borderColorPress: softer.borderColorPress,
82
- borderColorFocus: softer.borderColorFocus
83
- };
84
- })
85
- };
86
- //# sourceMappingURL=masks.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/masks.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAQO;AAEA,MAAM,QAAQ;AAAA,EACnB,cAAU,wCAAmB;AAAA,EAC7B,YAAQ,sCAAiB;AAAA,EACzB,aAAS,sCAAiB,EAAE,UAAU,EAAE,CAAC;AAAA,EACzC,aAAS,sCAAiB,EAAE,UAAU,EAAE,CAAC;AAAA,EACzC,gBAAY,0CAAqB;AAAA,EACjC,aAAS,uCAAkB;AAAA,EAC3B,mBAAe,sCAAa,uCAAkB,OAAG,sCAAiB,EAAE,UAAU,EAAE,CAAC,CAAC;AAAA,EAClF,oBAAgB,sCAAa,uCAAkB,OAAG,sCAAiB,EAAE,UAAU,EAAE,CAAC,CAAC;AAAA,EACnF,oBAAgB,sCAAa,uCAAkB,OAAG,sCAAiB,EAAE,UAAU,EAAE,CAAC,CAAC;AAAA,EACnF,wBAAoB;AAAA,QAClB,uCAAkB;AAAA,QAClB,0CAAqB,EAAE,UAAU,EAAE,CAAC;AAAA,EACtC;AAAA,EACA,+BAA2B,gCAAW,CAAC,UAAU,YAAY;AAC3D,UAAM,eAAW,0CAAqB,EAAE,KAAK,UAAU,OAAO,GACxD,aAAS,sCAAiB,EAAE,KAAK,UAAU,OAAO;AACxD,WAAO;AAAA,MACL,GAAG;AAAA,MACH,aAAa,OAAO;AAAA,MACpB,kBAAkB,OAAO;AAAA,MACzB,kBAAkB,OAAO;AAAA,MACzB,kBAAkB,OAAO;AAAA,IAC3B;AAAA,EACF,CAAC;AAAA,EACD,oBAAgB,gCAAW,CAAC,UAAU,YAAY;AAChD,UAAM,cAAU,sCAAiB,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,UAAU,OAAO,GAClE,cAAU,sCAAiB,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,UAAU,OAAO;AACxE,WAAO;AAAA,MACL,GAAG;AAAA,MACH,aAAa,QAAQ;AAAA,MACrB,kBAAkB,QAAQ;AAAA,MAC1B,kBAAkB,QAAQ;AAAA,MAC1B,kBAAkB,QAAQ;AAAA,IAC5B;AAAA,EACF,CAAC;AAAA,EACD,uBAAmB,gCAAW,CAAC,UAAU,YAAY;AACnD,UAAM,iBAAa,sCAAiB,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,UAAU,OAAO;AAE3E,WAAO;AAAA,MACL,OAFc,sCAAiB,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,UAAU,OAAO;AAAA,MAGtE,aAAa,WAAW;AAAA,MACxB,kBAAkB,WAAW;AAAA,MAC7B,kBAAkB,WAAW;AAAA,MAC7B,kBAAkB,WAAW;AAAA,IAC/B;AAAA,EACF,CAAC;AAAA,EACD,kBAAc,gCAAW,CAAC,UAAU,YAAY;AAC9C,UAAM,QAAQ,6BAAS,KAAK,UAAU,OAAO,GACvC,aAAS,sCAAiB,EAAE,KAAK,UAAU,OAAO;AACxD,WAAO;AAAA,MACL,GAAG;AAAA,MACH,aAAa,OAAO;AAAA,MACpB,kBAAkB,OAAO;AAAA,MACzB,kBAAkB,OAAO;AAAA,MACzB,kBAAkB,OAAO;AAAA,IAC3B;AAAA,EACF,CAAC;AAAA,EACD,mBAAe,gCAAW,CAAC,UAAU,YAAY;AAC/C,UAAM,QAAQ,6BAAS,KAAK,UAAU,OAAO,GACvC,aAAS,sCAAiB,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,UAAU,OAAO;AACvE,WAAO;AAAA,MACL,GAAG;AAAA,MACH,aAAa,OAAO;AAAA,MACpB,kBAAkB,OAAO;AAAA,MACzB,kBAAkB,OAAO;AAAA,MACzB,kBAAkB,OAAO;AAAA,IAC3B;AAAA,EACF,CAAC;AACH;",
5
- "names": []
6
- }
package/dist/cjs/types.js DELETED
@@ -1,14 +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 __copyProps = (to, from, except, desc) => {
6
- if (from && typeof from == "object" || typeof from == "function")
7
- for (let key of __getOwnPropNames(from))
8
- !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
9
- return to;
10
- };
11
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
12
- var types_exports = {};
13
- module.exports = __toCommonJS(types_exports);
14
- //# sourceMappingURL=types.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/types.ts"],
4
- "mappings": ";;;;;;;;;;;AAAA;AAAA;",
5
- "names": []
6
- }
@@ -1,174 +0,0 @@
1
- import {
2
- applyMask,
3
- createMask,
4
- createThemeWithPalettes,
5
- objectEntries,
6
- objectFromEntries
7
- } from "@tamagui/create-theme";
8
- class ThemeBuilder {
9
- constructor(state) {
10
- this.state = state;
11
- }
12
- _getThemeFn;
13
- addPalettes(palettes) {
14
- return this.state.palettes = {
15
- // as {} prevents generic string key merge messing up types
16
- ...this.state.palettes,
17
- ...palettes
18
- }, this;
19
- }
20
- addTemplates(templates) {
21
- return this.state.templates = {
22
- // as {} prevents generic string key merge messing up types
23
- ...this.state.templates,
24
- ...templates
25
- }, this;
26
- }
27
- addMasks(masks) {
28
- return this.state.masks = {
29
- // as {} prevents generic string key merge messing up types
30
- ...this.state.masks,
31
- ...objectFromEntries(
32
- objectEntries(masks).map(([key, val]) => [key, createMask(val)])
33
- )
34
- }, this;
35
- }
36
- // for dev mode only really
37
- _addedThemes = [];
38
- addThemes(themes) {
39
- return this._addedThemes.push({ type: "themes", args: [themes] }), this.state.themes = {
40
- // as {} prevents generic string key merge messing up types
41
- ...this.state.themes,
42
- ...themes
43
- }, this;
44
- }
45
- // these wont be typed to save some complexity and because they don't need to be typed!
46
- addComponentThemes(childThemeDefinition, options) {
47
- return this.addChildThemes(childThemeDefinition, options), this;
48
- }
49
- addChildThemes(childThemeDefinition, options) {
50
- const currentThemes = this.state.themes;
51
- if (!currentThemes)
52
- throw new Error(
53
- "No themes defined yet, use addThemes first to set your base themes"
54
- );
55
- this._addedThemes.push({ type: "childThemes", args: [childThemeDefinition, options] });
56
- const currentThemeNames = Object.keys(currentThemes), incomingThemeNames = Object.keys(childThemeDefinition), namesWithDefinitions = currentThemeNames.flatMap((prefix) => {
57
- const avoidNestingWithin = options?.avoidNestingWithin;
58
- return avoidNestingWithin && avoidNestingWithin.some(
59
- (avoidName) => prefix.startsWith(avoidName) || prefix.endsWith(avoidName)
60
- ) ? [] : incomingThemeNames.map((subName) => {
61
- const fullName = `${prefix}_${subName}`, definition = childThemeDefinition[subName];
62
- return "avoidNestingWithin" in definition && definition.avoidNestingWithin.some((name) => (name === "light" || name === "dark") && prefix.includes("_") ? !1 : prefix.startsWith(name) || prefix.endsWith(name)) || prefix.endsWith(`_${subName}`) ? null : [fullName, definition];
63
- }).filter(Boolean);
64
- }), childThemes = Object.fromEntries(namesWithDefinitions), next = {
65
- // as {} prevents generic string key merge messing up types
66
- ...this.state.themes,
67
- ...childThemes
68
- };
69
- return this.state.themes = next, this;
70
- }
71
- getTheme(fn) {
72
- return this._getThemeFn = fn, this;
73
- }
74
- build() {
75
- if (!this.state.themes)
76
- return {};
77
- const out = {}, maskedThemes = [];
78
- for (const themeName in this.state.themes) {
79
- const nameParts = themeName.split("_"), parentName = nameParts.slice(0, nameParts.length - 1).join("_"), definitions = this.state.themes[themeName], themeDefinition = Array.isArray(definitions) ? (() => {
80
- const found = definitions.find(
81
- // endWith match stronger than startsWith
82
- (d) => d.parent ? parentName.endsWith(d.parent) || parentName.startsWith(d.parent) : !0
83
- );
84
- return found || null;
85
- })() : definitions;
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
- let {
93
- palette: paletteName = "",
94
- template: templateName,
95
- ...options
96
- } = themeDefinition;
97
- const parentDefinition = this.state.themes[parentName];
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 || ""], attemptParentName = `${parentName}_${paletteName}`;
103
- for (; !palette && attemptParentName; )
104
- attemptParentName in this.state.palettes ? (palette = this.state.palettes[attemptParentName], paletteName = attemptParentName) : attemptParentName = attemptParentName.split("_").slice(0, -1).join("_");
105
- if (!palette) {
106
- const msg = process.env.NODE_ENV !== "production" ? `: ${themeName}: ${paletteName}
107
- Definition: ${JSON.stringify(themeDefinition)}
108
- Parent: ${JSON.stringify(parentDefinition)}
109
- Potential: (${Object.keys(this.state.palettes).join(", ")})` : "";
110
- throw new Error(`No palette for theme${msg}`);
111
- }
112
- const template = this.state.templates?.[templateName] ?? // fall back to finding the scheme specific on if it exists
113
- this.state.templates?.[`${nameParts[0]}_${templateName}`];
114
- if (!template)
115
- throw new Error(
116
- `No template for theme ${themeName}: ${templateName} in templates:
117
- - ${Object.keys(this.state.templates || {}).join(`
118
- - `)}`
119
- );
120
- const theme = createThemeWithPalettes(
121
- this.state.palettes,
122
- paletteName,
123
- template,
124
- options,
125
- themeName,
126
- !0
127
- );
128
- out[themeName] = this._getThemeFn ? {
129
- ...theme,
130
- ...this._getThemeFn({
131
- theme,
132
- name: themeName,
133
- level: nameParts.length,
134
- parentName,
135
- scheme: /^(light|dark)$/.test(nameParts[0]) ? nameParts[0] : void 0,
136
- parentNames: nameParts.slice(0, -1),
137
- palette,
138
- template
139
- })
140
- } : theme;
141
- }
142
- }
143
- for (const { mask, themeName, parentName } of maskedThemes) {
144
- const parent = out[parentName];
145
- if (!parent)
146
- continue;
147
- const { mask: maskName, ...options } = mask;
148
- let maskFunction = this.state.masks?.[maskName];
149
- if (!maskFunction)
150
- throw new Error(`No mask ${maskName}`);
151
- const parentTheme = this.state.themes[parentName];
152
- if (parentTheme && "childOptions" in parentTheme) {
153
- const { mask: mask2, ...childOpts } = parentTheme.childOptions;
154
- mask2 && (maskFunction = this.state.masks?.[mask2]), Object.assign(options, childOpts);
155
- }
156
- out[themeName] = applyMask(
157
- parent,
158
- maskFunction,
159
- options,
160
- parentName,
161
- themeName
162
- );
163
- }
164
- return out;
165
- }
166
- }
167
- function createThemeBuilder() {
168
- return new ThemeBuilder({});
169
- }
170
- export {
171
- ThemeBuilder,
172
- createThemeBuilder
173
- };
174
- //# sourceMappingURL=ThemeBuilder.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/ThemeBuilder.ts"],
4
- "mappings": "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",
5
- "names": ["mask"]
6
- }
@@ -1,18 +0,0 @@
1
- import { createPalettes, createSimpleThemeBuilder } from "./createThemes";
2
- import { defaultComponentThemes } from "./defaultComponentThemes";
3
- import { defaultTemplates } from "./defaultTemplates";
4
- import { defaultTemplatesStronger } from "./defaultTemplatesStronger";
5
- import { defaultTemplatesStrongest } from "./defaultTemplatesStrongest";
6
- function createStudioThemes(props) {
7
- const palettes = createPalettes(props.palettes), templates = props.templateStrategy === "stronger" ? defaultTemplatesStronger : props.templateStrategy === "strongest" ? defaultTemplatesStrongest : defaultTemplates;
8
- return createSimpleThemeBuilder({
9
- palettes,
10
- templates,
11
- componentThemes: defaultComponentThemes,
12
- accentTheme: !!props.palettes.accent
13
- });
14
- }
15
- export {
16
- createStudioThemes
17
- };
18
- //# sourceMappingURL=createStudioThemes.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/createStudioThemes.ts"],
4
- "mappings": "AAAA,SAAS,gBAAgB,gCAAgC;AACzD,SAAS,8BAA8B;AACvC,SAAS,wBAAwB;AACjC,SAAS,gCAAgC;AACzC,SAAS,iCAAiC;AAOnC,SAAS,mBAAmB,OAA6B;AAC9D,QAAM,WAAW,eAAe,MAAM,QAAQ,GAExC,YACJ,MAAM,qBAAqB,aACvB,2BACA,MAAM,qBAAqB,cACzB,4BACA;AAER,SAAO,yBAAyB;AAAA,IAC9B;AAAA,IACA;AAAA,IACA,iBAAiB;AAAA,IACjB,aAAa,CAAC,CAAC,MAAM,SAAS;AAAA,EAChC,CAAC;AACH;",
5
- "names": []
6
- }
@@ -1,344 +0,0 @@
1
- import { parseToHsla } from "color2k";
2
- import { defaultComponentThemes } from "./defaultComponentThemes";
3
- import { defaultTemplates } from "./defaultTemplates";
4
- import { getThemeSuitePalettes, PALETTE_BACKGROUND_OFFSET } from "./getThemeSuitePalettes";
5
- import { createThemeBuilder } from "./ThemeBuilder";
6
- function createThemes(props) {
7
- const {
8
- accent,
9
- childrenThemes,
10
- grandChildrenThemes,
11
- templates = defaultTemplates,
12
- componentThemes,
13
- getTheme
14
- } = props, builder = createSimpleThemeBuilder({
15
- extra: props.base.extra,
16
- accentExtra: accent?.extra,
17
- componentThemes,
18
- palettes: createPalettes(getThemesPalettes(props)),
19
- templates,
20
- accentTheme: !!accent,
21
- childrenThemes: normalizeSubThemes(childrenThemes),
22
- grandChildrenThemes: grandChildrenThemes ? normalizeSubThemes(grandChildrenThemes) : void 0,
23
- getTheme
24
- });
25
- return lastBuilder = builder.themeBuilder, builder.themes;
26
- }
27
- let lastBuilder = null;
28
- const getLastBuilder = () => lastBuilder;
29
- function createV4Themes(props) {
30
- const {
31
- accent,
32
- childrenThemes,
33
- grandChildrenThemes,
34
- templates = defaultTemplates,
35
- componentThemes,
36
- getTheme
37
- } = props, builder = createV4ThemeBuilder({
38
- extra: props.base.extra,
39
- accentExtra: accent?.extra,
40
- componentThemes,
41
- palettes: createPalettes(getThemesPalettes(props)),
42
- templates,
43
- accentTheme: !!accent,
44
- childrenThemes: normalizeSubThemes(childrenThemes),
45
- grandChildrenThemes: grandChildrenThemes ? normalizeSubThemes(grandChildrenThemes) : void 0,
46
- getTheme
47
- });
48
- return lastBuilder = builder.themeBuilder, builder.themes;
49
- }
50
- function normalizeSubThemes(defs) {
51
- return Object.fromEntries(
52
- Object.entries(defs || {}).map(([name, value]) => {
53
- const hasPalette = value.palette !== void 0;
54
- return [
55
- name,
56
- {
57
- // Only add palette if the definition has one, otherwise theme is template-only
58
- ...hasPalette ? { palette: name } : {},
59
- template: value.template || "base"
60
- }
61
- ];
62
- })
63
- );
64
- }
65
- const defaultPalettes = createPalettes(
66
- getThemesPalettes({
67
- base: {
68
- palette: ["#fff", "#000"]
69
- },
70
- accent: {
71
- palette: ["#ff0000", "#ff9999"]
72
- }
73
- })
74
- );
75
- function createSimpleThemeBuilder(props) {
76
- const {
77
- getTheme,
78
- extra,
79
- accentExtra,
80
- childrenThemes = null,
81
- grandChildrenThemes = null,
82
- templates = defaultTemplates,
83
- palettes = defaultPalettes,
84
- accentTheme,
85
- componentThemes = templates === defaultTemplates ? defaultComponentThemes : void 0
86
- } = props;
87
- let themeBuilder = createThemeBuilder().addPalettes(palettes).addTemplates(templates).addThemes({
88
- light: {
89
- template: "base",
90
- palette: "light",
91
- nonInheritedValues: {
92
- ...extra?.light,
93
- ...accentTheme && palettes.light_accent && {
94
- accent1: palettes.light_accent[PALETTE_BACKGROUND_OFFSET + 0],
95
- accent2: palettes.light_accent[PALETTE_BACKGROUND_OFFSET + 1],
96
- accent3: palettes.light_accent[PALETTE_BACKGROUND_OFFSET + 2],
97
- accent4: palettes.light_accent[PALETTE_BACKGROUND_OFFSET + 3],
98
- accent5: palettes.light_accent[PALETTE_BACKGROUND_OFFSET + 4],
99
- accent6: palettes.light_accent[PALETTE_BACKGROUND_OFFSET + 5],
100
- accent7: palettes.light_accent[PALETTE_BACKGROUND_OFFSET + 6],
101
- accent8: palettes.light_accent[PALETTE_BACKGROUND_OFFSET + 7],
102
- accent9: palettes.light_accent[PALETTE_BACKGROUND_OFFSET + 8],
103
- accent10: palettes.light_accent[PALETTE_BACKGROUND_OFFSET + 9],
104
- accent11: palettes.light_accent[PALETTE_BACKGROUND_OFFSET + 10],
105
- accent12: palettes.light_accent[PALETTE_BACKGROUND_OFFSET + 11]
106
- }
107
- }
108
- },
109
- dark: {
110
- template: "base",
111
- palette: "dark",
112
- nonInheritedValues: {
113
- ...extra?.dark,
114
- ...accentTheme && palettes.dark_accent && {
115
- accent1: palettes.dark_accent[PALETTE_BACKGROUND_OFFSET + 0],
116
- accent2: palettes.dark_accent[PALETTE_BACKGROUND_OFFSET + 1],
117
- accent3: palettes.dark_accent[PALETTE_BACKGROUND_OFFSET + 2],
118
- accent4: palettes.dark_accent[PALETTE_BACKGROUND_OFFSET + 3],
119
- accent5: palettes.dark_accent[PALETTE_BACKGROUND_OFFSET + 4],
120
- accent6: palettes.dark_accent[PALETTE_BACKGROUND_OFFSET + 5],
121
- accent7: palettes.dark_accent[PALETTE_BACKGROUND_OFFSET + 6],
122
- accent8: palettes.dark_accent[PALETTE_BACKGROUND_OFFSET + 7],
123
- accent9: palettes.dark_accent[PALETTE_BACKGROUND_OFFSET + 8],
124
- accent10: palettes.dark_accent[PALETTE_BACKGROUND_OFFSET + 9],
125
- accent11: palettes.dark_accent[PALETTE_BACKGROUND_OFFSET + 10],
126
- accent12: palettes.dark_accent[PALETTE_BACKGROUND_OFFSET + 11]
127
- }
128
- }
129
- }
130
- });
131
- return palettes.light_accent && (themeBuilder = themeBuilder.addChildThemes({
132
- accent: [
133
- {
134
- parent: "light",
135
- template: "base",
136
- palette: "light_accent",
137
- nonInheritedValues: accentExtra?.light
138
- },
139
- {
140
- parent: "dark",
141
- template: "base",
142
- palette: "dark_accent",
143
- nonInheritedValues: accentExtra?.dark
144
- }
145
- ]
146
- })), childrenThemes && (themeBuilder = themeBuilder.addChildThemes(childrenThemes, {
147
- avoidNestingWithin: ["accent"]
148
- })), grandChildrenThemes && (themeBuilder = themeBuilder.addChildThemes(grandChildrenThemes, {
149
- avoidNestingWithin: ["accent"]
150
- })), componentThemes && (themeBuilder = themeBuilder.addComponentThemes(getComponentThemes(componentThemes), {
151
- avoidNestingWithin: Object.keys(grandChildrenThemes || {})
152
- })), getTheme && (themeBuilder = themeBuilder.getTheme(getTheme)), {
153
- themeBuilder,
154
- themes: themeBuilder.build()
155
- };
156
- }
157
- function getSchemePalette(colors) {
158
- return {
159
- light: colors,
160
- dark: [...colors].reverse()
161
- };
162
- }
163
- function getAnchors(palette) {
164
- const numItems = palette.light.length;
165
- return palette.light.map((lcolor, index) => {
166
- const dcolor = palette.dark[index], [lhue, lsat, llum, lalpha] = parseToHsla(lcolor), [dhue, dsat, dlum, dalpha] = parseToHsla(dcolor);
167
- return {
168
- index: spreadIndex(11, numItems, index),
169
- hue: { light: lhue, dark: dhue },
170
- sat: { light: lsat, dark: dsat },
171
- lum: { light: llum, dark: dlum },
172
- alpha: { light: lalpha, dark: dalpha }
173
- };
174
- });
175
- }
176
- function spreadIndex(maxIndex, numItems, index) {
177
- return Math.round(index / (numItems - 1) * maxIndex);
178
- }
179
- function coerceSimplePaletteToSchemePalette(def) {
180
- return Array.isArray(def) ? getSchemePalette(def) : def;
181
- }
182
- function getThemesPalettes(props) {
183
- const base = coerceSimplePaletteToSchemePalette(props.base.palette), accent = props.accent ? coerceSimplePaletteToSchemePalette(props.accent.palette) : null, baseAnchors = getAnchors(base);
184
- function getSubThemesPalettes(defs, isGrandChildren = !1) {
185
- return Object.fromEntries(
186
- Object.entries(defs).map(([key, value]) => isGrandChildren && key === "accent" && !value.palette ? null : [
187
- key,
188
- {
189
- name: key,
190
- anchors: value.palette ? getAnchors(coerceSimplePaletteToSchemePalette(value.palette)) : baseAnchors
191
- }
192
- ]).filter(Boolean)
193
- );
194
- }
195
- return {
196
- base: {
197
- name: "base",
198
- anchors: baseAnchors
199
- },
200
- ...accent && {
201
- accent: {
202
- name: "accent",
203
- anchors: getAnchors(accent)
204
- }
205
- },
206
- ...props.childrenThemes && getSubThemesPalettes(props.childrenThemes, !1),
207
- ...props.grandChildrenThemes && getSubThemesPalettes(props.grandChildrenThemes, !0)
208
- };
209
- }
210
- const getComponentThemes = (components) => Object.fromEntries(
211
- Object.entries(components).map(([componentName, { template }]) => [
212
- componentName,
213
- {
214
- parent: "",
215
- template: template || "base"
216
- }
217
- ])
218
- );
219
- function createPalettes(palettes) {
220
- const accentPalettes = palettes.accent ? getThemeSuitePalettes(palettes.accent) : null, basePalettes = getThemeSuitePalettes(palettes.base);
221
- return Object.fromEntries(
222
- Object.entries(palettes).flatMap(([name, palette]) => {
223
- const palettes2 = getThemeSuitePalettes(palette), oppositePalettes = name.startsWith("accent") ? basePalettes : accentPalettes || basePalettes;
224
- if (!oppositePalettes)
225
- return [];
226
- const oppositeLight = oppositePalettes.light, oppositeDark = oppositePalettes.dark, bgOffset = 7;
227
- return [
228
- [
229
- name === "base" ? "light" : `light_${name}`,
230
- [
231
- oppositeLight[bgOffset],
232
- ...palettes2.light,
233
- oppositeLight[oppositeLight.length - bgOffset - 1]
234
- ]
235
- ],
236
- [
237
- name === "base" ? "dark" : `dark_${name}`,
238
- [
239
- oppositeDark[oppositeDark.length - bgOffset - 1],
240
- ...palettes2.dark,
241
- oppositeDark[bgOffset]
242
- ]
243
- ]
244
- ];
245
- })
246
- );
247
- }
248
- function createV4ThemeBuilder(props) {
249
- const {
250
- getTheme,
251
- extra,
252
- accentExtra,
253
- childrenThemes = null,
254
- grandChildrenThemes = null,
255
- templates = defaultTemplates,
256
- palettes = defaultPalettes,
257
- accentTheme,
258
- componentThemes = templates === defaultTemplates ? defaultComponentThemes : void 0
259
- } = props;
260
- let themeBuilder = createThemeBuilder().addPalettes(palettes).addTemplates(templates).addThemes({
261
- light: {
262
- template: "base",
263
- palette: "light",
264
- nonInheritedValues: {
265
- ...extra?.light,
266
- ...accentTheme && palettes.light_accent && {
267
- accent1: palettes.light_accent[PALETTE_BACKGROUND_OFFSET + 0],
268
- accent2: palettes.light_accent[PALETTE_BACKGROUND_OFFSET + 1],
269
- accent3: palettes.light_accent[PALETTE_BACKGROUND_OFFSET + 2],
270
- accent4: palettes.light_accent[PALETTE_BACKGROUND_OFFSET + 3],
271
- accent5: palettes.light_accent[PALETTE_BACKGROUND_OFFSET + 4],
272
- accent6: palettes.light_accent[PALETTE_BACKGROUND_OFFSET + 5],
273
- accent7: palettes.light_accent[PALETTE_BACKGROUND_OFFSET + 6],
274
- accent8: palettes.light_accent[PALETTE_BACKGROUND_OFFSET + 7],
275
- accent9: palettes.light_accent[PALETTE_BACKGROUND_OFFSET + 8],
276
- accent10: palettes.light_accent[PALETTE_BACKGROUND_OFFSET + 9],
277
- accent11: palettes.light_accent[PALETTE_BACKGROUND_OFFSET + 10],
278
- accent12: palettes.light_accent[PALETTE_BACKGROUND_OFFSET + 11]
279
- }
280
- }
281
- },
282
- dark: {
283
- template: "base",
284
- palette: "dark",
285
- nonInheritedValues: {
286
- ...extra?.dark,
287
- ...accentTheme && palettes.dark_accent && {
288
- accent1: palettes.dark_accent[PALETTE_BACKGROUND_OFFSET + 0],
289
- accent2: palettes.dark_accent[PALETTE_BACKGROUND_OFFSET + 1],
290
- accent3: palettes.dark_accent[PALETTE_BACKGROUND_OFFSET + 2],
291
- accent4: palettes.dark_accent[PALETTE_BACKGROUND_OFFSET + 3],
292
- accent5: palettes.dark_accent[PALETTE_BACKGROUND_OFFSET + 4],
293
- accent6: palettes.dark_accent[PALETTE_BACKGROUND_OFFSET + 5],
294
- accent7: palettes.dark_accent[PALETTE_BACKGROUND_OFFSET + 6],
295
- accent8: palettes.dark_accent[PALETTE_BACKGROUND_OFFSET + 7],
296
- accent9: palettes.dark_accent[PALETTE_BACKGROUND_OFFSET + 8],
297
- accent10: palettes.dark_accent[PALETTE_BACKGROUND_OFFSET + 9],
298
- accent11: palettes.dark_accent[PALETTE_BACKGROUND_OFFSET + 10],
299
- accent12: palettes.dark_accent[PALETTE_BACKGROUND_OFFSET + 11]
300
- }
301
- }
302
- }
303
- });
304
- return childrenThemes && (themeBuilder = themeBuilder.addChildThemes(childrenThemes, {
305
- avoidNestingWithin: ["accent"]
306
- })), grandChildrenThemes && (themeBuilder = themeBuilder.addChildThemes(grandChildrenThemes, {
307
- avoidNestingWithin: ["accent"]
308
- })), palettes.light_accent && (themeBuilder = themeBuilder.addChildThemes(
309
- {
310
- accent: [
311
- {
312
- parent: "light",
313
- template: "base",
314
- palette: "light_accent",
315
- nonInheritedValues: accentExtra?.light
316
- },
317
- {
318
- parent: "dark",
319
- template: "base",
320
- palette: "dark_accent",
321
- nonInheritedValues: accentExtra?.dark
322
- }
323
- ]
324
- },
325
- {
326
- avoidNestingWithin: Object.keys(childrenThemes || {})
327
- }
328
- )), componentThemes && (themeBuilder = themeBuilder.addComponentThemes(getComponentThemes(componentThemes), {
329
- avoidNestingWithin: Object.keys(grandChildrenThemes || {})
330
- })), getTheme && (themeBuilder = themeBuilder.getTheme(getTheme)), {
331
- themeBuilder,
332
- themes: themeBuilder.build()
333
- };
334
- }
335
- export {
336
- createPalettes,
337
- createSimpleThemeBuilder,
338
- createThemes,
339
- createV4ThemeBuilder,
340
- createV4Themes,
341
- getComponentThemes,
342
- getLastBuilder
343
- };
344
- //# sourceMappingURL=createThemes.js.map