1 line
16 KiB
JavaScript
1 line
16 KiB
JavaScript
tailwind.config=function(){const slateColorStep=[{number:50,hexcode:"#f8fafc"},{number:100,hexcode:"#f1f5f9"},{number:200,hexcode:"#e2e8f0"},{number:300,hexcode:"#cbd5e1"},{number:400,hexcode:"#94a3b8"},{number:500,hexcode:"#64748b"},{number:600,hexcode:"#475569"},{number:700,hexcode:"#334155"},{number:800,hexcode:"#1e293b"},{number:900,hexcode:"#0f172a"},{number:950,hexcode:"#020617"}];const grayColorStep=[{number:50,hexcode:"#f9fafb"},{number:100,hexcode:"#f3f4f6"},{number:200,hexcode:"#e5e7eb"},{number:300,hexcode:"#d1d5db"},{number:400,hexcode:"#9ca3af"},{number:500,hexcode:"#6b7280"},{number:600,hexcode:"#4b5563"},{number:700,hexcode:"#374151"},{number:800,hexcode:"#1f2937"},{number:900,hexcode:"#111827"},{number:950,hexcode:"#030712"}];const zincColorStep=[{number:50,hexcode:"#fafafa"},{number:100,hexcode:"#f4f4f5"},{number:200,hexcode:"#e4e4e7"},{number:300,hexcode:"#d4d4d8"},{number:400,hexcode:"#a1a1aa"},{number:500,hexcode:"#71717a"},{number:600,hexcode:"#52525b"},{number:700,hexcode:"#3f3f46"},{number:800,hexcode:"#27272a"},{number:900,hexcode:"#18181b"},{number:950,hexcode:"#09090b"}];const neutralColorStep=[{number:50,hexcode:"#fafafa"},{number:100,hexcode:"#f5f5f5"},{number:200,hexcode:"#e5e5e5"},{number:300,hexcode:"#d4d4d4"},{number:400,hexcode:"#a3a3a3"},{number:500,hexcode:"#737373"},{number:600,hexcode:"#525252"},{number:700,hexcode:"#404040"},{number:800,hexcode:"#262626"},{number:900,hexcode:"#171717"},{number:950,hexcode:"#0a0a0a"}];const stoneColorStep=[{number:50,hexcode:"#fafaf9"},{number:100,hexcode:"#f5f5f4"},{number:200,hexcode:"#e7e5e4"},{number:300,hexcode:"#d6d3d1"},{number:400,hexcode:"#a8a29e"},{number:500,hexcode:"#78716c"},{number:600,hexcode:"#57534e"},{number:700,hexcode:"#44403c"},{number:800,hexcode:"#292524"},{number:900,hexcode:"#1c1917"},{number:950,hexcode:"#0c0a09"}];const redColorStep=[{number:50,hexcode:"#fef2f2"},{number:100,hexcode:"#fee2e2"},{number:200,hexcode:"#fecaca"},{number:300,hexcode:"#fca5a5"},{number:400,hexcode:"#f87171"},{number:500,hexcode:"#ef4444"},{number:600,hexcode:"#dc2626"},{number:700,hexcode:"#b91c1c"},{number:800,hexcode:"#991b1b"},{number:900,hexcode:"#7f1d1d"},{number:950,hexcode:"#450a0a"}];const orangeColorStep=[{number:50,hexcode:"#fff7ed"},{number:100,hexcode:"#ffedd5"},{number:200,hexcode:"#fed7aa"},{number:300,hexcode:"#fdba74"},{number:400,hexcode:"#fb923c"},{number:500,hexcode:"#f97316"},{number:600,hexcode:"#ea580c"},{number:700,hexcode:"#c2410c"},{number:800,hexcode:"#9a3412"},{number:900,hexcode:"#7c2d12"},{number:950,hexcode:"#431407"}];const amberColorStep=[{number:50,hexcode:"#fffbeb"},{number:100,hexcode:"#fef3c7"},{number:200,hexcode:"#fde68a"},{number:300,hexcode:"#fcd34d"},{number:400,hexcode:"#fbbf24"},{number:500,hexcode:"#f59e0b"},{number:600,hexcode:"#d97706"},{number:700,hexcode:"#b45309"},{number:800,hexcode:"#92400e"},{number:900,hexcode:"#78350f"},{number:950,hexcode:"#451a03"}];const yellowColorStep=[{number:50,hexcode:"#fefce8"},{number:100,hexcode:"#fef9c3"},{number:200,hexcode:"#fef08a"},{number:300,hexcode:"#fde047"},{number:400,hexcode:"#facc15"},{number:500,hexcode:"#eab308"},{number:600,hexcode:"#ca8a04"},{number:700,hexcode:"#a16207"},{number:800,hexcode:"#854d0e"},{number:900,hexcode:"#713f12"},{number:950,hexcode:"#422006"}];const limeColorStep=[{number:50,hexcode:"#f7fee7"},{number:100,hexcode:"#ecfccb"},{number:200,hexcode:"#d9f99d"},{number:300,hexcode:"#bef264"},{number:400,hexcode:"#a3e635"},{number:500,hexcode:"#84cc16"},{number:600,hexcode:"#65a30d"},{number:700,hexcode:"#4d7c0f"},{number:800,hexcode:"#3f6212"},{number:900,hexcode:"#365314"},{number:950,hexcode:"#1a2e05"}];const greenColorStep=[{number:50,hexcode:"#f0fdf4"},{number:100,hexcode:"#dcfce7"},{number:200,hexcode:"#bbf7d0"},{number:300,hexcode:"#86efac"},{number:400,hexcode:"#4ade80"},{number:500,hexcode:"#22c55e"},{number:600,hexcode:"#16a34a"},{number:700,hexcode:"#15803d"},{number:800,hexcode:"#166534"},{number:900,hexcode:"#14532d"},{number:950,hexcode:"#052e16"}];const emeraldColorStep=[{number:50,hexcode:"#ecfdf5"},{number:100,hexcode:"#d1fae5"},{number:200,hexcode:"#a7f3d0"},{number:300,hexcode:"#6ee7b7"},{number:400,hexcode:"#34d399"},{number:500,hexcode:"#10b981"},{number:600,hexcode:"#059669"},{number:700,hexcode:"#047857"},{number:800,hexcode:"#065f46"},{number:900,hexcode:"#064e3b"},{number:950,hexcode:"#022c22"}];const tealColorStep=[{number:50,hexcode:"#f0fdfa"},{number:100,hexcode:"#ccfbf1"},{number:200,hexcode:"#99f6e4"},{number:300,hexcode:"#5eead4"},{number:400,hexcode:"#2dd4bf"},{number:500,hexcode:"#14b8a6"},{number:600,hexcode:"#0d9488"},{number:700,hexcode:"#0f766e"},{number:800,hexcode:"#115e59"},{number:900,hexcode:"#134e4a"},{number:950,hexcode:"#042f2e"}];const cyanColorStep=[{number:50,hexcode:"#ecfeff"},{number:100,hexcode:"#cffafe"},{number:200,hexcode:"#a5f3fc"},{number:300,hexcode:"#67e8f9"},{number:400,hexcode:"#22d3ee"},{number:500,hexcode:"#06b6d4"},{number:600,hexcode:"#0891b2"},{number:700,hexcode:"#0e7490"},{number:800,hexcode:"#155e75"},{number:900,hexcode:"#164e63"},{number:950,hexcode:"#083344"}];const skyColorStep=[{number:50,hexcode:"#f0f9ff"},{number:100,hexcode:"#e0f2fe"},{number:200,hexcode:"#bae6fd"},{number:300,hexcode:"#7dd3fc"},{number:400,hexcode:"#38bdf8"},{number:500,hexcode:"#0ea5e9"},{number:600,hexcode:"#0284c7"},{number:700,hexcode:"#0369a1"},{number:800,hexcode:"#075985"},{number:900,hexcode:"#0c4a6e"},{number:950,hexcode:"#082f49"}];const blueColorStep=[{number:50,hexcode:"#eff6ff"},{number:100,hexcode:"#dbeafe"},{number:200,hexcode:"#bfdbfe"},{number:300,hexcode:"#93c5fd"},{number:400,hexcode:"#60a5fa"},{number:500,hexcode:"#3b82f6"},{number:600,hexcode:"#2563eb"},{number:700,hexcode:"#1d4ed8"},{number:800,hexcode:"#1e40af"},{number:900,hexcode:"#1e3a8a"},{number:950,hexcode:"#172554"}];const indigoColorStep=[{number:50,hexcode:"#eef2ff"},{number:100,hexcode:"#e0e7ff"},{number:200,hexcode:"#c7d2fe"},{number:300,hexcode:"#a5b4fc"},{number:400,hexcode:"#818cf8"},{number:500,hexcode:"#6366f1"},{number:600,hexcode:"#4f46e5"},{number:700,hexcode:"#4338ca"},{number:800,hexcode:"#3730a3"},{number:900,hexcode:"#312e81"},{number:950,hexcode:"#1e1b4b"}];const violetColorStep=[{number:50,hexcode:"#f5f3ff"},{number:100,hexcode:"#ede9fe"},{number:200,hexcode:"#ddd6fe"},{number:300,hexcode:"#c4b5fd"},{number:400,hexcode:"#a78bfa"},{number:500,hexcode:"#8b5cf6"},{number:600,hexcode:"#7c3aed"},{number:700,hexcode:"#6d28d9"},{number:800,hexcode:"#5b21b6"},{number:900,hexcode:"#4c1d95"},{number:950,hexcode:"#2e1065"}];const purpleColorStep=[{number:50,hexcode:"#faf5ff"},{number:100,hexcode:"#f3e8ff"},{number:200,hexcode:"#e9d5ff"},{number:300,hexcode:"#d8b4fe"},{number:400,hexcode:"#c084fc"},{number:500,hexcode:"#a855f7"},{number:600,hexcode:"#9333ea"},{number:700,hexcode:"#7e22ce"},{number:800,hexcode:"#6b21a8"},{number:900,hexcode:"#581c87"},{number:950,hexcode:"#3b0764"}];const fuchsiaColorStep=[{number:50,hexcode:"#fdf4ff"},{number:100,hexcode:"#fae8ff"},{number:200,hexcode:"#f5d0fe"},{number:300,hexcode:"#f0abfc"},{number:400,hexcode:"#e879f9"},{number:500,hexcode:"#d946ef"},{number:600,hexcode:"#c026d3"},{number:700,hexcode:"#a21caf"},{number:800,hexcode:"#86198f"},{number:900,hexcode:"#701a75"},{number:950,hexcode:"#4a044e"}];const pinkColorStep=[{number:50,hexcode:"#fdf2f8"},{number:100,hexcode:"#fce7f3"},{number:200,hexcode:"#fbcfe8"},{number:300,hexcode:"#f9a8d4"},{number:400,hexcode:"#f472b6"},{number:500,hexcode:"#ec4899"},{number:600,hexcode:"#db2777"},{number:700,hexcode:"#be185d"},{number:800,hexcode:"#9d174d"},{number:900,hexcode:"#831843"},{number:950,hexcode:"#500724"}];const roseColorStep=[{number:50,hexcode:"#fff1f2"},{number:100,hexcode:"#ffe4e6"},{number:200,hexcode:"#fecdd3"},{number:300,hexcode:"#fda4af"},{number:400,hexcode:"#fb7185"},{number:500,hexcode:"#f43f5e"},{number:600,hexcode:"#e11d48"},{number:700,hexcode:"#be123c"},{number:800,hexcode:"#9f1239"},{number:900,hexcode:"#881337"},{number:950,hexcode:"#4c0519"}];const blackColorStpe=[{number:50,hexcode:"#f6f6f6"},{number:100,hexcode:"#e7e7e7"},{number:200,hexcode:"#d1d1d1"},{number:300,hexcode:"#b0b0b0"},{number:400,hexcode:"#888888"},{number:500,hexcode:"#6d6d6d"},{number:600,hexcode:"#5d5d5d"},{number:700,hexcode:"#4f4f4f"},{number:800,hexcode:"#454545"},{number:900,hexcode:"#3d3d3d"},{number:950,hexcode:"#000000"}];const whiteColorStpe=[{number:50,hexcode:"#ffffff"},{number:100,hexcode:"#efefef"},{number:200,hexcode:"#dcdcdc"},{number:300,hexcode:"#bdbdbd"},{number:400,hexcode:"#989898"},{number:500,hexcode:"#7c7c7c"},{number:600,hexcode:"#656565"},{number:700,hexcode:"#525252"},{number:800,hexcode:"#464646"},{number:900,hexcode:"#3d3d3d"},{number:950,hexcode:"#292929"}];const colorSteps=[{name:"Slate",id:"slate",shades:slateColorStep},{name:"Gray",id:"gray",shades:grayColorStep},{name:"Zinc",id:"zinc",shades:zincColorStep},{name:"Neutral",id:"neutral",shades:neutralColorStep},{name:"Stone",id:"stone",shades:stoneColorStep},{name:"Red",id:"red",shades:redColorStep},{name:"Orange",id:"orange",shades:orangeColorStep},{name:"Amber",id:"amber",shades:amberColorStep},{name:"Yellow",id:"yellow",shades:yellowColorStep},{name:"Lime",id:"lime",shades:limeColorStep},{name:"Green",id:"green",shades:greenColorStep},{name:"Emerald",id:"emerald",shades:emeraldColorStep},{name:"Teal",id:"teal",shades:tealColorStep},{name:"Cyan",id:"cyan",shades:cyanColorStep},{name:"Sky",id:"sky",shades:skyColorStep},{name:"Blue",id:"blue",shades:blueColorStep},{name:"Indigo",id:"indigo",shades:indigoColorStep},{name:"Violet",id:"violet",shades:violetColorStep},{name:"Purple",id:"purple",shades:purpleColorStep},{name:"Fuchsia",id:"fuchsia",shades:fuchsiaColorStep},{name:"Pink",id:"pink",shades:pinkColorStep},{name:"Rose",id:"rose",shades:roseColorStep},{name:"Black",id:"black",shades:blackColorStpe},{name:"White",id:"white",shades:whiteColorStpe}];const k=29**3/3**3;const e=6**3/29**3;const f=value=>value>e?Math.cbrt(value):(k*value+16)/116;const D50={X:.3457/.3585,Y:1,Z:(1-.3457-.3585)/.3585};function convertXyz50ToLab(xyz){const{x,y,z}=xyz;const f0=f(x/D50.X);const f1=f(y/D50.Y);const f2=f(z/D50.Z);return{L:116*f1-16,a:500*(f0-f1),b:200*(f1-f2)}}function srgbToLinear(color){if(color<=.04045){return color/12.92}return((color+.055)/1.055)**2.4}function convertRgbToXyz50(rgb){const{r,g,b}={r:srgbToLinear(rgb.r),g:srgbToLinear(rgb.g),b:srgbToLinear(rgb.b)};const res={x:.436065742824811*r+.3851514688337912*g+.14307845442264197*b,y:.22249319175623702*r+.7168870538238823*g+.06061979053616537*b,z:.013923904500943465*r+.09708128566574634*g+.7140993584005155*b};return res}function convertRgbToLab(rgb){const res=convertXyz50ToLab(convertRgbToXyz50(rgb));if(rgb.r===rgb.b&&rgb.b===rgb.g){res.a=0;res.b=0}return res}function convertIntRgbToFloatRgb(rgb){return{r:rgb.r/255,g:rgb.g/255,b:rgb.b/255,a:rgb.a??1}}function hexToRgb(hex){const result=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i.exec(hex);if(!result)throw Error("hex 鍊间笉鍚堟硶");const r=parseInt(result[1],16);const g=parseInt(result[2],16);const b=parseInt(result[3],16);const a=result[4]?parseInt(result[4],16)/255:1;return{r:r,g:g,b:b,a:a}}function deg2Rad(deg){return deg*Math.PI/180}function calculateDeltaE2000(Lab1,Lab2){const[l1,a1,b1]=Lab1;const[l2,a2,b2]=Lab2;const kl=1;const kc=1;const kh=1;const c1=Math.sqrt(a1*a1+b1*b1);const c2=Math.sqrt(a2*a2+b2*b2);const ac1c2=(c1+c2)/2;const g=.5*(1-Math.sqrt(ac1c2**7/(ac1c2**7+25**7)));const a1p=(1+g)*a1;const a2p=(1+g)*a2;const c1p=Math.sqrt(a1p**2+b1**2);const c2p=Math.sqrt(a2p**2+b2**2);const h1p=Math.atan2(b1,a1p)*180/Math.PI;const h2p=Math.atan2(b2,a2p)*180/Math.PI;const deltaLp=l2-l1;const deltaCp=c2p-c1p;let deltahp;if(c1p*c2p===0){deltahp=0}else{const h2pMinush1p=h2p-h1p;if(Math.abs(h2pMinush1p)<=180){deltahp=h2pMinush1p}else if(h2pMinush1p>180){deltahp=h2pMinush1p-360}else{deltahp=h2pMinush1p+360}}const deltaHp=2*Math.sqrt(c1p*c2p)*Math.sin(deg2Rad(deltahp/2));const cPBar=(c1p+c2p)/2;let hpBar;if(c1p*c2p===0){hpBar=h1p+h2p}else{const h1pMinush2p=Math.abs(h1p-h2p);if(h1p+h2p<=360){hpBar=(h1p+h2p)/2}else if(h1pMinush2p>180){hpBar=(h1p+h2p+360)/2}else{hpBar=(h1p+h2p-360)/2}}const t=1-.17*Math.cos(deg2Rad(hpBar-30))+.24*Math.cos(deg2Rad(2*hpBar))+.32*Math.cos(deg2Rad(3*hpBar+6))-.2*Math.cos(deg2Rad(4*hpBar-63));const deltaTheta=30*Math.exp(-(((hpBar-275)/25)**2));const rC=2*Math.sqrt(cPBar**7/(cPBar**7+25**7));const sC=1+.045*cPBar;const sH=1+.015*cPBar*t;const rT=-Math.sin(deg2Rad(2*deltaTheta))*rC;const deltaE00=Math.sqrt((deltaLp/(kl*1))**2+(deltaCp/(kc*sC))**2+(deltaHp/(kh*sH))**2+rT*(deltaCp/(kc*sC))*(deltaHp/(kh*sH)));return deltaE00}function getSimilarColorAndColorStepByHex(hex){let minSimilarNum=null;let similarColorStep=null;const lab2=convertRgbToLab(convertIntRgbToFloatRgb(hexToRgb(hex)));for(let i=0;i<colorSteps.length;i++){const colorStep=colorSteps[i].shades;for(let j=0;j<colorStep.length;j++){const shade=colorStep[j];const lab1=convertRgbToLab(convertIntRgbToFloatRgb(hexToRgb(shade.hexcode)));const similarNum=calculateDeltaE2000([lab1.L,lab1.a,lab1.b],[lab2.L,lab2.a,lab2.b]);if(minSimilarNum==null||similarNum<minSimilarNum){minSimilarNum=similarNum;similarColorStep=colorStep}}}return{similarColorStep:similarColorStep}}const borderRadiusMap={small:"4px",medium:"8px",large:"9999px"};const script=document.currentScript;const primaryDefault=script.getAttribute("data-color");const borderRadius=borderRadiusMap[script.getAttribute("data-border-radius")]??{};const primary={};if(primaryDefault){const{similarColorStep}=getSimilarColorAndColorStepByHex(primaryDefault);similarColorStep.forEach(item=>{const{number,hexcode}=item;primary[number]=hexcode});primary["DEFAULT"]=primaryDefault}const theme={theme:{darkMode:"selector",extend:{colors:{custom:primary},borderRadius:{button:borderRadius}}}};return theme}();window.handleAIError=()=>{const divs=Array.from(document.querySelectorAll("div"));const forms_=Array.from(document.querySelectorAll("form"));const inputButtonComponent=[...divs,...forms_];const forms=inputButtonComponent.filter(form=>form.querySelectorAll("input").length===1&&form.querySelectorAll("button").length===1);forms.forEach(form=>{const input=form.querySelector("input");const button=form.querySelector("button");const isComponent=Array.from(input.classList).some(item=>item.includes("rounded-l"));if(isComponent){button.classList.remove("!rounded-button");button.classList.remove("rounded-button");Array.from(input.classList).forEach(className=>{if(className.includes("mx")||className.includes("mr")){input.classList.remove(className)}});Array.from(button.classList).forEach(className=>{if(className.includes("mx")||className.includes("ml")){button.classList.remove(className)}});const divs=Array.from(form.querySelectorAll("div")).filter(div=>div.children.length===1&&(form.querySelectorAll("input").length===1||form.querySelectorAll("button").length===1));divs.forEach(div=>{Array.from(div.classList).forEach(className=>{if(className.includes("mx")||className.includes("ml")||className.includes("mr")){div.classList.remove(className)}})})}});divs.forEach(div=>{div.classList.remove("!rounded-button");div.classList.remove("rounded-button")});Array.from(document.querySelectorAll("textarea")).forEach(textarea=>{textarea.classList.remove("!rounded-button");textarea.classList.remove("rounded-button")});Array.from(document.querySelectorAll("img")).forEach(textarea=>{textarea.classList.remove("!rounded-button");textarea.classList.remove("rounded-button")});Array.from(document.querySelectorAll("input")).forEach(input=>{input.classList.remove("!rounded-button");input.classList.remove("rounded-button")});Array.from(document.querySelectorAll("select")).forEach(select=>{select.classList.remove("!rounded-button");select.classList.remove("rounded-button")});Array.from(document.querySelectorAll("section")).forEach(section=>{section.classList.remove("!rounded-button");section.classList.remove("rounded-button")});Array.from(document.querySelectorAll("a")).forEach(a=>{if(a.children.length>1){a.classList.remove("!rounded-button");a.classList.remove("rounded-button")}});const divAComponent=divs.filter(div=>{const children=div.children;return children.length===1&&(children[0].tagName.toLowerCase()==="button"||children[0].tagName.toLowerCase()==="a")});divAComponent.forEach(div=>{let shadowClassName="";Array.from(div.classList).forEach(className=>{if(className.includes("shadow")){shadowClassName=className;div.classList.remove(className)}});if(shadowClassName){const children=div.querySelector("a")??div.querySelector("button");children.classList.add(shadowClassName)}})};document.addEventListener("DOMContentLoaded",()=>{window.handleAIError()}); |