oklchtohex 0.6.0 → 0.6.1

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/converter.js CHANGED
@@ -1 +1 @@
1
- var H=["50","100","200","300","400","500","600","700","800","900","950"],C=[["slate",["#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#64748b","#475569","#334155","#1e293b","#0f172a","#020617"]],["gray",["#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#6b7280","#4b5563","#374151","#1f2937","#111827","#030712"]],["zinc",["#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#71717a","#52525b","#3f3f46","#27272a","#18181b","#09090b"]],["neutral",["#fafafa","#f5f5f5","#e5e5e5","#d4d4d4","#a3a3a3","#737373","#525252","#404040","#262626","#171717","#0a0a0a"]],["stone",["#fafaf9","#f5f5f4","#e7e5e4","#d6d3d1","#a8a29e","#78716c","#57534e","#44403c","#292524","#1c1917","#0c0a09"]],["red",["#fef2f2","#fee2e2","#fecaca","#fca5a5","#f87171","#ef4444","#dc2626","#b91c1c","#991b1b","#7f1d1d","#450a0a"]],["orange",["#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#c2410c","#9a3412","#7c2d12","#431407"]],["amber",["#fffbeb","#fef3c7","#fde68a","#fcd34d","#fbbf24","#f59e0b","#d97706","#b45309","#92400e","#78350f","#451a03"]],["yellow",["#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#eab308","#ca8a04","#a16207","#854d0e","#713f12","#422006"]],["lime",["#f7fee7","#ecfccb","#d9f99d","#bef264","#a3e635","#84cc16","#65a30d","#4d7c0f","#3f6212","#365314","#1a2e05"]],["green",["#f0fdf4","#dcfce7","#bbf7d0","#86efac","#4ade80","#22c55e","#16a34a","#15803d","#166534","#14532d","#052e16"]],["emerald",["#ecfdf5","#d1fae5","#a7f3d0","#6ee7b7","#34d399","#10b981","#059669","#047857","#065f46","#064e3b","#022c22"]],["teal",["#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#14b8a6","#0d9488","#0f766e","#115e59","#134e4a","#042f2e"]],["cyan",["#ecfeff","#cffafe","#a5f3fc","#67e8f9","#22d3ee","#06b6d4","#0891b2","#0e7490","#155e75","#164e63","#083344"]],["sky",["#f0f9ff","#e0f2fe","#bae6fd","#7dd3fc","#38bdf8","#0ea5e9","#0284c7","#0369a1","#075985","#0c4a6e","#082f49"]],["blue",["#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1d4ed8","#1e40af","#1e3a8a","#172554"]],["indigo",["#eef2ff","#e0e7ff","#c7d2fe","#a5b4fc","#818cf8","#6366f1","#4f46e5","#4338ca","#3730a3","#312e81","#1e1b4b"]],["violet",["#f5f3ff","#ede9fe","#ddd6fe","#c4b5fd","#a78bfa","#8b5cf6","#7c3aed","#6d28d9","#5b21b6","#4c1d95","#2e1065"]],["purple",["#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#a855f7","#9333ea","#7e22ce","#6b21a8","#581c87","#3b0764"]],["fuchsia",["#fdf4ff","#fae8ff","#f5d0fe","#f0abfc","#e879f9","#d946ef","#c026d3","#a21caf","#86198f","#701a75","#4a044e"]],["pink",["#fdf2f8","#fce7f3","#fbcfe8","#f9a8d4","#f472b6","#ec4899","#db2777","#be185d","#9d174d","#831843","#500724"]],["rose",["#fff1f2","#ffe4e6","#fecdd3","#fda4af","#fb7185","#f43f5e","#e11d48","#be123c","#9f1239","#881337","#4c0519"]]],T=new Map(C.flatMap(([e,f])=>f.map((t,r)=>[`--color-${e}-${H[r]}`,t])));function p(e){return T.get(e)??null}var I=/oklch\(([^)]*)\)/gi,L=/color-mix\(\s*in\s+oklab\s*,\s*var\(\s*(--[\w-]+)\s*\)\s*([0-9.]+)%\s*,\s*transparent\s*\)/gi;function i(e,f,t){return Math.min(t,Math.max(f,e))}function l(e){let f=Number.parseFloat(e);if(Number.isNaN(f))throw new Error(`Invalid numeric token: "${e}"`);return f}function k(e){let f=e.trim().toLowerCase();if(f.endsWith("%"))return i(l(f.slice(0,-1))/100,0,1);let t=l(f);return t>1&&t<=100?i(t/100,0,1):i(t,0,1)}function y(e){let f=e.trim().toLowerCase();return f.endsWith("deg")?l(f.slice(0,-3)):f.endsWith("rad")?l(f.slice(0,-3))*180/Math.PI:f.endsWith("turn")?l(f.slice(0,-4))*360:l(f)}function M(e){if(typeof e!="string")return 1;let f=e.trim().toLowerCase();return f.endsWith("%")?i(l(f.slice(0,-1))/100,0,1):i(l(f),0,1)}function x(e){let f=e%360;return f<0?f+360:f}function O(e){if(typeof e!="string")throw new Error("parseOklch expects a string like oklch(70% 0.2 30)");let f=e.trim(),t=f.toLowerCase();if(!t.startsWith("oklch(")||!t.endsWith(")"))throw new Error(`Invalid OKLCH function: "${e}"`);let r=f.slice(f.indexOf("(")+1,-1).trim(),n=r.indexOf("/"),a=n===-1?r:r.slice(0,n).trim(),o=n===-1?void 0:r.slice(n+1).trim(),c=a.replace(/,/g," ").split(/\s+/).filter(Boolean);if(c.length<3)throw new Error(`Invalid OKLCH channels: "${e}"`);let s=k(c[0]),d=Math.max(0,l(c[1])),h=x(y(c[2])),u=M(o);return{l:s,c:d,h,alpha:u}}function E(e,f,t){let r=e+.3963377774*f+.2158037573*t,n=e-.1055613458*f-.0638541728*t,a=e-.0894841775*f-1.291485548*t,o=r*r*r,c=n*n*n,s=a*a*a;return{r:4.0767416621*o-3.3077115913*c+.2309699292*s,g:-1.2684380046*o+2.6097574011*c-.3413193965*s,b:-.0041960863*o-.7034186147*c+1.707614701*s}}function g(e,f,t){let r=t*Math.PI/180,n=f*Math.cos(r),a=f*Math.sin(r);return E(e,n,a)}function w(e){return e.r>=0&&e.r<=1&&e.g>=0&&e.g<=1&&e.b>=0&&e.b<=1}function A(e,f,t){let r=g(e,f,t);if(w(r))return f;let n=0,a=f;for(let o=0;o<24;o+=1){let c=(n+a)/2,s=g(e,c,t);w(s)?n=c:a=c}return n}function m(e){return e<=.0031308?12.92*e:1.055*e**(1/2.4)-.055}function b(e){let f=i(e,0,1);return Math.round(f*255).toString(16).padStart(2,"0")}function $(e){let f=e.trim().toLowerCase();if(!f.startsWith("#"))return null;let t=f.slice(1);return t.length===3?`#${t[0]}${t[0]}${t[1]}${t[1]}${t[2]}${t[2]}`:t.length===4?`#${t[0]}${t[0]}${t[1]}${t[1]}${t[2]}${t[2]}${t[3]}${t[3]}`:t.length===6||t.length===8?`#${t}`:null}function N(e){let f=$(e);if(!f)return null;let t=f.slice(1),r=t.slice(0,6),n=t.length===8?t.slice(6,8):"ff";return{rgbHex:r,alphaHex:n}}function v(e){return b(i(e,0,1))}function S(e,f){let r=Number.parseInt(e,16)/255*i(f/100,0,1);return v(r)}function W(e){if(typeof e=="string")return O(e);if(e&&typeof e=="object"&&typeof e.l=="number"&&typeof e.c=="number"&&typeof e.h=="number")return{l:i(e.l,0,1),c:Math.max(0,e.c),h:x(e.h),alpha:i(e.alpha??1,0,1)};throw new Error("Input must be an OKLCH string or { l, c, h, alpha } object")}function _(e,f={}){let{gamut:t="clip",includeAlpha:r="auto",uppercase:n=!1}=f,a=W(e),o=t==="fit"?A(a.l,a.c,a.h):a.c,c=g(a.l,o,a.h),s=m(c.r),d=m(c.g),h=m(c.b),u=`#${b(s)}${b(d)}${b(h)}`;return(r===!0||r==="always"||r==="auto"&&a.alpha<1)&&(u+=b(a.alpha)),n?u.toUpperCase():u}function D(e){let f=/(--color-[a-z]+-\d{2,3})(\s*:\s*)oklch\(([^)]*)\)/gi;return e.replace(f,(t,r,n)=>{let a=p(r.toLowerCase());return a?`${r}${n}${a}`:t})}function z(e){let f=/(--[\w-]+)\s*:\s*(#[0-9a-fA-F]{3,8})\s*;/g,t=new Map,r=f.exec(e);for(;r;){let n=r[1].toLowerCase(),a=$(r[2]);a&&t.set(n,a),r=f.exec(e)}return t}function P(e,f){return e.replace(L,(t,r,n)=>{let a=String(r).toLowerCase(),o=Number.parseFloat(n);if(Number.isNaN(o))return t;let c=f.get(a)??p(a);if(!c)return t;let s=N(c);if(!s)return t;let d=S(s.alphaHex,o);return`#${s.rgbHex}${d}`})}function F(e,f={}){if(typeof e!="string")throw new Error("replaceOklchInText expects a string");let{onError:t="preserve",...r}=f,a=D(e).replace(I,c=>{try{return _(c,r)}catch(s){if(t==="throw")throw s;return c}}),o=z(a);return P(a,o)}function G(e,f={}){return F(e,f)}export{G as convertTailwindCssToHex,_ as oklchToHex,O as parseOklch,F as replaceOklchInText};
1
+ import{getTailwindDefaultHexForVar as g}from"./tailwind-default-hex.js";const H=/oklch\(([^)]*)\)/gi,C=/color-mix\(\s*in\s+oklab\s*,\s*var\(\s*(--[\w-]+)\s*\)\s*([0-9.]+)%\s*,\s*transparent\s*\)/gi;function l(e,t,r){return Math.min(r,Math.max(t,e))}function u(e){const t=Number.parseFloat(e);if(Number.isNaN(t))throw new Error(`Invalid numeric token: "${e}"`);return t}function T(e){const t=e.trim().toLowerCase();if(t.endsWith("%"))return l(u(t.slice(0,-1))/100,0,1);const r=u(t);return r>1&&r<=100?l(r/100,0,1):l(r,0,1)}function I(e){const t=e.trim().toLowerCase();return t.endsWith("deg")?u(t.slice(0,-3)):t.endsWith("rad")?u(t.slice(0,-3))*180/Math.PI:t.endsWith("turn")?u(t.slice(0,-4))*360:u(t)}function L(e){if(typeof e!="string")return 1;const t=e.trim().toLowerCase();return t.endsWith("%")?l(u(t.slice(0,-1))/100,0,1):l(u(t),0,1)}function x(e){const t=e%360;return t<0?t+360:t}function k(e){if(typeof e!="string")throw new Error("parseOklch expects a string like oklch(70% 0.2 30)");const t=e.trim(),r=t.toLowerCase();if(!r.startsWith("oklch(")||!r.endsWith(")"))throw new Error(`Invalid OKLCH function: "${e}"`);const n=t.slice(t.indexOf("(")+1,-1).trim(),s=n.indexOf("/"),o=s===-1?n:n.slice(0,s).trim(),a=s===-1?void 0:n.slice(s+1).trim(),c=o.replace(/,/g," ").split(/\s+/).filter(Boolean);if(c.length<3)throw new Error(`Invalid OKLCH channels: "${e}"`);const i=T(c[0]),h=Math.max(0,u(c[1])),m=x(I(c[2])),f=L(a);return{l:i,c:h,h:m,alpha:f}}function O(e,t,r){const n=e+.3963377774*t+.2158037573*r,s=e-.1055613458*t-.0638541728*r,o=e-.0894841775*t-1.291485548*r,a=n*n*n,c=s*s*s,i=o*o*o;return{r:4.0767416621*a-3.3077115913*c+.2309699292*i,g:-1.2684380046*a+2.6097574011*c-.3413193965*i,b:-.0041960863*a-.7034186147*c+1.707614701*i}}function d(e,t,r){const n=r*Math.PI/180,s=t*Math.cos(n),o=t*Math.sin(n);return O(e,s,o)}function b(e){return e.r>=0&&e.r<=1&&e.g>=0&&e.g<=1&&e.b>=0&&e.b<=1}function M(e,t,r){const n=d(e,t,r);if(b(n))return t;let s=0,o=t;for(let a=0;a<24;a+=1){const c=(s+o)/2,i=d(e,c,r);b(i)?s=c:o=c}return s}function w(e){return e<=.0031308?12.92*e:1.055*e**(1/2.4)-.055}function p(e){const t=l(e,0,1);return Math.round(t*255).toString(16).padStart(2,"0")}function $(e){const t=e.trim().toLowerCase();if(!t.startsWith("#"))return null;const r=t.slice(1);return r.length===3?`#${r[0]}${r[0]}${r[1]}${r[1]}${r[2]}${r[2]}`:r.length===4?`#${r[0]}${r[0]}${r[1]}${r[1]}${r[2]}${r[2]}${r[3]}${r[3]}`:r.length===6||r.length===8?`#${r}`:null}function N(e){const t=$(e);if(!t)return null;const r=t.slice(1),n=r.slice(0,6),s=r.length===8?r.slice(6,8):"ff";return{rgbHex:n,alphaHex:s}}function v(e){return p(l(e,0,1))}function y(e,t){const n=Number.parseInt(e,16)/255*l(t/100,0,1);return v(n)}function E(e){if(typeof e=="string")return k(e);if(e&&typeof e=="object"&&typeof e.l=="number"&&typeof e.c=="number"&&typeof e.h=="number")return{l:l(e.l,0,1),c:Math.max(0,e.c),h:x(e.h),alpha:l(e.alpha??1,0,1)};throw new Error("Input must be an OKLCH string or { l, c, h, alpha } object")}function A(e,t={}){const{gamut:r="clip",includeAlpha:n="auto",uppercase:s=!1}=t,o=E(e),a=r==="fit"?M(o.l,o.c,o.h):o.c,c=d(o.l,a,o.h),i=w(c.r),h=w(c.g),m=w(c.b);let f=`#${p(i)}${p(h)}${p(m)}`;return(n===!0||n==="always"||n==="auto"&&o.alpha<1)&&(f+=p(o.alpha)),s?f.toUpperCase():f}function W(e){const t=/(--color-[a-z]+-\d{2,3})(\s*:\s*)oklch\(([^)]*)\)/gi;return e.replace(t,(r,n,s)=>{const o=g(n.toLowerCase());return o?`${n}${s}${o}`:r})}function S(e){const t=/(--[\w-]+)\s*:\s*(#[0-9a-fA-F]{3,8})\s*;/g,r=new Map;let n=t.exec(e);for(;n;){const s=n[1].toLowerCase(),o=$(n[2]);o&&r.set(s,o),n=t.exec(e)}return r}function _(e,t){return e.replace(C,(r,n,s)=>{const o=String(n).toLowerCase(),a=Number.parseFloat(s);if(Number.isNaN(a))return r;const c=t.get(o)??g(o);if(!c)return r;const i=N(c);if(!i)return r;const h=y(i.alphaHex,a);return`#${i.rgbHex}${h}`})}function z(e,t={}){if(typeof e!="string")throw new Error("replaceOklchInText expects a string");const{onError:r="preserve",...n}=t,o=W(e).replace(H,c=>{try{return A(c,n)}catch(i){if(r==="throw")throw i;return c}}),a=S(o);return _(o,a)}function F(e,t={}){return z(e,t)}export{F as convertTailwindCssToHex,A as oklchToHex,k as parseOklch,z as replaceOklchInText};
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- var y=["50","100","200","300","400","500","600","700","800","900","950"],I=[["slate",["#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#64748b","#475569","#334155","#1e293b","#0f172a","#020617"]],["gray",["#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#6b7280","#4b5563","#374151","#1f2937","#111827","#030712"]],["zinc",["#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#71717a","#52525b","#3f3f46","#27272a","#18181b","#09090b"]],["neutral",["#fafafa","#f5f5f5","#e5e5e5","#d4d4d4","#a3a3a3","#737373","#525252","#404040","#262626","#171717","#0a0a0a"]],["stone",["#fafaf9","#f5f5f4","#e7e5e4","#d6d3d1","#a8a29e","#78716c","#57534e","#44403c","#292524","#1c1917","#0c0a09"]],["red",["#fef2f2","#fee2e2","#fecaca","#fca5a5","#f87171","#ef4444","#dc2626","#b91c1c","#991b1b","#7f1d1d","#450a0a"]],["orange",["#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#c2410c","#9a3412","#7c2d12","#431407"]],["amber",["#fffbeb","#fef3c7","#fde68a","#fcd34d","#fbbf24","#f59e0b","#d97706","#b45309","#92400e","#78350f","#451a03"]],["yellow",["#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#eab308","#ca8a04","#a16207","#854d0e","#713f12","#422006"]],["lime",["#f7fee7","#ecfccb","#d9f99d","#bef264","#a3e635","#84cc16","#65a30d","#4d7c0f","#3f6212","#365314","#1a2e05"]],["green",["#f0fdf4","#dcfce7","#bbf7d0","#86efac","#4ade80","#22c55e","#16a34a","#15803d","#166534","#14532d","#052e16"]],["emerald",["#ecfdf5","#d1fae5","#a7f3d0","#6ee7b7","#34d399","#10b981","#059669","#047857","#065f46","#064e3b","#022c22"]],["teal",["#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#14b8a6","#0d9488","#0f766e","#115e59","#134e4a","#042f2e"]],["cyan",["#ecfeff","#cffafe","#a5f3fc","#67e8f9","#22d3ee","#06b6d4","#0891b2","#0e7490","#155e75","#164e63","#083344"]],["sky",["#f0f9ff","#e0f2fe","#bae6fd","#7dd3fc","#38bdf8","#0ea5e9","#0284c7","#0369a1","#075985","#0c4a6e","#082f49"]],["blue",["#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1d4ed8","#1e40af","#1e3a8a","#172554"]],["indigo",["#eef2ff","#e0e7ff","#c7d2fe","#a5b4fc","#818cf8","#6366f1","#4f46e5","#4338ca","#3730a3","#312e81","#1e1b4b"]],["violet",["#f5f3ff","#ede9fe","#ddd6fe","#c4b5fd","#a78bfa","#8b5cf6","#7c3aed","#6d28d9","#5b21b6","#4c1d95","#2e1065"]],["purple",["#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#a855f7","#9333ea","#7e22ce","#6b21a8","#581c87","#3b0764"]],["fuchsia",["#fdf4ff","#fae8ff","#f5d0fe","#f0abfc","#e879f9","#d946ef","#c026d3","#a21caf","#86198f","#701a75","#4a044e"]],["pink",["#fdf2f8","#fce7f3","#fbcfe8","#f9a8d4","#f472b6","#ec4899","#db2777","#be185d","#9d174d","#831843","#500724"]],["rose",["#fff1f2","#ffe4e6","#fecdd3","#fda4af","#fb7185","#f43f5e","#e11d48","#be123c","#9f1239","#881337","#4c0519"]]],L=new Map(I.flatMap(([e,t])=>t.map((n,r)=>[`--color-${e}-${y[r]}`,n])));function m(e){return L.get(e)??null}var E=/oklch\(([^)]*)\)/gi,O=/color-mix\(\s*in\s+oklab\s*,\s*var\(\s*(--[\w-]+)\s*\)\s*([0-9.]+)%\s*,\s*transparent\s*\)/gi;function l(e,t,n){return Math.min(n,Math.max(t,e))}function u(e){let t=Number.parseFloat(e);if(Number.isNaN(t))throw new Error(`Invalid numeric token: "${e}"`);return t}function M(e){let t=e.trim().toLowerCase();if(t.endsWith("%"))return l(u(t.slice(0,-1))/100,0,1);let n=u(t);return n>1&&n<=100?l(n/100,0,1):l(n,0,1)}function A(e){let t=e.trim().toLowerCase();return t.endsWith("deg")?u(t.slice(0,-3)):t.endsWith("rad")?u(t.slice(0,-3))*180/Math.PI:t.endsWith("turn")?u(t.slice(0,-4))*360:u(t)}function P(e){if(typeof e!="string")return 1;let t=e.trim().toLowerCase();return t.endsWith("%")?l(u(t.slice(0,-1))/100,0,1):l(u(t),0,1)}function C(e){let t=e%360;return t<0?t+360:t}function N(e){if(typeof e!="string")throw new Error("parseOklch expects a string like oklch(70% 0.2 30)");let t=e.trim(),n=t.toLowerCase();if(!n.startsWith("oklch(")||!n.endsWith(")"))throw new Error(`Invalid OKLCH function: "${e}"`);let r=t.slice(t.indexOf("(")+1,-1).trim(),o=r.indexOf("/"),f=o===-1?r:r.slice(0,o).trim(),a=o===-1?void 0:r.slice(o+1).trim(),c=f.replace(/,/g," ").split(/\s+/).filter(Boolean);if(c.length<3)throw new Error(`Invalid OKLCH channels: "${e}"`);let s=M(c[0]),i=Math.max(0,u(c[1])),d=C(A(c[2])),p=P(a);return{l:s,c:i,h:d,alpha:p}}function _(e,t,n){let r=e+.3963377774*t+.2158037573*n,o=e-.1055613458*t-.0638541728*n,f=e-.0894841775*t-1.291485548*n,a=r*r*r,c=o*o*o,s=f*f*f;return{r:4.0767416621*a-3.3077115913*c+.2309699292*s,g:-1.2684380046*a+2.6097574011*c-.3413193965*s,b:-.0041960863*a-.7034186147*c+1.707614701*s}}function x(e,t,n){let r=n*Math.PI/180,o=t*Math.cos(r),f=t*Math.sin(r);return _(e,o,f)}function w(e){return e.r>=0&&e.r<=1&&e.g>=0&&e.g<=1&&e.b>=0&&e.b<=1}function S(e,t,n){let r=x(e,t,n);if(w(r))return t;let o=0,f=t;for(let a=0;a<24;a+=1){let c=(o+f)/2,s=x(e,c,n);w(s)?o=c:f=c}return o}function g(e){return e<=.0031308?12.92*e:1.055*e**(1/2.4)-.055}function b(e){let t=l(e,0,1);return Math.round(t*255).toString(16).padStart(2,"0")}function H(e){let t=e.trim().toLowerCase();if(!t.startsWith("#"))return null;let n=t.slice(1);return n.length===3?`#${n[0]}${n[0]}${n[1]}${n[1]}${n[2]}${n[2]}`:n.length===4?`#${n[0]}${n[0]}${n[1]}${n[1]}${n[2]}${n[2]}${n[3]}${n[3]}`:n.length===6||n.length===8?`#${n}`:null}function D(e){let t=H(e);if(!t)return null;let n=t.slice(1),r=n.slice(0,6),o=n.length===8?n.slice(6,8):"ff";return{rgbHex:r,alphaHex:o}}function W(e){return b(l(e,0,1))}function z(e,t){let r=Number.parseInt(e,16)/255*l(t/100,0,1);return W(r)}function R(e){if(typeof e=="string")return N(e);if(e&&typeof e=="object"&&typeof e.l=="number"&&typeof e.c=="number"&&typeof e.h=="number")return{l:l(e.l,0,1),c:Math.max(0,e.c),h:C(e.h),alpha:l(e.alpha??1,0,1)};throw new Error("Input must be an OKLCH string or { l, c, h, alpha } object")}function F(e,t={}){let{gamut:n="clip",includeAlpha:r="auto",uppercase:o=!1}=t,f=R(e),a=n==="fit"?S(f.l,f.c,f.h):f.c,c=x(f.l,a,f.h),s=g(c.r),i=g(c.g),d=g(c.b),p=`#${b(s)}${b(i)}${b(d)}`;return(r===!0||r==="always"||r==="auto"&&f.alpha<1)&&(p+=b(f.alpha)),o?p.toUpperCase():p}function V(e){let t=/(--color-[a-z]+-\d{2,3})(\s*:\s*)oklch\(([^)]*)\)/gi;return e.replace(t,(n,r,o)=>{let f=m(r.toLowerCase());return f?`${r}${o}${f}`:n})}function K(e){let t=/(--[\w-]+)\s*:\s*(#[0-9a-fA-F]{3,8})\s*;/g,n=new Map,r=t.exec(e);for(;r;){let o=r[1].toLowerCase(),f=H(r[2]);f&&n.set(o,f),r=t.exec(e)}return n}function X(e,t){return e.replace(O,(n,r,o)=>{let f=String(r).toLowerCase(),a=Number.parseFloat(o);if(Number.isNaN(a))return n;let c=t.get(f)??m(f);if(!c)return n;let s=D(c);if(!s)return n;let i=z(s.alphaHex,a);return`#${s.rgbHex}${i}`})}function h(e,t={}){if(typeof e!="string")throw new Error("replaceOklchInText expects a string");let{onError:n="preserve",...r}=t,f=V(e).replace(E,c=>{try{return F(c,r)}catch(s){if(n==="throw")throw s;return c}}),a=K(f);return X(f,a)}function Q(e,t={}){return h(e,t)}var B=/\.(css|pcss|postcss|scss|sass|less|styl|stylus)(?:$|\?)/i;function G(e,t){return e instanceof RegExp?(e.lastIndex=0,e.test(t)):!1}function T(e,t){return e?e instanceof RegExp?G(e,t):typeof e=="function"?!!e(t):!1:!0}function $(e,t,n){return!(!T(t,e)||n&&T(n,e))}function k(e,t){if(typeof e!="string"||!e.toLowerCase().includes("oklch("))return null;let n=h(e,t);return n===e?null:n}function j(e={}){let{include:t=B,exclude:n,convertDev:r=!0,convertBuild:o=!0,...f}=e,a="build";return{name:"oklchtohex-vite-plugin",enforce:"post",configResolved(c){a=c.command},transform(c,s){if(a==="serve"&&!r||a==="build"&&!o||!$(s,t,n))return null;let i=k(c,f);return i?{code:i,map:null}:null},generateBundle(c,s){if(o)for(let[i,d]of Object.entries(s)){if(d.type!=="asset"||!$(i,t,n)||typeof d.source!="string")continue;let p=k(d.source,f);p&&(d.source=p)}}}}function v(e={}){return{postcssPlugin:"oklchtohex-postcss-plugin",Once(t){let n=t.toString();if(!n.toLowerCase().includes("oklch("))return;let r=h(n,e);r!==n&&(t.removeAll(),t.append(r))}}}v.postcss=!0;export{Q as convertTailwindCssToHex,F as oklchToHex,v as oklchToHexPostcssPlugin,j as oklchToHexVitePlugin,N as parseOklch,h as replaceOklchInText};
1
+ export*from"./converter.js";import{oklchToHexVitePlugin as t}from"./vite-plugin.js";import{oklchToHexPostcssPlugin as l}from"./postcss-plugin.js";export{l as oklchToHexPostcssPlugin,t as oklchToHexVitePlugin};
@@ -1 +1 @@
1
- var M=Object.defineProperty;var w=(e,t)=>()=>(e&&(t=e(e=0)),t);var v=(e,t)=>{for(var f in t)M(e,f,{get:t[f],enumerable:!0})};function m(e){return N.get(e)??null}var A,E,N,H=w(()=>{A=["50","100","200","300","400","500","600","700","800","900","950"],E=[["slate",["#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#64748b","#475569","#334155","#1e293b","#0f172a","#020617"]],["gray",["#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#6b7280","#4b5563","#374151","#1f2937","#111827","#030712"]],["zinc",["#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#71717a","#52525b","#3f3f46","#27272a","#18181b","#09090b"]],["neutral",["#fafafa","#f5f5f5","#e5e5e5","#d4d4d4","#a3a3a3","#737373","#525252","#404040","#262626","#171717","#0a0a0a"]],["stone",["#fafaf9","#f5f5f4","#e7e5e4","#d6d3d1","#a8a29e","#78716c","#57534e","#44403c","#292524","#1c1917","#0c0a09"]],["red",["#fef2f2","#fee2e2","#fecaca","#fca5a5","#f87171","#ef4444","#dc2626","#b91c1c","#991b1b","#7f1d1d","#450a0a"]],["orange",["#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#c2410c","#9a3412","#7c2d12","#431407"]],["amber",["#fffbeb","#fef3c7","#fde68a","#fcd34d","#fbbf24","#f59e0b","#d97706","#b45309","#92400e","#78350f","#451a03"]],["yellow",["#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#eab308","#ca8a04","#a16207","#854d0e","#713f12","#422006"]],["lime",["#f7fee7","#ecfccb","#d9f99d","#bef264","#a3e635","#84cc16","#65a30d","#4d7c0f","#3f6212","#365314","#1a2e05"]],["green",["#f0fdf4","#dcfce7","#bbf7d0","#86efac","#4ade80","#22c55e","#16a34a","#15803d","#166534","#14532d","#052e16"]],["emerald",["#ecfdf5","#d1fae5","#a7f3d0","#6ee7b7","#34d399","#10b981","#059669","#047857","#065f46","#064e3b","#022c22"]],["teal",["#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#14b8a6","#0d9488","#0f766e","#115e59","#134e4a","#042f2e"]],["cyan",["#ecfeff","#cffafe","#a5f3fc","#67e8f9","#22d3ee","#06b6d4","#0891b2","#0e7490","#155e75","#164e63","#083344"]],["sky",["#f0f9ff","#e0f2fe","#bae6fd","#7dd3fc","#38bdf8","#0ea5e9","#0284c7","#0369a1","#075985","#0c4a6e","#082f49"]],["blue",["#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1d4ed8","#1e40af","#1e3a8a","#172554"]],["indigo",["#eef2ff","#e0e7ff","#c7d2fe","#a5b4fc","#818cf8","#6366f1","#4f46e5","#4338ca","#3730a3","#312e81","#1e1b4b"]],["violet",["#f5f3ff","#ede9fe","#ddd6fe","#c4b5fd","#a78bfa","#8b5cf6","#7c3aed","#6d28d9","#5b21b6","#4c1d95","#2e1065"]],["purple",["#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#a855f7","#9333ea","#7e22ce","#6b21a8","#581c87","#3b0764"]],["fuchsia",["#fdf4ff","#fae8ff","#f5d0fe","#f0abfc","#e879f9","#d946ef","#c026d3","#a21caf","#86198f","#701a75","#4a044e"]],["pink",["#fdf2f8","#fce7f3","#fbcfe8","#f9a8d4","#f472b6","#ec4899","#db2777","#be185d","#9d174d","#831843","#500724"]],["rose",["#fff1f2","#ffe4e6","#fecdd3","#fda4af","#fb7185","#f43f5e","#e11d48","#be123c","#9f1239","#881337","#4c0519"]]],N=new Map(E.flatMap(([e,t])=>t.map((f,r)=>[`--color-${e}-${A[r]}`,f])))});var O={};v(O,{convertTailwindCssToHex:()=>U,oklchToHex:()=>I,parseOklch:()=>T,replaceOklchInText:()=>L});function i(e,t,f){return Math.min(f,Math.max(t,e))}function l(e){let t=Number.parseFloat(e);if(Number.isNaN(t))throw new Error(`Invalid numeric token: "${e}"`);return t}function W(e){let t=e.trim().toLowerCase();if(t.endsWith("%"))return i(l(t.slice(0,-1))/100,0,1);let f=l(t);return f>1&&f<=100?i(f/100,0,1):i(f,0,1)}function _(e){let t=e.trim().toLowerCase();return t.endsWith("deg")?l(t.slice(0,-3)):t.endsWith("rad")?l(t.slice(0,-3))*180/Math.PI:t.endsWith("turn")?l(t.slice(0,-4))*360:l(t)}function D(e){if(typeof e!="string")return 1;let t=e.trim().toLowerCase();return t.endsWith("%")?i(l(t.slice(0,-1))/100,0,1):i(l(t),0,1)}function C(e){let t=e%360;return t<0?t+360:t}function T(e){if(typeof e!="string")throw new Error("parseOklch expects a string like oklch(70% 0.2 30)");let t=e.trim(),f=t.toLowerCase();if(!f.startsWith("oklch(")||!f.endsWith(")"))throw new Error(`Invalid OKLCH function: "${e}"`);let r=t.slice(t.indexOf("(")+1,-1).trim(),a=r.indexOf("/"),n=a===-1?r:r.slice(0,a).trim(),o=a===-1?void 0:r.slice(a+1).trim(),c=n.replace(/,/g," ").split(/\s+/).filter(Boolean);if(c.length<3)throw new Error(`Invalid OKLCH channels: "${e}"`);let s=W(c[0]),d=Math.max(0,l(c[1])),p=C(_(c[2])),u=D(o);return{l:s,c:d,h:p,alpha:u}}function z(e,t,f){let r=e+.3963377774*t+.2158037573*f,a=e-.1055613458*t-.0638541728*f,n=e-.0894841775*t-1.291485548*f,o=r*r*r,c=a*a*a,s=n*n*n;return{r:4.0767416621*o-3.3077115913*c+.2309699292*s,g:-1.2684380046*o+2.6097574011*c-.3413193965*s,b:-.0041960863*o-.7034186147*c+1.707614701*s}}function x(e,t,f){let r=f*Math.PI/180,a=t*Math.cos(r),n=t*Math.sin(r);return z(e,a,n)}function $(e){return e.r>=0&&e.r<=1&&e.g>=0&&e.g<=1&&e.b>=0&&e.b<=1}function F(e,t,f){let r=x(e,t,f);if($(r))return t;let a=0,n=t;for(let o=0;o<24;o+=1){let c=(a+n)/2,s=x(e,c,f);$(s)?a=c:n=c}return a}function g(e){return e<=.0031308?12.92*e:1.055*e**(1/2.4)-.055}function b(e){let t=i(e,0,1);return Math.round(t*255).toString(16).padStart(2,"0")}function k(e){let t=e.trim().toLowerCase();if(!t.startsWith("#"))return null;let f=t.slice(1);return f.length===3?`#${f[0]}${f[0]}${f[1]}${f[1]}${f[2]}${f[2]}`:f.length===4?`#${f[0]}${f[0]}${f[1]}${f[1]}${f[2]}${f[2]}${f[3]}${f[3]}`:f.length===6||f.length===8?`#${f}`:null}function K(e){let t=k(e);if(!t)return null;let f=t.slice(1),r=f.slice(0,6),a=f.length===8?f.slice(6,8):"ff";return{rgbHex:r,alphaHex:a}}function V(e){return b(i(e,0,1))}function X(e,t){let r=Number.parseInt(e,16)/255*i(t/100,0,1);return V(r)}function G(e){if(typeof e=="string")return T(e);if(e&&typeof e=="object"&&typeof e.l=="number"&&typeof e.c=="number"&&typeof e.h=="number")return{l:i(e.l,0,1),c:Math.max(0,e.c),h:C(e.h),alpha:i(e.alpha??1,0,1)};throw new Error("Input must be an OKLCH string or { l, c, h, alpha } object")}function I(e,t={}){let{gamut:f="clip",includeAlpha:r="auto",uppercase:a=!1}=t,n=G(e),o=f==="fit"?F(n.l,n.c,n.h):n.c,c=x(n.l,o,n.h),s=g(c.r),d=g(c.g),p=g(c.b),u=`#${b(s)}${b(d)}${b(p)}`;return(r===!0||r==="always"||r==="auto"&&n.alpha<1)&&(u+=b(n.alpha)),a?u.toUpperCase():u}function R(e){let t=/(--color-[a-z]+-\d{2,3})(\s*:\s*)oklch\(([^)]*)\)/gi;return e.replace(t,(f,r,a)=>{let n=m(r.toLowerCase());return n?`${r}${a}${n}`:f})}function j(e){let t=/(--[\w-]+)\s*:\s*(#[0-9a-fA-F]{3,8})\s*;/g,f=new Map,r=t.exec(e);for(;r;){let a=r[1].toLowerCase(),n=k(r[2]);n&&f.set(a,n),r=t.exec(e)}return f}function B(e,t){return e.replace(S,(f,r,a)=>{let n=String(r).toLowerCase(),o=Number.parseFloat(a);if(Number.isNaN(o))return f;let c=t.get(n)??m(n);if(!c)return f;let s=K(c);if(!s)return f;let d=X(s.alphaHex,o);return`#${s.rgbHex}${d}`})}function L(e,t={}){if(typeof e!="string")throw new Error("replaceOklchInText expects a string");let{onError:f="preserve",...r}=t,n=R(e).replace(P,c=>{try{return I(c,r)}catch(s){if(f==="throw")throw s;return c}}),o=j(n);return B(n,o)}function U(e,t={}){return L(e,t)}var P,S,y=w(()=>{H();P=/oklch\(([^)]*)\)/gi,S=/color-mix\(\s*in\s+oklab\s*,\s*var\(\s*(--[\w-]+)\s*\)\s*([0-9.]+)%\s*,\s*transparent\s*\)/gi});function h(e){let t=e||{};return{postcssPlugin:"oklchtohex-postcss-plugin",async Once(f){let r=f.toString();if(!r.toLowerCase().includes("oklch("))return;let n=(await Promise.resolve().then(()=>(y(),O))).replaceOklchInText(r,t);n!==r&&(f.removeAll(),f.append(n))}}}h.postcss=!0;module.exports=h;module.exports.default=h;module.exports.oklchToHexPostcssPlugin=h;
1
+ var p=Object.create;var i=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var a=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty;var x=(s,o,t,e)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of u(o))!g.call(s,n)&&n!==t&&i(s,n,{get:()=>o[n],enumerable:!(e=r(o,n))||e.enumerable});return s};var d=(s,o,t)=>(t=s!=null?p(a(s)):{},x(o||!s||!s.__esModule?i(t,"default",{value:s,enumerable:!0}):t,s));function c(s){const o=s||{};return{postcssPlugin:"oklchtohex-postcss-plugin",async Once(t){const e=t.toString();if(!e.toLowerCase().includes("oklch("))return;const l=(await import("./converter.js")).replaceOklchInText(e,o);l!==e&&(t.removeAll(),t.append(l))}}}c.postcss=!0,module.exports=c,module.exports.default=c,module.exports.oklchToHexPostcssPlugin=c;
@@ -1 +1 @@
1
- var T=["50","100","200","300","400","500","600","700","800","900","950"],k=[["slate",["#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#64748b","#475569","#334155","#1e293b","#0f172a","#020617"]],["gray",["#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#6b7280","#4b5563","#374151","#1f2937","#111827","#030712"]],["zinc",["#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#71717a","#52525b","#3f3f46","#27272a","#18181b","#09090b"]],["neutral",["#fafafa","#f5f5f5","#e5e5e5","#d4d4d4","#a3a3a3","#737373","#525252","#404040","#262626","#171717","#0a0a0a"]],["stone",["#fafaf9","#f5f5f4","#e7e5e4","#d6d3d1","#a8a29e","#78716c","#57534e","#44403c","#292524","#1c1917","#0c0a09"]],["red",["#fef2f2","#fee2e2","#fecaca","#fca5a5","#f87171","#ef4444","#dc2626","#b91c1c","#991b1b","#7f1d1d","#450a0a"]],["orange",["#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#c2410c","#9a3412","#7c2d12","#431407"]],["amber",["#fffbeb","#fef3c7","#fde68a","#fcd34d","#fbbf24","#f59e0b","#d97706","#b45309","#92400e","#78350f","#451a03"]],["yellow",["#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#eab308","#ca8a04","#a16207","#854d0e","#713f12","#422006"]],["lime",["#f7fee7","#ecfccb","#d9f99d","#bef264","#a3e635","#84cc16","#65a30d","#4d7c0f","#3f6212","#365314","#1a2e05"]],["green",["#f0fdf4","#dcfce7","#bbf7d0","#86efac","#4ade80","#22c55e","#16a34a","#15803d","#166534","#14532d","#052e16"]],["emerald",["#ecfdf5","#d1fae5","#a7f3d0","#6ee7b7","#34d399","#10b981","#059669","#047857","#065f46","#064e3b","#022c22"]],["teal",["#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#14b8a6","#0d9488","#0f766e","#115e59","#134e4a","#042f2e"]],["cyan",["#ecfeff","#cffafe","#a5f3fc","#67e8f9","#22d3ee","#06b6d4","#0891b2","#0e7490","#155e75","#164e63","#083344"]],["sky",["#f0f9ff","#e0f2fe","#bae6fd","#7dd3fc","#38bdf8","#0ea5e9","#0284c7","#0369a1","#075985","#0c4a6e","#082f49"]],["blue",["#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1d4ed8","#1e40af","#1e3a8a","#172554"]],["indigo",["#eef2ff","#e0e7ff","#c7d2fe","#a5b4fc","#818cf8","#6366f1","#4f46e5","#4338ca","#3730a3","#312e81","#1e1b4b"]],["violet",["#f5f3ff","#ede9fe","#ddd6fe","#c4b5fd","#a78bfa","#8b5cf6","#7c3aed","#6d28d9","#5b21b6","#4c1d95","#2e1065"]],["purple",["#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#a855f7","#9333ea","#7e22ce","#6b21a8","#581c87","#3b0764"]],["fuchsia",["#fdf4ff","#fae8ff","#f5d0fe","#f0abfc","#e879f9","#d946ef","#c026d3","#a21caf","#86198f","#701a75","#4a044e"]],["pink",["#fdf2f8","#fce7f3","#fbcfe8","#f9a8d4","#f472b6","#ec4899","#db2777","#be185d","#9d174d","#831843","#500724"]],["rose",["#fff1f2","#ffe4e6","#fecdd3","#fda4af","#fb7185","#f43f5e","#e11d48","#be123c","#9f1239","#881337","#4c0519"]]],I=new Map(k.flatMap(([e,t])=>t.map((f,r)=>[`--color-${e}-${T[r]}`,f])));function p(e){return I.get(e)??null}var L=/oklch\(([^)]*)\)/gi,O=/color-mix\(\s*in\s+oklab\s*,\s*var\(\s*(--[\w-]+)\s*\)\s*([0-9.]+)%\s*,\s*transparent\s*\)/gi;function i(e,t,f){return Math.min(f,Math.max(t,e))}function l(e){let t=Number.parseFloat(e);if(Number.isNaN(t))throw new Error(`Invalid numeric token: "${e}"`);return t}function y(e){let t=e.trim().toLowerCase();if(t.endsWith("%"))return i(l(t.slice(0,-1))/100,0,1);let f=l(t);return f>1&&f<=100?i(f/100,0,1):i(f,0,1)}function M(e){let t=e.trim().toLowerCase();return t.endsWith("deg")?l(t.slice(0,-3)):t.endsWith("rad")?l(t.slice(0,-3))*180/Math.PI:t.endsWith("turn")?l(t.slice(0,-4))*360:l(t)}function v(e){if(typeof e!="string")return 1;let t=e.trim().toLowerCase();return t.endsWith("%")?i(l(t.slice(0,-1))/100,0,1):i(l(t),0,1)}function x(e){let t=e%360;return t<0?t+360:t}function A(e){if(typeof e!="string")throw new Error("parseOklch expects a string like oklch(70% 0.2 30)");let t=e.trim(),f=t.toLowerCase();if(!f.startsWith("oklch(")||!f.endsWith(")"))throw new Error(`Invalid OKLCH function: "${e}"`);let r=t.slice(t.indexOf("(")+1,-1).trim(),a=r.indexOf("/"),n=a===-1?r:r.slice(0,a).trim(),o=a===-1?void 0:r.slice(a+1).trim(),c=n.replace(/,/g," ").split(/\s+/).filter(Boolean);if(c.length<3)throw new Error(`Invalid OKLCH channels: "${e}"`);let s=y(c[0]),d=Math.max(0,l(c[1])),h=x(M(c[2])),u=v(o);return{l:s,c:d,h,alpha:u}}function E(e,t,f){let r=e+.3963377774*t+.2158037573*f,a=e-.1055613458*t-.0638541728*f,n=e-.0894841775*t-1.291485548*f,o=r*r*r,c=a*a*a,s=n*n*n;return{r:4.0767416621*o-3.3077115913*c+.2309699292*s,g:-1.2684380046*o+2.6097574011*c-.3413193965*s,b:-.0041960863*o-.7034186147*c+1.707614701*s}}function g(e,t,f){let r=f*Math.PI/180,a=t*Math.cos(r),n=t*Math.sin(r);return E(e,a,n)}function w(e){return e.r>=0&&e.r<=1&&e.g>=0&&e.g<=1&&e.b>=0&&e.b<=1}function N(e,t,f){let r=g(e,t,f);if(w(r))return t;let a=0,n=t;for(let o=0;o<24;o+=1){let c=(a+n)/2,s=g(e,c,f);w(s)?a=c:n=c}return a}function m(e){return e<=.0031308?12.92*e:1.055*e**(1/2.4)-.055}function b(e){let t=i(e,0,1);return Math.round(t*255).toString(16).padStart(2,"0")}function $(e){let t=e.trim().toLowerCase();if(!t.startsWith("#"))return null;let f=t.slice(1);return f.length===3?`#${f[0]}${f[0]}${f[1]}${f[1]}${f[2]}${f[2]}`:f.length===4?`#${f[0]}${f[0]}${f[1]}${f[1]}${f[2]}${f[2]}${f[3]}${f[3]}`:f.length===6||f.length===8?`#${f}`:null}function S(e){let t=$(e);if(!t)return null;let f=t.slice(1),r=f.slice(0,6),a=f.length===8?f.slice(6,8):"ff";return{rgbHex:r,alphaHex:a}}function P(e){return b(i(e,0,1))}function W(e,t){let r=Number.parseInt(e,16)/255*i(t/100,0,1);return P(r)}function _(e){if(typeof e=="string")return A(e);if(e&&typeof e=="object"&&typeof e.l=="number"&&typeof e.c=="number"&&typeof e.h=="number")return{l:i(e.l,0,1),c:Math.max(0,e.c),h:x(e.h),alpha:i(e.alpha??1,0,1)};throw new Error("Input must be an OKLCH string or { l, c, h, alpha } object")}function D(e,t={}){let{gamut:f="clip",includeAlpha:r="auto",uppercase:a=!1}=t,n=_(e),o=f==="fit"?N(n.l,n.c,n.h):n.c,c=g(n.l,o,n.h),s=m(c.r),d=m(c.g),h=m(c.b),u=`#${b(s)}${b(d)}${b(h)}`;return(r===!0||r==="always"||r==="auto"&&n.alpha<1)&&(u+=b(n.alpha)),a?u.toUpperCase():u}function z(e){let t=/(--color-[a-z]+-\d{2,3})(\s*:\s*)oklch\(([^)]*)\)/gi;return e.replace(t,(f,r,a)=>{let n=p(r.toLowerCase());return n?`${r}${a}${n}`:f})}function F(e){let t=/(--[\w-]+)\s*:\s*(#[0-9a-fA-F]{3,8})\s*;/g,f=new Map,r=t.exec(e);for(;r;){let a=r[1].toLowerCase(),n=$(r[2]);n&&f.set(a,n),r=t.exec(e)}return f}function K(e,t){return e.replace(O,(f,r,a)=>{let n=String(r).toLowerCase(),o=Number.parseFloat(a);if(Number.isNaN(o))return f;let c=t.get(n)??p(n);if(!c)return f;let s=S(c);if(!s)return f;let d=W(s.alphaHex,o);return`#${s.rgbHex}${d}`})}function C(e,t={}){if(typeof e!="string")throw new Error("replaceOklchInText expects a string");let{onError:f="preserve",...r}=t,n=z(e).replace(L,c=>{try{return D(c,r)}catch(s){if(f==="throw")throw s;return c}}),o=F(n);return K(n,o)}function H(e={}){return{postcssPlugin:"oklchtohex-postcss-plugin",Once(t){let f=t.toString();if(!f.toLowerCase().includes("oklch("))return;let r=C(f,e);r!==f&&(t.removeAll(),t.append(r))}}}H.postcss=!0;var B=H;export{B as default,H as oklchToHexPostcssPlugin};
1
+ import{replaceOklchInText as c}from"./converter.js";function t(n={}){return{postcssPlugin:"oklchtohex-postcss-plugin",Once(e){const s=e.toString();if(!s.toLowerCase().includes("oklch("))return;const o=c(s,n);o!==s&&(e.removeAll(),e.append(o))}}}t.postcss=!0;var r=t;export{r as default,t as oklchToHexPostcssPlugin};
@@ -1 +1 @@
1
- var y=["50","100","200","300","400","500","600","700","800","900","950"],I=[["slate",["#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#64748b","#475569","#334155","#1e293b","#0f172a","#020617"]],["gray",["#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#6b7280","#4b5563","#374151","#1f2937","#111827","#030712"]],["zinc",["#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#71717a","#52525b","#3f3f46","#27272a","#18181b","#09090b"]],["neutral",["#fafafa","#f5f5f5","#e5e5e5","#d4d4d4","#a3a3a3","#737373","#525252","#404040","#262626","#171717","#0a0a0a"]],["stone",["#fafaf9","#f5f5f4","#e7e5e4","#d6d3d1","#a8a29e","#78716c","#57534e","#44403c","#292524","#1c1917","#0c0a09"]],["red",["#fef2f2","#fee2e2","#fecaca","#fca5a5","#f87171","#ef4444","#dc2626","#b91c1c","#991b1b","#7f1d1d","#450a0a"]],["orange",["#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#c2410c","#9a3412","#7c2d12","#431407"]],["amber",["#fffbeb","#fef3c7","#fde68a","#fcd34d","#fbbf24","#f59e0b","#d97706","#b45309","#92400e","#78350f","#451a03"]],["yellow",["#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#eab308","#ca8a04","#a16207","#854d0e","#713f12","#422006"]],["lime",["#f7fee7","#ecfccb","#d9f99d","#bef264","#a3e635","#84cc16","#65a30d","#4d7c0f","#3f6212","#365314","#1a2e05"]],["green",["#f0fdf4","#dcfce7","#bbf7d0","#86efac","#4ade80","#22c55e","#16a34a","#15803d","#166534","#14532d","#052e16"]],["emerald",["#ecfdf5","#d1fae5","#a7f3d0","#6ee7b7","#34d399","#10b981","#059669","#047857","#065f46","#064e3b","#022c22"]],["teal",["#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#14b8a6","#0d9488","#0f766e","#115e59","#134e4a","#042f2e"]],["cyan",["#ecfeff","#cffafe","#a5f3fc","#67e8f9","#22d3ee","#06b6d4","#0891b2","#0e7490","#155e75","#164e63","#083344"]],["sky",["#f0f9ff","#e0f2fe","#bae6fd","#7dd3fc","#38bdf8","#0ea5e9","#0284c7","#0369a1","#075985","#0c4a6e","#082f49"]],["blue",["#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1d4ed8","#1e40af","#1e3a8a","#172554"]],["indigo",["#eef2ff","#e0e7ff","#c7d2fe","#a5b4fc","#818cf8","#6366f1","#4f46e5","#4338ca","#3730a3","#312e81","#1e1b4b"]],["violet",["#f5f3ff","#ede9fe","#ddd6fe","#c4b5fd","#a78bfa","#8b5cf6","#7c3aed","#6d28d9","#5b21b6","#4c1d95","#2e1065"]],["purple",["#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#a855f7","#9333ea","#7e22ce","#6b21a8","#581c87","#3b0764"]],["fuchsia",["#fdf4ff","#fae8ff","#f5d0fe","#f0abfc","#e879f9","#d946ef","#c026d3","#a21caf","#86198f","#701a75","#4a044e"]],["pink",["#fdf2f8","#fce7f3","#fbcfe8","#f9a8d4","#f472b6","#ec4899","#db2777","#be185d","#9d174d","#831843","#500724"]],["rose",["#fff1f2","#ffe4e6","#fecdd3","#fda4af","#fb7185","#f43f5e","#e11d48","#be123c","#9f1239","#881337","#4c0519"]]],E=new Map(I.flatMap(([e,t])=>t.map((n,r)=>[`--color-${e}-${y[r]}`,n])));function p(e){return E.get(e)??null}var L=/oklch\(([^)]*)\)/gi,k=/color-mix\(\s*in\s+oklab\s*,\s*var\(\s*(--[\w-]+)\s*\)\s*([0-9.]+)%\s*,\s*transparent\s*\)/gi;function l(e,t,n){return Math.min(n,Math.max(t,e))}function u(e){let t=Number.parseFloat(e);if(Number.isNaN(t))throw new Error(`Invalid numeric token: "${e}"`);return t}function O(e){let t=e.trim().toLowerCase();if(t.endsWith("%"))return l(u(t.slice(0,-1))/100,0,1);let n=u(t);return n>1&&n<=100?l(n/100,0,1):l(n,0,1)}function M(e){let t=e.trim().toLowerCase();return t.endsWith("deg")?u(t.slice(0,-3)):t.endsWith("rad")?u(t.slice(0,-3))*180/Math.PI:t.endsWith("turn")?u(t.slice(0,-4))*360:u(t)}function A(e){if(typeof e!="string")return 1;let t=e.trim().toLowerCase();return t.endsWith("%")?l(u(t.slice(0,-1))/100,0,1):l(u(t),0,1)}function w(e){let t=e%360;return t<0?t+360:t}function N(e){if(typeof e!="string")throw new Error("parseOklch expects a string like oklch(70% 0.2 30)");let t=e.trim(),n=t.toLowerCase();if(!n.startsWith("oklch(")||!n.endsWith(")"))throw new Error(`Invalid OKLCH function: "${e}"`);let r=t.slice(t.indexOf("(")+1,-1).trim(),a=r.indexOf("/"),f=a===-1?r:r.slice(0,a).trim(),o=a===-1?void 0:r.slice(a+1).trim(),c=f.replace(/,/g," ").split(/\s+/).filter(Boolean);if(c.length<3)throw new Error(`Invalid OKLCH channels: "${e}"`);let s=O(c[0]),i=Math.max(0,u(c[1])),d=w(M(c[2])),b=A(o);return{l:s,c:i,h:d,alpha:b}}function _(e,t,n){let r=e+.3963377774*t+.2158037573*n,a=e-.1055613458*t-.0638541728*n,f=e-.0894841775*t-1.291485548*n,o=r*r*r,c=a*a*a,s=f*f*f;return{r:4.0767416621*o-3.3077115913*c+.2309699292*s,g:-1.2684380046*o+2.6097574011*c-.3413193965*s,b:-.0041960863*o-.7034186147*c+1.707614701*s}}function g(e,t,n){let r=n*Math.PI/180,a=t*Math.cos(r),f=t*Math.sin(r);return _(e,a,f)}function x(e){return e.r>=0&&e.r<=1&&e.g>=0&&e.g<=1&&e.b>=0&&e.b<=1}function S(e,t,n){let r=g(e,t,n);if(x(r))return t;let a=0,f=t;for(let o=0;o<24;o+=1){let c=(a+f)/2,s=g(e,c,n);x(s)?a=c:f=c}return a}function m(e){return e<=.0031308?12.92*e:1.055*e**(1/2.4)-.055}function h(e){let t=l(e,0,1);return Math.round(t*255).toString(16).padStart(2,"0")}function $(e){let t=e.trim().toLowerCase();if(!t.startsWith("#"))return null;let n=t.slice(1);return n.length===3?`#${n[0]}${n[0]}${n[1]}${n[1]}${n[2]}${n[2]}`:n.length===4?`#${n[0]}${n[0]}${n[1]}${n[1]}${n[2]}${n[2]}${n[3]}${n[3]}`:n.length===6||n.length===8?`#${n}`:null}function D(e){let t=$(e);if(!t)return null;let n=t.slice(1),r=n.slice(0,6),a=n.length===8?n.slice(6,8):"ff";return{rgbHex:r,alphaHex:a}}function W(e){return h(l(e,0,1))}function P(e,t){let r=Number.parseInt(e,16)/255*l(t/100,0,1);return W(r)}function z(e){if(typeof e=="string")return N(e);if(e&&typeof e=="object"&&typeof e.l=="number"&&typeof e.c=="number"&&typeof e.h=="number")return{l:l(e.l,0,1),c:Math.max(0,e.c),h:w(e.h),alpha:l(e.alpha??1,0,1)};throw new Error("Input must be an OKLCH string or { l, c, h, alpha } object")}function R(e,t={}){let{gamut:n="clip",includeAlpha:r="auto",uppercase:a=!1}=t,f=z(e),o=n==="fit"?S(f.l,f.c,f.h):f.c,c=g(f.l,o,f.h),s=m(c.r),i=m(c.g),d=m(c.b),b=`#${h(s)}${h(i)}${h(d)}`;return(r===!0||r==="always"||r==="auto"&&f.alpha<1)&&(b+=h(f.alpha)),a?b.toUpperCase():b}function F(e){let t=/(--color-[a-z]+-\d{2,3})(\s*:\s*)oklch\(([^)]*)\)/gi;return e.replace(t,(n,r,a)=>{let f=p(r.toLowerCase());return f?`${r}${a}${f}`:n})}function K(e){let t=/(--[\w-]+)\s*:\s*(#[0-9a-fA-F]{3,8})\s*;/g,n=new Map,r=t.exec(e);for(;r;){let a=r[1].toLowerCase(),f=$(r[2]);f&&n.set(a,f),r=t.exec(e)}return n}function V(e,t){return e.replace(k,(n,r,a)=>{let f=String(r).toLowerCase(),o=Number.parseFloat(a);if(Number.isNaN(o))return n;let c=t.get(f)??p(f);if(!c)return n;let s=D(c);if(!s)return n;let i=P(s.alphaHex,o);return`#${s.rgbHex}${i}`})}function C(e,t={}){if(typeof e!="string")throw new Error("replaceOklchInText expects a string");let{onError:n="preserve",...r}=t,f=F(e).replace(L,c=>{try{return R(c,r)}catch(s){if(n==="throw")throw s;return c}}),o=K(f);return V(f,o)}var X=/\.(css|pcss|postcss|scss|sass|less|styl|stylus)(?:$|\?)/i;function B(e,t){return e instanceof RegExp?(e.lastIndex=0,e.test(t)):!1}function H(e,t){return e?e instanceof RegExp?B(e,t):typeof e=="function"?!!e(t):!1:!0}function T(e,t,n){return!(!H(t,e)||n&&H(n,e))}function v(e,t){if(typeof e!="string"||!e.toLowerCase().includes("oklch("))return null;let n=C(e,t);return n===e?null:n}function Q(e={}){let{include:t=X,exclude:n,convertDev:r=!0,convertBuild:a=!0,...f}=e,o="build";return{name:"oklchtohex-vite-plugin",enforce:"post",configResolved(c){o=c.command},transform(c,s){if(o==="serve"&&!r||o==="build"&&!a||!T(s,t,n))return null;let i=v(c,f);return i?{code:i,map:null}:null},generateBundle(c,s){if(a)for(let[i,d]of Object.entries(s)){if(d.type!=="asset"||!T(i,t,n)||typeof d.source!="string")continue;let b=v(d.source,f);b&&(d.source=b)}}}}export{Q as oklchToHexVitePlugin};
1
+ import{replaceOklchInText as m}from"./converter.js";const g=/\.(css|pcss|postcss|scss|sass|less|styl|stylus)(?:$|\?)/i;function y(e,n){return e instanceof RegExp?(e.lastIndex=0,e.test(n)):!1}function a(e,n){return e?e instanceof RegExp?y(e,n):typeof e=="function"?!!e(n):!1:!0}function p(e,n,t){return!(!a(n,e)||t&&a(t,e))}function d(e,n){if(typeof e!="string"||!e.toLowerCase().includes("oklch("))return null;const t=m(e,n);return t===e?null:t}function E(e={}){const{include:n=g,exclude:t,convertDev:v=!0,convertBuild:l=!0,...c}=e;let u="build";return{name:"oklchtohex-vite-plugin",enforce:"post",configResolved(r){u=r.command},transform(r,i){if(u==="serve"&&!v||u==="build"&&!l||!p(i,n,t))return null;const s=d(r,c);return s?{code:s,map:null}:null},generateBundle(r,i){if(l)for(const[s,o]of Object.entries(i)){if(o.type!=="asset"||!p(s,n,t)||typeof o.source!="string")continue;const f=d(o.source,c);f&&(o.source=f)}}}}export{E as oklchToHexVitePlugin};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oklchtohex",
3
- "version": "0.6.0",
3
+ "version": "0.6.1",
4
4
  "description": "Convert OKLCH colors to HEX as a JavaScript package.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",