@protonradio/proton-ui 0.7.5-beta10 → 0.7.5-beta12
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/dist/index.cjs.js +5 -5
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +403 -404
- package/dist/index.es.js.map +1 -1
- package/dist/{utils-ZbliEUT6.js → utils-BUwoPI1e.js} +2 -2
- package/dist/utils-BUwoPI1e.js.map +1 -0
- package/dist/{utils-KedSkjS1.mjs → utils-Bc2wVuvD.mjs} +17 -18
- package/dist/utils-Bc2wVuvD.mjs.map +1 -0
- package/dist/utils.cjs.js +1 -1
- package/dist/utils.es.js +1 -1
- package/package.json +1 -1
- package/dist/utils-KedSkjS1.mjs.map +0 -1
- package/dist/utils-ZbliEUT6.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const m=require("./colors-BdogYmJi.js"),f=require("color2k");var w=function(n,o){return n<o?-1:n>o?1:0},F=function(n){return n.reduce(function(o,a){return o+a},0)},j=function(){function n(a){this.colors=a}var o=n.prototype;return o.palette=function(){return this.colors},o.map=function(a){return a},n}(),q=function(){function n(e,t,s){return(e<<10)+(t<<5)+s}function o(e){var t=[],s=!1;function u(){t.sort(e),s=!0}return{push:function(c){t.push(c),s=!1},peek:function(c){return s||u(),c===void 0&&(c=t.length-1),t[c]},pop:function(){return s||u(),t.pop()},size:function(){return t.length},map:function(c){return t.map(c)},debug:function(){return s||u(),t}}}function a(e,t,s,u,c,r,h){var l=this;l.r1=e,l.r2=t,l.g1=s,l.g2=u,l.b1=c,l.b2=r,l.histo=h}function R(){this.vboxes=new o(function(e,t){return w(e.vbox.count()*e.vbox.volume(),t.vbox.count()*t.vbox.volume())})}function A(e,t){if(t.count()){var s=t.r2-t.r1+1,u=t.g2-t.g1+1,c=Math.max.apply(null,[s,u,t.b2-t.b1+1]);if(t.count()==1)return[t.copy()];var r,h,l,E,_=0,v=[],L=[];if(c==s)for(r=t.r1;r<=t.r2;r++){for(E=0,h=t.g1;h<=t.g2;h++)for(l=t.b1;l<=t.b2;l++)E+=e[n(r,h,l)]||0;v[r]=_+=E}else if(c==u)for(r=t.g1;r<=t.g2;r++){for(E=0,h=t.r1;h<=t.r2;h++)for(l=t.b1;l<=t.b2;l++)E+=e[n(h,r,l)]||0;v[r]=_+=E}else for(r=t.b1;r<=t.b2;r++){for(E=0,h=t.r1;h<=t.r2;h++)for(l=t.g1;l<=t.g2;l++)E+=e[n(h,l,r)]||0;v[r]=_+=E}return v.forEach(function(C,g){L[g]=_-C}),function(C){var g,d,p,I,b,D=C+"1",Y=C+"2",G=0;for(r=t[D];r<=t[Y];r++)if(v[r]>_/2){for(p=t.copy(),I=t.copy(),b=(g=r-t[D])<=(d=t[Y]-r)?Math.min(t[Y]-1,~~(r+d/2)):Math.max(t[D],~~(r-1-g/2));!v[b];)b++;for(G=L[b];!G&&v[b-1];)G=L[--b];return p[Y]=b,I[D]=p[Y]+1,[p,I]}}(c==s?"r":c==u?"g":"b")}}return a.prototype={volume:function(e){var t=this;return t._volume&&!e||(t._volume=(t.r2-t.r1+1)*(t.g2-t.g1+1)*(t.b2-t.b1+1)),t._volume},count:function(e){var t=this,s=t.histo;if(!t._count_set||e){var u,c,r,h=0;for(u=t.r1;u<=t.r2;u++)for(c=t.g1;c<=t.g2;c++)for(r=t.b1;r<=t.b2;r++)h+=s[n(u,c,r)]||0;t._count=h,t._count_set=!0}return t._count},copy:function(){var e=this;return new a(e.r1,e.r2,e.g1,e.g2,e.b1,e.b2,e.histo)},avg:function(e){var t=this,s=t.histo;if(!t._avg||e){var u,c,r,h,l=0,E=0,_=0,v=0;if(t.r1===t.r2&&t.g1===t.g2&&t.b1===t.b2)t._avg=[t.r1<<3,t.g1<<3,t.b1<<3];else{for(c=t.r1;c<=t.r2;c++)for(r=t.g1;r<=t.g2;r++)for(h=t.b1;h<=t.b2;h++)l+=u=s[n(c,r,h)]||0,E+=u*(c+.5)*8,_+=u*(r+.5)*8,v+=u*(h+.5)*8;t._avg=l?[~~(E/l),~~(_/l),~~(v/l)]:[~~(8*(t.r1+t.r2+1)/2),~~(8*(t.g1+t.g2+1)/2),~~(8*(t.b1+t.b2+1)/2)]}}return t._avg},contains:function(e){var t=this,s=e[0]>>3;return gval=e[1]>>3,bval=e[2]>>3,s>=t.r1&&s<=t.r2&&gval>=t.g1&&gval<=t.g2&&bval>=t.b1&&bval<=t.b2}},R.prototype={push:function(e){this.vboxes.push({vbox:e,color:e.avg()})},palette:function(){return this.vboxes.map(function(e){return e.color})},size:function(){return this.vboxes.size()},map:function(e){for(var t=this.vboxes,s=0;s<t.size();s++)if(t.peek(s).vbox.contains(e))return t.peek(s).color;return this.nearest(e)},nearest:function(e){for(var t,s,u,c=this.vboxes,r=0;r<c.size();r++)((s=Math.sqrt(Math.pow(e[0]-c.peek(r).color[0],2)+Math.pow(e[1]-c.peek(r).color[1],2)+Math.pow(e[2]-c.peek(r).color[2],2)))<t||t===void 0)&&(t=s,u=c.peek(r).color);return u},forcebw:function(){var e=this.vboxes;e.sort(function(c,r){return w(F(c.color),F(r.color))});var t=e[0].color;t[0]<5&&t[1]<5&&t[2]<5&&(e[0].color=[0,0,0]);var s=e.length-1,u=e[s].color;u[0]>251&&u[1]>251&&u[2]>251&&(e[s].color=[255,255,255])}},{quantize:function(e,t){if(!Number.isInteger(t)||t<1||t>256)throw new Error("Invalid maximum color count. It must be an integer between 1 and 256.");if(!e.length||t<2||t>256||!e.length||t<2||t>256)return!1;for(var s=[],u=new Set,c=0;c<e.length;c++){var r=e[c],h=r.join(",");u.has(h)||(u.add(h),s.push(r))}if(s.length<=t)return new j(s);var l=function(g){var d,p=new Array(32768);return g.forEach(function(I){d=n(I[0]>>3,I[1]>>3,I[2]>>3),p[d]=(p[d]||0)+1}),p}(e);l.forEach(function(){});var E=function(g,d){var p,I,b,D=1e6,Y=0,G=1e6,y=0,U=1e6,H=0;return g.forEach(function(N){(p=N[0]>>3)<D?D=p:p>Y&&(Y=p),(I=N[1]>>3)<G?G=I:I>y&&(y=I),(b=N[2]>>3)<U?U=b:b>H&&(H=b)}),new a(D,Y,G,y,U,H,d)}(e,l),_=new o(function(g,d){return w(g.count(),d.count())});function v(g,d){for(var p,I=g.size(),b=0;b<1e3;){if(I>=d||b++>1e3)return;if((p=g.pop()).count()){var D=A(l,p),Y=D[0],G=D[1];if(!Y)return;g.push(Y),G&&(g.push(G),I++)}else g.push(p),b++}}_.push(E),v(_,.75*t);for(var L=new o(function(g,d){return w(g.count()*g.volume(),d.count()*d.volume())});_.size();)L.push(_.pop());v(L,t);for(var C=new R;L.size();)C.push(L.pop());return C}}}().quantize,z=function(n){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),this.width=this.canvas.width=n.naturalWidth,this.height=this.canvas.height=n.naturalHeight,this.context.drawImage(n,0,0,this.width,this.height)};z.prototype.getImageData=function(){return this.context.getImageData(0,0,this.width,this.height)};var P=function(){};P.prototype.getColor=function(n,o){return o===void 0&&(o=10),this.getPalette(n,5,o)[0]},P.prototype.getPalette=function(n,o,a){var R=function(s){var u=s.colorCount,c=s.quality;if(u!==void 0&&Number.isInteger(u)){if(u===1)throw new Error("colorCount should be between 2 and 20. To get one color, call getColor() instead of getPalette()");u=Math.max(u,2),u=Math.min(u,20)}else u=10;return(c===void 0||!Number.isInteger(c)||c<1)&&(c=10),{colorCount:u,quality:c}}({colorCount:o,quality:a}),A=new z(n),e=function(s,u,c){for(var r,h,l,E,_,v=s,L=[],C=0;C<u;C+=c)h=v[0+(r=4*C)],l=v[r+1],E=v[r+2],((_=v[r+3])===void 0||_>=125)&&(h>250&&l>250&&E>250||L.push([h,l,E]));return L}(A.getImageData().data,A.width*A.height,R.quality),t=q(e,R.colorCount);return t?t.palette():null},P.prototype.getColorFromUrl=function(n,o,a){var R=this,A=document.createElement("img");A.addEventListener("load",function(){var e=R.getPalette(A,5,a);o(e[0],n)}),A.src=n},P.prototype.getImageData=function(n,o){var a=new XMLHttpRequest;a.open("GET",n,!0),a.responseType="arraybuffer",a.onload=function(){if(this.status==200){var R=new Uint8Array(this.response);i=R.length;for(var A=new Array(i),e=0;e<R.length;e++)A[e]=String.fromCharCode(R[e]);var t=A.join(""),s=window.btoa(t);o("data:image/png;base64,"+s)}},a.send()},P.prototype.getColorAsync=function(n,o,a){var R=this;this.getImageData(n,function(A){var e=document.createElement("img");e.addEventListener("load",function(){var t=R.getPalette(e,5,a);o(t[0],this)}),e.src=A})};const B="rgba(83, 82, 83, 1)",$={BASE_COLOR:B,BRAND:{PRIMARY:m.BRAND.PRIMARY,PRIMARY_LIGHT:m.BRAND.PRIMARY_LIGHT,SECONDARY:m.BRAND.SECONDARY},PRIMARY:{PRIMARY_SUPER_DARK:m.GRAYSCALE.GRAY_SUPER_DARK,PRIMARY_DARK:m.GRAYSCALE.GRAY_DARK,PRIMARY_MEDIUM:m.GRAYSCALE.GRAY_MEDIUM,PRIMARY_MEDIUM_LIGHT:m.GRAYSCALE.GRAY_MEDIUM_LIGHT,PRIMARY_LIGHT:m.GRAYSCALE.GRAY_LIGHT,PRIMARY_LIGHTEST:m.GRAYSCALE.GRAY_LIGHTEST,PRIMARY_SUPER_LIGHT:m.GRAYSCALE.GRAY_SUPER_LIGHT},SECONDARY:{SECONDARY_SUPER_DARK:m.GRAYSCALE.GRAY_SUPER_DARK,SECONDARY_DARK:m.GRAYSCALE.GRAY_DARK,SECONDARY_MEDIUM:m.GRAYSCALE.GRAY_MEDIUM,SECONDARY_MEDIUM_LIGHT:m.GRAYSCALE.GRAY_MEDIUM_LIGHT,SECONDARY_LIGHT:m.GRAYSCALE.GRAY_LIGHT,SECONDARY_LIGHTEST:m.GRAYSCALE.GRAY_LIGHTEST,SECONDARY_SUPER_LIGHT:m.GRAYSCALE.GRAY_SUPER_LIGHT}},O=(n,o)=>o===void 0?`rgb(${n[0]}, ${n[1]}, ${n[2]})`:`rgba(${n[0]}, ${n[1]}, ${n[2]}, ${o})`,W=(n,o)=>f.toRgba(f.transparentize(n,o)),M=(n,o)=>f.toRgba(f.saturate(n,o)),T=(n,o)=>f.toRgba(f.desaturate(n,o)),X=n=>{try{return new P().getColor(n)}catch{return[255,255,255]}},J=n=>{const o=O(n),a=f.getScale("#FFFFFF",o,"#000000"),R=Array.from({length:12},(r,h)=>{const l=a(h/11);return T(l,.0085)}),A=R.map(r=>M(k(r),.005)),e=f.toRgba(M(f.adjustHue(o,180),1)),t=f.getScale("#FFFFFF",e,"#000000"),s=Array.from({length:12},(r,h)=>{const l=t(h/11);return T(l,.1)}),u=s.map(r=>T(k(r),.22)),c=T(Q(M(A[5],.115)),.05);return{BASE_COLOR:O(n),BRAND:{PRIMARY:c,PRIMARY_LIGHT:S(c,.25,{min:.6,max:.8}),SECONDARY:T(u[4],.02)},PRIMARY:{PRIMARY_SUPER_DARK:S(x(R[9]),-.6,{min:0,max:.02}),PRIMARY_DARK:S(x(R[8]),-.4,{min:.01,max:.02}),PRIMARY_MEDIUM:S(A[7],-.2,{min:0,max:.11}),PRIMARY_MEDIUM_LIGHT:S(T(A[6],.1),.08),PRIMARY_LIGHT:S(M(A[5],.1),.16),PRIMARY_LIGHTEST:S(M(A[3],.2),.12,{min:.5,max:.9}),PRIMARY_SUPER_LIGHT:S(A[1],.02,{min:.86,max:.98})},SECONDARY:{SECONDARY_SUPER_DARK:S(x(s[9]),-.6,{min:0,max:.02}),SECONDARY_DARK:S(x(s[8]),-.4,{min:.01,max:.02}),SECONDARY_MEDIUM:S(u[7],-.2,{min:0,max:.11}),SECONDARY_MEDIUM_LIGHT:S(u[6],.1),SECONDARY_LIGHT:S(M(u[5],.1),.16),SECONDARY_LIGHTEST:S(M(u[3],.2),.12,{min:.5,max:.9}),SECONDARY_SUPER_LIGHT:S(u[0],.02,{min:.86,max:.98})}}},S=(n,o,a={min:.03,max:.97})=>{let R=n,A=f.getLuminance(R);if(a.min<0&&(a.min=0),a.max>1&&(a.max=1),a.min>=a.max)throw new Error("Invalid range: min must be less than max");if(o>0){const t=a.max-A;if(t<=0)return f.toRgba(R);const s=o*(t/(1-A));R=f.lighten(R,s)}else if(o<0){const t=A-a.min;if(t<=0)return f.toRgba(R);const s=o*(t/A);R=f.darken(R,Math.abs(s))}const e=f.getLuminance(R);return(e>a.max||e<a.min)&&(R=K(R,a)),f.toRgba(R)},K=(n,o)=>{let a=n,R=f.getLuminance(a);for(;R>o.max;)a=f.darken(a,.05),R=f.getLuminance(a);for(;R<o.min;)a=f.lighten(a,.05),R=f.getLuminance(a);return f.toRgba(a)},x=n=>{for(;f.hasBadContrast(n,"readable",m.GRAYSCALE.GRAY_DARK);)n=f.lighten(n,.01);return f.toRgba(n)},Q=n=>{for(;f.hasBadContrast(m.GRAYSCALE.GRAY_SUPER_LIGHT,"readable",n);)n=f.darken(n,.01);return f.toRgba(n)},k=n=>{let o=n,a=f.getLuminance(f.toRgba(o)),R=0;const A=6;for(;a<.16&&R<A;)R++,o=f.lighten(o,.1),a=f.getLuminance(f.toRgba(o));for(;a>.6&&R<A;)R++,o=f.darken(o,.1),a=f.getLuminance(f.toRgba(o));return f.toRgba(o)},V=n=>typeof n=="string"||n instanceof String;function Z(...n){return n.filter(V).join(" ")}const tt=n=>{if(/^https?:\/\//.test(n)){const o=document.createElement("a");return o.href=n,o.hostname}return window.location.hostname},nt=n=>{const o=window.location.hostname,a=tt(n);return o!==a},et=(n,o)=>{if(n.metaKey||n.altKey||n.ctrlKey||n.shiftKey||n.button&&n.button!==0)return;n.preventDefault();const a=o.startsWith("/")?o:`/${o}`;window.history.pushState({},"",a),window.dispatchEvent(new PopStateEvent("popstate"))};exports.DEFAULT_BACKGROUND=B;exports.DEFAULT_PALETTE=$;exports.arrayToRgbString=O;exports.csx=Z;exports.desaturate=T;exports.generatePalette=J;exports.getDominantColor=X;exports.handleInternalNavigation=et;exports.isUrlExternal=nt;exports.saturate=M;exports.transparentize=W;
|
|
2
|
-
//# sourceMappingURL=utils-
|
|
1
|
+
"use strict";const m=require("./colors-BdogYmJi.js"),f=require("color2k");var w=function(n,o){return n<o?-1:n>o?1:0},F=function(n){return n.reduce(function(o,a){return o+a},0)},j=function(){function n(a){this.colors=a}var o=n.prototype;return o.palette=function(){return this.colors},o.map=function(a){return a},n}(),q=function(){function n(e,t,s){return(e<<10)+(t<<5)+s}function o(e){var t=[],s=!1;function u(){t.sort(e),s=!0}return{push:function(c){t.push(c),s=!1},peek:function(c){return s||u(),c===void 0&&(c=t.length-1),t[c]},pop:function(){return s||u(),t.pop()},size:function(){return t.length},map:function(c){return t.map(c)},debug:function(){return s||u(),t}}}function a(e,t,s,u,c,r,h){var l=this;l.r1=e,l.r2=t,l.g1=s,l.g2=u,l.b1=c,l.b2=r,l.histo=h}function R(){this.vboxes=new o(function(e,t){return w(e.vbox.count()*e.vbox.volume(),t.vbox.count()*t.vbox.volume())})}function A(e,t){if(t.count()){var s=t.r2-t.r1+1,u=t.g2-t.g1+1,c=Math.max.apply(null,[s,u,t.b2-t.b1+1]);if(t.count()==1)return[t.copy()];var r,h,l,E,_=0,v=[],L=[];if(c==s)for(r=t.r1;r<=t.r2;r++){for(E=0,h=t.g1;h<=t.g2;h++)for(l=t.b1;l<=t.b2;l++)E+=e[n(r,h,l)]||0;v[r]=_+=E}else if(c==u)for(r=t.g1;r<=t.g2;r++){for(E=0,h=t.r1;h<=t.r2;h++)for(l=t.b1;l<=t.b2;l++)E+=e[n(h,r,l)]||0;v[r]=_+=E}else for(r=t.b1;r<=t.b2;r++){for(E=0,h=t.r1;h<=t.r2;h++)for(l=t.g1;l<=t.g2;l++)E+=e[n(h,l,r)]||0;v[r]=_+=E}return v.forEach(function(C,g){L[g]=_-C}),function(C){var g,d,p,I,b,D=C+"1",Y=C+"2",G=0;for(r=t[D];r<=t[Y];r++)if(v[r]>_/2){for(p=t.copy(),I=t.copy(),b=(g=r-t[D])<=(d=t[Y]-r)?Math.min(t[Y]-1,~~(r+d/2)):Math.max(t[D],~~(r-1-g/2));!v[b];)b++;for(G=L[b];!G&&v[b-1];)G=L[--b];return p[Y]=b,I[D]=p[Y]+1,[p,I]}}(c==s?"r":c==u?"g":"b")}}return a.prototype={volume:function(e){var t=this;return t._volume&&!e||(t._volume=(t.r2-t.r1+1)*(t.g2-t.g1+1)*(t.b2-t.b1+1)),t._volume},count:function(e){var t=this,s=t.histo;if(!t._count_set||e){var u,c,r,h=0;for(u=t.r1;u<=t.r2;u++)for(c=t.g1;c<=t.g2;c++)for(r=t.b1;r<=t.b2;r++)h+=s[n(u,c,r)]||0;t._count=h,t._count_set=!0}return t._count},copy:function(){var e=this;return new a(e.r1,e.r2,e.g1,e.g2,e.b1,e.b2,e.histo)},avg:function(e){var t=this,s=t.histo;if(!t._avg||e){var u,c,r,h,l=0,E=0,_=0,v=0;if(t.r1===t.r2&&t.g1===t.g2&&t.b1===t.b2)t._avg=[t.r1<<3,t.g1<<3,t.b1<<3];else{for(c=t.r1;c<=t.r2;c++)for(r=t.g1;r<=t.g2;r++)for(h=t.b1;h<=t.b2;h++)l+=u=s[n(c,r,h)]||0,E+=u*(c+.5)*8,_+=u*(r+.5)*8,v+=u*(h+.5)*8;t._avg=l?[~~(E/l),~~(_/l),~~(v/l)]:[~~(8*(t.r1+t.r2+1)/2),~~(8*(t.g1+t.g2+1)/2),~~(8*(t.b1+t.b2+1)/2)]}}return t._avg},contains:function(e){var t=this,s=e[0]>>3;return gval=e[1]>>3,bval=e[2]>>3,s>=t.r1&&s<=t.r2&&gval>=t.g1&&gval<=t.g2&&bval>=t.b1&&bval<=t.b2}},R.prototype={push:function(e){this.vboxes.push({vbox:e,color:e.avg()})},palette:function(){return this.vboxes.map(function(e){return e.color})},size:function(){return this.vboxes.size()},map:function(e){for(var t=this.vboxes,s=0;s<t.size();s++)if(t.peek(s).vbox.contains(e))return t.peek(s).color;return this.nearest(e)},nearest:function(e){for(var t,s,u,c=this.vboxes,r=0;r<c.size();r++)((s=Math.sqrt(Math.pow(e[0]-c.peek(r).color[0],2)+Math.pow(e[1]-c.peek(r).color[1],2)+Math.pow(e[2]-c.peek(r).color[2],2)))<t||t===void 0)&&(t=s,u=c.peek(r).color);return u},forcebw:function(){var e=this.vboxes;e.sort(function(c,r){return w(F(c.color),F(r.color))});var t=e[0].color;t[0]<5&&t[1]<5&&t[2]<5&&(e[0].color=[0,0,0]);var s=e.length-1,u=e[s].color;u[0]>251&&u[1]>251&&u[2]>251&&(e[s].color=[255,255,255])}},{quantize:function(e,t){if(!Number.isInteger(t)||t<1||t>256)throw new Error("Invalid maximum color count. It must be an integer between 1 and 256.");if(!e.length||t<2||t>256||!e.length||t<2||t>256)return!1;for(var s=[],u=new Set,c=0;c<e.length;c++){var r=e[c],h=r.join(",");u.has(h)||(u.add(h),s.push(r))}if(s.length<=t)return new j(s);var l=function(g){var d,p=new Array(32768);return g.forEach(function(I){d=n(I[0]>>3,I[1]>>3,I[2]>>3),p[d]=(p[d]||0)+1}),p}(e);l.forEach(function(){});var E=function(g,d){var p,I,b,D=1e6,Y=0,G=1e6,y=0,U=1e6,H=0;return g.forEach(function(N){(p=N[0]>>3)<D?D=p:p>Y&&(Y=p),(I=N[1]>>3)<G?G=I:I>y&&(y=I),(b=N[2]>>3)<U?U=b:b>H&&(H=b)}),new a(D,Y,G,y,U,H,d)}(e,l),_=new o(function(g,d){return w(g.count(),d.count())});function v(g,d){for(var p,I=g.size(),b=0;b<1e3;){if(I>=d||b++>1e3)return;if((p=g.pop()).count()){var D=A(l,p),Y=D[0],G=D[1];if(!Y)return;g.push(Y),G&&(g.push(G),I++)}else g.push(p),b++}}_.push(E),v(_,.75*t);for(var L=new o(function(g,d){return w(g.count()*g.volume(),d.count()*d.volume())});_.size();)L.push(_.pop());v(L,t);for(var C=new R;L.size();)C.push(L.pop());return C}}}().quantize,z=function(n){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),this.width=this.canvas.width=n.naturalWidth,this.height=this.canvas.height=n.naturalHeight,this.context.drawImage(n,0,0,this.width,this.height)};z.prototype.getImageData=function(){return this.context.getImageData(0,0,this.width,this.height)};var T=function(){};T.prototype.getColor=function(n,o){return o===void 0&&(o=10),this.getPalette(n,5,o)[0]},T.prototype.getPalette=function(n,o,a){var R=function(s){var u=s.colorCount,c=s.quality;if(u!==void 0&&Number.isInteger(u)){if(u===1)throw new Error("colorCount should be between 2 and 20. To get one color, call getColor() instead of getPalette()");u=Math.max(u,2),u=Math.min(u,20)}else u=10;return(c===void 0||!Number.isInteger(c)||c<1)&&(c=10),{colorCount:u,quality:c}}({colorCount:o,quality:a}),A=new z(n),e=function(s,u,c){for(var r,h,l,E,_,v=s,L=[],C=0;C<u;C+=c)h=v[0+(r=4*C)],l=v[r+1],E=v[r+2],((_=v[r+3])===void 0||_>=125)&&(h>250&&l>250&&E>250||L.push([h,l,E]));return L}(A.getImageData().data,A.width*A.height,R.quality),t=q(e,R.colorCount);return t?t.palette():null},T.prototype.getColorFromUrl=function(n,o,a){var R=this,A=document.createElement("img");A.addEventListener("load",function(){var e=R.getPalette(A,5,a);o(e[0],n)}),A.src=n},T.prototype.getImageData=function(n,o){var a=new XMLHttpRequest;a.open("GET",n,!0),a.responseType="arraybuffer",a.onload=function(){if(this.status==200){var R=new Uint8Array(this.response);i=R.length;for(var A=new Array(i),e=0;e<R.length;e++)A[e]=String.fromCharCode(R[e]);var t=A.join(""),s=window.btoa(t);o("data:image/png;base64,"+s)}},a.send()},T.prototype.getColorAsync=function(n,o,a){var R=this;this.getImageData(n,function(A){var e=document.createElement("img");e.addEventListener("load",function(){var t=R.getPalette(e,5,a);o(t[0],this)}),e.src=A})};const B="rgba(83, 82, 83, 1)",$={BASE_COLOR:B,BRAND:{PRIMARY:m.BRAND.PRIMARY,PRIMARY_LIGHT:m.BRAND.PRIMARY_LIGHT,SECONDARY:m.BRAND.SECONDARY},PRIMARY:{PRIMARY_SUPER_DARK:m.GRAYSCALE.GRAY_SUPER_DARK,PRIMARY_DARK:m.GRAYSCALE.GRAY_DARK,PRIMARY_MEDIUM:m.GRAYSCALE.GRAY_MEDIUM,PRIMARY_MEDIUM_LIGHT:m.GRAYSCALE.GRAY_MEDIUM_LIGHT,PRIMARY_LIGHT:m.GRAYSCALE.GRAY_LIGHT,PRIMARY_LIGHTEST:m.GRAYSCALE.GRAY_LIGHTEST,PRIMARY_SUPER_LIGHT:m.GRAYSCALE.GRAY_SUPER_LIGHT},SECONDARY:{SECONDARY_SUPER_DARK:m.GRAYSCALE.GRAY_SUPER_DARK,SECONDARY_DARK:m.GRAYSCALE.GRAY_DARK,SECONDARY_MEDIUM:m.GRAYSCALE.GRAY_MEDIUM,SECONDARY_MEDIUM_LIGHT:m.GRAYSCALE.GRAY_MEDIUM_LIGHT,SECONDARY_LIGHT:m.GRAYSCALE.GRAY_LIGHT,SECONDARY_LIGHTEST:m.GRAYSCALE.GRAY_LIGHTEST,SECONDARY_SUPER_LIGHT:m.GRAYSCALE.GRAY_SUPER_LIGHT}},O=(n,o)=>o===void 0?`rgb(${n[0]}, ${n[1]}, ${n[2]})`:`rgba(${n[0]}, ${n[1]}, ${n[2]}, ${o})`,W=(n,o)=>f.toRgba(f.transparentize(n,o)),M=(n,o)=>f.toRgba(f.saturate(n,o)),P=(n,o)=>f.toRgba(f.desaturate(n,o)),X=n=>{try{return new T().getColor(n)}catch{return[255,255,255]}},J=n=>{const o=O(n),a=f.getScale("#FFFFFF",o,"#000000"),R=Array.from({length:12},(r,h)=>{const l=a(h/11);return P(l,.0085)}),A=R.map(r=>M(k(r),.005)),e=f.toRgba(M(f.adjustHue(o,180),1)),t=f.getScale("#FFFFFF",e,"#000000"),s=Array.from({length:12},(r,h)=>{const l=t(h/11);return P(l,.1)}),u=s.map(r=>P(k(r),.22)),c=Q(M(A[5],.115));return{BASE_COLOR:O(n),BRAND:{PRIMARY:c,PRIMARY_LIGHT:S(c,.25,{min:.6,max:.8}),SECONDARY:P(u[4],.02)},PRIMARY:{PRIMARY_SUPER_DARK:S(x(R[9]),-.6,{min:0,max:.02}),PRIMARY_DARK:S(x(R[8]),-.4,{min:.01,max:.02}),PRIMARY_MEDIUM:S(A[7],-.2,{min:0,max:.11}),PRIMARY_MEDIUM_LIGHT:S(P(A[6],.1),.08),PRIMARY_LIGHT:S(M(A[5],.1),.16),PRIMARY_LIGHTEST:S(M(A[3],.2),.12,{min:.5,max:.9}),PRIMARY_SUPER_LIGHT:S(A[1],.02,{min:.86,max:.98})},SECONDARY:{SECONDARY_SUPER_DARK:S(x(s[9]),-.6,{min:0,max:.02}),SECONDARY_DARK:S(x(s[8]),-.4,{min:.01,max:.02}),SECONDARY_MEDIUM:S(u[7],-.2,{min:0,max:.11}),SECONDARY_MEDIUM_LIGHT:S(u[6],.1),SECONDARY_LIGHT:S(M(u[5],.1),.16),SECONDARY_LIGHTEST:S(M(u[3],.2),.12,{min:.5,max:.9}),SECONDARY_SUPER_LIGHT:S(u[0],.02,{min:.86,max:.98})}}},S=(n,o,a={min:.03,max:.97})=>{let R=n,A=f.getLuminance(R);if(a.min<0&&(a.min=0),a.max>1&&(a.max=1),a.min>=a.max)throw new Error("Invalid range: min must be less than max");if(o>0){const t=a.max-A;if(t<=0)return f.toRgba(R);const s=o*(t/(1-A));R=f.lighten(R,s)}else if(o<0){const t=A-a.min;if(t<=0)return f.toRgba(R);const s=o*(t/A);R=f.darken(R,Math.abs(s))}const e=f.getLuminance(R);return(e>a.max||e<a.min)&&(R=K(R,a)),f.toRgba(R)},K=(n,o)=>{let a=n,R=f.getLuminance(a);for(;R>o.max;)a=f.darken(a,.05),R=f.getLuminance(a);for(;R<o.min;)a=f.lighten(a,.05),R=f.getLuminance(a);return f.toRgba(a)},x=n=>{for(;f.hasBadContrast(n,"readable",m.GRAYSCALE.GRAY_DARK);)n=f.lighten(n,.01);return f.toRgba(n)},Q=n=>{for(;f.hasBadContrast(m.GRAYSCALE.GRAY_SUPER_LIGHT,"readable",n);)n=f.darken(n,.01);return f.toRgba(n)},k=n=>{let o=n,a=f.getLuminance(f.toRgba(o)),R=0;const A=6;for(;a<.16&&R<A;)R++,o=f.lighten(o,.1),a=f.getLuminance(f.toRgba(o));for(;a>.6&&R<A;)R++,o=f.darken(o,.1),a=f.getLuminance(f.toRgba(o));return f.toRgba(o)},V=n=>typeof n=="string"||n instanceof String;function Z(...n){return n.filter(V).join(" ")}const tt=n=>{if(/^https?:\/\//.test(n)){const o=document.createElement("a");return o.href=n,o.hostname}return window.location.hostname},nt=n=>{const o=window.location.hostname,a=tt(n);return o!==a},et=(n,o)=>{if(n.metaKey||n.altKey||n.ctrlKey||n.shiftKey||n.button&&n.button!==0)return;n.preventDefault();const a=o.startsWith("/")?o:`/${o}`;window.history.pushState({},"",a),window.dispatchEvent(new PopStateEvent("popstate"))};exports.DEFAULT_BACKGROUND=B;exports.DEFAULT_PALETTE=$;exports.arrayToRgbString=O;exports.csx=Z;exports.desaturate=P;exports.generatePalette=J;exports.getDominantColor=X;exports.handleInternalNavigation=et;exports.isUrlExternal=nt;exports.saturate=M;exports.transparentize=W;
|
|
2
|
+
//# sourceMappingURL=utils-BUwoPI1e.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils-BUwoPI1e.js","sources":["../node_modules/colorthief/dist/color-thief.mjs","../src/utils/color.ts","../src/utils/utils.ts"],"sourcesContent":["var t=function(t,r){return t<r?-1:t>r?1:0},r=function(t){return t.reduce(function(t,r){return t+r},0)},n=/*#__PURE__*/function(){function t(t){this.colors=t}var r=t.prototype;return r.palette=function(){return this.colors},r.map=function(t){return t},t}(),o=function(){function o(t,r,n){return(t<<10)+(r<<5)+n}function e(t){var r=[],n=!1;function o(){r.sort(t),n=!0}return{push:function(t){r.push(t),n=!1},peek:function(t){return n||o(),void 0===t&&(t=r.length-1),r[t]},pop:function(){return n||o(),r.pop()},size:function(){return r.length},map:function(t){return r.map(t)},debug:function(){return n||o(),r}}}function i(t,r,n,o,e,i,u){var a=this;a.r1=t,a.r2=r,a.g1=n,a.g2=o,a.b1=e,a.b2=i,a.histo=u}function u(){this.vboxes=new e(function(r,n){return t(r.vbox.count()*r.vbox.volume(),n.vbox.count()*n.vbox.volume())})}function a(t,r){if(r.count()){var n=r.r2-r.r1+1,e=r.g2-r.g1+1,i=Math.max.apply(null,[n,e,r.b2-r.b1+1]);if(1==r.count())return[r.copy()];var u,a,c,f,s=0,h=[],v=[];if(i==n)for(u=r.r1;u<=r.r2;u++){for(f=0,a=r.g1;a<=r.g2;a++)for(c=r.b1;c<=r.b2;c++)f+=t[o(u,a,c)]||0;h[u]=s+=f}else if(i==e)for(u=r.g1;u<=r.g2;u++){for(f=0,a=r.r1;a<=r.r2;a++)for(c=r.b1;c<=r.b2;c++)f+=t[o(a,u,c)]||0;h[u]=s+=f}else for(u=r.b1;u<=r.b2;u++){for(f=0,a=r.r1;a<=r.r2;a++)for(c=r.g1;c<=r.g2;c++)f+=t[o(a,c,u)]||0;h[u]=s+=f}return h.forEach(function(t,r){v[r]=s-t}),function(t){var n,o,e,i,a,c=t+\"1\",f=t+\"2\",l=0;for(u=r[c];u<=r[f];u++)if(h[u]>s/2){for(e=r.copy(),i=r.copy(),a=(n=u-r[c])<=(o=r[f]-u)?Math.min(r[f]-1,~~(u+o/2)):Math.max(r[c],~~(u-1-n/2));!h[a];)a++;for(l=v[a];!l&&h[a-1];)l=v[--a];return e[f]=a,i[c]=e[f]+1,[e,i]}}(i==n?\"r\":i==e?\"g\":\"b\")}}return i.prototype={volume:function(t){var r=this;return r._volume&&!t||(r._volume=(r.r2-r.r1+1)*(r.g2-r.g1+1)*(r.b2-r.b1+1)),r._volume},count:function(t){var r=this,n=r.histo;if(!r._count_set||t){var e,i,u,a=0;for(e=r.r1;e<=r.r2;e++)for(i=r.g1;i<=r.g2;i++)for(u=r.b1;u<=r.b2;u++)a+=n[o(e,i,u)]||0;r._count=a,r._count_set=!0}return r._count},copy:function(){var t=this;return new i(t.r1,t.r2,t.g1,t.g2,t.b1,t.b2,t.histo)},avg:function(t){var r=this,n=r.histo;if(!r._avg||t){var e,i,u,a,c=0,f=0,s=0,h=0;if(r.r1===r.r2&&r.g1===r.g2&&r.b1===r.b2)r._avg=[r.r1<<3,r.g1<<3,r.b1<<3];else{for(i=r.r1;i<=r.r2;i++)for(u=r.g1;u<=r.g2;u++)for(a=r.b1;a<=r.b2;a++)c+=e=n[o(i,u,a)]||0,f+=e*(i+.5)*8,s+=e*(u+.5)*8,h+=e*(a+.5)*8;r._avg=c?[~~(f/c),~~(s/c),~~(h/c)]:[~~(8*(r.r1+r.r2+1)/2),~~(8*(r.g1+r.g2+1)/2),~~(8*(r.b1+r.b2+1)/2)]}}return r._avg},contains:function(t){var r=this,n=t[0]>>3;return gval=t[1]>>3,bval=t[2]>>3,n>=r.r1&&n<=r.r2&&gval>=r.g1&&gval<=r.g2&&bval>=r.b1&&bval<=r.b2}},u.prototype={push:function(t){this.vboxes.push({vbox:t,color:t.avg()})},palette:function(){return this.vboxes.map(function(t){return t.color})},size:function(){return this.vboxes.size()},map:function(t){for(var r=this.vboxes,n=0;n<r.size();n++)if(r.peek(n).vbox.contains(t))return r.peek(n).color;return this.nearest(t)},nearest:function(t){for(var r,n,o,e=this.vboxes,i=0;i<e.size();i++)((n=Math.sqrt(Math.pow(t[0]-e.peek(i).color[0],2)+Math.pow(t[1]-e.peek(i).color[1],2)+Math.pow(t[2]-e.peek(i).color[2],2)))<r||void 0===r)&&(r=n,o=e.peek(i).color);return o},forcebw:function(){var n=this.vboxes;n.sort(function(n,o){return t(r(n.color),r(o.color))});var o=n[0].color;o[0]<5&&o[1]<5&&o[2]<5&&(n[0].color=[0,0,0]);var e=n.length-1,i=n[e].color;i[0]>251&&i[1]>251&&i[2]>251&&(n[e].color=[255,255,255])}},{quantize:function(r,c){if(!Number.isInteger(c)||c<1||c>256)throw new Error(\"Invalid maximum color count. It must be an integer between 1 and 256.\");if(!r.length||c<2||c>256)return!1;if(!r.length||c<2||c>256)return!1;for(var f=[],s=new Set,h=0;h<r.length;h++){var v=r[h],l=v.join(\",\");s.has(l)||(s.add(l),f.push(v))}if(f.length<=c)return new n(f);var g=function(t){var r,n=new Array(32768);return t.forEach(function(t){r=o(t[0]>>3,t[1]>>3,t[2]>>3),n[r]=(n[r]||0)+1}),n}(r);g.forEach(function(){});var p=function(t,r){var n,o,e,u=1e6,a=0,c=1e6,f=0,s=1e6,h=0;return t.forEach(function(t){(n=t[0]>>3)<u?u=n:n>a&&(a=n),(o=t[1]>>3)<c?c=o:o>f&&(f=o),(e=t[2]>>3)<s?s=e:e>h&&(h=e)}),new i(u,a,c,f,s,h,r)}(r,g),b=new e(function(r,n){return t(r.count(),n.count())});function m(t,r){for(var n,o=t.size(),e=0;e<1e3;){if(o>=r)return;if(e++>1e3)return;if((n=t.pop()).count()){var i=a(g,n),u=i[0],c=i[1];if(!u)return;t.push(u),c&&(t.push(c),o++)}else t.push(n),e++}}b.push(p),m(b,.75*c);for(var d=new e(function(r,n){return t(r.count()*r.volume(),n.count()*n.volume())});b.size();)d.push(b.pop());m(d,c);for(var w=new u;d.size();)w.push(d.pop());return w}}}().quantize,e=function(t){this.canvas=document.createElement(\"canvas\"),this.context=this.canvas.getContext(\"2d\"),this.width=this.canvas.width=t.naturalWidth,this.height=this.canvas.height=t.naturalHeight,this.context.drawImage(t,0,0,this.width,this.height)};e.prototype.getImageData=function(){return this.context.getImageData(0,0,this.width,this.height)};var u=function(){};u.prototype.getColor=function(t,r){return void 0===r&&(r=10),this.getPalette(t,5,r)[0]},u.prototype.getPalette=function(t,r,n){var i=function(t){var r=t.colorCount,n=t.quality;if(void 0!==r&&Number.isInteger(r)){if(1===r)throw new Error(\"colorCount should be between 2 and 20. To get one color, call getColor() instead of getPalette()\");r=Math.max(r,2),r=Math.min(r,20)}else r=10;return(void 0===n||!Number.isInteger(n)||n<1)&&(n=10),{colorCount:r,quality:n}}({colorCount:r,quality:n}),u=new e(t),a=function(t,r,n){for(var o,e,i,u,a,c=t,f=[],s=0;s<r;s+=n)e=c[0+(o=4*s)],i=c[o+1],u=c[o+2],(void 0===(a=c[o+3])||a>=125)&&(e>250&&i>250&&u>250||f.push([e,i,u]));return f}(u.getImageData().data,u.width*u.height,i.quality),c=o(a,i.colorCount);return c?c.palette():null},u.prototype.getColorFromUrl=function(t,r,n){var o=this,e=document.createElement(\"img\");e.addEventListener(\"load\",function(){var i=o.getPalette(e,5,n);r(i[0],t)}),e.src=t},u.prototype.getImageData=function(t,r){var n=new XMLHttpRequest;n.open(\"GET\",t,!0),n.responseType=\"arraybuffer\",n.onload=function(){if(200==this.status){var t=new Uint8Array(this.response);i=t.length;for(var n=new Array(i),o=0;o<t.length;o++)n[o]=String.fromCharCode(t[o]);var e=n.join(\"\"),u=window.btoa(e);r(\"data:image/png;base64,\"+u)}},n.send()},u.prototype.getColorAsync=function(t,r,n){var o=this;this.getImageData(t,function(t){var e=document.createElement(\"img\");e.addEventListener(\"load\",function(){var t=o.getPalette(e,5,n);r(t[0],this)}),e.src=t})};export{u as default};\n","import { COLORS } from \"../constants\";\r\nimport {\r\n adjustHue,\r\n getScale,\r\n saturate as _saturate,\r\n transparentize as _transparentize,\r\n desaturate as _desaturate,\r\n hasBadContrast,\r\n getLuminance,\r\n lighten,\r\n darken,\r\n toRgba,\r\n} from \"color2k\";\r\nimport ColorThief from \"colorthief\";\r\n\r\nexport type RGBArray = [number, number, number];\r\n\r\nexport type Palette = {\r\n BASE_COLOR: string;\r\n BRAND: {\r\n PRIMARY: string;\r\n PRIMARY_LIGHT: string;\r\n SECONDARY: string;\r\n };\r\n PRIMARY: {\r\n //backgrounds\r\n PRIMARY_SUPER_DARK: string;\r\n PRIMARY_DARK: string;\r\n //interactive components\r\n PRIMARY_MEDIUM: string;\r\n //borders and seperators\r\n PRIMARY_MEDIUM_LIGHT: string;\r\n //solid colors\r\n PRIMARY_LIGHT: string;\r\n //accessible text\r\n PRIMARY_LIGHTEST: string;\r\n PRIMARY_SUPER_LIGHT: string;\r\n };\r\n SECONDARY: {\r\n //backgrounds\r\n SECONDARY_SUPER_DARK: string;\r\n SECONDARY_DARK: string;\r\n //interactive components\r\n SECONDARY_MEDIUM: string;\r\n //borders and seperators\r\n SECONDARY_MEDIUM_LIGHT: string;\r\n //solid colors\r\n SECONDARY_LIGHT: string;\r\n //accessible text\r\n SECONDARY_LIGHTEST: string;\r\n SECONDARY_SUPER_LIGHT: string;\r\n };\r\n};\r\n\r\nexport const DEFAULT_BACKGROUND = \"rgba(83, 82, 83, 1)\";\r\n\r\nexport const DEFAULT_PALETTE: Palette = {\r\n BASE_COLOR: DEFAULT_BACKGROUND,\r\n BRAND: {\r\n PRIMARY: COLORS.BRAND.PRIMARY,\r\n PRIMARY_LIGHT: COLORS.BRAND.PRIMARY_LIGHT,\r\n SECONDARY: COLORS.BRAND.SECONDARY,\r\n },\r\n PRIMARY: {\r\n PRIMARY_SUPER_DARK: COLORS.GRAYSCALE.GRAY_SUPER_DARK,\r\n PRIMARY_DARK: COLORS.GRAYSCALE.GRAY_DARK,\r\n PRIMARY_MEDIUM: COLORS.GRAYSCALE.GRAY_MEDIUM,\r\n PRIMARY_MEDIUM_LIGHT: COLORS.GRAYSCALE.GRAY_MEDIUM_LIGHT,\r\n PRIMARY_LIGHT: COLORS.GRAYSCALE.GRAY_LIGHT,\r\n PRIMARY_LIGHTEST: COLORS.GRAYSCALE.GRAY_LIGHTEST,\r\n PRIMARY_SUPER_LIGHT: COLORS.GRAYSCALE.GRAY_SUPER_LIGHT,\r\n },\r\n SECONDARY: {\r\n SECONDARY_SUPER_DARK: COLORS.GRAYSCALE.GRAY_SUPER_DARK,\r\n SECONDARY_DARK: COLORS.GRAYSCALE.GRAY_DARK,\r\n SECONDARY_MEDIUM: COLORS.GRAYSCALE.GRAY_MEDIUM,\r\n SECONDARY_MEDIUM_LIGHT: COLORS.GRAYSCALE.GRAY_MEDIUM_LIGHT,\r\n SECONDARY_LIGHT: COLORS.GRAYSCALE.GRAY_LIGHT,\r\n SECONDARY_LIGHTEST: COLORS.GRAYSCALE.GRAY_LIGHTEST,\r\n SECONDARY_SUPER_LIGHT: COLORS.GRAYSCALE.GRAY_SUPER_LIGHT,\r\n },\r\n // Success, Warning & Danger palettes go here...\r\n};\r\n\r\n/**\r\n * Converts an RGB array to a CSS string representation.\r\n * @param rgb - The RGB array to convert.\r\n * @param opacity - Optional opacity value.\r\n * @returns A CSS string representation of the RGB array, using `rgb()`, or `rgba()` if an opacity value is provided.\r\n */\r\nexport const arrayToRgbString = (rgb: RGBArray, opacity?: number): string => {\r\n return opacity === undefined\r\n ? `rgb(${rgb[0]}, ${rgb[1]}, ${rgb[2]})`\r\n : `rgba(${rgb[0]}, ${rgb[1]}, ${rgb[2]}, ${opacity})`;\r\n};\r\n\r\n/**\r\n * Transparentizes an input color.\r\n *\r\n * @param color - The color string to transparentize.\r\n * @param amount - The amount to increase the opacity of the color by, given as a decimal between 0 and 1.\r\n * @returns An RGBA color string.\r\n */\r\nexport const transparentize = (color: string, amount: number): string => {\r\n return toRgba(_transparentize(color, amount));\r\n};\r\n\r\n/**\r\n * Saturates a color.\r\n *\r\n * @param color - Input color\r\n * @param amount - The amount to saturate, given as a decimal between 0 and 1\r\n * @returns An RGBA color string.\r\n */\r\nexport const saturate = (color: string, amount: number): string => {\r\n return toRgba(_saturate(color, amount));\r\n};\r\n\r\n/**\r\n * Desaturates a color.\r\n *\r\n * @param color - Input color\r\n * @param amount - The amount to desaturate, given as a decimal between 0 and 1\r\n * @returns An RGBA color string.\r\n */\r\nexport const desaturate = (color: string, amount: number): string => {\r\n return toRgba(_desaturate(color, amount));\r\n};\r\n\r\n/**\r\n * Gets the dominant color of an image. Avoids issues with low contrast colors.\r\n * @reference https://github.com/lokesh/color-thief/issues/40\r\n * @param image - The image to get the dominant color from.\r\n * @returns An RGB array.\r\n */\r\nexport const getDominantColor = (image: HTMLImageElement): RGBArray => {\r\n try {\r\n const colorThief = new ColorThief();\r\n const baseColor = colorThief.getColor(image);\r\n return baseColor;\r\n } catch {\r\n return [255, 255, 255];\r\n }\r\n};\r\n\r\n/**\r\n * Generates a complete color palette based on a primary color input.\r\n * The palette includes primary and secondary color scales with varying shades.\r\n *\r\n * @param primaryColor - The base RGB color array to generate the palette from\r\n * @returns A Palette object containing:\r\n * - BRAND colors (primary, light primary, and secondary)\r\n * - PRIMARY scale (7 shades from super dark to super light)\r\n * - SECONDARY scale (7 shades from super dark to super light)\r\n *\r\n * The function:\r\n * 1. Creates a 12-color scale from white to the primary color to black\r\n * 2. Generates a complementary secondary color by shifting the hue 180 degrees\r\n * 3. Creates another 12-color scale for the secondary color\r\n * 4. Maps specific positions from these scales to create the final palette structure\r\n */\r\nexport const generatePalette = (baseColor: RGBArray): Palette => {\r\n const primaryRgba = arrayToRgbString(baseColor);\r\n\r\n const primaryScaleFunc = getScale(\"#FFFFFF\", primaryRgba, \"#000000\");\r\n const primaryScale = Array.from({ length: 12 }, (_, i) => {\r\n const color = primaryScaleFunc(i / 11);\r\n return desaturate(color, 0.0085);\r\n });\r\n\r\n const adjustedPrimaryScale = primaryScale.map((color) =>\r\n saturate(adjustBrightnessForLuminance(color), 0.005)\r\n );\r\n\r\n const secondaryColor = toRgba(saturate(adjustHue(primaryRgba, 180), 1));\r\n\r\n const secondaryScaleFunc = getScale(\"#FFFFFF\", secondaryColor, \"#000000\");\r\n const secondaryScale = Array.from({ length: 12 }, (_, i) => {\r\n const color = secondaryScaleFunc(i / 11);\r\n return desaturate(color, 0.1);\r\n });\r\n\r\n const adjustedSecondaryScale = secondaryScale.map((color) =>\r\n desaturate(adjustBrightnessForLuminance(color), 0.22)\r\n );\r\n\r\n const brandPrimary = darkenForContrast(\r\n saturate(adjustedPrimaryScale[5], 0.115)\r\n );\r\n\r\n return {\r\n BASE_COLOR: arrayToRgbString(baseColor),\r\n BRAND: {\r\n PRIMARY: brandPrimary,\r\n PRIMARY_LIGHT: lightenWithinRange(brandPrimary, 0.25, {\r\n min: 0.6,\r\n max: 0.8,\r\n }),\r\n SECONDARY: desaturate(adjustedSecondaryScale[4], 0.02),\r\n },\r\n PRIMARY: {\r\n //backgrounds\r\n PRIMARY_SUPER_DARK: lightenWithinRange(\r\n lightenForContrast(primaryScale[9]),\r\n -0.6,\r\n {\r\n min: 0.0,\r\n max: 0.02,\r\n }\r\n ),\r\n PRIMARY_DARK: lightenWithinRange(\r\n lightenForContrast(primaryScale[8]),\r\n -0.4,\r\n {\r\n min: 0.01,\r\n max: 0.02,\r\n }\r\n ),\r\n //interactive components\r\n PRIMARY_MEDIUM: lightenWithinRange(adjustedPrimaryScale[7], -0.2, {\r\n min: 0.0,\r\n max: 0.11,\r\n }),\r\n //borders and seperators\r\n PRIMARY_MEDIUM_LIGHT: lightenWithinRange(\r\n desaturate(adjustedPrimaryScale[6], 0.1),\r\n 0.08\r\n ),\r\n //solid colors\r\n PRIMARY_LIGHT: lightenWithinRange(\r\n saturate(adjustedPrimaryScale[5], 0.1),\r\n 0.16\r\n ),\r\n //accessible text\r\n PRIMARY_LIGHTEST: lightenWithinRange(\r\n saturate(adjustedPrimaryScale[3], 0.2),\r\n 0.12,\r\n {\r\n min: 0.5,\r\n max: 0.9,\r\n }\r\n ),\r\n PRIMARY_SUPER_LIGHT: lightenWithinRange(adjustedPrimaryScale[1], 0.02, {\r\n min: 0.86,\r\n max: 0.98,\r\n }),\r\n },\r\n SECONDARY: {\r\n //backgrounds\r\n SECONDARY_SUPER_DARK: lightenWithinRange(\r\n lightenForContrast(secondaryScale[9]),\r\n -0.6,\r\n {\r\n min: 0.0,\r\n max: 0.02,\r\n }\r\n ),\r\n SECONDARY_DARK: lightenWithinRange(\r\n lightenForContrast(secondaryScale[8]),\r\n -0.4,\r\n {\r\n min: 0.01,\r\n max: 0.02,\r\n }\r\n ),\r\n // interactive components\r\n SECONDARY_MEDIUM: lightenWithinRange(adjustedSecondaryScale[7], -0.2, {\r\n min: 0.0,\r\n max: 0.11,\r\n }),\r\n //borders and seperators\r\n SECONDARY_MEDIUM_LIGHT: lightenWithinRange(\r\n adjustedSecondaryScale[6],\r\n 0.1\r\n ),\r\n //solid colors\r\n SECONDARY_LIGHT: lightenWithinRange(\r\n saturate(adjustedSecondaryScale[5], 0.1),\r\n 0.16\r\n ),\r\n //accessible text\r\n SECONDARY_LIGHTEST: lightenWithinRange(\r\n saturate(adjustedSecondaryScale[3], 0.2),\r\n 0.12,\r\n {\r\n min: 0.5,\r\n max: 0.9,\r\n }\r\n ),\r\n SECONDARY_SUPER_LIGHT: lightenWithinRange(\r\n adjustedSecondaryScale[0],\r\n 0.02,\r\n {\r\n min: 0.86,\r\n max: 0.98,\r\n }\r\n ),\r\n },\r\n };\r\n};\r\n\r\nconst lightenWithinRange = (\r\n color: string,\r\n amount: number,\r\n range: { min: number; max: number } = { min: 0.03, max: 0.97 }\r\n): string => {\r\n let adjustedColor = color;\r\n let currentLuminance = getLuminance(adjustedColor);\r\n\r\n // Validate range bounds\r\n if (range.min < 0) range.min = 0;\r\n if (range.max > 1) range.max = 1;\r\n if (range.min >= range.max) {\r\n throw new Error(\"Invalid range: min must be less than max\");\r\n }\r\n\r\n // For lightening (positive amount)\r\n if (amount > 0) {\r\n // Calculate how much we can lighten before hitting max\r\n const remainingLuminance = range.max - currentLuminance;\r\n if (remainingLuminance <= 0) return toRgba(adjustedColor);\r\n\r\n // Scale the amount based on remaining room to lighten\r\n const scaledAmount = amount * (remainingLuminance / (1 - currentLuminance));\r\n adjustedColor = lighten(adjustedColor, scaledAmount);\r\n }\r\n // For darkening (negative amount)\r\n else if (amount < 0) {\r\n // Calculate how much we can darken before hitting min\r\n const remainingLuminance = currentLuminance - range.min;\r\n if (remainingLuminance <= 0) return toRgba(adjustedColor);\r\n\r\n // Scale the amount based on remaining room to darken\r\n const scaledAmount = amount * (remainingLuminance / currentLuminance);\r\n adjustedColor = darken(adjustedColor, Math.abs(scaledAmount));\r\n }\r\n\r\n // Verify final luminance is within bounds\r\n const finalLuminance = getLuminance(adjustedColor);\r\n if (finalLuminance > range.max) {\r\n adjustedColor = adjustBrightnessWithinRange(adjustedColor, range);\r\n } else if (finalLuminance < range.min) {\r\n adjustedColor = adjustBrightnessWithinRange(adjustedColor, range);\r\n }\r\n\r\n return toRgba(adjustedColor);\r\n};\r\n\r\nconst adjustBrightnessWithinRange = (\r\n color: string,\r\n range: { min: number; max: number }\r\n): string => {\r\n let adjustedColor = color;\r\n let luminance = getLuminance(adjustedColor);\r\n\r\n // Darken if too bright\r\n while (luminance > range.max) {\r\n adjustedColor = darken(adjustedColor, 0.05);\r\n luminance = getLuminance(adjustedColor);\r\n }\r\n\r\n // Lighten if too dark\r\n while (luminance < range.min) {\r\n adjustedColor = lighten(adjustedColor, 0.05);\r\n luminance = getLuminance(adjustedColor);\r\n }\r\n\r\n return toRgba(adjustedColor);\r\n};\r\n\r\nconst lightenForContrast = (color: string): string => {\r\n while (hasBadContrast(color, \"readable\", COLORS.GRAYSCALE.GRAY_DARK)) {\r\n color = lighten(color, 0.01);\r\n }\r\n return toRgba(color);\r\n};\r\n\r\nconst darkenForContrast = (color: string): string => {\r\n while (hasBadContrast(COLORS.GRAYSCALE.GRAY_SUPER_LIGHT, \"readable\", color)) {\r\n color = darken(color, 0.01);\r\n }\r\n return toRgba(color);\r\n};\r\n\r\nconst adjustBrightnessForLuminance = (color: string): string => {\r\n let currentColor = color;\r\n let currentLuminance = getLuminance(toRgba(currentColor));\r\n let adjustmentAttempts = 0;\r\n const MAX_ATTEMPTS = 6;\r\n\r\n while (currentLuminance < 0.16 && adjustmentAttempts < MAX_ATTEMPTS) {\r\n adjustmentAttempts++;\r\n currentColor = lighten(currentColor, 0.1);\r\n currentLuminance = getLuminance(toRgba(currentColor));\r\n }\r\n\r\n while (currentLuminance > 0.6 && adjustmentAttempts < MAX_ATTEMPTS) {\r\n adjustmentAttempts++;\r\n currentColor = darken(currentColor, 0.1);\r\n currentLuminance = getLuminance(toRgba(currentColor));\r\n }\r\n\r\n return toRgba(currentColor);\r\n};\r\n","const isString = (x: unknown): boolean =>\r\n typeof x === \"string\" || x instanceof String;\r\n\r\nexport function csx(...classnames: unknown[]): string {\r\n return classnames.filter(isString).join(\" \");\r\n}\r\n\r\n/**\r\n * [getLinkHost] - get the host of a link.\r\n * Referenced from is-url-external npm package\r\n * https://github.com/mrded/is-url-external/blob/master/index.js\r\n */\r\nconst getLinkHost = (url) => {\r\n if (/^https?:\\/\\//.test(url)) {\r\n // Absolute URL.\r\n // The easy way to parse an URL, is to create <a> element.\r\n // @see: https://gist.github.com/jlong/2428561\r\n const parser = document.createElement(\"a\");\r\n parser.href = url;\r\n return parser.hostname;\r\n }\r\n return window.location.hostname;\r\n};\r\n\r\n/**\r\n * [isUrlExternal] - determine if passed absolute url is external to the current domain.\r\n */\r\nexport const isUrlExternal = (url) => {\r\n const host = window.location.hostname;\r\n const linkHost = getLinkHost(url);\r\n\r\n return host !== linkHost;\r\n};\r\n\r\n/**\r\n * Handles internal navigation clicks by preventing default browser behavior and\r\n * programmatically updating the URL and history state.\r\n *\r\n * @param e - The click event from the anchor element\r\n * @param to - The destination path to navigate to\r\n *\r\n * @remarks\r\n * - Converts relative paths to absolute by prepending \"/\" if needed\r\n * - Updates browser history using pushState and dispatches a popstate event\r\n */\r\nexport const handleInternalNavigation = (\r\n e: React.MouseEvent<HTMLAnchorElement>,\r\n to: string\r\n) => {\r\n // Don't handle navigation if modifier keys are pressed\r\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) {\r\n return;\r\n }\r\n\r\n // Don't handle middle clicks or right clicks\r\n if (e.button && e.button !== 0) {\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n\r\n // Handle relative paths\r\n const resolvedPath = to.startsWith(\"/\") ? to : `/${to}`;\r\n window.history.pushState({}, \"\", resolvedPath);\r\n window.dispatchEvent(new PopStateEvent(\"popstate\"));\r\n};\r\n"],"names":["t","r","n","o","e","i","u","a","c","f","s","h","v","l","g","p","b","m","d","w","DEFAULT_BACKGROUND","DEFAULT_PALETTE","COLORS.BRAND","COLORS.GRAYSCALE","arrayToRgbString","rgb","opacity","transparentize","color","amount","toRgba","_transparentize","saturate","_saturate","desaturate","_desaturate","getDominantColor","image","ColorThief","generatePalette","baseColor","primaryRgba","primaryScaleFunc","getScale","primaryScale","_","adjustedPrimaryScale","adjustBrightnessForLuminance","secondaryColor","adjustHue","secondaryScaleFunc","secondaryScale","adjustedSecondaryScale","brandPrimary","darkenForContrast","lightenWithinRange","lightenForContrast","range","adjustedColor","currentLuminance","getLuminance","remainingLuminance","scaledAmount","lighten","darken","finalLuminance","adjustBrightnessWithinRange","luminance","hasBadContrast","currentColor","adjustmentAttempts","MAX_ATTEMPTS","isString","x","csx","classnames","getLinkHost","url","parser","isUrlExternal","host","linkHost","handleInternalNavigation","to","resolvedPath"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -176,11 +176,11 @@ var x = function(n, r) {
|
|
|
176
176
|
X.prototype.getImageData = function() {
|
|
177
177
|
return this.context.getImageData(0, 0, this.width, this.height);
|
|
178
178
|
};
|
|
179
|
-
var
|
|
179
|
+
var C = function() {
|
|
180
180
|
};
|
|
181
|
-
|
|
181
|
+
C.prototype.getColor = function(n, r) {
|
|
182
182
|
return r === void 0 && (r = 10), this.getPalette(n, 5, r)[0];
|
|
183
|
-
},
|
|
183
|
+
}, C.prototype.getPalette = function(n, r, a) {
|
|
184
184
|
var l = function(s) {
|
|
185
185
|
var u = s.colorCount, c = s.quality;
|
|
186
186
|
if (u !== void 0 && Number.isInteger(u)) {
|
|
@@ -193,13 +193,13 @@ L.prototype.getColor = function(n, r) {
|
|
|
193
193
|
return Y;
|
|
194
194
|
}(R.getImageData().data, R.width * R.height, l.quality), t = nt(e, l.colorCount);
|
|
195
195
|
return t ? t.palette() : null;
|
|
196
|
-
},
|
|
196
|
+
}, C.prototype.getColorFromUrl = function(n, r, a) {
|
|
197
197
|
var l = this, R = document.createElement("img");
|
|
198
198
|
R.addEventListener("load", function() {
|
|
199
199
|
var e = l.getPalette(R, 5, a);
|
|
200
200
|
r(e[0], n);
|
|
201
201
|
}), R.src = n;
|
|
202
|
-
},
|
|
202
|
+
}, C.prototype.getImageData = function(n, r) {
|
|
203
203
|
var a = new XMLHttpRequest();
|
|
204
204
|
a.open("GET", n, !0), a.responseType = "arraybuffer", a.onload = function() {
|
|
205
205
|
if (this.status == 200) {
|
|
@@ -210,7 +210,7 @@ L.prototype.getColor = function(n, r) {
|
|
|
210
210
|
r("data:image/png;base64," + s);
|
|
211
211
|
}
|
|
212
212
|
}, a.send();
|
|
213
|
-
},
|
|
213
|
+
}, C.prototype.getColorAsync = function(n, r, a) {
|
|
214
214
|
var l = this;
|
|
215
215
|
this.getImageData(n, function(R) {
|
|
216
216
|
var e = document.createElement("img");
|
|
@@ -246,26 +246,25 @@ const et = "rgba(83, 82, 83, 1)", ut = {
|
|
|
246
246
|
SECONDARY_SUPER_LIGHT: E.GRAY_SUPER_LIGHT
|
|
247
247
|
}
|
|
248
248
|
// Success, Warning & Danger palettes go here...
|
|
249
|
-
}, $ = (n, r) => r === void 0 ? `rgb(${n[0]}, ${n[1]}, ${n[2]})` : `rgba(${n[0]}, ${n[1]}, ${n[2]}, ${r})`, ct = (n, r) => M(J(n, r)), T = (n, r) => M(Q(n, r)),
|
|
249
|
+
}, $ = (n, r) => r === void 0 ? `rgb(${n[0]}, ${n[1]}, ${n[2]})` : `rgba(${n[0]}, ${n[1]}, ${n[2]}, ${r})`, ct = (n, r) => M(J(n, r)), T = (n, r) => M(Q(n, r)), L = (n, r) => M(V(n, r)), lt = (n) => {
|
|
250
250
|
try {
|
|
251
|
-
return new
|
|
251
|
+
return new C().getColor(n);
|
|
252
252
|
} catch {
|
|
253
253
|
return [255, 255, 255];
|
|
254
254
|
}
|
|
255
255
|
}, ft = (n) => {
|
|
256
256
|
const r = $(n), a = j("#FFFFFF", r, "#000000"), l = Array.from({ length: 12 }, (o, h) => {
|
|
257
257
|
const f = a(h / 11);
|
|
258
|
-
return
|
|
258
|
+
return L(f, 85e-4);
|
|
259
259
|
}), R = l.map(
|
|
260
260
|
(o) => T(q(o), 5e-3)
|
|
261
261
|
), e = M(T(Z(r, 180), 1)), t = j("#FFFFFF", e, "#000000"), s = Array.from({ length: 12 }, (o, h) => {
|
|
262
262
|
const f = t(h / 11);
|
|
263
|
-
return
|
|
263
|
+
return L(f, 0.1);
|
|
264
264
|
}), u = s.map(
|
|
265
|
-
(o) =>
|
|
266
|
-
), c =
|
|
267
|
-
|
|
268
|
-
0.05
|
|
265
|
+
(o) => L(q(o), 0.22)
|
|
266
|
+
), c = rt(
|
|
267
|
+
T(R[5], 0.115)
|
|
269
268
|
);
|
|
270
269
|
return {
|
|
271
270
|
BASE_COLOR: $(n),
|
|
@@ -275,7 +274,7 @@ const et = "rgba(83, 82, 83, 1)", ut = {
|
|
|
275
274
|
min: 0.6,
|
|
276
275
|
max: 0.8
|
|
277
276
|
}),
|
|
278
|
-
SECONDARY:
|
|
277
|
+
SECONDARY: L(u[4], 0.02)
|
|
279
278
|
},
|
|
280
279
|
PRIMARY: {
|
|
281
280
|
//backgrounds
|
|
@@ -302,7 +301,7 @@ const et = "rgba(83, 82, 83, 1)", ut = {
|
|
|
302
301
|
}),
|
|
303
302
|
//borders and seperators
|
|
304
303
|
PRIMARY_MEDIUM_LIGHT: b(
|
|
305
|
-
|
|
304
|
+
L(R[6], 0.1),
|
|
306
305
|
0.08
|
|
307
306
|
),
|
|
308
307
|
//solid colors
|
|
@@ -441,7 +440,7 @@ export {
|
|
|
441
440
|
ut as a,
|
|
442
441
|
$ as b,
|
|
443
442
|
ft as c,
|
|
444
|
-
|
|
443
|
+
L as d,
|
|
445
444
|
ht as e,
|
|
446
445
|
lt as g,
|
|
447
446
|
mt as h,
|
|
@@ -449,4 +448,4 @@ export {
|
|
|
449
448
|
T as s,
|
|
450
449
|
ct as t
|
|
451
450
|
};
|
|
452
|
-
//# sourceMappingURL=utils-
|
|
451
|
+
//# sourceMappingURL=utils-Bc2wVuvD.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils-Bc2wVuvD.mjs","sources":["../node_modules/colorthief/dist/color-thief.mjs","../src/utils/color.ts","../src/utils/utils.ts"],"sourcesContent":["var t=function(t,r){return t<r?-1:t>r?1:0},r=function(t){return t.reduce(function(t,r){return t+r},0)},n=/*#__PURE__*/function(){function t(t){this.colors=t}var r=t.prototype;return r.palette=function(){return this.colors},r.map=function(t){return t},t}(),o=function(){function o(t,r,n){return(t<<10)+(r<<5)+n}function e(t){var r=[],n=!1;function o(){r.sort(t),n=!0}return{push:function(t){r.push(t),n=!1},peek:function(t){return n||o(),void 0===t&&(t=r.length-1),r[t]},pop:function(){return n||o(),r.pop()},size:function(){return r.length},map:function(t){return r.map(t)},debug:function(){return n||o(),r}}}function i(t,r,n,o,e,i,u){var a=this;a.r1=t,a.r2=r,a.g1=n,a.g2=o,a.b1=e,a.b2=i,a.histo=u}function u(){this.vboxes=new e(function(r,n){return t(r.vbox.count()*r.vbox.volume(),n.vbox.count()*n.vbox.volume())})}function a(t,r){if(r.count()){var n=r.r2-r.r1+1,e=r.g2-r.g1+1,i=Math.max.apply(null,[n,e,r.b2-r.b1+1]);if(1==r.count())return[r.copy()];var u,a,c,f,s=0,h=[],v=[];if(i==n)for(u=r.r1;u<=r.r2;u++){for(f=0,a=r.g1;a<=r.g2;a++)for(c=r.b1;c<=r.b2;c++)f+=t[o(u,a,c)]||0;h[u]=s+=f}else if(i==e)for(u=r.g1;u<=r.g2;u++){for(f=0,a=r.r1;a<=r.r2;a++)for(c=r.b1;c<=r.b2;c++)f+=t[o(a,u,c)]||0;h[u]=s+=f}else for(u=r.b1;u<=r.b2;u++){for(f=0,a=r.r1;a<=r.r2;a++)for(c=r.g1;c<=r.g2;c++)f+=t[o(a,c,u)]||0;h[u]=s+=f}return h.forEach(function(t,r){v[r]=s-t}),function(t){var n,o,e,i,a,c=t+\"1\",f=t+\"2\",l=0;for(u=r[c];u<=r[f];u++)if(h[u]>s/2){for(e=r.copy(),i=r.copy(),a=(n=u-r[c])<=(o=r[f]-u)?Math.min(r[f]-1,~~(u+o/2)):Math.max(r[c],~~(u-1-n/2));!h[a];)a++;for(l=v[a];!l&&h[a-1];)l=v[--a];return e[f]=a,i[c]=e[f]+1,[e,i]}}(i==n?\"r\":i==e?\"g\":\"b\")}}return i.prototype={volume:function(t){var r=this;return r._volume&&!t||(r._volume=(r.r2-r.r1+1)*(r.g2-r.g1+1)*(r.b2-r.b1+1)),r._volume},count:function(t){var r=this,n=r.histo;if(!r._count_set||t){var e,i,u,a=0;for(e=r.r1;e<=r.r2;e++)for(i=r.g1;i<=r.g2;i++)for(u=r.b1;u<=r.b2;u++)a+=n[o(e,i,u)]||0;r._count=a,r._count_set=!0}return r._count},copy:function(){var t=this;return new i(t.r1,t.r2,t.g1,t.g2,t.b1,t.b2,t.histo)},avg:function(t){var r=this,n=r.histo;if(!r._avg||t){var e,i,u,a,c=0,f=0,s=0,h=0;if(r.r1===r.r2&&r.g1===r.g2&&r.b1===r.b2)r._avg=[r.r1<<3,r.g1<<3,r.b1<<3];else{for(i=r.r1;i<=r.r2;i++)for(u=r.g1;u<=r.g2;u++)for(a=r.b1;a<=r.b2;a++)c+=e=n[o(i,u,a)]||0,f+=e*(i+.5)*8,s+=e*(u+.5)*8,h+=e*(a+.5)*8;r._avg=c?[~~(f/c),~~(s/c),~~(h/c)]:[~~(8*(r.r1+r.r2+1)/2),~~(8*(r.g1+r.g2+1)/2),~~(8*(r.b1+r.b2+1)/2)]}}return r._avg},contains:function(t){var r=this,n=t[0]>>3;return gval=t[1]>>3,bval=t[2]>>3,n>=r.r1&&n<=r.r2&&gval>=r.g1&&gval<=r.g2&&bval>=r.b1&&bval<=r.b2}},u.prototype={push:function(t){this.vboxes.push({vbox:t,color:t.avg()})},palette:function(){return this.vboxes.map(function(t){return t.color})},size:function(){return this.vboxes.size()},map:function(t){for(var r=this.vboxes,n=0;n<r.size();n++)if(r.peek(n).vbox.contains(t))return r.peek(n).color;return this.nearest(t)},nearest:function(t){for(var r,n,o,e=this.vboxes,i=0;i<e.size();i++)((n=Math.sqrt(Math.pow(t[0]-e.peek(i).color[0],2)+Math.pow(t[1]-e.peek(i).color[1],2)+Math.pow(t[2]-e.peek(i).color[2],2)))<r||void 0===r)&&(r=n,o=e.peek(i).color);return o},forcebw:function(){var n=this.vboxes;n.sort(function(n,o){return t(r(n.color),r(o.color))});var o=n[0].color;o[0]<5&&o[1]<5&&o[2]<5&&(n[0].color=[0,0,0]);var e=n.length-1,i=n[e].color;i[0]>251&&i[1]>251&&i[2]>251&&(n[e].color=[255,255,255])}},{quantize:function(r,c){if(!Number.isInteger(c)||c<1||c>256)throw new Error(\"Invalid maximum color count. It must be an integer between 1 and 256.\");if(!r.length||c<2||c>256)return!1;if(!r.length||c<2||c>256)return!1;for(var f=[],s=new Set,h=0;h<r.length;h++){var v=r[h],l=v.join(\",\");s.has(l)||(s.add(l),f.push(v))}if(f.length<=c)return new n(f);var g=function(t){var r,n=new Array(32768);return t.forEach(function(t){r=o(t[0]>>3,t[1]>>3,t[2]>>3),n[r]=(n[r]||0)+1}),n}(r);g.forEach(function(){});var p=function(t,r){var n,o,e,u=1e6,a=0,c=1e6,f=0,s=1e6,h=0;return t.forEach(function(t){(n=t[0]>>3)<u?u=n:n>a&&(a=n),(o=t[1]>>3)<c?c=o:o>f&&(f=o),(e=t[2]>>3)<s?s=e:e>h&&(h=e)}),new i(u,a,c,f,s,h,r)}(r,g),b=new e(function(r,n){return t(r.count(),n.count())});function m(t,r){for(var n,o=t.size(),e=0;e<1e3;){if(o>=r)return;if(e++>1e3)return;if((n=t.pop()).count()){var i=a(g,n),u=i[0],c=i[1];if(!u)return;t.push(u),c&&(t.push(c),o++)}else t.push(n),e++}}b.push(p),m(b,.75*c);for(var d=new e(function(r,n){return t(r.count()*r.volume(),n.count()*n.volume())});b.size();)d.push(b.pop());m(d,c);for(var w=new u;d.size();)w.push(d.pop());return w}}}().quantize,e=function(t){this.canvas=document.createElement(\"canvas\"),this.context=this.canvas.getContext(\"2d\"),this.width=this.canvas.width=t.naturalWidth,this.height=this.canvas.height=t.naturalHeight,this.context.drawImage(t,0,0,this.width,this.height)};e.prototype.getImageData=function(){return this.context.getImageData(0,0,this.width,this.height)};var u=function(){};u.prototype.getColor=function(t,r){return void 0===r&&(r=10),this.getPalette(t,5,r)[0]},u.prototype.getPalette=function(t,r,n){var i=function(t){var r=t.colorCount,n=t.quality;if(void 0!==r&&Number.isInteger(r)){if(1===r)throw new Error(\"colorCount should be between 2 and 20. To get one color, call getColor() instead of getPalette()\");r=Math.max(r,2),r=Math.min(r,20)}else r=10;return(void 0===n||!Number.isInteger(n)||n<1)&&(n=10),{colorCount:r,quality:n}}({colorCount:r,quality:n}),u=new e(t),a=function(t,r,n){for(var o,e,i,u,a,c=t,f=[],s=0;s<r;s+=n)e=c[0+(o=4*s)],i=c[o+1],u=c[o+2],(void 0===(a=c[o+3])||a>=125)&&(e>250&&i>250&&u>250||f.push([e,i,u]));return f}(u.getImageData().data,u.width*u.height,i.quality),c=o(a,i.colorCount);return c?c.palette():null},u.prototype.getColorFromUrl=function(t,r,n){var o=this,e=document.createElement(\"img\");e.addEventListener(\"load\",function(){var i=o.getPalette(e,5,n);r(i[0],t)}),e.src=t},u.prototype.getImageData=function(t,r){var n=new XMLHttpRequest;n.open(\"GET\",t,!0),n.responseType=\"arraybuffer\",n.onload=function(){if(200==this.status){var t=new Uint8Array(this.response);i=t.length;for(var n=new Array(i),o=0;o<t.length;o++)n[o]=String.fromCharCode(t[o]);var e=n.join(\"\"),u=window.btoa(e);r(\"data:image/png;base64,\"+u)}},n.send()},u.prototype.getColorAsync=function(t,r,n){var o=this;this.getImageData(t,function(t){var e=document.createElement(\"img\");e.addEventListener(\"load\",function(){var t=o.getPalette(e,5,n);r(t[0],this)}),e.src=t})};export{u as default};\n","import { COLORS } from \"../constants\";\r\nimport {\r\n adjustHue,\r\n getScale,\r\n saturate as _saturate,\r\n transparentize as _transparentize,\r\n desaturate as _desaturate,\r\n hasBadContrast,\r\n getLuminance,\r\n lighten,\r\n darken,\r\n toRgba,\r\n} from \"color2k\";\r\nimport ColorThief from \"colorthief\";\r\n\r\nexport type RGBArray = [number, number, number];\r\n\r\nexport type Palette = {\r\n BASE_COLOR: string;\r\n BRAND: {\r\n PRIMARY: string;\r\n PRIMARY_LIGHT: string;\r\n SECONDARY: string;\r\n };\r\n PRIMARY: {\r\n //backgrounds\r\n PRIMARY_SUPER_DARK: string;\r\n PRIMARY_DARK: string;\r\n //interactive components\r\n PRIMARY_MEDIUM: string;\r\n //borders and seperators\r\n PRIMARY_MEDIUM_LIGHT: string;\r\n //solid colors\r\n PRIMARY_LIGHT: string;\r\n //accessible text\r\n PRIMARY_LIGHTEST: string;\r\n PRIMARY_SUPER_LIGHT: string;\r\n };\r\n SECONDARY: {\r\n //backgrounds\r\n SECONDARY_SUPER_DARK: string;\r\n SECONDARY_DARK: string;\r\n //interactive components\r\n SECONDARY_MEDIUM: string;\r\n //borders and seperators\r\n SECONDARY_MEDIUM_LIGHT: string;\r\n //solid colors\r\n SECONDARY_LIGHT: string;\r\n //accessible text\r\n SECONDARY_LIGHTEST: string;\r\n SECONDARY_SUPER_LIGHT: string;\r\n };\r\n};\r\n\r\nexport const DEFAULT_BACKGROUND = \"rgba(83, 82, 83, 1)\";\r\n\r\nexport const DEFAULT_PALETTE: Palette = {\r\n BASE_COLOR: DEFAULT_BACKGROUND,\r\n BRAND: {\r\n PRIMARY: COLORS.BRAND.PRIMARY,\r\n PRIMARY_LIGHT: COLORS.BRAND.PRIMARY_LIGHT,\r\n SECONDARY: COLORS.BRAND.SECONDARY,\r\n },\r\n PRIMARY: {\r\n PRIMARY_SUPER_DARK: COLORS.GRAYSCALE.GRAY_SUPER_DARK,\r\n PRIMARY_DARK: COLORS.GRAYSCALE.GRAY_DARK,\r\n PRIMARY_MEDIUM: COLORS.GRAYSCALE.GRAY_MEDIUM,\r\n PRIMARY_MEDIUM_LIGHT: COLORS.GRAYSCALE.GRAY_MEDIUM_LIGHT,\r\n PRIMARY_LIGHT: COLORS.GRAYSCALE.GRAY_LIGHT,\r\n PRIMARY_LIGHTEST: COLORS.GRAYSCALE.GRAY_LIGHTEST,\r\n PRIMARY_SUPER_LIGHT: COLORS.GRAYSCALE.GRAY_SUPER_LIGHT,\r\n },\r\n SECONDARY: {\r\n SECONDARY_SUPER_DARK: COLORS.GRAYSCALE.GRAY_SUPER_DARK,\r\n SECONDARY_DARK: COLORS.GRAYSCALE.GRAY_DARK,\r\n SECONDARY_MEDIUM: COLORS.GRAYSCALE.GRAY_MEDIUM,\r\n SECONDARY_MEDIUM_LIGHT: COLORS.GRAYSCALE.GRAY_MEDIUM_LIGHT,\r\n SECONDARY_LIGHT: COLORS.GRAYSCALE.GRAY_LIGHT,\r\n SECONDARY_LIGHTEST: COLORS.GRAYSCALE.GRAY_LIGHTEST,\r\n SECONDARY_SUPER_LIGHT: COLORS.GRAYSCALE.GRAY_SUPER_LIGHT,\r\n },\r\n // Success, Warning & Danger palettes go here...\r\n};\r\n\r\n/**\r\n * Converts an RGB array to a CSS string representation.\r\n * @param rgb - The RGB array to convert.\r\n * @param opacity - Optional opacity value.\r\n * @returns A CSS string representation of the RGB array, using `rgb()`, or `rgba()` if an opacity value is provided.\r\n */\r\nexport const arrayToRgbString = (rgb: RGBArray, opacity?: number): string => {\r\n return opacity === undefined\r\n ? `rgb(${rgb[0]}, ${rgb[1]}, ${rgb[2]})`\r\n : `rgba(${rgb[0]}, ${rgb[1]}, ${rgb[2]}, ${opacity})`;\r\n};\r\n\r\n/**\r\n * Transparentizes an input color.\r\n *\r\n * @param color - The color string to transparentize.\r\n * @param amount - The amount to increase the opacity of the color by, given as a decimal between 0 and 1.\r\n * @returns An RGBA color string.\r\n */\r\nexport const transparentize = (color: string, amount: number): string => {\r\n return toRgba(_transparentize(color, amount));\r\n};\r\n\r\n/**\r\n * Saturates a color.\r\n *\r\n * @param color - Input color\r\n * @param amount - The amount to saturate, given as a decimal between 0 and 1\r\n * @returns An RGBA color string.\r\n */\r\nexport const saturate = (color: string, amount: number): string => {\r\n return toRgba(_saturate(color, amount));\r\n};\r\n\r\n/**\r\n * Desaturates a color.\r\n *\r\n * @param color - Input color\r\n * @param amount - The amount to desaturate, given as a decimal between 0 and 1\r\n * @returns An RGBA color string.\r\n */\r\nexport const desaturate = (color: string, amount: number): string => {\r\n return toRgba(_desaturate(color, amount));\r\n};\r\n\r\n/**\r\n * Gets the dominant color of an image. Avoids issues with low contrast colors.\r\n * @reference https://github.com/lokesh/color-thief/issues/40\r\n * @param image - The image to get the dominant color from.\r\n * @returns An RGB array.\r\n */\r\nexport const getDominantColor = (image: HTMLImageElement): RGBArray => {\r\n try {\r\n const colorThief = new ColorThief();\r\n const baseColor = colorThief.getColor(image);\r\n return baseColor;\r\n } catch {\r\n return [255, 255, 255];\r\n }\r\n};\r\n\r\n/**\r\n * Generates a complete color palette based on a primary color input.\r\n * The palette includes primary and secondary color scales with varying shades.\r\n *\r\n * @param primaryColor - The base RGB color array to generate the palette from\r\n * @returns A Palette object containing:\r\n * - BRAND colors (primary, light primary, and secondary)\r\n * - PRIMARY scale (7 shades from super dark to super light)\r\n * - SECONDARY scale (7 shades from super dark to super light)\r\n *\r\n * The function:\r\n * 1. Creates a 12-color scale from white to the primary color to black\r\n * 2. Generates a complementary secondary color by shifting the hue 180 degrees\r\n * 3. Creates another 12-color scale for the secondary color\r\n * 4. Maps specific positions from these scales to create the final palette structure\r\n */\r\nexport const generatePalette = (baseColor: RGBArray): Palette => {\r\n const primaryRgba = arrayToRgbString(baseColor);\r\n\r\n const primaryScaleFunc = getScale(\"#FFFFFF\", primaryRgba, \"#000000\");\r\n const primaryScale = Array.from({ length: 12 }, (_, i) => {\r\n const color = primaryScaleFunc(i / 11);\r\n return desaturate(color, 0.0085);\r\n });\r\n\r\n const adjustedPrimaryScale = primaryScale.map((color) =>\r\n saturate(adjustBrightnessForLuminance(color), 0.005)\r\n );\r\n\r\n const secondaryColor = toRgba(saturate(adjustHue(primaryRgba, 180), 1));\r\n\r\n const secondaryScaleFunc = getScale(\"#FFFFFF\", secondaryColor, \"#000000\");\r\n const secondaryScale = Array.from({ length: 12 }, (_, i) => {\r\n const color = secondaryScaleFunc(i / 11);\r\n return desaturate(color, 0.1);\r\n });\r\n\r\n const adjustedSecondaryScale = secondaryScale.map((color) =>\r\n desaturate(adjustBrightnessForLuminance(color), 0.22)\r\n );\r\n\r\n const brandPrimary = darkenForContrast(\r\n saturate(adjustedPrimaryScale[5], 0.115)\r\n );\r\n\r\n return {\r\n BASE_COLOR: arrayToRgbString(baseColor),\r\n BRAND: {\r\n PRIMARY: brandPrimary,\r\n PRIMARY_LIGHT: lightenWithinRange(brandPrimary, 0.25, {\r\n min: 0.6,\r\n max: 0.8,\r\n }),\r\n SECONDARY: desaturate(adjustedSecondaryScale[4], 0.02),\r\n },\r\n PRIMARY: {\r\n //backgrounds\r\n PRIMARY_SUPER_DARK: lightenWithinRange(\r\n lightenForContrast(primaryScale[9]),\r\n -0.6,\r\n {\r\n min: 0.0,\r\n max: 0.02,\r\n }\r\n ),\r\n PRIMARY_DARK: lightenWithinRange(\r\n lightenForContrast(primaryScale[8]),\r\n -0.4,\r\n {\r\n min: 0.01,\r\n max: 0.02,\r\n }\r\n ),\r\n //interactive components\r\n PRIMARY_MEDIUM: lightenWithinRange(adjustedPrimaryScale[7], -0.2, {\r\n min: 0.0,\r\n max: 0.11,\r\n }),\r\n //borders and seperators\r\n PRIMARY_MEDIUM_LIGHT: lightenWithinRange(\r\n desaturate(adjustedPrimaryScale[6], 0.1),\r\n 0.08\r\n ),\r\n //solid colors\r\n PRIMARY_LIGHT: lightenWithinRange(\r\n saturate(adjustedPrimaryScale[5], 0.1),\r\n 0.16\r\n ),\r\n //accessible text\r\n PRIMARY_LIGHTEST: lightenWithinRange(\r\n saturate(adjustedPrimaryScale[3], 0.2),\r\n 0.12,\r\n {\r\n min: 0.5,\r\n max: 0.9,\r\n }\r\n ),\r\n PRIMARY_SUPER_LIGHT: lightenWithinRange(adjustedPrimaryScale[1], 0.02, {\r\n min: 0.86,\r\n max: 0.98,\r\n }),\r\n },\r\n SECONDARY: {\r\n //backgrounds\r\n SECONDARY_SUPER_DARK: lightenWithinRange(\r\n lightenForContrast(secondaryScale[9]),\r\n -0.6,\r\n {\r\n min: 0.0,\r\n max: 0.02,\r\n }\r\n ),\r\n SECONDARY_DARK: lightenWithinRange(\r\n lightenForContrast(secondaryScale[8]),\r\n -0.4,\r\n {\r\n min: 0.01,\r\n max: 0.02,\r\n }\r\n ),\r\n // interactive components\r\n SECONDARY_MEDIUM: lightenWithinRange(adjustedSecondaryScale[7], -0.2, {\r\n min: 0.0,\r\n max: 0.11,\r\n }),\r\n //borders and seperators\r\n SECONDARY_MEDIUM_LIGHT: lightenWithinRange(\r\n adjustedSecondaryScale[6],\r\n 0.1\r\n ),\r\n //solid colors\r\n SECONDARY_LIGHT: lightenWithinRange(\r\n saturate(adjustedSecondaryScale[5], 0.1),\r\n 0.16\r\n ),\r\n //accessible text\r\n SECONDARY_LIGHTEST: lightenWithinRange(\r\n saturate(adjustedSecondaryScale[3], 0.2),\r\n 0.12,\r\n {\r\n min: 0.5,\r\n max: 0.9,\r\n }\r\n ),\r\n SECONDARY_SUPER_LIGHT: lightenWithinRange(\r\n adjustedSecondaryScale[0],\r\n 0.02,\r\n {\r\n min: 0.86,\r\n max: 0.98,\r\n }\r\n ),\r\n },\r\n };\r\n};\r\n\r\nconst lightenWithinRange = (\r\n color: string,\r\n amount: number,\r\n range: { min: number; max: number } = { min: 0.03, max: 0.97 }\r\n): string => {\r\n let adjustedColor = color;\r\n let currentLuminance = getLuminance(adjustedColor);\r\n\r\n // Validate range bounds\r\n if (range.min < 0) range.min = 0;\r\n if (range.max > 1) range.max = 1;\r\n if (range.min >= range.max) {\r\n throw new Error(\"Invalid range: min must be less than max\");\r\n }\r\n\r\n // For lightening (positive amount)\r\n if (amount > 0) {\r\n // Calculate how much we can lighten before hitting max\r\n const remainingLuminance = range.max - currentLuminance;\r\n if (remainingLuminance <= 0) return toRgba(adjustedColor);\r\n\r\n // Scale the amount based on remaining room to lighten\r\n const scaledAmount = amount * (remainingLuminance / (1 - currentLuminance));\r\n adjustedColor = lighten(adjustedColor, scaledAmount);\r\n }\r\n // For darkening (negative amount)\r\n else if (amount < 0) {\r\n // Calculate how much we can darken before hitting min\r\n const remainingLuminance = currentLuminance - range.min;\r\n if (remainingLuminance <= 0) return toRgba(adjustedColor);\r\n\r\n // Scale the amount based on remaining room to darken\r\n const scaledAmount = amount * (remainingLuminance / currentLuminance);\r\n adjustedColor = darken(adjustedColor, Math.abs(scaledAmount));\r\n }\r\n\r\n // Verify final luminance is within bounds\r\n const finalLuminance = getLuminance(adjustedColor);\r\n if (finalLuminance > range.max) {\r\n adjustedColor = adjustBrightnessWithinRange(adjustedColor, range);\r\n } else if (finalLuminance < range.min) {\r\n adjustedColor = adjustBrightnessWithinRange(adjustedColor, range);\r\n }\r\n\r\n return toRgba(adjustedColor);\r\n};\r\n\r\nconst adjustBrightnessWithinRange = (\r\n color: string,\r\n range: { min: number; max: number }\r\n): string => {\r\n let adjustedColor = color;\r\n let luminance = getLuminance(adjustedColor);\r\n\r\n // Darken if too bright\r\n while (luminance > range.max) {\r\n adjustedColor = darken(adjustedColor, 0.05);\r\n luminance = getLuminance(adjustedColor);\r\n }\r\n\r\n // Lighten if too dark\r\n while (luminance < range.min) {\r\n adjustedColor = lighten(adjustedColor, 0.05);\r\n luminance = getLuminance(adjustedColor);\r\n }\r\n\r\n return toRgba(adjustedColor);\r\n};\r\n\r\nconst lightenForContrast = (color: string): string => {\r\n while (hasBadContrast(color, \"readable\", COLORS.GRAYSCALE.GRAY_DARK)) {\r\n color = lighten(color, 0.01);\r\n }\r\n return toRgba(color);\r\n};\r\n\r\nconst darkenForContrast = (color: string): string => {\r\n while (hasBadContrast(COLORS.GRAYSCALE.GRAY_SUPER_LIGHT, \"readable\", color)) {\r\n color = darken(color, 0.01);\r\n }\r\n return toRgba(color);\r\n};\r\n\r\nconst adjustBrightnessForLuminance = (color: string): string => {\r\n let currentColor = color;\r\n let currentLuminance = getLuminance(toRgba(currentColor));\r\n let adjustmentAttempts = 0;\r\n const MAX_ATTEMPTS = 6;\r\n\r\n while (currentLuminance < 0.16 && adjustmentAttempts < MAX_ATTEMPTS) {\r\n adjustmentAttempts++;\r\n currentColor = lighten(currentColor, 0.1);\r\n currentLuminance = getLuminance(toRgba(currentColor));\r\n }\r\n\r\n while (currentLuminance > 0.6 && adjustmentAttempts < MAX_ATTEMPTS) {\r\n adjustmentAttempts++;\r\n currentColor = darken(currentColor, 0.1);\r\n currentLuminance = getLuminance(toRgba(currentColor));\r\n }\r\n\r\n return toRgba(currentColor);\r\n};\r\n","const isString = (x: unknown): boolean =>\r\n typeof x === \"string\" || x instanceof String;\r\n\r\nexport function csx(...classnames: unknown[]): string {\r\n return classnames.filter(isString).join(\" \");\r\n}\r\n\r\n/**\r\n * [getLinkHost] - get the host of a link.\r\n * Referenced from is-url-external npm package\r\n * https://github.com/mrded/is-url-external/blob/master/index.js\r\n */\r\nconst getLinkHost = (url) => {\r\n if (/^https?:\\/\\//.test(url)) {\r\n // Absolute URL.\r\n // The easy way to parse an URL, is to create <a> element.\r\n // @see: https://gist.github.com/jlong/2428561\r\n const parser = document.createElement(\"a\");\r\n parser.href = url;\r\n return parser.hostname;\r\n }\r\n return window.location.hostname;\r\n};\r\n\r\n/**\r\n * [isUrlExternal] - determine if passed absolute url is external to the current domain.\r\n */\r\nexport const isUrlExternal = (url) => {\r\n const host = window.location.hostname;\r\n const linkHost = getLinkHost(url);\r\n\r\n return host !== linkHost;\r\n};\r\n\r\n/**\r\n * Handles internal navigation clicks by preventing default browser behavior and\r\n * programmatically updating the URL and history state.\r\n *\r\n * @param e - The click event from the anchor element\r\n * @param to - The destination path to navigate to\r\n *\r\n * @remarks\r\n * - Converts relative paths to absolute by prepending \"/\" if needed\r\n * - Updates browser history using pushState and dispatches a popstate event\r\n */\r\nexport const handleInternalNavigation = (\r\n e: React.MouseEvent<HTMLAnchorElement>,\r\n to: string\r\n) => {\r\n // Don't handle navigation if modifier keys are pressed\r\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) {\r\n return;\r\n }\r\n\r\n // Don't handle middle clicks or right clicks\r\n if (e.button && e.button !== 0) {\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n\r\n // Handle relative paths\r\n const resolvedPath = to.startsWith(\"/\") ? to : `/${to}`;\r\n window.history.pushState({}, \"\", resolvedPath);\r\n window.dispatchEvent(new PopStateEvent(\"popstate\"));\r\n};\r\n"],"names":["t","r","n","o","e","i","u","a","c","f","s","h","v","l","g","p","b","m","d","w","DEFAULT_BACKGROUND","DEFAULT_PALETTE","COLORS.BRAND","COLORS.GRAYSCALE","arrayToRgbString","rgb","opacity","transparentize","color","amount","toRgba","_transparentize","saturate","_saturate","desaturate","_desaturate","getDominantColor","image","ColorThief","generatePalette","baseColor","primaryRgba","primaryScaleFunc","getScale","primaryScale","_","adjustedPrimaryScale","adjustBrightnessForLuminance","secondaryColor","adjustHue","secondaryScaleFunc","secondaryScale","adjustedSecondaryScale","brandPrimary","darkenForContrast","lightenWithinRange","lightenForContrast","range","adjustedColor","currentLuminance","getLuminance","remainingLuminance","scaledAmount","lighten","darken","finalLuminance","adjustBrightnessWithinRange","luminance","hasBadContrast","currentColor","adjustmentAttempts","MAX_ATTEMPTS","isString","x","csx","classnames","getLinkHost","url","parser","isUrlExternal","host","linkHost","handleInternalNavigation","to","resolvedPath"],"mappings":"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","x_google_ignoreList":[0]}
|
package/dist/utils.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./utils-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./utils-BUwoPI1e.js");exports.DEFAULT_BACKGROUND=t.DEFAULT_BACKGROUND;exports.DEFAULT_PALETTE=t.DEFAULT_PALETTE;exports.arrayToRgbString=t.arrayToRgbString;exports.csx=t.csx;exports.desaturate=t.desaturate;exports.generatePalette=t.generatePalette;exports.getDominantColor=t.getDominantColor;exports.handleInternalNavigation=t.handleInternalNavigation;exports.isUrlExternal=t.isUrlExternal;exports.saturate=t.saturate;exports.transparentize=t.transparentize;
|
|
2
2
|
//# sourceMappingURL=utils.cjs.js.map
|
package/dist/utils.es.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { D as t, a as e, b as r, e as n, d as i, c as o, g, h as l, i as D, s as E, t as T } from "./utils-
|
|
1
|
+
import { D as t, a as e, b as r, e as n, d as i, c as o, g, h as l, i as D, s as E, t as T } from "./utils-Bc2wVuvD.mjs";
|
|
2
2
|
export {
|
|
3
3
|
t as DEFAULT_BACKGROUND,
|
|
4
4
|
e as DEFAULT_PALETTE,
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils-KedSkjS1.mjs","sources":["../node_modules/colorthief/dist/color-thief.mjs","../src/utils/color.ts","../src/utils/utils.ts"],"sourcesContent":["var t=function(t,r){return t<r?-1:t>r?1:0},r=function(t){return t.reduce(function(t,r){return t+r},0)},n=/*#__PURE__*/function(){function t(t){this.colors=t}var r=t.prototype;return r.palette=function(){return this.colors},r.map=function(t){return t},t}(),o=function(){function o(t,r,n){return(t<<10)+(r<<5)+n}function e(t){var r=[],n=!1;function o(){r.sort(t),n=!0}return{push:function(t){r.push(t),n=!1},peek:function(t){return n||o(),void 0===t&&(t=r.length-1),r[t]},pop:function(){return n||o(),r.pop()},size:function(){return r.length},map:function(t){return r.map(t)},debug:function(){return n||o(),r}}}function i(t,r,n,o,e,i,u){var a=this;a.r1=t,a.r2=r,a.g1=n,a.g2=o,a.b1=e,a.b2=i,a.histo=u}function u(){this.vboxes=new e(function(r,n){return t(r.vbox.count()*r.vbox.volume(),n.vbox.count()*n.vbox.volume())})}function a(t,r){if(r.count()){var n=r.r2-r.r1+1,e=r.g2-r.g1+1,i=Math.max.apply(null,[n,e,r.b2-r.b1+1]);if(1==r.count())return[r.copy()];var u,a,c,f,s=0,h=[],v=[];if(i==n)for(u=r.r1;u<=r.r2;u++){for(f=0,a=r.g1;a<=r.g2;a++)for(c=r.b1;c<=r.b2;c++)f+=t[o(u,a,c)]||0;h[u]=s+=f}else if(i==e)for(u=r.g1;u<=r.g2;u++){for(f=0,a=r.r1;a<=r.r2;a++)for(c=r.b1;c<=r.b2;c++)f+=t[o(a,u,c)]||0;h[u]=s+=f}else for(u=r.b1;u<=r.b2;u++){for(f=0,a=r.r1;a<=r.r2;a++)for(c=r.g1;c<=r.g2;c++)f+=t[o(a,c,u)]||0;h[u]=s+=f}return h.forEach(function(t,r){v[r]=s-t}),function(t){var n,o,e,i,a,c=t+\"1\",f=t+\"2\",l=0;for(u=r[c];u<=r[f];u++)if(h[u]>s/2){for(e=r.copy(),i=r.copy(),a=(n=u-r[c])<=(o=r[f]-u)?Math.min(r[f]-1,~~(u+o/2)):Math.max(r[c],~~(u-1-n/2));!h[a];)a++;for(l=v[a];!l&&h[a-1];)l=v[--a];return e[f]=a,i[c]=e[f]+1,[e,i]}}(i==n?\"r\":i==e?\"g\":\"b\")}}return i.prototype={volume:function(t){var r=this;return r._volume&&!t||(r._volume=(r.r2-r.r1+1)*(r.g2-r.g1+1)*(r.b2-r.b1+1)),r._volume},count:function(t){var r=this,n=r.histo;if(!r._count_set||t){var e,i,u,a=0;for(e=r.r1;e<=r.r2;e++)for(i=r.g1;i<=r.g2;i++)for(u=r.b1;u<=r.b2;u++)a+=n[o(e,i,u)]||0;r._count=a,r._count_set=!0}return r._count},copy:function(){var t=this;return new i(t.r1,t.r2,t.g1,t.g2,t.b1,t.b2,t.histo)},avg:function(t){var r=this,n=r.histo;if(!r._avg||t){var e,i,u,a,c=0,f=0,s=0,h=0;if(r.r1===r.r2&&r.g1===r.g2&&r.b1===r.b2)r._avg=[r.r1<<3,r.g1<<3,r.b1<<3];else{for(i=r.r1;i<=r.r2;i++)for(u=r.g1;u<=r.g2;u++)for(a=r.b1;a<=r.b2;a++)c+=e=n[o(i,u,a)]||0,f+=e*(i+.5)*8,s+=e*(u+.5)*8,h+=e*(a+.5)*8;r._avg=c?[~~(f/c),~~(s/c),~~(h/c)]:[~~(8*(r.r1+r.r2+1)/2),~~(8*(r.g1+r.g2+1)/2),~~(8*(r.b1+r.b2+1)/2)]}}return r._avg},contains:function(t){var r=this,n=t[0]>>3;return gval=t[1]>>3,bval=t[2]>>3,n>=r.r1&&n<=r.r2&&gval>=r.g1&&gval<=r.g2&&bval>=r.b1&&bval<=r.b2}},u.prototype={push:function(t){this.vboxes.push({vbox:t,color:t.avg()})},palette:function(){return this.vboxes.map(function(t){return t.color})},size:function(){return this.vboxes.size()},map:function(t){for(var r=this.vboxes,n=0;n<r.size();n++)if(r.peek(n).vbox.contains(t))return r.peek(n).color;return this.nearest(t)},nearest:function(t){for(var r,n,o,e=this.vboxes,i=0;i<e.size();i++)((n=Math.sqrt(Math.pow(t[0]-e.peek(i).color[0],2)+Math.pow(t[1]-e.peek(i).color[1],2)+Math.pow(t[2]-e.peek(i).color[2],2)))<r||void 0===r)&&(r=n,o=e.peek(i).color);return o},forcebw:function(){var n=this.vboxes;n.sort(function(n,o){return t(r(n.color),r(o.color))});var o=n[0].color;o[0]<5&&o[1]<5&&o[2]<5&&(n[0].color=[0,0,0]);var e=n.length-1,i=n[e].color;i[0]>251&&i[1]>251&&i[2]>251&&(n[e].color=[255,255,255])}},{quantize:function(r,c){if(!Number.isInteger(c)||c<1||c>256)throw new Error(\"Invalid maximum color count. It must be an integer between 1 and 256.\");if(!r.length||c<2||c>256)return!1;if(!r.length||c<2||c>256)return!1;for(var f=[],s=new Set,h=0;h<r.length;h++){var v=r[h],l=v.join(\",\");s.has(l)||(s.add(l),f.push(v))}if(f.length<=c)return new n(f);var g=function(t){var r,n=new Array(32768);return t.forEach(function(t){r=o(t[0]>>3,t[1]>>3,t[2]>>3),n[r]=(n[r]||0)+1}),n}(r);g.forEach(function(){});var p=function(t,r){var n,o,e,u=1e6,a=0,c=1e6,f=0,s=1e6,h=0;return t.forEach(function(t){(n=t[0]>>3)<u?u=n:n>a&&(a=n),(o=t[1]>>3)<c?c=o:o>f&&(f=o),(e=t[2]>>3)<s?s=e:e>h&&(h=e)}),new i(u,a,c,f,s,h,r)}(r,g),b=new e(function(r,n){return t(r.count(),n.count())});function m(t,r){for(var n,o=t.size(),e=0;e<1e3;){if(o>=r)return;if(e++>1e3)return;if((n=t.pop()).count()){var i=a(g,n),u=i[0],c=i[1];if(!u)return;t.push(u),c&&(t.push(c),o++)}else t.push(n),e++}}b.push(p),m(b,.75*c);for(var d=new e(function(r,n){return t(r.count()*r.volume(),n.count()*n.volume())});b.size();)d.push(b.pop());m(d,c);for(var w=new u;d.size();)w.push(d.pop());return w}}}().quantize,e=function(t){this.canvas=document.createElement(\"canvas\"),this.context=this.canvas.getContext(\"2d\"),this.width=this.canvas.width=t.naturalWidth,this.height=this.canvas.height=t.naturalHeight,this.context.drawImage(t,0,0,this.width,this.height)};e.prototype.getImageData=function(){return this.context.getImageData(0,0,this.width,this.height)};var u=function(){};u.prototype.getColor=function(t,r){return void 0===r&&(r=10),this.getPalette(t,5,r)[0]},u.prototype.getPalette=function(t,r,n){var i=function(t){var r=t.colorCount,n=t.quality;if(void 0!==r&&Number.isInteger(r)){if(1===r)throw new Error(\"colorCount should be between 2 and 20. To get one color, call getColor() instead of getPalette()\");r=Math.max(r,2),r=Math.min(r,20)}else r=10;return(void 0===n||!Number.isInteger(n)||n<1)&&(n=10),{colorCount:r,quality:n}}({colorCount:r,quality:n}),u=new e(t),a=function(t,r,n){for(var o,e,i,u,a,c=t,f=[],s=0;s<r;s+=n)e=c[0+(o=4*s)],i=c[o+1],u=c[o+2],(void 0===(a=c[o+3])||a>=125)&&(e>250&&i>250&&u>250||f.push([e,i,u]));return f}(u.getImageData().data,u.width*u.height,i.quality),c=o(a,i.colorCount);return c?c.palette():null},u.prototype.getColorFromUrl=function(t,r,n){var o=this,e=document.createElement(\"img\");e.addEventListener(\"load\",function(){var i=o.getPalette(e,5,n);r(i[0],t)}),e.src=t},u.prototype.getImageData=function(t,r){var n=new XMLHttpRequest;n.open(\"GET\",t,!0),n.responseType=\"arraybuffer\",n.onload=function(){if(200==this.status){var t=new Uint8Array(this.response);i=t.length;for(var n=new Array(i),o=0;o<t.length;o++)n[o]=String.fromCharCode(t[o]);var e=n.join(\"\"),u=window.btoa(e);r(\"data:image/png;base64,\"+u)}},n.send()},u.prototype.getColorAsync=function(t,r,n){var o=this;this.getImageData(t,function(t){var e=document.createElement(\"img\");e.addEventListener(\"load\",function(){var t=o.getPalette(e,5,n);r(t[0],this)}),e.src=t})};export{u as default};\n","import { COLORS } from \"../constants\";\r\nimport {\r\n adjustHue,\r\n getScale,\r\n saturate as _saturate,\r\n transparentize as _transparentize,\r\n desaturate as _desaturate,\r\n hasBadContrast,\r\n getLuminance,\r\n lighten,\r\n darken,\r\n toRgba,\r\n} from \"color2k\";\r\nimport ColorThief from \"colorthief\";\r\n\r\nexport type RGBArray = [number, number, number];\r\n\r\nexport type Palette = {\r\n BASE_COLOR: string;\r\n BRAND: {\r\n PRIMARY: string;\r\n PRIMARY_LIGHT: string;\r\n SECONDARY: string;\r\n };\r\n PRIMARY: {\r\n //backgrounds\r\n PRIMARY_SUPER_DARK: string;\r\n PRIMARY_DARK: string;\r\n //interactive components\r\n PRIMARY_MEDIUM: string;\r\n //borders and seperators\r\n PRIMARY_MEDIUM_LIGHT: string;\r\n //solid colors\r\n PRIMARY_LIGHT: string;\r\n //accessible text\r\n PRIMARY_LIGHTEST: string;\r\n PRIMARY_SUPER_LIGHT: string;\r\n };\r\n SECONDARY: {\r\n //backgrounds\r\n SECONDARY_SUPER_DARK: string;\r\n SECONDARY_DARK: string;\r\n //interactive components\r\n SECONDARY_MEDIUM: string;\r\n //borders and seperators\r\n SECONDARY_MEDIUM_LIGHT: string;\r\n //solid colors\r\n SECONDARY_LIGHT: string;\r\n //accessible text\r\n SECONDARY_LIGHTEST: string;\r\n SECONDARY_SUPER_LIGHT: string;\r\n };\r\n};\r\n\r\nexport const DEFAULT_BACKGROUND = \"rgba(83, 82, 83, 1)\";\r\n\r\nexport const DEFAULT_PALETTE: Palette = {\r\n BASE_COLOR: DEFAULT_BACKGROUND,\r\n BRAND: {\r\n PRIMARY: COLORS.BRAND.PRIMARY,\r\n PRIMARY_LIGHT: COLORS.BRAND.PRIMARY_LIGHT,\r\n SECONDARY: COLORS.BRAND.SECONDARY,\r\n },\r\n PRIMARY: {\r\n PRIMARY_SUPER_DARK: COLORS.GRAYSCALE.GRAY_SUPER_DARK,\r\n PRIMARY_DARK: COLORS.GRAYSCALE.GRAY_DARK,\r\n PRIMARY_MEDIUM: COLORS.GRAYSCALE.GRAY_MEDIUM,\r\n PRIMARY_MEDIUM_LIGHT: COLORS.GRAYSCALE.GRAY_MEDIUM_LIGHT,\r\n PRIMARY_LIGHT: COLORS.GRAYSCALE.GRAY_LIGHT,\r\n PRIMARY_LIGHTEST: COLORS.GRAYSCALE.GRAY_LIGHTEST,\r\n PRIMARY_SUPER_LIGHT: COLORS.GRAYSCALE.GRAY_SUPER_LIGHT,\r\n },\r\n SECONDARY: {\r\n SECONDARY_SUPER_DARK: COLORS.GRAYSCALE.GRAY_SUPER_DARK,\r\n SECONDARY_DARK: COLORS.GRAYSCALE.GRAY_DARK,\r\n SECONDARY_MEDIUM: COLORS.GRAYSCALE.GRAY_MEDIUM,\r\n SECONDARY_MEDIUM_LIGHT: COLORS.GRAYSCALE.GRAY_MEDIUM_LIGHT,\r\n SECONDARY_LIGHT: COLORS.GRAYSCALE.GRAY_LIGHT,\r\n SECONDARY_LIGHTEST: COLORS.GRAYSCALE.GRAY_LIGHTEST,\r\n SECONDARY_SUPER_LIGHT: COLORS.GRAYSCALE.GRAY_SUPER_LIGHT,\r\n },\r\n // Success, Warning & Danger palettes go here...\r\n};\r\n\r\n/**\r\n * Converts an RGB array to a CSS string representation.\r\n * @param rgb - The RGB array to convert.\r\n * @param opacity - Optional opacity value.\r\n * @returns A CSS string representation of the RGB array, using `rgb()`, or `rgba()` if an opacity value is provided.\r\n */\r\nexport const arrayToRgbString = (rgb: RGBArray, opacity?: number): string => {\r\n return opacity === undefined\r\n ? `rgb(${rgb[0]}, ${rgb[1]}, ${rgb[2]})`\r\n : `rgba(${rgb[0]}, ${rgb[1]}, ${rgb[2]}, ${opacity})`;\r\n};\r\n\r\n/**\r\n * Transparentizes an input color.\r\n *\r\n * @param color - The color string to transparentize.\r\n * @param amount - The amount to increase the opacity of the color by, given as a decimal between 0 and 1.\r\n * @returns An RGBA color string.\r\n */\r\nexport const transparentize = (color: string, amount: number): string => {\r\n return toRgba(_transparentize(color, amount));\r\n};\r\n\r\n/**\r\n * Saturates a color.\r\n *\r\n * @param color - Input color\r\n * @param amount - The amount to saturate, given as a decimal between 0 and 1\r\n * @returns An RGBA color string.\r\n */\r\nexport const saturate = (color: string, amount: number): string => {\r\n return toRgba(_saturate(color, amount));\r\n};\r\n\r\n/**\r\n * Desaturates a color.\r\n *\r\n * @param color - Input color\r\n * @param amount - The amount to desaturate, given as a decimal between 0 and 1\r\n * @returns An RGBA color string.\r\n */\r\nexport const desaturate = (color: string, amount: number): string => {\r\n return toRgba(_desaturate(color, amount));\r\n};\r\n\r\n/**\r\n * Gets the dominant color of an image. Avoids issues with low contrast colors.\r\n * @reference https://github.com/lokesh/color-thief/issues/40\r\n * @param image - The image to get the dominant color from.\r\n * @returns An RGB array.\r\n */\r\nexport const getDominantColor = (image: HTMLImageElement): RGBArray => {\r\n try {\r\n const colorThief = new ColorThief();\r\n const baseColor = colorThief.getColor(image);\r\n return baseColor;\r\n } catch {\r\n return [255, 255, 255];\r\n }\r\n};\r\n\r\n/**\r\n * Generates a complete color palette based on a primary color input.\r\n * The palette includes primary and secondary color scales with varying shades.\r\n *\r\n * @param primaryColor - The base RGB color array to generate the palette from\r\n * @returns A Palette object containing:\r\n * - BRAND colors (primary, light primary, and secondary)\r\n * - PRIMARY scale (7 shades from super dark to super light)\r\n * - SECONDARY scale (7 shades from super dark to super light)\r\n *\r\n * The function:\r\n * 1. Creates a 12-color scale from white to the primary color to black\r\n * 2. Generates a complementary secondary color by shifting the hue 180 degrees\r\n * 3. Creates another 12-color scale for the secondary color\r\n * 4. Maps specific positions from these scales to create the final palette structure\r\n */\r\nexport const generatePalette = (baseColor: RGBArray): Palette => {\r\n const primaryRgba = arrayToRgbString(baseColor);\r\n\r\n const primaryScaleFunc = getScale(\"#FFFFFF\", primaryRgba, \"#000000\");\r\n const primaryScale = Array.from({ length: 12 }, (_, i) => {\r\n const color = primaryScaleFunc(i / 11);\r\n return desaturate(color, 0.0085);\r\n });\r\n\r\n const adjustedPrimaryScale = primaryScale.map((color) =>\r\n saturate(adjustBrightnessForLuminance(color), 0.005)\r\n );\r\n\r\n const secondaryColor = toRgba(saturate(adjustHue(primaryRgba, 180), 1));\r\n\r\n const secondaryScaleFunc = getScale(\"#FFFFFF\", secondaryColor, \"#000000\");\r\n const secondaryScale = Array.from({ length: 12 }, (_, i) => {\r\n const color = secondaryScaleFunc(i / 11);\r\n return desaturate(color, 0.1);\r\n });\r\n\r\n const adjustedSecondaryScale = secondaryScale.map((color) =>\r\n desaturate(adjustBrightnessForLuminance(color), 0.22)\r\n );\r\n\r\n const brandPrimary = desaturate(\r\n darkenForContrast(saturate(adjustedPrimaryScale[5], 0.115)),\r\n 0.05\r\n );\r\n\r\n return {\r\n BASE_COLOR: arrayToRgbString(baseColor),\r\n BRAND: {\r\n PRIMARY: brandPrimary,\r\n PRIMARY_LIGHT: lightenWithinRange(brandPrimary, 0.25, {\r\n min: 0.6,\r\n max: 0.8,\r\n }),\r\n SECONDARY: desaturate(adjustedSecondaryScale[4], 0.02),\r\n },\r\n PRIMARY: {\r\n //backgrounds\r\n PRIMARY_SUPER_DARK: lightenWithinRange(\r\n lightenForContrast(primaryScale[9]),\r\n -0.6,\r\n {\r\n min: 0.0,\r\n max: 0.02,\r\n }\r\n ),\r\n PRIMARY_DARK: lightenWithinRange(\r\n lightenForContrast(primaryScale[8]),\r\n -0.4,\r\n {\r\n min: 0.01,\r\n max: 0.02,\r\n }\r\n ),\r\n //interactive components\r\n PRIMARY_MEDIUM: lightenWithinRange(adjustedPrimaryScale[7], -0.2, {\r\n min: 0.0,\r\n max: 0.11,\r\n }),\r\n //borders and seperators\r\n PRIMARY_MEDIUM_LIGHT: lightenWithinRange(\r\n desaturate(adjustedPrimaryScale[6], 0.1),\r\n 0.08\r\n ),\r\n //solid colors\r\n PRIMARY_LIGHT: lightenWithinRange(\r\n saturate(adjustedPrimaryScale[5], 0.1),\r\n 0.16\r\n ),\r\n //accessible text\r\n PRIMARY_LIGHTEST: lightenWithinRange(\r\n saturate(adjustedPrimaryScale[3], 0.2),\r\n 0.12,\r\n {\r\n min: 0.5,\r\n max: 0.9,\r\n }\r\n ),\r\n PRIMARY_SUPER_LIGHT: lightenWithinRange(adjustedPrimaryScale[1], 0.02, {\r\n min: 0.86,\r\n max: 0.98,\r\n }),\r\n },\r\n SECONDARY: {\r\n //backgrounds\r\n SECONDARY_SUPER_DARK: lightenWithinRange(\r\n lightenForContrast(secondaryScale[9]),\r\n -0.6,\r\n {\r\n min: 0.0,\r\n max: 0.02,\r\n }\r\n ),\r\n SECONDARY_DARK: lightenWithinRange(\r\n lightenForContrast(secondaryScale[8]),\r\n -0.4,\r\n {\r\n min: 0.01,\r\n max: 0.02,\r\n }\r\n ),\r\n // interactive components\r\n SECONDARY_MEDIUM: lightenWithinRange(adjustedSecondaryScale[7], -0.2, {\r\n min: 0.0,\r\n max: 0.11,\r\n }),\r\n //borders and seperators\r\n SECONDARY_MEDIUM_LIGHT: lightenWithinRange(\r\n adjustedSecondaryScale[6],\r\n 0.1\r\n ),\r\n //solid colors\r\n SECONDARY_LIGHT: lightenWithinRange(\r\n saturate(adjustedSecondaryScale[5], 0.1),\r\n 0.16\r\n ),\r\n //accessible text\r\n SECONDARY_LIGHTEST: lightenWithinRange(\r\n saturate(adjustedSecondaryScale[3], 0.2),\r\n 0.12,\r\n {\r\n min: 0.5,\r\n max: 0.9,\r\n }\r\n ),\r\n SECONDARY_SUPER_LIGHT: lightenWithinRange(\r\n adjustedSecondaryScale[0],\r\n 0.02,\r\n {\r\n min: 0.86,\r\n max: 0.98,\r\n }\r\n ),\r\n },\r\n };\r\n};\r\n\r\nconst lightenWithinRange = (\r\n color: string,\r\n amount: number,\r\n range: { min: number; max: number } = { min: 0.03, max: 0.97 }\r\n): string => {\r\n let adjustedColor = color;\r\n let currentLuminance = getLuminance(adjustedColor);\r\n\r\n // Validate range bounds\r\n if (range.min < 0) range.min = 0;\r\n if (range.max > 1) range.max = 1;\r\n if (range.min >= range.max) {\r\n throw new Error(\"Invalid range: min must be less than max\");\r\n }\r\n\r\n // For lightening (positive amount)\r\n if (amount > 0) {\r\n // Calculate how much we can lighten before hitting max\r\n const remainingLuminance = range.max - currentLuminance;\r\n if (remainingLuminance <= 0) return toRgba(adjustedColor);\r\n\r\n // Scale the amount based on remaining room to lighten\r\n const scaledAmount = amount * (remainingLuminance / (1 - currentLuminance));\r\n adjustedColor = lighten(adjustedColor, scaledAmount);\r\n }\r\n // For darkening (negative amount)\r\n else if (amount < 0) {\r\n // Calculate how much we can darken before hitting min\r\n const remainingLuminance = currentLuminance - range.min;\r\n if (remainingLuminance <= 0) return toRgba(adjustedColor);\r\n\r\n // Scale the amount based on remaining room to darken\r\n const scaledAmount = amount * (remainingLuminance / currentLuminance);\r\n adjustedColor = darken(adjustedColor, Math.abs(scaledAmount));\r\n }\r\n\r\n // Verify final luminance is within bounds\r\n const finalLuminance = getLuminance(adjustedColor);\r\n if (finalLuminance > range.max) {\r\n adjustedColor = adjustBrightnessWithinRange(adjustedColor, range);\r\n } else if (finalLuminance < range.min) {\r\n adjustedColor = adjustBrightnessWithinRange(adjustedColor, range);\r\n }\r\n\r\n return toRgba(adjustedColor);\r\n};\r\n\r\nconst adjustBrightnessWithinRange = (\r\n color: string,\r\n range: { min: number; max: number }\r\n): string => {\r\n let adjustedColor = color;\r\n let luminance = getLuminance(adjustedColor);\r\n\r\n // Darken if too bright\r\n while (luminance > range.max) {\r\n adjustedColor = darken(adjustedColor, 0.05);\r\n luminance = getLuminance(adjustedColor);\r\n }\r\n\r\n // Lighten if too dark\r\n while (luminance < range.min) {\r\n adjustedColor = lighten(adjustedColor, 0.05);\r\n luminance = getLuminance(adjustedColor);\r\n }\r\n\r\n return toRgba(adjustedColor);\r\n};\r\n\r\nconst lightenForContrast = (color: string): string => {\r\n while (hasBadContrast(color, \"readable\", COLORS.GRAYSCALE.GRAY_DARK)) {\r\n color = lighten(color, 0.01);\r\n }\r\n return toRgba(color);\r\n};\r\n\r\nconst darkenForContrast = (color: string): string => {\r\n while (hasBadContrast(COLORS.GRAYSCALE.GRAY_SUPER_LIGHT, \"readable\", color)) {\r\n color = darken(color, 0.01);\r\n }\r\n return toRgba(color);\r\n};\r\n\r\nconst adjustBrightnessForLuminance = (color: string): string => {\r\n let currentColor = color;\r\n let currentLuminance = getLuminance(toRgba(currentColor));\r\n let adjustmentAttempts = 0;\r\n const MAX_ATTEMPTS = 6;\r\n\r\n while (currentLuminance < 0.16 && adjustmentAttempts < MAX_ATTEMPTS) {\r\n adjustmentAttempts++;\r\n currentColor = lighten(currentColor, 0.1);\r\n currentLuminance = getLuminance(toRgba(currentColor));\r\n }\r\n\r\n while (currentLuminance > 0.6 && adjustmentAttempts < MAX_ATTEMPTS) {\r\n adjustmentAttempts++;\r\n currentColor = darken(currentColor, 0.1);\r\n currentLuminance = getLuminance(toRgba(currentColor));\r\n }\r\n\r\n return toRgba(currentColor);\r\n};\r\n","const isString = (x: unknown): boolean =>\r\n typeof x === \"string\" || x instanceof String;\r\n\r\nexport function csx(...classnames: unknown[]): string {\r\n return classnames.filter(isString).join(\" \");\r\n}\r\n\r\n/**\r\n * [getLinkHost] - get the host of a link.\r\n * Referenced from is-url-external npm package\r\n * https://github.com/mrded/is-url-external/blob/master/index.js\r\n */\r\nconst getLinkHost = (url) => {\r\n if (/^https?:\\/\\//.test(url)) {\r\n // Absolute URL.\r\n // The easy way to parse an URL, is to create <a> element.\r\n // @see: https://gist.github.com/jlong/2428561\r\n const parser = document.createElement(\"a\");\r\n parser.href = url;\r\n return parser.hostname;\r\n }\r\n return window.location.hostname;\r\n};\r\n\r\n/**\r\n * [isUrlExternal] - determine if passed absolute url is external to the current domain.\r\n */\r\nexport const isUrlExternal = (url) => {\r\n const host = window.location.hostname;\r\n const linkHost = getLinkHost(url);\r\n\r\n return host !== linkHost;\r\n};\r\n\r\n/**\r\n * Handles internal navigation clicks by preventing default browser behavior and\r\n * programmatically updating the URL and history state.\r\n *\r\n * @param e - The click event from the anchor element\r\n * @param to - The destination path to navigate to\r\n *\r\n * @remarks\r\n * - Converts relative paths to absolute by prepending \"/\" if needed\r\n * - Updates browser history using pushState and dispatches a popstate event\r\n */\r\nexport const handleInternalNavigation = (\r\n e: React.MouseEvent<HTMLAnchorElement>,\r\n to: string\r\n) => {\r\n // Don't handle navigation if modifier keys are pressed\r\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) {\r\n return;\r\n }\r\n\r\n // Don't handle middle clicks or right clicks\r\n if (e.button && e.button !== 0) {\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n\r\n // Handle relative paths\r\n const resolvedPath = to.startsWith(\"/\") ? to : `/${to}`;\r\n window.history.pushState({}, \"\", resolvedPath);\r\n window.dispatchEvent(new PopStateEvent(\"popstate\"));\r\n};\r\n"],"names":["t","r","n","o","e","i","u","a","c","f","s","h","v","l","g","p","b","m","d","w","DEFAULT_BACKGROUND","DEFAULT_PALETTE","COLORS.BRAND","COLORS.GRAYSCALE","arrayToRgbString","rgb","opacity","transparentize","color","amount","toRgba","_transparentize","saturate","_saturate","desaturate","_desaturate","getDominantColor","image","ColorThief","generatePalette","baseColor","primaryRgba","primaryScaleFunc","getScale","primaryScale","_","adjustedPrimaryScale","adjustBrightnessForLuminance","secondaryColor","adjustHue","secondaryScaleFunc","secondaryScale","adjustedSecondaryScale","brandPrimary","darkenForContrast","lightenWithinRange","lightenForContrast","range","adjustedColor","currentLuminance","getLuminance","remainingLuminance","scaledAmount","lighten","darken","finalLuminance","adjustBrightnessWithinRange","luminance","hasBadContrast","currentColor","adjustmentAttempts","MAX_ATTEMPTS","isString","x","csx","classnames","getLinkHost","url","parser","isUrlExternal","host","linkHost","handleInternalNavigation","to","resolvedPath"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils-ZbliEUT6.js","sources":["../node_modules/colorthief/dist/color-thief.mjs","../src/utils/color.ts","../src/utils/utils.ts"],"sourcesContent":["var t=function(t,r){return t<r?-1:t>r?1:0},r=function(t){return t.reduce(function(t,r){return t+r},0)},n=/*#__PURE__*/function(){function t(t){this.colors=t}var r=t.prototype;return r.palette=function(){return this.colors},r.map=function(t){return t},t}(),o=function(){function o(t,r,n){return(t<<10)+(r<<5)+n}function e(t){var r=[],n=!1;function o(){r.sort(t),n=!0}return{push:function(t){r.push(t),n=!1},peek:function(t){return n||o(),void 0===t&&(t=r.length-1),r[t]},pop:function(){return n||o(),r.pop()},size:function(){return r.length},map:function(t){return r.map(t)},debug:function(){return n||o(),r}}}function i(t,r,n,o,e,i,u){var a=this;a.r1=t,a.r2=r,a.g1=n,a.g2=o,a.b1=e,a.b2=i,a.histo=u}function u(){this.vboxes=new e(function(r,n){return t(r.vbox.count()*r.vbox.volume(),n.vbox.count()*n.vbox.volume())})}function a(t,r){if(r.count()){var n=r.r2-r.r1+1,e=r.g2-r.g1+1,i=Math.max.apply(null,[n,e,r.b2-r.b1+1]);if(1==r.count())return[r.copy()];var u,a,c,f,s=0,h=[],v=[];if(i==n)for(u=r.r1;u<=r.r2;u++){for(f=0,a=r.g1;a<=r.g2;a++)for(c=r.b1;c<=r.b2;c++)f+=t[o(u,a,c)]||0;h[u]=s+=f}else if(i==e)for(u=r.g1;u<=r.g2;u++){for(f=0,a=r.r1;a<=r.r2;a++)for(c=r.b1;c<=r.b2;c++)f+=t[o(a,u,c)]||0;h[u]=s+=f}else for(u=r.b1;u<=r.b2;u++){for(f=0,a=r.r1;a<=r.r2;a++)for(c=r.g1;c<=r.g2;c++)f+=t[o(a,c,u)]||0;h[u]=s+=f}return h.forEach(function(t,r){v[r]=s-t}),function(t){var n,o,e,i,a,c=t+\"1\",f=t+\"2\",l=0;for(u=r[c];u<=r[f];u++)if(h[u]>s/2){for(e=r.copy(),i=r.copy(),a=(n=u-r[c])<=(o=r[f]-u)?Math.min(r[f]-1,~~(u+o/2)):Math.max(r[c],~~(u-1-n/2));!h[a];)a++;for(l=v[a];!l&&h[a-1];)l=v[--a];return e[f]=a,i[c]=e[f]+1,[e,i]}}(i==n?\"r\":i==e?\"g\":\"b\")}}return i.prototype={volume:function(t){var r=this;return r._volume&&!t||(r._volume=(r.r2-r.r1+1)*(r.g2-r.g1+1)*(r.b2-r.b1+1)),r._volume},count:function(t){var r=this,n=r.histo;if(!r._count_set||t){var e,i,u,a=0;for(e=r.r1;e<=r.r2;e++)for(i=r.g1;i<=r.g2;i++)for(u=r.b1;u<=r.b2;u++)a+=n[o(e,i,u)]||0;r._count=a,r._count_set=!0}return r._count},copy:function(){var t=this;return new i(t.r1,t.r2,t.g1,t.g2,t.b1,t.b2,t.histo)},avg:function(t){var r=this,n=r.histo;if(!r._avg||t){var e,i,u,a,c=0,f=0,s=0,h=0;if(r.r1===r.r2&&r.g1===r.g2&&r.b1===r.b2)r._avg=[r.r1<<3,r.g1<<3,r.b1<<3];else{for(i=r.r1;i<=r.r2;i++)for(u=r.g1;u<=r.g2;u++)for(a=r.b1;a<=r.b2;a++)c+=e=n[o(i,u,a)]||0,f+=e*(i+.5)*8,s+=e*(u+.5)*8,h+=e*(a+.5)*8;r._avg=c?[~~(f/c),~~(s/c),~~(h/c)]:[~~(8*(r.r1+r.r2+1)/2),~~(8*(r.g1+r.g2+1)/2),~~(8*(r.b1+r.b2+1)/2)]}}return r._avg},contains:function(t){var r=this,n=t[0]>>3;return gval=t[1]>>3,bval=t[2]>>3,n>=r.r1&&n<=r.r2&&gval>=r.g1&&gval<=r.g2&&bval>=r.b1&&bval<=r.b2}},u.prototype={push:function(t){this.vboxes.push({vbox:t,color:t.avg()})},palette:function(){return this.vboxes.map(function(t){return t.color})},size:function(){return this.vboxes.size()},map:function(t){for(var r=this.vboxes,n=0;n<r.size();n++)if(r.peek(n).vbox.contains(t))return r.peek(n).color;return this.nearest(t)},nearest:function(t){for(var r,n,o,e=this.vboxes,i=0;i<e.size();i++)((n=Math.sqrt(Math.pow(t[0]-e.peek(i).color[0],2)+Math.pow(t[1]-e.peek(i).color[1],2)+Math.pow(t[2]-e.peek(i).color[2],2)))<r||void 0===r)&&(r=n,o=e.peek(i).color);return o},forcebw:function(){var n=this.vboxes;n.sort(function(n,o){return t(r(n.color),r(o.color))});var o=n[0].color;o[0]<5&&o[1]<5&&o[2]<5&&(n[0].color=[0,0,0]);var e=n.length-1,i=n[e].color;i[0]>251&&i[1]>251&&i[2]>251&&(n[e].color=[255,255,255])}},{quantize:function(r,c){if(!Number.isInteger(c)||c<1||c>256)throw new Error(\"Invalid maximum color count. It must be an integer between 1 and 256.\");if(!r.length||c<2||c>256)return!1;if(!r.length||c<2||c>256)return!1;for(var f=[],s=new Set,h=0;h<r.length;h++){var v=r[h],l=v.join(\",\");s.has(l)||(s.add(l),f.push(v))}if(f.length<=c)return new n(f);var g=function(t){var r,n=new Array(32768);return t.forEach(function(t){r=o(t[0]>>3,t[1]>>3,t[2]>>3),n[r]=(n[r]||0)+1}),n}(r);g.forEach(function(){});var p=function(t,r){var n,o,e,u=1e6,a=0,c=1e6,f=0,s=1e6,h=0;return t.forEach(function(t){(n=t[0]>>3)<u?u=n:n>a&&(a=n),(o=t[1]>>3)<c?c=o:o>f&&(f=o),(e=t[2]>>3)<s?s=e:e>h&&(h=e)}),new i(u,a,c,f,s,h,r)}(r,g),b=new e(function(r,n){return t(r.count(),n.count())});function m(t,r){for(var n,o=t.size(),e=0;e<1e3;){if(o>=r)return;if(e++>1e3)return;if((n=t.pop()).count()){var i=a(g,n),u=i[0],c=i[1];if(!u)return;t.push(u),c&&(t.push(c),o++)}else t.push(n),e++}}b.push(p),m(b,.75*c);for(var d=new e(function(r,n){return t(r.count()*r.volume(),n.count()*n.volume())});b.size();)d.push(b.pop());m(d,c);for(var w=new u;d.size();)w.push(d.pop());return w}}}().quantize,e=function(t){this.canvas=document.createElement(\"canvas\"),this.context=this.canvas.getContext(\"2d\"),this.width=this.canvas.width=t.naturalWidth,this.height=this.canvas.height=t.naturalHeight,this.context.drawImage(t,0,0,this.width,this.height)};e.prototype.getImageData=function(){return this.context.getImageData(0,0,this.width,this.height)};var u=function(){};u.prototype.getColor=function(t,r){return void 0===r&&(r=10),this.getPalette(t,5,r)[0]},u.prototype.getPalette=function(t,r,n){var i=function(t){var r=t.colorCount,n=t.quality;if(void 0!==r&&Number.isInteger(r)){if(1===r)throw new Error(\"colorCount should be between 2 and 20. To get one color, call getColor() instead of getPalette()\");r=Math.max(r,2),r=Math.min(r,20)}else r=10;return(void 0===n||!Number.isInteger(n)||n<1)&&(n=10),{colorCount:r,quality:n}}({colorCount:r,quality:n}),u=new e(t),a=function(t,r,n){for(var o,e,i,u,a,c=t,f=[],s=0;s<r;s+=n)e=c[0+(o=4*s)],i=c[o+1],u=c[o+2],(void 0===(a=c[o+3])||a>=125)&&(e>250&&i>250&&u>250||f.push([e,i,u]));return f}(u.getImageData().data,u.width*u.height,i.quality),c=o(a,i.colorCount);return c?c.palette():null},u.prototype.getColorFromUrl=function(t,r,n){var o=this,e=document.createElement(\"img\");e.addEventListener(\"load\",function(){var i=o.getPalette(e,5,n);r(i[0],t)}),e.src=t},u.prototype.getImageData=function(t,r){var n=new XMLHttpRequest;n.open(\"GET\",t,!0),n.responseType=\"arraybuffer\",n.onload=function(){if(200==this.status){var t=new Uint8Array(this.response);i=t.length;for(var n=new Array(i),o=0;o<t.length;o++)n[o]=String.fromCharCode(t[o]);var e=n.join(\"\"),u=window.btoa(e);r(\"data:image/png;base64,\"+u)}},n.send()},u.prototype.getColorAsync=function(t,r,n){var o=this;this.getImageData(t,function(t){var e=document.createElement(\"img\");e.addEventListener(\"load\",function(){var t=o.getPalette(e,5,n);r(t[0],this)}),e.src=t})};export{u as default};\n","import { COLORS } from \"../constants\";\r\nimport {\r\n adjustHue,\r\n getScale,\r\n saturate as _saturate,\r\n transparentize as _transparentize,\r\n desaturate as _desaturate,\r\n hasBadContrast,\r\n getLuminance,\r\n lighten,\r\n darken,\r\n toRgba,\r\n} from \"color2k\";\r\nimport ColorThief from \"colorthief\";\r\n\r\nexport type RGBArray = [number, number, number];\r\n\r\nexport type Palette = {\r\n BASE_COLOR: string;\r\n BRAND: {\r\n PRIMARY: string;\r\n PRIMARY_LIGHT: string;\r\n SECONDARY: string;\r\n };\r\n PRIMARY: {\r\n //backgrounds\r\n PRIMARY_SUPER_DARK: string;\r\n PRIMARY_DARK: string;\r\n //interactive components\r\n PRIMARY_MEDIUM: string;\r\n //borders and seperators\r\n PRIMARY_MEDIUM_LIGHT: string;\r\n //solid colors\r\n PRIMARY_LIGHT: string;\r\n //accessible text\r\n PRIMARY_LIGHTEST: string;\r\n PRIMARY_SUPER_LIGHT: string;\r\n };\r\n SECONDARY: {\r\n //backgrounds\r\n SECONDARY_SUPER_DARK: string;\r\n SECONDARY_DARK: string;\r\n //interactive components\r\n SECONDARY_MEDIUM: string;\r\n //borders and seperators\r\n SECONDARY_MEDIUM_LIGHT: string;\r\n //solid colors\r\n SECONDARY_LIGHT: string;\r\n //accessible text\r\n SECONDARY_LIGHTEST: string;\r\n SECONDARY_SUPER_LIGHT: string;\r\n };\r\n};\r\n\r\nexport const DEFAULT_BACKGROUND = \"rgba(83, 82, 83, 1)\";\r\n\r\nexport const DEFAULT_PALETTE: Palette = {\r\n BASE_COLOR: DEFAULT_BACKGROUND,\r\n BRAND: {\r\n PRIMARY: COLORS.BRAND.PRIMARY,\r\n PRIMARY_LIGHT: COLORS.BRAND.PRIMARY_LIGHT,\r\n SECONDARY: COLORS.BRAND.SECONDARY,\r\n },\r\n PRIMARY: {\r\n PRIMARY_SUPER_DARK: COLORS.GRAYSCALE.GRAY_SUPER_DARK,\r\n PRIMARY_DARK: COLORS.GRAYSCALE.GRAY_DARK,\r\n PRIMARY_MEDIUM: COLORS.GRAYSCALE.GRAY_MEDIUM,\r\n PRIMARY_MEDIUM_LIGHT: COLORS.GRAYSCALE.GRAY_MEDIUM_LIGHT,\r\n PRIMARY_LIGHT: COLORS.GRAYSCALE.GRAY_LIGHT,\r\n PRIMARY_LIGHTEST: COLORS.GRAYSCALE.GRAY_LIGHTEST,\r\n PRIMARY_SUPER_LIGHT: COLORS.GRAYSCALE.GRAY_SUPER_LIGHT,\r\n },\r\n SECONDARY: {\r\n SECONDARY_SUPER_DARK: COLORS.GRAYSCALE.GRAY_SUPER_DARK,\r\n SECONDARY_DARK: COLORS.GRAYSCALE.GRAY_DARK,\r\n SECONDARY_MEDIUM: COLORS.GRAYSCALE.GRAY_MEDIUM,\r\n SECONDARY_MEDIUM_LIGHT: COLORS.GRAYSCALE.GRAY_MEDIUM_LIGHT,\r\n SECONDARY_LIGHT: COLORS.GRAYSCALE.GRAY_LIGHT,\r\n SECONDARY_LIGHTEST: COLORS.GRAYSCALE.GRAY_LIGHTEST,\r\n SECONDARY_SUPER_LIGHT: COLORS.GRAYSCALE.GRAY_SUPER_LIGHT,\r\n },\r\n // Success, Warning & Danger palettes go here...\r\n};\r\n\r\n/**\r\n * Converts an RGB array to a CSS string representation.\r\n * @param rgb - The RGB array to convert.\r\n * @param opacity - Optional opacity value.\r\n * @returns A CSS string representation of the RGB array, using `rgb()`, or `rgba()` if an opacity value is provided.\r\n */\r\nexport const arrayToRgbString = (rgb: RGBArray, opacity?: number): string => {\r\n return opacity === undefined\r\n ? `rgb(${rgb[0]}, ${rgb[1]}, ${rgb[2]})`\r\n : `rgba(${rgb[0]}, ${rgb[1]}, ${rgb[2]}, ${opacity})`;\r\n};\r\n\r\n/**\r\n * Transparentizes an input color.\r\n *\r\n * @param color - The color string to transparentize.\r\n * @param amount - The amount to increase the opacity of the color by, given as a decimal between 0 and 1.\r\n * @returns An RGBA color string.\r\n */\r\nexport const transparentize = (color: string, amount: number): string => {\r\n return toRgba(_transparentize(color, amount));\r\n};\r\n\r\n/**\r\n * Saturates a color.\r\n *\r\n * @param color - Input color\r\n * @param amount - The amount to saturate, given as a decimal between 0 and 1\r\n * @returns An RGBA color string.\r\n */\r\nexport const saturate = (color: string, amount: number): string => {\r\n return toRgba(_saturate(color, amount));\r\n};\r\n\r\n/**\r\n * Desaturates a color.\r\n *\r\n * @param color - Input color\r\n * @param amount - The amount to desaturate, given as a decimal between 0 and 1\r\n * @returns An RGBA color string.\r\n */\r\nexport const desaturate = (color: string, amount: number): string => {\r\n return toRgba(_desaturate(color, amount));\r\n};\r\n\r\n/**\r\n * Gets the dominant color of an image. Avoids issues with low contrast colors.\r\n * @reference https://github.com/lokesh/color-thief/issues/40\r\n * @param image - The image to get the dominant color from.\r\n * @returns An RGB array.\r\n */\r\nexport const getDominantColor = (image: HTMLImageElement): RGBArray => {\r\n try {\r\n const colorThief = new ColorThief();\r\n const baseColor = colorThief.getColor(image);\r\n return baseColor;\r\n } catch {\r\n return [255, 255, 255];\r\n }\r\n};\r\n\r\n/**\r\n * Generates a complete color palette based on a primary color input.\r\n * The palette includes primary and secondary color scales with varying shades.\r\n *\r\n * @param primaryColor - The base RGB color array to generate the palette from\r\n * @returns A Palette object containing:\r\n * - BRAND colors (primary, light primary, and secondary)\r\n * - PRIMARY scale (7 shades from super dark to super light)\r\n * - SECONDARY scale (7 shades from super dark to super light)\r\n *\r\n * The function:\r\n * 1. Creates a 12-color scale from white to the primary color to black\r\n * 2. Generates a complementary secondary color by shifting the hue 180 degrees\r\n * 3. Creates another 12-color scale for the secondary color\r\n * 4. Maps specific positions from these scales to create the final palette structure\r\n */\r\nexport const generatePalette = (baseColor: RGBArray): Palette => {\r\n const primaryRgba = arrayToRgbString(baseColor);\r\n\r\n const primaryScaleFunc = getScale(\"#FFFFFF\", primaryRgba, \"#000000\");\r\n const primaryScale = Array.from({ length: 12 }, (_, i) => {\r\n const color = primaryScaleFunc(i / 11);\r\n return desaturate(color, 0.0085);\r\n });\r\n\r\n const adjustedPrimaryScale = primaryScale.map((color) =>\r\n saturate(adjustBrightnessForLuminance(color), 0.005)\r\n );\r\n\r\n const secondaryColor = toRgba(saturate(adjustHue(primaryRgba, 180), 1));\r\n\r\n const secondaryScaleFunc = getScale(\"#FFFFFF\", secondaryColor, \"#000000\");\r\n const secondaryScale = Array.from({ length: 12 }, (_, i) => {\r\n const color = secondaryScaleFunc(i / 11);\r\n return desaturate(color, 0.1);\r\n });\r\n\r\n const adjustedSecondaryScale = secondaryScale.map((color) =>\r\n desaturate(adjustBrightnessForLuminance(color), 0.22)\r\n );\r\n\r\n const brandPrimary = desaturate(\r\n darkenForContrast(saturate(adjustedPrimaryScale[5], 0.115)),\r\n 0.05\r\n );\r\n\r\n return {\r\n BASE_COLOR: arrayToRgbString(baseColor),\r\n BRAND: {\r\n PRIMARY: brandPrimary,\r\n PRIMARY_LIGHT: lightenWithinRange(brandPrimary, 0.25, {\r\n min: 0.6,\r\n max: 0.8,\r\n }),\r\n SECONDARY: desaturate(adjustedSecondaryScale[4], 0.02),\r\n },\r\n PRIMARY: {\r\n //backgrounds\r\n PRIMARY_SUPER_DARK: lightenWithinRange(\r\n lightenForContrast(primaryScale[9]),\r\n -0.6,\r\n {\r\n min: 0.0,\r\n max: 0.02,\r\n }\r\n ),\r\n PRIMARY_DARK: lightenWithinRange(\r\n lightenForContrast(primaryScale[8]),\r\n -0.4,\r\n {\r\n min: 0.01,\r\n max: 0.02,\r\n }\r\n ),\r\n //interactive components\r\n PRIMARY_MEDIUM: lightenWithinRange(adjustedPrimaryScale[7], -0.2, {\r\n min: 0.0,\r\n max: 0.11,\r\n }),\r\n //borders and seperators\r\n PRIMARY_MEDIUM_LIGHT: lightenWithinRange(\r\n desaturate(adjustedPrimaryScale[6], 0.1),\r\n 0.08\r\n ),\r\n //solid colors\r\n PRIMARY_LIGHT: lightenWithinRange(\r\n saturate(adjustedPrimaryScale[5], 0.1),\r\n 0.16\r\n ),\r\n //accessible text\r\n PRIMARY_LIGHTEST: lightenWithinRange(\r\n saturate(adjustedPrimaryScale[3], 0.2),\r\n 0.12,\r\n {\r\n min: 0.5,\r\n max: 0.9,\r\n }\r\n ),\r\n PRIMARY_SUPER_LIGHT: lightenWithinRange(adjustedPrimaryScale[1], 0.02, {\r\n min: 0.86,\r\n max: 0.98,\r\n }),\r\n },\r\n SECONDARY: {\r\n //backgrounds\r\n SECONDARY_SUPER_DARK: lightenWithinRange(\r\n lightenForContrast(secondaryScale[9]),\r\n -0.6,\r\n {\r\n min: 0.0,\r\n max: 0.02,\r\n }\r\n ),\r\n SECONDARY_DARK: lightenWithinRange(\r\n lightenForContrast(secondaryScale[8]),\r\n -0.4,\r\n {\r\n min: 0.01,\r\n max: 0.02,\r\n }\r\n ),\r\n // interactive components\r\n SECONDARY_MEDIUM: lightenWithinRange(adjustedSecondaryScale[7], -0.2, {\r\n min: 0.0,\r\n max: 0.11,\r\n }),\r\n //borders and seperators\r\n SECONDARY_MEDIUM_LIGHT: lightenWithinRange(\r\n adjustedSecondaryScale[6],\r\n 0.1\r\n ),\r\n //solid colors\r\n SECONDARY_LIGHT: lightenWithinRange(\r\n saturate(adjustedSecondaryScale[5], 0.1),\r\n 0.16\r\n ),\r\n //accessible text\r\n SECONDARY_LIGHTEST: lightenWithinRange(\r\n saturate(adjustedSecondaryScale[3], 0.2),\r\n 0.12,\r\n {\r\n min: 0.5,\r\n max: 0.9,\r\n }\r\n ),\r\n SECONDARY_SUPER_LIGHT: lightenWithinRange(\r\n adjustedSecondaryScale[0],\r\n 0.02,\r\n {\r\n min: 0.86,\r\n max: 0.98,\r\n }\r\n ),\r\n },\r\n };\r\n};\r\n\r\nconst lightenWithinRange = (\r\n color: string,\r\n amount: number,\r\n range: { min: number; max: number } = { min: 0.03, max: 0.97 }\r\n): string => {\r\n let adjustedColor = color;\r\n let currentLuminance = getLuminance(adjustedColor);\r\n\r\n // Validate range bounds\r\n if (range.min < 0) range.min = 0;\r\n if (range.max > 1) range.max = 1;\r\n if (range.min >= range.max) {\r\n throw new Error(\"Invalid range: min must be less than max\");\r\n }\r\n\r\n // For lightening (positive amount)\r\n if (amount > 0) {\r\n // Calculate how much we can lighten before hitting max\r\n const remainingLuminance = range.max - currentLuminance;\r\n if (remainingLuminance <= 0) return toRgba(adjustedColor);\r\n\r\n // Scale the amount based on remaining room to lighten\r\n const scaledAmount = amount * (remainingLuminance / (1 - currentLuminance));\r\n adjustedColor = lighten(adjustedColor, scaledAmount);\r\n }\r\n // For darkening (negative amount)\r\n else if (amount < 0) {\r\n // Calculate how much we can darken before hitting min\r\n const remainingLuminance = currentLuminance - range.min;\r\n if (remainingLuminance <= 0) return toRgba(adjustedColor);\r\n\r\n // Scale the amount based on remaining room to darken\r\n const scaledAmount = amount * (remainingLuminance / currentLuminance);\r\n adjustedColor = darken(adjustedColor, Math.abs(scaledAmount));\r\n }\r\n\r\n // Verify final luminance is within bounds\r\n const finalLuminance = getLuminance(adjustedColor);\r\n if (finalLuminance > range.max) {\r\n adjustedColor = adjustBrightnessWithinRange(adjustedColor, range);\r\n } else if (finalLuminance < range.min) {\r\n adjustedColor = adjustBrightnessWithinRange(adjustedColor, range);\r\n }\r\n\r\n return toRgba(adjustedColor);\r\n};\r\n\r\nconst adjustBrightnessWithinRange = (\r\n color: string,\r\n range: { min: number; max: number }\r\n): string => {\r\n let adjustedColor = color;\r\n let luminance = getLuminance(adjustedColor);\r\n\r\n // Darken if too bright\r\n while (luminance > range.max) {\r\n adjustedColor = darken(adjustedColor, 0.05);\r\n luminance = getLuminance(adjustedColor);\r\n }\r\n\r\n // Lighten if too dark\r\n while (luminance < range.min) {\r\n adjustedColor = lighten(adjustedColor, 0.05);\r\n luminance = getLuminance(adjustedColor);\r\n }\r\n\r\n return toRgba(adjustedColor);\r\n};\r\n\r\nconst lightenForContrast = (color: string): string => {\r\n while (hasBadContrast(color, \"readable\", COLORS.GRAYSCALE.GRAY_DARK)) {\r\n color = lighten(color, 0.01);\r\n }\r\n return toRgba(color);\r\n};\r\n\r\nconst darkenForContrast = (color: string): string => {\r\n while (hasBadContrast(COLORS.GRAYSCALE.GRAY_SUPER_LIGHT, \"readable\", color)) {\r\n color = darken(color, 0.01);\r\n }\r\n return toRgba(color);\r\n};\r\n\r\nconst adjustBrightnessForLuminance = (color: string): string => {\r\n let currentColor = color;\r\n let currentLuminance = getLuminance(toRgba(currentColor));\r\n let adjustmentAttempts = 0;\r\n const MAX_ATTEMPTS = 6;\r\n\r\n while (currentLuminance < 0.16 && adjustmentAttempts < MAX_ATTEMPTS) {\r\n adjustmentAttempts++;\r\n currentColor = lighten(currentColor, 0.1);\r\n currentLuminance = getLuminance(toRgba(currentColor));\r\n }\r\n\r\n while (currentLuminance > 0.6 && adjustmentAttempts < MAX_ATTEMPTS) {\r\n adjustmentAttempts++;\r\n currentColor = darken(currentColor, 0.1);\r\n currentLuminance = getLuminance(toRgba(currentColor));\r\n }\r\n\r\n return toRgba(currentColor);\r\n};\r\n","const isString = (x: unknown): boolean =>\r\n typeof x === \"string\" || x instanceof String;\r\n\r\nexport function csx(...classnames: unknown[]): string {\r\n return classnames.filter(isString).join(\" \");\r\n}\r\n\r\n/**\r\n * [getLinkHost] - get the host of a link.\r\n * Referenced from is-url-external npm package\r\n * https://github.com/mrded/is-url-external/blob/master/index.js\r\n */\r\nconst getLinkHost = (url) => {\r\n if (/^https?:\\/\\//.test(url)) {\r\n // Absolute URL.\r\n // The easy way to parse an URL, is to create <a> element.\r\n // @see: https://gist.github.com/jlong/2428561\r\n const parser = document.createElement(\"a\");\r\n parser.href = url;\r\n return parser.hostname;\r\n }\r\n return window.location.hostname;\r\n};\r\n\r\n/**\r\n * [isUrlExternal] - determine if passed absolute url is external to the current domain.\r\n */\r\nexport const isUrlExternal = (url) => {\r\n const host = window.location.hostname;\r\n const linkHost = getLinkHost(url);\r\n\r\n return host !== linkHost;\r\n};\r\n\r\n/**\r\n * Handles internal navigation clicks by preventing default browser behavior and\r\n * programmatically updating the URL and history state.\r\n *\r\n * @param e - The click event from the anchor element\r\n * @param to - The destination path to navigate to\r\n *\r\n * @remarks\r\n * - Converts relative paths to absolute by prepending \"/\" if needed\r\n * - Updates browser history using pushState and dispatches a popstate event\r\n */\r\nexport const handleInternalNavigation = (\r\n e: React.MouseEvent<HTMLAnchorElement>,\r\n to: string\r\n) => {\r\n // Don't handle navigation if modifier keys are pressed\r\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) {\r\n return;\r\n }\r\n\r\n // Don't handle middle clicks or right clicks\r\n if (e.button && e.button !== 0) {\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n\r\n // Handle relative paths\r\n const resolvedPath = to.startsWith(\"/\") ? to : `/${to}`;\r\n window.history.pushState({}, \"\", resolvedPath);\r\n window.dispatchEvent(new PopStateEvent(\"popstate\"));\r\n};\r\n"],"names":["t","r","n","o","e","i","u","a","c","f","s","h","v","l","g","p","b","m","d","w","DEFAULT_BACKGROUND","DEFAULT_PALETTE","COLORS.BRAND","COLORS.GRAYSCALE","arrayToRgbString","rgb","opacity","transparentize","color","amount","toRgba","_transparentize","saturate","_saturate","desaturate","_desaturate","getDominantColor","image","ColorThief","generatePalette","baseColor","primaryRgba","primaryScaleFunc","getScale","primaryScale","_","adjustedPrimaryScale","adjustBrightnessForLuminance","secondaryColor","adjustHue","secondaryScaleFunc","secondaryScale","adjustedSecondaryScale","brandPrimary","darkenForContrast","lightenWithinRange","lightenForContrast","range","adjustedColor","currentLuminance","getLuminance","remainingLuminance","scaledAmount","lighten","darken","finalLuminance","adjustBrightnessWithinRange","luminance","hasBadContrast","currentColor","adjustmentAttempts","MAX_ATTEMPTS","isString","x","csx","classnames","getLinkHost","url","parser","isUrlExternal","host","linkHost","handleInternalNavigation","to","resolvedPath"],"mappings":"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","x_google_ignoreList":[0]}
|