@gradient-ui/gradient-engine 0.6.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -6
- package/dist/animation.cjs +13 -13
- package/dist/animation.mjs +36 -36
- package/dist/core.cjs +1 -1
- package/dist/core.mjs +17 -17
- package/dist/css-B3xGfmW1.js +17 -0
- package/dist/css-CREh0Awz.cjs +1 -0
- package/dist/design-tokens.cjs +1 -1
- package/dist/design-tokens.mjs +5 -5
- package/dist/designTokens-Bw-HZ1f1.js +116 -0
- package/dist/designTokens-DsIk5RSi.cjs +1 -0
- package/dist/effects.cjs +67 -67
- package/dist/effects.mjs +153 -153
- package/dist/formatters.cjs +1 -1
- package/dist/formatters.mjs +33 -33
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +63 -63
- package/dist/material.cjs +8 -8
- package/dist/material.mjs +170 -170
- package/dist/presets-DA-6KYJh.cjs +316 -0
- package/dist/presets-Du6aTLtD.js +4025 -0
- package/dist/svg-B2CaHCLv.js +118 -0
- package/dist/svg-BtMrj3fP.cjs +32 -0
- package/dist/types/animation/css.d.ts +2 -2
- package/dist/types/animation/index.d.ts +1 -1
- package/dist/types/colorSystem.d.ts +3 -3
- package/dist/types/core.d.ts +7 -7
- package/dist/types/designTokens.d.ts +4 -4
- package/dist/types/effects/index.d.ts +2 -2
- package/dist/types/effects/morph.d.ts +1 -1
- package/dist/types/effects/shadow.d.ts +1 -1
- package/dist/types/formatters/canvas.d.ts +1 -1
- package/dist/types/formatters/css.d.ts +1 -1
- package/dist/types/formatters/index.d.ts +3 -3
- package/dist/types/formatters/svg.d.ts +1 -1
- package/dist/types/index.d.ts +11 -11
- package/dist/types/material.d.ts +1 -1
- package/dist/types/model.d.ts +3 -3
- package/dist/types/palette.d.ts +1 -1
- package/dist/types/presets.d.ts +1 -1
- package/dist/types/recipes.d.ts +12 -12
- package/dist/types/tokens.d.ts +3 -3
- package/dist/types/types.d.ts +1 -1
- package/dist/types/utils.d.ts +1 -1
- package/dist/{types-BFr1fN-7.js → types-B0eCazk8.js} +4 -4
- package/dist/types-BFkUlDkW.cjs +1 -0
- package/dist/types-cjs/animation/css.d.cts +12 -0
- package/dist/types-cjs/animation/index.d.cts +1 -0
- package/dist/types-cjs/color.d.cts +11 -0
- package/dist/types-cjs/colorMath.d.cts +3 -0
- package/dist/types-cjs/colorSeeds.d.cts +22 -0
- package/dist/types-cjs/colorSystem.d.cts +20 -0
- package/dist/types-cjs/constants.d.cts +3 -0
- package/dist/types-cjs/core.d.cts +9 -0
- package/dist/types-cjs/designTokens.d.cts +24 -0
- package/dist/types-cjs/effects/index.d.cts +2 -0
- package/dist/types-cjs/effects/morph.d.cts +8 -0
- package/dist/types-cjs/effects/shadow.d.cts +3 -0
- package/dist/types-cjs/formatters/canvas.d.cts +2 -0
- package/dist/types-cjs/formatters/css.d.cts +3 -0
- package/dist/types-cjs/formatters/index.d.cts +3 -0
- package/dist/types-cjs/formatters/svg.d.cts +5 -0
- package/dist/types-cjs/index.d.cts +11 -0
- package/dist/types-cjs/material.d.cts +1 -0
- package/dist/types-cjs/model.d.cts +5 -0
- package/dist/types-cjs/package.json +3 -0
- package/dist/types-cjs/palette.d.cts +13 -0
- package/dist/types-cjs/presets.d.cts +239 -0
- package/dist/types-cjs/recipes.d.cts +14 -0
- package/dist/types-cjs/scheme.d.cts +3 -0
- package/dist/types-cjs/tokens.d.cts +107 -0
- package/dist/types-cjs/types.d.cts +127 -0
- package/dist/types-cjs/utils.d.cts +10 -0
- package/dist/utils-Bry9BTmj.cjs +1 -0
- package/dist/utils-VaqPefmS.js +76 -0
- package/package.json +59 -23
- package/dist/css-BVHXLMRl.cjs +0 -1
- package/dist/css-DVaTTIqS.js +0 -17
- package/dist/designTokens-BnzZfRES.js +0 -116
- package/dist/designTokens-C1WdzS3v.cjs +0 -1
- package/dist/presets-BBLdqUE4.cjs +0 -316
- package/dist/presets-DYXLx_nN.js +0 -4025
- package/dist/svg-dGtLYnIJ.cjs +0 -32
- package/dist/svg-hZus3ztj.js +0 -118
- package/dist/types-BMLEvdee.cjs +0 -1
- package/dist/utils-BzSNCfat.js +0 -76
- package/dist/utils-D83DMCMa.cjs +0 -1
package/README.md
CHANGED
|
@@ -217,12 +217,6 @@ generate the material/model on the server, serialize `cssVars`, `cssText` and
|
|
|
217
217
|
`keyframes`, then let the client adapter mount optional runtime effects such as
|
|
218
218
|
morph SVG filters.
|
|
219
219
|
|
|
220
|
-
## Version
|
|
221
|
-
|
|
222
|
-
`0.5.0` was the first standalone release line for the engine extracted from
|
|
223
|
-
Gradient UI. `0.6.0` adds the public morph blend-mode API used by the
|
|
224
|
-
`0.5.0` core release line.
|
|
225
|
-
|
|
226
220
|
## License
|
|
227
221
|
|
|
228
222
|
MIT
|
package/dist/animation.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const utils=require("./utils-Bry9BTmj.cjs"),createShiftKeyframes=name=>`@keyframes ${name} {
|
|
2
2
|
0% {
|
|
3
3
|
background-position: 0% 50%;
|
|
4
4
|
}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
100% {
|
|
11
11
|
background-position: 0% 50%;
|
|
12
12
|
}
|
|
13
|
-
}`,
|
|
13
|
+
}`,createPulseKeyframes=name=>`@keyframes ${name} {
|
|
14
14
|
0%, 100% {
|
|
15
15
|
filter: saturate(1) brightness(1);
|
|
16
16
|
}
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
50% {
|
|
19
19
|
filter: saturate(1.22) brightness(1.08);
|
|
20
20
|
}
|
|
21
|
-
}`,
|
|
21
|
+
}`,createHueRotateKeyframes=name=>`@keyframes ${name} {
|
|
22
22
|
0%, 100% {
|
|
23
23
|
filter: hue-rotate(0deg) saturate(1);
|
|
24
24
|
}
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
50% {
|
|
27
27
|
filter: hue-rotate(28deg) saturate(1.18);
|
|
28
28
|
}
|
|
29
|
-
}`,
|
|
29
|
+
}`,createRotateKeyframes=name=>`@keyframes ${name} {
|
|
30
30
|
from {
|
|
31
31
|
transform: translate(-50%, -50%) rotate(0deg);
|
|
32
32
|
}
|
|
@@ -34,12 +34,12 @@
|
|
|
34
34
|
to {
|
|
35
35
|
transform: translate(-50%, -50%) rotate(360deg);
|
|
36
36
|
}
|
|
37
|
-
}`,
|
|
37
|
+
}`,getGradientAnimationOptions=(options={})=>{const name=options.name??"g-gradient-shift",duration=utils.toCssDuration(options.duration??6e3),easing=options.easing??"ease-in-out",selector=options.selector??".g-gradient-animated",preset=options.preset??"shift";return{duration,easing,name,preset,selector}},toGradientAnimationKeyframes=(options={})=>{const{name,preset}=getGradientAnimationOptions(options);return preset==="pulse"?createPulseKeyframes(name):preset==="hue-rotate"?createHueRotateKeyframes(name):preset==="rotate"?createRotateKeyframes(name):createShiftKeyframes(name)},toGradientAnimationValue=(options={})=>{const{duration,easing,name,preset}=getGradientAnimationOptions(options);return`${name} ${duration} ${preset==="rotate"?"linear":easing} infinite`},toGradientAnimationStyles=(options={})=>{const{duration,easing,name,preset,selector}=getGradientAnimationOptions(options);return preset==="rotate"?`${selector} {
|
|
38
38
|
position: relative;
|
|
39
39
|
overflow: hidden;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
${
|
|
42
|
+
${selector}::before {
|
|
43
43
|
content: '';
|
|
44
44
|
position: absolute;
|
|
45
45
|
top: 50%;
|
|
@@ -49,12 +49,12 @@ ${a}::before {
|
|
|
49
49
|
min-width: 150vmax;
|
|
50
50
|
min-height: 150vmax;
|
|
51
51
|
background: inherit;
|
|
52
|
-
animation: ${
|
|
52
|
+
animation: ${name} ${duration} linear infinite;
|
|
53
53
|
transform-origin: center;
|
|
54
|
-
}`:
|
|
55
|
-
animation: ${
|
|
56
|
-
}`:`${
|
|
57
|
-
animation: ${
|
|
54
|
+
}`:preset==="pulse"||preset==="hue-rotate"?`${selector} {
|
|
55
|
+
animation: ${name} ${duration} ${easing} infinite;
|
|
56
|
+
}`:`${selector} {
|
|
57
|
+
animation: ${name} ${duration} ${easing} infinite;
|
|
58
58
|
background-size: 220% 220%;
|
|
59
|
-
}`}
|
|
60
|
-
${
|
|
59
|
+
}`},toGradientAnimationCSS=(options={})=>{const keyframes=toGradientAnimationKeyframes(options),styles=toGradientAnimationStyles(options);return`${keyframes}
|
|
60
|
+
${styles}`};exports.getGradientAnimationOptions=getGradientAnimationOptions;exports.toGradientAnimationCSS=toGradientAnimationCSS;exports.toGradientAnimationKeyframes=toGradientAnimationKeyframes;exports.toGradientAnimationStyles=toGradientAnimationStyles;exports.toGradientAnimationValue=toGradientAnimationValue;
|
package/dist/animation.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as
|
|
2
|
-
const
|
|
1
|
+
import { t as toCssDuration } from "./utils-VaqPefmS.js";
|
|
2
|
+
const createShiftKeyframes = (name) => `@keyframes ${name} {
|
|
3
3
|
0% {
|
|
4
4
|
background-position: 0% 50%;
|
|
5
5
|
}
|
|
@@ -11,7 +11,7 @@ const u = (t) => `@keyframes ${t} {
|
|
|
11
11
|
100% {
|
|
12
12
|
background-position: 0% 50%;
|
|
13
13
|
}
|
|
14
|
-
}`,
|
|
14
|
+
}`, createPulseKeyframes = (name) => `@keyframes ${name} {
|
|
15
15
|
0%, 100% {
|
|
16
16
|
filter: saturate(1) brightness(1);
|
|
17
17
|
}
|
|
@@ -19,7 +19,7 @@ const u = (t) => `@keyframes ${t} {
|
|
|
19
19
|
50% {
|
|
20
20
|
filter: saturate(1.22) brightness(1.08);
|
|
21
21
|
}
|
|
22
|
-
}`,
|
|
22
|
+
}`, createHueRotateKeyframes = (name) => `@keyframes ${name} {
|
|
23
23
|
0%, 100% {
|
|
24
24
|
filter: hue-rotate(0deg) saturate(1);
|
|
25
25
|
}
|
|
@@ -27,7 +27,7 @@ const u = (t) => `@keyframes ${t} {
|
|
|
27
27
|
50% {
|
|
28
28
|
filter: hue-rotate(28deg) saturate(1.18);
|
|
29
29
|
}
|
|
30
|
-
}`,
|
|
30
|
+
}`, createRotateKeyframes = (name) => `@keyframes ${name} {
|
|
31
31
|
from {
|
|
32
32
|
transform: translate(-50%, -50%) rotate(0deg);
|
|
33
33
|
}
|
|
@@ -35,29 +35,29 @@ const u = (t) => `@keyframes ${t} {
|
|
|
35
35
|
to {
|
|
36
36
|
transform: translate(-50%, -50%) rotate(360deg);
|
|
37
37
|
}
|
|
38
|
-
}`,
|
|
39
|
-
const
|
|
38
|
+
}`, getGradientAnimationOptions = (options = {}) => {
|
|
39
|
+
const name = options.name ?? "g-gradient-shift", duration = toCssDuration(options.duration ?? 6e3), easing = options.easing ?? "ease-in-out", selector = options.selector ?? ".g-gradient-animated", preset = options.preset ?? "shift";
|
|
40
40
|
return {
|
|
41
|
-
duration
|
|
42
|
-
easing
|
|
43
|
-
name
|
|
44
|
-
preset
|
|
45
|
-
selector
|
|
41
|
+
duration,
|
|
42
|
+
easing,
|
|
43
|
+
name,
|
|
44
|
+
preset,
|
|
45
|
+
selector
|
|
46
46
|
};
|
|
47
|
-
},
|
|
48
|
-
const { name
|
|
49
|
-
return
|
|
50
|
-
},
|
|
51
|
-
const { duration
|
|
52
|
-
return `${
|
|
53
|
-
},
|
|
54
|
-
const { duration
|
|
55
|
-
return
|
|
47
|
+
}, toGradientAnimationKeyframes = (options = {}) => {
|
|
48
|
+
const { name, preset } = getGradientAnimationOptions(options);
|
|
49
|
+
return preset === "pulse" ? createPulseKeyframes(name) : preset === "hue-rotate" ? createHueRotateKeyframes(name) : preset === "rotate" ? createRotateKeyframes(name) : createShiftKeyframes(name);
|
|
50
|
+
}, toGradientAnimationValue = (options = {}) => {
|
|
51
|
+
const { duration, easing, name, preset } = getGradientAnimationOptions(options);
|
|
52
|
+
return `${name} ${duration} ${preset === "rotate" ? "linear" : easing} infinite`;
|
|
53
|
+
}, toGradientAnimationStyles = (options = {}) => {
|
|
54
|
+
const { duration, easing, name, preset, selector } = getGradientAnimationOptions(options);
|
|
55
|
+
return preset === "rotate" ? `${selector} {
|
|
56
56
|
position: relative;
|
|
57
57
|
overflow: hidden;
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
${
|
|
60
|
+
${selector}::before {
|
|
61
61
|
content: '';
|
|
62
62
|
position: absolute;
|
|
63
63
|
top: 50%;
|
|
@@ -67,23 +67,23 @@ ${i}::before {
|
|
|
67
67
|
min-width: 150vmax;
|
|
68
68
|
min-height: 150vmax;
|
|
69
69
|
background: inherit;
|
|
70
|
-
animation: ${
|
|
70
|
+
animation: ${name} ${duration} linear infinite;
|
|
71
71
|
transform-origin: center;
|
|
72
|
-
}` :
|
|
73
|
-
animation: ${
|
|
74
|
-
}` : `${
|
|
75
|
-
animation: ${
|
|
72
|
+
}` : preset === "pulse" || preset === "hue-rotate" ? `${selector} {
|
|
73
|
+
animation: ${name} ${duration} ${easing} infinite;
|
|
74
|
+
}` : `${selector} {
|
|
75
|
+
animation: ${name} ${duration} ${easing} infinite;
|
|
76
76
|
background-size: 220% 220%;
|
|
77
77
|
}`;
|
|
78
|
-
},
|
|
79
|
-
const
|
|
80
|
-
return `${
|
|
81
|
-
${
|
|
78
|
+
}, toGradientAnimationCSS = (options = {}) => {
|
|
79
|
+
const keyframes = toGradientAnimationKeyframes(options), styles = toGradientAnimationStyles(options);
|
|
80
|
+
return `${keyframes}
|
|
81
|
+
${styles}`;
|
|
82
82
|
};
|
|
83
83
|
export {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
84
|
+
getGradientAnimationOptions,
|
|
85
|
+
toGradientAnimationCSS,
|
|
86
|
+
toGradientAnimationKeyframes,
|
|
87
|
+
toGradientAnimationStyles,
|
|
88
|
+
toGradientAnimationValue
|
|
89
89
|
};
|
package/dist/core.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const presets=require("./presets-DA-6KYJh.cjs"),css=require("./css-CREh0Awz.cjs"),types=require("./types-BFkUlDkW.cjs"),createGradient=(palette,options={})=>css.toCssGradient(presets.createGradientModel(palette,options)),createGradientFromColor=(color,options={})=>createGradient(presets.createPalette(color),options);exports.createGradientModel=presets.createGradientModel;exports.createGradientModelFromColor=presets.createGradientModelFromColor;exports.createRecipeStops=presets.createRecipeStops;exports.defineGradientPreset=presets.defineGradientPreset;exports.defineGradientPresetRegistry=presets.defineGradientPresetRegistry;exports.getGradientPreset=presets.getGradientPreset;exports.gradientPresets=presets.gradientPresets;exports.gradientRecipes=presets.gradientRecipes;exports.DEFAULT_GRADIENT_MORPH_BLEND_MODE=types.DEFAULT_GRADIENT_MORPH_BLEND_MODE;exports.GRADIENT_MORPH_BLEND_MODES=types.GRADIENT_MORPH_BLEND_MODES;exports.createGradient=createGradient;exports.createGradientFromColor=createGradientFromColor;
|
package/dist/core.mjs
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { c as
|
|
2
|
-
import { a
|
|
3
|
-
import { t as
|
|
4
|
-
import { D
|
|
5
|
-
const
|
|
1
|
+
import { c as createGradientModel, d as createPalette } from "./presets-Du6aTLtD.js";
|
|
2
|
+
import { a, f, g, h, i, j, k } from "./presets-Du6aTLtD.js";
|
|
3
|
+
import { t as toCssGradient } from "./css-B3xGfmW1.js";
|
|
4
|
+
import { D, G } from "./types-B0eCazk8.js";
|
|
5
|
+
const createGradient = (palette, options = {}) => toCssGradient(createGradientModel(palette, options)), createGradientFromColor = (color, options = {}) => createGradient(createPalette(color), options);
|
|
6
6
|
export {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
7
|
+
D as DEFAULT_GRADIENT_MORPH_BLEND_MODE,
|
|
8
|
+
G as GRADIENT_MORPH_BLEND_MODES,
|
|
9
|
+
createGradient,
|
|
10
|
+
createGradientFromColor,
|
|
11
|
+
createGradientModel,
|
|
12
|
+
a as createGradientModelFromColor,
|
|
13
|
+
f as createRecipeStops,
|
|
14
|
+
g as defineGradientPreset,
|
|
15
|
+
h as defineGradientPresetRegistry,
|
|
16
|
+
i as getGradientPreset,
|
|
17
|
+
j as gradientPresets,
|
|
18
|
+
k as gradientRecipes
|
|
19
19
|
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { D as DEFAULT_GRADIENT_DIRECTION, n as normalizeDirection, f as formatStop, d as DEFAULT_GRADIENT_SIZE, e as DEFAULT_GRADIENT_POSITION, h as getConicStops } from "./utils-VaqPefmS.js";
|
|
2
|
+
const createLinearGradient = (stops, direction = DEFAULT_GRADIENT_DIRECTION) => `linear-gradient(${normalizeDirection(direction)}, ${stops.join(", ")})`, toCssGradient = (model) => {
|
|
3
|
+
const stops = model.stops.map(formatStop).join(", ");
|
|
4
|
+
if (model.type === "radial") {
|
|
5
|
+
const shape = model.shape ?? "ellipse", size = model.size ?? DEFAULT_GRADIENT_SIZE, position = model.position ?? DEFAULT_GRADIENT_POSITION;
|
|
6
|
+
return `radial-gradient(${shape} ${size} at ${position}, ${stops})`;
|
|
7
|
+
}
|
|
8
|
+
if (model.type === "conic") {
|
|
9
|
+
const direction = normalizeDirection(model.direction), position = model.position ?? DEFAULT_GRADIENT_POSITION, conicStops = getConicStops(model.stops).map(formatStop).join(", ");
|
|
10
|
+
return `conic-gradient(from ${direction} at ${position}, ${conicStops})`;
|
|
11
|
+
}
|
|
12
|
+
return createLinearGradient(model.stops.map(formatStop), model.direction);
|
|
13
|
+
};
|
|
14
|
+
export {
|
|
15
|
+
createLinearGradient as c,
|
|
16
|
+
toCssGradient as t
|
|
17
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const utils=require("./utils-Bry9BTmj.cjs"),createLinearGradient=(stops,direction=utils.DEFAULT_GRADIENT_DIRECTION)=>`linear-gradient(${utils.normalizeDirection(direction)}, ${stops.join(", ")})`,toCssGradient=model=>{const stops=model.stops.map(utils.formatStop).join(", ");if(model.type==="radial"){const shape=model.shape??"ellipse",size=model.size??utils.DEFAULT_GRADIENT_SIZE,position=model.position??utils.DEFAULT_GRADIENT_POSITION;return`radial-gradient(${shape} ${size} at ${position}, ${stops})`}if(model.type==="conic"){const direction=utils.normalizeDirection(model.direction),position=model.position??utils.DEFAULT_GRADIENT_POSITION,conicStops=utils.getConicStops(model.stops).map(utils.formatStop).join(", ");return`conic-gradient(from ${direction} at ${position}, ${conicStops})`}return createLinearGradient(model.stops.map(utils.formatStop),model.direction)};exports.createLinearGradient=createLinearGradient;exports.toCssGradient=toCssGradient;
|
package/dist/design-tokens.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./utils-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./utils-Bry9BTmj.cjs");const designTokens=require("./designTokens-DsIk5RSi.cjs");require("./material.cjs");exports.DEFAULT_SEED=designTokens.DEFAULT_SEED;exports.createDesignTokens=designTokens.createDesignTokens;exports.normalizeDesignTokenSeed=designTokens.normalizeDesignTokenSeed;
|
package/dist/design-tokens.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import "./utils-
|
|
2
|
-
import { D
|
|
1
|
+
import "./utils-VaqPefmS.js";
|
|
2
|
+
import { D, a, n } from "./designTokens-Bw-HZ1f1.js";
|
|
3
3
|
import "./material.mjs";
|
|
4
4
|
export {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
D as DEFAULT_SEED,
|
|
6
|
+
a as createDesignTokens,
|
|
7
|
+
n as normalizeDesignTokenSeed
|
|
8
8
|
};
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { p as parseColor, r as rgbToChannels, g as getContrastingColor, c as colorToHex } from "./utils-VaqPefmS.js";
|
|
2
|
+
import { createGradient, createGradientFromColor } from "./core.mjs";
|
|
3
|
+
import { e as createPalettePair, C as COLOR_SHADES, t as themeFromSourceColor, l as argbFromHex, m as hexFromArgb } from "./presets-Du6aTLtD.js";
|
|
4
|
+
import { createGradientTokens } from "./material.mjs";
|
|
5
|
+
const COLOR_SEEDS = {
|
|
6
|
+
red: "#F44336",
|
|
7
|
+
pink: "#E91E63",
|
|
8
|
+
purple: "#9C27B0",
|
|
9
|
+
deepPurple: "#673AB7",
|
|
10
|
+
indigo: "#3F51B5",
|
|
11
|
+
blue: "#2196F3",
|
|
12
|
+
lightBlue: "#03A9F4",
|
|
13
|
+
cyan: "#00BCD4",
|
|
14
|
+
teal: "#009688",
|
|
15
|
+
green: "#4CAF50",
|
|
16
|
+
lightGreen: "#8BC34A",
|
|
17
|
+
lime: "#CDDC39",
|
|
18
|
+
yellow: "#FFEB3B",
|
|
19
|
+
amber: "#FFC107",
|
|
20
|
+
orange: "#FF9800",
|
|
21
|
+
deepOrange: "#FF5722",
|
|
22
|
+
brown: "#795548",
|
|
23
|
+
grey: "#9E9E9E",
|
|
24
|
+
blueGrey: "#607D8B"
|
|
25
|
+
}, toChannels$1 = (color) => {
|
|
26
|
+
const parsed = parseColor(color);
|
|
27
|
+
if (!parsed)
|
|
28
|
+
throw new Error(`Unsupported generated color: ${String(color)}`);
|
|
29
|
+
return rgbToChannels(parsed);
|
|
30
|
+
}, capitalize = (value) => `${value.charAt(0).toUpperCase()}${value.slice(1)}`, getOnTokenName = (name) => `on${capitalize(name)}`, camelToKebabCase = (value) => value.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), kebabToCamelCase = (value) => value.replace(
|
|
31
|
+
/-([a-z0-9])/g,
|
|
32
|
+
(_, character) => character.toUpperCase()
|
|
33
|
+
), addPaletteTokens = (colors, gradients, name, palettePair) => {
|
|
34
|
+
const { colors: palette, onColors } = palettePair;
|
|
35
|
+
for (const shade of COLOR_SHADES) {
|
|
36
|
+
const color = palette[shade];
|
|
37
|
+
colors[`${name}${shade}`] = toChannels$1(color), colors[`${getOnTokenName(name)}${shade}`] = toChannels$1(onColors[shade]), gradients[`${name}${shade}`] = createGradient(palette, { shade });
|
|
38
|
+
}
|
|
39
|
+
colors[name] = colors[`${name}500`], colors[getOnTokenName(name)] = colors[`${getOnTokenName(name)}500`], gradients[name] = gradients[`${name}500`];
|
|
40
|
+
}, isColorDefinition = (value) => typeof value == "object" && value !== null && "color" in value, normalizeColorDefinition = (value) => isColorDefinition(value) ? value : { color: value }, addSingleColorTokens = (colors, gradients, name, definition) => {
|
|
41
|
+
colors[name] = toChannels$1(definition.color), colors[getOnTokenName(name)] = toChannels$1(
|
|
42
|
+
definition.onColor ?? getContrastingColor(definition.color)
|
|
43
|
+
), definition.gradient !== !1 && (gradients[name] = definition.gradient ?? createGradientFromColor(definition.color));
|
|
44
|
+
}, addCustomColorTokens = (colors, gradients, palettes, name, value) => {
|
|
45
|
+
const normalizedName = kebabToCamelCase(camelToKebabCase(name)), definition = normalizeColorDefinition(value);
|
|
46
|
+
if (definition.palette === !1) {
|
|
47
|
+
addSingleColorTokens(colors, gradients, normalizedName, definition);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const palettePair = createPalettePair(definition.color);
|
|
51
|
+
palettes[normalizedName] = palettePair, addPaletteTokens(colors, gradients, normalizedName, palettePair), definition.onColor && (colors[getOnTokenName(normalizedName)] = toChannels$1(definition.onColor)), definition.gradient && (gradients[normalizedName] = definition.gradient);
|
|
52
|
+
}, createColorSystem = (seed, options = {}) => {
|
|
53
|
+
const colors = {}, gradients = {}, palettes = {
|
|
54
|
+
source: createPalettePair(seed)
|
|
55
|
+
};
|
|
56
|
+
for (const [name, colorSeed] of Object.entries(COLOR_SEEDS))
|
|
57
|
+
palettes[name] = createPalettePair(colorSeed);
|
|
58
|
+
for (const [name, palettePair] of Object.entries(palettes))
|
|
59
|
+
addPaletteTokens(colors, gradients, name, palettePair);
|
|
60
|
+
for (const [name, value] of Object.entries(options.colors ?? {}))
|
|
61
|
+
addCustomColorTokens(colors, gradients, palettes, name, value);
|
|
62
|
+
return gradients.main = createGradient(palettes.source.colors), gradients.error = createGradient(palettes.red.colors, { shade: 600 }), gradients.warning = createGradient(palettes.amber.colors, { shade: 600 }), gradients.success = createGradient(palettes.green.colors, { shade: 600 }), {
|
|
63
|
+
colors,
|
|
64
|
+
gradients,
|
|
65
|
+
palettes
|
|
66
|
+
};
|
|
67
|
+
}, toChannels = (color) => {
|
|
68
|
+
const parsed = parseColor(color);
|
|
69
|
+
if (!parsed)
|
|
70
|
+
throw new Error(`Unsupported generated color: ${String(color)}`);
|
|
71
|
+
return rgbToChannels(parsed);
|
|
72
|
+
}, schemeToTokens = (seed, mode) => {
|
|
73
|
+
const scheme = themeFromSourceColor(argbFromHex(seed)).schemes[mode].toJSON();
|
|
74
|
+
return Object.fromEntries(
|
|
75
|
+
Object.entries(scheme).map(([name, argb]) => [
|
|
76
|
+
name,
|
|
77
|
+
toChannels(hexFromArgb(argb))
|
|
78
|
+
])
|
|
79
|
+
);
|
|
80
|
+
}, createSemanticTokens = (seed, mode) => {
|
|
81
|
+
const tokens = schemeToTokens(seed, mode), warning = schemeToTokens(COLOR_SEEDS.amber, mode), success = schemeToTokens(COLOR_SEEDS.green, mode);
|
|
82
|
+
return {
|
|
83
|
+
...tokens,
|
|
84
|
+
warning: warning.primary,
|
|
85
|
+
onWarning: warning.onPrimary,
|
|
86
|
+
warningContainer: warning.primaryContainer,
|
|
87
|
+
onWarningContainer: warning.onPrimaryContainer,
|
|
88
|
+
success: success.primary,
|
|
89
|
+
onSuccess: success.onPrimary,
|
|
90
|
+
successContainer: success.primaryContainer,
|
|
91
|
+
onSuccessContainer: success.onPrimaryContainer
|
|
92
|
+
};
|
|
93
|
+
}, DEFAULT_SEED = "#4e51ff", normalizeDesignTokenSeed = (seed = DEFAULT_SEED) => colorToHex(seed, DEFAULT_SEED), createDesignTokens = (options = {}) => {
|
|
94
|
+
const mode = options.mode ?? "light", seed = normalizeDesignTokenSeed(options.seed), colorSystem = createColorSystem(seed, {
|
|
95
|
+
colors: options.colors
|
|
96
|
+
});
|
|
97
|
+
return {
|
|
98
|
+
colorSystem,
|
|
99
|
+
gradientTokens: createGradientTokens(seed, options.gradientTokens),
|
|
100
|
+
mode,
|
|
101
|
+
seed,
|
|
102
|
+
tokens: {
|
|
103
|
+
theme: createSemanticTokens(seed, mode),
|
|
104
|
+
colors: colorSystem.colors,
|
|
105
|
+
gradients: colorSystem.gradients
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
};
|
|
109
|
+
export {
|
|
110
|
+
COLOR_SEEDS as C,
|
|
111
|
+
DEFAULT_SEED as D,
|
|
112
|
+
createDesignTokens as a,
|
|
113
|
+
createSemanticTokens as b,
|
|
114
|
+
createColorSystem as c,
|
|
115
|
+
normalizeDesignTokenSeed as n
|
|
116
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const utils=require("./utils-Bry9BTmj.cjs"),core=require("./core.cjs"),presets=require("./presets-DA-6KYJh.cjs"),material=require("./material.cjs"),COLOR_SEEDS={red:"#F44336",pink:"#E91E63",purple:"#9C27B0",deepPurple:"#673AB7",indigo:"#3F51B5",blue:"#2196F3",lightBlue:"#03A9F4",cyan:"#00BCD4",teal:"#009688",green:"#4CAF50",lightGreen:"#8BC34A",lime:"#CDDC39",yellow:"#FFEB3B",amber:"#FFC107",orange:"#FF9800",deepOrange:"#FF5722",brown:"#795548",grey:"#9E9E9E",blueGrey:"#607D8B"},toChannels$1=color=>{const parsed=utils.parseColor(color);if(!parsed)throw new Error(`Unsupported generated color: ${String(color)}`);return utils.rgbToChannels(parsed)},capitalize=value=>`${value.charAt(0).toUpperCase()}${value.slice(1)}`,getOnTokenName=name=>`on${capitalize(name)}`,camelToKebabCase=value=>value.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),kebabToCamelCase=value=>value.replace(/-([a-z0-9])/g,(_,character)=>character.toUpperCase()),addPaletteTokens=(colors,gradients,name,palettePair)=>{const{colors:palette,onColors}=palettePair;for(const shade of presets.COLOR_SHADES){const color=palette[shade];colors[`${name}${shade}`]=toChannels$1(color),colors[`${getOnTokenName(name)}${shade}`]=toChannels$1(onColors[shade]),gradients[`${name}${shade}`]=core.createGradient(palette,{shade})}colors[name]=colors[`${name}500`],colors[getOnTokenName(name)]=colors[`${getOnTokenName(name)}500`],gradients[name]=gradients[`${name}500`]},isColorDefinition=value=>typeof value=="object"&&value!==null&&"color"in value,normalizeColorDefinition=value=>isColorDefinition(value)?value:{color:value},addSingleColorTokens=(colors,gradients,name,definition)=>{colors[name]=toChannels$1(definition.color),colors[getOnTokenName(name)]=toChannels$1(definition.onColor??utils.getContrastingColor(definition.color)),definition.gradient!==!1&&(gradients[name]=definition.gradient??core.createGradientFromColor(definition.color))},addCustomColorTokens=(colors,gradients,palettes,name,value)=>{const normalizedName=kebabToCamelCase(camelToKebabCase(name)),definition=normalizeColorDefinition(value);if(definition.palette===!1){addSingleColorTokens(colors,gradients,normalizedName,definition);return}const palettePair=presets.createPalettePair(definition.color);palettes[normalizedName]=palettePair,addPaletteTokens(colors,gradients,normalizedName,palettePair),definition.onColor&&(colors[getOnTokenName(normalizedName)]=toChannels$1(definition.onColor)),definition.gradient&&(gradients[normalizedName]=definition.gradient)},createColorSystem=(seed,options={})=>{const colors={},gradients={},palettes={source:presets.createPalettePair(seed)};for(const[name,colorSeed]of Object.entries(COLOR_SEEDS))palettes[name]=presets.createPalettePair(colorSeed);for(const[name,palettePair]of Object.entries(palettes))addPaletteTokens(colors,gradients,name,palettePair);for(const[name,value]of Object.entries(options.colors??{}))addCustomColorTokens(colors,gradients,palettes,name,value);return gradients.main=core.createGradient(palettes.source.colors),gradients.error=core.createGradient(palettes.red.colors,{shade:600}),gradients.warning=core.createGradient(palettes.amber.colors,{shade:600}),gradients.success=core.createGradient(palettes.green.colors,{shade:600}),{colors,gradients,palettes}},toChannels=color=>{const parsed=utils.parseColor(color);if(!parsed)throw new Error(`Unsupported generated color: ${String(color)}`);return utils.rgbToChannels(parsed)},schemeToTokens=(seed,mode)=>{const scheme=presets.themeFromSourceColor(presets.argbFromHex(seed)).schemes[mode].toJSON();return Object.fromEntries(Object.entries(scheme).map(([name,argb])=>[name,toChannels(presets.hexFromArgb(argb))]))},createSemanticTokens=(seed,mode)=>{const tokens=schemeToTokens(seed,mode),warning=schemeToTokens(COLOR_SEEDS.amber,mode),success=schemeToTokens(COLOR_SEEDS.green,mode);return{...tokens,warning:warning.primary,onWarning:warning.onPrimary,warningContainer:warning.primaryContainer,onWarningContainer:warning.onPrimaryContainer,success:success.primary,onSuccess:success.onPrimary,successContainer:success.primaryContainer,onSuccessContainer:success.onPrimaryContainer}},DEFAULT_SEED="#4e51ff",normalizeDesignTokenSeed=(seed=DEFAULT_SEED)=>utils.colorToHex(seed,DEFAULT_SEED),createDesignTokens=(options={})=>{const mode=options.mode??"light",seed=normalizeDesignTokenSeed(options.seed),colorSystem=createColorSystem(seed,{colors:options.colors});return{colorSystem,gradientTokens:material.createGradientTokens(seed,options.gradientTokens),mode,seed,tokens:{theme:createSemanticTokens(seed,mode),colors:colorSystem.colors,gradients:colorSystem.gradients}}};exports.COLOR_SEEDS=COLOR_SEEDS;exports.DEFAULT_SEED=DEFAULT_SEED;exports.createColorSystem=createColorSystem;exports.createDesignTokens=createDesignTokens;exports.createSemanticTokens=createSemanticTokens;exports.normalizeDesignTokenSeed=normalizeDesignTokenSeed;
|