@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.
Files changed (87) hide show
  1. package/README.md +0 -6
  2. package/dist/animation.cjs +13 -13
  3. package/dist/animation.mjs +36 -36
  4. package/dist/core.cjs +1 -1
  5. package/dist/core.mjs +17 -17
  6. package/dist/css-B3xGfmW1.js +17 -0
  7. package/dist/css-CREh0Awz.cjs +1 -0
  8. package/dist/design-tokens.cjs +1 -1
  9. package/dist/design-tokens.mjs +5 -5
  10. package/dist/designTokens-Bw-HZ1f1.js +116 -0
  11. package/dist/designTokens-DsIk5RSi.cjs +1 -0
  12. package/dist/effects.cjs +67 -67
  13. package/dist/effects.mjs +153 -153
  14. package/dist/formatters.cjs +1 -1
  15. package/dist/formatters.mjs +33 -33
  16. package/dist/index.cjs +1 -1
  17. package/dist/index.mjs +63 -63
  18. package/dist/material.cjs +8 -8
  19. package/dist/material.mjs +170 -170
  20. package/dist/presets-DA-6KYJh.cjs +316 -0
  21. package/dist/presets-Du6aTLtD.js +4025 -0
  22. package/dist/svg-B2CaHCLv.js +118 -0
  23. package/dist/svg-BtMrj3fP.cjs +32 -0
  24. package/dist/types/animation/css.d.ts +2 -2
  25. package/dist/types/animation/index.d.ts +1 -1
  26. package/dist/types/colorSystem.d.ts +3 -3
  27. package/dist/types/core.d.ts +7 -7
  28. package/dist/types/designTokens.d.ts +4 -4
  29. package/dist/types/effects/index.d.ts +2 -2
  30. package/dist/types/effects/morph.d.ts +1 -1
  31. package/dist/types/effects/shadow.d.ts +1 -1
  32. package/dist/types/formatters/canvas.d.ts +1 -1
  33. package/dist/types/formatters/css.d.ts +1 -1
  34. package/dist/types/formatters/index.d.ts +3 -3
  35. package/dist/types/formatters/svg.d.ts +1 -1
  36. package/dist/types/index.d.ts +11 -11
  37. package/dist/types/material.d.ts +1 -1
  38. package/dist/types/model.d.ts +3 -3
  39. package/dist/types/palette.d.ts +1 -1
  40. package/dist/types/presets.d.ts +1 -1
  41. package/dist/types/recipes.d.ts +12 -12
  42. package/dist/types/tokens.d.ts +3 -3
  43. package/dist/types/types.d.ts +1 -1
  44. package/dist/types/utils.d.ts +1 -1
  45. package/dist/{types-BFr1fN-7.js → types-B0eCazk8.js} +4 -4
  46. package/dist/types-BFkUlDkW.cjs +1 -0
  47. package/dist/types-cjs/animation/css.d.cts +12 -0
  48. package/dist/types-cjs/animation/index.d.cts +1 -0
  49. package/dist/types-cjs/color.d.cts +11 -0
  50. package/dist/types-cjs/colorMath.d.cts +3 -0
  51. package/dist/types-cjs/colorSeeds.d.cts +22 -0
  52. package/dist/types-cjs/colorSystem.d.cts +20 -0
  53. package/dist/types-cjs/constants.d.cts +3 -0
  54. package/dist/types-cjs/core.d.cts +9 -0
  55. package/dist/types-cjs/designTokens.d.cts +24 -0
  56. package/dist/types-cjs/effects/index.d.cts +2 -0
  57. package/dist/types-cjs/effects/morph.d.cts +8 -0
  58. package/dist/types-cjs/effects/shadow.d.cts +3 -0
  59. package/dist/types-cjs/formatters/canvas.d.cts +2 -0
  60. package/dist/types-cjs/formatters/css.d.cts +3 -0
  61. package/dist/types-cjs/formatters/index.d.cts +3 -0
  62. package/dist/types-cjs/formatters/svg.d.cts +5 -0
  63. package/dist/types-cjs/index.d.cts +11 -0
  64. package/dist/types-cjs/material.d.cts +1 -0
  65. package/dist/types-cjs/model.d.cts +5 -0
  66. package/dist/types-cjs/package.json +3 -0
  67. package/dist/types-cjs/palette.d.cts +13 -0
  68. package/dist/types-cjs/presets.d.cts +239 -0
  69. package/dist/types-cjs/recipes.d.cts +14 -0
  70. package/dist/types-cjs/scheme.d.cts +3 -0
  71. package/dist/types-cjs/tokens.d.cts +107 -0
  72. package/dist/types-cjs/types.d.cts +127 -0
  73. package/dist/types-cjs/utils.d.cts +10 -0
  74. package/dist/utils-Bry9BTmj.cjs +1 -0
  75. package/dist/utils-VaqPefmS.js +76 -0
  76. package/package.json +59 -23
  77. package/dist/css-BVHXLMRl.cjs +0 -1
  78. package/dist/css-DVaTTIqS.js +0 -17
  79. package/dist/designTokens-BnzZfRES.js +0 -116
  80. package/dist/designTokens-C1WdzS3v.cjs +0 -1
  81. package/dist/presets-BBLdqUE4.cjs +0 -316
  82. package/dist/presets-DYXLx_nN.js +0 -4025
  83. package/dist/svg-dGtLYnIJ.cjs +0 -32
  84. package/dist/svg-hZus3ztj.js +0 -118
  85. package/dist/types-BMLEvdee.cjs +0 -1
  86. package/dist/utils-BzSNCfat.js +0 -76
  87. 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
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("./utils-D83DMCMa.cjs"),c=t=>`@keyframes ${t} {
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
- }`,f=t=>`@keyframes ${t} {
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
- }`,d=t=>`@keyframes ${t} {
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
- }`,l=t=>`@keyframes ${t} {
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
- }`,o=(t={})=>{const e=t.name??"g-gradient-shift",n=m.toCssDuration(t.duration??6e3),r=t.easing??"ease-in-out",i=t.selector??".g-gradient-animated",a=t.preset??"shift";return{duration:n,easing:r,name:e,preset:a,selector:i}},s=(t={})=>{const{name:e,preset:n}=o(t);return n==="pulse"?f(e):n==="hue-rotate"?d(e):n==="rotate"?l(e):c(e)},g=(t={})=>{const{duration:e,easing:n,name:r,preset:i}=o(t);return`${r} ${e} ${i==="rotate"?"linear":n} infinite`},u=(t={})=>{const{duration:e,easing:n,name:r,preset:i,selector:a}=o(t);return i==="rotate"?`${a} {
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
- ${a}::before {
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: ${r} ${e} linear infinite;
52
+ animation: ${name} ${duration} linear infinite;
53
53
  transform-origin: center;
54
- }`:i==="pulse"||i==="hue-rotate"?`${a} {
55
- animation: ${r} ${e} ${n} infinite;
56
- }`:`${a} {
57
- animation: ${r} ${e} ${n} infinite;
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
- }`},$=(t={})=>{const e=s(t),n=u(t);return`${e}
60
- ${n}`};exports.getGradientAnimationOptions=o;exports.toGradientAnimationCSS=$;exports.toGradientAnimationKeyframes=s;exports.toGradientAnimationStyles=u;exports.toGradientAnimationValue=g;
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;
@@ -1,5 +1,5 @@
1
- import { t as s } from "./utils-BzSNCfat.js";
2
- const u = (t) => `@keyframes ${t} {
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
- }`, f = (t) => `@keyframes ${t} {
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
- }`, m = (t) => `@keyframes ${t} {
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
- }`, c = (t) => `@keyframes ${t} {
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
- }`, o = (t = {}) => {
39
- const e = t.name ?? "g-gradient-shift", n = s(t.duration ?? 6e3), r = t.easing ?? "ease-in-out", a = t.selector ?? ".g-gradient-animated", i = t.preset ?? "shift";
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: n,
42
- easing: r,
43
- name: e,
44
- preset: i,
45
- selector: a
41
+ duration,
42
+ easing,
43
+ name,
44
+ preset,
45
+ selector
46
46
  };
47
- }, d = (t = {}) => {
48
- const { name: e, preset: n } = o(t);
49
- return n === "pulse" ? f(e) : n === "hue-rotate" ? m(e) : n === "rotate" ? c(e) : u(e);
50
- }, $ = (t = {}) => {
51
- const { duration: e, easing: n, name: r, preset: a } = o(t);
52
- return `${r} ${e} ${a === "rotate" ? "linear" : n} infinite`;
53
- }, g = (t = {}) => {
54
- const { duration: e, easing: n, name: r, preset: a, selector: i } = o(t);
55
- return a === "rotate" ? `${i} {
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
- ${i}::before {
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: ${r} ${e} linear infinite;
70
+ animation: ${name} ${duration} linear infinite;
71
71
  transform-origin: center;
72
- }` : a === "pulse" || a === "hue-rotate" ? `${i} {
73
- animation: ${r} ${e} ${n} infinite;
74
- }` : `${i} {
75
- animation: ${r} ${e} ${n} infinite;
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
- }, h = (t = {}) => {
79
- const e = d(t), n = g(t);
80
- return `${e}
81
- ${n}`;
78
+ }, toGradientAnimationCSS = (options = {}) => {
79
+ const keyframes = toGradientAnimationKeyframes(options), styles = toGradientAnimationStyles(options);
80
+ return `${keyframes}
81
+ ${styles}`;
82
82
  };
83
83
  export {
84
- o as getGradientAnimationOptions,
85
- h as toGradientAnimationCSS,
86
- d as toGradientAnimationKeyframes,
87
- g as toGradientAnimationStyles,
88
- $ as toGradientAnimationValue
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 e=require("./presets-BBLdqUE4.cjs"),d=require("./css-BVHXLMRl.cjs"),i=require("./types-BMLEvdee.cjs"),a=(t,r={})=>d.toCssGradient(e.createGradientModel(t,r)),n=(t,r={})=>a(e.createPalette(t),r);exports.createGradientModel=e.createGradientModel;exports.createGradientModelFromColor=e.createGradientModelFromColor;exports.createRecipeStops=e.createRecipeStops;exports.defineGradientPreset=e.defineGradientPreset;exports.defineGradientPresetRegistry=e.defineGradientPresetRegistry;exports.getGradientPreset=e.getGradientPreset;exports.gradientPresets=e.gradientPresets;exports.gradientRecipes=e.gradientRecipes;exports.DEFAULT_GRADIENT_MORPH_BLEND_MODE=i.DEFAULT_GRADIENT_MORPH_BLEND_MODE;exports.GRADIENT_MORPH_BLEND_MODES=i.GRADIENT_MORPH_BLEND_MODES;exports.createGradient=a;exports.createGradientFromColor=n;
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 t, d as a } from "./presets-DYXLx_nN.js";
2
- import { a as m, f as p, g as D, h as f, i as E, j as P, k as R } from "./presets-DYXLx_nN.js";
3
- import { t as s } from "./css-DVaTTIqS.js";
4
- import { D as M, G as g } from "./types-BFr1fN-7.js";
5
- const o = (e, r = {}) => s(t(e, r)), n = (e, r = {}) => o(a(e), r);
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
- M as DEFAULT_GRADIENT_MORPH_BLEND_MODE,
8
- g as GRADIENT_MORPH_BLEND_MODES,
9
- o as createGradient,
10
- n as createGradientFromColor,
11
- t as createGradientModel,
12
- m as createGradientModelFromColor,
13
- p as createRecipeStops,
14
- D as defineGradientPreset,
15
- f as defineGradientPresetRegistry,
16
- E as getGradientPreset,
17
- P as gradientPresets,
18
- R as gradientRecipes
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;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./utils-D83DMCMa.cjs");const e=require("./designTokens-C1WdzS3v.cjs");require("./material.cjs");exports.DEFAULT_SEED=e.DEFAULT_SEED;exports.createDesignTokens=e.createDesignTokens;exports.normalizeDesignTokenSeed=e.normalizeDesignTokenSeed;
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;
@@ -1,8 +1,8 @@
1
- import "./utils-BzSNCfat.js";
2
- import { D as r, a as s, n as i } from "./designTokens-BnzZfRES.js";
1
+ import "./utils-VaqPefmS.js";
2
+ import { D, a, n } from "./designTokens-Bw-HZ1f1.js";
3
3
  import "./material.mjs";
4
4
  export {
5
- r as DEFAULT_SEED,
6
- s as createDesignTokens,
7
- i as normalizeDesignTokenSeed
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;