@infinityfx/fluid
Version:
React UI library, using zero-runtime CSS-in-JS.
3 lines (2 loc) • 2.01 kB
JavaScript
;function t(t){return`${t.map((t=>t.toString(16).padStart(2,"0"))).join("")}`}function n(t){const n=t.toLowerCase().match(/^#?([\da-f]{1,2})([\da-f]{1,2})([\da-f]{1,2})([\da-f]{2})?$/i);return n?n.slice(1,4).map((t=>parseInt(t.padStart(2,t),16))):[0,0,0]}function o([t,n,o]){n/=100,o/=100;const e=n=>(n+t/60)%6,r=t=>Math.round(255*o*(1-n*Math.max(0,Math.min(e(t),4-e(t),1))));return[r(5),r(3),r(1)]}function e([t,n,o]){t/=255,n/=255,o/=255;const e=Math.max(t,n,o),r=e-Math.min(t,n,o);let s=0;return r&&e===t&&(s=(n-o)/r),r&&e===n&&(s=2+(o-t)/r),r&&e===o&&(s=4+(t-n)/r),[60*(s<0?s+6:s),e&&r/e*100,100*e]}const r={hue:0,saturation:1,lightness:2};exports.COLOR_SCHEME_COOKIE="FLUID_PREF_COLOR_SCHEME",exports.classes=function(...t){return t.filter((t=>"string"==typeof t)).join(" ")},exports.combineClasses=function(t,n){const o=Object.assign({},t);for(const e in n)e in t?o[e]+=` ${n[e]}`:o[e]=n[e];return o},exports.combineRefs=function(...t){return n=>{t.forEach((t=>{t&&(t instanceof Function?t(n):t.current=n)}))}},exports.cookies=function(){return document.cookie.split(";").reduce(((t,n)=>{const[o,e]=n.split("=");return o&&e&&(t[decodeURIComponent(o.trim())]=decodeURIComponent(e.trim())),t}),{})},exports.formatCookie=function(t,n,o={}){o=Object.assign({path:"/",secure:!0,sameSite:"Lax"},o);const e=Object.entries(o).map((([t,n])=>("maxAge"===t&&(t="max-Age"),t=t.charAt(0).toUpperCase()+t.slice(1),"boolean"==typeof n?n?`${t};`:"":void 0===n?"":`${t}=${n};`))).join(" ");return`${t}=${n}; ${e}`},exports.hexToRgb=n,exports.hsvToRgb=o,exports.invertColorChannel=function(s,i){const a=e(n(s));return a[r[i]]=("hue"===i?180:100)-a[r[i]],a[0]<0&&(a[0]=360-a[0]),`#${t(o(a))}`},exports.mixColors=function(t,o,e){const r=n(t),s=n(o);return new Array(e).fill(0).map(((t,n)=>{const o=n/e;return`#${[r[0]*(1-o)+s[0]*o,r[1]*(1-o)+s[1]*o,r[2]*(1-o)+s[2]*o].map((t=>Math.round(t).toString(16).padStart(2,"0"))).join("")}`}))},exports.rgbToHex=t,exports.rgbToHsv=e;
//# sourceMappingURL=utils.cjs.map