@mkbabb/value.js 0.1.0 → 0.2.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 CHANGED
@@ -0,0 +1,33 @@
1
+ # value.js ![image](demo/color-picker/cube.png)
2
+
3
+ CSS value units for color, length, angles, & c. Create a moderately-typed value with a unit, like `deg`, `px`, etc.
4
+
5
+ [demo 🌈](https://color.babb.dev)
6
+
7
+ ## Features
8
+
9
+ - Parse any CSS value: lengths, angles, times, colors, `calc()`, `var()`, gradients
10
+ - 10 color spaces: RGB, HSL, HSV, HWB, Lab, LCh, OKLab, OKLCh, XYZ, Kelvin
11
+ - Full color space conversion via XYZ hub with gamut mapping
12
+ - Normalize, interpolate, and convert between units
13
+
14
+ ## Install
15
+
16
+ ```bash
17
+ npm install @mkbabb/value.js
18
+ ```
19
+
20
+ ## Usage
21
+
22
+ ```ts
23
+ import { ValueUnit, FunctionValue } from "@mkbabb/value.js";
24
+ ```
25
+
26
+ ## Build
27
+
28
+ ```bash
29
+ npm run build # library → dist/
30
+ npm run gh-pages # demo → dist/
31
+ npm run dev # dev server on :8080
32
+ npm test # vitest
33
+ ```
package/dist/value.cjs ADDED
@@ -0,0 +1,8 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Gt=1e3/60,Pe=e=>!!e&&e.constructor===Object;function Z(e){return Pe(e)?Object.entries(e).map(([t,n])=>[t,Z(n)]).reduce((t,[n,r])=>(t[n]=r,t),{}):e!=null&&typeof e.clone=="function"?e.clone():Array.isArray(e)?e.map(Z):e}const ko=(e,t)=>{if(!e||!t||e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0};async function So(e){return await new Promise(t=>setTimeout(t,e))}async function yo(e,t=Gt){return await new Promise(n=>{const r=setInterval(()=>{if(e())return clearInterval(r),n()},t)})}function Co(e,t=100,n=!1){let r=null;const o=function(...s){const i=this,a=function(){r=null,n||e.apply(i,s)},c=n&&!r;r&&clearTimeout(r),r=setTimeout(a,t),c&&e.apply(i,s)};return o.cancel=()=>{r&&(clearTimeout(r),r=null)},o}async function xo(e,t){const n=new TextEncoder().encode(t),r=await crypto.subtle.digest(e,n);return Array.from(new Uint8Array(r)).map(s=>s.toString(16).padStart(2,"0")).join("")}function It(e,t={}){const n=new Map,{maxCacheSize:r=1/0,ttl:o=1/0,keyFn:s=JSON.stringify}=t,i=function(...a){const c=s.apply(this,a),l=Date.now();if(n.has(c)){const u=n.get(c);if(l-u.timestamp<=o)return u.value;n.delete(c)}const m=e.apply(this,a);if(n.set(c,{value:m,timestamp:l}),n.size>r){const u=n.keys().next().value;n.delete(u)}return m};return i.cache=n,i}const To=e=>e.replace(/([-_][a-z])/gi,t=>t.toUpperCase().replace("-","").replace("_",""));function vo(e){return e.replace(/([A-Z])/g,t=>`-${t[0].toLowerCase()}`)}function Eo(e,t,n){for(let r=e-1;r>=0;r--)if(n(t[r]))return r}function Mo(e){if(typeof window<"u"&&window.requestAnimationFrame)return window.requestAnimationFrame(e);let t=Gt,n=Date.now();return setTimeout(()=>{let r=Date.now(),o=r-n;n=r,t=Math.max(0,Gt-o),e(r)},t)}function Ao(e){if(typeof window<"u"&&window.cancelAnimationFrame)return window.cancelAnimationFrame(e);clearTimeout(e)}const ze=["px","cm","mm","Q","in","pc","pt"],Le=["em","ex","ch","rem","lh","rlh","vw","vh","vmin","vmax","vb","vi","svw","svh","lvw","lvh","dvw","dvh"],Tt=[...ze,...Le],vt=["s","ms"],Et=["deg","rad","grad","turn"],Ge=["%"],Mt=["dpi","dpcm","dppx","cqw"],$t=["var","calc"],Mn=["string"],An=["color"],Io=[...Tt,...vt,...Et,...Ge,...Mt,...$t,...Mn,...An,"",void 0],In=["string","var","calc"],Rn=["accentColor","additiveSymbols","alignContent","alignItems","alignSelf","alignmentBaseline","all","anchorName","animation","animationComposition","animationDelay","animationDirection","animationDuration","animationFillMode","animationIterationCount","animationName","animationPlayState","animationRange","animationRangeEnd","animationRangeStart","animationTimeline","animationTimingFunction","appRegion","appearance","ascentOverride","aspectRatio","backdropFilter","backfaceVisibility","background","backgroundAttachment","backgroundBlendMode","backgroundClip","backgroundColor","backgroundImage","backgroundOrigin","backgroundPosition","backgroundPositionX","backgroundPositionY","backgroundRepeat","backgroundSize","basePalette","baselineShift","baselineSource","blockSize","border","borderBlock","borderBlockColor","borderBlockEnd","borderBlockEndColor","borderBlockEndStyle","borderBlockEndWidth","borderBlockStart","borderBlockStartColor","borderBlockStartStyle","borderBlockStartWidth","borderBlockStyle","borderBlockWidth","borderBottom","borderBottomColor","borderBottomLeftRadius","borderBottomRightRadius","borderBottomStyle","borderBottomWidth","borderCollapse","borderColor","borderEndEndRadius","borderEndStartRadius","borderImage","borderImageOutset","borderImageRepeat","borderImageSlice","borderImageSource","borderImageWidth","borderInline","borderInlineColor","borderInlineEnd","borderInlineEndColor","borderInlineEndStyle","borderInlineEndWidth","borderInlineStart","borderInlineStartColor","borderInlineStartStyle","borderInlineStartWidth","borderInlineStyle","borderInlineWidth","borderLeft","borderLeftColor","borderLeftStyle","borderLeftWidth","borderRadius","borderRight","borderRightColor","borderRightStyle","borderRightWidth","borderSpacing","borderStartEndRadius","borderStartStartRadius","borderStyle","borderTop","borderTopColor","borderTopLeftRadius","borderTopRightRadius","borderTopStyle","borderTopWidth","borderWidth","bottom","boxShadow","boxSizing","breakAfter","breakBefore","breakInside","bufferedRendering","captionSide","caretColor","clear","clip","clipPath","clipRule","color","colorInterpolation","colorInterpolationFilters","colorRendering","colorScheme","columnCount","columnFill","columnGap","columnRule","columnRuleColor","columnRuleStyle","columnRuleWidth","columnSpan","columnWidth","columns","contain","containIntrinsicBlockSize","containIntrinsicHeight","containIntrinsicInlineSize","containIntrinsicSize","containIntrinsicWidth","container","containerName","containerType","content","contentVisibility","counterIncrement","counterReset","counterSet","cursor","cx","cy","d","descentOverride","direction","display","dominantBaseline","emptyCells","fallback","fieldSizing","fill","fillOpacity","fillRule","filter","flex","flexBasis","flexDirection","flexFlow","flexGrow","flexShrink","flexWrap","float","floodColor","floodOpacity","font","fontDisplay","fontFamily","fontFeatureSettings","fontKerning","fontOpticalSizing","fontPalette","fontSize","fontStretch","fontStyle","fontSynthesis","fontSynthesisSmallCaps","fontSynthesisStyle","fontSynthesisWeight","fontVariant","fontVariantAlternates","fontVariantCaps","fontVariantEastAsian","fontVariantLigatures","fontVariantNumeric","fontVariantPosition","fontVariationSettings","fontWeight","forcedColorAdjust","gap","grid","gridArea","gridAutoColumns","gridAutoFlow","gridAutoRows","gridColumn","gridColumnEnd","gridColumnGap","gridColumnStart","gridGap","gridRow","gridRowEnd","gridRowGap","gridRowStart","gridTemplate","gridTemplateAreas","gridTemplateColumns","gridTemplateRows","height","hyphenateCharacter","hyphenateLimitChars","hyphens","imageOrientation","imageRendering","inherits","initialLetter","initialValue","inlineSize","inset","insetArea","insetBlock","insetBlockEnd","insetBlockStart","insetInline","insetInlineEnd","insetInlineStart","isolation","justifyContent","justifyItems","justifySelf","left","letterSpacing","lightingColor","lineBreak","lineGapOverride","lineHeight","listStyle","listStyleImage","listStylePosition","listStyleType","margin","marginBlock","marginBlockEnd","marginBlockStart","marginBottom","marginInline","marginInlineEnd","marginInlineStart","marginLeft","marginRight","marginTop","marker","markerEnd","markerMid","markerStart","mask","maskClip","maskComposite","maskImage","maskMode","maskOrigin","maskPosition","maskRepeat","maskSize","maskType","mathDepth","mathShift","mathStyle","maxBlockSize","maxHeight","maxInlineSize","maxWidth","minBlockSize","minHeight","minInlineSize","minWidth","mixBlendMode","navigation","negative","objectFit","objectPosition","objectViewBox","offset","offsetAnchor","offsetDistance","offsetPath","offsetPosition","offsetRotate","opacity","order","orphans","outline","outlineColor","outlineOffset","outlineStyle","outlineWidth","overflow","overflowAnchor","overflowClipMargin","overflowWrap","overflowX","overflowY","overlay","overrideColors","overscrollBehavior","overscrollBehaviorBlock","overscrollBehaviorInline","overscrollBehaviorX","overscrollBehaviorY","pad","padding","paddingBlock","paddingBlockEnd","paddingBlockStart","paddingBottom","paddingInline","paddingInlineEnd","paddingInlineStart","paddingLeft","paddingRight","paddingTop","page","pageBreakAfter","pageBreakBefore","pageBreakInside","pageOrientation","paintOrder","perspective","perspectiveOrigin","placeContent","placeItems","placeSelf","pointerEvents","position","positionAnchor","positionTry","positionTryOptions","positionTryOrder","positionVisibility","prefix","quotes","r","range","resize","right","rotate","rowGap","rubyPosition","rx","ry","scale","scrollBehavior","scrollMargin","scrollMarginBlock","scrollMarginBlockEnd","scrollMarginBlockStart","scrollMarginBottom","scrollMarginInline","scrollMarginInlineEnd","scrollMarginInlineStart","scrollMarginLeft","scrollMarginRight","scrollMarginTop","scrollPadding","scrollPaddingBlock","scrollPaddingBlockEnd","scrollPaddingBlockStart","scrollPaddingBottom","scrollPaddingInline","scrollPaddingInlineEnd","scrollPaddingInlineStart","scrollPaddingLeft","scrollPaddingRight","scrollPaddingTop","scrollSnapAlign","scrollSnapStop","scrollSnapType","scrollTimeline","scrollTimelineAxis","scrollTimelineName","scrollbarColor","scrollbarGutter","scrollbarWidth","shapeImageThreshold","shapeMargin","shapeOutside","shapeRendering","size","sizeAdjust","speak","speakAs","src","stopColor","stopOpacity","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","suffix","symbols","syntax","system","tabSize","tableLayout","textAlign","textAlignLast","textAnchor","textCombineUpright","textDecoration","textDecorationColor","textDecorationLine","textDecorationSkipInk","textDecorationStyle","textDecorationThickness","textEmphasis","textEmphasisColor","textEmphasisPosition","textEmphasisStyle","textIndent","textOrientation","textOverflow","textRendering","textShadow","textSizeAdjust","textSpacingTrim","textTransform","textUnderlineOffset","textUnderlinePosition","textWrap","timelineScope","top","touchAction","transform","transformBox","transformOrigin","transformStyle","transition","transitionBehavior","transitionDelay","transitionDuration","transitionProperty","transitionTimingFunction","translate","types","unicodeBidi","unicodeRange","userSelect","vectorEffect","verticalAlign","viewTimeline","viewTimelineAxis","viewTimelineInset","viewTimelineName","viewTransitionClass","viewTransitionName","visibility","webkitAlignContent","webkitAlignItems","webkitAlignSelf","webkitAnimation","webkitAnimationDelay","webkitAnimationDirection","webkitAnimationDuration","webkitAnimationFillMode","webkitAnimationIterationCount","webkitAnimationName","webkitAnimationPlayState","webkitAnimationTimingFunction","webkitAppRegion","webkitAppearance","webkitBackfaceVisibility","webkitBackgroundClip","webkitBackgroundOrigin","webkitBackgroundSize","webkitBorderAfter","webkitBorderAfterColor","webkitBorderAfterStyle","webkitBorderAfterWidth","webkitBorderBefore","webkitBorderBeforeColor","webkitBorderBeforeStyle","webkitBorderBeforeWidth","webkitBorderBottomLeftRadius","webkitBorderBottomRightRadius","webkitBorderEnd","webkitBorderEndColor","webkitBorderEndStyle","webkitBorderEndWidth","webkitBorderHorizontalSpacing","webkitBorderImage","webkitBorderRadius","webkitBorderStart","webkitBorderStartColor","webkitBorderStartStyle","webkitBorderStartWidth","webkitBorderTopLeftRadius","webkitBorderTopRightRadius","webkitBorderVerticalSpacing","webkitBoxAlign","webkitBoxDecorationBreak","webkitBoxDirection","webkitBoxFlex","webkitBoxOrdinalGroup","webkitBoxOrient","webkitBoxPack","webkitBoxReflect","webkitBoxShadow","webkitBoxSizing","webkitClipPath","webkitColumnBreakAfter","webkitColumnBreakBefore","webkitColumnBreakInside","webkitColumnCount","webkitColumnGap","webkitColumnRule","webkitColumnRuleColor","webkitColumnRuleStyle","webkitColumnRuleWidth","webkitColumnSpan","webkitColumnWidth","webkitColumns","webkitFilter","webkitFlex","webkitFlexBasis","webkitFlexDirection","webkitFlexFlow","webkitFlexGrow","webkitFlexShrink","webkitFlexWrap","webkitFontFeatureSettings","webkitFontSmoothing","webkitHyphenateCharacter","webkitJustifyContent","webkitLineBreak","webkitLineClamp","webkitLocale","webkitLogicalHeight","webkitLogicalWidth","webkitMarginAfter","webkitMarginBefore","webkitMarginEnd","webkitMarginStart","webkitMask","webkitMaskBoxImage","webkitMaskBoxImageOutset","webkitMaskBoxImageRepeat","webkitMaskBoxImageSlice","webkitMaskBoxImageSource","webkitMaskBoxImageWidth","webkitMaskClip","webkitMaskComposite","webkitMaskImage","webkitMaskOrigin","webkitMaskPosition","webkitMaskPositionX","webkitMaskPositionY","webkitMaskRepeat","webkitMaskSize","webkitMaxLogicalHeight","webkitMaxLogicalWidth","webkitMinLogicalHeight","webkitMinLogicalWidth","webkitOpacity","webkitOrder","webkitPaddingAfter","webkitPaddingBefore","webkitPaddingEnd","webkitPaddingStart","webkitPerspective","webkitPerspectiveOrigin","webkitPerspectiveOriginX","webkitPerspectiveOriginY","webkitPrintColorAdjust","webkitRtlOrdering","webkitRubyPosition","webkitShapeImageThreshold","webkitShapeMargin","webkitShapeOutside","webkitTapHighlightColor","webkitTextCombine","webkitTextDecorationsInEffect","webkitTextEmphasis","webkitTextEmphasisColor","webkitTextEmphasisPosition","webkitTextEmphasisStyle","webkitTextFillColor","webkitTextOrientation","webkitTextSecurity","webkitTextSizeAdjust","webkitTextStroke","webkitTextStrokeColor","webkitTextStrokeWidth","webkitTransform","webkitTransformOrigin","webkitTransformOriginX","webkitTransformOriginY","webkitTransformOriginZ","webkitTransformStyle","webkitTransition","webkitTransitionDelay","webkitTransitionDuration","webkitTransitionProperty","webkitTransitionTimingFunction","webkitUserDrag","webkitUserModify","webkitUserSelect","webkitWritingMode","whiteSpace","whiteSpaceCollapse","widows","width","willChange","wordBreak","wordSpacing","wordWrap","writingMode","x","y","zIndex","zoom"],gn=(e,t=2)=>typeof e=="number"&&Number.isNaN(e)?"none":String(e?.toFixed?.(t)??e).trim().replace(/\.0+$/,""),wn=(e,t,n)=>`${e}(${t.join(" ")} / ${n})`;let D=class{constructor(t,n=1){this.colorSpace=t,this.alpha=n,this.components=new Map}components;toString(){const t=Array.from(this.components.values()).map(r=>typeof r=="number"&&Number.isNaN(r)?"none":r),n=typeof this.alpha=="number"&&Number.isNaN(this.alpha)?"none":this.alpha;return wn(this.colorSpace,t,n)}toFormattedString(t=2){const n=Array.from(this.components.values()).map(o=>gn(o,t)),r=gn(this.alpha,t);return wn(this.colorSpace,n,r)}valueOf(){return[...this.values(),this.alpha]}toJSON(){const t={};for(const[n,r]of this.entries())t[n]=r;return t.alpha=this.alpha,t}clone(){const t=this.constructor,n=new t;return n.alpha=Z(this.alpha),this.components.forEach((r,o)=>{n.components.set(o,Z(r))}),n}keys(){return[...this.components.keys(),"alpha"]}values(){return[...this.components.values(),this.alpha]}entries(){return[...this.components.entries(),["alpha",this.alpha]]}getComponent(t){return this.components.get(t)}setComponent(t,n){this.components.set(t,n)}};class $e extends D{constructor(t,n,r){super(t,n),this.whitePoint=r}}class z extends D{constructor(t,n,r,o){super("rgb",o),this.components.set("r",t),this.components.set("g",n),this.components.set("b",r)}get r(){return this.getComponent("r")}set r(t){this.setComponent("r",t)}get g(){return this.getComponent("g")}set g(t){this.setComponent("g",t)}get b(){return this.getComponent("b")}set b(t){this.setComponent("b",t)}}class ft extends D{constructor(t,n,r,o){super("hsl",o),this.components.set("h",t),this.components.set("s",n),this.components.set("l",r)}get h(){return this.getComponent("h")}set h(t){this.setComponent("h",t)}get s(){return this.getComponent("s")}set s(t){this.setComponent("s",t)}get l(){return this.getComponent("l")}set l(t){this.setComponent("l",t)}}class jt extends D{constructor(t,n,r,o){super("hsv",o),this.components.set("h",t),this.components.set("s",n),this.components.set("v",r)}get h(){return this.getComponent("h")}set h(t){this.setComponent("h",t)}get s(){return this.getComponent("s")}set s(t){this.setComponent("s",t)}get v(){return this.getComponent("v")}set v(t){this.setComponent("v",t)}}class Zt extends D{constructor(t,n,r,o){super("hwb",o),this.components.set("h",t),this.components.set("w",n),this.components.set("b",r)}get h(){return this.getComponent("h")}set h(t){this.setComponent("h",t)}get w(){return this.getComponent("w")}set w(t){this.setComponent("w",t)}get b(){return this.getComponent("b")}set b(t){this.setComponent("b",t)}}class Rt extends $e{constructor(t,n,r,o){super("lab",o,"D50"),this.components.set("l",t),this.components.set("a",n),this.components.set("b",r)}get l(){return this.getComponent("l")}set l(t){this.setComponent("l",t)}get a(){return this.getComponent("a")}set a(t){this.setComponent("a",t)}get b(){return this.getComponent("b")}set b(t){this.setComponent("b",t)}}class Kt extends D{constructor(t,n,r,o){super("lch",o),this.components.set("l",t),this.components.set("c",n),this.components.set("h",r)}get l(){return this.getComponent("l")}set l(t){this.setComponent("l",t)}get c(){return this.getComponent("c")}set c(t){this.setComponent("c",t)}get h(){return this.getComponent("h")}set h(t){this.setComponent("h",t)}}class _t extends $e{constructor(t,n,r,o){super("oklab",o,"D50"),this.components.set("l",t),this.components.set("a",n),this.components.set("b",r)}get l(){return this.getComponent("l")}set l(t){this.setComponent("l",t)}get a(){return this.getComponent("a")}set a(t){this.setComponent("a",t)}get b(){return this.getComponent("b")}set b(t){this.setComponent("b",t)}}class qt extends D{constructor(t,n,r,o){super("oklch",o),this.components.set("l",t),this.components.set("c",n),this.components.set("h",r)}get l(){return this.getComponent("l")}set l(t){this.setComponent("l",t)}get c(){return this.getComponent("c")}set c(t){this.setComponent("c",t)}get h(){return this.getComponent("h")}set h(t){this.setComponent("h",t)}}class U extends $e{constructor(t,n,r,o){super("xyz",o,"D65"),this.components.set("x",t),this.components.set("y",n),this.components.set("z",r)}get x(){return this.getComponent("x")}set x(t){this.setComponent("x",t)}get y(){return this.getComponent("y")}set y(t){this.setComponent("y",t)}get z(){return this.getComponent("z")}set z(t){this.setComponent("z",t)}}class Ue extends D{constructor(t,n){super("kelvin",n),this.components.set("kelvin",t)}get kelvin(){return this.getComponent("kelvin")}set kelvin(t){this.setComponent("kelvin",t)}}class Jt extends D{constructor(t,n,r,o){super("srgb-linear",o),this.components.set("r",t),this.components.set("g",n),this.components.set("b",r)}get r(){return this.getComponent("r")}set r(t){this.setComponent("r",t)}get g(){return this.getComponent("g")}set g(t){this.setComponent("g",t)}get b(){return this.getComponent("b")}set b(t){this.setComponent("b",t)}}class Qt extends D{constructor(t,n,r,o){super("display-p3",o),this.components.set("r",t),this.components.set("g",n),this.components.set("b",r)}get r(){return this.getComponent("r")}set r(t){this.setComponent("r",t)}get g(){return this.getComponent("g")}set g(t){this.setComponent("g",t)}get b(){return this.getComponent("b")}set b(t){this.setComponent("b",t)}}class te extends D{constructor(t,n,r,o){super("a98-rgb",o),this.components.set("r",t),this.components.set("g",n),this.components.set("b",r)}get r(){return this.getComponent("r")}set r(t){this.setComponent("r",t)}get g(){return this.getComponent("g")}set g(t){this.setComponent("g",t)}get b(){return this.getComponent("b")}set b(t){this.setComponent("b",t)}}class ee extends D{constructor(t,n,r,o){super("prophoto-rgb",o),this.components.set("r",t),this.components.set("g",n),this.components.set("b",r)}get r(){return this.getComponent("r")}set r(t){this.setComponent("r",t)}get g(){return this.getComponent("g")}set g(t){this.setComponent("g",t)}get b(){return this.getComponent("b")}set b(t){this.setComponent("b",t)}}class ne extends D{constructor(t,n,r,o){super("rec2020",o),this.components.set("r",t),this.components.set("g",n),this.components.set("b",r)}get r(){return this.getComponent("r")}set r(t){this.setComponent("r",t)}get g(){return this.getComponent("g")}set g(t){this.setComponent("g",t)}get b(){return this.getComponent("b")}set b(t){this.setComponent("b",t)}}function Ut(e){return e.unit==="color"}const Ro=e=>{const t={},n=(r,o=void 0)=>{if(Array.isArray(r)){r.forEach((i,a)=>n(i,o));return}else if(r instanceof tt){let i=r.name;o&&(o.endsWith(r.name)?i=o:i=`${o}.${r.name}`),r.values.forEach((a,c)=>n(a,i));return}else if(Pe(r)){for(const[i,a]of Object.entries(r)){const c=o?`${o}.${i}`:i;n(a,c)}return}const s=o;t[s]==null&&(t[s]=new bt),t[s].push(r),t[s]=t[s].flat()};return n(e),t},_o=e=>{const t={};for(const[n,r]of Object.entries(e)){const o=n.split(".");let s=t;for(let i=0;i<o.length;i++){const a=o[i];i===o.length-1?Array.isArray(s)?s.push(r):s[a]=r:(a in s||(s[a]={}),s=s[a])}}return t},Bo=e=>{const t={};for(const[n,r]of Object.entries(e)){const o=n.split("."),s=o[0];let i=t[s]??"",a="",c="";for(let m=1;m<o.length;m++)a+=`${o[m]}(`,c+=")";let l="";o.length>1&&Array.isArray(r)?l=r.join(", "):l=r.toString(),i+=` ${a}${l}${c}`,t[s]=i.trim()}return t},Oo=new Set(Rn);function No(e){return Oo.has(e)}const _n=e=>{const t=e.name,n=e.valueOf();if(!e.name.startsWith("matrix"))throw new Error("Input must be a matrix or matrix3d value");const r={scaleX:1,scaleY:1,scaleZ:1,skewX:0,skewY:0,skewZ:0,translateX:0,translateY:0,translateZ:0,rotateX:0,rotateY:0,rotateZ:0,perspectiveX:0,perspectiveY:0,perspectiveZ:0,perspectiveW:1};if(e.name==="matrix")return{...r,scaleX:n[0]??1,skewY:n[1]??0,skewX:n[2]??0,scaleY:n[3]??1,translateX:n[4]??0,translateY:n[5]??0,rotateZ:Math.atan2(n[1]??0,n[0]??1),rotateY:Math.atan2(-(n[2]??0),n[0]??1),rotateX:Math.atan2(n[1]??0,n[3]??1)};if(t==="matrix3d"){if(n.length===4)return{...r,translateX:n[0]??0,translateY:n[1]??0,translateZ:n[2]??0,perspectiveW:n[3]??1};if(n.length===16)return{scaleX:n[0]??1,skewY:n[1]??0,skewX:n[4]??0,scaleY:n[5]??1,scaleZ:n[10]??1,skewZ:n[2]??0,translateX:n[12]??0,translateY:n[13]??0,translateZ:n[14]??0,rotateX:Math.atan2(-(n[9]??0),n[10]??1),rotateY:Math.atan2(n[8]??0,Math.sqrt(Math.pow(n[0]??1,2)+Math.pow(n[1]??0,2))),rotateZ:Math.atan2(n[1]??0,n[0]??1),perspectiveX:n[3]??0,perspectiveY:n[7]??0,perspectiveZ:n[11]??0,perspectiveW:n[15]??1}}throw new Error("Unsupported matrix type or invalid number of values")};function Bn(e,t){let n=e;return t==="cm"?n*=96/2.54:t==="mm"?n*=96/25.4:t==="in"?n*=96:t==="pt"?n*=4/3:t==="pc"&&(n*=16),n}function De(e,t,n,r){if(t==="em"&&n)e*=parseFloat(getComputedStyle(n).fontSize);else if(t==="rem")e*=parseFloat(getComputedStyle(document.documentElement).fontSize);else if(t==="vh")e*=window.innerHeight/100;else if(t==="vw")e*=window.innerWidth/100;else if(t==="vmin")e*=Math.min(window.innerHeight,window.innerWidth)/100;else if(t==="vmax")e*=Math.max(window.innerHeight,window.innerWidth)/100;else if(t==="%"&&n?.parentElement&&r){const o=parseFloat(getComputedStyle(n.parentElement).getPropertyValue(r));e=e/100*o}else t==="ex"||t==="ch"?e*=parseFloat(getComputedStyle(n).fontSize)??16:e=Bn(e,t);return e}function Fe(e,t){return t==="s"&&(e*=1e3),e}function re(e,t){return t==="grad"?e*=.9:t==="rad"?e*=180/Math.PI:t==="turn"&&(e*=360),e}function Ve(e,t){return t==="dpcm"?e*=2.54:t==="dppx"&&(e*=96),e}const Po={length:De,time:Fe,angle:re,resolution:Ve};function kn(e){return Tt.includes(e)?[Tt,"length"]:vt.includes(e)?[vt,"time"]:Et.includes(e)?[Et,"angle"]:Mt.includes(e)?[Mt,"resolution"]:null}function zo(e,t,n,r){const o=kn(t),s=kn(n);if(!o||!s||o[1]!==s[1])throw new Error(`Incompatible units: ${t} and ${n}`);const[,i]=o,a=Po[i],c=a(e,t,r),l=a(1,n,r);return c/l}class k{constructor(t,n,r,o,s,i){this.value=t,this.unit=n,this.superType=r,this.subProperty=o,this.property=s,this.targets=i}setSubProperty(t){this.subProperty=t}setProperty(t){this.property=t}setTargets(t){this.targets=t}valueOf(){return this.value}setValue(t){this.value=t}toString(){return this.value==null?"":this.unit==null||this.unit==="string"?`${this.value}`:Ut(this)?this.value.toString():this.unit==="var"?`var(${this.value})`:this.unit==="calc"?`calc(${this.value})`:`${this.value}${this.unit}`}toJSON(){return this.valueOf()}toFixed(t=2){const n=Number(this.value).toFixed(t).replace(/\.0+$/,"");return new k(n).coalesce(this,!0).toString()}clone(){return new k(Z(this.value),this.unit,Z(this.superType),this.subProperty,this.property)}coalesce(t,n=!1){return t==null?this:In.includes(this.unit)?this:n?(this.unit??=t.unit,this.superType??=t.superType,this.subProperty??=t.subProperty,this.property??=t.property,this.targets??=t.targets,this):new k(Z(this.value),this.unit??t.unit,Z(this.superType??t.superType),this.subProperty??t.subProperty,this.property??t.property,this.targets??t.targets)}}class tt{constructor(t,n){this.name=t,this.values=n,n.forEach(r=>{this.setSubProperty(t)})}setSubProperty(t){this.values.forEach(n=>n.setSubProperty(t))}setProperty(t){this.values.forEach(n=>n.setProperty(t))}setTargets(t){this.values.forEach(n=>n.setTargets(t))}setValue(t,n){n!=null?this.values[n].setValue(t):this.values.forEach(r=>r.setValue(t))}valueOf(){return this.values.map(t=>t.valueOf())}toString(){return`${this.name}(${this.values.map(t=>t.toString()).join(", ")})`}toJSON(){return{[this.name]:this.values.map(t=>t.toJSON())}}clone(){return new tt(this.name,this.values.map(t=>t.clone()))}}class bt extends Array{constructor(...t){super(...t)}setSubProperty(t){this.forEach(n=>n.setSubProperty(t))}setProperty(t){this.forEach(n=>n.setProperty(t))}setTargets(t){this.forEach(n=>n.setTargets(t))}setValue(t,n){n!=null?this[n].setValue(t):this.forEach(r=>r.setValue(t))}valueOf(){return this.map(t=>t.valueOf())}toString(){return this.map(t=>t.toString()).join(" ")}toJSON(){return this.map(t=>t.toJSON())}clone(){return new bt(...this.map(t=>t.clone()))}}const Sn=4;function yn(e,t="^",n=!1){const r=e.src.split(`
2
+ `),o=Math.min(r.length-1,e.getLineNumber()),s=Math.max(o-Sn,0),i=Math.min(o+Sn+1,r.length),a=r.slice(s,i);if(t){const l=" ".repeat(e.getColumnNumber())+t;a.splice(o-s+1,0,l)}return a.map((l,m)=>` ${s+m+1}| ${l}`).join(`
3
+ `)}const it=new Map;function On(e){if(it.has(e.id))return it.get(e.id);const t=(r,o)=>{if(it.has(r.id))return it.get(r.id);const{name:s,args:i,parser:a}=r.context,c=a!=null?t(a,o):"unknown",m=(()=>{switch(s){case"string":return`"${i[0]}"`;case"regex":case"regexConcat":case"regexWrap":return`${i[0]}`;case"wrap":case"trim":{const[u,d]=i;return`${t(u,o)} ${c} ${t(d,o)}`}case"trimWhitespace":return`${c}?w`;case"not":return`!${c}`;case"opt":return`${c}?`;case"next":{const[u]=i;return`${c} >> ${t(u,o)}`}case"skip":{const[u]=i;return`${c} << ${t(u,o)}`}case"map":return c;case"all":case"then":return`[${i.map(d=>t(d,o)).join(", ")}]`;case"any":case"or":return i.map(d=>t(d,o)).join(" | ");case"many":{const[u,d]=i,C=d===1/0?`${u},`:`${u},${d}`;return`${c} {${C}}`}case"sepBy":return`${c} sepBy ${t(i[0],o)}`;case"lazy":{const[u]=i,d=Pn(u);if(o)return s;{const C=t(d,d.id);return it.set(d.id,C),C}}case"debug":return c;default:return}})()??s??"unknown";return o&&it.set(r.id,m),m},n=t(e);return it.set(e.id,n),n}function Nn(e,t="",n=""){const r=String(e.value),o=e.offset>=e.src.length,a=`${`[${e.isError?"err":o?"done":"ok"}]`} ${t} offset=${e.offset} value=${r}`,c=e.offset>=e.src.length?yn(e,"",e.isError):yn(e,"^",e.isError);return`${a}
4
+ ${c}`}function Lo(e,t="",n=!1,r=console.log){const o=s=>{const i=e.parser(s),a=n?On(e):e.context.name??"",c=Nn(i,t,a);return r(c),i};return new S(o,E("debug",e,r))}class Dt{constructor(t,n=void 0,r=0,o=!1,s=0){this.src=t,this.value=n,this.offset=r,this.isError=o,this.furthest=s}ok(t,n=0){return n+=this.offset,new Dt(this.src,t,n,!1)}err(t,n=0){const r=this.ok(t,n);return r.isError=!0,r}from(t,n=0){return n+=this.offset,new Dt(this.src,t,n,this.isError)}getColumnNumber(){const t=this.offset,n=this.src.lastIndexOf(`
5
+ `,t),r=n===-1?t:t-(n+1);return Math.max(0,r)}getLineNumber(){const t=this.src.lastIndexOf(`
6
+ `,this.offset);return t>=0?this.src.slice(0,t).split(`
7
+ `).length:0}toString(){return Nn(this)}}function E(e,t,...n){return{name:e,parser:t,args:n}}let Go=0;const at=new Map,Ot=new Map;let St;function G(e){return(!St||e.offset>St.offset)&&(St=e),St}function Pn(e){return e.parser?e.parser:e.parser=e()}class S{constructor(t,n={}){this.parser=t,this.context=n}id=Go++;state;reset(){St=void 0,at.clear(),Ot.clear()}parseState(t){this.reset();const n=this.parser(new Dt(t));return this.state=G(n),this.state.isError=n.isError,this.state.isError,n}parse(t){return this.parseState(t).value}getCijKey(t){return`${this.id}${t.offset}`}atLeftRecursionLimit(t){return(Ot.get(this.getCijKey(t))??0)>t.src.length-t.offset}memoize(){const t=n=>{const r=this.getCijKey(n),o=Ot.get(r)??0;let s=at.get(this.id);if(s&&s.offset>=n.offset)return s;if(this.atLeftRecursionLimit(n))return n.err(void 0);Ot.set(r,o+1);const i=this.parser(n);return s=at.get(this.id),s&&s.offset>i.offset?i.offset=s.offset:s||at.set(this.id,i),i};return new S(t,E("memoize",this))}mergeMemos(){const t=n=>{let r=at.get(this.id);if(r)return r;if(this.atLeftRecursionLimit(n))return n.err(void 0);const o=this.parser(n);return r=at.get(this.id),r||at.set(this.id,o),o};return new S(t,E("mergeMemo",this))}then(t){const n=r=>{const o=this.parser(r);if(!o.isError){const s=t.parser(o);if(!s.isError)return s.ok([o.value,s.value])}return G(r),r.err(void 0)};return new S(n,E("then",this,this,t))}or(t){const n=r=>{const o=this.parser(r);return o.isError?t.parser(r):o};return new S(n,E("or",this,this,t))}chain(t,n=!1){const r=o=>{const s=this.parser(o);return s.isError?s:s.value||n?t(s.value).parser(s):o};return new S(r,E("chain",this,t))}map(t,n=!1){const r=o=>{const s=this.parser(o);return!s.isError||n?s.ok(t(s.value)):s};return new S(r,E("map",this))}mapState(t){const n=r=>{const o=this.parser(r);return t(o,r)};return new S(n,E("mapState",this))}skip(t){const n=r=>{const o=this.parser(r);if(!o.isError){const s=t.parser(o);if(!s.isError)return s.ok(o.value)}return G(r),r.err(void 0)};return new S(n,E("skip",this,t))}next(t){const n=this.then(t).map(([,r])=>r);return n.context=E("next",this,t),n}opt(){const t=n=>{const r=this.parser(n);return r.isError?(G(n),n.ok(void 0)):r};return new S(t,E("opt",this))}not(t){const n=o=>this.parser(o).isError?(G(o),o.ok(o.value)):o.err(void 0),r=o=>{const s=this.parser(o);return s.isError?(G(o),s):t.parser(o).isError?s:(G(o),o.err(void 0))};return new S(t?r:n,E("not",this,t))}wrap(t,n,r=!0){if(!r)return M(t,this,n);const o=t.next(this).skip(n);return o.context=E("wrap",this,t,n),o}trim(t=g,n=!0){if(!n)return M(t,this,t);if(t.context?.name==="whitespace"){const r=o=>{const s=xn(o),i=this.parser(s);return i.isError?(G(o),o.err(void 0)):xn(i)};return new S(r,E("trimWhitespace",this))}return this.wrap(t,t)}many(t=0,n=1/0){const r=o=>{const s=[];let i=o;for(let a=0;a<n;a+=1){const c=this.parser(i);if(c.isError)break;s.push(c.value),i=c}return s.length>=t?i.ok(s):(G(o),o.err([]))};return new S(r,E("many",this,t,n))}sepBy(t,n=0,r=1/0){const o=s=>{const i=[];let a=s;for(let c=0;c<r;c+=1){const l=this.parser(a);if(l.isError)break;a=l,i.push(a.value);const m=t.parser(a);if(m.isError)break;a=m}return i.length>n?a.ok(i):(G(s),s.err([]))};return new S(o,E("sepBy",this,t))}eof(){const t=this.skip($o());return t.context=E("eof",this),t}debug(t="",n=!1,r=console.log){return Lo(this,t,n,r)}toString(){return On(this)}static lazy(t){const n=r=>Pn(t).parser(r);return new S(n,E("lazy",void 0,t))}}function $o(){const e=t=>t.offset>=t.src.length?t.ok(void 0):(G(t),t.err());return new S(e,E("eof",void 0))}function b(...e){const t=n=>{for(const r of e){const o=r.parser(n);if(!o.isError)return o}return G(n),n.err(void 0)};return new S(e.length===1?e[0].parser:t,E("any",void 0,...e))}function M(...e){const t=n=>{const r=[];let o=n;for(const s of e){const i=s.parser(o);if(i.isError)return i;i.value!==void 0&&r.push(i.value),o=i}return G(o),o.ok(r)};return new S(e.length===1?e[0].parser:t,E("all",void 0,...e))}function R(e){const t=n=>{if(n.offset>=n.src.length)return n.err(void 0);const r=n.src.slice(n.offset,n.offset+e.length);return r===e?n.ok(r,r.length):(G(n),n.err(void 0))};return new S(t,E("string",void 0,e))}function F(e,t=n=>n?.[0]??null){const n=e.flags.replace(/y/g,""),r=new RegExp(e,n+"y"),o=s=>{if(s.offset>=s.src.length)return s.err(void 0);r.lastIndex=s.offset;const i=t(s.src.match(r));return i?s.ok(i,r.lastIndex-s.offset):i===""?s.ok(void 0):(G(s),s.err(void 0))};return new S(o,E("regex",void 0,e))}const Cn=/\s*/y,xn=e=>{if(e.offset>=e.src.length)return e;Cn.lastIndex=e.offset;const t=e.src.match(Cn)?.[0]??"";return e.ok(e.value,t.length)},g=F(/\s*/);g.context.name="whitespace";const p=e=>{const t=new RegExp(e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"i");return F(t)},zn=F(/-?[a-zA-Z][a-zA-Z0-9-]*/),oe=p("none"),Ln=F(/-?\d+/).map(Number),K=F(/-?(0|[1-9]\d*)(\.\d+)?([eE][+-]?\d+)?/).map(Number);function Gn(e){return new S(t=>t.ok(e,0))}function $n(e){return new S(t=>t.err(void 0,0))}function dt(e,t){const n=e.parseState(t);if(n.isError)throw new Error(`Parse error at offset ${n.offset}`);return n.value}function Uo(e,t){const n=e.parseState(t);return{status:!n.isError,value:n.value}}function _(e,t){const[n,r,o]=e;return[t[0]*n+t[1]*r+t[2]*o,t[3]*n+t[4]*r+t[5]*o,t[6]*n+t[7]*r+t[8]*o]}function Do(e){return[e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8]]}function Fo(e,t){return[e[0]*t[0]+e[1]*t[3]+e[2]*t[6],e[0]*t[1]+e[1]*t[4]+e[2]*t[7],e[0]*t[2]+e[1]*t[5]+e[2]*t[8],e[3]*t[0]+e[4]*t[3]+e[5]*t[6],e[3]*t[1]+e[4]*t[4]+e[5]*t[7],e[3]*t[2]+e[4]*t[5]+e[5]*t[8],e[6]*t[0]+e[7]*t[3]+e[8]*t[6],e[6]*t[1]+e[7]*t[4]+e[8]*t[7],e[6]*t[2]+e[7]*t[5]+e[8]*t[8]]}function q(e){const[t,n,r,o,s,i,a,c,l]=e,m=s*l-i*c,u=-(o*l-i*a),d=o*c-s*a,y=1/(t*m+n*u+r*d);return[m*y,(r*c-n*l)*y,(n*i-r*s)*y,u*y,(t*l-r*a)*y,(r*o-t*i)*y,d*y,(n*a-t*c)*y,(t*s-n*o)*y]}const I=255,h={"%":{min:0,max:100},number:{min:0,max:1}},Nt={"%":h["%"],number:{min:0,max:I}},N={"%":h["%"],number:h.number},mt={deg:{min:0,max:360},number:{min:0,max:360},"%":h["%"]},f={rgb:{r:Nt,g:Nt,b:Nt,alpha:h},hsl:{h:mt,s:{"%":h["%"],number:h.number},l:{"%":h["%"],number:h.number},alpha:h},hsv:{h:mt,s:{"%":h["%"],number:h.number},v:{"%":h["%"],number:h.number},alpha:h},hwb:{h:mt,w:{"%":h["%"],number:h.number},b:{"%":h["%"],number:h.number},alpha:h},lab:{l:{"%":h["%"],number:h["%"]},a:{number:{min:-125,max:125},"%":{min:-100,max:100}},b:{number:{min:-125,max:125},"%":{min:-100,max:100}},alpha:h},lch:{l:{"%":h["%"],number:h["%"]},c:{number:{min:0,max:150},"%":h["%"]},h:mt,alpha:h},oklab:{l:{"%":h["%"],number:h["%"]},a:{number:{min:-.4,max:.4},"%":{min:-100,max:100}},b:{number:{min:-.4,max:.4},"%":{min:-100,max:100}},alpha:h},oklch:{l:{"%":h["%"],number:h["%"]},c:{number:{min:0,max:.5},"%":h["%"]},h:mt,alpha:h},xyz:{x:{"%":h["%"],number:h.number},y:{"%":h["%"],number:h.number},z:{"%":h["%"],number:h.number},alpha:h},kelvin:{kelvin:{number:{min:1e3,max:4e4}},alpha:h},"srgb-linear":{r:N,g:N,b:N,alpha:h},"display-p3":{r:N,g:N,b:N,alpha:h},"a98-rgb":{r:N,g:N,b:N,alpha:h},"prophoto-rgb":{r:N,g:N,b:N,alpha:h},rec2020:{r:N,g:N,b:N,alpha:h}},P="%",We={rgb:{r:"",g:"",b:"",alpha:P},hsl:{h:"deg",s:"%",l:"%",alpha:P},hsv:{h:"deg",s:"%",v:"%",alpha:P},hwb:{h:"deg",w:"%",b:"%",alpha:P},lab:{l:"%",a:"",b:"",alpha:P},lch:{l:"%",c:"",h:"deg",alpha:P},oklab:{l:"%",a:"",b:"",alpha:P},oklch:{l:"%",c:"",h:"deg",alpha:P},xyz:{x:"%",y:"%",z:"%",alpha:P},kelvin:{kelvin:"K",alpha:P},"srgb-linear":{r:"",g:"",b:"",alpha:P},"display-p3":{r:"",g:"",b:"",alpha:P},"a98-rgb":{r:"",g:"",b:"",alpha:P},"prophoto-rgb":{r:"",g:"",b:"",alpha:P},rec2020:{r:"",g:"",b:"",alpha:P}},Vo={rgb:"RGB",hsl:"HSL",hsv:"HSV",hwb:"HWB",lab:"Lab",lch:"LCh",oklab:"OKLab",oklch:"OKLCh",xyz:"XYZ",kelvin:"Kelvin","srgb-linear":"sRGB Linear","display-p3":"Display P3","a98-rgb":"Adobe RGB","prophoto-rgb":"ProPhoto RGB",rec2020:"Rec. 2020"},Un=[.3127/.329,1,(1-.3127-.329)/.329],Dn=[.3457/.3585,1,(1-.3457-.3585)/.3585],se=[1.0479297925449969,.022946870601609652,-.05019226628920524,.02962780877005599,.9904344267538799,-.017073799063418826,-.009243040646204504,.015055191490298152,.7518742814281371],Xe=q(se),He={D65:Un,D50:Dn},Ye=[.819022437996703,.3619062600528904,-.1288737815209879,.0329836539323885,.9292868615863434,.0361446663506424,.0481771893596242,.2642395317527308,.6335478284694309],Fn=q(Ye),je=[.210454268309314,.7936177747023054,-.0040720430116193,1.9779985324311684,-2.42859224204858,.450593709617411,.0259040424655478,.7827717124575296,-.8086757549230774],Vn=q(je),w=[4.0767416621,-3.3077115913,.2309699292,-1.2684380046,2.6097574011,-.3413193965,-.0041960863,-.7034186147,1.707614701],Y=[.4122214708,.5363325363,.0514459929,.2119034982,.6806995451,.1073969566,.0883024619,.2817188376,.6299787005],O={l:[1,.3963377774,.2158037573],m:[1,-.1055613458,-.0638541728],s:[1,-.0894841775,-1.291485548]},Wn=[{test:(e,t)=>-1.88170328*e-.80936493*t>1,k0:1.19086277,k1:1.76576728,k2:.59662641,k3:.75515197,k4:.56771245,wl:4.0767416621,wm:-3.3077115913,ws:.2309699292},{test:(e,t)=>1.81444104*e-1.19445276*t>1,k0:.73956515,k1:-.45954404,k2:.08285427,k3:.1254107,k4:.14503204,wl:-1.2684380046,wm:2.6097574011,ws:-.3413193965},{test:()=>!0,k0:1.35733652,k1:-.00915799,k2:-1.1513021,k3:-.50559606,k4:.00692167,wl:-.0041960863,wm:-.7034186147,ws:1.707614701}],Ae={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32",padaleckipink:"oklch(100% 0.42 360deg / 71.70%)","lodge-blu-color":"rgb(53 101 144)",lavendi:"oklch(79.90% 0.11 318.24deg / 100%)",shadyshroom:"oklch(53% 0.07 21.60deg / 100%)",patriarchalplum:"oklch(31.20% 0.11 19.80deg / 100%)"};function X(e,t,n){return Math.min(Math.max(e,t),n)}function v(e,t,n,r=0,o=1){const s=(o-r)/(n-t);if(n===t)throw new Error("fromMax and fromMin cannot be equal");return(e-t)*s+r}function Ft(e,t,n){return(1-e)*t+e*n}function Wo(e,t,n){return t=t===0?1e-9:t,t*Math.pow(n/t,e)}function At(e,t){const n=t.length-1,r=[...t];for(let o=1;o<=n;o++)for(let s=0;s<=n-o;s++)r[s]=Ft(e,r[s],r[s+1]);return r[0]}function Xn(e,t,n,r,o){return[At(e,[0,t,r,1]),At(e,[0,n,o,1])]}function Xo(e,t){const n=t.map(o=>o[0]),r=t.map(o=>o[1]);return[At(e,n),At(e,r)]}function Ho(e,t,n,r){let o="M0 0";for(let s=0;s<=1;s+=.001){const[i,a]=Xn(s,e,t,n,r);o+=` L${i} ${a}`}return`<path d="${o}"/>`}function Yo(e,t,n,r){const o=s=>s.toFixed(2);return`cubic-bezier(${o(e)}, ${o(t)}, ${o(n)}, ${o(r)})`}const Hn=2.4,Vt=.055,Ze=12.92,jo=.04045,Yn=jo/Ze;function ve(e){const t=e<0?-1:1,n=e*t;return n<=Yn?e/Ze:t*((n+Vt)/(1+Vt))**Hn}function Ee(e){const t=e<0?-1:1,n=e*t;return n<=Yn?e*Ze:t*((1+Vt)*n**(1/Hn)-Vt)}function Me(e,t,n){return Math.min(Math.max(e,t),n)}const Zo=.02;function Ko(e,t,n,r,o,s){const i=e-r,a=t-o,c=n-s;return Math.sqrt(i*i+a*a+c*c)}function ie(e,t,n){const r=e+O.l[1]*t+O.l[2]*n,o=e+O.m[1]*t+O.m[2]*n,s=e+O.s[1]*t+O.s[2]*n,i=r*r*r,a=o*o*o,c=s*s*s;return[w[0]*i+w[1]*a+w[2]*c,w[3]*i+w[4]*a+w[5]*c,w[6]*i+w[7]*a+w[8]*c]}function jn(e,t,n){return e>=0&&e<=1&&t>=0&&t<=1&&n>=0&&n<=1}function Zn(e,t){const n=Wn.find(x=>x.test(e,t)),{k0:r,k1:o,k2:s,k3:i,k4:a,wl:c,wm:l,ws:m}=n;let u=r+o*e+s*t+i*e*e+a*e*t;const d=O.l[1]*e+O.l[2]*t,C=O.m[1]*e+O.m[2]*t,y=O.s[1]*e+O.s[2]*t;{const x=1+u*d,B=1+u*C,T=1+u*y,A=x*x*x,L=B*B*B,V=T*T*T,nt=3*d*x*x,rt=3*C*B*B,ot=3*y*T*T,gt=6*d*d*x,wt=6*C*C*B,kt=6*y*y*T,lt=c*A+l*L+m*V,st=c*nt+l*rt+m*ot,Bt=c*gt+l*wt+m*kt;u=u-lt*st/(st*st-.5*lt*Bt)}return u}function Kn(e,t){const n=Zn(e,t),[r,o,s]=ie(1,n*e,n*t),i=Math.cbrt(1/Math.max(r,o,s)),a=i*n;return{L:i,C:a}}function qn(e,t,n,r,o,s){let i;if((n-o)*s.C-(s.L-o)*r<=0)i=s.C*o/(r*s.L+s.C*(o-n));else{i=s.C*(o-1)/(r*(s.L-1)+s.C*(o-n));const a=n-o,c=r,l=O.l[1]*e+O.l[2]*t,m=O.m[1]*e+O.m[2]*t,u=O.s[1]*e+O.s[2]*t,d=a+c*l,C=a+c*m,y=a+c*u;{const x=o*(1-i)+i*n,B=i*r,T=x+B*l,A=x+B*m,L=x+B*u,V=T*T*T,nt=A*A*A,rt=L*L*L,ot=3*d*T*T,gt=3*C*A*A,wt=3*y*L*L,kt=6*d*d*T,lt=6*C*C*A,st=6*y*y*L,Bt=w[0]*V+w[1]*nt+w[2]*rt-1,ke=w[0]*ot+w[1]*gt+w[2]*wt,bo=w[0]*kt+w[1]*lt+w[2]*st,pn=ke/(ke*ke-.5*Bt*bo);let Se=-Bt*pn;const hn=w[3]*V+w[4]*nt+w[5]*rt-1,ye=w[3]*ot+w[4]*gt+w[5]*wt,go=w[3]*kt+w[4]*lt+w[5]*st,fn=ye/(ye*ye-.5*hn*go);let Ce=-hn*fn;const bn=w[6]*V+w[7]*nt+w[8]*rt-1,xe=w[6]*ot+w[7]*gt+w[8]*wt,wo=w[6]*kt+w[7]*lt+w[8]*st,dn=xe/(xe*xe-.5*bn*wo);let Te=-bn*dn;Se=pn>=0?Se:1/0,Ce=fn>=0?Ce:1/0,Te=dn>=0?Te:1/0,i+=Math.min(Se,Ce,Te)}}return i}const qo=1e-5,Jo=.05;function Jn(e,t,n){const[r,o,s]=ie(e,t,n);if(jn(r,o,s))return[e,t,n];const i=Math.max(qo,Math.sqrt(t*t+n*n)),a=t/i,c=n/i,l=Kn(a,c),m=e-.5,u=.5+Math.abs(m)+Jo*i,d=.5*(1+Math.sign(m)*(u-Math.sqrt(u*u-2*Math.abs(m)))),C=qn(a,c,e,i,d,l),y=d*(1-C)+C*e,x=C*i;return[y,x*a,x*c]}function Qn(e,t,n){const r=ve(e),o=ve(t),s=ve(n),i=Math.cbrt(Y[0]*r+Y[1]*o+Y[2]*s),a=Math.cbrt(Y[3]*r+Y[4]*o+Y[5]*s),c=Math.cbrt(Y[6]*r+Y[7]*o+Y[8]*s);return[.2104542553*i+.793617785*a-.0040720468*c,1.9779984951*i-2.428592205*a+.4505937099*c,.0259040371*i+.7827717662*a-.808675766*c]}function tr(e,t,n){if(e>=0&&e<=1&&t>=0&&t<=1&&n>=0&&n<=1)return[e,t,n];const[r,o,s]=Qn(e,t,n),[i,a,c]=Jn(r,o,s),[l,m,u]=ie(i,a,c);return[Me(Ee(l),0,1),Me(Ee(m),0,1),Me(Ee(u),0,1)]}const Qo=e=>{const t=f[e],n=We[e];return Object.entries(t).reduce((r,[o,s])=>{const i=n[o];let{min:a,max:c}=s[i]??s.number;return a=`${a}${i}`,c=`${c}${i}`,r[o]={min:a,max:c},r},{})},j=16,er=e=>{if(e=e.slice(1),e.length<=4){const t=parseInt(e[0]+e[0],j),n=parseInt(e[1]+e[1],j),r=parseInt(e[2]+e[2],j),o=e[3]?parseInt(e[3]+e[3],j)/I:1;return new z(t,n,r,o)}else{const t=parseInt(e.slice(0,2),j),n=parseInt(e.slice(2,4),j),r=parseInt(e.slice(4,6),j),o=e.length===8?parseInt(e.slice(6,8),j)/I:1;return new z(t,n,r,o)}},ts=({r:e,g:t,b:n,alpha:r})=>{const o=s=>{const i=s.toString(j);return i.length===1?"0"+i:i};return`#${o(e)}${o(t)}${o(n)}${r<1?o(Math.round(r*I)):""}`},nr=1e3,rr=4e4,or=100,Ke=({kelvin:e,alpha:t})=>{e=X(e,nr,rr)/or;let n,r,o;return e<=66?n=I:(n=e-60,n=329.698727446*n**-.1332047592),n=X(n,0,I)/I,e<=66?(r=e,r=99.4708025861*Math.log(r)-161.1195681661):(r=e-60,r=288.1221695283*r**-.0755148492),r=X(r,0,I)/I,e>=66?o=I:e<=19?o=0:(o=e-10,o=138.5177312231*Math.log(o)-305.0447927307),o=X(o,0,I)/I,new z(n,r,o,t)},sr=({r:e,g:t,b:n,alpha:r})=>{e=X(e*I,0,I),t=X(t*I,0,I),n=X(n*I,0,I);let o;if(n===I?o=6600:n===0?o=1900:o=Math.exp((n+305.0447927307)/138.5177312231)+10,e<I){const i=(329.698727446/e)**-7.507239275877164+60;o=Math.max(o,i)}const s=o<=6600?Math.exp((t+161.1195681661)/99.4708025861):(288.1221695283/t)**(1/-.0755148492)+60;return o=(o+s)/2,o=X(Math.round(o*or),nr,rr),new Ue(o,r)},qe=({h:e,s:t,v:n,alpha:r})=>{const o=n-n*t/2;let s;return o===0||o===1?s=0:s=(n-o)/Math.min(o,1-o),new ft(e,s,o,r)},Je=({h:e,s:t,l:n,alpha:r})=>{const o=n+t*Math.min(n,1-n);let s;return o===0?s=0:s=2*(1-n/o),new jt(e,s,o,r)},ir=({h:e,w:t,b:n,alpha:r})=>{let o,s;const i=t+n;return i>=1?(s=t/i,o=0):(s=1-n,o=s===0?0:1-t/s),qe(new jt(e,o,s,r))},ar=({h:e,s:t,l:n,alpha:r})=>{const{h:o,s,v:i}=Je(new ft(e,t,n,r));return new Zt(o,i*(1-s),1-i,r)},cr=({r:e,g:t,b:n,alpha:r})=>{const o=Math.max(e,t,n),s=Math.min(e,t,n);let[i,a,c]=[0,0,(o+s)/2];const l=o-s;switch(a=l/(1-Math.abs(2*c-1)),o){case e:i=(t-n)/l+(t<n?6:0);break;case t:i=(n-e)/l+2;break;case n:i=(e-t)/l+4;break}return i/=6,a<0&&(i=(i+.5)%1,a=Math.abs(a)%1),i>=1&&(i-=1),new ft(i,a,c,r)};function lr({h:e,s:t,l:n,alpha:r}){const o=(1-Math.abs(2*n-1))*t,s=o*(1-Math.abs(e*6%2-1)),i=n-o/2;let a,c,l;return e<1/6?[a,c,l]=[o,s,0]:e<2/6?[a,c,l]=[s,o,0]:e<3/6?[a,c,l]=[0,o,s]:e<4/6?[a,c,l]=[0,s,o]:e<5/6?[a,c,l]=[s,0,o]:[a,c,l]=[o,0,s],new z(a+i,c+i,l+i,r)}const es=216/24389,ns=24/116,Ie=24389/27,rs=8,Ct=16,xt=116,ur=500,mr=200;function os(e){if(e.whitePoint==="D50")return[e.x,e.y,e.z];if(e.whitePoint==="D65")return _([e.x,e.y,e.z],se);throw new Error(`Unsupported white point: ${e.whitePoint}`)}function ss(e){if(e.whitePoint==="D65")return[e.x,e.y,e.z];if(e.whitePoint==="D50")return _([e.x,e.y,e.z],Xe);throw new Error(`Unsupported white point: ${e.whitePoint}`)}function ae(e,t="D50"){const n=T=>T>es?Math.cbrt(T):(Ie*T+Ct)/xt,r=He[t],[o,s,i]=os(e),a=o/r[0],c=s/r[1],l=i/r[2],m=n(a),u=n(c),d=n(l),C=xt*u-Ct,y=ur*(m-u),x=mr*(u-d),B=new Rt(v(C,f.lab.l.number.min,f.lab.l.number.max),v(y,f.lab.a.number.min,f.lab.a.number.max),v(x,f.lab.b.number.min,f.lab.b.number.max),e.alpha);return B.whitePoint=t,B}function ce(e){const t=A=>A>ns?A**3:(xt*A-Ct)/Ie,n=A=>A>rs?((A+Ct)/xt)**3:A/Ie,r=He[e.whitePoint];let{l:o,a:s,b:i,alpha:a}=e;o=v(o,0,1,f.lab.l.number.min,f.lab.l.number.max),s=v(s,0,1,f.lab.a.number.min,f.lab.a.number.max),i=v(i,0,1,f.lab.b.number.min,f.lab.b.number.max);const c=(o+Ct)/xt,l=s/ur+c,m=c-i/mr,[u,d,C]=[t(l),n(o),t(m)];let y=u*r[0],x=d*r[1],B=C*r[2];const T=new U(y,x,B,a);return T.whitePoint=e.whitePoint,[y,x,B]=ss(T),T.whitePoint="D65",T.x=y,T.y=x,T.z=B,T}const Qe=[.41239079926595934,.357584339383878,.1804807884018343,.21263900587151027,.715168678767756,.07219231536073371,.01933081871559182,.11919477979462598,.9505321522496607],pr=q(Qe),hr=2.4,Wt=.055,tn=12.92,is=.04045,fr=is/tn;function ct(e){const t=e<0?-1:1,n=e*t;return n<=fr?e/tn:t*((n+Wt)/(1+Wt))**hr}function en(e){const t=e<0?-1:1,n=e*t;return n<=fr?e*tn:t*((1+Wt)*n**(1/hr)-Wt)}function le({r:e,g:t,b:n,alpha:r}){const o=[ct(e),ct(t),ct(n)],[s,i,a]=_(o,Qe);return new U(s,i,a,r)}const ue=({x:e,y:t,z:n,alpha:r},o=!0)=>{const s=_([e,t,n],pr),[i,a,c]=s.map(en);if(o){const l=Kr(new z(i,a,c,r));return new z(l.r,l.g,l.b,r)}else return new z(i,a,c,r)};function br({l:e,c:t,h:n,alpha:r}){t=v(t,0,1,f.lch.c.number.min,f.lch.c.number.max);const o=n*2*Math.PI,s=Math.cos(o)*t,i=Math.sin(o)*t;return new Rt(e,v(s,f.lab.a.number.min,f.lab.a.number.max),v(i,f.lab.b.number.min,f.lab.b.number.max),r)}function dr({l:e,a:t,b:n,alpha:r}){t=v(t,0,1,f.lab.a.number.min,f.lab.a.number.max),n=v(n,0,1,f.lab.b.number.min,f.lab.b.number.max);const o=Math.hypot(t,n);let s=Math.atan2(n,t)/(2*Math.PI);return s<0&&(s+=1),new Kt(e,v(o,f.lch.c.number.min,f.lch.c.number.max),s,r)}function me({l:e,a:t,b:n,alpha:r}){t=v(t,0,1,f.oklab.a.number.min,f.oklab.a.number.max),n=v(n,0,1,f.oklab.b.number.min,f.oklab.b.number.max);const o=_([e,t,n],Vn),s=[o[0]*o[0]*o[0],o[1]*o[1]*o[1],o[2]*o[2]*o[2]],[i,a,c]=_(s,Fn);return new U(i,a,c,r)}function pe(e){const{x:t,y:n,z:r}=e,o=_([t,n,r],Ye),s=[Math.cbrt(o[0]),Math.cbrt(o[1]),Math.cbrt(o[2])],[i,a,c]=_(s,je);return new _t(i,v(a,f.oklab.a.number.min,f.oklab.a.number.max),v(c,f.oklab.b.number.min,f.oklab.b.number.max),e.alpha)}function gr(e){const t=me(e);return ae(t)}function wr(e){const t=ce(e);return pe(t)}function nn({l:e,a:t,b:n,alpha:r}){t=v(t,0,1,f.oklab.a.number.min,f.oklab.a.number.max),n=v(n,0,1,f.oklab.b.number.min,f.oklab.b.number.max);const o=Math.hypot(t,n);let s=Math.atan2(n,t)/(2*Math.PI);return s<0&&(s+=1),new qt(e,v(o,f.oklch.c.number.min,f.oklch.c.number.max),s,r)}function rn({l:e,c:t,h:n,alpha:r}){t=v(t,0,1,f.oklch.c.number.min,f.oklch.c.number.max);const o=n*2*Math.PI,s=Math.cos(o)*t,i=Math.sin(o)*t;return new _t(e,v(s,f.oklab.a.number.min,f.oklab.a.number.max),v(i,f.oklab.b.number.min,f.oklab.b.number.max),r)}function as(e){return gr(rn(e))}function cs(e){return nn(wr(e))}function he(e){const t=lr(e);return le(t)}function fe(e){const t=ue(e);return cr(t)}function kr(e){const t=qe(e);return he(t)}function Sr(e){const t=fe(e);return Je(t)}function yr(e){const t=ir(e);return he(t)}function Cr(e){const t=fe(e);return ar(t)}function xr(e){const t=br(e);return ce(t)}function Tr(e){const t=ae(e);return dr(t)}function vr(e){const t=rn(e);return me(t)}function Er(e){const t=pe(e);return nn(t)}function Mr(e){const t=Ke(e);return le(t)}function Ar(e){const t=ue(e);return sr(t)}const Ir=563/256;function Pt(e){return(e<0?-1:1)*Math.abs(e)**Ir}function Rr(e){return(e<0?-1:1)*Math.abs(e)**(1/Ir)}const _r=1/512,Br=1.8;function zt(e){const t=e<0?-1:1,n=Math.abs(e);return t*(n<=_r*16?n/16:n**Br)}function Or(e){const t=e<0?-1:1,n=Math.abs(e);return t*(n>=_r?n**(1/Br):n*16)}const Xt=1.09929682680944,Nr=.018053968510807;function Lt(e){const t=e<0?-1:1,n=Math.abs(e);return n<Nr*4.5?t*n/4.5:t*((n+Xt-1)/Xt)**(1/.45)}function Pr(e){const t=e<0?-1:1,n=Math.abs(e);return n>=Nr?t*(Xt*n**.45-(Xt-1)):t*4.5*n}const zr=[.4865709486482162,.26566769316909306,.1982172852343625,.22897456406974884,.6917385218365064,.079286914093745,0,.04511338185890264,1.043944368900976],ls=q(zr),Lr=[.5766690429101305,.1855582379065463,.1882286462349947,.29734497525053605,.6273635662554661,.07529145849399788,.02703136138641234,.07068885253582723,.9913375368376388],us=q(Lr),Gr=[.7977604896723027,.13518583717574031,.0313493495815248,.2880711282292934,.7118432178101014,8565396060525902e-20,0,0,.8251046025104602],ms=q(Gr),$r=[.6369580483012914,.14461690358620832,.1688809751641721,.2627002120112671,.6779980715188708,.05930171646986196,0,.028072693049087428,1.0609850577107909],ps=q($r);function Ur({r:e,g:t,b:n,alpha:r}){const[o,s,i]=_([e,t,n],Qe);return new U(o,s,i,r)}function Dr({x:e,y:t,z:n,alpha:r}){const[o,s,i]=_([e,t,n],pr);return new Jt(o,s,i,r)}function Fr({r:e,g:t,b:n,alpha:r}){const o=[ct(e),ct(t),ct(n)],[s,i,a]=_(o,zr);return new U(s,i,a,r)}function Vr({x:e,y:t,z:n,alpha:r}){const o=_([e,t,n],ls),[s,i,a]=o.map(en);return new Qt(s,i,a,r)}function Wr({r:e,g:t,b:n,alpha:r}){const o=[Pt(e),Pt(t),Pt(n)],[s,i,a]=_(o,Lr);return new U(s,i,a,r)}function Xr({x:e,y:t,z:n,alpha:r}){const o=_([e,t,n],us),[s,i,a]=o.map(Rr);return new te(s,i,a,r)}function Hr({r:e,g:t,b:n,alpha:r}){const o=[zt(e),zt(t),zt(n)],s=_(o,Gr),[i,a,c]=_(s,Xe);return new U(i,a,c,r)}function Yr({x:e,y:t,z:n,alpha:r}){const o=_([e,t,n],se),s=_(o,ms),[i,a,c]=s.map(Or);return new ee(i,a,c,r)}function jr({r:e,g:t,b:n,alpha:r}){const o=[Lt(e),Lt(t),Lt(n)],[s,i,a]=_(o,$r);return new U(s,i,a,r)}function Zr({x:e,y:t,z:n,alpha:r}){const o=_([e,t,n],ps),[s,i,a]=o.map(Pr);return new ne(s,i,a,r)}const Tn={rgb:{to:le,from:ue},hsl:{to:he,from:fe},hsv:{to:kr,from:Sr},hwb:{to:yr,from:Cr},lab:{to:ce,from:ae},lch:{to:xr,from:Tr},oklab:{to:me,from:pe},oklch:{to:vr,from:Er},kelvin:{to:Mr,from:Ar},xyz:{to:e=>e,from:e=>e},"srgb-linear":{to:Ur,from:Dr},"display-p3":{to:Fr,from:Vr},"a98-rgb":{to:Wr,from:Xr},"prophoto-rgb":{to:Hr,from:Yr},rec2020:{to:jr,from:Zr}};function Q(e,t){if(e.colorSpace===t)return e;const n=Tn[e.colorSpace].to,r=n(e),o=Tn[t].from;return o(r)}const ut=1e-6;function Kr(e){const t=Q(e,"rgb"),n=Number.isNaN(t.r)?0:t.r,r=Number.isNaN(t.g)?0:t.g,o=Number.isNaN(t.b)?0:t.b;if(n>=0&&n<=1&&r>=0&&r<=1&&o>=0&&o<=1)return e;if(n>=-ut&&n<=1+ut&&r>=-ut&&r<=1+ut&&o>=-ut&&o<=1+ut){const l=new z(X(n,0,1),X(r,0,1),X(o,0,1),e.alpha);return Q(l,e.colorSpace)}const[s,i,a]=tr(n,r,o),c=new z(s,i,a,e.alpha);return Q(c,e.colorSpace)}const qr={hsl:"h",hsv:"h",hwb:"h",lch:"h",oklch:"h"};function Jr(e,t,n,r="shorter"){if(Number.isNaN(e)&&Number.isNaN(t))return 0;if(Number.isNaN(e))return t;if(Number.isNaN(t))return e;let o=t-e;switch(r){case"shorter":o>.5?e+=1:o<-.5&&(t+=1);break;case"longer":o>0&&o<.5?e+=1:o>-.5&&o<=0&&(t+=1);break;case"increasing":o<0&&(t+=1);break;case"decreasing":o>0&&(e+=1);break}let s=e+n*(t-e);return s=(s%1+1)%1,s}function Qr(e,t,n,r,o="oklab",s="shorter"){const i=Q(e,o),a=Q(t,o);n<0&&(n=0),r<0&&(r=0);const c=n+r;c===0?(n=.5,r=.5):c!==1&&(n=n/c,r=r/c);const l=Math.min(c,1),m=qr[o],u=i.keys().filter(A=>A!=="alpha"),d=Number.isNaN(i.alpha)?a.alpha:i.alpha,C=Number.isNaN(a.alpha)?i.alpha:a.alpha,y=Ft(r,d,C)*l,x=[];for(const A of u){let L=i[A],V=a[A];if(Number.isNaN(L)&&Number.isNaN(V)){x.push(0);continue}if(Number.isNaN(L)&&(L=V),Number.isNaN(V)&&(V=L),A===m)x.push(Jr(L,V,r,s));else{const nt=L*d,rt=V*C,ot=Ft(r,nt,rt);x.push(y>0?ot/y:0)}}const B=i.constructor;return new B(...x,y)}const hs=(e,t,n)=>{const r=f[t][n];return r[e]??r.number},to=(e,t,n,r,o=!1)=>{t=o?We[n][r]:t;const{min:s,max:i}=hs(t,n,r),[a,c,l,m]=o?[s,i,0,1]:[0,1,s,i],u=v(e,l,m,a,c);return new k(u,o?t:"")},eo=(e,t=!1)=>{const n=e.colorSpace;return e.keys().forEach(r=>{const o=e[r]instanceof k?e[r].value:e[r];e[r]=to(o,e[r]?.unit,n,r,t)}),e},Ht=(e,t=!1,n=!1)=>{e=n?e:e.clone();const r=eo(e.value,t);return n?e:new k(r).coalesce(e,!0)},Re=(e,t="lab",n=!1,r=!1,o=!1)=>{const s=n?o?e:e.clone():Ht(e,!1,o),i=Q(s.toJSON(),t);return i.entries().forEach(([a,c])=>{i[a]=new k(c)}),s.value=i,s.superType[1]=t,r?Ht(s,!0,!0):s},no=(e,t,n="lab",r=!1,o=!1,s=!1)=>[Re(e,n,r,o,s),Re(t,n,r,o,s)],$=e=>new k(e,"color",["color",e.colorSpace],void 0,"color");function _e(e){const n=Ht(e).value,r=n.clone();for(const o of n.keys()){const s=n[o];r[o]=s instanceof k?s.value:s}return r}function fs(e){const t=e.replace(/[^0-9.+\-*/() e]/g,"");return new Function(`return (${t})`)()}function vn(e,t){switch(e.type){case"ref":return t[e.name]??0;case"literal":return e.value;case"none":return NaN;case"calc":{let n=e.expr;const r=Object.keys(t).sort((o,s)=>s.length-o.length);for(const o of r)n=n.replace(new RegExp(`\\b${o}\\b`,"g"),String(t[o]));return fs(n)}}}function bs(e,t,n,r){const o=_e(e),s=Q(o,t),i={};for(const[d,C]of s.entries())i[d]=C;const a=n.map(d=>vn(d,i)),c=r?vn(r,i):i.alpha??1,m={rgb:z,hsl:ft,hwb:Zt,lab:Rt,lch:Kt,oklab:_t,oklch:qt,xyz:U,"srgb-linear":Jt,"display-p3":Qt,"a98-rgb":te,"prophoto-rgb":ee,rec2020:ne}[t]??z,u=new m(...a,c);return $(u)}const ds={srgb:"rgb","srgb-linear":"srgb-linear","display-p3":"display-p3","a98-rgb":"a98-rgb","prophoto-rgb":"prophoto-rgb",rec2020:"rec2020",lab:"lab",oklab:"oklab",oklch:"oklch",hsl:"hsl",hwb:"hwb",lch:"lch",xyz:"xyz","xyz-d65":"xyz","xyz-d50":"xyz"},gs={srgb:{space:"rgb",ctor:z},"srgb-linear":{space:"srgb-linear",ctor:Jt},"display-p3":{space:"display-p3",ctor:Qt},"a98-rgb":{space:"a98-rgb",ctor:te},"prophoto-rgb":{space:"prophoto-rgb",ctor:ee},rec2020:{space:"rec2020",ctor:ne},xyz:{space:"xyz",ctor:U},"xyz-d65":{space:"xyz",ctor:U},"xyz-d50":{space:"xyz",ctor:U}},ws=R(","),ks=F(/\s+/),be=R("/"),de=R("("),ge=R(")"),Yt=b(ws.trim(g),ks),ro=b(be.trim(g),Yt),W=S.lazy(()=>b(H.Percentage,H.Angle.map(e=>{const t=re(e.value,e.unit);return new k(t,"deg",["angle"])}),b(K,Ln).map(e=>new k(e)),oe.map(()=>new k(NaN)))),yt=b(p("calc").next(F(/\(([^)]+)\)/,e=>e?.[1]??null)).map(e=>({type:"calc",expr:e})),oe.map(()=>({type:"none"})),F(/\b(alpha|r|g|b|h|s|l|c|w|a|x|y|z)\b/).map(e=>({type:"ref",name:e})),W.map(e=>({type:"literal",value:e.value}))),J=e=>{const t=R(e).skip(p("a").opt()),n=b(M(W.skip(ro),W),W.map(o=>[o])),r=M(W.skip(Yt),W.skip(Yt),n).trim(g).wrap(de,ge);return t.next(r).map(([o,s,[i,a]])=>[o,s,i,a??new k(1)])};function et(e,t){return R(e).skip(p("a").opt()).next(M(p("from").skip(g).next(S.lazy(()=>we.Value)),g.next(yt),g.next(yt),g.next(yt),be.trim(g).next(yt).opt()).trim(g).wrap(de,ge)).map(([n,r,o,s,i])=>bs(n,t,[r,o,s],i))}const Ss=F(/#[0-9a-fA-F]{3,8}/).map(e=>{const{r:t,g:n,b:r,alpha:o}=er(e);return $(new z(t,n,r,o))}),ys=K.skip(p("k")).map(e=>{const t=Ke(new Ue(e));return $(t)}),Cs=b(et("rgb","rgb"),J("rgb").map(([e,t,n,r])=>$(new z(e,t,n,r)))),xs=b(et("hsl","hsl"),J("hsl").map(([e,t,n,r])=>$(new ft(e,t,n,r)))),Ts=J("hsv").map(([e,t,n,r])=>$(new jt(e,t,n,r))),vs=b(et("hwb","hwb"),J("hwb").map(([e,t,n,r])=>$(new Zt(e,t,n,r)))),Es=b(et("lab","lab"),J("lab").map(([e,t,n,r])=>$(new Rt(e,t,n,r)))),Ms=b(et("lch","lch"),J("lch").map(([e,t,n,r])=>$(new Kt(e,t,n,r)))),As=b(et("oklab","oklab"),J("oklab").map(([e,t,n,r])=>$(new _t(e,t,n,r)))),Is=b(et("oklch","oklch"),J("oklch").map(([e,t,n,r])=>$(new qt(e,t,n,r)))),Rs=b(et("xyz","xyz"),J("xyz").map(([e,t,n,r])=>$(new U(e,t,n,r)))),_s=b(p("srgb-linear").map(()=>"srgb-linear"),p("srgb").map(()=>"srgb"),p("display-p3").map(()=>"display-p3"),p("a98-rgb").map(()=>"a98-rgb"),p("prophoto-rgb").map(()=>"prophoto-rgb"),p("rec2020").map(()=>"rec2020"),p("oklab").map(()=>"oklab"),p("oklch").map(()=>"oklch"),p("lab").map(()=>"lab"),p("lch").map(()=>"lch"),p("hsl").map(()=>"hsl"),p("hwb").map(()=>"hwb"),p("xyz-d65").map(()=>"xyz-d65"),p("xyz-d50").map(()=>"xyz-d50"),p("xyz").map(()=>"xyz")),Bs=b(p("shorter"),p("longer"),p("increasing"),p("decreasing")).skip(g).skip(p("hue")),En=S.lazy(()=>M(we.Value,g.next(H.Percentage).opt())),Os=p("color-mix").next(M(p("in").skip(g).next(M(_s,g.next(Bs).opt())),R(",").trim(g).next(En),R(",").trim(g).next(En)).trim(g).wrap(de,ge)).map(([[e,t],[n,r],[o,s]])=>{const i=ds[e]??"oklab",a=t??"shorter";let c=r!=null?r.value/100:-1,l=s!=null?s.value/100:-1;c<0&&l<0?(c=.5,l=.5):c<0?c=1-l:l<0&&(l=1-c);const m=_e(n),u=_e(o),d=Qr(m,u,c,l,i,a);return $(d)}),Ns=b(p("srgb-linear").map(()=>"srgb-linear"),p("srgb").map(()=>"srgb"),p("display-p3").map(()=>"display-p3"),p("a98-rgb").map(()=>"a98-rgb"),p("prophoto-rgb").map(()=>"prophoto-rgb"),p("rec2020").map(()=>"rec2020"),p("xyz-d65").map(()=>"xyz-d65"),p("xyz-d50").map(()=>"xyz-d50"),p("xyz").map(()=>"xyz")),Ps=p("color").next(M(Ns.skip(g),W.skip(g),W.skip(g),b(M(W.skip(be.trim(g)),W),W.map(e=>[e,void 0]))).trim(g).wrap(de,ge)).map(([e,t,n,[r,o]])=>{const s=gs[e];if(!s)throw new Error(`Unknown color() space: ${e}`);const i=o??new k(1);if(e==="srgb"){const c=l=>l.value*255;return $(new z(c(t),c(n),c(r),i.value))}const a=new s.ctor(t,n,r,i);return $(a)}),zs=b(...Object.keys(Ae).sort((e,t)=>t.length-e.length).map(p)).chain(e=>{const t=Ae[e.toLowerCase()];if(t){const n=an(t);if(n)return Gn(n)}return $n()}),oo=b(Os,Ps,Ss,ys,Cs,xs,Ts,vs,Es,Ms,As,Is,Rs,zs).trim(g),we={Value:oo,colorValue:W,componentExpr:yt,sep:Yt,alphaSep:ro,div:be};function Ls(e){return dt(oo,e)}const Gs=b(...Tt.map(p)),$s=b(...Et.map(p)),Us=b(...vt.map(p)),Ds=b(...Mt.map(p)),Fs=b(...Ge.map(p)),Vs=R(","),Ws=R(" "),Xs=b(Vs,Ws).trim(g),so=M(K,Gs).map(([e,t])=>{const n=["length"];return Le.includes(t)?n.push("relative"):ze.includes(t)&&n.push("absolute"),new k(e,t,n)}),io=M(K,$s).map(([e,t])=>new k(e,t,["angle"])),on=M(K,Us).map(([e,t])=>new k(e,t,["time"])),Hs=S.lazy(()=>b(sn,on)),ao=M(K,Ds).map(([e,t])=>new k(e,t,["resolution"])),sn=b(M(K,Fs),p("from").map(()=>[0,"%"]),p("to").map(()=>[100,"%"])).map(([e,t])=>new k(e,t,["percentage"])),co=S.lazy(()=>we.Value),lo=R("/").trim(g).map(()=>new k("/","string")),uo=b(so,io,on,ao,sn,co,lo,K.map(e=>new k(e)),oe.map(()=>new k(NaN))).trim(g),H={Length:so,Angle:io,Time:on,TimePercentage:Hs,Resolution:ao,Percentage:sn,Color:co,Slash:lo,Value:uo,sep:Xs};function an(e){return dt(uo,e)}const pt=R("("),ht=R(")"),Be=R(","),mo=S.lazy(()=>mn.sepBy(b(Be,g)).trim(g).map(e=>new bt(...e))),cn=e=>M(e||zn,mo.wrap(pt,ht)),Ys=()=>{const e=F(/[^)]+/);return R("var").next(e.trim(g).wrap(pt,ht)).map(t=>new k(t,"var"))},js=()=>{const e=S.lazy(()=>b(F(/[^()]+/),e.many(1).wrap(pt,ht).map(t=>`(${t.join(" ")})`)).many(1));return R("calc").next(b(S.lazy(()=>mn).trim(g).wrap(pt,ht),e.wrap(pt,ht).map(t=>t.join(" ")))).map(t=>t instanceof k?t:new k(t,"calc"))},Zs=["translate","scale","rotate","skew"],Oe=["x","y","z"],Ks=Oe.map(p),qs=Zs.map(p),Js=()=>{const e=M(b(...qs),b(...Ks,R(""))),t=(r,o)=>r+o.toUpperCase();return cn(e).map(([[r,o],s])=>{const i=r.toLowerCase(),a={};if(o){const l=i+o.toUpperCase();a[l]=s[0]}else s.length===1?Oe.forEach(l=>{const m=t(i,l);a[m]=s[0]}):s.forEach((l,m)=>{const u=t(i,Oe[m]);a[u]=l});const c=Object.entries(a).map(([l,m])=>new tt(l,[m]));return new bt(...c)})},Qs={left:"270",right:"90",top:"0",bottom:"180"},ti=()=>{const e=b(...["linear-gradient","radial-gradient"].map(p)),t=M(R("to").skip(g),b(...["left","right","top","bottom"].map(p))).map(([,a])=>{const c=Qs[a.toLowerCase()];return new k(c,"deg")}),n=b(H.Angle,t),r=b(H.Length,H.Percentage),o=M(H.Color,r.sepBy(g)).map(([a,c])=>!c||c.length===0?[a]:[a,...c]),s=M(o,Be.trim(g).next(b(o,r)).many()).map(([a,c])=>[a,...c]);return M(e,M(n.skip(Be).opt(),s).trim(g).wrap(pt,ht).map(([a,c])=>a?[a,...c].flat():[c])).map(([a,c])=>new tt(a,c))},ei=()=>cn(R("cubic-bezier")).map(e=>new tt("cubic-bezier",e[1])),ln=F(/[^\(\)\{\}\s,;]+/).map(e=>new k(e)),un=b(Js(),Ys(),js(),ti(),ei(),cn().map(([e,t])=>new tt(e,t))),mn=b(H.Value,un,ln).trim(g),ni={Function:un,Value:mn,FunctionArgs:mo},po=M(R("{"),F(/[^{}]+/),R("}")).map(e=>{const t=e.join(`
8
+ `);let n=JSON.parse(t);return new k(n,"json")}),Ne=b(H.Value,un,po,ln).trim(g),ri={Value:Ne,Values:Ne.sepBy(g)},ho=It(e=>dt(Ne,e)),oi=It(e=>dt(H.Percentage,String(e)).valueOf()),si=It(e=>dt(H.Time.map(t=>t.unit==="ms"?t.value:t.unit==="s"?t.value*1e3:t.value),e)),ii=It((e,t)=>(()=>{if(!t)return e;if(e.unit==="var"){const o=getComputedStyle(t).getPropertyValue(e.value);return an(o)}if(e.unit==="calc"&&e.property&&e.subProperty&&e.value&&t){const o=e.property,s=t.style[o],i=e.subProperty?`${e.subProperty}(${e.toString()})`:e.toString();t.style[o]=i;const a=getComputedStyle(t).getPropertyValue(o);t.style[o]=s;const c=ho(a);if(c instanceof k)return c;if(c.name.startsWith("matrix")){const m=_n(c)[e.subProperty];if(m!=null)return new k(m,"px",["length","absolute"])}}return e})().coalesce(e),{keyFn:(e,t)=>`${e.toString()}-${JSON.stringify(t)}`}),fo=(e,t,n=!1)=>{if(e?.superType?.[0]!==t?.superType?.[0])return n?[e,t]:[e.clone(),t.clone()];const r=i=>{switch(i?.superType?.[0]){case"length":return{value:De(i.value,i.unit,i.targets?.[0]),unit:"px"};case"angle":return{value:re(i.value,i.unit),unit:"deg"};case"time":return{value:Fe(i.value,i.unit),unit:"ms"};case"resolution":return{value:Ve(i.value,i.unit),unit:"dpi"};default:return{value:i.value,unit:i.unit}}},[o,s]=[r(e),r(t)];return n?(e.value=o.value,e.unit=o.unit,t.value=s.value,t.unit=s.unit,[e,t]):[new k(o.value,o.unit,e.superType,e.subProperty,e.property,e.targets),new k(s.value,s.unit,t.superType,t.subProperty,t.property,t.targets)]};function ai(e,t){e=e.coalesce(t,!0),t=t.coalesce(e,!0);const n={start:e,stop:t,value:e.clone()};if(Ut(e)&&Ut(t)){const[r,o]=no(e,t,"lab",!0);n.start=r,n.stop=o,n.value=r.clone()}if(e.unit!==t.unit){const[r,o]=fo(e,t,!0);n.start=r,n.stop=o,n.value=r.clone()}return n.computed=$t.includes(e.unit)||$t.includes(t.unit),n}exports.ABSOLUTE_LENGTH_UNITS=ze;exports.ALPHA_DENORM_UNIT=P;exports.ALPHA_RANGE=h;exports.ANGLE_UNITS=Et;exports.AdobeRGBColor=te;exports.BLACKLISTED_COALESCE_UNITS=In;exports.COLOR_NAMES=Ae;exports.COLOR_SPACE_DENORM_UNITS=We;exports.COLOR_SPACE_NAMES=Vo;exports.COLOR_SPACE_RANGES=f;exports.COLOR_UNITS=An;exports.COMPUTED_UNITS=$t;exports.CSSColor=we;exports.CSSFunction=ni;exports.CSSJSON=po;exports.CSSString=ln;exports.CSSValueUnit=H;exports.CSSValues=ri;exports.CYLINDRICAL_HUE_COMPONENT=qr;exports.Color=D;exports.DELTA_E_OK_JND=Zo;exports.DisplayP3Color=Qt;exports.FRAME_RATE=Gt;exports.FunctionValue=tt;exports.GAMUT_SECTOR_COEFFICIENTS=Wn;exports.HSLColor=ft;exports.HSVColor=jt;exports.HUE_RANGE=mt;exports.HWBColor=Zt;exports.KelvinColor=Ue;exports.LABColor=Rt;exports.LCHColor=Kt;exports.LENGTH_UNITS=Tt;exports.LINEAR_SRGB_TO_LMS=Y;exports.LMS_TO_LINEAR_SRGB=w;exports.LMS_TO_OKLAB_MATRIX=je;exports.LMS_TO_XYZ_MATRIX=Fn;exports.LinearSRGBColor=Jt;exports.OKLABColor=_t;exports.OKLAB_TO_LMS_COEFF=O;exports.OKLAB_TO_LMS_MATRIX=Vn;exports.OKLCHColor=qt;exports.PERCENTAGE_UNITS=Ge;exports.ProPhotoRGBColor=ee;exports.RELATIVE_LENGTH_UNITS=Le;exports.RESOLUTION_UNITS=Mt;exports.RGBA_MAX=I;exports.RGBColor=z;exports.RGB_RANGE=Nt;exports.Rec2020Color=ne;exports.STRING_UNITS=Mn;exports.STYLE_NAMES=Rn;exports.TIME_UNITS=vt;exports.UNITS=Io;exports.UNIT_RANGE=N;exports.ValueArray=bt;exports.ValueUnit=k;exports.WHITE_POINTS=He;exports.WHITE_POINT_D50=Dn;exports.WHITE_POINT_D50_D65=Xe;exports.WHITE_POINT_D65=Un;exports.WHITE_POINT_D65_D50=se;exports.XYZColor=U;exports.XYZ_TO_LMS_MATRIX=Ye;exports.adobeRgb2xyz=Wr;exports.adobeRgbToLinear=Pt;exports.arrayEquals=ko;exports.camelCaseToHyphen=vo;exports.cancelAnimationFrame=Ao;exports.clamp=X;exports.clone=Z;exports.color2=Q;exports.colorUnit2=Re;exports.computeMaxSaturation=Zn;exports.convert2=zo;exports.convertAbsoluteUnitToPixels=Bn;exports.convertToDPI=Ve;exports.convertToDegrees=re;exports.convertToMs=Fe;exports.convertToPixels=De;exports.createHash=xo;exports.cubicBezier=Xn;exports.cubicBezierToSVG=Ho;exports.cubicBezierToString=Yo;exports.deCasteljau=At;exports.debounce=Co;exports.deltaEOK=Ko;exports.displayP32xyz=Fr;exports.fail=$n;exports.findCusp=Kn;exports.findGamutIntersection=qn;exports.flattenObject=Ro;exports.gamutMap=Kr;exports.gamutMapOKLab=Jn;exports.gamutMapSRGB=tr;exports.getComputedValue=ii;exports.getFormattedColorSpaceRange=Qo;exports.hex2rgb=er;exports.hsl2hsv=Je;exports.hsl2hwb=ar;exports.hsl2rgb=lr;exports.hsl2xyz=he;exports.hsv2hsl=qe;exports.hsv2xyz=kr;exports.hwb2hsl=ir;exports.hwb2xyz=yr;exports.hyphenToCamelCase=To;exports.identifier=zn;exports.integer=Ln;exports.interpBezier=Xo;exports.interpolateHue=Jr;exports.invertMat3=q;exports.isCSSStyleName=No;exports.isColorUnit=Ut;exports.isInSRGBGamut=jn;exports.isObject=Pe;exports.istring=p;exports.kelvin2rgb=Ke;exports.kelvin2xyz=Mr;exports.lab2lch=dr;exports.lab2oklab=wr;exports.lab2oklch=cs;exports.lab2xyz=ce;exports.lch2lab=br;exports.lch2xyz=xr;exports.lerp=Ft;exports.linearSrgb2xyz=Ur;exports.linearToAdobeRgb=Rr;exports.linearToProPhoto=Or;exports.linearToRec2020=Pr;exports.linearToSrgb=en;exports.logerp=Wo;exports.memoize=It;exports.mixColors=Qr;exports.multiplyMat3=Fo;exports.none=oe;exports.normalizeColor=eo;exports.normalizeColorUnit=Ht;exports.normalizeColorUnitComponent=to;exports.normalizeColorUnits=no;exports.normalizeNumericUnits=fo;exports.normalizeValueUnits=ai;exports.number=K;exports.oklab2lab=gr;exports.oklab2oklch=nn;exports.oklab2xyz=me;exports.oklabToLinearSRGB=ie;exports.oklch2lab=as;exports.oklch2oklab=rn;exports.oklch2xyz=vr;exports.parseCSSColor=Ls;exports.parseCSSPercent=oi;exports.parseCSSTime=si;exports.parseCSSValue=ho;exports.parseCSSValueUnit=an;exports.parseResult=Uo;exports.proPhoto2xyz=Hr;exports.proPhotoToLinear=zt;exports.rec20202xyz=jr;exports.rec2020ToLinear=Lt;exports.requestAnimationFrame=Mo;exports.rgb2hex=ts;exports.rgb2hsl=cr;exports.rgb2kelvin=sr;exports.rgb2xyz=le;exports.scale=v;exports.seekPreviousValue=Eo;exports.sleep=So;exports.srgbToLinear=ct;exports.srgbToOKLab=Qn;exports.succeed=Gn;exports.transformMat3=_;exports.transposeMat3=Do;exports.tryParse=dt;exports.unflattenObject=_o;exports.unflattenObjectToString=Bo;exports.unpackMatrixValues=_n;exports.waitUntil=yo;exports.xyz2adobeRgb=Xr;exports.xyz2displayP3=Vr;exports.xyz2hsl=fe;exports.xyz2hsv=Sr;exports.xyz2hwb=Cr;exports.xyz2kelvin=Ar;exports.xyz2lab=ae;exports.xyz2lch=Tr;exports.xyz2linearSrgb=Dr;exports.xyz2oklab=pe;exports.xyz2oklch=Er;exports.xyz2proPhoto=Yr;exports.xyz2rec2020=Zr;exports.xyz2rgb=ue;