@iconsets/svg-morpheus-ts
Version:
ESM TypeScript library enabling SVG icons to morph from one to the other. It implements Material Design's Delightful Details transitions. Refactored with modern TypeScript + Vite + pnpm stack. Supports both Chinese and English documentation.
7 lines • 94.9 kB
JavaScript
/*!
* SVG Morpheus TypeScript
* Version: v1.4.14
* Build Date: 2026-04-13T07:32:54.168Z
* Repository: https://github.com/caixw/SVG-Morpheus-ts
*/
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});var e=Math.asin(1),t=Math.PI*2,n={"circ-in":e=>-1*(Math.sqrt(1-e*e)-1),"circ-out":e=>Math.sqrt(1- --e*e),"circ-in-out":e=>(e/=.5)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1),"cubic-in":e=>e*e*e,"cubic-out":e=>--e*e*e+1,"cubic-in-out":e=>e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1,"elastic-in":n=>{if(n===0)return 0;if(n===1)return 1;let r=.3,i=r/t*e;return-(2**(10*--n)*Math.sin((n-i)*t/r))},"elastic-out":n=>{if(n===0)return 0;if(n===1)return 1;let r=.3,i=r/t*e;return 2**(-10*n)*Math.sin((n-i)*t/r)+1},"elastic-in-out":n=>{if(n===0)return 0;if((n/=.5)==2)return 1;let r=.45,i=r/t*e;return n<1?-.5*(2**(10*--n)*Math.sin((n-i)*t/r)):2**(-10*--n)*Math.sin((n-i)*t/r)*.5+1},"expo-in":e=>e===0?0:2**(10*(e-1)),"expo-out":e=>e===1?1:1-2**(-10*e),"expo-in-out":e=>e===0?0:e===1?1:(e/=.5)<1?.5*2**(10*(e-1)):.5*(-(2**(-10*--e))+2),linear:e=>e,"quad-in":e=>e*e,"quad-out":e=>e*(2-e),"quad-in-out":e=>e<.5?2*e*e:-1+(4-2*e)*e,"quart-in":e=>e*e*e*e,"quart-out":e=>1- --e*e*e*e,"quart-in-out":e=>e<.5?8*e*e*e*e:1-8*--e*e*e*e,"quint-in":e=>e*e*e*e*e,"quint-out":e=>1+--e*e*e*e*e,"quint-in-out":e=>e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e,"sine-in":e=>1-Math.cos(Math.PI/2*e),"sine-out":e=>Math.sin(Math.PI/2*e),"sine-in-out":e=>.5*(1-Math.cos(Math.PI*e))};function r(e,t){let n=e.length,r,i,a=!1,o=!1;Array.isArray(e[0])?r=e:(r=[e],n=r.length,a=!0),Array.isArray(t[0])?i=t:(i=t.length>0?t.map(e=>[e]):[[]],o=!0);let s=i[0].length,c=i[0].map((e,t)=>i.map(e=>e[t])),l=r.map(e=>c.map(t=>{let n=0;if(!Array.isArray(e)){for(let r of t)n+=e*r;return n}for(let r=0;r<e.length;r++)n+=e[r]*(t[r]||0);return n}));return n===1&&a&&(l=l[0]),s===1&&o?n===1&&a?l[0]:l.map(e=>e[0]):l}function i(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function a(e,t,n=[0,0,0]){let r=i(e,t[0]),a=i(e,t[1]),o=i(e,t[2]);return n[0]=r,n[1]=a,n[2]=o,n}function o(e){return s(e)===`string`}function s(e){return(Object.prototype.toString.call(e).match(/^\[object\s+(.*?)\]$/)[1]||``).toLowerCase()}function c(e,{precision:t=16,unit:n}){return l(e)?`none`:(e=+d(e,t),e+(n??``))}function l(e){return e===null}function u(e){return l(e)?0:e}function d(e,t){if(e===0)return 0;let n=~~e,r=0;n&&t&&(r=~~Math.log10(Math.abs(n))+1);let i=10**(t-r);return Math.floor(e*i+.5)/i}function f(e,t,n){return isNaN(e)?t:isNaN(t)?e:e+(t-e)*n}function p(e,t,n){return(n-e)/(t-e)}function m(e,t,n){return!e||!t||e===t||e[0]===t[0]&&e[1]===t[1]||isNaN(n)||n===null?n:f(t[0],t[1],p(e[0],e[1],n))}function h(e,t,n){return Math.max(Math.min(n,t),e)}function g(e,t){return Math.sign(e)===Math.sign(t)?e:-e}function _(e,t){return g(Math.abs(e)**t,e)}function v(e,t){return t===0?0:e/t}function y(e,t,n=0,r=e.length){for(;n<r;){let i=n+r>>1;e[i]<t?n=i+1:r=i}return n}function b(e,t){if(e instanceof t)return!0;let n=t.name;for(;e;){let t=Object.getPrototypeOf(e),r=t?.constructor?.name;if(r===n)return!0;if(!r||r===`Object`)return!1;e=t}return!1}var x=Object.freeze({__proto__:null,bisectLeft:y,clamp:h,copySign:g,interpolate:f,interpolateInv:p,isInstance:b,isNone:l,isString:o,mapRange:m,multiplyMatrices:r,multiply_v3_m3x3:a,serializeNumber:c,skipNone:u,spow:_,toPrecision:d,type:s,zdiv:v}),S=new class{add(e,t,n){if(typeof arguments[0]!=`string`){for(var e in arguments[0])this.add(e,arguments[0][e],arguments[1]);return}(Array.isArray(e)?e:[e]).forEach(function(e){this[e]=this[e]||[],t&&this[e][n?`unshift`:`push`](t)},this)}run(e,t){this[e]=this[e]||[],this[e].forEach(function(e){e.call(t&&t.context?t.context:t,t)})}},C={gamut_mapping:`css`,precision:5,deltaE:`76`,verbose:globalThis?.process?.env?.NODE_ENV?.toLowerCase()!==`test`,warn:function(e){this.verbose&&globalThis?.console?.warn?.(e)}},w=class{type;coordMeta;coordRange;range;constructor(e,t){if(typeof e==`object`&&(this.coordMeta=e),t&&(this.coordMeta=t,this.coordRange=t.range??t.refRange),typeof e==`string`){let t=e.trim().match(/^(?<type><[a-z]+>)(\[(?<min>-?[.\d]+),\s*(?<max>-?[.\d]+)\])?$/);if(!t)throw TypeError(`Cannot parse ${e} as a type definition.`);this.type=t.groups.type;let{min:n,max:r}=t.groups;(n||r)&&(this.range=[+n,+r])}}get computedRange(){return this.range?this.range:this.type===`<percentage>`?this.percentageRange():this.type===`<angle>`?[0,360]:null}get unit(){return this.type===`<percentage>`?`%`:this.type===`<angle>`?`deg`:``}resolve(e){if(this.type===`<angle>`)return e;let t=this.computedRange,n=this.coordRange;return this.type===`<percentage>`&&(n??=this.percentageRange()),m(t,n,e)}serialize(e,t){let n=this.type===`<percentage>`?this.percentageRange(100):this.computedRange,r=this.unit;return e=m(this.coordRange,n,e),c(e,{unit:r,precision:t})}toString(){let e=this.type;if(this.range){let[t=``,n=``]=this.range;e+=`[${t},${n}]`}return e}percentageRange(e=1){let t;return t=this.coordMeta&&this.coordMeta.range||this.coordRange&&this.coordRange[0]>=0?[0,1]:[-1,1],[t[0]*e,t[1]*e]}static get(e,t){return b(e,this)?e:new this(e,t)}},T=Symbol(`instance`),E=class e{type;name;spaceCoords;coords;id;alpha;constructor(e,t=e.space){e[T]=this,this.type=`function`,this.name=`color`,Object.assign(this,e),this.space=t,this.type!==`custom`&&(this.spaceCoords=Object.values(t.coords),this.coords||=this.spaceCoords.map(e=>{let t=[`<number>`,`<percentage>`];return e.type===`angle`&&t.push(`<angle>`),t}),this.coords=this.coords.map((e,t)=>{let n=this.spaceCoords[t];return typeof e==`string`&&(e=e.trim().split(/\s*\|\s*/)),e.map(e=>w.get(e,n))}))}serializeCoords(e,t,n){return n=e.map((e,t)=>w.get(n?.[t]??this.coords[t][0],this.spaceCoords[t])),e.map((e,r)=>n[r].serialize(e,t))}coerceCoords(e,t){return Object.entries(this.space.coords).map(([n,r],i)=>{let a=e[i];if(l(a)||isNaN(a))return a;let o=t[i],s=this.coords[i].find(e=>e.type==o);if(!s){let e=r.name||n;throw TypeError(`${o??a?.raw??a} not allowed for ${e} in ${this.name}()`)}return a=s.resolve(a),s.range&&(t[i]=s.toString()),a})}canSerialize(){return this.type===`function`||this.serialize}parse(e){return null}static get(t,...n){return!t||b(t,this)?t:t[T]?t[T]:new e(t,...n)}},D={D50:[.3457/.3585,1,.2958/.3585],D65:[.3127/.329,1,.3583/.329]};function O(e){return Array.isArray(e)?e:D[e]}function k(e,t,n,r={}){if(e=O(e),t=O(t),!e||!t)throw TypeError(`Missing white point to convert ${e?``:`from`}${!e&&!t?`/`:``}${t?``:`to`}`);if(e===t)return n;let i={W1:e,W2:t,XYZ:n,options:r};if(S.run(`chromatic-adaptation-start`,i),i.M||(i.W1===D.D65&&i.W2===D.D50?i.M=[[1.0479297925449969,.022946870601609652,-.05019226628920524],[.02962780877005599,.9904344267538799,-.017073799063418826],[-.009243040646204504,.015055191490298152,.7518742814281371]]:i.W1===D.D50&&i.W2===D.D65&&(i.M=[[.955473421488075,-.02309845494876471,.06325924320057072],[-.0283697093338637,1.0099953980813041,.021041441191917323],[.012314014864481998,-.020507649298898964,1.330365926242124]])),S.run(`chromatic-adaptation-end`,i),i.M)return a(i.XYZ,i.M);throw TypeError(`Only Bradford CAT with white points D50 and D65 supported for now.`)}function A(e,t){let n={str:String(e)?.trim(),options:t};if(S.run(`parse-start`,n),n.color)return n.color;n.parsed=N(n.str);let r,i=n.options?n.options.parseMeta??n.options.meta:null;if(n.parsed){let t=n.parsed.name,a,o,s=n.parsed.args,c=s.map((e,t)=>n.parsed.argMeta[t]?.type);if(t===`color`){let r=s.shift();c.shift();let i=r.startsWith(`--`)?r.substring(2):`--${r}`,l=[r,i];if(a=I.findFormat({name:t,id:l,type:`function`}),!a){let t,a=r in I.registry?r:i;if(a in I.registry){let n=I.registry[a].formats?.color?.id;n&&(t=`Did you mean ${e.replace(`color(`+r,`color(`+n)}?`)}throw TypeError(`Cannot parse ${n.str}. `+(t??`Missing a plugin?`))}o=a.space,a.id.startsWith(`--`)&&!r.startsWith(`--`)&&C.warn(`${o.name} is a non-standard space and not currently supported in the CSS spec. Use prefixed color(${a.id}) instead of color(${r}).`),r.startsWith(`--`)&&!a.id.startsWith(`--`)&&C.warn(`${o.name} is a standard space and supported in the CSS spec. Use color(${a.id}) instead of prefixed color(${r}).`)}else a=I.findFormat({name:t,type:`function`}),o=a.space;i&&Object.assign(i,{format:a,formatId:a.name,types:c,commas:n.parsed.commas});let l=1;n.parsed.lastAlpha&&(l=n.parsed.args.pop(),i&&(i.alphaType=c.pop()));let u=a.coords.length;if(s.length!==u)throw TypeError(`Expected ${u} coordinates for ${o.id} in ${n.str}), got ${s.length}`);s=a.coerceCoords(s,c),r={spaceId:o.id,coords:s,alpha:l}}else spaceloop:for(let e of I.all)for(let t in e.formats){let a=e.formats[t];if(a.type!==`custom`||a.test&&!a.test(n.str))continue;let o=e.getFormat(a),s=o.parse(n.str);if(s){i&&Object.assign(i,{format:o,formatId:t}),r=s;break spaceloop}}if(!r)throw TypeError(`Could not parse ${e} as a color. Missing a plugin?`);return r.alpha=l(r.alpha)?r.alpha:r.alpha===void 0?1:h(0,r.alpha,1),r}var j={"%":.01,deg:1,grad:.9,rad:180/Math.PI,turn:360},M={function:/^([a-z]+)\(((?:calc\(NaN\)|.)+?)\)$/i,number:/^([-+]?(?:[0-9]*\.)?[0-9]+(e[-+]?[0-9]+)?)$/i,unitValue:RegExp(`(${Object.keys(j).join(`|`)})$`),singleArgument:/\/?\s*(none|NaN|calc\(NaN\)|[-+\w.]+(?:%|deg|g?rad|turn)?)/g};function ee(e){let t={},n=e.match(M.unitValue)?.[0],r=t.raw=e;return n?(t.type=n===`%`?`<percentage>`:`<angle>`,t.unit=n,t.unitless=Number(r.slice(0,-n.length)),r=t.unitless*j[n]):M.number.test(r)?(r=Number(r),t.type=`<number>`):r===`none`?r=null:r===`NaN`||r===`calc(NaN)`?(r=NaN,t.type=`<number>`):t.type=`<ident>`,{value:r,meta:t}}function N(e){if(!e)return;e=e.trim();let t=e.match(M.function);if(t){let e=[],n=[],r=!1,i=t[1].toLowerCase(),a=t[2].replace(M.singleArgument,(t,a)=>{let{value:o,meta:s}=ee(a);return(t.startsWith(`/`)||i!==`color`&&e.length===3)&&(r=!0),e.push(o),n.push(s),``});return{name:i,args:e,argMeta:n,lastAlpha:r,commas:a.includes(`,`),rawName:t[1],rawArgs:t[2]}}}function P(e,t){if(Array.isArray(e))return e.map(e=>P(e,t));if(!e)throw TypeError(`Empty color reference`);o(e)&&(e=A(e,t));let n=e.space||e.spaceId;return typeof n==`string`&&(e.space=I.get(n)),e.alpha===void 0&&(e.alpha=1),e}var F=75e-6,I=class e{constructor(t){this.id=t.id,this.name=t.name,this.base=t.base?e.get(t.base):null,this.aliases=t.aliases,this.base&&(this.fromBase=t.fromBase,this.toBase=t.toBase);let n=t.coords??this.base.coords;for(let e in n)`name`in n[e]||(n[e].name=e);this.coords=n,this.white=O(t.white??this.base.white??`D65`),this.formats=t.formats??{};for(let e in this.formats){let t=this.formats[e];t.type||=`function`,t.name||=e}this.formats.color?.id||(this.formats.color={...this.formats.color??{},id:t.cssId||this.id}),t.gamutSpace?this.gamutSpace=t.gamutSpace===`self`?this:e.get(t.gamutSpace):this.isPolar?this.gamutSpace=this.base:this.gamutSpace=this,this.gamutSpace.isUnbounded&&(this.inGamut=(e,t)=>!0),this.referred=t.referred,Object.defineProperty(this,`path`,{value:te(this).reverse(),writable:!1,enumerable:!0,configurable:!0}),S.run(`colorspace-init-end`,this)}inGamut(e,{epsilon:t=F}={}){if(!this.equals(this.gamutSpace))return e=this.to(this.gamutSpace,e),this.gamutSpace.inGamut(e,{epsilon:t});let n=Object.values(this.coords);return e.every((e,r)=>{let i=n[r];if(i.type!==`angle`&&i.range){if(l(e))return!0;let[n,r]=i.range;return(n===void 0||e>=n-t)&&(r===void 0||e<=r+t)}return!0})}get isUnbounded(){return Object.values(this.coords).every(e=>!(`range`in e))}get cssId(){return this.formats?.color?.id||this.id}get isPolar(){for(let e in this.coords)if(this.coords[e].type===`angle`)return!0;return!1}getFormat(e){if(!e)return null;e===`default`?e=Object.values(this.formats)[0]:typeof e==`string`&&(e=this.formats[e]);let t=E.get(e,this);return t!==e&&e.name in this.formats&&(this.formats[e.name]=t),t}equals(e){return e?this===e||this.id===e||this.id===e.id:!1}to(t,n){if(arguments.length===1){let e=P(t);[t,n]=[e.space,e.coords]}if(t=e.get(t),this.equals(t))return n;n=n.map(e=>l(e)?0:e);let r=this.path,i=t.path,a,o;for(let e=0;e<r.length&&r[e].equals(i[e]);e++)a=r[e],o=e;if(!a)throw Error(`Cannot convert between color spaces ${this} and ${t}: no connection space was found`);for(let e=r.length-1;e>o;e--)n=r[e].toBase(n);for(let e=o+1;e<i.length;e++)n=i[e].fromBase(n);return n}from(t,n){if(arguments.length===1){let e=P(t);[t,n]=[e.space,e.coords]}return t=e.get(t),t.to(this,n)}toString(){return`${this.name} (${this.id})`}getMinCoords(){let e=[];for(let t in this.coords){let n=this.coords[t],r=n.range||n.refRange;e.push(r?.min??0)}return e}static registry={};static get all(){return[...new Set(Object.values(e.registry))]}static register(e,t){if(arguments.length===1&&(t=arguments[0],e=t.id),t=this.get(t),this.registry[e]&&this.registry[e]!==t)throw Error(`Duplicate color space registration: '${e}'`);if(this.registry[e]=t,arguments.length===1&&t.aliases)for(let e of t.aliases)this.register(e,t);return t}static get(t,...n){if(!t||b(t,this))return t;if(s(t)===`string`){let n=e.registry[t.toLowerCase()];if(!n)throw TypeError(`No color space found with id = "${t}"`);return n}if(n.length)return e.get(...n);throw TypeError(`${t} is not a valid color space`)}static findFormat(t,n=e.all){if(!t)return null;typeof t==`string`&&(t={name:t});for(let e of n)for(let[n,r]of Object.entries(e.formats)){r.name??=n,r.type??=`function`;let i=(!t.name||r.name===t.name)&&(!t.type||r.type===t.type);if(t.id){let e=r.ids||[r.id],n=Array.isArray(t.id)?t.id:[t.id];i&&=n.some(t=>e.includes(t))}if(i){let t=E.get(r,e);return t!==r&&(e.formats[r.name]=t),t}}return null}static resolveCoord(t,n){let r=s(t),i,a;if(r===`string`?t.includes(`.`)?[i,a]=t.split(`.`):[i,a]=[,t]:Array.isArray(t)?[i,a]=t:(i=t.space,a=t.coordId),i=e.get(i),i||=n,!i)throw TypeError(`Cannot resolve coordinate reference ${t}: No color space specified and relative references are not allowed here`);if(r=s(a),r===`number`||r===`string`&&a>=0){let e=Object.entries(i.coords)[a];if(e)return{space:i,id:e[0],index:a,...e[1]}}i=e.get(i);let o=a.toLowerCase(),c=0;for(let e in i.coords){let t=i.coords[e];if(e.toLowerCase()===o||t.name?.toLowerCase()===o)return{space:i,id:e,index:c,...t};c++}throw TypeError(`No "${a}" coordinate found in ${i.name}. Its coordinates are: ${Object.keys(i.coords).join(`, `)}`)}static DEFAULT_FORMAT={type:`functions`,name:`color`}};function te(e){let t=[e];for(let n=e;n=n.base;)t.push(n);return t}var L=new I({id:`xyz-d65`,name:`XYZ D65`,coords:{x:{refRange:[0,1],name:`X`},y:{refRange:[0,1],name:`Y`},z:{refRange:[0,1],name:`Z`}},white:`D65`,formats:{color:{ids:[`xyz-d65`,`xyz`]}},aliases:[`xyz`]}),R=class extends I{constructor(e){e.coords||={r:{range:[0,1],name:`Red`},g:{range:[0,1],name:`Green`},b:{range:[0,1],name:`Blue`}},e.base||=L,e.toXYZ_M&&e.fromXYZ_M&&(e.toBase??=t=>{let n=a(t,e.toXYZ_M);return this.white!==this.base.white&&(n=k(this.white,this.base.white,n)),n},e.fromBase??=t=>(t=k(this.base.white,this.white,t),a(t,e.fromXYZ_M))),e.referred??=`display`,super(e)}};function ne(e,t={}){if(Array.isArray(e))return e.map(e=>ne(e,t));let{cssProperty:n=`background-color`,element:r,...i}=t,a=null;try{return P(e,i)}catch(e){a=e}let{CSS:s,getComputedStyle:c}=globalThis;if(o(e)&&r&&s&&c&&s.supports(n,e)){let t=r.style[n];e!==t&&(r.style[n]=e);let o=c(r).getPropertyValue(n);if(e!==t&&(r.style[n]=t),o!==e)try{return P(o,i)}catch(e){a=e}else a={message:`Color value is a valid CSS color, but it could not be resolved :(`}}return t.errorMeta&&(t.errorMeta.error=a),null}function z(e,t){e=P(e);let n=I.get(t,t?.space),r=t?.precision,i;return i=!n||e.space.equals(n)?e.coords.slice():n.from(e),r===void 0?i:i.map(e=>d(e,r))}function B(e,t){if(e=P(e),t===`alpha`)return e.alpha??1;let{space:n,index:r}=I.resolveCoord(t,e.space);return z(e,n)[r]}function re(e,t,n,r){return e=P(e),Array.isArray(t)&&([t,n,r]=[e.space,t,n]),t=I.get(t),e.coords=t===e.space?n.slice():t.to(e.space,n),r!==void 0&&(e.alpha=r),e}re.returns=`color`;function V(e,t,n){if(e=P(e),arguments.length===2&&s(arguments[1])===`object`){let t=arguments[1];for(let n in t)V(e,n,t[n])}else if(typeof n==`function`&&(n=n(B(e,t))),t===`alpha`)e.alpha=n;else{let{space:r,index:i}=I.resolveCoord(t,e.space),a=z(e,r);a[i]=n,re(e,r,a)}return e}V.returns=`color`;var ie=new I({id:`xyz-d50`,name:`XYZ D50`,white:`D50`,base:L,fromBase:e=>k(L.white,`D50`,e),toBase:e=>k(`D50`,L.white,e)}),ae=216/24389,oe=24/116,se=24389/27,ce=D.D50,H=new I({id:`lab`,name:`Lab`,coords:{l:{refRange:[0,100],name:`Lightness`},a:{refRange:[-125,125]},b:{refRange:[-125,125]}},white:ce,base:ie,fromBase(e){let t=e.map((e,t)=>e/ce[t]).map(e=>e>ae?Math.cbrt(e):(se*e+16)/116);return[116*t[1]-16,500*(t[0]-t[1]),200*(t[1]-t[2])]},toBase(e){let[t,n,r]=e,i=[];return i[1]=(t+16)/116,i[0]=n/500+i[1],i[2]=i[1]-r/200,[i[0]>oe?i[0]**3:(116*i[0]-16)/se,e[0]>8?((e[0]+16)/116)**3:e[0]/se,i[2]>oe?i[2]**3:(116*i[2]-16)/se].map((e,t)=>e*ce[t])},formats:{lab:{coords:[`<percentage> | <number>`,`<number> | <percentage>`,`<number> | <percentage>`]}}});function U(e){return typeof e==`number`?(e%360+360)%360:e}function le(e,t){let[n,r]=t,i=l(n),a=l(r);if(i&&a)return[n,r];if(i?n=r:a&&(r=n),e===`raw`)return t;n=U(n),r=U(r);let o=r-n;return e===`increasing`?o<0&&(r+=360):e===`decreasing`?o>0&&(n+=360):e===`longer`?-180<o&&o<180&&(o>0?n+=360:r+=360):e===`shorter`&&(o>180?n+=360:o<-180&&(r+=360)),[n,r]}var W=new I({id:`lch`,name:`LCH`,coords:{l:{refRange:[0,100],name:`Lightness`},c:{refRange:[0,150],name:`Chroma`},h:{refRange:[0,360],type:`angle`,name:`Hue`}},base:H,fromBase(e){if(this.ε===void 0){let e=Object.values(this.base.coords)[1].refRange;this.ε=(e[1]-e[0])/1e5}let[t,n,r]=e,i=Math.abs(n)<this.ε&&Math.abs(r)<this.ε,a=i?null:U(Math.atan2(r,n)*180/Math.PI);return[t,i?0:Math.sqrt(n**2+r**2),a]},toBase(e){let[t,n,r]=e,i=null,a=null;return l(r)||(n=n<0?0:n,i=n*Math.cos(r*Math.PI/180),a=n*Math.sin(r*Math.PI/180)),[t,i,a]},formats:{lch:{coords:[`<percentage> | <number>`,`<number> | <percentage>`,`<number> | <angle>`]}}}),ue=25**7,de=Math.PI,fe=180/de,pe=de/180;function me(e){let t=e*e;return t*t*t*e}function he(e,t,{kL:n=1,kC:r=1,kH:i=1}={}){[e,t]=P([e,t]);let[a,o,s]=H.from(e),c=W.from(H,[a,o,s])[1],[l,u,d]=H.from(t),f=W.from(H,[l,u,d])[1];c<0&&(c=0),f<0&&(f=0);let p=me((c+f)/2),m=.5*(1-Math.sqrt(p/(p+ue))),h=(1+m)*o,g=(1+m)*u,_=Math.sqrt(h**2+s**2),v=Math.sqrt(g**2+d**2),y=h===0&&s===0?0:Math.atan2(s,h),b=g===0&&d===0?0:Math.atan2(d,g);y<0&&(y+=2*de),b<0&&(b+=2*de),y*=fe,b*=fe;let x=l-a,S=v-_,w=b-y,T=y+b,E=Math.abs(w),D;_*v===0?D=0:E<=180?D=w:w>180?D=w-360:w<-180?D=w+360:C.warn(`the unthinkable has happened`);let O=2*Math.sqrt(v*_)*Math.sin(D*pe/2),k=(a+l)/2,A=(_+v)/2,j=me(A),M;M=_*v===0?T:E<=180?T/2:T<360?(T+360)/2:(T-360)/2;let ee=(k-50)**2,N=1+.015*ee/Math.sqrt(20+ee),F=1+.045*A,I=1;I-=.17*Math.cos((M-30)*pe),I+=.24*Math.cos(2*M*pe),I+=.32*Math.cos((3*M+6)*pe),I-=.2*Math.cos((4*M-63)*pe);let te=1+.015*A*I,L=30*Math.exp(-1*((M-275)/25)**2),R=2*Math.sqrt(j/(j+ue)),ne=-1*Math.sin(2*L*pe)*R,z=(x/(n*N))**2;return z+=(S/(r*F))**2,z+=(O/(i*te))**2,z+=ne*(S/(r*F))*(O/(i*te)),Math.sqrt(z)}var ge=[[.819022437996703,.3619062600528904,-.1288737815209879],[.0329836539323885,.9292868615863434,.0361446663506424],[.0481771893596242,.2642395317527308,.6335478284694309]],_e=[[1.2268798758459243,-.5578149944602171,.2813910456659647],[-.0405757452148008,1.112286803280317,-.0717110580655164],[-.0763729366746601,-.4214933324022432,1.5869240198367816]],ve=[[.210454268309314,.7936177747023054,-.0040720430116193],[1.9779985324311684,-2.42859224204858,.450593709617411],[.0259040424655478,.7827717124575296,-.8086757549230774]],G=[[1,.3963377773761749,.2158037573099136],[1,-.1055613458156586,-.0638541728258133],[1,-.0894841775298119,-1.2914855480194092]],K=new I({id:`oklab`,name:`Oklab`,coords:{l:{refRange:[0,1],name:`Lightness`},a:{refRange:[-.4,.4]},b:{refRange:[-.4,.4]}},white:`D65`,base:L,fromBase(e){let t=a(e,ge);return t[0]=Math.cbrt(t[0]),t[1]=Math.cbrt(t[1]),t[2]=Math.cbrt(t[2]),a(t,ve,t)},toBase(e){let t=a(e,G);return t[0]**=3,t[1]**=3,t[2]**=3,a(t,_e,t)},formats:{oklab:{coords:[`<percentage> | <number>`,`<number> | <percentage>`,`<number> | <percentage>`]}}});function ye(e,t){[e,t]=P([e,t]);let[n,r,i]=K.from(e),[a,o,s]=K.from(t),c=n-a,l=r-o,u=i-s;return Math.sqrt(c**2+l**2+u**2)}var be=75e-6;function xe(e,t,{epsilon:n=be}={}){e=P(e),t||=e.space,t=I.get(t);let r=e.coords;return t!==e.space&&(r=t.from(e)),t.inGamut(r,{epsilon:n})}function Se(e){return{space:e.space,coords:e.coords.slice(),alpha:e.alpha}}function Ce(e,t,n=`lab`){n=I.get(n);let r=n.from(e),i=n.from(t);return Math.sqrt(r.reduce((e,t,n)=>{let r=i[n];return l(t)||l(r)?e:e+(r-t)**2},0))}function we(e,t){return Ce(e,t,`lab`)}var Te=Math.PI/180;function Ee(e,t,{l:n=2,c:r=1}={}){[e,t]=P([e,t]);let[i,a,o]=H.from(e),[,s,c]=W.from(H,[i,a,o]),[u,d,f]=H.from(t),p=W.from(H,[u,d,f])[1];s<0&&(s=0),p<0&&(p=0);let m=i-u,h=s-p,g=a-d,_=o-f,v=g**2+_**2-h**2,y=.511;i>=16&&(y=.040975*i/(1+.01765*i));let b=.0638*s/(1+.0131*s)+.638,x;l(c)&&(c=0),x=c>=164&&c<=345?.56+Math.abs(.2*Math.cos((c+168)*Te)):.36+Math.abs(.4*Math.cos((c+35)*Te));let S=s**4,C=Math.sqrt(S/(S+1900)),w=b*(C*x+1-C),T=(m/(n*y))**2;return T+=(h/(r*b))**2,T+=v/w**2,Math.sqrt(T)}var De=203,Oe=new I({id:`xyz-abs-d65`,cssId:`--xyz-abs-d65`,name:`Absolute XYZ D65`,coords:{x:{refRange:[0,9504.7],name:`Xa`},y:{refRange:[0,1e4],name:`Ya`},z:{refRange:[0,10888.3],name:`Za`}},base:L,fromBase(e){return e.map(e=>e*De)},toBase(e){return e.map(e=>e/De)}}),ke=1.15,Ae=.66,je=2610/2**14,Me=2**14/2610,Ne=3424/2**12,Pe=2413/2**7,Fe=2392/2**7,Ie=1.7*2523/2**5,Le=2**5/(1.7*2523),Re=-.56,ze=16295499532821565e-27,Be=[[.41478972,.579999,.014648],[-.20151,1.120649,.0531008],[-.0166008,.2648,.6684799]],Ve=[[1.9242264357876067,-1.0047923125953657,.037651404030618],[.35031676209499907,.7264811939316552,-.06538442294808501],[-.09098281098284752,-.3127282905230739,1.5227665613052603]],He=[[.5,.5,0],[3.524,-4.066708,.542708],[.199076,1.096799,-1.295875]],Ue=[[1,.13860504327153927,.05804731615611883],[1,-.1386050432715393,-.058047316156118904],[1,-.09601924202631895,-.811891896056039]],We=new I({id:`jzazbz`,name:`Jzazbz`,coords:{jz:{refRange:[0,1],name:`Jz`},az:{refRange:[-.21,.21]},bz:{refRange:[-.21,.21]}},base:Oe,fromBase(e){let[t,n,r]=e,[i,o,s]=a(a([ke*t-(ke-1)*r,Ae*n-(Ae-1)*t,r],Be).map(function(e){return _((Ne+Pe*_(e/1e4,je))/(1+Fe*_(e/1e4,je)),Ie)}),He);return[(1+Re)*i/(1+Re*i)-ze,o,s]},toBase(e){let[t,n,r]=e,[i,o,s]=a(a([(t+ze)/(1+Re-Re*(t+ze)),n,r],Ue).map(function(e){return 1e4*_((Ne-_(e,Le))/(Fe*_(e,Le)-Pe),Me)}),Ve),c=(i+(ke-1)*s)/ke;return[c,(o+(Ae-1)*c)/Ae,s]},formats:{jzazbz:{coords:[`<percentage> | <number>`,`<number> | <percentage>`,`<number> | <percentage>`]}}}),Ge=new I({id:`jzczhz`,name:`JzCzHz`,coords:{jz:{refRange:[0,1],name:`Jz`},cz:{refRange:[0,.26],name:`Chroma`},hz:{refRange:[0,360],type:`angle`,name:`Hue`}},base:We,fromBase:W.fromBase,toBase:W.toBase,formats:{jzczhz:{coords:[`<percentage> | <number>`,`<number> | <percentage>`,`<number> | <angle>`]}}});function Ke(e,t){[e,t]=P([e,t]);let[n,r,i]=Ge.from(e),[a,o,s]=Ge.from(t),c=n-a,u=r-o;l(i)&&l(s)?(i=0,s=0):l(i)?i=s:l(s)&&(s=i);let d=i-s,f=2*Math.sqrt(r*o)*Math.sin(d/2*(Math.PI/180));return Math.sqrt(c**2+u**2+f**2)}var qe=3424/4096,Je=2413/128,Ye=2392/128,Xe=2610/16384,Ze=2523/32,Qe=16384/2610,$e=32/2523,et=[[.3592832590121217,.6976051147779502,-.035891593232029],[-.1920808463704993,1.100476797037432,.0753748658519118],[.0070797844607479,.0748396662186362,.8433265453898765]],tt=[[2048/4096,2048/4096,0],[6610/4096,-13613/4096,7003/4096],[17933/4096,-17390/4096,-543/4096]],nt=[[.9999999999999998,.0086090370379328,.111029625003026],[.9999999999999998,-.0086090370379328,-.1110296250030259],[.9999999999999998,.5600313357106791,-.3206271749873188]],rt=[[2.0701522183894223,-1.3263473389671563,.2066510476294053],[.3647385209748072,.6805660249472273,-.0453045459220347],[-.0497472075358123,-.0492609666966131,1.1880659249923042]],it=new I({id:`ictcp`,name:`ICTCP`,coords:{i:{refRange:[0,1],name:`I`},ct:{refRange:[-.5,.5],name:`CT`},cp:{refRange:[-.5,.5],name:`CP`}},base:Oe,fromBase(e){return at(a(e,et))},toBase(e){return a(ot(e),rt)},formats:{ictcp:{coords:[`<percentage> | <number>`,`<number> | <percentage>`,`<number> | <percentage>`]}}});function at(e){return a(e.map(function(e){return((qe+Je*(e/1e4)**Xe)/(1+Ye*(e/1e4)**Xe))**Ze}),tt)}function ot(e){return a(e,nt).map(function(e){return 1e4*(Math.max(e**$e-qe,0)/(Je-Ye*e**$e))**Qe})}function st(e,t){[e,t]=P([e,t]);let[n,r,i]=it.from(e),[a,o,s]=it.from(t);return 720*Math.sqrt((n-a)**2+.25*(r-o)**2+(i-s)**2)}function ct(e,t){[e,t]=P([e,t]);let[n,r,i]=K.from(e),[a,o,s]=K.from(t),c=n-a,l=2*(r-o),u=2*(i-s);return Math.sqrt(c**2+l**2+u**2)}var lt=D.D65,ut=.42,dt=1/ut,ft=2*Math.PI,pt=[[.401288,.650173,-.051461],[-.250268,1.204414,.045854],[-.002079,.048952,.953127]],mt=[[1.8620678550872327,-1.0112546305316843,.14918677544445175],[.38752654323613717,.6214474419314753,-.008973985167612518],[-.015841498849333856,-.03412293802851557,1.0499644368778496]],ht=[[460,451,288],[460,-891,-261],[460,-220,-6300]],gt={dark:[.8,.525,.8],dim:[.9,.59,.9],average:[1,.69,1]},_t={h:[20.14,90,164.25,237.53,380.14],e:[.8,.7,1,1.2,.8],H:[0,100,200,300,400]},vt=180/Math.PI,yt=Math.PI/180;function bt(e,t){return e.map(e=>{let n=_(t*Math.abs(e)*.01,ut);return 400*g(n,e)/(n+27.13)})}function xt(e,t){let n=100/t*27.13**dt;return e.map(e=>{let t=Math.abs(e);return g(n*_(t/(400-t),dt),e)})}function St(e){let t=U(e);t<=_t.h[0]&&(t+=360);let n=y(_t.h,t)-1,[r,i]=_t.h.slice(n,n+2),[a,o]=_t.e.slice(n,n+2),s=_t.H[n],c=(t-r)/a;return s+100*c/(c+(i-t)/o)}function Ct(e){let t=(e%400+400)%400,n=Math.floor(.01*t);t%=100;let[r,i]=_t.h.slice(n,n+2),[a,o]=_t.e.slice(n,n+2);return U((t*(o*r-a*i)-100*r*o)/(t*(o-a)-100*o))}function wt(e,t,n,r,i){let o={};o.discounting=i,o.refWhite=e,o.surround=r;let s=e.map(e=>e*100);o.la=t,o.yb=n;let c=s[1],l=a(s,pt),u=gt[o.surround],d=u[0];o.c=u[1],o.nc=u[2];let p=(1/(5*o.la+1))**4;o.fl=p*o.la+.1*(1-p)*(1-p)*Math.cbrt(5*o.la),o.flRoot=o.fl**.25,o.n=o.yb/c,o.z=1.48+Math.sqrt(o.n),o.nbb=.725*o.n**-.2,o.ncb=o.nbb;let m=Math.max(Math.min(d*(1-1/3.6*Math.exp((-o.la-42)/92)),1),0);o.dRgb=l.map(e=>f(1,c/e,m)),o.dRgbInv=o.dRgb.map(e=>1/e);let h=bt(l.map((e,t)=>e*o.dRgb[t]),o.fl);return o.aW=o.nbb*(2*h[0]+h[1]+.05*h[2]),o}var Tt=wt(lt,64/Math.PI*.2,20,`average`,!1);function Et(e,t){if(!(e.J!==void 0^e.Q!==void 0))throw Error(`Conversion requires one and only one: 'J' or 'Q'`);if(!(e.C!==void 0^e.M!==void 0^e.s!==void 0))throw Error(`Conversion requires one and only one: 'C', 'M' or 's'`);if(!(e.h!==void 0^e.H!==void 0))throw Error(`Conversion requires one and only one: 'h' or 'H'`);if(e.J===0||e.Q===0)return[0,0,0];let n=0;n=e.h===void 0?Ct(e.H)*yt:U(e.h)*yt;let r=Math.cos(n),i=Math.sin(n),o=0;e.J===void 0?e.Q!==void 0&&(o=.25*t.c*e.Q/((t.aW+4)*t.flRoot)):o=_(e.J,1/2)*.1;let s=0;e.C===void 0?e.M===void 0?e.s!==void 0&&(s=4e-4*e.s**2*(t.aW+4)/t.c):s=e.M/t.flRoot/o:s=e.C/o;let c=_(s*(1.64-.29**t.n)**-.73,10/9),l=.25*(Math.cos(n+2)+3.8),u=t.aW*_(o,2/t.c/t.z),d=5e4/13*t.nc*t.ncb*l,f=u/t.nbb,p=23*(f+.305)*v(c,23*d+c*(11*r+108*i));return a(xt(a([f,p*r,p*i],ht).map(e=>e*1/1403),t.fl).map((e,n)=>e*t.dRgbInv[n]),mt).map(e=>e/100)}function Dt(e,t){let n=bt(a(e.map(e=>e*100),pt).map((e,n)=>e*t.dRgb[n]),t.fl),r=n[0]+(-12*n[1]+n[2])/11,i=(n[0]+n[1]-2*n[2])/9,o=(Math.atan2(i,r)%ft+ft)%ft,s=.25*(Math.cos(o+2)+3.8),c=_(5e4/13*t.nc*t.ncb*v(s*Math.sqrt(r**2+i**2),n[0]+n[1]+1.05*n[2]+.305),.9)*(1.64-.29**t.n)**.73,l=_(t.nbb*(2*n[0]+n[1]+.05*n[2])/t.aW,.5*t.c*t.z),u=100*_(l,2),d=4/t.c*l*(t.aW+4)*t.flRoot,f=c*l,p=f*t.flRoot,m=U(o*vt),h=St(m);return{J:u,C:f,h:m,s:50*_(t.c*c/(t.aW+4),1/2),Q:d,M:p,H:h}}var Ot=new I({id:`cam16-jmh`,cssId:`--cam16-jmh`,name:`CAM16-JMh`,coords:{j:{refRange:[0,100],name:`J`},m:{refRange:[0,105],name:`Colorfulness`},h:{refRange:[0,360],type:`angle`,name:`Hue`}},base:L,fromBase(e){this.ε===void 0&&(this.ε=Object.values(this.coords)[1].refRange[1]/1e5);let t=Dt(e,Tt),n=Math.abs(t.M)<this.ε;return[t.J,n?0:t.M,n?null:t.h]},toBase(e){return Et({J:e[0],M:e[1],h:e[2]},Tt)}}),kt=D.D65,At=216/24389,jt=24389/27;function Mt(e){return 116*(e>At?Math.cbrt(e):(jt*e+16)/116)-16}function Nt(e){return e>8?((e+16)/116)**3:e/jt}function Pt(e,t){let[n,r,i]=e,a=[],o=0;if(i===0)return[0,0,0];let s=Nt(i);o=i>0?.00379058511492914*i**2+.608983189401032*i+.9155088574762233:9514440756550361e-21*i**2+.08693057439788597*i-21.928975842194614;let c=0,l=1/0;for(;c<=15;){a=Et({J:o,C:r,h:n},t);let e=Math.abs(a[1]-s);if(e<l){if(e<=2e-12)return a;l=e}o-=(a[1]-s)*o/(2*a[1]),c+=1}return Et({J:o,C:r,h:n},t)}function Ft(e,t){let n=Mt(e[1]);if(n===0)return[0,0,0];let r=Dt(e,It);return[U(r.h),r.C,n]}var It=wt(kt,200/Math.PI*Nt(50),Nt(50)*100,`average`,!1),Lt=new I({id:`hct`,name:`HCT`,coords:{h:{refRange:[0,360],type:`angle`,name:`Hue`},c:{refRange:[0,145],name:`Colorfulness`},t:{refRange:[0,100],name:`Tone`}},base:L,fromBase(e){this.ε===void 0&&(this.ε=Object.values(this.coords)[1].refRange[1]/1e5);let t=Ft(e);return t[1]<this.ε&&(t[1]=0,t[0]=null),t},toBase(e){return Pt(e,It)},formats:{color:{id:`--hct`,coords:[`<number> | <angle>`,`<percentage> | <number>`,`<percentage> | <number>`]}}}),Rt=Math.PI/180,zt=[1,.007,.0228];function Bt(e){e[1]<0&&(e=Lt.fromBase(Lt.toBase(e)));let t=Math.log(Math.max(1+zt[2]*e[1]*It.flRoot,1))/zt[2],n=e[0]*Rt,r=t*Math.cos(n),i=t*Math.sin(n);return[e[2],r,i]}function Vt(e,t){[e,t]=P([e,t]);let[n,r,i]=Bt(Lt.from(e)),[a,o,s]=Bt(Lt.from(t));return Math.sqrt((n-a)**2+(r-o)**2+(i-s)**2)}var Ht={deltaE76:we,deltaECMC:Ee,deltaE2000:he,deltaEJz:Ke,deltaEITP:st,deltaEOK:ye,deltaEOK2:ct,deltaEHCT:Vt};function Ut(e){return Math.max(parseFloat(`1e${(e?Math.floor(Math.log10(Math.abs(e))):0)-2}`),1e-6)}var Wt={hct:{method:`hct.c`,jnd:2,deltaEMethod:`hct`,blackWhiteClamp:{}},"hct-tonal":{method:`hct.c`,jnd:0,deltaEMethod:`hct`,blackWhiteClamp:{channel:`hct.t`,min:0,max:100}}};function q(e,{method:t=C.gamut_mapping,space:n=void 0,deltaEMethod:r=``,jnd:i=2,blackWhiteClamp:a=void 0}={}){if(e=P(e),o(arguments[1])?n=arguments[1]:n||=e.space,n=I.get(n),xe(e,n,{epsilon:0}))return e;let s;if(t===`css`)s=Kt(e,{space:n});else{if(t!==`clip`&&!xe(e,n)){Object.prototype.hasOwnProperty.call(Wt,t)&&({method:t,jnd:i,deltaEMethod:r,blackWhiteClamp:a}=Wt[t]);let o=he;if(r!==``){for(let e in Ht)if(`deltae`+r.toLowerCase()===e.toLowerCase()){o=Ht[e];break}}i===0&&(i=1e-16);let c=q(J(e,n),{method:`clip`,space:n});if(o(e,c)>i){if(a&&Object.keys(a).length===3){let t=I.resolveCoord(a.channel),n=B(J(e,t.space),t.id);if(l(n)&&(n=0),n>=a.max)return J({space:`xyz-d65`,coords:D.D65},e.space);if(n<=a.min)return J({space:`xyz-d65`,coords:[0,0,0]},e.space)}let r=I.resolveCoord(t),c=r.space,u=r.id,d=J(e,c);d.coords.forEach((e,t)=>{l(e)&&(d.coords[t]=0)});let f=(r.range||r.refRange)[0],p=Ut(i),m=f,h=B(d,u);for(;h-m>p;){let e=Se(d);e=q(e,{space:n,method:`clip`}),o(d,e)-i<p?m=B(d,u):h=B(d,u),V(d,u,(m+h)/2)}s=J(d,n)}else s=c}else s=J(e,n);if(t===`clip`||!xe(s,n,{epsilon:0})){let e=Object.values(n.coords).map(e=>e.range||[]);s.coords=s.coords.map((t,n)=>{let[r,i]=e[n];return r!==void 0&&(t=Math.max(r,t)),i!==void 0&&(t=Math.min(t,i)),t})}}return n!==e.space&&(s=J(s,e.space)),e.coords=s.coords,e}q.returns=`color`;var Gt={WHITE:{space:K,coords:[1,0,0],alpha:1},BLACK:{space:K,coords:[0,0,0],alpha:1}};function Kt(e,{space:t}={}){let n=.02,r=1e-4;e=P(e),t||=e.space,t=I.get(t);let i=I.get(`oklch`);if(t.isUnbounded)return J(e,t);let a=J(e,i),o=a.coords[0];if(o>=1){let n=J(Gt.WHITE,t);return n.alpha=e.alpha,J(n,t)}if(o<=0){let n=J(Gt.BLACK,t);return n.alpha=e.alpha,J(n,t)}if(xe(a,t,{epsilon:0}))return J(a,t);function s(e){let n=J(e,t),r=Object.values(t.coords);return n.coords=n.coords.map((e,t)=>{if(`range`in r[t]){let[n,i]=r[t].range;return h(n,e,i)}return e}),n}let c=0,l=a.coords[1],u=!0,d=Se(a),f=s(d),p=ye(f,d);if(p<n)return f;for(;l-c>r;){let e=(c+l)/2;if(d.coords[1]=e,u&&xe(d,t,{epsilon:0}))c=e;else if(f=s(d),p=ye(f,d),p<n){if(n-p<r)break;u=!1,c=e}else l=e}return f}function J(e,t,{inGamut:n}={}){e=P(e),t=I.get(t);let r=t.from(e),i={space:t,coords:r,alpha:e.alpha};return n&&(i=q(i,n===!0?void 0:n)),i}J.returns=`color`;function qt(e,t={}){let{precision:n=C.precision,format:r,inGamut:i=!0,coords:a,alpha:o,commas:s}=t,l,u=P(e),d=r,f=u.parseMeta;f&&!r&&(f.format.canSerialize()&&(r=f.format,d=f.formatId),a??=f.types,o??=f.alphaType,s??=f.commas),d&&(r=u.space.getFormat(r)??I.findFormat(d)),r||(r=u.space.getFormat(`default`)??I.DEFAULT_FORMAT,d=r.name),r&&r.space&&r.space!==u.space&&(u=J(u,r.space));let p=u.coords.slice();if(i||=r.toGamut,i&&!xe(u)&&(p=q(Se(u),i===!0?void 0:i).coords),r.type===`custom`)if(r.serialize)l=r.serialize(p,u.alpha,t);else throw TypeError(`format ${d} can only be used to parse colors, not for serialization`);else{let e=r.name||`color`,t=r.serializeCoords(p,n,a);if(e===`color`){let e=r.id||r.ids?.[0]||u.space.cssId||u.space.id;t.unshift(e)}let i=u.alpha;o!==void 0&&typeof o!=`object`&&(o=typeof o==`string`?{type:o}:{include:o});let d=o?.type??`<number>`,f=o?.include===!0||r.alpha===!0||o?.include!==!1&&r.alpha!==!1&&i<1,m=``;if(s??=r.commas,f){if(n!==null){let e;d===`<percentage>`&&(e=`%`,i*=100),i=c(i,{precision:n,unit:e})}m=`${s?`,`:` /`} ${i}`}l=`${e}(${t.join(s?`, `:` `)}${m})`}return l}var Jt=new R({id:`rec2020-linear`,cssId:`--rec2020-linear`,name:`Linear REC.2020`,white:`D65`,toXYZ_M:[[.6369580483012914,.14461690358620832,.1688809751641721],[.2627002120112671,.6779980715188708,.05930171646986196],[0,.028072693049087428,1.060985057710791]],fromXYZ_M:[[1.716651187971268,-.355670783776392,-.25336628137366],[-.666684351832489,1.616481236634939,.0157685458139111],[.017639857445311,-.042770613257809,.942103121235474]]}),Yt=new R({id:`rec2020`,name:`REC.2020`,base:Jt,toBase(e){return e.map(function(e){let t=e<0?-1:1;return t*(e*t)**2.4})},fromBase(e){return e.map(function(e){let t=e<0?-1:1;return t*(e*t)**(1/2.4)})}}),Xt=new R({id:`p3-linear`,cssId:`display-p3-linear`,name:`Linear P3`,white:`D65`,toXYZ_M:[[.4865709486482162,.26566769316909306,.1982172852343625],[.2289745640697488,.6917385218365064,.079286914093745],[0,.04511338185890264,1.043944368900976]],fromXYZ_M:[[2.493496911941425,-.9313836179191239,-.40271078445071684],[-.8294889695615747,1.7626640603183463,.023624685841943577],[.03584583024378447,-.07617238926804182,.9568845240076872]]}),Zt=[[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Y=[[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],Qt=new R({id:`srgb-linear`,name:`Linear sRGB`,white:`D65`,toXYZ_M:Zt,fromXYZ_M:Y}),$t={aliceblue:[240/255,248/255,1],antiquewhite:[250/255,235/255,215/255],aqua:[0,1,1],aquamarine:[127/255,1,212/255],azure:[240/255,1,1],beige:[245/255,245/255,220/255],bisque:[1,228/255,196/255],black:[0,0,0],blanchedalmond:[1,235/255,205/255],blue:[0,0,1],blueviolet:[138/255,43/255,226/255],brown:[165/255,42/255,42/255],burlywood:[222/255,184/255,135/255],cadetblue:[95/255,158/255,160/255],chartreuse:[127/255,1,0],chocolate:[210/255,105/255,30/255],coral:[1,127/255,80/255],cornflowerblue:[100/255,149/255,237/255],cornsilk:[1,248/255,220/255],crimson:[220/255,20/255,60/255],cyan:[0,1,1],darkblue:[0,0,139/255],darkcyan:[0,139/255,139/255],darkgoldenrod:[184/255,134/255,11/255],darkgray:[169/255,169/255,169/255],darkgreen:[0,100/255,0],darkgrey:[169/255,169/255,169/255],darkkhaki:[189/255,183/255,107/255],darkmagenta:[139/255,0,139/255],darkolivegreen:[85/255,107/255,47/255],darkorange:[1,140/255,0],darkorchid:[153/255,50/255,204/255],darkred:[139/255,0,0],darksalmon:[233/255,150/255,122/255],darkseagreen:[143/255,188/255,143/255],darkslateblue:[72/255,61/255,139/255],darkslategray:[47/255,79/255,79/255],darkslategrey:[47/255,79/255,79/255],darkturquoise:[0,206/255,209/255],darkviolet:[148/255,0,211/255],deeppink:[1,20/255,147/255],deepskyblue:[0,191/255,1],dimgray:[105/255,105/255,105/255],dimgrey:[105/255,105/255,105/255],dodgerblue:[30/255,144/255,1],firebrick:[178/255,34/255,34/255],floralwhite:[1,250/255,240/255],forestgreen:[34/255,139/255,34/255],fuchsia:[1,0,1],gainsboro:[220/255,220/255,220/255],ghostwhite:[248/255,248/255,1],gold:[1,215/255,0],goldenrod:[218/255,165/255,32/255],gray:[128/255,128/255,128/255],green:[0,128/255,0],greenyellow:[173/255,1,47/255],grey:[128/255,128/255,128/255],honeydew:[240/255,1,240/255],hotpink:[1,105/255,180/255],indianred:[205/255,92/255,92/255],indigo:[75/255,0,130/255],ivory:[1,1,240/255],khaki:[240/255,230/255,140/255],lavender:[230/255,230/255,250/255],lavenderblush:[1,240/255,245/255],lawngreen:[124/255,252/255,0],lemonchiffon:[1,250/255,205/255],lightblue:[173/255,216/255,230/255],lightcoral:[240/255,128/255,128/255],lightcyan:[224/255,1,1],lightgoldenrodyellow:[250/255,250/255,210/255],lightgray:[211/255,211/255,211/255],lightgreen:[144/255,238/255,144/255],lightgrey:[211/255,211/255,211/255],lightpink:[1,182/255,193/255],lightsalmon:[1,160/255,122/255],lightseagreen:[32/255,178/255,170/255],lightskyblue:[135/255,206/255,250/255],lightslategray:[119/255,136/255,153/255],lightslategrey:[119/255,136/255,153/255],lightsteelblue:[176/255,196/255,222/255],lightyellow:[1,1,224/255],lime:[0,1,0],limegreen:[50/255,205/255,50/255],linen:[250/255,240/255,230/255],magenta:[1,0,1],maroon:[128/255,0,0],mediumaquamarine:[102/255,205/255,170/255],mediumblue:[0,0,205/255],mediumorchid:[186/255,85/255,211/255],mediumpurple:[147/255,112/255,219/255],mediumseagreen:[60/255,179/255,113/255],mediumslateblue:[123/255,104/255,238/255],mediumspringgreen:[0,250/255,154/255],mediumturquoise:[72/255,209/255,204/255],mediumvioletred:[199/255,21/255,133/255],midnightblue:[25/255,25/255,112/255],mintcream:[245/255,1,250/255],mistyrose:[1,228/255,225/255],moccasin:[1,228/255,181/255],navajowhite:[1,222/255,173/255],navy:[0,0,128/255],oldlace:[253/255,245/255,230/255],olive:[128/255,128/255,0],olivedrab:[107/255,142/255,35/255],orange:[1,165/255,0],orangered:[1,69/255,0],orchid:[218/255,112/255,214/255],palegoldenrod:[238/255,232/255,170/255],palegreen:[152/255,251/255,152/255],paleturquoise:[175/255,238/255,238/255],palevioletred:[219/255,112/255,147/255],papayawhip:[1,239/255,213/255],peachpuff:[1,218/255,185/255],peru:[205/255,133/255,63/255],pink:[1,192/255,203/255],plum:[221/255,160/255,221/255],powderblue:[176/255,224/255,230/255],purple:[128/255,0,128/255],rebeccapurple:[102/255,51/255,153/255],red:[1,0,0],rosybrown:[188/255,143/255,143/255],royalblue:[65/255,105/255,225/255],saddlebrown:[139/255,69/255,19/255],salmon:[250/255,128/255,114/255],sandybrown:[244/255,164/255,96/255],seagreen:[46/255,139/255,87/255],seashell:[1,245/255,238/255],sienna:[160/255,82/255,45/255],silver:[192/255,192/255,192/255],skyblue:[135/255,206/255,235/255],slateblue:[106/255,90/255,205/255],slategray:[112/255,128/255,144/255],slategrey:[112/255,128/255,144/255],snow:[1,250/255,250/255],springgreen:[0,1,127/255],steelblue:[70/255,130/255,180/255],tan:[210/255,180/255,140/255],teal:[0,128/255,128/255],thistle:[216/255,191/255,216/255],tomato:[1,99/255,71/255],turquoise:[64/255,224/255,208/255],violet:[238/255,130/255,238/255],wheat:[245/255,222/255,179/255],white:[1,1,1],whitesmoke:[245/255,245/255,245/255],yellow:[1,1,0],yellowgreen:[154/255,205/255,50/255]},en=[,,,].fill(`<percentage> | <number>[0, 255]`),tn=[,,,].fill(`<number>[0, 255]`),nn=new R({id:`srgb`,name:`sRGB`,base:Qt,fromBase:e=>e.map(e=>{let t=e<0?-1:1,n=e*t;return n>.0031308?t*(1.055*n**(1/2.4)-.055):12.92*e}),toBase:e=>e.map(e=>{let t=e<0?-1:1,n=e*t;return n<=.04045?e/12.92:t*((n+.055)/1.055)**2.4}),formats:{rgb:{coords:en},rgb_number:{name:`rgb`,commas:!0,coords:tn,alpha:!1},color:{},rgba:{coords:en,commas:!0,alpha:!0},rgba_number:{name:`rgba`,commas:!0,coords:tn},hex:{type:`custom`,toGamut:!0,test:e=>/^#(([a-f0-9]{2}){3,4}|[a-f0-9]{3,4})$/i.test(e),parse(e){e.length<=5&&(e=e.replace(/[a-f0-9]/gi,`$&$&`));let t=[];return e.replace(/[a-f0-9]{2}/gi,e=>{t.push(parseInt(e,16)/255)}),{spaceId:`srgb`,coords:t.slice(0,3),alpha:t.slice(3)[0]}},serialize:(e,t,{collapse:n=!0,alpha:r}={})=>{(r!==!1&&t<1||r===!0)&&e.push(t),e=e.map(e=>Math.round(e*255));let i=n&&e.every(e=>e%17==0);return`#`+e.map(e=>i?(e/17).toString(16):e.toString(16).padStart(2,`0`)).join(``)}},keyword:{type:`custom`,test:e=>/^[a-z]+$/i.test(e),parse(e){e=e.toLowerCase();let t={spaceId:`srgb`,coords:null,alpha:1};if(e===`transparent`?(t.coords=$t.black,t.alpha=0):t.coords=$t[e],t.coords)return t}}}}),rn=new R({id:`p3`,cssId:`display-p3`,name:`P3`,base:Xt,fromBase:nn.fromBase,toBase:nn.toBase});C.display_space=nn;var an;if(typeof CSS<`u`&&CSS.supports)for(let e of[H,Yt,rn]){let t=qt({space:e,coords:e.getMinCoords(),alpha:1});if(CSS.supports(`color`,t)){C.display_space=e;break}}function on(e,{space:t=C.display_space,...n}={}){e=P(e);let r=qt(e,n);if(typeof CSS>`u`||CSS.supports(`color`,r)||!C.display_space)r=new String(r),r.color=e;else{let i=e;if((e.coords.some(l)||l(e.alpha))&&!(an??=CSS.supports(`color`,`hsl(none 50% 50%)`))&&(i=Se(e),i.coords=i.coords.map(u),i.alpha=u(i.alpha),r=qt(i,n),CSS.supports(`color`,r)))return r=new String(r),r.color=i,r;i=J(i,t),r=new String(qt(i,n)),r.color=i}return r}function sn(e,t,{space:n,hue:r=`shorter`}={}){e=P(e),n||=e.space,n=I.get(n);let i=Object.values(n.coords);[e,t]=[e,t].map(e=>J(e,n));let[a,o]=[e,t].map(e=>e.coords),s=a.map((e,t)=>{let n=i[t],a=o[t];return n.type===`angle`&&([e,a]=le(r,[e,a])),cn(e,a)}),c=cn(e.alpha,t.alpha);return{space:n,coords:s,alpha:c}}function cn(e,t){return l(e)||l(t)?e===t?null:0:e-t}function ln(e,t){return e=P(e),t=P(t),e.space===t.space&&e.alpha===t.alpha&&e.coords.every((e,n)=>e===t.coords[n])}function X(e){return B(e,[L,`y`])}function un(e,t){V(e,[L,`y`],t)}function dn(e){Object.defineProperty(e.prototype,`luminance`,{get(){return X(this)},set(e){un(this,e)}})}var fn=Object.freeze({__proto__:null,getLuminance:X,register:dn,setLuminance:un});function pn(e,t){e=P(e),t=P(t);let n=Math.max(X(e),0),r=Math.max(X(t),0);return r>n&&([n,r]=[r,n]),(n+.05)/(r+.05)}var mn=.56,hn=.57,gn=.62,_n=.65,vn=.022,yn=1.414,bn=.1,xn=5e-4,Sn=1.14,Cn=.027,wn=1.14;function Tn(e){return e>=vn?e:e+(vn-e)**yn}function En(e){return(e<0?-1:1)*Math.abs(e)**2.4}function Dn(e,t){t=P(t),e=P(e);let n,r,i,a,o,s;t=J(t,`srgb`),[a,o,s]=t.coords.map(e=>l(e)?0:e);let c=En(a)*.2126729+En(o)*.7151522+En(s)*.072175;e=J(e,`srgb`),[a,o,s]=e.coords.map(e=>l(e)?0:e);let u=En(a)*.2126729+En(o)*.7151522+En(s)*.072175,d=Tn(c),f=Tn(u),p=f>d;return Math.abs(f-d)<xn?r=0:p?(n=f**mn-d**hn,r=n*Sn):(n=f**_n-d**gn,r=n*wn),i=Math.abs(r)<bn?0:r>0?r-Cn:r+Cn,i*100}function On(e,t){e=P(e),t=P(t);let n=Math.max(X(e),0),r=Math.max(X(t),0);r>n&&([n,r]=[r,n]);let i=n+r;return i===0?0:(n-r)/i}var kn=5e4;function An(e,t){e=P(e),t=P(t);let n=Math.max(X(e),0),r=Math.max(X(t),0);return r>n&&([n,r]=[r,n]),r===0?kn:(n-r)/r}function jn(e,t){e=P(e),t=P(t);let n=B(e,[H,`l`]),r=B(t,[H,`l`]);return Math.abs(n-r)}var Mn=216/24389,Nn=24/116,Pn=24389/27,Fn=D.D65,In=new I({id:`lab-d65`,name:`Lab D65`,coords:{l:{refRange:[0,100],name:`Lightness`},a:{refRange:[-125,125]},b:{refRange:[-125,125]}},white:Fn,base:L,fromBase(e){let t=e.map((e,t)=>e/Fn[t]).map(e=>e>Mn?Math.cbrt(e):(Pn*e+16)/116);return[116*t[1]-16,500*(t[0]-t[1]),200*(t[1]-t[2])]},toBase(e){let t=[];return t[1]=(e[0]+16)/116,t[0]=e[1]/500+t[1],t[2]=t[1]-e[2]/200,[t[0]>Nn?t[0]**3:(116*t[0]-16)/Pn,e[0]>8?((e[0]+16)/116)**3:e[0]/Pn,t[2]>Nn?t[2]**3:(116*t[2]-16)/Pn].map((e,t)=>e*Fn[t])},formats:{"lab-d65":{coords:[`<number> | <percentage>`,`<number> | <percentage>`,`<number> | <percentage>`]}}}),Ln=5**.5*.5+.5;function Rn(e,t){e=P(e),t=P(t);let n=B(e,[In,`l`]),r=B(t,[In,`l`]),i=Math.abs(n**+Ln-r**+Ln)**(1/Ln)*Math.SQRT2-40;return i<7.5?0:i}var zn=Object.freeze({__proto__:null,contrastAPCA:Dn,contrastDeltaPhi:Rn,contrastLstar:jn,contrastMichelson:On,contrastWCAG21:pn,contrastWeber:An});function Bn(e,t,n){o(n)&&(n={algorithm:n});let{algorithm:r,...i}=n||{};if(!r){let e=Object.keys(zn).map(e=>e.replace(/^contrast/,``)).join(`, `);throw TypeError(`contrast() function needs a contrast algorithm. Please specify one of: ${e}`)}e=P(e),t=P(t);for(let n in zn)if(`contrast`+r.toLowerCase()===n.toLowerCase())return zn[n](e,t,i);throw TypeError(`Unknown contrast algorithm: ${r}`)}function Vn(e){let[t,n,r]=z(e,L),i=t+15*n+3*r;return[4*t/i,9*n/i]}function Hn(e){let[t,n,r]=z(e,L),i=t+n+r;return[t/i,n/i]}function Un(e){Object.defineProperty(e.prototype,`uv`,{get(){return Vn(this)}}),Object.defineProperty(e.prototype,`xy`,{get(){return Hn(this)}})}var Wn=Object.freeze({__proto__:null,register:Un,uv:Vn,xy:Hn});function Gn(e,t,n={}){o(n)&&(n={method:n});let{method:r=C.deltaE,...i}=n;for(let n in Ht)if(`deltae`+r.toLowerCase()===n.toLowerCase())return Ht[n](e,t,i);throw TypeError(`Unknown deltaE method: ${r}`)}function Kn(e,t=.25){return V(e,[I.get(`oklch`,`lch`),`l`],e=>e*(1+t))}function qn(e,t=.25){return V(e,[I.get(`oklch`,`lch`),`l`],e=>e*(1-t))}Kn.returns=`color`,qn.returns=`color`;var Jn=Object.freeze({__proto__:null,darken:qn,lighten:Kn});function Yn(e,t,n,r={}){return[e,t]=[P(e),P(t)],s(n)===`object`&&([n,r]=[.5,n]),Zn(e,t,r)(n??.5)}function Xn(e,t,n={}){let r;Qn(e)&&([r,n]=[e,t],[e,t]=r.rangeArgs.colors);let{maxDeltaE:i,deltaEMethod:a,steps:o=2,maxSteps:s=1e3,...c}=n;r||=([e,t]=[P(e),P(t)],Zn(e,t,c));let l=Gn(e,t),u=i>0?Math.max(o,Math.ceil(l/i)+1):o,d=[];if(s!==void 0&&(u=Math.min(u,s)),u===1)d=[{p:.5,color:r(.5)}];else{let e=1/(u-1);d=Array.from({length:u},(t,n)=>{let i=n*e;return{p:i,color:r(i)}})}if(i>0){let e=d.reduce((e,t,n)=>{if(n===0)return 0;let r=Gn(t.color,d[n-1].color,a);return Math.max(e,r)},0);for(;e>i;){e=0;for(let t=1;t<d.length&&d.length<s;t++){let n=d[t-1],i=d[t],a=(i.p+n.p)/2,o=r(a);e=Math.max(e,Gn(o,n.color),Gn(o,i.color)),d.splice(t,0,{p:a,color:r(a)}),t++}}}return d=d.map(e=>e.color),d}function Zn(e,t,n={}){if(Qn(e)){let[n,r]=[e,t];return Zn(...n.rangeArgs.colors,{...n.rangeArgs.options,...r})}let{space:r,outputSpace:i,progression:a,premultiplied:o}=n;e=P(e),t=P(t),e=Se(e),t=Se(t);let s={colors:[e,t],options:n};if(r=r?I.get(r):I.registry[C.interpolationSpace]||e.space,i=i?I.get(i):r,e=J(e,r),t=J(t,r),e=q(e),t=q(t),r.coords.h&&r.coords.h.type===`angle`){let i=n.hue=n.hue||`shorter`,a=[r,`h`],[o,s]=[B(e,a),B(t,a)];l(o)&&!l(s)?o=s:l(s)&&!l(o)&&(s=o),[o,s]=le(i,[o,s]),V(e,a,o),V(t,a,s)}return o&&(e.coords=e.coords.map(t=>t*e.alpha),t.coords=t.coords.map(e=>e*t.alpha)),Object.assign(n=>{n=a?a(n):n;let s=e.coords.map((e,r)=>{let i=t.coords[r];return f(e,i,n)}),c=f(e.alpha,t.alpha,n),l={space:r,coords:s,alpha:c};return o&&(l.coords=l.coords.map(e=>e/c)),i!==r&&(l=J(l,i)),l},{rangeArgs:s})}function Qn(e){return s(e)===`function`&&!!e.rangeArgs}C.interpolationSpace=`lab`;function $n(e){e.defineFunction(`mix`,Yn,{returns:`color`}),e.defineFunction(`range`,Zn,{returns:`function<color>`}),e.defineFunction(`steps`,Xn,{returns:`array<color>`})}var er=Object.freeze({__proto__:null,isRange:Qn,mix:Yn,range:Zn,register:$n,steps:Xn}),tr=new I({id:`hsl`,name:`HSL`,coords:{h:{refRange:[0,360],type:`angle`,name:`Hue`},s:{range:[0,100],name:`Saturation`},l:{range:[0,100],name:`Lightness`}},base:nn,fromBase:e=>{let t=Math.max(...e),n=Math.min(...e),[r,i,a]=e,[o,s,c]=[null,0,(n+t)/2],l=t-n;if(l!==0){switch(s=c===0||c===1?0:(t-c)/Math.min(c,1-c),t){case r:o=(i-a)/l+(i<a?6:0);break;case i:o=(a-r)/l+2;break;case a:o=(r-i)/l+4}o*=60}return s<0&&(o+=180,s=Math.abs(s)),o>=360&&(o-=360),[o,s*100,c*100]},toBase:e=>{let[t,n,r]=e;t%=360,t<0&&(t+=360),n/=100,r/=100;function i(e){let i=(e+t/30)%12,a=n*Math.min(r,1-r);return r-a*Math.max(-1,Math.min(i-3,9-i,1))}return[i(0),i(8),i(4)]},formats:{hsl:{coords:[`<number> | <angle>`,`<percentage> | <number>`,`<percentage> | <number>`]},hsla:{coords:[`<number> | <angle>`,`<percentage> | <number>`,`<percentage> | <number>`],commas:!0,alpha:!0}}}),nr=new I({id:`hsv`,name:`HSV`,coords:{h:{refRange:[0,360],type:`angle`,name:`Hue`},s:{range:[0,100],name:`Saturation`},v:{range:[0,100],name:`Value`}},base:nn,fromBase(e){let t=Math.max(...e),n=Math.min(...e),[r,i,a]=e,[o,s,c]=[null,0,t],l=t-n;if(l!==0){switch(t){case r:o=(i-a)/l+(i<a?6:0);break;case i:o=(a-r)/l+2;break;case a:o=(r-i)/l+4}o*=60}return c&&(s=l/c),o>=360&&(o-=360),[o,s*100,c*100]},toBase(e){let[t,n,r]=e;t%=360,t<0&&(t+=360),n/=100,r/=100;function i(e){let i=(e+t/60)%6;return r-r*n*Math.max(0,Math.min(i,4-i,1))}return[i(5),i(3),i(1)]},formats:{color:{id:`--hsv`,coords:[`<number> | <angle>`,`<percentage> | <number>`,`<percentage> | <number>`]}}}),rr=new I({id:`hwb`,name:`HWB`,coords:{h:{refRange:[0,360],type:`angle`,name:`Hue`},w:{range:[0,100],name:`Whiteness`},b:{range:[0,100],name:`Blackness`}},base:nr,fromBase(e){let[t,n,r]=e;return[t,r*(100-n)/100,100-r]},toBase(e){let[t,n,r]=e;n/=100,r/=100;let i=n+r;if(i>=1)return[t,0,n/i*100];let a=1-r;return[t,(a===0?0:1-n/a)*100,a*100]},formats:{hwb:{coords:[`<number> | <angle>`,`<percentage> | <number>`,`<percentage> | <number>`]}}}),ir=new R({id:`a98rgb-linear`,cssId:`--a98-rgb-linear`,name:`Linear Adobe® 98 RGB compatible`,white:`D65`,toXYZ_M:[[.5766690429101305,.1855582379065463,.1882286462349947],[.29734497525053605,.6273635662554661,.07529145849399788],[.02703136138641234,.07068885253582723,.9913375368376388]],fromXYZ_M:[[2.0415879038107465,-.5650069742788596,-.34473135077832956],[-.9692436362808795,1.8759675015077202,.04155505740717557],[.013444280632031142,-.11836239223101838,1.0151749943912054]]}),ar=new R({id:`a98rgb`,cssId:`a98-rgb`,name:`Adobe® 98 RGB compatible`,base:ir,toBase:e=>e.map(e=>Math.abs(e)**(563/256)*Math.sign(e)),fromBase:e=>e.map(e=>Math.abs(e)**(256/563)*Math.sign(e))}),or=new R({id:`prophoto-linear`,cssId:`--prophoto-rgb-linear`,name:`Linear ProPhoto`,white:`D50`,base:ie,toXYZ_M:[[.7977666449006423,.13518129740053308,.0313477341283922],[.2880748288194013,.711835234241873,8993693872564e-17],[0,0,.8251046025104602]],fromXYZ_M:[[1.3457868816471583,-.25557208737979464,-.05110186497554526],[-.5446307051249