@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.
- package/dist/cjs/ThemeBuilder.cjs +131 -68
- package/dist/cjs/ThemeBuilder.native.js +208 -132
- package/dist/cjs/ThemeBuilder.native.js.map +1 -1
- package/dist/cjs/createStudioThemes.cjs +19 -17
- package/dist/cjs/createStudioThemes.native.js +19 -17
- package/dist/cjs/createStudioThemes.native.js.map +1 -1
- package/dist/cjs/createThemes.cjs +173 -123
- package/dist/cjs/createThemes.native.js +287 -248
- package/dist/cjs/createThemes.native.js.map +1 -1
- package/dist/cjs/defaultComponentThemes.cjs +12 -10
- package/dist/cjs/defaultComponentThemes.native.js +12 -10
- package/dist/cjs/defaultComponentThemes.native.js.map +1 -1
- package/dist/cjs/defaultTemplates.cjs +137 -132
- package/dist/cjs/defaultTemplates.native.js +144 -142
- package/dist/cjs/defaultTemplates.native.js.map +1 -1
- package/dist/cjs/defaultTemplatesStronger.cjs +135 -130
- package/dist/cjs/defaultTemplatesStronger.native.js +142 -140
- package/dist/cjs/defaultTemplatesStronger.native.js.map +1 -1
- package/dist/cjs/defaultTemplatesStrongest.cjs +135 -130
- package/dist/cjs/defaultTemplatesStrongest.native.js +142 -140
- package/dist/cjs/defaultTemplatesStrongest.native.js.map +1 -1
- package/dist/cjs/getThemeSuitePalettes.cjs +61 -50
- package/dist/cjs/getThemeSuitePalettes.native.js +79 -55
- package/dist/cjs/getThemeSuitePalettes.native.js.map +1 -1
- package/dist/cjs/helpers.cjs +12 -10
- package/dist/cjs/helpers.native.js +12 -10
- package/dist/cjs/helpers.native.js.map +1 -1
- package/dist/cjs/index.cjs +19 -17
- package/dist/cjs/index.native.js +19 -17
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/masks.cjs +29 -26
- package/dist/cjs/masks.native.js +98 -96
- package/dist/cjs/masks.native.js.map +1 -1
- package/dist/cjs/types.cjs +7 -5
- package/dist/cjs/types.native.js +7 -5
- package/dist/cjs/types.native.js.map +1 -1
- package/dist/esm/ThemeBuilder.mjs +119 -58
- package/dist/esm/ThemeBuilder.mjs.map +1 -1
- package/dist/esm/ThemeBuilder.native.js +196 -122
- package/dist/esm/ThemeBuilder.native.js.map +1 -1
- package/dist/esm/createStudioThemes.mjs +2 -2
- package/dist/esm/createStudioThemes.mjs.map +1 -1
- package/dist/esm/createStudioThemes.native.js +2 -2
- package/dist/esm/createStudioThemes.native.js.map +1 -1
- package/dist/esm/createThemes.mjs +156 -108
- package/dist/esm/createThemes.mjs.map +1 -1
- package/dist/esm/createThemes.native.js +270 -233
- package/dist/esm/createThemes.native.js.map +1 -1
- package/dist/esm/defaultTemplates.mjs +125 -122
- package/dist/esm/defaultTemplates.mjs.map +1 -1
- package/dist/esm/defaultTemplates.native.js +130 -130
- package/dist/esm/defaultTemplates.native.js.map +1 -1
- package/dist/esm/defaultTemplatesStronger.mjs +123 -120
- package/dist/esm/defaultTemplatesStronger.mjs.map +1 -1
- package/dist/esm/defaultTemplatesStronger.native.js +128 -128
- package/dist/esm/defaultTemplatesStronger.native.js.map +1 -1
- package/dist/esm/defaultTemplatesStrongest.mjs +123 -120
- package/dist/esm/defaultTemplatesStrongest.mjs.map +1 -1
- package/dist/esm/defaultTemplatesStrongest.native.js +128 -128
- package/dist/esm/defaultTemplatesStrongest.native.js.map +1 -1
- package/dist/esm/getThemeSuitePalettes.mjs +49 -40
- package/dist/esm/getThemeSuitePalettes.mjs.map +1 -1
- package/dist/esm/getThemeSuitePalettes.native.js +66 -44
- package/dist/esm/getThemeSuitePalettes.native.js.map +1 -1
- package/dist/esm/index.js +8 -24
- package/dist/esm/index.js.map +1 -6
- package/dist/esm/masks.mjs +17 -16
- package/dist/esm/masks.mjs.map +1 -1
- package/dist/esm/masks.native.js +18 -18
- package/dist/esm/masks.native.js.map +1 -1
- package/package.json +8 -10
- package/src/ThemeBuilder.ts +6 -0
- package/types/ThemeBuilder.d.ts.map +1 -1
- package/dist/cjs/ThemeBuilder.js +0 -184
- package/dist/cjs/ThemeBuilder.js.map +0 -6
- package/dist/cjs/createStudioThemes.js +0 -30
- package/dist/cjs/createStudioThemes.js.map +0 -6
- package/dist/cjs/createThemes.js +0 -356
- package/dist/cjs/createThemes.js.map +0 -6
- package/dist/cjs/defaultComponentThemes.js +0 -41
- package/dist/cjs/defaultComponentThemes.js.map +0 -6
- package/dist/cjs/defaultTemplates.js +0 -138
- package/dist/cjs/defaultTemplates.js.map +0 -6
- package/dist/cjs/defaultTemplatesStronger.js +0 -137
- package/dist/cjs/defaultTemplatesStronger.js.map +0 -6
- package/dist/cjs/defaultTemplatesStrongest.js +0 -137
- package/dist/cjs/defaultTemplatesStrongest.js.map +0 -6
- package/dist/cjs/getThemeSuitePalettes.js +0 -69
- package/dist/cjs/getThemeSuitePalettes.js.map +0 -6
- package/dist/cjs/helpers.js +0 -29
- package/dist/cjs/helpers.js.map +0 -6
- package/dist/cjs/index.js +0 -32
- package/dist/cjs/index.js.map +0 -6
- package/dist/cjs/masks.js +0 -86
- package/dist/cjs/masks.js.map +0 -6
- package/dist/cjs/types.js +0 -14
- package/dist/cjs/types.js.map +0 -6
- package/dist/esm/ThemeBuilder.js +0 -174
- package/dist/esm/ThemeBuilder.js.map +0 -6
- package/dist/esm/createStudioThemes.js +0 -18
- package/dist/esm/createStudioThemes.js.map +0 -6
- package/dist/esm/createThemes.js +0 -344
- package/dist/esm/createThemes.js.map +0 -6
- package/dist/esm/defaultComponentThemes.js +0 -25
- package/dist/esm/defaultComponentThemes.js.map +0 -6
- package/dist/esm/defaultTemplates.js +0 -122
- package/dist/esm/defaultTemplates.js.map +0 -6
- package/dist/esm/defaultTemplatesStronger.js +0 -121
- package/dist/esm/defaultTemplatesStronger.js.map +0 -6
- package/dist/esm/defaultTemplatesStrongest.js +0 -121
- package/dist/esm/defaultTemplatesStrongest.js.map +0 -6
- package/dist/esm/getThemeSuitePalettes.js +0 -53
- package/dist/esm/getThemeSuitePalettes.js.map +0 -6
- package/dist/esm/helpers.js +0 -13
- package/dist/esm/helpers.js.map +0 -6
- package/dist/esm/masks.js +0 -78
- package/dist/esm/masks.js.map +0 -6
- package/dist/esm/types.js +0 -1
- 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
|
package/dist/cjs/masks.js.map
DELETED
|
@@ -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
|
package/dist/cjs/types.js.map
DELETED
package/dist/esm/ThemeBuilder.js
DELETED
|
@@ -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": "AAQA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAwFA,MAAM,aAGX;AAAA,EAGA,YAAmB,OAAc;AAAd;AAAA,EAAe;AAAA,EAF1B;AAAA,EAIR,YAAgD,UAAa;AAC3D,gBAAK,MAAM,WAAW;AAAA;AAAA,MAEpB,GAAI,KAAK,MAAM;AAAA,MACf,GAAG;AAAA,IACL,GACO;AAAA,EAMT;AAAA,EAEA,aAAkD,WAAc;AAC9D,gBAAK,MAAM,YAAY;AAAA;AAAA,MAErB,GAAI,KAAK,MAAM;AAAA,MACf,GAAG;AAAA,IACL,GACO;AAAA,EAMT;AAAA,EAEA,SAA0C,OAAU;AAClD,gBAAK,MAAM,QAAQ;AAAA;AAAA,MAEjB,GAAI,KAAK,MAAM;AAAA,MACf,GAAI;AAAA,QACF,cAAc,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,WAAW,GAAG,CAAC,CAAC;AAAA,MACjE;AAAA,IACF,GACO;AAAA,EAMT;AAAA;AAAA,EAGA,eAAgE,CAAC;AAAA,EAEjE,UACE,QACA;AACA,gBAAK,aAAa,KAAK,EAAE,MAAM,UAAU,MAAM,CAAC,MAAM,EAAE,CAAC,GAEzD,KAAK,MAAM,SAAS;AAAA;AAAA,MAElB,GAAI,KAAK,MAAM;AAAA,MACf,GAAG;AAAA,IACL,GAUO;AAAA,EAUT;AAAA;AAAA,EAGA,mBAGE,sBACA,SAGA;AACA,WAAK,KAAK,eAAe,sBAAsB,OAAO,GAC/C;AAAA,EACT;AAAA,EAEA,eAIE,sBACA,SAGA;AACA,UAAM,gBAAgB,KAAK,MAAM;AACjC,QAAI,CAAC;AACH,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAGF,SAAK,aAAa,KAAK,EAAE,MAAM,eAAe,MAAM,CAAC,sBAAsB,OAAO,EAAE,CAAC;AAMrF,UAAM,oBAAoB,OAAO,KAAK,aAAa,GAC7C,qBAAqB,OAAO,KAAK,oBAAoB,GAErD,uBAAuB,kBAAkB,QAAQ,CAAC,WAAW;AACjE,YAAM,qBAAqB,SAAS;AACpC,aAAI,sBAEA,mBAAmB;AAAA,QACjB,CAAC,cAAc,OAAO,WAAW,SAAS,KAAK,OAAO,SAAS,SAAS;AAAA,MAC1E,IAEO,CAAC,IAIL,mBACJ,IAAI,CAAC,YAAY;AAChB,cAAM,WAAW,GAAG,MAAM,IAAI,OAAO,IAC/B,aAAa,qBAAqB,OAAO;AAmB/C,eAjBI,wBAAwB,cACR,WAAW,mBAEjB,KAAK,CAAC,UAET,SAAS,WAAW,SAAS,WAAW,OAAO,SAAS,GAAG,IACvD,KAEF,OAAO,WAAW,IAAI,KAAK,OAAO,SAAS,IAAI,CACvD,KAQD,OAAO,SAAS,IAAI,OAAO,EAAE,IACxB,OAGF,CAAC,UAAU,UAAU;AAAA,MAC9B,CAAC,EACA,OAAO,OAAO;AAAA,IACnB,CAAC,GAQK,cAAc,OAAO,YAAY,oBAAoB,GAErD,OAAO;AAAA;AAAA,MAEX,GAAI,KAAK,MAAM;AAAA,MACf,GAAG;AAAA,IACL;AAGA,gBAAK,MAAM,SAAS,MAEb;AAAA,EAMT;AAAA,EAEA,SACE,IAUA;AACA,gBAAK,cAAc,IACZ;AAAA,EACT;AAAA,EAEA,QAAoD;AAClD,QAAI,CAAC,KAAK,MAAM;AACd,aAAO,CAAC;AAGV,UAAM,MAAM,CAAC,GACP,eAIA,CAAC;AAEP,eAAW,aAAa,KAAK,MAAM,QAAQ;AACzC,YAAM,YAAY,UAAU,MAAM,GAAG,GAC/B,aAAa,UAAU,MAAM,GAAG,UAAU,SAAS,CAAC,EAAE,KAAK,GAAG,GAE9D,cAAc,KAAK,MAAM,OAAO,SAAS,GACzC,kBAAkB,MAAM,QAAQ,WAAW,KAC5C,MAAM;AACL,cAAM,QAAQ,YAAY;AAAA;AAAA,UAExB,CAAC,MACC,EAAE,SACE,WAAW,SAAS,EAAE,MAAO,KAAK,WAAW,WAAW,EAAE,MAAO,IACjE;AAAA,QACR;AACA,eAAK,SACI;AAAA,MAGX,GAAG,IACH;AAEJ,UAAK;AAKL,YAAI,WAAW;AACb,cAAI,SAAS,IAAI,gBAAgB;AAAA,iBACxB,UAAU;AACnB,uBAAa,KAAK,EAAE,YAAY,WAAW,MAAM,gBAAgB,CAAC;AAAA,aAC7D;AACL,cAAI;AAAA,YACF,SAAS,cAAc;AAAA,YACvB,UAAU;AAAA,YACV,GAAG;AAAA,UACL,IAAI;AAEJ,gBAAM,mBAAmB,KAAK,MAAM,OAAO,UAAU;AAErD,cAAI,CAAC,KAAK,MAAM;AACd,kBAAM,IAAI;AAAA,cACR,wDAAwD,SAAS;AAAA,YACnE;AAGF,cAAI,UAAU,KAAK,MAAM,SAAS,eAAe,EAAE,GAC/C,oBAAoB,GAAG,UAAU,IAAI,WAAW;AAEpD,iBAAO,CAAC,WAAW;AACjB,YAAI,qBAAqB,KAAK,MAAM,YAClC,UAAU,KAAK,MAAM,SAAS,iBAAiB,GAC/C,cAAc,qBAEd,oBAAoB,kBAAkB,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,KAAK,GAAG;AAI1E,cAAI,CAAC,SAAS;AACZ,kBAAM,MACJ,QAAQ,IAAI,aAAa,eACrB,KAAK,SAAS,KAAK,WAAW;AAAA,wBACtB,KAAK,UAAU,eAAe,CAAC;AAAA,oBACnC,KAAK,UAAU,gBAAgB,CAAC;AAAA,wBAC5B,OAAO,KAAK,KAAK,MAAM,QAAQ,EAAE,KAAK,IAAI,CAAC,MACnD;AACN,kBAAM,IAAI,MAAM,uBAAuB,GAAG,EAAE;AAAA,UAC9C;AAEA,gBAAM,WACJ,KAAK,MAAM,YAAY,YAAY;AAAA,UAEnC,KAAK,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,IAAI,YAAY,EAAE;AAE1D,cAAI,CAAC;AACH,kBAAM,IAAI;AAAA,cACR,yBAAyB,SAAS,KAAK,YAAY;AAAA,IAAqB,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC,CAAC,EAAE,KAAK;AAAA,IAAO,CAAC;AAAA,YAC/H;AAGF,gBAAM,QAAQ;AAAA,YACZ,KAAK,MAAM;AAAA,YACX;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAEA,cAAI,SAAS,IAAI,KAAK,cAClB;AAAA,YACE,GAAG;AAAA,YACH,GAAG,KAAK,YAAY;AAAA,cAClB;AAAA,cACA,MAAM;AAAA,cACN,OAAO,UAAU;AAAA,cACjB;AAAA,cACA,QAAQ,iBAAiB,KAAK,UAAU,CAAC,CAAC,IACrC,UAAU,CAAC,IACZ;AAAA,cACJ,aAAa,UAAU,MAAM,GAAG,EAAE;AAAA,cAClC;AAAA,cACA;AAAA,YACF,CAAC;AAAA,UACH,IACA;AAAA,QACN;AAAA,IACF;AAEA,eAAW,EAAE,MAAM,WAAW,WAAW,KAAK,cAAc;AAC1D,YAAM,SAAS,IAAI,UAAU;AAE7B,UAAI,CAAC;AAEH;AAGF,YAAM,EAAE,MAAM,UAAU,GAAG,QAAQ,IAAI;AACvC,UAAI,eAAe,KAAK,MAAM,QAAQ,QAAQ;AAE9C,UAAI,CAAC;AACH,cAAM,IAAI,MAAM,WAAW,QAAQ,EAAE;AAGvC,YAAM,cAAc,KAAK,MAAM,OAAO,UAAU;AAEhD,UAAI,eAAe,kBAAkB,aAAa;AAChD,cAAM,EAAE,MAAAA,OAAM,GAAG,UAAU,IAAI,YAAY;AAC3C,QAAIA,UACF,eAAe,KAAK,MAAM,QAAQA,KAAI,IAExC,OAAO,OAAO,SAAS,SAAS;AAAA,MAClC;AAEA,UAAI,SAAS,IAAI;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AACF;AAEO,SAAS,qBAAqB;AACnC,SAAO,IAAI,aAAa,CAAC,CAAC;AAC5B;",
|
|
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
|
-
}
|
package/dist/esm/createThemes.js
DELETED
|
@@ -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
|