@csstools/css-color-parser 4.1.8 → 4.1.10

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/CHANGELOG.md CHANGED
@@ -1,9 +1,10 @@
1
1
  # Changes to CSS Color Parser
2
2
 
3
- ### 4.1.8
3
+ ### 4.1.10
4
4
 
5
- _June 19, 2026_
5
+ _July 22, 2026_
6
6
 
7
- - Add `color-mix` syntax flag to mix notations with only a single value (e.g. `color-mix(in oklch, red)`)
7
+ - Fix handling of `none` in some edge cases
8
+ - Updated [`@csstools/css-calc`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc) to [`3.3.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc/CHANGELOG.md#330) (minor)
8
9
 
9
10
  [Full CHANGELOG](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md)
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{TokenType as e,NumberType as a,isTokenIdent as n,isTokenPercentage as r,isTokenNumber as o,isTokenDelim as t,isTokenNumeric as l,isTokenComma as s,isTokenDimension as u,isTokenHash as i}from"@csstools/css-tokenizer";import{XYZ_D50_to_XYZ_D65 as c,XYZ_D50_to_XYZ_D50 as h,XYZ_D50_to_OKLab as m,XYZ_D50_to_OKLCH as N,XYZ_D50_to_LCH as p,XYZ_D50_to_Lab as b,XYZ_D50_to_HWB as v,XYZ_D50_to_HSL as f,XYZ_D50_to_a98_RGB as g,XYZ_D50_to_ProPhoto as y,XYZ_D50_to_rec_2020 as d,XYZ_D50_to_lin_P3 as C,XYZ_D50_to_P3 as _,XYZ_D50_to_lin_sRGB as w,XYZ_D50_to_sRGB as x,XYZ_D65_to_XYZ_D50 as L,OKLCH_to_XYZ_D50 as H,LCH_to_XYZ_D50 as k,OKLab_to_XYZ_D50 as P,Lab_to_XYZ_D50 as S,HWB_to_XYZ_D50 as M,HSL_to_XYZ_D50 as F,ProPhoto_RGB_to_XYZ_D50 as D,a98_RGB_to_XYZ_D50 as z,rec_2020_to_XYZ_D50 as Z,lin_P3_to_XYZ_D50 as R,P3_to_XYZ_D50 as B,lin_sRGB_to_XYZ_D50 as T,sRGB_to_XYZ_D50 as V,namedColors as G,inGamut as A,clip as X,gam_sRGB as K,mapGamutRayTrace as Y,OKLCH_to_OKLab as I,OKLab_to_XYZ as O,XYZ_to_lin_sRGB as W,lin_sRGB_to_XYZ as E,XYZ_to_OKLab as U,OKLab_to_OKLCH as $,contrast_ratio_wcag_2_1 as j,gam_P3 as q,XYZ_to_lin_P3 as J,lin_P3_to_XYZ as Q}from"@csstools/color-helpers";import{isWhitespaceNode as ee,isCommentNode as ae,isTokenNode as ne,isFunctionNode as re,TokenNode as oe,isWhiteSpaceOrCommentNode as te,replaceComponentValues as le,FunctionNode as se,WhitespaceNode as ue}from"@csstools/css-parser-algorithms";import{mathFunctionNames as ie,calcFromComponentValues as ce}from"@csstools/css-calc";var he,me;function convertNaNToZero(e){return[Number.isNaN(e[0])?0:e[0],Number.isNaN(e[1])?0:e[1],Number.isNaN(e[2])?0:e[2]]}function colorData_to_XYZ_D50(e){switch(e.colorNotation){case he.HEX:case he.RGB:case he.sRGB:return{...e,colorNotation:he.XYZ_D50,channels:V(convertNaNToZero(e.channels))};case he.Linear_sRGB:return{...e,colorNotation:he.XYZ_D50,channels:T(convertNaNToZero(e.channels))};case he.Display_P3:return{...e,colorNotation:he.XYZ_D50,channels:B(convertNaNToZero(e.channels))};case he.Linear_Display_P3:return{...e,colorNotation:he.XYZ_D50,channels:R(convertNaNToZero(e.channels))};case he.Rec2020:return{...e,colorNotation:he.XYZ_D50,channels:Z(convertNaNToZero(e.channels))};case he.A98_RGB:return{...e,colorNotation:he.XYZ_D50,channels:z(convertNaNToZero(e.channels))};case he.ProPhoto_RGB:return{...e,colorNotation:he.XYZ_D50,channels:D(convertNaNToZero(e.channels))};case he.HSL:return{...e,colorNotation:he.XYZ_D50,channels:F(convertNaNToZero(e.channels))};case he.HWB:return{...e,colorNotation:he.XYZ_D50,channels:M(convertNaNToZero(e.channels))};case he.Lab:return{...e,colorNotation:he.XYZ_D50,channels:S(convertNaNToZero(e.channels))};case he.OKLab:return{...e,colorNotation:he.XYZ_D50,channels:P(convertNaNToZero(e.channels))};case he.LCH:return{...e,colorNotation:he.XYZ_D50,channels:k(convertNaNToZero(e.channels))};case he.OKLCH:return{...e,colorNotation:he.XYZ_D50,channels:H(convertNaNToZero(e.channels))};case he.XYZ_D50:return{...e,colorNotation:he.XYZ_D50,channels:h(convertNaNToZero(e.channels))};case he.XYZ_D65:return{...e,colorNotation:he.XYZ_D50,channels:L(convertNaNToZero(e.channels))};default:throw new Error("Unsupported color notation")}}!function(e){e.A98_RGB="a98-rgb",e.Display_P3="display-p3",e.Linear_Display_P3="display-p3-linear",e.HEX="hex",e.HSL="hsl",e.HWB="hwb",e.LCH="lch",e.Lab="lab",e.Linear_sRGB="srgb-linear",e.OKLCH="oklch",e.OKLab="oklab",e.ProPhoto_RGB="prophoto-rgb",e.RGB="rgb",e.sRGB="srgb",e.Rec2020="rec2020",e.XYZ_D50="xyz-d50",e.XYZ_D65="xyz-d65"}(he||(he={})),function(e){e.ColorKeyword="color-keyword",e.HasAlpha="has-alpha",e.HasDimensionValues="has-dimension-values",e.HasNoneKeywords="has-none-keywords",e.HasNumberValues="has-number-values",e.HasPercentageAlpha="has-percentage-alpha",e.HasPercentageValues="has-percentage-values",e.HasVariableAlpha="has-variable-alpha",e.Hex="hex",e.LegacyHSL="legacy-hsl",e.LegacyRGB="legacy-rgb",e.NamedColor="named-color",e.RelativeColorSyntax="relative-color-syntax",e.ColorMix="color-mix",e.ColorMixVariadic="color-mix-variadic",e.ContrastColor="contrast-color",e.RelativeAlphaSyntax="relative-alpha-syntax",e.Experimental="experimental"}(me||(me={}));const Ne=new Set([he.A98_RGB,he.Display_P3,he.Linear_Display_P3,he.HEX,he.Linear_sRGB,he.ProPhoto_RGB,he.RGB,he.sRGB,he.Rec2020,he.XYZ_D50,he.XYZ_D65]);function colorDataTo(e,a){(e={...e}).channels=convertPowerlessComponentsToMissingComponents(e.channels,e.colorNotation);const n={...e};if(e.colorNotation!==a){const e=colorData_to_XYZ_D50(n);switch(a){case he.HEX:case he.RGB:n.colorNotation=he.RGB,n.channels=x(e.channels);break;case he.sRGB:n.colorNotation=he.sRGB,n.channels=x(e.channels);break;case he.Linear_sRGB:n.colorNotation=he.Linear_sRGB,n.channels=w(e.channels);break;case he.Display_P3:n.colorNotation=he.Display_P3,n.channels=_(e.channels);break;case he.Linear_Display_P3:n.colorNotation=he.Linear_Display_P3,n.channels=C(e.channels);break;case he.Rec2020:n.colorNotation=he.Rec2020,n.channels=d(e.channels);break;case he.ProPhoto_RGB:n.colorNotation=he.ProPhoto_RGB,n.channels=y(e.channels);break;case he.A98_RGB:n.colorNotation=he.A98_RGB,n.channels=g(e.channels);break;case he.HSL:n.colorNotation=he.HSL,n.channels=f(e.channels);break;case he.HWB:n.colorNotation=he.HWB,n.channels=v(e.channels);break;case he.Lab:n.colorNotation=he.Lab,n.channels=b(e.channels);break;case he.LCH:n.colorNotation=he.LCH,n.channels=p(e.channels);break;case he.OKLCH:n.colorNotation=he.OKLCH,n.channels=N(e.channels);break;case he.OKLab:n.colorNotation=he.OKLab,n.channels=m(e.channels);break;case he.XYZ_D50:n.colorNotation=he.XYZ_D50,n.channels=h(e.channels);break;case he.XYZ_D65:n.colorNotation=he.XYZ_D65,n.channels=c(e.channels);break;default:throw new Error("Unsupported color notation")}}else n.channels=convertNaNToZero(e.channels);if(a===e.colorNotation)n.channels=carryForwardMissingComponents(e.channels,[0,1,2],[],n.channels,[0,1,2],[]);else if(Ne.has(a)&&Ne.has(e.colorNotation))n.channels=carryForwardMissingComponents(e.channels,[0,1,2],[],n.channels,[0,1,2],[]);else switch(a){case he.HSL:switch(e.colorNotation){case he.HWB:n.channels=carryForwardMissingComponents(e.channels,[0],[1,2],n.channels,[0],[1,2]);break;case he.Lab:case he.OKLab:n.channels=carryForwardMissingComponents(e.channels,[0],[1,2],n.channels,[2],[0,1]);break;case he.LCH:case he.OKLCH:n.channels=carryForwardMissingComponents(e.channels,[0,1,2],[],n.channels,[2,1,0],[]);break;default:n.channels=carryForwardMissingComponents(e.channels,[],[],n.channels,[],[])}break;case he.HWB:switch(e.colorNotation){case he.HSL:n.channels=carryForwardMissingComponents(e.channels,[0],[1,2],n.channels,[0],[1,2]);break;case he.LCH:case he.OKLCH:n.channels=carryForwardMissingComponents(e.channels,[2],[0,1],n.channels,[0],[1,2]);break;default:n.channels=carryForwardMissingComponents(e.channels,[],[],n.channels,[],[])}break;case he.Lab:case he.OKLab:switch(e.colorNotation){case he.HSL:n.channels=carryForwardMissingComponents(e.channels,[2],[0,1],n.channels,[0],[1,2]);break;case he.Lab:case he.OKLab:n.channels=carryForwardMissingComponents(e.channels,[0,1,2],[],n.channels,[0,1,2],[]);break;case he.LCH:case he.OKLCH:n.channels=carryForwardMissingComponents(e.channels,[0],[1,2],n.channels,[0],[1,2]);break;default:n.channels=carryForwardMissingComponents(e.channels,[],[],n.channels,[],[])}break;case he.LCH:case he.OKLCH:switch(e.colorNotation){case he.HSL:n.channels=carryForwardMissingComponents(e.channels,[0,1,2],[],n.channels,[2,1,0],[]);break;case he.HWB:n.channels=carryForwardMissingComponents(e.channels,[0],[1,2],n.channels,[2],[0,1]);break;case he.Lab:case he.OKLab:n.channels=carryForwardMissingComponents(e.channels,[0],[1,2],n.channels,[0],[1,2]);break;case he.LCH:case he.OKLCH:n.channels=carryForwardMissingComponents(e.channels,[0,1,2],[],n.channels,[0,1,2],[]);break;default:n.channels=carryForwardMissingComponents(e.channels,[],[],n.channels,[],[])}break;default:n.channels=carryForwardMissingComponents(e.channels,[],[],n.channels,[],[])}return n.channels=convertPowerlessComponentsToMissingComponents(n.channels,a),n}function convertPowerlessComponentsToMissingComponents(e,a){const n=[...e];switch(a){case he.HSL:!Number.isNaN(n[1])&&n[1]<=.001&&(n[0]=Number.NaN);break;case he.HWB:!Number.isNaN(n[1])&&!Number.isNaN(n[2])&&Math.max(0,n[1])+Math.max(0,n[2])>=99.999&&(n[0]=Number.NaN);break;case he.LCH:!Number.isNaN(n[1])&&n[1]<=.0015&&(n[2]=Number.NaN);break;case he.OKLCH:!Number.isNaN(n[1])&&n[1]<=4e-6&&(n[2]=Number.NaN)}return n}function convertPowerlessComponentsToZeroValuesForDisplay(e,a){const n=[...e];switch(a){case he.HSL:(reducePrecision(n[2])<=0||reducePrecision(n[2])>=100)&&(n[0]=Number.NaN,n[1]=Number.NaN),!Number.isNaN(n[1])&&n[1]<=.001&&(n[0]=Number.NaN);break;case he.HWB:!Number.isNaN(n[1])&&!Number.isNaN(n[2])&&Math.max(0,n[1])+Math.max(0,n[2])>=99.999&&(n[0]=Number.NaN);break;case he.Lab:(reducePrecision(n[0])<=0||reducePrecision(n[0])>=100)&&(n[1]=Number.NaN,n[2]=Number.NaN);break;case he.LCH:!Number.isNaN(n[1])&&n[1]<=.0015&&(n[2]=Number.NaN),(reducePrecision(n[0])<=0||reducePrecision(n[0])>=100)&&(n[1]=Number.NaN,n[2]=Number.NaN);break;case he.OKLab:(reducePrecision(n[0])<=0||reducePrecision(n[0])>=1)&&(n[1]=Number.NaN,n[2]=Number.NaN);break;case he.OKLCH:!Number.isNaN(n[1])&&n[1]<=4e-6&&(n[2]=Number.NaN),(reducePrecision(n[0])<=0||reducePrecision(n[0])>=1)&&(n[1]=Number.NaN,n[2]=Number.NaN)}return n}function carryForwardMissingComponents(e,a,n,r,o,t){if(a.length<3&&e.every(Number.isNaN))return[Number.NaN,Number.NaN,Number.NaN];const l=[...r];for(let n=0;n<a.length;n++)Number.isNaN(e[a[n]])&&(l[o[n]]=Number.NaN);if(n.length&&n.every(a=>Number.isNaN(e[a])))for(let e=0;e<t.length;e++)l[t[e]]=Number.NaN;return l}function normalizeRelativeColorDataChannels(e){const a=new Map;switch(e.colorNotation){case he.RGB:case he.HEX:a.set("r",dummyNumberToken(255*e.channels[0])),a.set("g",dummyNumberToken(255*e.channels[1])),a.set("b",dummyNumberToken(255*e.channels[2])),"number"==typeof e.alpha&&a.set("alpha",dummyNumberToken(e.alpha));break;case he.HSL:a.set("h",dummyNumberToken(e.channels[0])),a.set("s",dummyNumberToken(e.channels[1])),a.set("l",dummyNumberToken(e.channels[2])),"number"==typeof e.alpha&&a.set("alpha",dummyNumberToken(e.alpha));break;case he.HWB:a.set("h",dummyNumberToken(e.channels[0])),a.set("w",dummyNumberToken(e.channels[1])),a.set("b",dummyNumberToken(e.channels[2])),"number"==typeof e.alpha&&a.set("alpha",dummyNumberToken(e.alpha));break;case he.Lab:case he.OKLab:a.set("l",dummyNumberToken(e.channels[0])),a.set("a",dummyNumberToken(e.channels[1])),a.set("b",dummyNumberToken(e.channels[2])),"number"==typeof e.alpha&&a.set("alpha",dummyNumberToken(e.alpha));break;case he.LCH:case he.OKLCH:a.set("l",dummyNumberToken(e.channels[0])),a.set("c",dummyNumberToken(e.channels[1])),a.set("h",dummyNumberToken(e.channels[2])),"number"==typeof e.alpha&&a.set("alpha",dummyNumberToken(e.alpha));break;case he.sRGB:case he.A98_RGB:case he.Display_P3:case he.Linear_Display_P3:case he.Rec2020:case he.Linear_sRGB:case he.ProPhoto_RGB:a.set("r",dummyNumberToken(e.channels[0])),a.set("g",dummyNumberToken(e.channels[1])),a.set("b",dummyNumberToken(e.channels[2])),"number"==typeof e.alpha&&a.set("alpha",dummyNumberToken(e.alpha));break;case he.XYZ_D50:case he.XYZ_D65:a.set("x",dummyNumberToken(e.channels[0])),a.set("y",dummyNumberToken(e.channels[1])),a.set("z",dummyNumberToken(e.channels[2])),"number"==typeof e.alpha&&a.set("alpha",dummyNumberToken(e.alpha))}return a}function noneToZeroInRelativeColorDataChannels(e){const a=new Map(e);for(const[n,r]of e)Number.isNaN(r[4].value)&&a.set(n,dummyNumberToken(0));return a}function dummyNumberToken(n){return Number.isNaN(n)?[e.Number,"none",-1,-1,{value:Number.NaN,type:a.Number}]:[e.Number,n.toString(),-1,-1,{value:n,type:a.Number}]}function reducePrecision(e,a=7){if(Number.isNaN(e))return 0;const n=Math.pow(10,a);return Math.round(e*n)/n}function colorDataFitsRGB_Gamut(e){const a={...e,channels:[...e.channels]};a.channels=convertPowerlessComponentsToZeroValuesForDisplay(a.channels,a.colorNotation);return!colorDataTo(a,he.RGB).channels.find(e=>e<-1e-5||e>1.00001)}function colorDataFitsDisplayP3_Gamut(e){const a={...e,channels:[...e.channels]};a.channels=convertPowerlessComponentsToZeroValuesForDisplay(a.channels,a.colorNotation);return!colorDataTo(a,he.Display_P3).channels.find(e=>e<-1e-5||e>1.00001)}function normalize(e,a,n,r){return Math.min(Math.max(e/a,n),r)}const pe=/[A-Z]/g;function toLowerCaseAZ(e){return e.replace(pe,e=>String.fromCharCode(e.charCodeAt(0)+32))}function normalize_Color_ChannelValues(t,l,s){if(n(t)&&"none"===toLowerCaseAZ(t[4].value))return s.syntaxFlags.add(me.HasNoneKeywords),[e.Number,"none",t[2],t[3],{value:Number.NaN,type:a.Number}];if(r(t)){3!==l&&s.syntaxFlags.add(me.HasPercentageValues);let n=normalize(t[4].value,100,-2147483647,2147483647);return 3===l&&(n=normalize(t[4].value,100,0,1)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}if(o(t)){3!==l&&s.syntaxFlags.add(me.HasNumberValues);let n=normalize(t[4].value,1,-2147483647,2147483647);return 3===l&&(n=normalize(t[4].value,1,0,1)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}return!1}const be=new Set(["srgb","srgb-linear","display-p3","display-p3-linear","a98-rgb","prophoto-rgb","rec2020","xyz","xyz-d50","xyz-d65"]);function color$1(e,a){const r=[],s=[],u=[],i=[];let c,h,m=!1,N=!1;const p={colorNotation:he.sRGB,channels:[0,0,0],alpha:1,syntaxFlags:new Set([])};let b=r;for(let o=0;o<e.value.length;o++){let v=e.value[o];if(ee(v)||ae(v))for(;ee(e.value[o+1])||ae(e.value[o+1]);)o++;else if(b===r&&r.length&&(b=s),b===s&&s.length&&(b=u),ne(v)&&t(v.value)&&"/"===v.value[4].value){if(b===i)return!1;b=i}else{if(re(v)){if(b===i&&"var"===toLowerCaseAZ(v.getName())){p.syntaxFlags.add(me.HasVariableAlpha),b.push(v);continue}if(!ie.has(toLowerCaseAZ(v.getName())))return!1;const[[e]]=ce([[v]],{censorIntoStandardRepresentableValues:!0,globals:h,precision:-1,toCanonicalUnits:!0,rawPercentages:!0});if(!e||!ne(e)||!l(e.value))return!1;Number.isNaN(e.value[4].value)&&(e.value[4].value=0),v=e}if(b===r&&0===r.length&&ne(v)&&n(v.value)&&be.has(toLowerCaseAZ(v.value[4].value))){if(m)return!1;m=toLowerCaseAZ(v.value[4].value),p.colorNotation=colorSpaceNameToColorNotation(m),N&&(N.colorNotation!==p.colorNotation&&(N=colorDataTo(N,p.colorNotation)),c=normalizeRelativeColorDataChannels(N),h=noneToZeroInRelativeColorDataChannels(c))}else if(b===r&&0===r.length&&ne(v)&&n(v.value)&&"from"===toLowerCaseAZ(v.value[4].value)){if(N)return!1;if(m)return!1;for(;ee(e.value[o+1])||ae(e.value[o+1]);)o++;if(o++,v=e.value[o],N=a(v),!1===N)return!1;N.syntaxFlags.has(me.Experimental)&&p.syntaxFlags.add(me.Experimental),p.syntaxFlags.add(me.RelativeColorSyntax)}else{if(!ne(v))return!1;if(n(v.value)&&c&&c.has(toLowerCaseAZ(v.value[4].value))){b.push(new oe(c.get(toLowerCaseAZ(v.value[4].value))));continue}b.push(v)}}}if(!m)return!1;if(1!==b.length)return!1;if(1!==r.length||1!==s.length||1!==u.length)return!1;if(!ne(r[0])||!ne(s[0])||!ne(u[0]))return!1;if(c&&!c.has("alpha"))return!1;const v=normalize_Color_ChannelValues(r[0].value,0,p);if(!v||!o(v))return!1;const f=normalize_Color_ChannelValues(s[0].value,1,p);if(!f||!o(f))return!1;const g=normalize_Color_ChannelValues(u[0].value,2,p);if(!g||!o(g))return!1;const y=[v,f,g];if(1===i.length)if(p.syntaxFlags.add(me.HasAlpha),ne(i[0])){const e=normalize_Color_ChannelValues(i[0].value,3,p);if(!e||!o(e))return!1;y.push(e)}else p.alpha=i[0];else if(c&&c.has("alpha")){const e=normalize_Color_ChannelValues(c.get("alpha"),3,p);if(!e||!o(e))return!1;y.push(e)}return p.channels=[y[0][4].value,y[1][4].value,y[2][4].value],4===y.length&&(p.alpha=y[3][4].value),p}function colorSpaceNameToColorNotation(e){switch(e){case"srgb":return he.sRGB;case"srgb-linear":return he.Linear_sRGB;case"display-p3":return he.Display_P3;case"display-p3-linear":return he.Linear_Display_P3;case"a98-rgb":return he.A98_RGB;case"prophoto-rgb":return he.ProPhoto_RGB;case"rec2020":return he.Rec2020;case"xyz":case"xyz-d65":return he.XYZ_D65;case"xyz-d50":return he.XYZ_D50;default:throw new Error("Unknown color space name: "+e)}}const ve=new Set(["srgb","srgb-linear","display-p3","display-p3-linear","a98-rgb","prophoto-rgb","rec2020","lab","oklab","xyz","xyz-d50","xyz-d65"]),fe=new Set(["hsl","hwb","lch","oklch"]),ge=new Set(["shorter","longer","increasing","decreasing"]);function colorMix(e,a){let r=null,o=null,t=null,l=!1;for(let u=0;u<e.value.length;u++){const i=e.value[u];if(!te(i)){if(!(r||ne(i)&&n(i.value)&&"in"===toLowerCaseAZ(i.value[4].value)))return colorMixRectangular("oklab",colorMixComponents(e.value,a));if(ne(i)&&n(i.value)){if(!r&&"in"===toLowerCaseAZ(i.value[4].value)){r=i;continue}if(r&&!o){o=toLowerCaseAZ(i.value[4].value);continue}if(r&&o&&!t&&fe.has(o)){t=toLowerCaseAZ(i.value[4].value);continue}if(r&&o&&t&&!l&&"hue"===toLowerCaseAZ(i.value[4].value)){l=!0;continue}return!1}return!(!ne(i)||!s(i.value))&&(!!o&&(t||l?!!(t&&l&&fe.has(o)&&ge.has(t))&&colorMixPolar(o,t,colorMixComponents(e.value.slice(u+1),a)):ve.has(o)?colorMixRectangular(o,colorMixComponents(e.value.slice(u+1),a)):!!fe.has(o)&&colorMixPolar(o,"shorter",colorMixComponents(e.value.slice(u+1),a))))}}return!1}function colorMixComponents(e,a){const n=[];let o=!1,t=!1;for(let u=0;u<e.length;u++){let i=e[u];if(!te(i)){if(!ne(i)||!s(i.value)){if(!o){const e=a(i);if(e){o=e;continue}}if(!t){if(re(i)&&ie.has(toLowerCaseAZ(i.getName()))){if([[i]]=ce([[i]],{censorIntoStandardRepresentableValues:!0,precision:-1,toCanonicalUnits:!0,rawPercentages:!0}),!i||!ne(i)||!l(i.value))return!1;Number.isNaN(i.value[4].value)&&(i.value[4].value=0)}if(ne(i)&&r(i.value)&&i.value[4].value>=0){t=i.value[4].value;continue}}return!1}if(!o)return!1;n.push({color:o,percentage:t}),o=!1,t=!1}}return!!o&&(n.push({color:o,percentage:t}),n)}function colorMixRectangular(e,a){if(!a||!a.length)return!1;for(const e of a)if(e.percentage&&(e.percentage<0||e.percentage>100))return!1;const{items:n,leftover:r}=normalizeMixPercentages(a,!0),o=1-r/100;let t;switch(e){case"srgb":t=he.RGB;break;case"srgb-linear":t=he.Linear_sRGB;break;case"display-p3":t=he.Display_P3;break;case"display-p3-linear":t=he.Linear_Display_P3;break;case"a98-rgb":t=he.A98_RGB;break;case"prophoto-rgb":t=he.ProPhoto_RGB;break;case"rec2020":t=he.Rec2020;break;case"lab":t=he.Lab;break;case"oklab":t=he.OKLab;break;case"xyz-d50":t=he.XYZ_D50;break;case"xyz":case"xyz-d65":t=he.XYZ_D65;break;default:return!1}if(1===n.length){const e=colorDataTo(n[0].color,t);return e.colorNotation=t,e.syntaxFlags.add(me.ColorMixVariadic),e.syntaxFlags.add(me.ColorMix),"number"!=typeof e.alpha?!1:(e.alpha=e.alpha*o,e)}for(n.reverse();n.length>=2;){const e=n.pop(),a=n.pop();if(!e||!a)return!1;const r=e.percentage+a.percentage,o=r>0?a.percentage/r:.5,l=colorMixRectangularPair(t,e.color,a.color,o);if(!l)return!1;n.push({color:l,percentage:r})}const l=n[0]?.color;return!!l&&("number"==typeof l.alpha&&(l.alpha=l.alpha*o,a.some(e=>e.color.syntaxFlags.has(me.Experimental))&&l.syntaxFlags.add(me.Experimental),2!==a.length&&l.syntaxFlags.add(me.ColorMixVariadic),l))}function colorMixRectangularPair(e,a,n,r){let o=a.alpha;if("number"!=typeof o)return!1;let t=n.alpha;if("number"!=typeof t)return!1;o=Number.isNaN(o)?t:o,t=Number.isNaN(t)?o:t;const l=colorDataTo(a,e).channels,s=colorDataTo(n,e).channels;l[0]=fillInMissingComponent(l[0],s[0]),s[0]=fillInMissingComponent(s[0],l[0]),l[1]=fillInMissingComponent(l[1],s[1]),s[1]=fillInMissingComponent(s[1],l[1]),l[2]=fillInMissingComponent(l[2],s[2]),s[2]=fillInMissingComponent(s[2],l[2]),l[0]=premultiply(l[0],o),l[1]=premultiply(l[1],o),l[2]=premultiply(l[2],o),s[0]=premultiply(s[0],t),s[1]=premultiply(s[1],t),s[2]=premultiply(s[2],t);const u=interpolate(o,t,r);return{colorNotation:e,channels:[un_premultiply(interpolate(l[0],s[0],r),u),un_premultiply(interpolate(l[1],s[1],r),u),un_premultiply(interpolate(l[2],s[2],r),u)],alpha:u,syntaxFlags:new Set([me.ColorMix])}}function colorMixPolar(e,a,n){if(!n||!n.length)return!1;for(const e of n)if(e.percentage&&(e.percentage<0||e.percentage>100))return!1;const{items:r,leftover:o}=normalizeMixPercentages(n,!0),t=1-o/100;let l;switch(e){case"hsl":l=he.HSL;break;case"hwb":l=he.HWB;break;case"lch":l=he.LCH;break;case"oklch":l=he.OKLCH;break;default:return!1}if(1===r.length){const e=colorDataTo(r[0].color,l);return e.colorNotation=l,e.syntaxFlags.add(me.ColorMixVariadic),e.syntaxFlags.add(me.ColorMix),"number"!=typeof e.alpha?!1:(e.alpha=e.alpha*t,e)}for(r.reverse();r.length>=2;){const e=r.pop(),n=r.pop();if(!e||!n)return!1;const o=e.percentage+n.percentage,t=o>0?n.percentage/o:.5,s=colorMixPolarPair(l,a,e.color,n.color,t);if(!s)return!1;r.push({color:s,percentage:o})}const s=r[0]?.color;return!!s&&("number"==typeof s.alpha&&(s.alpha=s.alpha*t,n.some(e=>e.color.syntaxFlags.has(me.Experimental))&&s.syntaxFlags.add(me.Experimental),2!==n.length&&s.syntaxFlags.add(me.ColorMixVariadic),s))}function colorMixPolarPair(e,a,n,r,o){let t=0,l=0,s=0,u=0,i=0,c=0,h=n.alpha;if("number"!=typeof h)return!1;let m=r.alpha;if("number"!=typeof m)return!1;h=Number.isNaN(h)?m:h,m=Number.isNaN(m)?h:m;const N=colorDataTo(n,e).channels,p=colorDataTo(r,e).channels;switch(e){case he.HSL:case he.HWB:t=N[0],l=p[0],s=N[1],u=p[1],i=N[2],c=p[2];break;case he.LCH:case he.OKLCH:s=N[0],u=p[0],i=N[1],c=p[1],t=N[2],l=p[2]}if(s=fillInMissingComponent(s,u),u=fillInMissingComponent(u,s),i=fillInMissingComponent(i,c),c=fillInMissingComponent(c,i),t=fillInMissingComponent(t,l),l=fillInMissingComponent(l,t),Number.isNaN(t)&&Number.isNaN(l));else{Number.isNaN(t)?t=0:Number.isNaN(l)&&(l=0);const e=l-t;switch(a){case"shorter":e>180?t+=360:e<-180&&(l+=360);break;case"longer":-180<e&&e<180&&(e>0?t+=360:l+=360);break;case"increasing":e<0&&(l+=360);break;case"decreasing":e>0&&(t+=360);break;default:throw new Error("Unknown hue interpolation method")}}s=premultiply(s,h),i=premultiply(i,h),u=premultiply(u,m),c=premultiply(c,m);let b=[0,0,0];const v=interpolate(h,m,o);switch(e){case he.HSL:case he.HWB:b=[interpolate(t,l,o),un_premultiply(interpolate(s,u,o),v),un_premultiply(interpolate(i,c,o),v)];break;case he.LCH:case he.OKLCH:b=[un_premultiply(interpolate(s,u,o),v),un_premultiply(interpolate(i,c,o),v),interpolate(t,l,o)]}return{colorNotation:e,channels:b,alpha:v,syntaxFlags:new Set([me.ColorMix])}}function fillInMissingComponent(e,a){return Number.isNaN(e)?a:e}function interpolate(e,a,n){return e*(1-n)+a*n}function premultiply(e,a){return Number.isNaN(a)?e:Number.isNaN(e)?Number.NaN:e*a}function un_premultiply(e,a){return 0===a||Number.isNaN(a)?e:Number.isNaN(e)?Number.NaN:e/a}function normalizeMixPercentages(e,a=!1){let n=0,r=0;for(const a of e)a.percentage&&(n+=a.percentage),!1===a.percentage&&r++;n=Math.min(100,n);for(const a of e)!1===a.percentage&&(a.percentage=(100-n)/r);const o=e.slice();let t=0;for(const e of o)t+=e.percentage;if(t>100||t>0&&a)for(const e of o)e.percentage=e.percentage*(100/t);let l=0;return t<100&&(l=100-t),{items:o,leftover:l}}function hex(e){const a=toLowerCaseAZ(e[4].value);if(a.match(/[^a-f0-9]/))return!1;const n={colorNotation:he.HEX,channels:[0,0,0],alpha:1,syntaxFlags:new Set([me.Hex])},r=a.length;if(3===r){const e=a[0],r=a[1],o=a[2];return n.channels=[parseInt(e+e,16)/255,parseInt(r+r,16)/255,parseInt(o+o,16)/255],n}if(6===r){const e=a[0]+a[1],r=a[2]+a[3],o=a[4]+a[5];return n.channels=[parseInt(e,16)/255,parseInt(r,16)/255,parseInt(o,16)/255],n}if(4===r){const e=a[0],r=a[1],o=a[2],t=a[3];return n.channels=[parseInt(e+e,16)/255,parseInt(r+r,16)/255,parseInt(o+o,16)/255],n.alpha=parseInt(t+t,16)/255,n.syntaxFlags.add(me.HasAlpha),n}if(8===r){const e=a[0]+a[1],r=a[2]+a[3],o=a[4]+a[5],t=a[6]+a[7];return n.channels=[parseInt(e,16)/255,parseInt(r,16)/255,parseInt(o,16)/255],n.alpha=parseInt(t,16)/255,n.syntaxFlags.add(me.HasAlpha),n}return!1}function normalizeHue(n){if(o(n))return Number.isNaN(n[4].value)||Number.isFinite(n[4].value)||(n[4].value=0),n[4].value=n[4].value%360,n[4].value<0&&(n[4].value+=360),n[1]=n[4].value.toString(),n;if(u(n)){let r=n[4].value;switch(toLowerCaseAZ(n[4].unit)){case"deg":break;case"rad":r=180*n[4].value/Math.PI;break;case"grad":r=.9*n[4].value;break;case"turn":r=360*n[4].value;break;default:return!1}return Number.isNaN(n[4].value)||Number.isFinite(n[4].value)||(n[4].value=0),r%=360,r<0&&(r+=360),[e.Number,r.toString(),n[2],n[3],{value:r,type:a.Number}]}return!1}function normalize_legacy_HSL_ChannelValues(n,t,l){if(0===t){const e=normalizeHue(n);return!1!==e&&(u(n)&&l.syntaxFlags.add(me.HasDimensionValues),e)}if(r(n)){3===t?l.syntaxFlags.add(me.HasPercentageAlpha):l.syntaxFlags.add(me.HasPercentageValues);let r=normalize(n[4].value,1,0,100);return 3===t&&(r=normalize(n[4].value,100,0,1)),[e.Number,r.toString(),n[2],n[3],{value:r,type:a.Number}]}if(o(n)){if(3!==t)return!1;let r=normalize(n[4].value,1,0,100);return 3===t&&(r=normalize(n[4].value,1,0,1)),[e.Number,r.toString(),n[2],n[3],{value:r,type:a.Number}]}return!1}function normalize_modern_HSL_ChannelValues(t,l,s){if(n(t)&&"none"===toLowerCaseAZ(t[4].value))return s.syntaxFlags.add(me.HasNoneKeywords),[e.Number,"none",t[2],t[3],{value:Number.NaN,type:a.Number}];if(0===l){const e=normalizeHue(t);return!1!==e&&(u(t)&&s.syntaxFlags.add(me.HasDimensionValues),e)}if(r(t)){3===l?s.syntaxFlags.add(me.HasPercentageAlpha):s.syntaxFlags.add(me.HasPercentageValues);let n=t[4].value;return 3===l?n=normalize(t[4].value,100,0,1):1===l&&(n=normalize(t[4].value,1,0,2147483647)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}if(o(t)){3!==l&&s.syntaxFlags.add(me.HasNumberValues);let n=t[4].value;return 3===l?n=normalize(t[4].value,1,0,1):1===l&&(n=normalize(t[4].value,1,0,2147483647)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}return!1}function threeChannelLegacySyntax(e,a,n,r){const t=[],u=[],i=[],c=[],h={colorNotation:n,channels:[0,0,0],alpha:1,syntaxFlags:new Set(r)};let m=t;for(let a=0;a<e.value.length;a++){let n=e.value[a];if(!ee(n)&&!ae(n)){if(ne(n)&&s(n.value)){if(m===t){m=u;continue}if(m===u){m=i;continue}if(m===i){m=c;continue}if(m===c)return!1}if(re(n)){if(m===c&&"var"===n.getName().toLowerCase()){h.syntaxFlags.add(me.HasVariableAlpha),m.push(n);continue}if(!ie.has(n.getName().toLowerCase()))return!1;const[[e]]=ce([[n]],{censorIntoStandardRepresentableValues:!0,precision:-1,toCanonicalUnits:!0,rawPercentages:!0});if(!e||!ne(e)||!l(e.value))return!1;Number.isNaN(e.value[4].value)&&(e.value[4].value=0),n=e}if(!ne(n))return!1;m.push(n)}}if(1!==m.length)return!1;if(1!==t.length||1!==u.length||1!==i.length)return!1;if(!ne(t[0])||!ne(u[0])||!ne(i[0]))return!1;const N=a(t[0].value,0,h);if(!N||!o(N))return!1;const p=a(u[0].value,1,h);if(!p||!o(p))return!1;const b=a(i[0].value,2,h);if(!b||!o(b))return!1;const v=[N,p,b];if(1===c.length)if(h.syntaxFlags.add(me.HasAlpha),ne(c[0])){const e=a(c[0].value,3,h);if(!e||!o(e))return!1;v.push(e)}else h.alpha=c[0];return h.channels=[v[0][4].value,v[1][4].value,v[2][4].value],4===v.length&&(h.alpha=v[3][4].value),h}function threeChannelSpaceSeparated(e,a,r,s,u){const i=[],c=[],h=[],m=[];let N,p,b=!1;const v={colorNotation:r,channels:[0,0,0],alpha:1,syntaxFlags:new Set(s)};let f=i;for(let a=0;a<e.value.length;a++){let o=e.value[a];if(ee(o)||ae(o))for(;ee(e.value[a+1])||ae(e.value[a+1]);)a++;else if(f===i&&i.length&&(f=c),f===c&&c.length&&(f=h),ne(o)&&t(o.value)&&"/"===o.value[4].value){if(f===m)return!1;f=m}else{if(re(o)){if(f===m&&"var"===o.getName().toLowerCase()){v.syntaxFlags.add(me.HasVariableAlpha),f.push(o);continue}if(!ie.has(o.getName().toLowerCase()))return!1;const[[e]]=ce([[o]],{censorIntoStandardRepresentableValues:!0,globals:p,precision:-1,toCanonicalUnits:!0,rawPercentages:!0});if(!e||!ne(e)||!l(e.value))return!1;Number.isNaN(e.value[4].value)&&(e.value[4].value=0),o=e}if(f===i&&0===i.length&&ne(o)&&n(o.value)&&"from"===o.value[4].value.toLowerCase()){if(b)return!1;for(;ee(e.value[a+1])||ae(e.value[a+1]);)a++;if(a++,o=e.value[a],b=u(o),!1===b)return!1;b.syntaxFlags.has(me.Experimental)&&v.syntaxFlags.add(me.Experimental),v.syntaxFlags.add(me.RelativeColorSyntax),b.colorNotation!==r&&(b=colorDataTo(b,r)),N=normalizeRelativeColorDataChannels(b),p=noneToZeroInRelativeColorDataChannels(N)}else{if(!ne(o))return!1;if(n(o.value)&&N){const e=o.value[4].value.toLowerCase();if(N.has(e)){f.push(new oe(N.get(e)));continue}}f.push(o)}}}if(1!==f.length)return!1;if(1!==i.length||1!==c.length||1!==h.length)return!1;if(!ne(i[0])||!ne(c[0])||!ne(h[0]))return!1;if(N&&!N.has("alpha"))return!1;const g=a(i[0].value,0,v);if(!g||!o(g))return!1;const y=a(c[0].value,1,v);if(!y||!o(y))return!1;const d=a(h[0].value,2,v);if(!d||!o(d))return!1;const C=[g,y,d];if(1===m.length)if(v.syntaxFlags.add(me.HasAlpha),ne(m[0])){const e=a(m[0].value,3,v);if(!e||!o(e))return!1;C.push(e)}else v.alpha=m[0];else if(N&&N.has("alpha")){const e=a(N.get("alpha"),3,v);if(!e||!o(e))return!1;C.push(e)}return v.channels=[C[0][4].value,C[1][4].value,C[2][4].value],4===C.length&&(v.alpha=C[3][4].value),v}function hsl(e,a){if(e.value.some(e=>ne(e)&&s(e.value))){const a=hslCommaSeparated(e);if(!1!==a)return a}{const n=hslSpaceSeparated(e,a);if(!1!==n)return n}return!1}function hslCommaSeparated(e){return threeChannelLegacySyntax(e,normalize_legacy_HSL_ChannelValues,he.HSL,[me.LegacyHSL])}function hslSpaceSeparated(e,a){return threeChannelSpaceSeparated(e,normalize_modern_HSL_ChannelValues,he.HSL,[],a)}function normalize_HWB_ChannelValues(t,l,s){if(n(t)&&"none"===toLowerCaseAZ(t[4].value))return s.syntaxFlags.add(me.HasNoneKeywords),[e.Number,"none",t[2],t[3],{value:Number.NaN,type:a.Number}];if(0===l){const e=normalizeHue(t);return!1!==e&&(u(t)&&s.syntaxFlags.add(me.HasDimensionValues),e)}if(r(t)){3===l?s.syntaxFlags.add(me.HasPercentageAlpha):s.syntaxFlags.add(me.HasPercentageValues);let n=t[4].value;return 3===l&&(n=normalize(t[4].value,100,0,1)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}if(o(t)){3!==l&&s.syntaxFlags.add(me.HasNumberValues);let n=t[4].value;return 3===l&&(n=normalize(t[4].value,1,0,1)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}return!1}function normalize_Lab_ChannelValues(t,l,s){if(n(t)&&"none"===toLowerCaseAZ(t[4].value))return s.syntaxFlags.add(me.HasNoneKeywords),[e.Number,"none",t[2],t[3],{value:Number.NaN,type:a.Number}];if(r(t)){3!==l&&s.syntaxFlags.add(me.HasPercentageValues);let n=normalize(t[4].value,1,0,100);return 1===l||2===l?n=normalize(t[4].value,.8,-2147483647,2147483647):3===l&&(n=normalize(t[4].value,100,0,1)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}if(o(t)){3!==l&&s.syntaxFlags.add(me.HasNumberValues);let n=normalize(t[4].value,1,0,100);return 1===l||2===l?n=normalize(t[4].value,1,-2147483647,2147483647):3===l&&(n=normalize(t[4].value,1,0,1)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}return!1}function lab(e,a){return threeChannelSpaceSeparated(e,normalize_Lab_ChannelValues,he.Lab,[],a)}function normalize_LCH_ChannelValues(t,l,s){if(n(t)&&"none"===toLowerCaseAZ(t[4].value))return s.syntaxFlags.add(me.HasNoneKeywords),[e.Number,"none",t[2],t[3],{value:Number.NaN,type:a.Number}];if(2===l){const e=normalizeHue(t);return!1!==e&&(u(t)&&s.syntaxFlags.add(me.HasDimensionValues),e)}if(r(t)){3!==l&&s.syntaxFlags.add(me.HasPercentageValues);let n=normalize(t[4].value,1,0,100);return 1===l?n=normalize(t[4].value,100/150,0,2147483647):3===l&&(n=normalize(t[4].value,100,0,1)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}if(o(t)){3!==l&&s.syntaxFlags.add(me.HasNumberValues);let n=normalize(t[4].value,1,0,100);return 1===l?n=normalize(t[4].value,1,0,2147483647):3===l&&(n=normalize(t[4].value,1,0,1)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}return!1}function lch(e,a){return threeChannelSpaceSeparated(e,normalize_LCH_ChannelValues,he.LCH,[],a)}const ye=new Map;for(const[e,a]of Object.entries(G))ye.set(e,a);function namedColor(e){const a=ye.get(toLowerCaseAZ(e));return!!a&&{colorNotation:he.RGB,channels:[a[0]/255,a[1]/255,a[2]/255],alpha:1,syntaxFlags:new Set([me.ColorKeyword,me.NamedColor])}}function normalize_OKLab_ChannelValues(t,l,s){if(n(t)&&"none"===toLowerCaseAZ(t[4].value))return s.syntaxFlags.add(me.HasNoneKeywords),[e.Number,"none",t[2],t[3],{value:Number.NaN,type:a.Number}];if(r(t)){3!==l&&s.syntaxFlags.add(me.HasPercentageValues);let n=normalize(t[4].value,100,0,1);return 1===l||2===l?n=normalize(t[4].value,250,-2147483647,2147483647):3===l&&(n=normalize(t[4].value,100,0,1)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}if(o(t)){3!==l&&s.syntaxFlags.add(me.HasNumberValues);let n=normalize(t[4].value,1,0,1);return 1===l||2===l?n=normalize(t[4].value,1,-2147483647,2147483647):3===l&&(n=normalize(t[4].value,1,0,1)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}return!1}function oklab(e,a){return threeChannelSpaceSeparated(e,normalize_OKLab_ChannelValues,he.OKLab,[],a)}function normalize_OKLCH_ChannelValues(t,l,s){if(n(t)&&"none"===toLowerCaseAZ(t[4].value))return s.syntaxFlags.add(me.HasNoneKeywords),[e.Number,"none",t[2],t[3],{value:Number.NaN,type:a.Number}];if(2===l){const e=normalizeHue(t);return!1!==e&&(u(t)&&s.syntaxFlags.add(me.HasDimensionValues),e)}if(r(t)){3!==l&&s.syntaxFlags.add(me.HasPercentageValues);let n=normalize(t[4].value,100,0,1);return 1===l?n=normalize(t[4].value,250,0,2147483647):3===l&&(n=normalize(t[4].value,100,0,1)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}if(o(t)){3!==l&&s.syntaxFlags.add(me.HasNumberValues);let n=normalize(t[4].value,1,0,1);return 1===l?n=normalize(t[4].value,1,0,2147483647):3===l&&(n=normalize(t[4].value,1,0,1)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}return!1}function oklch(e,a){return threeChannelSpaceSeparated(e,normalize_OKLCH_ChannelValues,he.OKLCH,[],a)}function normalize_legacy_sRGB_ChannelValues(n,t,l){if(r(n)){3===t?l.syntaxFlags.add(me.HasPercentageAlpha):l.syntaxFlags.add(me.HasPercentageValues);const r=normalize(n[4].value,100,0,1);return[e.Number,r.toString(),n[2],n[3],{value:r,type:a.Number}]}if(o(n)){3!==t&&l.syntaxFlags.add(me.HasNumberValues);let r=normalize(n[4].value,255,0,1);return 3===t&&(r=normalize(n[4].value,1,0,1)),[e.Number,r.toString(),n[2],n[3],{value:r,type:a.Number}]}return!1}function normalize_modern_sRGB_ChannelValues(t,l,s){if(n(t)&&"none"===t[4].value.toLowerCase())return s.syntaxFlags.add(me.HasNoneKeywords),[e.Number,"none",t[2],t[3],{value:Number.NaN,type:a.Number}];if(r(t)){3!==l&&s.syntaxFlags.add(me.HasPercentageValues);let n=normalize(t[4].value,100,-2147483647,2147483647);return 3===l&&(n=normalize(t[4].value,100,0,1)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}if(o(t)){3!==l&&s.syntaxFlags.add(me.HasNumberValues);let n=normalize(t[4].value,255,-2147483647,2147483647);return 3===l&&(n=normalize(t[4].value,1,0,1)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}return!1}function rgb(e,a){if(e.value.some(e=>ne(e)&&s(e.value))){const a=rgbCommaSeparated(e);if(!1!==a)return(!a.syntaxFlags.has(me.HasNumberValues)||!a.syntaxFlags.has(me.HasPercentageValues))&&a}else{const n=rgbSpaceSeparated(e,a);if(!1!==n)return n}return!1}function rgbCommaSeparated(e){return threeChannelLegacySyntax(e,normalize_legacy_sRGB_ChannelValues,he.RGB,[me.LegacyRGB])}function rgbSpaceSeparated(e,a){return threeChannelSpaceSeparated(e,normalize_modern_sRGB_ChannelValues,he.RGB,[],a)}function XYZ_D50_to_sRGB_Gamut(e){const a=x(e);if(A(a))return X(a);let n=e;return n=N(n),n[0]<1e-6&&(n=[0,0,0]),n[0]>.999999&&(n=[1,0,0]),K(Y(n,oklch_to_lin_srgb,lin_srgb_to_oklch))}function oklch_to_lin_srgb(e){return e=I(e),e=O(e),W(e)}function lin_srgb_to_oklch(e){return e=E(e),e=U(e),$(e)}function contrastColor(e,a){let n=!1;for(let r=0;r<e.value.length;r++){const o=e.value[r];if(!ee(o)&&!ae(o)&&(n||(n=a(o),!n)))return!1}if(!n)return!1;n.channels=convertNaNToZero(n.channels),n.channels=XYZ_D50_to_sRGB_Gamut(colorData_to_XYZ_D50(n).channels),n.colorNotation=he.sRGB;const r={colorNotation:he.RGB,channels:[0,0,0],alpha:1,syntaxFlags:new Set([me.ContrastColor,me.Experimental])},o=j(n.channels,[1,1,1]),t=j(n.channels,[0,0,0]);return r.channels=o>t?[1,1,1]:[0,0,0],r}function alpha(e,a){let r,s,u=!1,i=!1,c=!1;const h={colorNotation:he.sRGB,channels:[0,0,0],alpha:1,syntaxFlags:new Set([])};for(let m=0;m<e.value.length;m++){let N=e.value[m];if(ee(N)||ae(N))for(;ee(e.value[m+1])||ae(e.value[m+1]);)m++;else if(c&&!u&&!i&&ne(N)&&t(N.value)&&"/"===N.value[4].value)u=!0;else{if(re(N)&&ie.has(toLowerCaseAZ(N.getName()))){const[[e]]=ce([[N]],{censorIntoStandardRepresentableValues:!0,globals:s,precision:-1,toCanonicalUnits:!0,rawPercentages:!0});if(!e||!ne(e)||!l(e.value))return!1;Number.isNaN(e.value[4].value)&&(e.value[4].value=0),N=e}if(u||i||!ne(N)||!n(N.value)||"from"!==toLowerCaseAZ(N.value[4].value)){if(!u)return!1;if(i)return!1;if(ne(N)){if(n(N.value)&&"alpha"===toLowerCaseAZ(N.value[4].value)&&r&&r.has("alpha")){h.alpha=r.get("alpha")[4].value,i=!0;continue}const e=normalize_Color_ChannelValues(N.value,3,h);if(!e||!o(e))return!1;h.alpha=e[4].value,i=!0;continue}if(re(N)){const e=le([[N]],e=>{if(ne(e)&&n(e.value)&&"alpha"===toLowerCaseAZ(e.value[4].value)&&r&&r.has("alpha"))return new oe(r.get("alpha"))});h.alpha=e[0][0],i=!0;continue}return!1}if(c)return!1;for(;ee(e.value[m+1])||ae(e.value[m+1]);)m++;if(m++,N=e.value[m],c=a(N),!1===c)return!1;r=normalizeRelativeColorDataChannels(c),s=noneToZeroInRelativeColorDataChannels(r),h.syntaxFlags=new Set(c.syntaxFlags),h.syntaxFlags.add(me.RelativeAlphaSyntax),h.channels=[...c.channels],h.colorNotation=c.colorNotation,h.alpha=c.alpha}}return!!r&&h}function XYZ_D50_to_P3_Gamut(e){const a=_(e);if(A(a))return X(a);let n=e;return n=N(n),n[0]<1e-6&&(n=[0,0,0]),n[0]>.999999&&(n=[1,0,0]),q(Y(n,oklch_to_lin_p3,lin_p3_to_oklch))}function oklch_to_lin_p3(e){return e=I(e),e=O(e),J(e)}function lin_p3_to_oklch(e){return e=Q(e),e=U(e),$(e)}function toPrecision(e,a=7){e=+e,a=+a;const n=(Math.floor(Math.abs(e))+"").length;if(a>n)return+e.toFixed(a-n);{const r=10**(n-a);return Math.round(e/r)*r}}function serializeWithAlpha(n,r,o,t){const l=[e.CloseParen,")",-1,-1,void 0];if("number"==typeof n.alpha){const s=Math.min(1,Math.max(0,toPrecision(Number.isNaN(n.alpha)?0:n.alpha)));return 1===toPrecision(s,4)?new se(r,l,t):new se(r,l,[...t,new ue([o]),new oe([e.Delim,"/",-1,-1,{value:"/"}]),new ue([o]),new oe([e.Number,toPrecision(s,4).toString(),-1,-1,{value:n.alpha,type:a.Integer}])])}return new se(r,l,[...t,new ue([o]),new oe([e.Delim,"/",-1,-1,{value:"/"}]),new ue([o]),n.alpha])}function serializeP3(n,r=!0){n.channels=convertPowerlessComponentsToZeroValuesForDisplay(n.channels,n.colorNotation);let o=n.channels.map(e=>Number.isNaN(e)?0:e);r?o=XYZ_D50_to_P3_Gamut(colorData_to_XYZ_D50(n).channels):n.colorNotation!==he.Display_P3&&(o=_(colorData_to_XYZ_D50(n).channels));const t=r?Math.min(1,Math.max(0,toPrecision(o[0],6))):toPrecision(o[0],6),l=r?Math.min(1,Math.max(0,toPrecision(o[1],6))):toPrecision(o[1],6),s=r?Math.min(1,Math.max(0,toPrecision(o[2],6))):toPrecision(o[2],6),u=[e.Function,"color(",-1,-1,{value:"color"}],i=[e.Whitespace," ",-1,-1,void 0];return serializeWithAlpha(n,u,i,[new oe([e.Ident,"display-p3",-1,-1,{value:"display-p3"}]),new ue([i]),new oe([e.Number,t.toString(),-1,-1,{value:o[0],type:a.Number}]),new ue([i]),new oe([e.Number,l.toString(),-1,-1,{value:o[1],type:a.Number}]),new ue([i]),new oe([e.Number,s.toString(),-1,-1,{value:o[2],type:a.Number}])])}function serializeRGB(n,r=!0){let o;n.channels=convertPowerlessComponentsToZeroValuesForDisplay(n.channels,n.colorNotation),o=r?XYZ_D50_to_sRGB_Gamut(colorData_to_XYZ_D50(n).channels):x(colorData_to_XYZ_D50(n).channels);const t=Math.min(255,Math.max(0,Math.round(255*toPrecision(o[0])))),l=Math.min(255,Math.max(0,Math.round(255*toPrecision(o[1])))),s=Math.min(255,Math.max(0,Math.round(255*toPrecision(o[2])))),u=[e.CloseParen,")",-1,-1,void 0],i=[e.Whitespace," ",-1,-1,void 0],c=[e.Comma,",",-1,-1,void 0],h=[new oe([e.Number,t.toString(),-1,-1,{value:Math.min(255,255*Math.max(0,o[0])),type:a.Integer}]),new oe(c),new ue([i]),new oe([e.Number,l.toString(),-1,-1,{value:Math.min(255,255*Math.max(0,o[1])),type:a.Integer}]),new oe(c),new ue([i]),new oe([e.Number,s.toString(),-1,-1,{value:Math.min(255,255*Math.max(0,o[2])),type:a.Integer}])];if("number"==typeof n.alpha){const r=Math.min(1,Math.max(0,toPrecision(Number.isNaN(n.alpha)?0:n.alpha)));return 1===toPrecision(r,4)?new se([e.Function,"rgb(",-1,-1,{value:"rgb"}],u,h):new se([e.Function,"rgba(",-1,-1,{value:"rgba"}],u,[...h,new oe(c),new ue([i]),new oe([e.Number,toPrecision(r,4).toString(),-1,-1,{value:n.alpha,type:a.Number}])])}return new se([e.Function,"rgba(",-1,-1,{value:"rgba"}],u,[...h,new oe(c),new ue([i]),n.alpha])}function serializeHSL(n,r=!0){let o;n.channels=convertPowerlessComponentsToZeroValuesForDisplay(n.channels,n.colorNotation),o=f(r?V(XYZ_D50_to_sRGB_Gamut(colorData_to_XYZ_D50(n).channels)):colorData_to_XYZ_D50(n).channels),o=o.map(e=>Number.isNaN(e)?0:e);const t=Math.min(360,Math.max(0,Math.round(toPrecision(o[0])))),l=Math.min(100,Math.max(0,Math.round(toPrecision(o[1])))),s=Math.min(100,Math.max(0,Math.round(toPrecision(o[2])))),u=[e.CloseParen,")",-1,-1,void 0],i=[e.Whitespace," ",-1,-1,void 0],c=[e.Comma,",",-1,-1,void 0],h=[new oe([e.Number,t.toString(),-1,-1,{value:o[0],type:a.Integer}]),new oe(c),new ue([i]),new oe([e.Percentage,l.toString()+"%",-1,-1,{value:o[1]}]),new oe(c),new ue([i]),new oe([e.Percentage,s.toString()+"%",-1,-1,{value:o[2]}])];if("number"==typeof n.alpha){const r=Math.min(1,Math.max(0,toPrecision(Number.isNaN(n.alpha)?0:n.alpha)));return 1===toPrecision(r,4)?new se([e.Function,"hsl(",-1,-1,{value:"hsl"}],u,h):new se([e.Function,"hsla(",-1,-1,{value:"hsla"}],u,[...h,new oe(c),new ue([i]),new oe([e.Number,toPrecision(r,4).toString(),-1,-1,{value:n.alpha,type:a.Number}])])}return new se([e.Function,"hsla(",-1,-1,{value:"hsla"}],u,[...h,new oe(c),new ue([i]),n.alpha])}function serializeOKLCH(n){n.channels=convertPowerlessComponentsToZeroValuesForDisplay(n.channels,n.colorNotation);let r=n.channels.map(e=>Number.isNaN(e)?0:e);n.colorNotation!==he.OKLCH&&(r=N(colorData_to_XYZ_D50(n).channels));const o=toPrecision(r[0],6),t=toPrecision(r[1],6),l=toPrecision(r[2],6),s=[e.Function,"oklch(",-1,-1,{value:"oklch"}],u=[e.Whitespace," ",-1,-1,void 0];return serializeWithAlpha(n,s,u,[new oe([e.Number,o.toString(),-1,-1,{value:r[0],type:a.Number}]),new ue([u]),new oe([e.Number,t.toString(),-1,-1,{value:r[1],type:a.Number}]),new ue([u]),new oe([e.Number,l.toString(),-1,-1,{value:r[2],type:a.Number}])])}function color(e){if(re(e)){switch(toLowerCaseAZ(e.getName())){case"rgb":case"rgba":return rgb(e,color);case"hsl":case"hsla":return hsl(e,color);case"hwb":return a=color,threeChannelSpaceSeparated(e,normalize_HWB_ChannelValues,he.HWB,[],a);case"lab":return lab(e,color);case"lch":return lch(e,color);case"oklab":return oklab(e,color);case"oklch":return oklch(e,color);case"color":return color$1(e,color);case"color-mix":return colorMix(e,color);case"contrast-color":return contrastColor(e,color);case"alpha":return alpha(e,color)}}var a;if(ne(e)){if(i(e.value))return hex(e.value);if(n(e.value)){const a=namedColor(e.value[4].value);return!1!==a?a:"transparent"===toLowerCaseAZ(e.value[4].value)&&{colorNotation:he.RGB,channels:[0,0,0],alpha:0,syntaxFlags:new Set([me.ColorKeyword])}}}return!1}export{he as ColorNotation,me as SyntaxFlag,color,colorDataFitsDisplayP3_Gamut,colorDataFitsRGB_Gamut,serializeHSL,serializeOKLCH,serializeP3,serializeRGB};
1
+ import{TokenType as e,NumberType as a,isTokenIdent as n,isTokenPercentage as r,isTokenNumber as o,isTokenDelim as t,isTokenNumeric as l,isTokenComma as s,isTokenDimension as c,isTokenHash as i}from"@csstools/css-tokenizer";import{XYZ_D65_to_XYZ_D65 as u,XYZ_D50_to_XYZ_D65 as h,OKLCH_to_XYZ_D65 as m,LCH_to_XYZ_D65 as N,OKLab_to_XYZ_D65 as p,Lab_to_XYZ_D65 as b,HWB_to_XYZ_D65 as v,HSL_to_XYZ_D65 as f,ProPhoto_RGB_to_XYZ_D65 as g,a98_RGB_to_XYZ_D65 as d,rec_2020_to_XYZ_D65 as y,lin_P3_to_XYZ_D65 as _,P3_to_XYZ_D65 as C,lin_sRGB_to_XYZ_D65 as w,sRGB_to_XYZ_D65 as x,XYZ_D50_to_XYZ_D50 as D,XYZ_D65_to_OKLab as L,XYZ_D65_to_OKLCH as Z,XYZ_D50_to_LCH as H,XYZ_D50_to_Lab as P,XYZ_D65_to_HWB as F,XYZ_D65_to_HSL as M,XYZ_D65_to_a98_RGB as S,XYZ_D50_to_ProPhoto as z,XYZ_D65_to_rec_2020 as k,XYZ_D65_to_lin_P3 as R,XYZ_D65_to_P3 as T,XYZ_D65_to_lin_sRGB as X,XYZ_D65_to_sRGB as B,XYZ_D65_to_XYZ_D50 as A,OKLCH_to_XYZ_D50 as Y,LCH_to_XYZ_D50 as G,OKLab_to_XYZ_D50 as V,Lab_to_XYZ_D50 as I,HWB_to_XYZ_D50 as K,HSL_to_XYZ_D50 as O,ProPhoto_RGB_to_XYZ_D50 as W,a98_RGB_to_XYZ_D50 as E,rec_2020_to_XYZ_D50 as U,lin_P3_to_XYZ_D50 as $,P3_to_XYZ_D50 as j,lin_sRGB_to_XYZ_D50 as q,sRGB_to_XYZ_D50 as J,namedColors as Q,inGamut as ee,clip as ae,gam_sRGB as ne,mapGamutRayTrace as re,OKLCH_to_OKLab as oe,OKLab_to_XYZ as te,XYZ_to_lin_sRGB as le,lin_sRGB_to_XYZ as se,XYZ_to_OKLab as ce,OKLab_to_OKLCH as ie,contrast_ratio_wcag_2_1 as ue,gam_P3 as he,XYZ_to_lin_P3 as me,lin_P3_to_XYZ as Ne}from"@csstools/color-helpers";import{isWhitespaceNode as pe,isCommentNode as be,isTokenNode as ve,isFunctionNode as fe,TokenNode as ge,isWhiteSpaceOrCommentNode as de,replaceComponentValues as ye,FunctionNode as _e,WhitespaceNode as Ce}from"@csstools/css-parser-algorithms";import{mathFunctionNames as we,calcFromComponentValues as xe}from"@csstools/css-calc";var De,Le;function normalize(e,a,n,r){return Math.min(Math.max(e/a,n),r)}function convertNaNToZero(e){return[Number.isNaN(e[0])?0:e[0],Number.isNaN(e[1])?0:e[1],Number.isNaN(e[2])?0:e[2]]}function colorData_to_XYZ_D50(e){switch(e.colorNotation){case De.HEX:case De.RGB:case De.sRGB:return{...e,colorNotation:De.XYZ_D50,channels:J(convertNaNToZero(e.channels))};case De.Linear_sRGB:return{...e,colorNotation:De.XYZ_D50,channels:q(convertNaNToZero(e.channels))};case De.Display_P3:return{...e,colorNotation:De.XYZ_D50,channels:j(convertNaNToZero(e.channels))};case De.Linear_Display_P3:return{...e,colorNotation:De.XYZ_D50,channels:$(convertNaNToZero(e.channels))};case De.Rec2020:return{...e,colorNotation:De.XYZ_D50,channels:U(convertNaNToZero(e.channels))};case De.A98_RGB:return{...e,colorNotation:De.XYZ_D50,channels:E(convertNaNToZero(e.channels))};case De.ProPhoto_RGB:return{...e,colorNotation:De.XYZ_D50,channels:W(convertNaNToZero(e.channels))};case De.HSL:return{...e,colorNotation:De.XYZ_D50,channels:O(convertNaNToZero(e.channels))};case De.HWB:return{...e,colorNotation:De.XYZ_D50,channels:K(convertNaNToZero(e.channels))};case De.Lab:return{...e,colorNotation:De.XYZ_D50,channels:I(convertNaNToZero(e.channels))};case De.OKLab:return{...e,colorNotation:De.XYZ_D50,channels:V(convertNaNToZero(e.channels))};case De.LCH:return{...e,colorNotation:De.XYZ_D50,channels:G(convertNaNToZero(e.channels))};case De.OKLCH:return{...e,colorNotation:De.XYZ_D50,channels:Y(convertNaNToZero(e.channels))};case De.XYZ_D50:return{...e,colorNotation:De.XYZ_D50,channels:D(convertNaNToZero(e.channels))};case De.XYZ_D65:return{...e,colorNotation:De.XYZ_D50,channels:A(convertNaNToZero(e.channels))};default:throw new Error("Unsupported color notation")}}function colorData_to_XYZ_D65(e){switch(e.colorNotation){case De.HEX:case De.RGB:case De.sRGB:return{...e,colorNotation:De.XYZ_D65,channels:x(convertNaNToZero(e.channels))};case De.Linear_sRGB:return{...e,colorNotation:De.XYZ_D65,channels:w(convertNaNToZero(e.channels))};case De.Display_P3:return{...e,colorNotation:De.XYZ_D65,channels:C(convertNaNToZero(e.channels))};case De.Linear_Display_P3:return{...e,colorNotation:De.XYZ_D65,channels:_(convertNaNToZero(e.channels))};case De.Rec2020:return{...e,colorNotation:De.XYZ_D65,channels:y(convertNaNToZero(e.channels))};case De.A98_RGB:return{...e,colorNotation:De.XYZ_D65,channels:d(convertNaNToZero(e.channels))};case De.ProPhoto_RGB:return{...e,colorNotation:De.XYZ_D65,channels:g(convertNaNToZero(e.channels))};case De.HSL:return{...e,colorNotation:De.XYZ_D65,channels:f(convertNaNToZero(e.channels))};case De.HWB:return{...e,colorNotation:De.XYZ_D65,channels:v(convertNaNToZero(e.channels))};case De.Lab:return{...e,colorNotation:De.XYZ_D65,channels:b(convertNaNToZero(e.channels))};case De.OKLab:return{...e,colorNotation:De.XYZ_D65,channels:p(convertNaNToZero(e.channels))};case De.LCH:return{...e,colorNotation:De.XYZ_D65,channels:N(convertNaNToZero(e.channels))};case De.OKLCH:return{...e,colorNotation:De.XYZ_D65,channels:m(convertNaNToZero(e.channels))};case De.XYZ_D50:return{...e,colorNotation:De.XYZ_D65,channels:h(convertNaNToZero(e.channels))};case De.XYZ_D65:return{...e,colorNotation:De.XYZ_D65,channels:u(convertNaNToZero(e.channels))};default:throw new Error("Unsupported color notation")}}!function(e){e.A98_RGB="a98-rgb",e.Display_P3="display-p3",e.Linear_Display_P3="display-p3-linear",e.HEX="hex",e.HSL="hsl",e.HWB="hwb",e.LCH="lch",e.Lab="lab",e.Linear_sRGB="srgb-linear",e.OKLCH="oklch",e.OKLab="oklab",e.ProPhoto_RGB="prophoto-rgb",e.RGB="rgb",e.sRGB="srgb",e.Rec2020="rec2020",e.XYZ_D50="xyz-d50",e.XYZ_D65="xyz-d65"}(De||(De={})),function(e){e.ColorKeyword="color-keyword",e.HasAlpha="has-alpha",e.HasDimensionValues="has-dimension-values",e.HasNoneKeywords="has-none-keywords",e.HasNumberValues="has-number-values",e.HasPercentageAlpha="has-percentage-alpha",e.HasPercentageValues="has-percentage-values",e.HasVariableAlpha="has-variable-alpha",e.Hex="hex",e.LegacyHSL="legacy-hsl",e.LegacyRGB="legacy-rgb",e.NamedColor="named-color",e.RelativeColorSyntax="relative-color-syntax",e.ColorMix="color-mix",e.ColorMixVariadic="color-mix-variadic",e.ContrastColor="contrast-color",e.RelativeAlphaSyntax="relative-alpha-syntax",e.Experimental="experimental"}(Le||(Le={}));const Ze=new Set([De.A98_RGB,De.Display_P3,De.Linear_Display_P3,De.HEX,De.Linear_sRGB,De.ProPhoto_RGB,De.RGB,De.sRGB,De.Rec2020,De.XYZ_D50,De.XYZ_D65]);function colorDataToForInterpolation(e,a){const n=[...e.channels];let r={...e};return r.channels=convertPowerlessComponentsToMissingComponents(r.channels,e.colorNotation),r=convertToDestination(r,a),r.channels=carryForwardMissingComponentsForColorAndNotation(r,e.colorNotation,a,n),r}function colorDataToForRelativeColorSyntax(e,a){if(e.colorNotation===a)return{...e};const n=[...e.channels];let r={...e};return r.channels=convertPowerlessComponentsToMissingComponents(r.channels,e.colorNotation),r=convertToDestination(r,a),r.channels=carryForwardMissingComponentsForColorAndNotation(r,e.colorNotation,a,n),r}function convertToDestination(e,a){if(e.colorNotation===a)return e.channels=convertNaNToZero(e.channels),e.channels=convertPowerlessComponentsToMissingComponents(e.channels,a),e;switch(a){case De.HEX:case De.RGB:{const a=colorData_to_XYZ_D65(e);e.colorNotation=De.RGB,e.channels=B(a.channels),e.channels=e.channels.map(e=>reducePrecisionOrNaN(e,8)),e.channels=normalizeAfterColorConversion(e.channels);break}case De.sRGB:{const a=colorData_to_XYZ_D65(e);e.colorNotation=De.sRGB,e.channels=B(a.channels),e.channels=normalizeAfterColorConversion(e.channels);break}case De.Linear_sRGB:{const a=colorData_to_XYZ_D65(e);e.colorNotation=De.Linear_sRGB,e.channels=X(a.channels),e.channels=normalizeAfterColorConversion(e.channels);break}case De.Display_P3:{const a=colorData_to_XYZ_D65(e);e.colorNotation=De.Display_P3,e.channels=T(a.channels),e.channels=normalizeAfterColorConversion(e.channels);break}case De.Linear_Display_P3:{const a=colorData_to_XYZ_D65(e);e.colorNotation=De.Linear_Display_P3,e.channels=R(a.channels),e.channels=normalizeAfterColorConversion(e.channels);break}case De.Rec2020:{const a=colorData_to_XYZ_D65(e);e.colorNotation=De.Rec2020,e.channels=k(a.channels),e.channels=normalizeAfterColorConversion(e.channels);break}case De.ProPhoto_RGB:{const a=colorData_to_XYZ_D50(e);e.colorNotation=De.ProPhoto_RGB,e.channels=z(a.channels),e.channels=normalizeAfterColorConversion(e.channels);break}case De.A98_RGB:{const a=colorData_to_XYZ_D65(e);e.colorNotation=De.A98_RGB,e.channels=S(a.channels),e.channels=normalizeAfterColorConversion(e.channels);break}case De.HSL:{const n=colorData_to_XYZ_D65(e);e.colorNotation=De.HSL,e.channels=M(n.channels),e.channels=e.channels.map(e=>reducePrecisionOrNaN(e,8)),e.channels=normalizeAfterColorConversion(e.channels,0),e.channels=convertPowerlessComponentsToMissingComponents(e.channels,a);break}case De.HWB:{const n=colorData_to_XYZ_D65(e);e.colorNotation=De.HWB,e.channels=F(n.channels),e.channels=e.channels.map(e=>reducePrecisionOrNaN(e,8)),e.channels=normalizeAfterColorConversion(e.channels,0),e.channels=convertPowerlessComponentsToMissingComponents(e.channels,a);break}case De.Lab:{const a=colorData_to_XYZ_D50(e);e.colorNotation=De.Lab,e.channels=P(a.channels),e.channels=normalizeAfterColorConversion(e.channels);break}case De.LCH:{const n=colorData_to_XYZ_D50(e);e.colorNotation=De.LCH,e.channels=H(n.channels),e.channels=normalizeAfterColorConversion(e.channels,2),e.channels=convertPowerlessComponentsToMissingComponents(e.channels,a);break}case De.OKLCH:{const n=colorData_to_XYZ_D65(e);e.colorNotation=De.OKLCH,e.channels=Z(n.channels),e.channels=normalizeAfterColorConversion(e.channels,2),e.channels=convertPowerlessComponentsToMissingComponents(e.channels,a);break}case De.OKLab:{const a=colorData_to_XYZ_D65(e);e.colorNotation=De.OKLab,e.channels=L(a.channels),e.channels=normalizeAfterColorConversion(e.channels);break}case De.XYZ_D50:{const a=colorData_to_XYZ_D50(e);e.colorNotation=De.XYZ_D50,e.channels=D(a.channels),e.channels=normalizeAfterColorConversion(e.channels);break}case De.XYZ_D65:{const a=colorData_to_XYZ_D65(e);e.colorNotation=De.XYZ_D65,e.channels=u(a.channels),e.channels=normalizeAfterColorConversion(e.channels);break}default:throw new Error("Unsupported color notation")}return e}function carryForwardMissingComponentsForColorAndNotation(e,a,n,r){if(a===n)return carryForwardMissingComponents(r,[0,1,2],[],e.channels,[0,1,2],[]);if(Ze.has(n)&&Ze.has(a))return carryForwardMissingComponents(r,[0,1,2],[],e.channels,[0,1,2],[]);switch(n){case De.HSL:switch(a){case De.HWB:return carryForwardMissingComponents(r,[0],[1,2],e.channels,[0],[1,2]);case De.Lab:case De.OKLab:return carryForwardMissingComponents(r,[0],[1,2],e.channels,[2],[0,1]);case De.LCH:case De.OKLCH:return carryForwardMissingComponents(r,[0,1,2],[],e.channels,[2,1,0],[]);default:return carryForwardMissingComponents(r,[],[],e.channels,[],[])}case De.HWB:switch(a){case De.HSL:return carryForwardMissingComponents(r,[0],[1,2],e.channels,[0],[1,2]);case De.LCH:case De.OKLCH:return carryForwardMissingComponents(r,[2],[0,1],e.channels,[0],[1,2]);default:return carryForwardMissingComponents(r,[],[],e.channels,[],[])}case De.Lab:case De.OKLab:switch(a){case De.HSL:return carryForwardMissingComponents(r,[2],[0,1],e.channels,[0],[1,2]);case De.Lab:case De.OKLab:return carryForwardMissingComponents(r,[0,1,2],[],e.channels,[0,1,2],[]);case De.LCH:case De.OKLCH:return carryForwardMissingComponents(r,[0],[1,2],e.channels,[0],[1,2]);default:return carryForwardMissingComponents(r,[],[],e.channels,[],[])}case De.LCH:case De.OKLCH:switch(a){case De.HSL:return carryForwardMissingComponents(r,[0,1,2],[],e.channels,[2,1,0],[]);case De.HWB:return carryForwardMissingComponents(r,[0],[1,2],e.channels,[2],[0,1]);case De.Lab:case De.OKLab:return carryForwardMissingComponents(r,[0],[1,2],e.channels,[0],[1,2]);case De.LCH:case De.OKLCH:return carryForwardMissingComponents(r,[0,1,2],[],e.channels,[0,1,2],[]);default:return carryForwardMissingComponents(r,[],[],e.channels,[],[])}default:return carryForwardMissingComponents(r,[],[],e.channels,[],[])}}function convertPowerlessComponentsToMissingComponents(e,a){const n=[...e];switch(a){case De.HSL:(Number.isNaN(n[1])?0:n[1])<=.001&&(n[0]=Number.NaN,!Number.isNaN(n[1])&&n[1]>0&&(n[1]=0));break;case De.HWB:Math.max(0,Number.isNaN(n[1])?0:n[1])+Math.max(0,Number.isNaN(n[2])?0:n[2])>=99.999&&(n[0]=Number.NaN,Math.max(0,Number.isNaN(n[1])?0:n[1])+Math.max(0,Number.isNaN(n[2])?0:n[2])<100&&(Number.isNaN(n[1])||Number.isNaN(n[2])?Number.isNaN(n[1])?Number.isNaN(n[2])||(n[2]=100):n[1]=100:n[2]=100-n[1]));break;case De.LCH:(Number.isNaN(n[1])?0:n[1])<=.0015&&(n[2]=Number.NaN,!Number.isNaN(n[1])&&n[1]>0&&(n[1]=0));break;case De.OKLCH:(Number.isNaN(n[1])?0:n[1])<=4e-6&&(n[2]=Number.NaN,!Number.isNaN(n[1])&&n[1]>0&&(n[1]=0))}return n}function convertPowerlessComponentsToZeroValuesForDisplay(e,a){const n=[...e];switch(a){case De.HSL:(Number.isNaN(n[1])?0:n[1])<=.001&&(n[0]=Number.NaN),(reducePrecision(n[2])<=0||reducePrecision(n[2])>=100)&&(n[0]=Number.NaN,n[1]=Number.NaN);break;case De.HWB:Math.max(0,Number.isNaN(n[1])?0:n[1])+Math.max(0,Number.isNaN(n[2])?0:n[2])>=99.999&&(n[0]=Number.NaN);break;case De.Lab:(reducePrecision(n[0])<=0||reducePrecision(n[0])>=100)&&(n[1]=Number.NaN,n[2]=Number.NaN);break;case De.LCH:(Number.isNaN(n[1])?0:n[1])<=.0015&&(n[2]=Number.NaN),(reducePrecision(n[0])<=0||reducePrecision(n[0])>=100)&&(n[1]=Number.NaN,n[2]=Number.NaN);break;case De.OKLab:(reducePrecision(n[0])<=0||reducePrecision(n[0])>=1)&&(n[1]=Number.NaN,n[2]=Number.NaN);break;case De.OKLCH:(Number.isNaN(n[1])?0:n[1])<=4e-6&&(n[2]=Number.NaN),(reducePrecision(n[0])<=0||reducePrecision(n[0])>=1)&&(n[1]=Number.NaN,n[2]=Number.NaN)}return n}function carryForwardMissingComponents(e,a,n,r,o,t){if(a.length<3&&e.every(Number.isNaN))return[Number.NaN,Number.NaN,Number.NaN];const l=[...r];for(let n=0;n<a.length;n++)Number.isNaN(e[a[n]])&&(l[o[n]]=Number.NaN);if(n.length&&n.every(a=>Number.isNaN(e[a])))for(let e=0;e<t.length;e++)l[t[e]]=Number.NaN;return l}function normalizeRelativeColorDataChannels(e){const a=new Map;switch(e.colorNotation){case De.RGB:case De.HEX:a.set("r",dummyNumberToken(255*e.channels[0])),a.set("g",dummyNumberToken(255*e.channels[1])),a.set("b",dummyNumberToken(255*e.channels[2])),"number"==typeof e.alpha&&a.set("alpha",dummyNumberToken(e.alpha));break;case De.HSL:a.set("h",dummyNumberToken(e.channels[0])),a.set("s",dummyNumberToken(e.channels[1])),a.set("l",dummyNumberToken(e.channels[2])),"number"==typeof e.alpha&&a.set("alpha",dummyNumberToken(e.alpha));break;case De.HWB:a.set("h",dummyNumberToken(e.channels[0])),a.set("w",dummyNumberToken(e.channels[1])),a.set("b",dummyNumberToken(e.channels[2])),"number"==typeof e.alpha&&a.set("alpha",dummyNumberToken(e.alpha));break;case De.Lab:case De.OKLab:a.set("l",dummyNumberToken(e.channels[0])),a.set("a",dummyNumberToken(e.channels[1])),a.set("b",dummyNumberToken(e.channels[2])),"number"==typeof e.alpha&&a.set("alpha",dummyNumberToken(e.alpha));break;case De.LCH:case De.OKLCH:a.set("l",dummyNumberToken(e.channels[0])),a.set("c",dummyNumberToken(e.channels[1])),a.set("h",dummyNumberToken(e.channels[2])),"number"==typeof e.alpha&&a.set("alpha",dummyNumberToken(e.alpha));break;case De.sRGB:case De.A98_RGB:case De.Display_P3:case De.Linear_Display_P3:case De.Rec2020:case De.Linear_sRGB:case De.ProPhoto_RGB:a.set("r",dummyNumberToken(e.channels[0])),a.set("g",dummyNumberToken(e.channels[1])),a.set("b",dummyNumberToken(e.channels[2])),"number"==typeof e.alpha&&a.set("alpha",dummyNumberToken(e.alpha));break;case De.XYZ_D50:case De.XYZ_D65:a.set("x",dummyNumberToken(e.channels[0])),a.set("y",dummyNumberToken(e.channels[1])),a.set("z",dummyNumberToken(e.channels[2])),"number"==typeof e.alpha&&a.set("alpha",dummyNumberToken(e.alpha))}return a}function noneToZeroInRelativeColorDataChannels(e){const a=new Map(e);for(const[n,r]of e)Number.isNaN(r[4].value)&&a.set(n,dummyNumberToken(0));return a}function normalizeAfterColorConversion(e,a=-1){return e=convertNaNToZero(e),e=[0===a?e[0]:normalize(e[0],1,-2147483647,2147483647),1===a?e[1]:normalize(e[1],1,-2147483647,2147483647),2===a?e[2]:normalize(e[2],1,-2147483647,2147483647)],Number.isNaN(e[a])||Number.isFinite(e[a])||(e[a]=0),e}function dummyNumberToken(n){return Number.isNaN(n)?[e.Number,"none",-1,-1,{value:Number.NaN,type:a.Number}]:[e.Number,n.toString(),-1,-1,{value:n,type:a.Number}]}function reducePrecisionOrNaN(e,a=7){if(Number.isNaN(e))return e;const n=Math.pow(10,a);return Math.round(e*n)/n}function reducePrecision(e,a=7){if(Number.isNaN(e))return 0;const n=Math.pow(10,a);return Math.round(e*n)/n}function colorDataFitsRGB_Gamut(e){const a={...e,channels:[...e.channels]};a.channels=convertPowerlessComponentsToZeroValuesForDisplay(a.channels,a.colorNotation);return!colorDataToForRelativeColorSyntax(a,De.RGB).channels.find(e=>e<-1e-5||e>1.00001)}function colorDataFitsDisplayP3_Gamut(e){const a={...e,channels:[...e.channels]};a.channels=convertPowerlessComponentsToZeroValuesForDisplay(a.channels,a.colorNotation);return!colorDataToForRelativeColorSyntax(a,De.Display_P3).channels.find(e=>e<-1e-5||e>1.00001)}const He=/[A-Z]/g;function toLowerCaseAZ(e){return e.replace(He,e=>String.fromCharCode(e.charCodeAt(0)+32))}function normalize_Color_ChannelValues(t,l,s){if(n(t)&&"none"===toLowerCaseAZ(t[4].value))return s.syntaxFlags.add(Le.HasNoneKeywords),[e.Number,"none",t[2],t[3],{value:Number.NaN,type:a.Number}];if(r(t)){let n;return 3!==l&&s.syntaxFlags.add(Le.HasPercentageValues),n=3===l?normalize(t[4].value,100,0,1):normalize(t[4].value,100,-2147483647,2147483647),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}if(o(t)){let n;return 3!==l&&s.syntaxFlags.add(Le.HasNumberValues),n=3===l?normalize(t[4].value,1,0,1):normalize(t[4].value,1,-2147483647,2147483647),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}return!1}const Pe=new Set(["srgb","srgb-linear","display-p3","display-p3-linear","a98-rgb","prophoto-rgb","rec2020","xyz","xyz-d50","xyz-d65"]);function color$1(e,a){const r=[],s=[],c=[],i=[];let u,h,m=!1,N=!1;const p={colorNotation:De.sRGB,channels:[0,0,0],alpha:1,syntaxFlags:new Set([])};let b=r;for(let o=0;o<e.value.length;o++){let v=e.value[o];if(pe(v)||be(v))for(;pe(e.value[o+1])||be(e.value[o+1]);)o++;else if(b===r&&r.length&&(b=s),b===s&&s.length&&(b=c),ve(v)&&t(v.value)&&"/"===v.value[4].value){if(b===i)return!1;b=i}else{if(fe(v)){if(b===i&&"var"===toLowerCaseAZ(v.getName())){p.syntaxFlags.add(Le.HasVariableAlpha),b.push(v);continue}if(!we.has(toLowerCaseAZ(v.getName())))return!1;const[[e]]=xe([[v]],{censorIntoStandardRepresentableValues:!0,globals:h,precision:-1,toCanonicalUnits:!0,rawPercentages:!0});if(!e||!ve(e)||!l(e.value))return!1;Number.isNaN(e.value[4].value)&&(e.value[4].value=0),v=e}if(b===r&&0===r.length&&ve(v)&&n(v.value)&&Pe.has(toLowerCaseAZ(v.value[4].value))){if(m)return!1;m=toLowerCaseAZ(v.value[4].value),p.colorNotation=colorSpaceNameToColorNotation(m),N&&(N=colorDataToForRelativeColorSyntax(N,p.colorNotation),u=normalizeRelativeColorDataChannels(N),h=noneToZeroInRelativeColorDataChannels(u))}else if(b===r&&0===r.length&&ve(v)&&n(v.value)&&"from"===toLowerCaseAZ(v.value[4].value)){if(N)return!1;if(m)return!1;for(;pe(e.value[o+1])||be(e.value[o+1]);)o++;if(o++,v=e.value[o],N=a(v),!1===N)return!1;N.syntaxFlags.has(Le.Experimental)&&p.syntaxFlags.add(Le.Experimental),p.syntaxFlags.add(Le.RelativeColorSyntax)}else{if(!ve(v))return!1;if(n(v.value)&&u&&u.has(toLowerCaseAZ(v.value[4].value))){b.push(new ge(u.get(toLowerCaseAZ(v.value[4].value))));continue}b.push(v)}}}if(!m)return!1;if(1!==b.length)return!1;if(1!==r.length||1!==s.length||1!==c.length)return!1;if(!ve(r[0])||!ve(s[0])||!ve(c[0]))return!1;if(u&&!u.has("alpha"))return!1;const v=normalize_Color_ChannelValues(r[0].value,0,p);if(!v||!o(v))return!1;const f=normalize_Color_ChannelValues(s[0].value,1,p);if(!f||!o(f))return!1;const g=normalize_Color_ChannelValues(c[0].value,2,p);if(!g||!o(g))return!1;const d=[v,f,g];if(1===i.length)if(p.syntaxFlags.add(Le.HasAlpha),ve(i[0])){const e=normalize_Color_ChannelValues(i[0].value,3,p);if(!e||!o(e))return!1;d.push(e)}else p.alpha=i[0];else if(u&&u.has("alpha")){const e=normalize_Color_ChannelValues(u.get("alpha"),3,p);if(!e||!o(e))return!1;d.push(e)}return p.channels=[d[0][4].value,d[1][4].value,d[2][4].value],4===d.length&&(p.alpha=d[3][4].value),p}function colorSpaceNameToColorNotation(e){switch(e){case"srgb":return De.sRGB;case"srgb-linear":return De.Linear_sRGB;case"display-p3":return De.Display_P3;case"display-p3-linear":return De.Linear_Display_P3;case"a98-rgb":return De.A98_RGB;case"prophoto-rgb":return De.ProPhoto_RGB;case"rec2020":return De.Rec2020;case"xyz":case"xyz-d65":return De.XYZ_D65;case"xyz-d50":return De.XYZ_D50;default:throw new Error("Unknown color space name: "+e)}}const Fe=new Set(["srgb","srgb-linear","display-p3","display-p3-linear","a98-rgb","prophoto-rgb","rec2020","lab","oklab","xyz","xyz-d50","xyz-d65"]),Me=new Set(["hsl","hwb","lch","oklch"]),Se=new Set(["shorter","longer","increasing","decreasing"]);function colorMix(e,a){let r=null,o=null,t=null,l=!1;for(let c=0;c<e.value.length;c++){const i=e.value[c];if(!de(i)){if(!(r||ve(i)&&n(i.value)&&"in"===toLowerCaseAZ(i.value[4].value)))return colorMixRectangular("oklab",colorMixComponents(e.value,a));if(ve(i)&&n(i.value)){if(!r&&"in"===toLowerCaseAZ(i.value[4].value)){r=i;continue}if(r&&!o){o=toLowerCaseAZ(i.value[4].value);continue}if(r&&o&&!t&&Me.has(o)){t=toLowerCaseAZ(i.value[4].value);continue}if(r&&o&&t&&!l&&"hue"===toLowerCaseAZ(i.value[4].value)){l=!0;continue}return!1}return!(!ve(i)||!s(i.value))&&(!!o&&(t||l?!!(t&&l&&Me.has(o)&&Se.has(t))&&colorMixPolar(o,t,colorMixComponents(e.value.slice(c+1),a)):Fe.has(o)?colorMixRectangular(o,colorMixComponents(e.value.slice(c+1),a)):!!Me.has(o)&&colorMixPolar(o,"shorter",colorMixComponents(e.value.slice(c+1),a))))}}return!1}function colorMixComponents(e,a){const n=[];let o=!1,t=!1;for(let c=0;c<e.length;c++){let i=e[c];if(!de(i)){if(!ve(i)||!s(i.value)){if(!o){const e=a(i);if(e){o=e;continue}}if(!t){if(fe(i)&&we.has(toLowerCaseAZ(i.getName()))){if([[i]]=xe([[i]],{censorIntoStandardRepresentableValues:!0,precision:-1,toCanonicalUnits:!0,rawPercentages:!0}),!i||!ve(i)||!l(i.value))return!1;Number.isNaN(i.value[4].value)&&(i.value[4].value=0)}if(ve(i)&&r(i.value)&&i.value[4].value>=0){t=i.value[4].value;continue}}return!1}if(!o)return!1;n.push({color:o,percentage:t}),o=!1,t=!1}}return!!o&&(n.push({color:o,percentage:t}),n)}function colorMixRectangular(e,a){if(!a||!a.length)return!1;for(const e of a)if(e.percentage&&(e.percentage<0||e.percentage>100))return!1;const{items:n,leftover:r}=normalizeMixPercentages(a,!0),o=1-r/100;let t;switch(e){case"srgb":t=De.RGB;break;case"srgb-linear":t=De.Linear_sRGB;break;case"display-p3":t=De.Display_P3;break;case"display-p3-linear":t=De.Linear_Display_P3;break;case"a98-rgb":t=De.A98_RGB;break;case"prophoto-rgb":t=De.ProPhoto_RGB;break;case"rec2020":t=De.Rec2020;break;case"lab":t=De.Lab;break;case"oklab":t=De.OKLab;break;case"xyz-d50":t=De.XYZ_D50;break;case"xyz":case"xyz-d65":t=De.XYZ_D65;break;default:return!1}if(1===n.length){const e=colorDataToForInterpolation(n[0].color,t);return e.colorNotation=t,e.syntaxFlags.add(Le.ColorMixVariadic),e.syntaxFlags.add(Le.ColorMix),"number"!=typeof e.alpha?!1:(e.alpha=e.alpha*o,e)}for(n.reverse();n.length>=2;){const e=n.pop(),a=n.pop();if(!e||!a)return!1;const r=e.percentage+a.percentage,o=r>0?a.percentage/r:.5,l=colorMixRectangularPair(t,e.color,a.color,o);if(!l)return!1;n.push({color:l,percentage:r})}const l=n[0]?.color;return!!l&&("number"==typeof l.alpha&&(l.alpha=l.alpha*o,a.some(e=>e.color.syntaxFlags.has(Le.Experimental))&&l.syntaxFlags.add(Le.Experimental),2!==a.length&&l.syntaxFlags.add(Le.ColorMixVariadic),l))}function colorMixRectangularPair(e,a,n,r){let o=a.alpha;if("number"!=typeof o)return!1;let t=n.alpha;if("number"!=typeof t)return!1;o=Number.isNaN(o)?t:o,t=Number.isNaN(t)?o:t;const l=colorDataToForInterpolation(a,e).channels,s=colorDataToForInterpolation(n,e).channels;l[0]=fillInMissingComponent(l[0],s[0]),s[0]=fillInMissingComponent(s[0],l[0]),l[1]=fillInMissingComponent(l[1],s[1]),s[1]=fillInMissingComponent(s[1],l[1]),l[2]=fillInMissingComponent(l[2],s[2]),s[2]=fillInMissingComponent(s[2],l[2]),l[0]=premultiply(l[0],o),l[1]=premultiply(l[1],o),l[2]=premultiply(l[2],o),s[0]=premultiply(s[0],t),s[1]=premultiply(s[1],t),s[2]=premultiply(s[2],t);const c=interpolate(o,t,r);return{colorNotation:e,channels:[un_premultiply(interpolate(l[0],s[0],r),c),un_premultiply(interpolate(l[1],s[1],r),c),un_premultiply(interpolate(l[2],s[2],r),c)],alpha:c,syntaxFlags:new Set([Le.ColorMix])}}function colorMixPolar(e,a,n){if(!n||!n.length)return!1;for(const e of n)if(e.percentage&&(e.percentage<0||e.percentage>100))return!1;const{items:r,leftover:o}=normalizeMixPercentages(n,!0),t=1-o/100;let l;switch(e){case"hsl":l=De.HSL;break;case"hwb":l=De.HWB;break;case"lch":l=De.LCH;break;case"oklch":l=De.OKLCH;break;default:return!1}if(1===r.length){const e=colorDataToForInterpolation(r[0].color,l);return e.colorNotation=l,e.syntaxFlags.add(Le.ColorMixVariadic),e.syntaxFlags.add(Le.ColorMix),"number"!=typeof e.alpha?!1:(e.alpha=e.alpha*t,e)}for(r.reverse();r.length>=2;){const e=r.pop(),n=r.pop();if(!e||!n)return!1;const o=e.percentage+n.percentage,t=o>0?n.percentage/o:.5,s=colorMixPolarPair(l,a,e.color,n.color,t);if(!s)return!1;r.push({color:s,percentage:o})}const s=r[0]?.color;return!!s&&("number"==typeof s.alpha&&(s.alpha=s.alpha*t,n.some(e=>e.color.syntaxFlags.has(Le.Experimental))&&s.syntaxFlags.add(Le.Experimental),2!==n.length&&s.syntaxFlags.add(Le.ColorMixVariadic),s))}function colorMixPolarPair(e,a,n,r,o){let t=0,l=0,s=0,c=0,i=0,u=0,h=n.alpha;if("number"!=typeof h)return!1;let m=r.alpha;if("number"!=typeof m)return!1;h=Number.isNaN(h)?m:h,m=Number.isNaN(m)?h:m;const N=colorDataToForInterpolation(n,e).channels,p=colorDataToForInterpolation(r,e).channels;switch(e){case De.HSL:case De.HWB:t=N[0],l=p[0],s=N[1],c=p[1],i=N[2],u=p[2];break;case De.LCH:case De.OKLCH:s=N[0],c=p[0],i=N[1],u=p[1],t=N[2],l=p[2]}if(s=fillInMissingComponent(s,c),c=fillInMissingComponent(c,s),i=fillInMissingComponent(i,u),u=fillInMissingComponent(u,i),t=fillInMissingComponent(t,l),l=fillInMissingComponent(l,t),Number.isNaN(t)&&Number.isNaN(l));else{Number.isNaN(t)?t=0:Number.isNaN(l)&&(l=0);const e=l-t;switch(a){case"shorter":e>180?t+=360:e<-180&&(l+=360);break;case"longer":-180<e&&e<180&&(e>0?t+=360:l+=360);break;case"increasing":e<0&&(l+=360);break;case"decreasing":e>0&&(t+=360);break;default:throw new Error("Unknown hue interpolation method")}}s=premultiply(s,h),i=premultiply(i,h),c=premultiply(c,m),u=premultiply(u,m);let b=[0,0,0];const v=interpolate(h,m,o);switch(e){case De.HSL:case De.HWB:b=[interpolate(t,l,o),un_premultiply(interpolate(s,c,o),v),un_premultiply(interpolate(i,u,o),v)];break;case De.LCH:case De.OKLCH:b=[un_premultiply(interpolate(s,c,o),v),un_premultiply(interpolate(i,u,o),v),interpolate(t,l,o)]}return{colorNotation:e,channels:b,alpha:v,syntaxFlags:new Set([Le.ColorMix])}}function fillInMissingComponent(e,a){return Number.isNaN(e)?a:e}function interpolate(e,a,n){return e*(1-n)+a*n}function premultiply(e,a){return Number.isNaN(a)?e:Number.isNaN(e)?Number.NaN:e*a}function un_premultiply(e,a){return 0===a||Number.isNaN(a)?e:Number.isNaN(e)?Number.NaN:e/a}function normalizeMixPercentages(e,a=!1){let n=0,r=0;for(const a of e)a.percentage&&(n+=a.percentage),!1===a.percentage&&r++;n=Math.min(100,n);for(const a of e)!1===a.percentage&&(a.percentage=(100-n)/r);const o=e.slice();let t=0;for(const e of o)t+=e.percentage;if(t>100||t>0&&a)for(const e of o)e.percentage=e.percentage*(100/t);let l=0;return t<100&&(l=100-t),{items:o,leftover:l}}function hex(e){const a=toLowerCaseAZ(e[4].value);if(a.match(/[^a-f0-9]/))return!1;const n={colorNotation:De.HEX,channels:[0,0,0],alpha:1,syntaxFlags:new Set([Le.Hex])},r=a.length;if(3===r){const e=a[0],r=a[1],o=a[2];return n.channels=[parseInt(e+e,16)/255,parseInt(r+r,16)/255,parseInt(o+o,16)/255],n}if(6===r){const e=a[0]+a[1],r=a[2]+a[3],o=a[4]+a[5];return n.channels=[parseInt(e,16)/255,parseInt(r,16)/255,parseInt(o,16)/255],n}if(4===r){const e=a[0],r=a[1],o=a[2],t=a[3];return n.channels=[parseInt(e+e,16)/255,parseInt(r+r,16)/255,parseInt(o+o,16)/255],n.alpha=parseInt(t+t,16)/255,n.syntaxFlags.add(Le.HasAlpha),n}if(8===r){const e=a[0]+a[1],r=a[2]+a[3],o=a[4]+a[5],t=a[6]+a[7];return n.channels=[parseInt(e,16)/255,parseInt(r,16)/255,parseInt(o,16)/255],n.alpha=parseInt(t,16)/255,n.syntaxFlags.add(Le.HasAlpha),n}return!1}function normalizeHue(n){if(o(n))return Number.isNaN(n[4].value)||Number.isFinite(n[4].value)||(n[4].value=0),n[4].value=n[4].value%360,n[4].value<0&&(n[4].value+=360),n[1]=n[4].value.toString(),n;if(c(n)){let r=n[4].value;switch(toLowerCaseAZ(n[4].unit)){case"deg":break;case"rad":r=180*n[4].value/Math.PI;break;case"grad":r=.9*n[4].value;break;case"turn":r=360*n[4].value;break;default:return!1}return Number.isNaN(n[4].value)||Number.isFinite(n[4].value)||(n[4].value=0),r%=360,r<0&&(r+=360),[e.Number,r.toString(),n[2],n[3],{value:r,type:a.Number}]}return!1}function normalize_legacy_HSL_ChannelValues(n,t,l){if(0===t){const e=normalizeHue(n);return!1!==e&&(c(n)&&l.syntaxFlags.add(Le.HasDimensionValues),e)}if(r(n)){let r;return 3===t?l.syntaxFlags.add(Le.HasPercentageAlpha):l.syntaxFlags.add(Le.HasPercentageValues),r=3===t?normalize(n[4].value,100,0,1):normalize(n[4].value,1,0,100),[e.Number,r.toString(),n[2],n[3],{value:r,type:a.Number}]}if(o(n)){if(3!==t)return!1;let r;return r=normalize(n[4].value,1,0,3===t?1:100),[e.Number,r.toString(),n[2],n[3],{value:r,type:a.Number}]}return!1}function normalize_modern_HSL_ChannelValues(t,l,s){if(n(t)&&"none"===toLowerCaseAZ(t[4].value))return s.syntaxFlags.add(Le.HasNoneKeywords),[e.Number,"none",t[2],t[3],{value:Number.NaN,type:a.Number}];if(0===l){const e=normalizeHue(t);return!1!==e&&(c(t)&&s.syntaxFlags.add(Le.HasDimensionValues),e)}if(r(t)){let n;return 3===l?s.syntaxFlags.add(Le.HasPercentageAlpha):s.syntaxFlags.add(Le.HasPercentageValues),n=3===l?normalize(t[4].value,100,0,1):normalize(t[4].value,1,1===l?0:-2147483647,2147483647),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}if(o(t)){let n;return 3!==l&&s.syntaxFlags.add(Le.HasNumberValues),n=3===l?normalize(t[4].value,1,0,1):normalize(t[4].value,1,1===l?0:-2147483647,2147483647),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}return!1}function threeChannelLegacySyntax(e,a,n,r){const t=[],c=[],i=[],u=[],h={colorNotation:n,channels:[0,0,0],alpha:1,syntaxFlags:new Set(r)};let m=t;for(let a=0;a<e.value.length;a++){let n=e.value[a];if(!pe(n)&&!be(n)){if(ve(n)&&s(n.value)){if(m===t){m=c;continue}if(m===c){m=i;continue}if(m===i){m=u;continue}if(m===u)return!1}if(fe(n)){if(m===u&&"var"===n.getName().toLowerCase()){h.syntaxFlags.add(Le.HasVariableAlpha),m.push(n);continue}if(!we.has(n.getName().toLowerCase()))return!1;const[[e]]=xe([[n]],{censorIntoStandardRepresentableValues:!0,precision:-1,toCanonicalUnits:!0,rawPercentages:!0});if(!e||!ve(e)||!l(e.value))return!1;Number.isNaN(e.value[4].value)&&(e.value[4].value=0),n=e}if(!ve(n))return!1;m.push(n)}}if(1!==m.length)return!1;if(1!==t.length||1!==c.length||1!==i.length)return!1;if(!ve(t[0])||!ve(c[0])||!ve(i[0]))return!1;const N=a(t[0].value,0,h);if(!N||!o(N))return!1;const p=a(c[0].value,1,h);if(!p||!o(p))return!1;const b=a(i[0].value,2,h);if(!b||!o(b))return!1;const v=[N,p,b];if(1===u.length)if(h.syntaxFlags.add(Le.HasAlpha),ve(u[0])){const e=a(u[0].value,3,h);if(!e||!o(e))return!1;v.push(e)}else h.alpha=u[0];return h.channels=[v[0][4].value,v[1][4].value,v[2][4].value],4===v.length&&(h.alpha=v[3][4].value),h}function threeChannelSpaceSeparated(e,a,r,s,c){const i=[],u=[],h=[],m=[];let N,p,b=!1;const v={colorNotation:r,channels:[0,0,0],alpha:1,syntaxFlags:new Set(s)};let f=i;for(let a=0;a<e.value.length;a++){let o=e.value[a];if(pe(o)||be(o))for(;pe(e.value[a+1])||be(e.value[a+1]);)a++;else if(f===i&&i.length&&(f=u),f===u&&u.length&&(f=h),ve(o)&&t(o.value)&&"/"===o.value[4].value){if(f===m)return!1;f=m}else{if(fe(o)){if(f===m&&"var"===o.getName().toLowerCase()){v.syntaxFlags.add(Le.HasVariableAlpha),f.push(o);continue}if(!we.has(o.getName().toLowerCase()))return!1;const[[e]]=xe([[o]],{censorIntoStandardRepresentableValues:!0,globals:p,precision:-1,toCanonicalUnits:!0,rawPercentages:!0});if(!e||!ve(e)||!l(e.value))return!1;Number.isNaN(e.value[4].value)&&(e.value[4].value=0),o=e}if(f===i&&0===i.length&&ve(o)&&n(o.value)&&"from"===o.value[4].value.toLowerCase()){if(b)return!1;for(;pe(e.value[a+1])||be(e.value[a+1]);)a++;if(a++,o=e.value[a],b=c(o),!1===b)return!1;b.syntaxFlags.has(Le.Experimental)&&v.syntaxFlags.add(Le.Experimental),v.syntaxFlags.add(Le.RelativeColorSyntax),b=colorDataToForRelativeColorSyntax(b,r),N=normalizeRelativeColorDataChannels(b),p=noneToZeroInRelativeColorDataChannels(N)}else{if(!ve(o))return!1;if(n(o.value)&&N){const e=o.value[4].value.toLowerCase();if(N.has(e)){f.push(new ge(N.get(e)));continue}}f.push(o)}}}if(1!==f.length)return!1;if(1!==i.length||1!==u.length||1!==h.length)return!1;if(!ve(i[0])||!ve(u[0])||!ve(h[0]))return!1;if(N&&!N.has("alpha"))return!1;const g=a(i[0].value,0,v);if(!g||!o(g))return!1;const d=a(u[0].value,1,v);if(!d||!o(d))return!1;const y=a(h[0].value,2,v);if(!y||!o(y))return!1;const _=[g,d,y];if(1===m.length)if(v.syntaxFlags.add(Le.HasAlpha),ve(m[0])){const e=a(m[0].value,3,v);if(!e||!o(e))return!1;_.push(e)}else v.alpha=m[0];else if(N&&N.has("alpha")){const e=a(N.get("alpha"),3,v);if(!e||!o(e))return!1;_.push(e)}return v.channels=[_[0][4].value,_[1][4].value,_[2][4].value],4===_.length&&(v.alpha=_[3][4].value),v}function hsl(e,a){if(e.value.some(e=>ve(e)&&s(e.value))){const a=hslCommaSeparated(e);if(!1!==a)return a}{const n=hslSpaceSeparated(e,a);if(!1!==n)return n}return!1}function hslCommaSeparated(e){return threeChannelLegacySyntax(e,normalize_legacy_HSL_ChannelValues,De.HSL,[Le.LegacyHSL])}function hslSpaceSeparated(e,a){return threeChannelSpaceSeparated(e,normalize_modern_HSL_ChannelValues,De.HSL,[],a)}function normalize_HWB_ChannelValues(t,l,s){if(n(t)&&"none"===toLowerCaseAZ(t[4].value))return s.syntaxFlags.add(Le.HasNoneKeywords),[e.Number,"none",t[2],t[3],{value:Number.NaN,type:a.Number}];if(0===l){const e=normalizeHue(t);return!1!==e&&(c(t)&&s.syntaxFlags.add(Le.HasDimensionValues),e)}if(r(t)){let n;return 3===l?s.syntaxFlags.add(Le.HasPercentageAlpha):s.syntaxFlags.add(Le.HasPercentageValues),n=3===l?normalize(t[4].value,100,0,1):normalize(t[4].value,1,-2147483647,2147483647),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}if(o(t)){let n;return 3!==l&&s.syntaxFlags.add(Le.HasNumberValues),n=3===l?normalize(t[4].value,1,0,1):normalize(t[4].value,1,-2147483647,2147483647),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}return!1}function normalize_Lab_ChannelValues(t,l,s){if(n(t)&&"none"===toLowerCaseAZ(t[4].value))return s.syntaxFlags.add(Le.HasNoneKeywords),[e.Number,"none",t[2],t[3],{value:Number.NaN,type:a.Number}];if(r(t)){let n;return 3!==l&&s.syntaxFlags.add(Le.HasPercentageValues),n=1===l||2===l?normalize(t[4].value,.8,-2147483647,2147483647):3===l?normalize(t[4].value,100,0,1):normalize(t[4].value,1,0,100),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}if(o(t)){let n;return 3!==l&&s.syntaxFlags.add(Le.HasNumberValues),n=1===l||2===l?normalize(t[4].value,1,-2147483647,2147483647):normalize(t[4].value,1,0,3===l?1:100),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}return!1}function lab(e,a){return threeChannelSpaceSeparated(e,normalize_Lab_ChannelValues,De.Lab,[],a)}function normalize_LCH_ChannelValues(t,l,s){if(n(t)&&"none"===toLowerCaseAZ(t[4].value))return s.syntaxFlags.add(Le.HasNoneKeywords),[e.Number,"none",t[2],t[3],{value:Number.NaN,type:a.Number}];if(2===l){const e=normalizeHue(t);return!1!==e&&(c(t)&&s.syntaxFlags.add(Le.HasDimensionValues),e)}if(r(t)){let n;return 3!==l&&s.syntaxFlags.add(Le.HasPercentageValues),n=1===l?normalize(t[4].value,100/150,0,2147483647):3===l?normalize(t[4].value,100,0,1):normalize(t[4].value,1,0,100),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}if(o(t)){let n;return 3!==l&&s.syntaxFlags.add(Le.HasNumberValues),n=normalize(t[4].value,1,0,1===l?2147483647:3===l?1:100),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}return!1}function lch(e,a){return threeChannelSpaceSeparated(e,normalize_LCH_ChannelValues,De.LCH,[],a)}const ze=new Map;for(const[e,a]of Object.entries(Q))ze.set(e,a);function namedColor(e){const a=ze.get(toLowerCaseAZ(e));return!!a&&{colorNotation:De.RGB,channels:[a[0]/255,a[1]/255,a[2]/255],alpha:1,syntaxFlags:new Set([Le.ColorKeyword,Le.NamedColor])}}function normalize_OKLab_ChannelValues(t,l,s){if(n(t)&&"none"===toLowerCaseAZ(t[4].value))return s.syntaxFlags.add(Le.HasNoneKeywords),[e.Number,"none",t[2],t[3],{value:Number.NaN,type:a.Number}];if(r(t)){let n;return 3!==l&&s.syntaxFlags.add(Le.HasPercentageValues),n=1===l||2===l?normalize(t[4].value,250,-2147483647,2147483647):normalize(t[4].value,100,0,1),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}if(o(t)){let n;return 3!==l&&s.syntaxFlags.add(Le.HasNumberValues),n=1===l||2===l?normalize(t[4].value,1,-2147483647,2147483647):normalize(t[4].value,1,0,1),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}return!1}function oklab(e,a){return threeChannelSpaceSeparated(e,normalize_OKLab_ChannelValues,De.OKLab,[],a)}function normalize_OKLCH_ChannelValues(t,l,s){if(n(t)&&"none"===toLowerCaseAZ(t[4].value))return s.syntaxFlags.add(Le.HasNoneKeywords),[e.Number,"none",t[2],t[3],{value:Number.NaN,type:a.Number}];if(2===l){const e=normalizeHue(t);return!1!==e&&(c(t)&&s.syntaxFlags.add(Le.HasDimensionValues),e)}if(r(t)){let n;return 3!==l&&s.syntaxFlags.add(Le.HasPercentageValues),n=1===l?normalize(t[4].value,250,0,2147483647):normalize(t[4].value,100,0,1),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}if(o(t)){let n;return 3!==l&&s.syntaxFlags.add(Le.HasNumberValues),n=normalize(t[4].value,1,0,1===l?2147483647:1),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}return!1}function oklch(e,a){return threeChannelSpaceSeparated(e,normalize_OKLCH_ChannelValues,De.OKLCH,[],a)}function normalize_legacy_sRGB_ChannelValues(n,t,l){if(r(n)){3===t?l.syntaxFlags.add(Le.HasPercentageAlpha):l.syntaxFlags.add(Le.HasPercentageValues);const r=normalize(n[4].value,100,0,1);return[e.Number,r.toString(),n[2],n[3],{value:r,type:a.Number}]}if(o(n)){let r;return 3!==t&&l.syntaxFlags.add(Le.HasNumberValues),r=normalize(n[4].value,3===t?1:255,0,1),[e.Number,r.toString(),n[2],n[3],{value:r,type:a.Number}]}return!1}function normalize_modern_sRGB_ChannelValues(t,l,s){if(n(t)&&"none"===t[4].value.toLowerCase())return s.syntaxFlags.add(Le.HasNoneKeywords),[e.Number,"none",t[2],t[3],{value:Number.NaN,type:a.Number}];if(r(t)){let n;return 3!==l&&s.syntaxFlags.add(Le.HasPercentageValues),n=3===l?normalize(t[4].value,100,0,1):normalize(t[4].value,100,-2147483647,2147483647),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}if(o(t)){let n;return 3!==l&&s.syntaxFlags.add(Le.HasNumberValues),n=3===l?normalize(t[4].value,1,0,1):normalize(t[4].value,255,-2147483647,2147483647),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}return!1}function rgb(e,a){if(e.value.some(e=>ve(e)&&s(e.value))){const a=rgbCommaSeparated(e);if(!1!==a)return(!a.syntaxFlags.has(Le.HasNumberValues)||!a.syntaxFlags.has(Le.HasPercentageValues))&&a}else{const n=rgbSpaceSeparated(e,a);if(!1!==n)return n}return!1}function rgbCommaSeparated(e){return threeChannelLegacySyntax(e,normalize_legacy_sRGB_ChannelValues,De.RGB,[Le.LegacyRGB])}function rgbSpaceSeparated(e,a){return threeChannelSpaceSeparated(e,normalize_modern_sRGB_ChannelValues,De.RGB,[],a)}function XYZ_D65_to_sRGB_Gamut(e){const a=B(e);if(ee(a))return ae(a);let n=e;return n=Z(n),n[0]<1e-6&&(n=[0,0,0]),n[0]>.999999&&(n=[1,0,0]),ne(re(n,oklch_to_lin_srgb,lin_srgb_to_oklch))}function oklch_to_lin_srgb(e){return e=oe(e),e=te(e),le(e)}function lin_srgb_to_oklch(e){return e=se(e),e=ce(e),ie(e)}function contrastColor(e,a){let n=!1;for(let r=0;r<e.value.length;r++){const o=e.value[r];if(!pe(o)&&!be(o)&&(n||(n=a(o),!n)))return!1}if(!n)return!1;n.channels=convertNaNToZero(n.channels),n.channels=XYZ_D65_to_sRGB_Gamut(colorData_to_XYZ_D65(n).channels),n.colorNotation=De.sRGB;const r={colorNotation:De.RGB,channels:[0,0,0],alpha:1,syntaxFlags:new Set([Le.ContrastColor,Le.Experimental])},o=ue(n.channels,[1,1,1]),t=ue(n.channels,[0,0,0]);return r.channels=o>t?[1,1,1]:[0,0,0],r}function alpha(e,a){let r,s,c=!1,i=!1,u=!1;const h={colorNotation:De.sRGB,channels:[0,0,0],alpha:1,syntaxFlags:new Set([])};for(let m=0;m<e.value.length;m++){let N=e.value[m];if(pe(N)||be(N))for(;pe(e.value[m+1])||be(e.value[m+1]);)m++;else if(u&&!c&&!i&&ve(N)&&t(N.value)&&"/"===N.value[4].value)c=!0;else{if(fe(N)&&we.has(toLowerCaseAZ(N.getName()))){const[[e]]=xe([[N]],{censorIntoStandardRepresentableValues:!0,globals:s,precision:-1,toCanonicalUnits:!0,rawPercentages:!0});if(!e||!ve(e)||!l(e.value))return!1;Number.isNaN(e.value[4].value)&&(e.value[4].value=0),N=e}if(c||i||!ve(N)||!n(N.value)||"from"!==toLowerCaseAZ(N.value[4].value)){if(!c)return!1;if(i)return!1;if(ve(N)){if(n(N.value)&&"alpha"===toLowerCaseAZ(N.value[4].value)&&r&&r.has("alpha")){h.alpha=r.get("alpha")[4].value,i=!0;continue}const e=normalize_Color_ChannelValues(N.value,3,h);if(!e||!o(e))return!1;h.alpha=e[4].value,i=!0;continue}if(fe(N)){const e=ye([[N]],e=>{if(ve(e)&&n(e.value)&&"alpha"===toLowerCaseAZ(e.value[4].value)&&r&&r.has("alpha"))return new ge(r.get("alpha"))});h.alpha=e[0][0],i=!0;continue}return!1}if(u)return!1;for(;pe(e.value[m+1])||be(e.value[m+1]);)m++;if(m++,N=e.value[m],u=a(N),!1===u)return!1;r=normalizeRelativeColorDataChannels(u),s=noneToZeroInRelativeColorDataChannels(r),h.syntaxFlags=new Set(u.syntaxFlags),h.syntaxFlags.add(Le.RelativeAlphaSyntax),h.channels=[...u.channels],h.colorNotation=u.colorNotation,h.alpha=u.alpha}}return!!r&&h}function XYZ_D65_to_P3_Gamut(e){const a=T(e);if(ee(a))return ae(a);let n=e;return n=Z(n),n[0]<1e-6&&(n=[0,0,0]),n[0]>.999999&&(n=[1,0,0]),he(re(n,oklch_to_lin_p3,lin_p3_to_oklch))}function oklch_to_lin_p3(e){return e=oe(e),e=te(e),me(e)}function lin_p3_to_oklch(e){return e=Ne(e),e=ce(e),ie(e)}function toPrecision(e,a=7){e=+e,a=+a;const n=(Math.floor(Math.abs(e))+"").length;if(a>n)return+e.toFixed(a-n);{const r=10**(n-a);return Math.round(e/r)*r}}function serializeWithAlpha(n,r,o,t){const l=[e.CloseParen,")",-1,-1,void 0];if("number"==typeof n.alpha){const s=Math.min(1,Math.max(0,toPrecision(Number.isNaN(n.alpha)?0:n.alpha)));return 1===toPrecision(s,4)?new _e(r,l,t):new _e(r,l,[...t,new Ce([o]),new ge([e.Delim,"/",-1,-1,{value:"/"}]),new Ce([o]),new ge([e.Number,toPrecision(s,4).toString(),-1,-1,{value:n.alpha,type:a.Integer}])])}return new _e(r,l,[...t,new Ce([o]),new ge([e.Delim,"/",-1,-1,{value:"/"}]),new Ce([o]),n.alpha])}function serializeP3(n,r=!0){n.channels=convertPowerlessComponentsToZeroValuesForDisplay(n.channels,n.colorNotation);let o=n.channels.map(e=>Number.isNaN(e)?0:e);r?o=XYZ_D65_to_P3_Gamut(colorData_to_XYZ_D65(n).channels):n.colorNotation!==De.Display_P3&&(o=T(colorData_to_XYZ_D65(n).channels));const t=r?Math.min(1,Math.max(0,toPrecision(o[0],6))):toPrecision(o[0],6),l=r?Math.min(1,Math.max(0,toPrecision(o[1],6))):toPrecision(o[1],6),s=r?Math.min(1,Math.max(0,toPrecision(o[2],6))):toPrecision(o[2],6),c=[e.Function,"color(",-1,-1,{value:"color"}],i=[e.Whitespace," ",-1,-1,void 0];return serializeWithAlpha(n,c,i,[new ge([e.Ident,"display-p3",-1,-1,{value:"display-p3"}]),new Ce([i]),new ge([e.Number,t.toString(),-1,-1,{value:o[0],type:a.Number}]),new Ce([i]),new ge([e.Number,l.toString(),-1,-1,{value:o[1],type:a.Number}]),new Ce([i]),new ge([e.Number,s.toString(),-1,-1,{value:o[2],type:a.Number}])])}function serializeRGB(n,r=!0){let o;n.channels=convertPowerlessComponentsToZeroValuesForDisplay(n.channels,n.colorNotation),o=r?XYZ_D65_to_sRGB_Gamut(colorData_to_XYZ_D65(n).channels):B(colorData_to_XYZ_D65(n).channels);const t=Math.min(255,Math.max(0,Math.round(255*toPrecision(o[0])))),l=Math.min(255,Math.max(0,Math.round(255*toPrecision(o[1])))),s=Math.min(255,Math.max(0,Math.round(255*toPrecision(o[2])))),c=[e.CloseParen,")",-1,-1,void 0],i=[e.Whitespace," ",-1,-1,void 0],u=[e.Comma,",",-1,-1,void 0],h=[new ge([e.Number,t.toString(),-1,-1,{value:Math.min(255,255*Math.max(0,o[0])),type:a.Integer}]),new ge(u),new Ce([i]),new ge([e.Number,l.toString(),-1,-1,{value:Math.min(255,255*Math.max(0,o[1])),type:a.Integer}]),new ge(u),new Ce([i]),new ge([e.Number,s.toString(),-1,-1,{value:Math.min(255,255*Math.max(0,o[2])),type:a.Integer}])];if("number"==typeof n.alpha){const r=Math.min(1,Math.max(0,toPrecision(Number.isNaN(n.alpha)?0:n.alpha)));return 1===toPrecision(r,4)?new _e([e.Function,"rgb(",-1,-1,{value:"rgb"}],c,h):new _e([e.Function,"rgba(",-1,-1,{value:"rgba"}],c,[...h,new ge(u),new Ce([i]),new ge([e.Number,toPrecision(r,4).toString(),-1,-1,{value:n.alpha,type:a.Number}])])}return new _e([e.Function,"rgba(",-1,-1,{value:"rgba"}],c,[...h,new ge(u),new Ce([i]),n.alpha])}function serializeHSL(n,r=!0){let o;n.channels=convertPowerlessComponentsToZeroValuesForDisplay(n.channels,n.colorNotation),o=M(r?x(XYZ_D65_to_sRGB_Gamut(colorData_to_XYZ_D65(n).channels)):colorData_to_XYZ_D65(n).channels),o=o.map(e=>Number.isNaN(e)?0:e);const t=Math.min(360,Math.max(0,Math.round(toPrecision(o[0]))))%360,l=Math.min(100,Math.max(0,Math.round(toPrecision(o[1])))),s=Math.min(100,Math.max(0,Math.round(toPrecision(o[2])))),c=[e.CloseParen,")",-1,-1,void 0],i=[e.Whitespace," ",-1,-1,void 0],u=[e.Comma,",",-1,-1,void 0],h=[new ge([e.Number,t.toString(),-1,-1,{value:o[0],type:a.Integer}]),new ge(u),new Ce([i]),new ge([e.Percentage,l.toString()+"%",-1,-1,{value:o[1]}]),new ge(u),new Ce([i]),new ge([e.Percentage,s.toString()+"%",-1,-1,{value:o[2]}])];if("number"==typeof n.alpha){const r=Math.min(1,Math.max(0,toPrecision(Number.isNaN(n.alpha)?0:n.alpha)));return 1===toPrecision(r,4)?new _e([e.Function,"hsl(",-1,-1,{value:"hsl"}],c,h):new _e([e.Function,"hsla(",-1,-1,{value:"hsla"}],c,[...h,new ge(u),new Ce([i]),new ge([e.Number,toPrecision(r,4).toString(),-1,-1,{value:n.alpha,type:a.Number}])])}return new _e([e.Function,"hsla(",-1,-1,{value:"hsla"}],c,[...h,new ge(u),new Ce([i]),n.alpha])}function serializeOKLCH(n){n.channels=convertPowerlessComponentsToZeroValuesForDisplay(n.channels,n.colorNotation);let r=n.channels.map(e=>Number.isNaN(e)?0:e);n.colorNotation!==De.OKLCH&&(r=Z(colorData_to_XYZ_D65(n).channels));const o=toPrecision(r[0],6),t=toPrecision(r[1],6),l=toPrecision(r[2],6),s=[e.Function,"oklch(",-1,-1,{value:"oklch"}],c=[e.Whitespace," ",-1,-1,void 0];return serializeWithAlpha(n,s,c,[new ge([e.Number,o.toString(),-1,-1,{value:r[0],type:a.Number}]),new Ce([c]),new ge([e.Number,t.toString(),-1,-1,{value:r[1],type:a.Number}]),new Ce([c]),new ge([e.Number,l.toString(),-1,-1,{value:r[2],type:a.Number}])])}function color(e){if(fe(e)){switch(toLowerCaseAZ(e.getName())){case"rgb":case"rgba":return rgb(e,color);case"hsl":case"hsla":return hsl(e,color);case"hwb":return a=color,threeChannelSpaceSeparated(e,normalize_HWB_ChannelValues,De.HWB,[],a);case"lab":return lab(e,color);case"lch":return lch(e,color);case"oklab":return oklab(e,color);case"oklch":return oklch(e,color);case"color":return color$1(e,color);case"color-mix":return colorMix(e,color);case"contrast-color":return contrastColor(e,color);case"alpha":return alpha(e,color)}}var a;if(ve(e)){if(i(e.value))return hex(e.value);if(n(e.value)){const a=namedColor(e.value[4].value);return!1!==a?a:"transparent"===toLowerCaseAZ(e.value[4].value)&&{colorNotation:De.RGB,channels:[0,0,0],alpha:0,syntaxFlags:new Set([Le.ColorKeyword])}}}return!1}export{De as ColorNotation,Le as SyntaxFlag,color,colorDataFitsDisplayP3_Gamut,colorDataFitsRGB_Gamut,serializeHSL,serializeOKLCH,serializeP3,serializeRGB};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@csstools/css-color-parser",
3
3
  "description": "Parse CSS color values",
4
- "version": "4.1.8",
4
+ "version": "4.1.10",
5
5
  "contributors": [
6
6
  {
7
7
  "name": "Antonio Laguna",
@@ -41,8 +41,8 @@
41
41
  "dist"
42
42
  ],
43
43
  "dependencies": {
44
- "@csstools/color-helpers": "^6.0.2",
45
- "@csstools/css-calc": "^3.2.1"
44
+ "@csstools/color-helpers": "^6.1.0",
45
+ "@csstools/css-calc": "^3.3.0"
46
46
  },
47
47
  "peerDependencies": {
48
48
  "@csstools/css-parser-algorithms": "^4.0.0",