@gradient-ui/gradient-engine 0.5.0 → 1.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 (89) hide show
  1. package/README.md +19 -5
  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 -14
  6. package/dist/css-B3xGfmW1.js +17 -0
  7. package/dist/css-CREh0Awz.cjs +1 -0
  8. package/dist/design-tokens.cjs +1 -0
  9. package/dist/design-tokens.mjs +8 -0
  10. package/dist/designTokens-Bw-HZ1f1.js +116 -0
  11. package/dist/designTokens-DsIk5RSi.cjs +1 -0
  12. package/dist/effects.cjs +137 -32
  13. package/dist/effects.mjs +225 -108
  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 -43
  18. package/dist/material.cjs +9 -1
  19. package/dist/material.mjs +236 -4
  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/color.d.ts +1 -0
  27. package/dist/types/colorSeeds.d.ts +22 -0
  28. package/dist/types/colorSystem.d.ts +20 -0
  29. package/dist/types/core.d.ts +7 -7
  30. package/dist/types/designTokens.d.ts +24 -0
  31. package/dist/types/effects/index.d.ts +2 -2
  32. package/dist/types/effects/morph.d.ts +4 -1
  33. package/dist/types/effects/shadow.d.ts +1 -1
  34. package/dist/types/formatters/canvas.d.ts +1 -1
  35. package/dist/types/formatters/css.d.ts +1 -1
  36. package/dist/types/formatters/index.d.ts +3 -3
  37. package/dist/types/formatters/svg.d.ts +1 -1
  38. package/dist/types/index.d.ts +11 -7
  39. package/dist/types/material.d.ts +1 -1
  40. package/dist/types/model.d.ts +3 -3
  41. package/dist/types/palette.d.ts +8 -1
  42. package/dist/types/presets.d.ts +1 -1
  43. package/dist/types/recipes.d.ts +12 -12
  44. package/dist/types/scheme.d.ts +3 -0
  45. package/dist/types/tokens.d.ts +11 -3
  46. package/dist/types/types.d.ts +11 -1
  47. package/dist/types/utils.d.ts +1 -1
  48. package/dist/types-B0eCazk8.js +22 -0
  49. package/dist/types-BFkUlDkW.cjs +1 -0
  50. package/dist/types-cjs/animation/css.d.cts +12 -0
  51. package/dist/types-cjs/animation/index.d.cts +1 -0
  52. package/dist/types-cjs/color.d.cts +11 -0
  53. package/dist/types-cjs/colorMath.d.cts +3 -0
  54. package/dist/types-cjs/colorSeeds.d.cts +22 -0
  55. package/dist/types-cjs/colorSystem.d.cts +20 -0
  56. package/dist/types-cjs/constants.d.cts +3 -0
  57. package/dist/types-cjs/core.d.cts +9 -0
  58. package/dist/types-cjs/designTokens.d.cts +24 -0
  59. package/dist/types-cjs/effects/index.d.cts +2 -0
  60. package/dist/types-cjs/effects/morph.d.cts +8 -0
  61. package/dist/types-cjs/effects/shadow.d.cts +3 -0
  62. package/dist/types-cjs/formatters/canvas.d.cts +2 -0
  63. package/dist/types-cjs/formatters/css.d.cts +3 -0
  64. package/dist/types-cjs/formatters/index.d.cts +3 -0
  65. package/dist/types-cjs/formatters/svg.d.cts +5 -0
  66. package/dist/types-cjs/index.d.cts +11 -0
  67. package/dist/types-cjs/material.d.cts +1 -0
  68. package/dist/types-cjs/model.d.cts +5 -0
  69. package/dist/types-cjs/package.json +3 -0
  70. package/dist/types-cjs/palette.d.cts +13 -0
  71. package/dist/types-cjs/presets.d.cts +239 -0
  72. package/dist/types-cjs/recipes.d.cts +14 -0
  73. package/dist/types-cjs/scheme.d.cts +3 -0
  74. package/dist/types-cjs/tokens.d.cts +107 -0
  75. package/dist/types-cjs/types.d.cts +127 -0
  76. package/dist/types-cjs/utils.d.cts +10 -0
  77. package/dist/utils-Bry9BTmj.cjs +1 -0
  78. package/dist/utils-VaqPefmS.js +76 -0
  79. package/package.json +64 -20
  80. package/dist/css-CaOuUhfh.js +0 -17
  81. package/dist/css-YuAJQW13.cjs +0 -1
  82. package/dist/presets-55krt4L_.js +0 -354
  83. package/dist/presets-UIJJyagu.cjs +0 -1
  84. package/dist/svg-BVcl24Cf.cjs +0 -32
  85. package/dist/svg-CZThYPKf.js +0 -118
  86. package/dist/tokens-DMGI7_df.cjs +0 -9
  87. package/dist/tokens-OfSofVKl.js +0 -204
  88. package/dist/utils-6iJ6IpZZ.cjs +0 -1
  89. package/dist/utils-B_VQDGMy.js +0 -67
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const G=require("./css-YuAJQW13.cjs"),h=require("./utils-6iJ6IpZZ.cjs"),n=require("./svg-BVcl24Cf.cjs"),M=(r,a,t={})=>{const c=t.width??r.canvas.width,s=t.height??r.canvas.height,e=c/2,i=s/2,v=Math.hypot(c,s)/2,o=((typeof a.direction=="number"?a.direction:Number.parseFloat(a.direction)||h.DEFAULT_GRADIENT_DIRECTION)-90)*Math.PI/180,S=c/2,f=s/2,u=Math.cos(o)*S,g=Math.sin(o)*f,y=a.type==="radial"?r.createRadialGradient(t.x0??e,t.y0??i,t.r0??0,t.x1??e,t.y1??i,t.r1??v):a.type==="conic"&&typeof r.createConicGradient=="function"?r.createConicGradient(t.startAngle??o,t.x0??e,t.y0??i):r.createLinearGradient(t.x0??e-u,t.y0??i-g,t.x1??e+u,t.y1??i+g),C=a.type==="conic"?h.getConicStops(a.stops):a.stops;for(const d of C)y.addColorStop(d.position/100,h.toCssColor(d.color,d.opacity));return y};exports.createLinearGradient=G.createLinearGradient;exports.toCssGradient=G.toCssGradient;exports.toSvgGradient=n.toSvgGradient;exports.toSvgGradientMarkup=n.toSvgGradientMarkup;exports.toSvgPathAnimationMarkup=n.toSvgPathAnimationMarkup;exports.toSvgSourceAnimationMarkup=n.toSvgSourceAnimationMarkup;exports.toCanvasGradient=M;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const css=require("./css-CREh0Awz.cjs"),utils=require("./utils-Bry9BTmj.cjs"),svg=require("./svg-BtMrj3fP.cjs"),toCanvasGradient=(context,model,options={})=>{const width=options.width??context.canvas.width,height=options.height??context.canvas.height,centerX=width/2,centerY=height/2,maxRadius=Math.hypot(width,height)/2,radians=((typeof model.direction=="number"?model.direction:Number.parseFloat(model.direction)||utils.DEFAULT_GRADIENT_DIRECTION)-90)*Math.PI/180,halfWidth=width/2,halfHeight=height/2,xOffset=Math.cos(radians)*halfWidth,yOffset=Math.sin(radians)*halfHeight,gradient=model.type==="radial"?context.createRadialGradient(options.x0??centerX,options.y0??centerY,options.r0??0,options.x1??centerX,options.y1??centerY,options.r1??maxRadius):model.type==="conic"&&typeof context.createConicGradient=="function"?context.createConicGradient(options.startAngle??radians,options.x0??centerX,options.y0??centerY):context.createLinearGradient(options.x0??centerX-xOffset,options.y0??centerY-yOffset,options.x1??centerX+xOffset,options.y1??centerY+yOffset),stops=model.type==="conic"?utils.getConicStops(model.stops):model.stops;for(const stop of stops)gradient.addColorStop(stop.position/100,utils.toCssColor(stop.color,stop.opacity));return gradient};exports.createLinearGradient=css.createLinearGradient;exports.toCssGradient=css.toCssGradient;exports.toSvgGradient=svg.toSvgGradient;exports.toSvgGradientMarkup=svg.toSvgGradientMarkup;exports.toSvgPathAnimationMarkup=svg.toSvgPathAnimationMarkup;exports.toSvgSourceAnimationMarkup=svg.toSvgSourceAnimationMarkup;exports.toCanvasGradient=toCanvasGradient;
@@ -1,37 +1,37 @@
1
- import { c as I, t as R } from "./css-CaOuUhfh.js";
2
- import { D as C, g as p, i as v } from "./utils-B_VQDGMy.js";
3
- import { t as k, a as w, b as E, c as L } from "./svg-CZThYPKf.js";
4
- const x = (r, a, t = {}) => {
5
- const i = t.width ?? r.canvas.width, n = t.height ?? r.canvas.height, e = i / 2, c = n / 2, y = Math.hypot(i, n) / 2, s = ((typeof a.direction == "number" ? a.direction : Number.parseFloat(a.direction) || C) - 90) * Math.PI / 180, g = i / 2, G = n / 2, h = Math.cos(s) * g, d = Math.sin(s) * G, f = a.type === "radial" ? r.createRadialGradient(
6
- t.x0 ?? e,
7
- t.y0 ?? c,
8
- t.r0 ?? 0,
9
- t.x1 ?? e,
10
- t.y1 ?? c,
11
- t.r1 ?? y
12
- ) : a.type === "conic" && typeof r.createConicGradient == "function" ? r.createConicGradient(
13
- t.startAngle ?? s,
14
- t.x0 ?? e,
15
- t.y0 ?? c
16
- ) : r.createLinearGradient(
17
- t.x0 ?? e - h,
18
- t.y0 ?? c - d,
19
- t.x1 ?? e + h,
20
- t.y1 ?? c + d
21
- ), u = a.type === "conic" ? p(a.stops) : a.stops;
22
- for (const o of u)
23
- f.addColorStop(
24
- o.position / 100,
25
- v(o.color, o.opacity)
1
+ import { c, t } from "./css-B3xGfmW1.js";
2
+ import { D as DEFAULT_GRADIENT_DIRECTION, h as getConicStops, k as toCssColor } from "./utils-VaqPefmS.js";
3
+ import { t as t2, a, b, c as c2 } from "./svg-B2CaHCLv.js";
4
+ const toCanvasGradient = (context, model, options = {}) => {
5
+ const width = options.width ?? context.canvas.width, height = options.height ?? context.canvas.height, centerX = width / 2, centerY = height / 2, maxRadius = Math.hypot(width, height) / 2, radians = ((typeof model.direction == "number" ? model.direction : Number.parseFloat(model.direction) || DEFAULT_GRADIENT_DIRECTION) - 90) * Math.PI / 180, halfWidth = width / 2, halfHeight = height / 2, xOffset = Math.cos(radians) * halfWidth, yOffset = Math.sin(radians) * halfHeight, gradient = model.type === "radial" ? context.createRadialGradient(
6
+ options.x0 ?? centerX,
7
+ options.y0 ?? centerY,
8
+ options.r0 ?? 0,
9
+ options.x1 ?? centerX,
10
+ options.y1 ?? centerY,
11
+ options.r1 ?? maxRadius
12
+ ) : model.type === "conic" && typeof context.createConicGradient == "function" ? context.createConicGradient(
13
+ options.startAngle ?? radians,
14
+ options.x0 ?? centerX,
15
+ options.y0 ?? centerY
16
+ ) : context.createLinearGradient(
17
+ options.x0 ?? centerX - xOffset,
18
+ options.y0 ?? centerY - yOffset,
19
+ options.x1 ?? centerX + xOffset,
20
+ options.y1 ?? centerY + yOffset
21
+ ), stops = model.type === "conic" ? getConicStops(model.stops) : model.stops;
22
+ for (const stop of stops)
23
+ gradient.addColorStop(
24
+ stop.position / 100,
25
+ toCssColor(stop.color, stop.opacity)
26
26
  );
27
- return f;
27
+ return gradient;
28
28
  };
29
29
  export {
30
- I as createLinearGradient,
31
- x as toCanvasGradient,
32
- R as toCssGradient,
33
- k as toSvgGradient,
34
- w as toSvgGradientMarkup,
35
- E as toSvgPathAnimationMarkup,
36
- L as toSvgSourceAnimationMarkup
30
+ c as createLinearGradient,
31
+ toCanvasGradient,
32
+ t as toCssGradient,
33
+ t2 as toSvgGradient,
34
+ a as toSvgGradientMarkup,
35
+ b as toSvgPathAnimationMarkup,
36
+ c2 as toSvgSourceAnimationMarkup
37
37
  };
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./core.cjs"),t=require("./utils-6iJ6IpZZ.cjs"),e=require("./presets-UIJJyagu.cjs"),n=require("./css-YuAJQW13.cjs"),d=require("./formatters.cjs"),a=require("./svg-BVcl24Cf.cjs"),r=require("./effects.cjs"),s=require("./animation.cjs"),o=require("./tokens-DMGI7_df.cjs");exports.createGradient=i.createGradient;exports.createGradientFromColor=i.createGradientFromColor;exports.colorToHex=t.colorToHex;exports.parseColor=t.parseColor;exports.rgbToChannels=t.rgbToChannels;exports.rgbToHex=t.rgbToHex;exports.COLOR_SHADES=e.COLOR_SHADES;exports.SHADE_TONES=e.SHADE_TONES;exports.createGradientModel=e.createGradientModel;exports.createGradientModelFromColor=e.createGradientModelFromColor;exports.createPalette=e.createPalette;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.createLinearGradient=n.createLinearGradient;exports.toCssGradient=n.toCssGradient;exports.toCanvasGradient=d.toCanvasGradient;exports.toSvgGradient=a.toSvgGradient;exports.toSvgGradientMarkup=a.toSvgGradientMarkup;exports.toSvgPathAnimationMarkup=a.toSvgPathAnimationMarkup;exports.toSvgSourceAnimationMarkup=a.toSvgSourceAnimationMarkup;exports.createGradientMorphBlobs=r.createGradientMorphBlobs;exports.toGradientBoxShadow=r.toGradientBoxShadow;exports.toGradientDropShadow=r.toGradientDropShadow;exports.toGradientMorphCSS=r.toGradientMorphCSS;exports.toGradientMorphFilter=r.toGradientMorphFilter;exports.toGradientMorphFilterMarkup=r.toGradientMorphFilterMarkup;exports.toGradientAnimationCSS=s.toGradientAnimationCSS;exports.createGradientMaterial=o.createGradientMaterial;exports.createGradientPreset=o.createGradientPreset;exports.createGradientTokens=o.createGradientTokens;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const core=require("./core.cjs"),utils=require("./utils-Bry9BTmj.cjs"),designTokens=require("./designTokens-DsIk5RSi.cjs"),presets=require("./presets-DA-6KYJh.cjs"),css=require("./css-CREh0Awz.cjs"),formatters=require("./formatters.cjs"),svg=require("./svg-BtMrj3fP.cjs"),effects=require("./effects.cjs"),animation=require("./animation.cjs"),material=require("./material.cjs"),types=require("./types-BFkUlDkW.cjs");exports.createGradient=core.createGradient;exports.createGradientFromColor=core.createGradientFromColor;exports.colorToHex=utils.colorToHex;exports.getContrastingColor=utils.getContrastingColor;exports.parseColor=utils.parseColor;exports.rgbToChannels=utils.rgbToChannels;exports.rgbToHex=utils.rgbToHex;exports.COLOR_SEEDS=designTokens.COLOR_SEEDS;exports.DEFAULT_SEED=designTokens.DEFAULT_SEED;exports.createColorSystem=designTokens.createColorSystem;exports.createDesignTokens=designTokens.createDesignTokens;exports.createSemanticTokens=designTokens.createSemanticTokens;exports.normalizeDesignTokenSeed=designTokens.normalizeDesignTokenSeed;exports.COLOR_SHADES=presets.COLOR_SHADES;exports.ON_SHADE_TONES=presets.ON_SHADE_TONES;exports.SHADE_TONES=presets.SHADE_TONES;exports.createGradientModel=presets.createGradientModel;exports.createGradientModelFromColor=presets.createGradientModelFromColor;exports.createOnPalette=presets.createOnPalette;exports.createPalette=presets.createPalette;exports.createPalettePair=presets.createPalettePair;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.createLinearGradient=css.createLinearGradient;exports.toCssGradient=css.toCssGradient;exports.toCanvasGradient=formatters.toCanvasGradient;exports.toSvgGradient=svg.toSvgGradient;exports.toSvgGradientMarkup=svg.toSvgGradientMarkup;exports.toSvgPathAnimationMarkup=svg.toSvgPathAnimationMarkup;exports.toSvgSourceAnimationMarkup=svg.toSvgSourceAnimationMarkup;exports.createGradientMorphBlobs=effects.createGradientMorphBlobs;exports.isGradientMorphBlendMode=effects.isGradientMorphBlendMode;exports.resolveGradientMorphBlendMode=effects.resolveGradientMorphBlendMode;exports.toGradientBoxShadow=effects.toGradientBoxShadow;exports.toGradientDropShadow=effects.toGradientDropShadow;exports.toGradientMorphCSS=effects.toGradientMorphCSS;exports.toGradientMorphFilter=effects.toGradientMorphFilter;exports.toGradientMorphFilterMarkup=effects.toGradientMorphFilterMarkup;exports.toGradientMorphMarkup=effects.toGradientMorphMarkup;exports.toGradientAnimationCSS=animation.toGradientAnimationCSS;exports.clearGradientMaterialCache=material.clearGradientMaterialCache;exports.createGradientMaterial=material.createGradientMaterial;exports.createGradientPreset=material.createGradientPreset;exports.createGradientTokens=material.createGradientTokens;exports.getGradientMaterialCacheStats=material.getGradientMaterialCacheStats;exports.setGradientMaterialCacheLimit=material.setGradientMaterialCacheLimit;exports.DEFAULT_GRADIENT_MORPH_BLEND_MODE=types.DEFAULT_GRADIENT_MORPH_BLEND_MODE;exports.GRADIENT_MORPH_BLEND_MODES=types.GRADIENT_MORPH_BLEND_MODES;
package/dist/index.mjs CHANGED
@@ -1,45 +1,65 @@
1
- import { createGradient as a, createGradientFromColor as t } from "./core.mjs";
2
- import { c as i, p as s, r as n, a as d } from "./utils-B_VQDGMy.js";
3
- import { C as G, S as c, c as S, a as m, b as f, d as l, e as x, f as g, g as M, h as C, i as h } from "./presets-55krt4L_.js";
4
- import { c as b, t as k } from "./css-CaOuUhfh.js";
5
- import { toCanvasGradient as v } from "./formatters.mjs";
6
- import { t as T, a as F, b as H, c as R } from "./svg-CZThYPKf.js";
7
- import { createGradientMorphBlobs as E, toGradientBoxShadow as O, toGradientDropShadow as w, toGradientMorphCSS as B, toGradientMorphFilter as L, toGradientMorphFilterMarkup as _ } from "./effects.mjs";
8
- import { toGradientAnimationCSS as N } from "./animation.mjs";
9
- import { c as q, a as z, b as I } from "./tokens-OfSofVKl.js";
1
+ import { createGradient, createGradientFromColor } from "./core.mjs";
2
+ import { c, g, p, r, a } from "./utils-VaqPefmS.js";
3
+ import { C, D, c as c2, a as a2, b, n } from "./designTokens-Bw-HZ1f1.js";
4
+ import { C as C2, O, S, c as c3, a as a3, b as b2, d, e, f, g as g2, h, i, j, k } from "./presets-Du6aTLtD.js";
5
+ import { c as c4, t } from "./css-B3xGfmW1.js";
6
+ import { toCanvasGradient } from "./formatters.mjs";
7
+ import { t as t2, a as a4, b as b3, c as c5 } from "./svg-B2CaHCLv.js";
8
+ import { createGradientMorphBlobs, isGradientMorphBlendMode, resolveGradientMorphBlendMode, toGradientBoxShadow, toGradientDropShadow, toGradientMorphCSS, toGradientMorphFilter, toGradientMorphFilterMarkup, toGradientMorphMarkup } from "./effects.mjs";
9
+ import { toGradientAnimationCSS } from "./animation.mjs";
10
+ import { clearGradientMaterialCache, createGradientMaterial, createGradientPreset, createGradientTokens, getGradientMaterialCacheStats, setGradientMaterialCacheLimit } from "./material.mjs";
11
+ import { D as D2, G } from "./types-B0eCazk8.js";
10
12
  export {
11
- G as COLOR_SHADES,
12
- c as SHADE_TONES,
13
- i as colorToHex,
14
- a as createGradient,
15
- t as createGradientFromColor,
16
- q as createGradientMaterial,
17
- S as createGradientModel,
18
- m as createGradientModelFromColor,
19
- E as createGradientMorphBlobs,
20
- z as createGradientPreset,
21
- I as createGradientTokens,
22
- b as createLinearGradient,
23
- f as createPalette,
24
- l as createRecipeStops,
25
- x as defineGradientPreset,
26
- g as defineGradientPresetRegistry,
27
- M as getGradientPreset,
28
- C as gradientPresets,
29
- h as gradientRecipes,
30
- s as parseColor,
31
- n as rgbToChannels,
32
- d as rgbToHex,
33
- v as toCanvasGradient,
34
- k as toCssGradient,
35
- N as toGradientAnimationCSS,
36
- O as toGradientBoxShadow,
37
- w as toGradientDropShadow,
38
- B as toGradientMorphCSS,
39
- L as toGradientMorphFilter,
40
- _ as toGradientMorphFilterMarkup,
41
- T as toSvgGradient,
42
- F as toSvgGradientMarkup,
43
- H as toSvgPathAnimationMarkup,
44
- R as toSvgSourceAnimationMarkup
13
+ C as COLOR_SEEDS,
14
+ C2 as COLOR_SHADES,
15
+ D2 as DEFAULT_GRADIENT_MORPH_BLEND_MODE,
16
+ D as DEFAULT_SEED,
17
+ G as GRADIENT_MORPH_BLEND_MODES,
18
+ O as ON_SHADE_TONES,
19
+ S as SHADE_TONES,
20
+ clearGradientMaterialCache,
21
+ c as colorToHex,
22
+ c2 as createColorSystem,
23
+ a2 as createDesignTokens,
24
+ createGradient,
25
+ createGradientFromColor,
26
+ createGradientMaterial,
27
+ c3 as createGradientModel,
28
+ a3 as createGradientModelFromColor,
29
+ createGradientMorphBlobs,
30
+ createGradientPreset,
31
+ createGradientTokens,
32
+ c4 as createLinearGradient,
33
+ b2 as createOnPalette,
34
+ d as createPalette,
35
+ e as createPalettePair,
36
+ f as createRecipeStops,
37
+ b as createSemanticTokens,
38
+ g2 as defineGradientPreset,
39
+ h as defineGradientPresetRegistry,
40
+ g as getContrastingColor,
41
+ getGradientMaterialCacheStats,
42
+ i as getGradientPreset,
43
+ j as gradientPresets,
44
+ k as gradientRecipes,
45
+ isGradientMorphBlendMode,
46
+ n as normalizeDesignTokenSeed,
47
+ p as parseColor,
48
+ resolveGradientMorphBlendMode,
49
+ r as rgbToChannels,
50
+ a as rgbToHex,
51
+ setGradientMaterialCacheLimit,
52
+ toCanvasGradient,
53
+ t as toCssGradient,
54
+ toGradientAnimationCSS,
55
+ toGradientBoxShadow,
56
+ toGradientDropShadow,
57
+ toGradientMorphCSS,
58
+ toGradientMorphFilter,
59
+ toGradientMorphFilterMarkup,
60
+ toGradientMorphMarkup,
61
+ t2 as toSvgGradient,
62
+ a4 as toSvgGradientMarkup,
63
+ b3 as toSvgPathAnimationMarkup,
64
+ c5 as toSvgSourceAnimationMarkup
45
65
  };
package/dist/material.cjs CHANGED
@@ -1 +1,9 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./tokens-DMGI7_df.cjs");exports.createGradientMaterial=e.createGradientMaterial;exports.createGradientPreset=e.createGradientPreset;exports.createGradientTokens=e.createGradientTokens;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const presets=require("./presets-DA-6KYJh.cjs"),animation=require("./animation.cjs"),effects=require("./effects.cjs"),css=require("./css-CREh0Awz.cjs"),svg=require("./svg-BtMrj3fP.cjs"),DEFAULT_TOKEN_RECIPES=["glare","soft","mesh"],DEFAULT_MATERIAL_CACHE_LIMIT=128;let materialCacheLimit=DEFAULT_MATERIAL_CACHE_LIMIT;const materialCache=new Map,toKebabCase=value=>value.replace(/[A-Z]/g,match=>`-${match.toLowerCase()}`),toTokenName=recipe=>toKebabCase(recipe),toCssVar=(prefix,name,suffix)=>`${prefix}-${name}`,toCssText=cssVars=>Object.entries(cssVars).map(([name,value])=>`${name}: ${value};`).join(`
2
+ `),toCssProperty=value=>value.replace(/[A-Z]/g,match=>`-${match.toLowerCase()}`),toCssDeclarations=styles=>Object.entries(styles).map(([name,value])=>`${toCssProperty(name)}: ${value};`).join(`
3
+ `),stableSerialize=value=>value===null||typeof value!="object"?JSON.stringify(value):Array.isArray(value)?`[${value.map(stableSerialize).join(",")}]`:`{${Object.entries(value).filter(([,entryValue])=>entryValue!==void 0).sort(([firstKey],[secondKey])=>firstKey.localeCompare(secondKey)).map(([key,entryValue])=>`${JSON.stringify(key)}:${stableSerialize(entryValue)}`).join(",")}}`,hashString=value=>{let hash=5381;for(let index=0;index<value.length;index+=1)hash=hash*33^value.charCodeAt(index);return(hash>>>0).toString(36)},getMaterialCacheKey=(seed,options)=>stableSerialize({options,seed}),getCachedMaterial=key=>{const cachedMaterial=materialCache.get(key);if(cachedMaterial)return materialCache.delete(key),materialCache.set(key,cachedMaterial),cachedMaterial},setCachedMaterial=(key,material)=>{if(materialCacheLimit<=0)return material;for(materialCache.set(key,material);materialCache.size>materialCacheLimit;){const oldestKey=materialCache.keys().next().value;if(oldestKey===void 0)break;materialCache.delete(oldestKey)}return material},clearGradientMaterialCache=()=>{materialCache.clear()},setGradientMaterialCacheLimit=limit=>{for(materialCacheLimit=Math.max(0,Math.floor(limit));materialCache.size>materialCacheLimit;){const oldestKey=materialCache.keys().next().value;if(oldestKey===void 0)break;materialCache.delete(oldestKey)}},getGradientMaterialCacheStats=()=>({limit:materialCacheLimit,size:materialCache.size}),toScopedCssText=(className,cssVars,style,keyframes)=>{const vars=toCssText(cssVars),styles=toCssDeclarations(style),body=[vars,styles].filter(Boolean).join(`
4
+ `);return[`.${className} {
5
+ ${body}
6
+ }`,keyframes].filter(Boolean).join(`
7
+
8
+ `)},isGradientPresetName=(value,registry)=>value in registry,resolveTokenPreset=(recipe,registry)=>isGradientPresetName(recipe,registry)?presets.getGradientPreset(recipe,registry):recipe==="soft"?{label:"Soft",description:"Quiet monochrome radial gradient.",gradient:{recipe:"monochrome",type:"radial",position:"center",shape:"ellipse"},shadow:{layers:2,opacity:.18,blur:18,y:7,spread:-4},dropShadow:{layers:2,opacity:.26,blur:16,y:6},animation:{preset:"pulse",duration:7200,easing:"ease-in-out"}}:recipe==="mesh"?null:{label:recipe,gradient:{recipe,type:"linear",direction:recipe==="glare"?135:145}},createMeshGradient=seed=>{const layers=[`radial-gradient(circle at 16% 18%, ${presets.shiftHue(seed,-42,72,1.05)} 0%, transparent 34%)`,`radial-gradient(circle at 86% 20%, ${presets.getComplementaryColor(seed)} 0%, transparent 32%)`,`radial-gradient(circle at 50% 84%, ${presets.shiftHue(seed,56,64,1.08)} 0%, transparent 38%)`,`linear-gradient(135deg, ${presets.changeTone(seed,94)}, ${presets.changeTone(seed,28)})`];return{layers,value:layers.join(", ")}},createTokenGradientEntry=(seed,recipe,cssVar,options,registry)=>{if(recipe==="mesh"){const mesh=createMeshGradient(seed);return{cssVar,layers:mesh.layers,value:mesh.value}}const preset=resolveTokenPreset(recipe,registry),palette=presets.createPalette(seed),model=presets.createGradientModel(palette,{...preset==null?void 0:preset.gradient,...options});return{cssVar,model,stops:model.stops,svg:svg.toSvgGradient(model,{id:cssVar.replace(/^--/,"")}),value:css.toCssGradient(model)}},createTokenEffectEntry=(model,cssVarName,preset,options)=>{var _a,_b;if(!model)return{};const morphId=`${cssVarName.replace(/^--/,"")}-morph`,morphBlendMode=effects.resolveGradientMorphBlendMode((_a=options==null?void 0:options.morph)==null?void 0:_a.blendMode),morphOptions={...options==null?void 0:options.morph,id:((_b=options==null?void 0:options.morph)==null?void 0:_b.id)??morphId};return{boxShadow:{cssVar:`${cssVarName}-shadow`,value:effects.toGradientBoxShadow(model,(options==null?void 0:options.shadow)??(preset==null?void 0:preset.shadow))},dropShadow:{cssVar:`${cssVarName}-drop-shadow`,value:effects.toGradientDropShadow(model,(options==null?void 0:options.dropShadow)??(preset==null?void 0:preset.dropShadow))},morph:{blendMode:morphBlendMode,blendModeCssVar:`${cssVarName}-morph-blend-mode`,cssVar:`${cssVarName}-morph`,svg:effects.toGradientMorphFilterMarkup(morphOptions),value:effects.toGradientMorphFilter(morphOptions)}}},createTokenAnimationEntry=(name,cssVarName,preset,options)=>{var _a;const animationOptions={...preset==null?void 0:preset.animation,...options,name:`g-gradient-${name}-${(options==null?void 0:options.preset)??((_a=preset==null?void 0:preset.animation)==null?void 0:_a.preset)??"shift"}`,selector:`.g-gradient-${name}`};return{css:animation.toGradientAnimationCSS(animationOptions),cssVar:`${cssVarName}-animation`,keyframes:animation.toGradientAnimationKeyframes(animationOptions),name:animationOptions.name,value:animation.toGradientAnimationValue(animationOptions)}},createGradientPreset=(seed,recipe="glare",options={})=>{const registry=options.registry??presets.gradientPresets,name=toTokenName(recipe),cssVarName=toCssVar(options.prefix??"--g-gradient",name),preset=resolveTokenPreset(recipe,registry),seedColor=presets.createPalette(seed)[500],gradient=createTokenGradientEntry(seedColor,recipe,cssVarName,options,registry),cssVars={[cssVarName]:gradient.value},effects2=options.effects?createTokenEffectEntry(gradient.model,cssVarName,preset,{dropShadow:options.dropShadow,morph:options.morph,shadow:options.shadow}):void 0,animation2=options.animations?createTokenAnimationEntry(name,cssVarName,preset,options.animation):void 0;return effects2!=null&&effects2.boxShadow&&(cssVars[effects2.boxShadow.cssVar]=effects2.boxShadow.value),effects2!=null&&effects2.dropShadow&&(cssVars[effects2.dropShadow.cssVar]=effects2.dropShadow.value),effects2!=null&&effects2.morph&&(cssVars[effects2.morph.cssVar]=effects2.morph.value,cssVars[effects2.morph.blendModeCssVar]=effects2.morph.blendMode),animation2&&(cssVars[animation2.cssVar]=animation2.value),{animation:animation2,cssText:toCssText(cssVars),cssVars,description:preset==null?void 0:preset.description,effects:effects2,gradient,keyframes:(animation2==null?void 0:animation2.keyframes)??"",label:(preset==null?void 0:preset.label)??name,name}},createGradientTokens=(seed,options={})=>{const recipes=options.recipes??DEFAULT_TOKEN_RECIPES,gradients={},effects2={},animations={},cssVars={},keyframes=[];for(const recipe of recipes){const preset=createGradientPreset(seed,recipe,{animations:options.animations,effects:options.effects,morph:options.morph,prefix:options.prefix,registry:options.registry});gradients[preset.name]=preset.gradient,Object.assign(cssVars,preset.cssVars),preset.effects&&(effects2[preset.name]=preset.effects),preset.animation&&(animations[preset.name]=preset.animation,keyframes.push(preset.animation.keyframes))}return{animations,cssText:toCssText(cssVars),cssVars,effects:effects2,gradients,keyframes:keyframes.join(`
9
+ `)}},createGradientMaterial=(seed,options={})=>{var _a,_b;const cacheKey=getMaterialCacheKey(seed,options),cachedMaterial=getCachedMaterial(cacheKey);if(cachedMaterial)return cachedMaterial;const{className,id,recipe="glare",...presetOptions}=options,preset=createGradientPreset(seed,recipe,presetOptions),morphBlobs=preset.gradient.model&&options.effects&&options.morph?effects.createGradientMorphBlobs(preset.gradient.model,options.morph):void 0,stableId=id??`g-gradient-${preset.name}-${hashString(stableSerialize({options,seed}))}`,stableClassName=className??stableId,style={backgroundImage:`var(${preset.gradient.cssVar})`};return(_a=preset.effects)!=null&&_a.boxShadow&&(style.boxShadow=`var(${preset.effects.boxShadow.cssVar})`),(_b=preset.effects)!=null&&_b.dropShadow&&(style.filter=`var(${preset.effects.dropShadow.cssVar})`),preset.animation&&(style.animation=`var(${preset.animation.cssVar})`),setCachedMaterial(cacheKey,{animation:preset.animation,className:stableClassName,cssText:toScopedCssText(stableClassName,preset.cssVars,style,preset.keyframes),cssVars:preset.cssVars,effects:preset.effects,gradient:preset.gradient,id:stableId,keyframes:preset.keyframes,morphBlobs,preset,style})};exports.clearGradientMaterialCache=clearGradientMaterialCache;exports.createGradientMaterial=createGradientMaterial;exports.createGradientPreset=createGradientPreset;exports.createGradientTokens=createGradientTokens;exports.getGradientMaterialCacheStats=getGradientMaterialCacheStats;exports.setGradientMaterialCacheLimit=setGradientMaterialCacheLimit;
package/dist/material.mjs CHANGED
@@ -1,6 +1,238 @@
1
- import { c as r, a as t, b as s } from "./tokens-OfSofVKl.js";
1
+ import { j as gradientPresets, d as createPalette, i as getGradientPreset, c as createGradientModel, s as shiftHue, n as getComplementaryColor, o as changeTone } from "./presets-Du6aTLtD.js";
2
+ import { toGradientAnimationValue, toGradientAnimationKeyframes, toGradientAnimationCSS } from "./animation.mjs";
3
+ import { createGradientMorphBlobs, resolveGradientMorphBlendMode, toGradientMorphFilter, toGradientMorphFilterMarkup, toGradientDropShadow, toGradientBoxShadow } from "./effects.mjs";
4
+ import { t as toCssGradient } from "./css-B3xGfmW1.js";
5
+ import { t as toSvgGradient } from "./svg-B2CaHCLv.js";
6
+ const DEFAULT_TOKEN_RECIPES = ["glare", "soft", "mesh"], DEFAULT_MATERIAL_CACHE_LIMIT = 128;
7
+ let materialCacheLimit = DEFAULT_MATERIAL_CACHE_LIMIT;
8
+ const materialCache = /* @__PURE__ */ new Map(), toKebabCase = (value) => value.replace(/[A-Z]/g, (match) => `-${match.toLowerCase()}`), toTokenName = (recipe) => toKebabCase(recipe), toCssVar = (prefix, name, suffix) => `${prefix}-${name}`, toCssText = (cssVars) => Object.entries(cssVars).map(([name, value]) => `${name}: ${value};`).join(`
9
+ `), toCssProperty = (value) => value.replace(/[A-Z]/g, (match) => `-${match.toLowerCase()}`), toCssDeclarations = (styles) => Object.entries(styles).map(([name, value]) => `${toCssProperty(name)}: ${value};`).join(`
10
+ `), stableSerialize = (value) => value === null || typeof value != "object" ? JSON.stringify(value) : Array.isArray(value) ? `[${value.map(stableSerialize).join(",")}]` : `{${Object.entries(value).filter(([, entryValue]) => entryValue !== void 0).sort(([firstKey], [secondKey]) => firstKey.localeCompare(secondKey)).map(
11
+ ([key, entryValue]) => `${JSON.stringify(key)}:${stableSerialize(entryValue)}`
12
+ ).join(",")}}`, hashString = (value) => {
13
+ let hash = 5381;
14
+ for (let index = 0; index < value.length; index += 1)
15
+ hash = hash * 33 ^ value.charCodeAt(index);
16
+ return (hash >>> 0).toString(36);
17
+ }, getMaterialCacheKey = (seed, options) => stableSerialize({ options, seed }), getCachedMaterial = (key) => {
18
+ const cachedMaterial = materialCache.get(key);
19
+ if (cachedMaterial)
20
+ return materialCache.delete(key), materialCache.set(key, cachedMaterial), cachedMaterial;
21
+ }, setCachedMaterial = (key, material) => {
22
+ if (materialCacheLimit <= 0) return material;
23
+ for (materialCache.set(key, material); materialCache.size > materialCacheLimit; ) {
24
+ const oldestKey = materialCache.keys().next().value;
25
+ if (oldestKey === void 0) break;
26
+ materialCache.delete(oldestKey);
27
+ }
28
+ return material;
29
+ }, clearGradientMaterialCache = () => {
30
+ materialCache.clear();
31
+ }, setGradientMaterialCacheLimit = (limit) => {
32
+ for (materialCacheLimit = Math.max(0, Math.floor(limit)); materialCache.size > materialCacheLimit; ) {
33
+ const oldestKey = materialCache.keys().next().value;
34
+ if (oldestKey === void 0) break;
35
+ materialCache.delete(oldestKey);
36
+ }
37
+ }, getGradientMaterialCacheStats = () => ({
38
+ limit: materialCacheLimit,
39
+ size: materialCache.size
40
+ }), toScopedCssText = (className, cssVars, style, keyframes) => {
41
+ const vars = toCssText(cssVars), styles = toCssDeclarations(style), body = [vars, styles].filter(Boolean).join(`
42
+ `);
43
+ return [`.${className} {
44
+ ${body}
45
+ }`, keyframes].filter(Boolean).join(`
46
+
47
+ `);
48
+ }, isGradientPresetName = (value, registry) => value in registry, resolveTokenPreset = (recipe, registry) => isGradientPresetName(recipe, registry) ? getGradientPreset(recipe, registry) : recipe === "soft" ? {
49
+ label: "Soft",
50
+ description: "Quiet monochrome radial gradient.",
51
+ gradient: {
52
+ recipe: "monochrome",
53
+ type: "radial",
54
+ position: "center",
55
+ shape: "ellipse"
56
+ },
57
+ shadow: {
58
+ layers: 2,
59
+ opacity: 0.18,
60
+ blur: 18,
61
+ y: 7,
62
+ spread: -4
63
+ },
64
+ dropShadow: {
65
+ layers: 2,
66
+ opacity: 0.26,
67
+ blur: 16,
68
+ y: 6
69
+ },
70
+ animation: {
71
+ preset: "pulse",
72
+ duration: 7200,
73
+ easing: "ease-in-out"
74
+ }
75
+ } : recipe === "mesh" ? null : {
76
+ label: recipe,
77
+ gradient: {
78
+ recipe,
79
+ type: "linear",
80
+ direction: recipe === "glare" ? 135 : 145
81
+ }
82
+ }, createMeshGradient = (seed) => {
83
+ const layers = [
84
+ `radial-gradient(circle at 16% 18%, ${shiftHue(seed, -42, 72, 1.05)} 0%, transparent 34%)`,
85
+ `radial-gradient(circle at 86% 20%, ${getComplementaryColor(seed)} 0%, transparent 32%)`,
86
+ `radial-gradient(circle at 50% 84%, ${shiftHue(seed, 56, 64, 1.08)} 0%, transparent 38%)`,
87
+ `linear-gradient(135deg, ${changeTone(seed, 94)}, ${changeTone(seed, 28)})`
88
+ ];
89
+ return {
90
+ layers,
91
+ value: layers.join(", ")
92
+ };
93
+ }, createTokenGradientEntry = (seed, recipe, cssVar, options, registry) => {
94
+ if (recipe === "mesh") {
95
+ const mesh = createMeshGradient(seed);
96
+ return {
97
+ cssVar,
98
+ layers: mesh.layers,
99
+ value: mesh.value
100
+ };
101
+ }
102
+ const preset = resolveTokenPreset(recipe, registry), palette = createPalette(seed), model = createGradientModel(palette, {
103
+ ...preset == null ? void 0 : preset.gradient,
104
+ ...options
105
+ });
106
+ return {
107
+ cssVar,
108
+ model,
109
+ stops: model.stops,
110
+ svg: toSvgGradient(model, { id: cssVar.replace(/^--/, "") }),
111
+ value: toCssGradient(model)
112
+ };
113
+ }, createTokenEffectEntry = (model, cssVarName, preset, options) => {
114
+ var _a, _b;
115
+ if (!model) return {};
116
+ const morphId = `${cssVarName.replace(/^--/, "")}-morph`, morphBlendMode = resolveGradientMorphBlendMode(
117
+ (_a = options == null ? void 0 : options.morph) == null ? void 0 : _a.blendMode
118
+ ), morphOptions = {
119
+ ...options == null ? void 0 : options.morph,
120
+ id: ((_b = options == null ? void 0 : options.morph) == null ? void 0 : _b.id) ?? morphId
121
+ };
122
+ return {
123
+ boxShadow: {
124
+ cssVar: `${cssVarName}-shadow`,
125
+ value: toGradientBoxShadow(model, (options == null ? void 0 : options.shadow) ?? (preset == null ? void 0 : preset.shadow))
126
+ },
127
+ dropShadow: {
128
+ cssVar: `${cssVarName}-drop-shadow`,
129
+ value: toGradientDropShadow(
130
+ model,
131
+ (options == null ? void 0 : options.dropShadow) ?? (preset == null ? void 0 : preset.dropShadow)
132
+ )
133
+ },
134
+ morph: {
135
+ blendMode: morphBlendMode,
136
+ blendModeCssVar: `${cssVarName}-morph-blend-mode`,
137
+ cssVar: `${cssVarName}-morph`,
138
+ svg: toGradientMorphFilterMarkup(morphOptions),
139
+ value: toGradientMorphFilter(morphOptions)
140
+ }
141
+ };
142
+ }, createTokenAnimationEntry = (name, cssVarName, preset, options) => {
143
+ var _a;
144
+ const animationOptions = {
145
+ ...preset == null ? void 0 : preset.animation,
146
+ ...options,
147
+ name: `g-gradient-${name}-${(options == null ? void 0 : options.preset) ?? ((_a = preset == null ? void 0 : preset.animation) == null ? void 0 : _a.preset) ?? "shift"}`,
148
+ selector: `.g-gradient-${name}`
149
+ };
150
+ return {
151
+ css: toGradientAnimationCSS(animationOptions),
152
+ cssVar: `${cssVarName}-animation`,
153
+ keyframes: toGradientAnimationKeyframes(animationOptions),
154
+ name: animationOptions.name,
155
+ value: toGradientAnimationValue(animationOptions)
156
+ };
157
+ }, createGradientPreset = (seed, recipe = "glare", options = {}) => {
158
+ const registry = options.registry ?? gradientPresets, name = toTokenName(recipe), cssVarName = toCssVar(options.prefix ?? "--g-gradient", name), preset = resolveTokenPreset(recipe, registry), seedColor = createPalette(seed)[500], gradient = createTokenGradientEntry(
159
+ seedColor,
160
+ recipe,
161
+ cssVarName,
162
+ options,
163
+ registry
164
+ ), cssVars = {
165
+ [cssVarName]: gradient.value
166
+ }, effects = options.effects ? createTokenEffectEntry(gradient.model, cssVarName, preset, {
167
+ dropShadow: options.dropShadow,
168
+ morph: options.morph,
169
+ shadow: options.shadow
170
+ }) : void 0, animation = options.animations ? createTokenAnimationEntry(name, cssVarName, preset, options.animation) : void 0;
171
+ return effects != null && effects.boxShadow && (cssVars[effects.boxShadow.cssVar] = effects.boxShadow.value), effects != null && effects.dropShadow && (cssVars[effects.dropShadow.cssVar] = effects.dropShadow.value), effects != null && effects.morph && (cssVars[effects.morph.cssVar] = effects.morph.value, cssVars[effects.morph.blendModeCssVar] = effects.morph.blendMode), animation && (cssVars[animation.cssVar] = animation.value), {
172
+ animation,
173
+ cssText: toCssText(cssVars),
174
+ cssVars,
175
+ description: preset == null ? void 0 : preset.description,
176
+ effects,
177
+ gradient,
178
+ keyframes: (animation == null ? void 0 : animation.keyframes) ?? "",
179
+ label: (preset == null ? void 0 : preset.label) ?? name,
180
+ name
181
+ };
182
+ }, createGradientTokens = (seed, options = {}) => {
183
+ const recipes = options.recipes ?? DEFAULT_TOKEN_RECIPES, gradients = {}, effects = {}, animations = {}, cssVars = {}, keyframes = [];
184
+ for (const recipe of recipes) {
185
+ const preset = createGradientPreset(seed, recipe, {
186
+ animations: options.animations,
187
+ effects: options.effects,
188
+ morph: options.morph,
189
+ prefix: options.prefix,
190
+ registry: options.registry
191
+ });
192
+ gradients[preset.name] = preset.gradient, Object.assign(cssVars, preset.cssVars), preset.effects && (effects[preset.name] = preset.effects), preset.animation && (animations[preset.name] = preset.animation, keyframes.push(preset.animation.keyframes));
193
+ }
194
+ return {
195
+ animations,
196
+ cssText: toCssText(cssVars),
197
+ cssVars,
198
+ effects,
199
+ gradients,
200
+ keyframes: keyframes.join(`
201
+ `)
202
+ };
203
+ }, createGradientMaterial = (seed, options = {}) => {
204
+ var _a, _b;
205
+ const cacheKey = getMaterialCacheKey(seed, options), cachedMaterial = getCachedMaterial(cacheKey);
206
+ if (cachedMaterial) return cachedMaterial;
207
+ const { className, id, recipe = "glare", ...presetOptions } = options, preset = createGradientPreset(seed, recipe, presetOptions), morphBlobs = preset.gradient.model && options.effects && options.morph ? createGradientMorphBlobs(preset.gradient.model, options.morph) : void 0, stableId = id ?? `g-gradient-${preset.name}-${hashString(
208
+ stableSerialize({ options, seed })
209
+ )}`, stableClassName = className ?? stableId, style = {
210
+ backgroundImage: `var(${preset.gradient.cssVar})`
211
+ };
212
+ return (_a = preset.effects) != null && _a.boxShadow && (style.boxShadow = `var(${preset.effects.boxShadow.cssVar})`), (_b = preset.effects) != null && _b.dropShadow && (style.filter = `var(${preset.effects.dropShadow.cssVar})`), preset.animation && (style.animation = `var(${preset.animation.cssVar})`), setCachedMaterial(cacheKey, {
213
+ animation: preset.animation,
214
+ className: stableClassName,
215
+ cssText: toScopedCssText(
216
+ stableClassName,
217
+ preset.cssVars,
218
+ style,
219
+ preset.keyframes
220
+ ),
221
+ cssVars: preset.cssVars,
222
+ effects: preset.effects,
223
+ gradient: preset.gradient,
224
+ id: stableId,
225
+ keyframes: preset.keyframes,
226
+ morphBlobs,
227
+ preset,
228
+ style
229
+ });
230
+ };
2
231
  export {
3
- r as createGradientMaterial,
4
- t as createGradientPreset,
5
- s as createGradientTokens
232
+ clearGradientMaterialCache,
233
+ createGradientMaterial,
234
+ createGradientPreset,
235
+ createGradientTokens,
236
+ getGradientMaterialCacheStats,
237
+ setGradientMaterialCacheLimit
6
238
  };