tweakit 0.3.1 → 0.4.0

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.
Files changed (35) hide show
  1. package/README.md +8 -8
  2. package/dist/tweaks/{bezier-Z5GKRM4D.js → bezier-KSA2VTVT.js} +1 -1
  3. package/dist/tweaks/chunk-HWQKSB7T.js +1 -0
  4. package/dist/tweaks/chunk-SIIHIBXV.js +1 -0
  5. package/dist/tweaks/chunk-WWCMYF2Q.js +1 -0
  6. package/dist/tweaks/colour-L2QYS74L.js +1 -0
  7. package/dist/tweaks/core.js +1 -1
  8. package/dist/tweaks/gradient-AHHDJIIU.js +1 -0
  9. package/dist/tweaks/heavy-ZZA3NS5O.js +1 -0
  10. package/dist/tweaks/{image-DBOIYZDB.js → image-ZSAP6BIK.js} +1 -1
  11. package/dist/tweaks/interval-4KQVZGAX.js +1 -0
  12. package/dist/tweaks/{monitor-NRXVKYAV.js → monitor-5CFBIGGT.js} +1 -1
  13. package/dist/tweaks/motion-5UMJIBOJ.js +1 -0
  14. package/dist/tweaks/plot-KQGIWQHO.js +2 -0
  15. package/dist/tweaks/{point-OSHHB6KE.js → point-4J4HHM2Z.js} +1 -1
  16. package/dist/tweaks/shadow-RAXIV6FG.js +1 -0
  17. package/dist/tweaks/sides-EI7BN5Q6.js +1 -0
  18. package/dist/tweaks/spring-JGHWZBNF.js +1 -0
  19. package/dist/tweaks/tabs-RM7NR6CO.js +1 -0
  20. package/dist/tweaks.css +1 -1
  21. package/dist/tweaks.js +3 -3
  22. package/dist/types/tweaks/core.d.ts +1 -0
  23. package/dist/types/tweaks/easing.d.ts +29 -0
  24. package/dist/types/tweaks/types.d.ts +121 -5
  25. package/package.json +1 -1
  26. package/dist/tweaks/chunk-36ETNTXF.js +0 -1
  27. package/dist/tweaks/chunk-AUZVP7BC.js +0 -1
  28. package/dist/tweaks/chunk-NGLZEK5U.js +0 -1
  29. package/dist/tweaks/colour-KNV4JMLD.js +0 -1
  30. package/dist/tweaks/gradient-7SU3OS46.js +0 -1
  31. package/dist/tweaks/heavy-GRI2MMP6.js +0 -1
  32. package/dist/tweaks/interval-2WMOCHYW.js +0 -1
  33. package/dist/tweaks/plot-YTKMVUH7.js +0 -2
  34. package/dist/tweaks/spring-NNNUQHGF.js +0 -1
  35. package/dist/tweaks/tabs-NWHJSEFB.js +0 -1
package/dist/tweaks.js CHANGED
@@ -1,4 +1,4 @@
1
1
  /* tweakit — MIT © Ryan Kiley. Toolbar and control icons from Hugeicons (MIT); see THIRD-PARTY-NOTICES.md in the tweakit package. */
2
- var qe=t=>t.replace(/([A-Z])/g," $1").replace(/^./,e=>e.toUpperCase()).trim(),T=(t,e,n)=>Math.min(n,Math.max(e,t)),wo=t=>typeof t=="string"&&(/^#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(t.trim())||/^(oklch|oklab|rgba?|hsla?|hwb|lab|lch|color)\(/i.test(t.trim()));var Kt=t=>{let e=String(t),n=/e-(\d+)$/i.exec(e);if(n)return Math.min(20,Number(n[1])+(e.split("e")[0].split(".")[1]||"").length);let o=e.indexOf(".");return o===-1?0:Math.min(20,e.length-o-1)},le=(t,e,n)=>{if(!(n>0))return t;let o=Kt(n),r=Number((+e).toFixed(o)),s=Math.round((t-r)/n);return Number.isFinite(s)?Number((r+s*n).toFixed(o)):t},ye=(t,e,n,o=t)=>{let r=a=>le(a,o,n),s=Number.isFinite(t)?r(t):-1/0,i=Number.isFinite(e)?r(e):1/0;return s<t&&(s=r(s+n)),i>e&&(i=r(i-n)),s>i?[t,t]:[s,i]},ve=(t,e)=>{let n=e-t;return n<=1?.01:n<=10?.1:n<=100?1:10},Ye=(t,e,n,o=0,r=null)=>{let s=+t,i=+e,a=+n;if(Number.isFinite(s)||(s=o),Number.isFinite(i)||(i=r??s+100),i<s){let l=s;s=i,i=l}return(!(a>0)||a>i-s)&&(a=ve(s,i)),{min:s,max:i,step:a}},ce=(t,e,n,o,r,s=null)=>{let i=t.shiftKey?10:1;switch(t.key){case"ArrowRight":case"ArrowUp":return e+n*i;case"ArrowLeft":case"ArrowDown":return e-n*i;case"PageUp":return s!=null?e+s:null;case"PageDown":return s!=null?e-s:null;case"Home":return o;case"End":return r}return null},We=(t,e,n,o,r=0)=>{let s=t.offsetLeft,i=s+t.offsetWidth,a=e.offsetLeft,l=a+e.offsetWidth;return n<i&&n+o>s||n<l+r&&n+o>a-r},Me=t=>t>=0?[0,t<=1?1:t*3||100]:[t>=-1?-1:t*3,0],qt=t=>t==null?void 0:typeof t=="object"?t.value:t,He=t=>{try{return JSON.stringify(t)}catch{return String(t)}},Pn=t=>t==null?"":typeof t=="string"?qe(t):typeof t=="object"?t.label??(t.value!==void 0?String(t.value):He(t)):String(t),h=(t,e,n)=>{let o=document.createElement(t);return e&&(o.className=e),n!=null&&(o.innerHTML=n),o},wt=(t,e)=>{let n=h("button",t,e);return n.type="button",n},st=(t,e,n)=>{let o=h(t,e);return o.textContent=n,t==="button"&&(o.type="button"),o},Nn=t=>["pointerdown","pointermove","pointerup"].forEach(e=>t.addEventListener(e,n=>n.stopPropagation())),Tt=t=>{requestAnimationFrame(t),document.fonts&&document.fonts.ready&&document.fonts.ready.then(t)},At=(t,e,n)=>{let o=t.isConnected;o||requestAnimationFrame(()=>{t.isConnected&&(o=!0)});let r=i=>{if(!t.isConnected){(o||t.closest("[data-tw-destroyed]"))&&s();return}o=!0,n(i)},s=()=>e.forEach(([i,a])=>i.removeEventListener(a,r));return e.forEach(([i,a])=>i.addEventListener(a,r)),s},Fn=()=>requestAnimationFrame(()=>window.dispatchEvent(new Event("tw-reflow"))),Ue=(t,e)=>{t.addEventListener("pointerenter",()=>{t.classList.add("is-hover"),e&&e()}),t.addEventListener("pointerleave",()=>t.classList.remove("is-hover"))},Re=!1;typeof document<"u"&&(document.addEventListener("pointerdown",()=>{Re=!0},!0),document.addEventListener("keydown",()=>{Re=!1},!0));var Rt=t=>{t.addEventListener("focus",()=>t.classList.toggle("tw-focus-quiet",Re)),t.addEventListener("blur",()=>t.classList.remove("tw-focus-quiet"))},_n=(t,e,{width:n,fallbackH:o=300,gap:r=6,align:s="start",prefer:i="below"}={})=>{let a=t.getBoundingClientRect();n==="match"&&(e.style.width=a.width+"px");let l=n==="match"?a.width:e.offsetWidth||n||0,b=s==="end"?a.right-l:s==="center"?a.left+a.width/2-l/2:a.left;e.style.left=Math.max(8,Math.min(b,window.innerWidth-l-8))+"px";let u=e.offsetHeight||o,c=window.innerHeight-a.bottom,f=a.top,y=u+12,E=c>=y,p=f>=y,v=(i==="above"?p||!E&&f>=c:!E&&(p||f>c))?a.top-u-r:a.bottom+r;e.style.top=T(v,r,window.innerHeight-u-r)+"px"},jr=Object.assign(Object.create(null),{accent:"--tw-accent",onAccent:"--tw-on-accent",base:"--tw-base",dropdownBg:"--tw-dropdown-bg",surface:"--tw-surface",surfaceHover:"--tw-surface-hover",surfaceActive:"--tw-surface-active",border:"--tw-border",borderHover:"--tw-border-hover",selection:"--tw-selection",title:"--tw-text-root",section:"--tw-text-section",text:"--tw-text-primary",label:"--tw-text-label",textMuted:"--tw-text-secondary",textFaint:"--tw-text-tertiary",focus:"--tw-text-focus",success:"--tw-success",danger:"--tw-danger",shadow:"--tw-shadow-dropdown",shadowPanel:"--tw-shadow-panel",shadowPanelLifted:"--tw-shadow-panel-lifted",font:"--tw-font-sans",fontMono:"--tw-font-mono",radius:"--tw-radius",density:"--tw-row-height"}),Br=new Set(["radius","density"]),An=t=>(t/=255,t<=.03928?t/12.92:((t+.055)/1.055)**2.4),Vr=t=>{t=String(t).trim();let e=/^#([0-9a-f]{3})$/i.exec(t);if(e)return e[1].split("").map(n=>parseInt(n+n,16));if(e=/^#([0-9a-f]{6})$/i.exec(t),e)return[0,2,4].map(n=>parseInt(e[1].slice(n,n+2),16));if(e=/^rgba?\(([^)]+)\)/i.exec(t),e){let n=e[1].split(/[\s,/]+/).filter(Boolean).map(parseFloat);return[n[0],n[1],n[2]]}return null},Xr=t=>{let e=Vr(t);if(!e||e.some(o=>!Number.isFinite(o)))return"#ffffff";let n=.2126*An(e[0])+.7152*An(e[1])+.0722*An(e[2]);return 1.05/(n+.05)>=(n+.05)/.0571?"#ffffff":"#161616"},$n=t=>{if(!t||typeof t!="object")return null;let e={};for(let[n,o]of Object.entries(t)){if(n.startsWith("--")){e[n]=String(o);continue}let r=jr[n];r&&(e[r]=Br.has(n)&&typeof o=="number"?`${o}px`:String(o))}return e["--tw-accent"]&&!e["--tw-on-accent"]&&(e["--tw-on-accent"]=Xr(e["--tw-accent"])),Object.keys(e).length?e:null},Je=(t,e)=>{if(t){if(t._twAppliedVars)for(let n of t._twAppliedVars)t.style.removeProperty(n);if(t._twAppliedVars=e?Object.keys(e):null,e)for(let n in e)t.style.setProperty(n,e[n])}},Rn=(t,e)=>{let n=e?.closest('[data-tw-scheme="light"]')?"light":e?.closest('[data-tw-scheme="dark"]')?"dark":null;n?t.setAttribute("data-tw-scheme",n):t.removeAttribute("data-tw-scheme")},ae=(t,e)=>{Je(t,e?.closest(".tw-panel")?._twTheme),Rn(t,e)},Zt=null,On=null,yo=t=>{Zt&&(!t||t.contains(On))&&Zt()};function Bt(t,e,n,o={}){let r=!1,s=null;n.classList.add("tw-portal"),n.addEventListener("pointerdown",w=>e.closest(".tw-panel")?._twEditPointer?.(w),!0),Nn(n);let i=()=>_n(e,n,{width:o.width,fallbackH:o.fallbackH,gap:o.gap,align:o.align}),a=()=>{if(r){if(!t.isConnected)return p();i(),o.onReflow&&o.onReflow()}},l=w=>{!t.contains(w.target)&&!n.contains(w.target)&&p()},b=w=>{w.key==="Escape"&&r&&(p(),e.focus())},u=w=>{if(!r)return;let v=w.relatedTarget;(v?t.contains(v)||n.contains(v):Re)||(p(),v&&!e.closest(".tw-panel")?.contains(v)&&setTimeout(()=>{!r&&document.activeElement===v&&e.focus()},0))};t.addEventListener("focusout",u),n.addEventListener("focusout",u);let c=()=>n.querySelector('button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [href], [tabindex]:not([tabindex="-1"])'),f=()=>ae(n,t),y=w=>{w.every(v=>v.target===n)||f()},E=()=>{Zt&&Zt!==p&&Zt(),Zt=p,On=e,r=!0,t.classList.add("is-open"),e.setAttribute("aria-expanded","true"),document.body.appendChild(n),ae(n,t),window.addEventListener("tw-retheme",f),typeof MutationObserver=="function"&&(s=new MutationObserver(y),s.observe(document.documentElement,{subtree:!0,attributes:!0,attributeFilter:["data-tw-scheme"]})),i(),requestAnimationFrame(()=>{if(r&&(n.classList.add("is-open"),o.onOpen&&o.onOpen(),i(),!n.contains(document.activeElement))){let w=o.initialFocus&&o.initialFocus()||c();w&&w.focus({focusVisible:!Re})}}),requestAnimationFrame(function w(){if(r){if(!t.isConnected)return p();requestAnimationFrame(w)}}),setTimeout(()=>{r&&document.addEventListener("pointerdown",l,!0)},0),document.addEventListener("keydown",b),window.addEventListener("scroll",a,!0),window.addEventListener("resize",a)},p=()=>{Zt===p&&(Zt=null,On=null),n.contains(document.activeElement)&&e.focus(),r=!1,t.classList.remove("is-open"),n.classList.remove("is-open"),e.setAttribute("aria-expanded","false"),document.removeEventListener("pointerdown",l,!0),document.removeEventListener("keydown",b),window.removeEventListener("scroll",a,!0),window.removeEventListener("resize",a),window.removeEventListener("tw-retheme",f),s&&(s.disconnect(),s=null),setTimeout(()=>{r||n.remove()},200)};return e.addEventListener("click",()=>{e.disabled||(r?p():E())}),{open:E,close:p,isOpen:()=>r,reflow:a}}var Ze=(t,e)=>{if(t=t.toLowerCase(),t.includes(e))return!0;if(e.length<3)return!1;let n=e.length,o=t.length,r=new Array(o+1).fill(0);for(let s=1;s<=n;s++){let i=[s];for(let a=1;a<=o;a++)i[a]=Math.min(r[a]+1,i[a-1]+1,r[a-1]+(e[s-1]===t[a-1]?0:1));r=i}return Math.min(...r)<=(e.length<6?1:2)},xe=typeof matchMedia=="function"?matchMedia("(prefers-reduced-motion: reduce)"):{matches:!1},De="cubic-bezier(0.22, 1, 0.36, 1)",Hn="cubic-bezier(0.34, 1.2, 0.64, 1)",Gr=(t,e)=>{xe.matches||typeof t.animate!="function"||(t.style.transformOrigin=e>0?"left center":"right center",t.animate([{transform:"scaleX(1)"},{transform:"scaleX(1.18)"},{transform:"scaleX(1)"}],{duration:300,easing:De}))},Dn=(t,e,n)=>{let o=t.querySelector('[data-active="true"]');if(!o)return;let r=o.offsetLeft,s=o.offsetWidth,i=parseFloat(e.style.left);e.style.left=r+"px",e.style.width=s+"px",n&&Number.isFinite(i)&&i!==r&&Gr(e,r>i?1:-1)},Qe=(t,e)=>{t.classList.toggle("is-disabled",e);for(let n of t.children)n.inert=e},Ee=(t,e,n,o)=>{t.classList.toggle("is-collapsed",o),e.setAttribute("aria-expanded",String(!o)),n.inert=o},tn=(t,e)=>{let n=t.findIndex(o=>o.dataset.value===String(e));return n<0&&t.length?0:n},In=(t,e)=>{let n=tn(t,e);t.forEach((o,r)=>{let s=o.dataset.value===String(e);o.dataset.active=String(s),o.setAttribute("aria-checked",String(s)),o.tabIndex=r===n?0:-1})},jn=(t,e,n)=>{let o=st("button",t,Pn(e));return o.setAttribute("role","radio"),o._twVal=qt(e),o.dataset.value=o._twVal,o.addEventListener("click",()=>n(o._twVal)),o},Ie=(t,e,n,o=0)=>{switch(t){case"ArrowRight":return(e+1)%n;case"ArrowLeft":return(e-1+n)%n;case"ArrowDown":return o<0?-1:o?e+o<n?e+o:e:(e+1)%n;case"ArrowUp":return o<0?-1:o?e-o>=0?e-o:e:(e-1+n)%n;case"Home":return 0;case"End":return n-1}return-1};function en(t,e,n,o){let r=h("div","tw-seg");r.setAttribute("role","radiogroup"),o&&r.setAttribute("aria-label",o);let s=h("div","tw-seg-pill");r.append(s);let i=t.map(u=>{let c=jn("tw-seg-btn",u,f=>b(f));return r.append(c),c}),a=u=>Dn(r,s,u),l=()=>{In(i,e),a(!0)},b=(u,c=!0)=>{u!=null&&!i.some(f=>f._twVal===u)||(e=u,l(),c&&n(u))};return r.addEventListener("keydown",u=>{let c=tn(i,e);if(c<0)return;let f=Ie(u.key,c,i.length);f<0||(u.preventDefault(),b(i[f]._twVal),i[f].focus())}),l(),Tt(()=>{a(),r.classList.add("is-ready")}),At(r,[[window,"tw-reflow"]],()=>a()),{el:r,set:u=>b(u,!1),get:()=>e}}var Nt=(t,e="",n=2,o=24)=>`<svg${e?` class="${e}"`:""} viewBox="0 0 ${o} ${o}" fill="none" stroke="currentColor" stroke-width="${n}" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">${t}</svg>`,Yt=(t,e)=>({el:t,set:()=>{},get:()=>{},destroy:e}),vo={},at=(t,e)=>{vo[t]=e},Qt=t=>vo[t];var zr="http://www.w3.org/2000/svg",kt=(t,e)=>{let n=document.createElementNS(zr,t);return e&&n.setAttribute("class",e),n},Mo=(t,e)=>getComputedStyle(t).getPropertyValue(e).trim(),nn=t=>{let e=getComputedStyle(t),n=o=>e.getPropertyValue(o).trim();return n("--tw-accent")||n("--tw-text-primary")||"#fff"},xo=t=>{let e=!1;t.addEventListener("pointerdown",n=>{e=n.button===0&&document.activeElement!==t}),t.addEventListener("focus",()=>t.select()),t.addEventListener("mouseup",n=>{e&&(e=!1,n.button===0&&document.activeElement===t&&t.selectionStart===0&&t.selectionEnd===t.value.length&&n.preventDefault())})};function Vt(t,{onDown:e,onMove:n,onEnd:o}={}){let r=null,s=i=>{r===null||i.pointerId!==r||(r=null,o&&o(i))};t.addEventListener("pointerdown",i=>{if(!(i.button!==0||r!==null)){r=i.pointerId;try{t.setPointerCapture(i.pointerId)}catch{}e&&e(i)}}),t.addEventListener("pointermove",i=>{if(i.pointerId===r){if(i.buttons===0)return s(i);n&&n(i)}}),t.addEventListener("pointerup",s),t.addEventListener("pointercancel",s),t.addEventListener("lostpointercapture",s)}var ke=(t,e)=>Vt(t,{onDown:n=>{t.classList.add("is-grabbing"),e(n)},onMove:e,onEnd:()=>t.classList.remove("is-grabbing")}),Le=(t,e)=>{let n=e.getBoundingClientRect();return[T((t.clientX-n.left)/n.width,0,1),T((t.clientY-n.top)/n.height,0,1)]},Eo=(t,e,n=1/0)=>{let o=t.getBoundingClientRect(),r=Math.min(window.devicePixelRatio||1,n);return t.width=o.width*r,t.height=o.height*r,e.setTransform(r,0,0,r,0,0),[o.width,o.height]},te=(t,e)=>{let n=h("div",t),o=wt("tw-trigger");o.setAttribute("aria-expanded","false");let r=h("span","tw-trigger-right");return o.append(st("span","tw-trigger-label",e),r),n.append(o),{root:n,trigger:o,right:r}},Kr=Nt('<path d="M6 4v8M10 4v8"/>',"",1.5,16);function qr(){let t=null,e=0,n=0,o=0;return{show(r,s,i,a){t=h("div","tw-grab-guide tw-portal"),t.innerHTML='<span class="tw-grab-line"></span><span class="tw-grab-dot"></span><span class="tw-grab-arrow"></span><span class="tw-grab-bubble"></span>',e=s,n=r,o=i??r,t.children[1].style.cssText=`left:${r}px;top:${e}px`,ae(t,a),document.body.appendChild(t)},move(r,s){t&&(t.children[0].style.cssText=`left:${Math.min(n,r)}px;top:${e}px;width:${Math.abs(r-n)}px`,t.children[2].style.cssText=`left:${r}px;top:${e}px;transform:translate(-50%,-50%) scaleX(${r>=n?1:-1})`,t.children[3].style.cssText=`left:${o}px;top:${e-16}px`,t.children[3].textContent=s)},hide(){t&&(t.remove(),t=null)}}}function Yr(t,e,n,o,r,s){let i=0,a=0,l=1,b=qr();Vt(t,{onDown:u=>{u.preventDefault(),i=u.clientX,a=o(),l=1,t.classList.add("is-dragging");let c=e.getBoundingClientRect();b.show(u.clientX,c.top+c.height/2,c.left+c.width/2,e),b.move(u.clientX,s())},onMove:u=>{let c=u.shiftKey?10:u.altKey?.1:1;c!==l&&(l=c,i=u.clientX,a=o()),r(a+(u.clientX-i)*n*c),b.move(u.clientX,s())},onEnd:()=>{t.classList.remove("is-dragging"),b.hide()}})}function Dt(t,e){let n=Number.isFinite(+t.step)&&+t.step>0?+t.step:1,o=v=>v==null?NaN:+v,r=o(t.min),s=o(t.max);if(Number.isFinite(r)&&Number.isFinite(s)&&s<r){let v=r;r=s,s=v}let i=Number.isFinite(r)?r:0,a=Kt(n),[l,b]=ye(Number.isFinite(r)?r:-1/0,Number.isFinite(s)?s:1/0,n,i),u=v=>{let P=le(v,i,n);return t.soft?P:T(P,l,b)},c=u(Number.isFinite(+t.value)?+t.value:0),f=h("div",t.row?"tw-row":"tw-field"),y=h("div","tw-num-wrap"),E=h("span","tw-num-grab",Kr);E.setAttribute("aria-hidden","true"),E.title="Drag to adjust";let p=h("input","tw-num");p.type="text",p.inputMode="decimal",p.setAttribute("aria-label",t.label),p.value=c.toFixed(a),Rt(p),y.append(E,p),f.append(st("span",t.row?"tw-row-label":"tw-field-label",t.label),y);let w=(v,P=!0)=>{v=+v,Number.isFinite(v)&&(c=u(v),p.value=c.toFixed(a),P&&e&&e(c))};return p.addEventListener("change",()=>{let v=parseFloat(p.value);w(isNaN(v)?c:v)}),p.addEventListener("keydown",v=>{if(v.key==="Enter")return p.blur();let P=v.key==="ArrowUp"?1:v.key==="ArrowDown"?-1:0;if(!P)return;v.preventDefault();let $=parseFloat(p.value);w((isNaN($)?c:$)+P*n*(v.shiftKey?10:1))}),Yr(E,y,n,()=>c,w,()=>p.value),{el:f,set:v=>w(v,!1),get:()=>c}}at("number",(t,e)=>Dt({...t,row:!0},e));var Wr=180/Math.PI,Xn=Math.PI/180,Xt=(t,e)=>[t[0][0]*e[0]+t[0][1]*e[1]+t[0][2]*e[2],t[1][0]*e[0]+t[1][1]*e[1]+t[1][2]*e[2],t[2][0]*e[0]+t[2][1]*e[1]+t[2][2]*e[2]],Ur=(t,e)=>{let n=[[0,0,0],[0,0,0],[0,0,0]];for(let o=0;o<3;o++)for(let r=0;r<3;r++)n[o][r]=t[o][0]*e[0][r]+t[o][1]*e[1][r]+t[o][2]*e[2][r];return n},gt=t=>Number.isFinite(t)?t:0,Jr=(t,e,n)=>Math.min(n,Math.max(e,t)),on=t=>{let e=Math.abs(t);return e<=.04045?t/12.92:Math.sign(t)*((e+.055)/1.055)**2.4},je=t=>{let e=Math.abs(t);return e<=.0031308?t*12.92:Math.sign(t)*(1.055*e**(1/2.4)-.055)},an=1.09929682680944,Fo=.018053968510807,Zr=t=>{let e=Math.abs(t);return e<Fo*4.5?t/4.5:Math.sign(t)*((e+an-1)/an)**(1/.45)},_o=t=>{let e=Math.abs(t);return e<Fo?t*4.5:Math.sign(t)*(an*e**.45-(an-1))},$o=1/512,Qr=t=>{let e=Math.abs(t);return e<=$o*16?t/16:Math.sign(t)*e**1.8},ts=t=>{let e=Math.abs(t);return e>=$o?Math.sign(t)*e**(1/1.8):16*t},Bn=[[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],rn=[[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],es=[[.4865709486482162,.26566769316909306,.19821728523436247],[.2289745640697488,.6917385218365064,.079286914093745],[0,.04511338185890264,1.043944368900976]],Ro=[[2.493496911941425,-.9313836179191239,-.40271078445071684],[-.8294889695615747,1.7626640603183463,.023624685841943577],[.03584583024378447,-.07617238926804182,.9568845240076872]],ns=[[.6369580483012914,.14461690358620832,.16888097516417205],[.2627002120112671,.6779980715188708,.05930171646986196],[0,.028072693049087428,1.060985057710791]],Ho=[[1.7166511879712674,-.35567078377639233,-.25336628137365974],[-.6666843518324892,1.6164812366349395,.01576854581391113],[.017639857445310783,-.042770613257808524,.9421031212354738]],os=[[.7977604896723027,.13518583717574031,.0313493495815248],[.2880711282292934,.7118432178101014,8565396060525902e-20],[0,0,.8251046025104601]],rs=[[1.3457989731028281,-.25558010007997534,-.05110628506753401],[-.5446224939028347,1.5082327413132781,.02053603239147973],[0,0,1.2119675456389454]],Do=[[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Io=[[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],ss=[[.819022437996703,.3619062600528904,-.1288737815209879],[.0329836539323885,.9292868615863434,.0361446663506424],[.0481771893596242,.2642395317527308,.6335478284694309]],jo=[[1.2268798758459243,-.5578149944602171,.2813910456659647],[-.0405757452148008,1.112286803280317,-.0717110580655164],[-.0763729366746601,-.4214933324022432,1.5869240198367816]],is=[[.210454268309314,.7936177747023054,-.0040720430116193],[1.9779985324311684,-2.42859224204858,.450593709617411],[.0259040424655478,.7827717124575296,-.8086757549230774]],Bo=[[1,.3963377773761749,.2158037573099136],[1,-.1055613458156586,-.0638541728258133],[1,-.0894841775298119,-1.2914855480194092]],sn=216/24389,Be=24389/27,Te=[.3457/.3585,1,(1-.3457-.3585)/.3585],Ce=(t,e,n)=>Xt(n,[e(t[0]),e(t[1]),e(t[2])]),Se=(t,e,n)=>{let o=Xt(n,t);return[e(o[0]),e(o[1]),e(o[2])]},ko=t=>{let e=Xt(Bo,t);return Xt(jo,[e[0]**3,e[1]**3,e[2]**3])},Lo=t=>{let e=Xt(ss,t);return Xt(is,[Math.cbrt(e[0]),Math.cbrt(e[1]),Math.cbrt(e[2])])};function Co(t){let[e,n,o]=t,r=(e+16)/116,s=n/500+r,i=r-o/200,a=s**3>sn?s**3:(116*s-16)/Be,l=e>Be*sn?r**3:e/Be,b=i**3>sn?i**3:(116*i-16)/Be;return Xt(Io,[a*Te[0],l*Te[1],b*Te[2]])}function So(t){let e=Xt(Do,t),n=i=>i>sn?Math.cbrt(i):(Be*i+16)/116,o=n(e[0]/Te[0]),r=n(e[1]/Te[1]),s=n(e[2]/Te[2]);return[116*r-16,500*(o-r),200*(r-s)]}var ln=t=>{let e=Math.hypot(t[1],t[2]),n=Math.atan2(t[2],t[1])*Wr;return n<0&&(n+=360),[t[0],e,n]},cn=t=>[t[0],t[1]*Math.cos(t[2]*Xn),t[1]*Math.sin(t[2]*Xn)];function Vo(t){let e=((Number.isNaN(t[0])?0:t[0])%360+360)%360,n=t[1]/100,o=t[2]/100,r=s=>{let i=(s+e/30)%12,a=n*Math.min(o,1-o);return o-a*Math.max(-1,Math.min(i-3,9-i,1))};return[r(0),r(8),r(4)]}function Xo(t){let e=Math.max(...t),n=Math.min(...t),o=e-n;if(o<1e-9)return NaN;let r;return e===t[0]?r=(t[1]-t[2])/o+(t[1]<t[2]?6:0):e===t[1]?r=(t[2]-t[0])/o+2:r=(t[0]-t[1])/o+4,r*60}function as(t){let e=Math.max(...t),n=Math.min(...t),o=(n+e)/2,r=Xo(t),s=e===n||o===0||o===1?0:(e-o)/Math.min(o,1-o);return s<0&&(r+=180,s=-s),r>=360&&(r-=360),[r,s*100,o*100]}function ls(t){let e=t[1]/100,n=t[2]/100;if(e+n>=1){let s=e/(e+n);return[s,s,s]}let o=Vo([t[0],100,50]),r=1-e-n;return[o[0]*r+e,o[1]*r+e,o[2]*r+e]}var cs=t=>[Xo(t),Math.min(...t)*100,(1-Math.max(...t))*100];function us(t,e){switch(e){case"srgb":return Ce(t,on,Bn);case"p3":return Ce(t,on,es);case"rec2020":return Ce(t,Zr,ns);case"prophoto-rgb":return Xt(Io,Ce(t,Qr,os));case"oklab":return ko(t);case"oklch":return ko(cn(t));case"lab":return Co(t);case"lch":return Co(cn(t));case"hsl":return Ce(Vo(t),on,Bn);case"hwb":return Ce(ls(t),on,Bn)}}function ds(t,e){switch(e){case"srgb":return Se(t,je,rn);case"p3":return Se(t,je,Ro);case"rec2020":return Se(t,_o,Ho);case"prophoto-rgb":return Se(Xt(Do,t),ts,rs);case"oklab":return Lo(t);case"oklch":return ln(Lo(t));case"lab":return So(t);case"lch":return ln(So(t));case"hsl":return as(Se(t,je,rn));case"hwb":return cs(Se(t,je,rn))}}function Mt(t,e,n){return e===n?[t[0],t[1],t[2]]:e==="oklch"&&n==="oklab"?cn(t):e==="oklab"&&n==="oklch"?ln(t):e==="lch"&&n==="lab"?cn(t):e==="lab"&&n==="lch"?ln(t):ds(us(t,e),n)}var un=75e-6,Go=t=>t.every(e=>e>=-un&&e<=1+un),Gn=(t,e)=>Go(Mt(t,"oklch",e)),Vn=t=>t.map(e=>Math.min(1,Math.max(0,e))),To=(t,e)=>Math.hypot(t[0]-e[0],t[1]-e[1],t[2]-e[2]);function dn(t,e){if(Gn(t,e))return Mt(t,"oklch",e);let n=t[0];if(n>=1)return[1,1,1];if(n<=0)return[0,0,0];if(!Number.isFinite(t[1]))return Vn(Mt([n,0,gt(t[2])],"oklch",e));let o=.02,r=1e-4,s=[t[0],t[1],t[2]],i=0,a=t[1],l=!0,b=Vn(Mt(s,"oklch",e));if(To(Mt(b,e,"oklab"),Mt(t,"oklch","oklab"))<o)return b;for(;a-i>r;){let u=(i+a)/2;s[1]=u;let c=Mt(s,"oklch",e);if(l&&Go(c)){i=u;continue}b=Vn(c);let f=To(Mt(b,e,"oklab"),Mt(s,"oklch","oklab"));if(f<o){if(o-f<r)return b;l=!1,i=u}else a=u}return b}var zo=(t,e)=>{let n=t*Xn,o=Math.cos(n),r=Math.sin(n),s=Bo.map(a=>o*a[1]+r*a[2]),i=Ur(e==="p3"?Ro:e==="rec2020"?Ho:rn,jo);return{d:s,F:i,gam:e==="rec2020"?_o:je}};function pn(t,e){let{d:[n,o,r],F:s,gam:i}=zo(t,e),a=-un,l=1+un;return(b,u)=>{let c=b+u*n,f=b+u*o,y=b+u*r,E=c**3,p=f**3,w=y**3,v=i(s[0][0]*E+s[0][1]*p+s[0][2]*w);if(v<a||v>l)return!1;let P=i(s[1][0]*E+s[1][1]*p+s[1][2]*w);if(P<a||P>l)return!1;let $=i(s[2][0]*E+s[2][1]*p+s[2][2]*w);return $>=a&&$<=l}}function Ko(t,e){let{d:[n,o,r],F:s,gam:i}=zo(t,e);return(a,l,b)=>{let u=a+l*n,c=a+l*o,f=a+l*r,y=u**3,E=c**3,p=f**3;b[0]=i(s[0][0]*y+s[0][1]*E+s[0][2]*p),b[1]=i(s[1][0]*y+s[1][1]*E+s[1][2]*p),b[2]=i(s[2][0]*y+s[2][1]*E+s[2][2]*p)}}function fn(t,e,n=.5){if(!t(e,0))return 0;let o=0;for(let r=0;r<16;r++){let s=(o+n)/2;t(e,s)?o=s:n=s}return o}var ue=t=>Math.round(Math.min(1,Math.max(0,t))*255).toString(16).padStart(2,"0"),ps=t=>`#${ue(t[0])}${ue(t[1])}${ue(t[2])}`,mn=(t,e,n)=>ps(dn([t,e,n],"srgb"));function qo(t){let e=String(t).replace("#","").trim();if(e.length===3&&(e=e.split("").map(o=>o+o).join("")),e.length<6)return[.7,.1,280];let n=[parseInt(e.slice(0,2),16)/255,parseInt(e.slice(2,4),16)/255,parseInt(e.slice(4,6),16)/255];return Mt(n,"srgb","oklch").map(gt)}var bn=["hex","srgb","css","hsl","hwb","oklch","oklab","lch","lab","p3","rec2020"],Yo={hex:"HEX",srgb:"RGB",css:"CSS",hsl:"HSL",hwb:"HWB",oklch:"OKLCH",oklab:"OKLab",lch:"LCH",lab:"Lab",p3:"P3",rec2020:"Rec2020"},Wo=["srgb","css","hsl","hwb","hex"],zn=t=>!Wo.includes(t),Uo=t=>t==="hex"||t==="css"?"srgb":t,fs=Object.assign(Object.create(null),{hex:"srgb",srgb:"srgb",css:"srgb",hsl:"hsl",hwb:"hwb",oklch:"oklch",oklab:"oklab",lch:"lch",lab:"lab",p3:"display-p3",rec2020:"rec2020"}),Jo=t=>fs[t]||"oklch",ms=Object.assign(Object.create(null),{srgb:"srgb",hsl:"hsl",hwb:"hwb",oklch:"oklch",oklab:"oklab",lch:"lch",lab:"lab","display-p3":"p3",rec2020:"rec2020"}),Kn=t=>ms[t]||"oklch",gn=.5,Zo=(t,e,n)=>Object.freeze(["R","G","B"].map(o=>Object.freeze({k:o,min:0,max:t,step:e,scale:n}))),Ao=Zo(255,1,255),Oo=Zo(1,.01,1),Ve={oklch:[{k:"L",min:0,max:100,step:1,scale:100},{k:"C",min:0,max:gn,step:.01,scale:1},{k:"H",min:0,max:360,step:1,scale:1}],oklab:[{k:"L",min:0,max:100,step:1,scale:100},{k:"a",min:-.4,max:.4,step:.01,scale:1},{k:"b",min:-.4,max:.4,step:.01,scale:1}],lch:[{k:"L",min:0,max:100,step:1,scale:1},{k:"C",min:0,max:150,step:1,scale:1},{k:"H",min:0,max:360,step:1,scale:1}],lab:[{k:"L",min:0,max:100,step:1,scale:1},{k:"a",min:-125,max:125,step:1,scale:1},{k:"b",min:-125,max:125,step:1,scale:1}],srgb:Ao,css:Ao,hsl:[{k:"H",min:0,max:360,step:1,scale:1},{k:"S",min:0,max:100,step:1,scale:1},{k:"L",min:0,max:100,step:1,scale:1}],hwb:[{k:"H",min:0,max:360,step:1,scale:1},{k:"W",min:0,max:100,step:1,scale:1},{k:"B",min:0,max:100,step:1,scale:1}],p3:Oo,rec2020:Oo},Po=t=>t>=1?0:t>=.1?1:t>=.01?2:3,Qo=(t,e,n)=>e==="oklch"?[t[0],t[1],t[2]]:Wo.includes(n)?e==="srgb"?dn(t,"srgb"):Mt(dn(t,"srgb"),"srgb",e):Mt(t,"oklch",e);function hn(t,e){let n=Qo(t,Uo(e),e);return Ve[e].map((o,r)=>{let s=gt(n[r])*o.scale;return Jr(Math.abs(s)<.5*o.step?0:s,o.min,o.max)})}function tr(t,e,n,o){let r=Uo(e),s=Qo(t,r,e).map(gt);s[n]=o/Ve[e][n].scale;let i=Mt(s,r,"oklch");return[gt(i[0]),gt(i[1]),gt(i[2])]}function er(t,e){if(!zn(e))return"sRGB";let n=dn(t,"srgb");return Math.max(...n)<.03||Math.min(...n)>.97||Gn(t,"srgb")?"sRGB":Gn(t,"p3")?"P3":"wide"}function qn(t,e){if(e==="hex")return mn(t[0],t[1],t[2]);let n=Ve[e],o=hn(t,e),r=s=>{let i=o[s].toFixed(Po(n[s].step));return n[s].k==="H"&&+i==360?0 .toFixed(Po(n[s].step)):i};return e==="css"?`${r(0)}, ${r(1)}, ${r(2)}`:e==="oklch"||e==="oklab"||e==="lch"||e==="lab"?`${r(0)}% ${r(1)} ${r(2)}`:e==="hsl"||e==="hwb"?`${r(0)} ${r(1)}% ${r(2)}%`:`${r(0)} ${r(1)} ${r(2)}`}var No=(t,e)=>e==="hex"?t:e==="srgb"?`rgb(${t})`:e==="css"?`rgba(${t}, 1)`:e==="hsl"?`hsl(${t})`:e==="hwb"?`hwb(${t})`:e==="p3"?`color(display-p3 ${t})`:e==="rec2020"?`color(rec2020 ${t})`:`${e}(${t})`;function nr(t,e,n){let o=gt(n);if(e==="hex")return mn(t[0],t[1],t[2])+(o<.999?ue(o):"");let r=qn(t,e);if(o>=.999)return No(r,e);let s=+o.toFixed(3);return e==="css"?`rgba(${r}, ${s})`:No(`${r} / ${s}`,e)}var or=(()=>{try{return document.createElement("canvas").getContext("2d",{colorSpace:"display-p3"})?.getContextAttributes?.().colorSpace==="display-p3"}catch{return!1}})(),Yn=or?{colorSpace:"display-p3"}:{},bs=or?"p3":"srgb",wn=(t,e)=>{let n=t.length-1,o=Math.max(0,Math.min(n,e*n)),r=Math.floor(o),s=o-r;return t[r]*(1-s)+t[Math.min(r+1,n)]*s},gs=(t,e)=>{let n=pn(t,e),o=new Float64Array(128);for(let r=0;r<128;r++)o[r]=fn(n,r/127);return o},Qn="repeating-conic-gradient(#6b6b6b 0% 25%, #9a9a9a 0% 50%) 0 0 / 8px 8px",hs=Object.assign(Object.create(null),{srgb:"srgb","display-p3":"p3",rec2020:"rec2020","prophoto-rgb":"prophoto-rgb"}),to=/^(rgba?|hsla?|hwb)\([ \t\n\r\f]*([^)]*?)[ \t\n\r\f]*\)$/i,eo=/^(oklch|oklab|lch|lab|color)\([ \t\n\r\f]*([^)]*?)[ \t\n\r\f]*\)$/i,ws=/^(srgb|srgb-linear|display-p3|a98-rgb|prophoto-rgb|rec2020|xyz|xyz-d50|xyz-d65)$/i,yn=/^#?([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,Wn,rr=()=>Wn===void 0?Wn=document.createElement("canvas").getContext("2d"):Wn,ys=/^(#[0-9a-f]{3,8}|[a-z][a-z-]*(?:\([\w\s.,%+\-\/]*\))?)$/i;function sr(t){if(t=String(t??"").trim(),!ys.test(t))return!1;if(yn.test(t))return!0;if(eo.test(t))return xs(t);if(to.test(t))return ar(t)!==null;let e=rr();return e?["#000","#fff"].some(n=>{e.fillStyle=n;let o=e.fillStyle;return e.fillStyle=t,e.fillStyle!==o}):!0}var no="[+-]?(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e[+-]?\\d+)?",vs=new RegExp("^"+no+"$","i"),Ms=new RegExp("^"+no+"%$","i"),ir=new RegExp("^("+no+")(deg|grad|rad|turn)$","i"),oo=/[ \t\n\r\f]+/,ro=/^none$/i,Un=t=>t.replace(/^[ \t\n\r\f]+|[ \t\n\r\f]+$/g,""),Jn=t=>!!t&&!oo.test(t),de=t=>ro.test(t)?"none":vs.test(t)?"num":Ms.test(t)?"pct":ir.test(t)?"angle":null,Zn=t=>{let e=ir.exec(t);if(!e)return gt(parseFloat(t));let n=parseFloat(e[1]),o=e[2].toLowerCase();return gt(o==="turn"?n*360:o==="grad"?n*.9:o==="rad"?n*180/Math.PI:n)};function ar(t){let e=to.exec(t);if(!e)return null;let n=e[1].toLowerCase().replace(/a$/,""),o=e[2],r,s,i;if(o.includes(",")){if(n==="hwb")return null;let u=o.split(",").map(Un);if(u.length<3||u.length>4||!u.every(Jn)||(r=u.slice(0,3),s=u[3],i=r.map(de),n==="rgb"?!(i.every(c=>c==="num")||i.every(c=>c==="pct")):!((i[0]==="num"||i[0]==="angle")&&i[1]==="pct"&&i[2]==="pct"))||s!==void 0&&de(s)!=="num"&&de(s)!=="pct")return null}else{let u=o.split("/");if(u.length>2||(r=u[0].split(oo).filter(Boolean),r.length!==3))return null;if(u.length===2){s=Un(u[1]);let c=Jn(s)?de(s):null;if(!c||c==="angle")return null}if(i=r.map(de),n==="rgb"?!i.every(c=>c&&c!=="angle"):!(i[0]&&i[0]!=="pct"&&i[1]&&i[1]!=="angle"&&i[2]&&i[2]!=="angle"))return null}let a=(u,c)=>ro.test(u)?0:/%$/.test(u)?parseFloat(u)/100*c:parseFloat(u),l=s===void 0?1:T(a(s,1),0,1);return[n==="rgb"?Mt([T(a(r[0],255)/255,0,1),T(a(r[1],255)/255,0,1),T(a(r[2],255)/255,0,1)],"srgb","oklch"):Mt([i[0]==="none"?0:Zn(r[0]),T(a(r[1],100),0,100),T(a(r[2],100),0,100)],n,"oklch"),l]}var xs=t=>{let e=eo.exec(t);if(!e)return!1;let n=e[1].toLowerCase(),o=e[2].split("/");if(o.length>2)return!1;let r=o[0].split(oo).filter(Boolean);if(n==="color"&&!ws.test(r.shift()||"")||r.length!==3)return!1;let s=n==="lch"||n==="oklch";if(!r.every((i,a)=>{let l=de(i);return l&&(s&&a===2?l!=="pct":l!=="angle")}))return!1;if(o.length===2){let i=Un(o[1]),a=Jn(i)?de(i):null;if(!a||a==="angle")return!1}return!0};function pe(t){if(t=String(t??"").trim(),yn.test(t)){let a=t.replace("#",""),l=1;a.length===4?(l=parseInt(a[3]+a[3],16)/255,a=a.slice(0,3)):a.length===8&&(l=parseInt(a.slice(6,8),16)/255,a=a.slice(0,6));let[b,u,c]=qo("#"+a);return[b,u,c,l]}let e=eo.exec(t);if(e){let a=e[1].toLowerCase(),[l,b]=e[2].split("/").map(w=>w.trim()),u=l.split(/\s+/).filter(Boolean),c=a;if(a==="color"&&(c=hs[(u[0]||"").toLowerCase()],u=u.slice(1),!c))return[.7,.1,280,1];let f=(w,v=1)=>!w||ro.test(w)?0:gt(parseFloat(w))*(/%$/.test(w)?v:1),y=b?T(f(b,.01),0,1):1,E=a==="lab"?[T(f(u[0]),0,100),f(u[1],1.25),f(u[2],1.25)]:a==="lch"?[T(f(u[0]),0,100),Math.max(0,f(u[1],1.5)),Zn(u[2]||"0")]:a==="color"?[f(u[0],.01),f(u[1],.01),f(u[2],.01)]:a==="oklab"?[T(f(u[0],.01),0,1),f(u[1],.004),f(u[2],.004)]:[T(f(u[0],.01),0,1),Math.max(0,f(u[1],.004)),Zn(u[2]||"0")],p=c==="oklch"?E:Mt(E,c,"oklch");return[gt(p[0]),T(gt(p[1]),0,gn),(gt(p[2])%360+360)%360,y]}if(to.test(t)){let a=ar(t);if(!a)return[0,0,0,1];let[l,b]=a;return[gt(l[0]),T(gt(l[1]),0,gn),(gt(l[2])%360+360)%360,b]}let n=rr();if(!n)return[0,0,0,1];n.fillStyle="#000",n.fillStyle=t;let o=n.fillStyle;if(yn.test(o))return pe(o);let r=o.match(/^rgba?\(([^)]*)\)/i),s=((r?r[1]:"").match(/-?[\d.]+(?:e[+-]?\d+)?/gi)||[0,0,0]).map(Number),i=Mt([s[0]/255,s[1]/255,s[2]/255],"srgb","oklch");return[gt(i[0]),gt(i[1]),gt(i[2]),s[3]!=null?T(gt(s[3]),0,1):1]}function vn(t,e){let[n,o,r,s]=pe(t.value||"#7c5cff"),i=bn.includes(t.mode)?t.mode:"oklch",a=NaN,l=null,b=[],u=NaN,c="",f=()=>nr([n,o,r],i,s),y=h("div","tw-color-body"),E=h("div","tw-wg-area"),p=document.createElement("canvas");p.className="tw-wg-canvas";let w=h("div","tw-wg-thumb");E.append(p,w);let v=h("div","tw-wg-hue"),P=document.createElement("canvas");P.className="tw-wg-hue-canvas";let $=h("div","tw-wg-hue-thumb");v.append(P,$),p.setAttribute("role","img"),p.setAttribute("aria-label","Colour plane: chroma across, lightness up"),P.setAttribute("role","img"),P.setAttribute("aria-label","Hue strip");let N=h("div","tw-wg-alpha"),R=h("div","tw-wg-alpha-grad"),K=h("div","tw-wg-hue-thumb");N.append(R,K),N.tabIndex=0,N.setAttribute("role","slider"),N.setAttribute("aria-label","Alpha"),N.setAttribute("aria-valuemin","0"),N.setAttribute("aria-valuemax","1");let q=h("div","tw-color-mode-row"),Y=h("select","tw-color-mode");Y.setAttribute("aria-label","Color mode"),bn.forEach(j=>{let V=document.createElement("option");V.value=j,V.textContent=Yo[j],Y.append(V)}),Y.value=i;let U=h("span","tw-color-gamut");q.append(Y,U);let A=h("div","tw-color-channels");y.append(E,v,N,q,A);let O=p.getContext("2d",Yn),ot=P.getContext("2d"),tt=document.createElement("canvas"),lt=tt.getContext("2d",Yn),D=null,d=()=>{let j=E.getBoundingClientRect(),V=Math.round(j.width),k=Math.round(j.height);if(V<2)return;let J=window.devicePixelRatio||1,it=zn(i)?"p3":"srgb",rt=gs(r,it);l=rt;let dt=Math.round(V*J),Et=Math.round(k*J),xt=Math.max(1,Math.round(dt/4)),It=Math.max(1,Math.round(Et/4));(tt.width!==xt||tt.height!==It)&&(tt.width=xt,tt.height=It,D=new ImageData(xt,It,Yn));let _t=D.data,re=It>1?1/(It-1):0,Fe=xt>1?1/(xt-1):0,_e=Ko(r,bs),Gt=[0,0,0];for(let $t=0;$t<It;$t++){let be=1-$t*re,se=wn(rt,be);for(let zt=0;zt<xt;zt++){_e(be,zt*Fe*se,Gt);let Ut=($t*xt+zt)*4;_t[Ut]=Math.round(T(Gt[0],0,1)*255),_t[Ut+1]=Math.round(T(Gt[1],0,1)*255),_t[Ut+2]=Math.round(T(Gt[2],0,1)*255),_t[Ut+3]=255}}if(lt.putImageData(D,0,0),p.width=dt,p.height=Et,O.imageSmoothingEnabled=!0,O.drawImage(tt,0,0,dt,Et),it!=="srgb"){let $t=(be,se,zt,Ut)=>{let ge=pn(r,be),jt=[];for(let Pt=0;Pt<=100;Pt++){let Jt=Pt/100,he=wn(rt,Jt);if(he<=0)continue;let ie=fn(ge,Jt,he);ie<=0||jt.push([Math.min(ie/he*dt,dt-zt*J/2),(1-Jt)*Et])}jt.length<2||(O.save(),O.strokeStyle=se,O.lineWidth=zt*J,O.lineJoin=O.lineCap="round",O.setLineDash(Ut.map(Pt=>Pt*J)),O.beginPath(),jt.forEach((Pt,Jt)=>Jt?O.lineTo(Pt[0],Pt[1]):O.moveTo(Pt[0],Pt[1])),O.stroke(),O.restore())};$t("srgb","rgba(255,255,255,0.7)",1.5,[]),$t("p3","rgba(255,255,255,0.4)",1,[3,3])}a=r},S=.7,g=j=>{let V=Mt([S,fn(pn(j,"srgb"),S),j],"oklch","srgb");return`rgb(${T(V[0]*255,0,255)|0},${T(V[1]*255,0,255)|0},${T(V[2]*255,0,255)|0})`},L=0,X=()=>{let j=v.getBoundingClientRect(),V=Math.max(1,Math.round(j.width)),k=Math.max(1,Math.round(j.height));if(!(V<2)&&!(V===L&&P.width===V)){L=V,P.width=V,P.height=k;for(let J=0;J<V;J++)ot.fillStyle=g(J/(V-1)*360),ot.fillRect(J,0,1,k)}},H=()=>{let j=l?wn(l,n):.4,V=J=>`${T(J,0,1)*100}%`,k=(J,it)=>{let rt=T(J,0,1);return`calc(${rt*100}% + ${(.5-rt)*it}px)`};w.style.left=V(j>0?o/j:0),w.style.top=V(1-n),$.style.left=k(r/360,16),K.style.left=k(s,16),N.setAttribute("aria-valuenow",String(+s.toFixed(2))),R.style.background=`linear-gradient(to right, oklch(${n} ${o} ${r} / 0), oklch(${n} ${o} ${r}))`,w.style.background=`oklch(${n} ${o} ${r})`,K.style.background=`linear-gradient(oklch(${n} ${o} ${r} / ${s}), oklch(${n} ${o} ${r} / ${s})), var(--tw-dropdown-bg)`,r!==u&&(c=g(r),u=r),$.style.background=c},F=()=>{if(U.textContent=er([n,o,r],i),i==="hex"){let j=A.querySelector(".tw-color-chan-input");j&&document.activeElement!==j&&(j.value=mn(n,o,r)+(s<.999?ue(s):""))}else{let j=hn([n,o,r],i);b.forEach((V,k)=>{V.el.contains(document.activeElement)||V.set(j[k])})}},W=()=>{X(),d(),H()},C=()=>e(f()),G=j=>{j&&r!==a&&d(),H(),F()},z=j=>{G(j),C()},ct=()=>{if(A.replaceChildren(),b=[],i==="hex"){A.classList.add("tw-color-channels--hex");let j=h("div","tw-color-chan"),V=h("input","tw-color-chan-input");V.type="text",V.spellcheck=!1,V.setAttribute("aria-label","Hex color"),Rt(V),xo(V),V.addEventListener("change",()=>{let k=V.value.trim();yn.test(k)&&([n,o,r,s]=pe(k),z(!0))}),V.addEventListener("blur",F),V.addEventListener("keydown",k=>{k.key==="Enter"&&V.blur()}),j.append(st("span","tw-color-chan-label","HEX"),V),A.append(j)}else{A.classList.remove("tw-color-channels--hex");let j=hn([n,o,r],i);Ve[i].forEach((V,k)=>{let J=Dt({label:V.k,value:j[k],min:V.min,max:V.max,step:V.step},it=>{[n,o,r]=tr([n,o,r],i,k,T(it,V.min,V.max)),z(!0)});J.el.addEventListener("focusout",F),b.push(J),A.append(J.el)})}F()},mt=j=>Le(j,E);ke(E,j=>{let[V,k]=mt(j);n=1-k,o=V*(l?wn(l,n):.4),z(!1)});let Ot=j=>Le(j,v)[0]*360;ke(v,j=>{r=Ot(j),z(!0)});let Ct=j=>Le(j,N)[0];ke(N,j=>{s=Ct(j),z(!1)}),N.addEventListener("keydown",j=>{let V=ce(j,s,.01,0,1);V!=null&&(j.preventDefault(),s=T(V,0,1),z(!1))});let vt=j=>{i=j,Y.value=j,ct(),d(),H()};return Y.addEventListener("change",()=>{vt(Y.value),t.onMode&&t.onMode()}),ct(),{el:y,set:j=>{let V=document.activeElement;V&&y.contains(V)&&V.blur(),[n,o,r,s]=pe(j),G(!0)},get:()=>f(),mode:()=>i,setMode:j=>{j!==i&&bn.includes(j)&&vt(j)},reflow:W,swatchCss:()=>`linear-gradient(oklch(${n} ${o} ${r} / ${s}), oklch(${n} ${o} ${r} / ${s})), ${Qn}`,valueText:()=>qn([n,o,r],i)+(s<.999?i==="hex"?ue(s):` / ${+s.toFixed(2)}`:"")}}function Es(t,e){let{root:n,trigger:o,right:r}=te("tw-color",t.label??"Colour"),s=h("span","tw-trigger-chip tw-color-swatch"),i=h("span","tw-trigger-value");r.append(s,i);let a=h("div","tw-color-pop"),l=()=>{s.style.background=b.swatchCss(),i.textContent=b.valueText()},b=vn({value:t.value,onMode:()=>l()},u=>{l(),e(u)});return a.append(b.el),n.append(a),Bt(n,o,a,{width:240,fallbackH:340,gap:6,onOpen:b.reflow,onReflow:b.reflow}),l(),{el:n,set:u=>{b.set(u),l()},get:()=>b.get()}}var lr=(t,e,n,o)=>o<.999?`oklch(${+t.toFixed(4)} ${+e.toFixed(4)} ${+n.toFixed(2)} / ${+o.toFixed(3)})`:`oklch(${+t.toFixed(4)} ${+e.toFixed(4)} ${+n.toFixed(2)})`;at("color",Es);at("colorpicker",vn);var ks=Nt('<path d="M12 5v14m7-7H5"/>',"",2.5),cr=t=>t&&!Array.isArray(t)&&typeof t.interpolation=="string"?t.interpolation:null;function ur(t){let e=[{color:"oklch(0.72 0.19 25)",pos:0},{color:"oklch(0.72 0.16 280)",pos:1}],n=Array.isArray(t)?t:t&&Array.isArray(t.stops)?t.stops:null,o=(s,i)=>sr(s)?{color:String(s).trim(),pos:T(+i||0,0,1)}:null,r=(n||[]).map(s=>Array.isArray(s)?o(s[0],s[1]):s&&typeof s=="object"?o(s.color,s.pos):null).filter(Boolean);return r.length>=2?r:e}function Ls(t,e){let n=ur(t.value),o=n[0],{root:r,trigger:s,right:i}=te("tw-gradient",t.label??"Gradient"),a=h("span","tw-gradient-count"),l=h("span","tw-trigger-chip tw-gradient-preview");i.append(a,l);let b=h("div","tw-color-pop tw-gradient-pop"),u=h("div","tw-gradient-bar-row"),c=h("div","tw-gradient-bar"),f=h("div","tw-gradient-grad"),y=h("div","tw-gradient-rail");c.append(f,y);let E=wt("tw-gradient-add",ks);E.title="Add a stop after the selected one",E.setAttribute("aria-label","Add a colour stop after the selected one"),u.append(c,E);let p=()=>[...n].sort((g,L)=>g.pos-L.pos),w=()=>p().map(g=>`${g.color} ${(g.pos*100).toFixed(1)}%`).join(", "),v=()=>Jo(Y.mode()),P=()=>`linear-gradient(in ${v()} to right, ${w()})`,$=()=>{let g=P();f.style.background=g,l.style.background=`${g}, ${Qn}`},N=()=>{a.textContent=`${n.length} stop${n.length===1?"":"s"}`},R=()=>({stops:p().map(g=>({color:g.color,pos:+g.pos.toFixed(4)})),interpolation:v()}),K=()=>e(R()),q=g=>[...y.children].find(L=>L._stop===g),Y=vn({value:o.color,mode:Kn(cr(t.value)||"oklch"),onMode:()=>{$(),K()}},g=>{o.color=g,q(o)?.style.setProperty("--stop",g),$(),K()});b.append(u,Y.el),r.append(b);let U=g=>g.setAttribute("aria-label",`Colour stop at ${Math.round(g._stop.pos*100)}%${g._stop===o?", selected":""}`),A=()=>{for(let g of y.children)g.dataset.sel=String(g._stop===o),U(g)},O=()=>{y.replaceChildren();for(let g of n){let L=wt("tw-gradient-stop");L._stop=g,L.style.left=g.pos*100+"%",L.style.setProperty("--stop",g.color),L.dataset.sel=String(g===o),U(L),L.addEventListener("focus",()=>ot(g,!1));let X=!1;Vt(L,{onDown:H=>{H.preventDefault(),H.stopPropagation(),L.focus({focusVisible:!1}),ot(g,!1),X=!1},onMove:H=>{let F=y.getBoundingClientRect();g.pos=T((H.clientX-F.left)/(F.width||1),0,1),L.style.left=g.pos*100+"%",U(L),$(),K(),X=n.length>2&&(H.clientY<F.top-24||H.clientY>F.bottom+24),L.dataset.removing=String(X)},onEnd:()=>{X?D(g):L.dataset.removing="false"}}),L.addEventListener("dblclick",H=>{H.preventDefault(),D(g)}),L.addEventListener("keydown",H=>{let F=H.key==="ArrowLeft"?-1:H.key==="ArrowRight"?1:0;F&&(H.preventDefault(),g.pos=T(g.pos+F*(H.shiftKey?.1:.01),0,1),L.style.left=g.pos*100+"%",U(L),$(),K())}),y.append(L)}},ot=(g,L)=>{g!==o&&(Y.set(g.color),o=g),L?O():A()},tt=g=>{let L=y.getBoundingClientRect();return T((g-L.left)/(L.width||1),0,1)},lt=g=>{let L=p(),X=L[0],H=L[L.length-1];for(let mt=0;mt<L.length-1;mt++)if(g>=L[mt].pos&&g<=L[mt+1].pos){X=L[mt],H=L[mt+1];break}let F=H.pos>X.pos?T((g-X.pos)/(H.pos-X.pos),0,1):0,W=pe(X.color),C=pe(H.color),G=mt=>mt[1]<1e-4,z=C[2]-W[2];z>180?z-=360:z<-180&&(z+=360),(G(W)||G(C))&&(z=0);let ct=(((G(W)&&!G(C)?C[2]:W[2])+z*F)%360+360)%360;return lr(W[0]+(C[0]-W[0])*F,W[1]+(C[1]-W[1])*F,ct,W[3]+(C[3]-W[3])*F)},D=g=>{if(n.length<=2)return;let L=n.indexOf(g);if(L<0)return;n.splice(L,1);let X=o===g?n[Math.max(0,L-1)]:o;$(),ot(X,!0),N(),K(),q(o)?.focus()},d=g=>{let L={color:lt(g),pos:T(g,0,1)};return n.push(L),$(),ot(L,!0),N(),K(),L},S=()=>{let g=p(),L=g.indexOf(o);L<0&&(L=0);let X=L<g.length-1?(g[L].pos+g[L+1].pos)/2:L>0?(g[L-1].pos+g[L].pos)/2:T(g[L].pos+.1,0,1);d(X)};return E.addEventListener("click",g=>{g.stopPropagation(),S()}),c.addEventListener("dblclick",g=>{g.target.closest(".tw-gradient-stop")||(g.preventDefault(),d(tt(g.clientX)))}),b.tabIndex=-1,b.addEventListener("keydown",g=>{(g.key==="Delete"||g.key==="Backspace")&&!g.altKey&&!/^(input|textarea|select)$/i.test(g.target.tagName)&&n.length>2&&(g.preventDefault(),D(o))}),Bt(r,s,b,{width:260,fallbackH:392,gap:6,onOpen:Y.reflow,onReflow:Y.reflow,initialFocus:()=>q(o)}),O(),$(),N(),{el:r,set:g=>{let L=cr(g);L&&Y.setMode(Kn(L));let X=ur(g).sort((H,F)=>H.pos-F.pos);if(X.length===n.length)p().forEach((H,F)=>{H.color=X[F].color,H.pos=X[F].pos;let W=q(H);W&&(W.style.left=H.pos*100+"%",W.style.setProperty("--stop",H.color))});else{let H=o.pos;n=X,o=n.reduce((F,W)=>Math.abs(W.pos-H)<Math.abs(F.pos-H)?W:F,n[0]),O()}$(),N(),Y.set(o.color)},get:()=>R()}}at("gradient",Ls);function Cs(t,e){let n=t.label,o=+(t.value&&t.value[0]),r=+(t.value&&t.value[1]),{min:s,max:i,step:a}=Ye(t.min,t.max,t.step,Number.isFinite(o)?o:0,Number.isFinite(r)?r:1);[s,i]=ye(s,i,a);let l=Kt(a),b=D=>le(D,s,a),u=T(b(Number.isFinite(o)?o:s),s,i),c=T(b(Number.isFinite(r)?r:i),s,i);if(u>c){let D=u;u=c,c=D}let f=h("div","tw-slider-wrap"),y=h("div","tw-slider tw-interval"),E=h("div","tw-slider-fill"),p=h("div","tw-slider-handle"),w=h("div","tw-slider-handle"),v=st("span","tw-slider-label",n),P=h("span","tw-slider-value");y.append(E,p,w,v,P),f.append(y),[["minimum",p],["maximum",w]].forEach(([D,d])=>{d.tabIndex=0,d.setAttribute("role","slider"),d.setAttribute("aria-label",`${n} ${D}`),d.setAttribute("aria-valuemin",String(s)),d.setAttribute("aria-valuemax",String(i))});let $=D=>(D-s)/(i-s||1)*100,N=D=>`clamp(5px, calc(${D}% - 1.5px), calc(100% - 9px))`,R=()=>{let D=$(u),d=$(c);E.style.left=D+"%",E.style.width=Math.max(0,d-D)+"%",p.style.left=N(D),w.style.left=N(d),P.textContent=`${u.toFixed(l)} \u2013 ${c.toFixed(l)}`,p.setAttribute("aria-valuenow",String(u)),w.setAttribute("aria-valuenow",String(c));let S=f.offsetWidth;if(S){v.style.maxWidth=Math.max(0,S-P.offsetWidth-12-8-10)+"px";let g=L=>We(v,P,L/100*S-1.5,3);p.classList.toggle("is-dodge",g($(u))),w.classList.toggle("is-dodge",g($(c)))}};R();let K=()=>e([u,c]),q=D=>{u=T(Math.min(b(D),c),s,i),R()},Y=D=>{c=T(Math.max(b(D),u),s,i),R()},U=null,A=1,O=null,ot=D=>{let d=f.offsetWidth||U.width,S=T((D-U.left)/A/d,0,1);return T(s+S*(i-s),s,i)},tt=D=>{let d=ot(D);O||(O=d<u?"lo":d>c?"hi":Math.abs(d-u)<=Math.abs(d-c)?"lo":"hi"),O==="lo"?q(d):Y(d),K()};Vt(y,{onDown:D=>{D.preventDefault(),U=f.getBoundingClientRect(),A=U.width/(f.offsetWidth||U.width),y.classList.add("is-active","is-dragging"),O=null,tt(D.clientX),(O==="lo"?p:w).focus({focusVisible:!1})},onMove:D=>tt(D.clientX),onEnd:()=>{U=null,O=null,y.classList.remove("is-active","is-dragging")}}),Ue(y,R),Tt(R),At(y,[[window,"resize"],[window,"tw-reflow"]],R);let lt=D=>d=>{let S=D==="lo"?ce(d,u,a,s,c):ce(d,c,a,u,i);S!=null&&(d.preventDefault(),D==="lo"?q(S):Y(S),K())};return p.addEventListener("keydown",lt("lo")),w.addEventListener("keydown",lt("hi")),{el:f,set:D=>{if(Array.isArray(D)){let d=+D[0],S=+D[1];if(!Number.isFinite(d)||!Number.isFinite(S))return;u=T(b(Math.min(d,S)),s,i),c=T(b(Math.max(d,S)),s,i),R()}},get:()=>[u,c]}}at("interval",Cs);var Ss=0;function Ts(t){let e=`tw-tabs-${++Ss}`,n=h("div","tw-tabs"),o=h("div","tw-tabs-bar");o.setAttribute("role","tablist");let r=h("div","tw-tabs-pill");o.append(r);let s=h("div","tw-tabs-pages"),i=[],a=t.pages.map((u,c)=>{let f=st("button","tw-tabs-tab",u.title);f.setAttribute("role","tab"),f.dataset.active=String(c===0),f.setAttribute("aria-selected",String(c===0)),f.tabIndex=c===0?0:-1,f.id=`${e}-tab-${c}`,f.setAttribute("aria-controls",`${e}-page-${c}`);let y=h("div","tw-tabs-page tw-controls");return y.dataset.active=String(c===0),y.setAttribute("role","tabpanel"),y.id=`${e}-page-${c}`,y.setAttribute("aria-labelledby",f.id),i.push(y),s.append(y),f.addEventListener("click",()=>b(c)),o.append(f),f});n.append(o,s);let l=u=>Dn(o,r,u);function b(u){a.forEach((c,f)=>{c.dataset.active=String(f===u),c.setAttribute("aria-selected",String(f===u)),c.tabIndex=f===u?0:-1}),i.forEach((c,f)=>c.dataset.active=String(f===u)),l(!0),requestAnimationFrame(()=>window.dispatchEvent(new Event("tw-reflow")))}return o.addEventListener("keydown",u=>{let c=a.findIndex(y=>y.dataset.active==="true");if(c<0)return;let f=Ie(u.key,c,a.length,-1);f<0||(u.preventDefault(),b(f),a[f].focus())}),Tt(l),{el:n,bodies:i,activate:b,active:()=>a.findIndex(u=>u.dataset.active==="true")}}at("tabs",Ts);var As=t=>String(t).replace(/[\\"]/g,"\\$&").replace(/[\x00-\x1f\x7f]/g,e=>"\\"+e.charCodeAt(0).toString(16)+" ");function Os(t,e){let n=t.value||"",{root:o,trigger:r,right:s}=te("tw-image",t.label);r.removeAttribute("aria-expanded"),r.setAttribute("aria-label",`${t.label}: choose an image`);let i=h("span","tw-image-text"),a=h("span","tw-trigger-chip tw-image-thumb");s.append(i,a);let l=h("input","tw-image-input");l.type="file",l.accept="image/*",o.append(l);let b=()=>{a.dataset.set=n?"true":"false",a.style.backgroundImage=n?`url("${As(n)}")`:"",i.textContent=n?"Replace":"Drop or choose"},u=c=>{if(!c||!c.type.startsWith("image/"))return;let f=new FileReader;f.onload=()=>{n=String(f.result),b(),e(n)},f.readAsDataURL(c)};return r.addEventListener("click",()=>l.click()),l.addEventListener("change",()=>{l.files[0]&&u(l.files[0])}),r.addEventListener("dragover",c=>{c.preventDefault(),r.dataset.over="true"}),r.addEventListener("dragleave",()=>{r.dataset.over="false"}),r.addEventListener("drop",c=>{c.preventDefault(),r.dataset.over="false",c.dataTransfer.files[0]&&u(c.dataTransfer.files[0])}),b(),{el:o,set:c=>{c!=null&&typeof c!="string"||(n=c||"",b())},get:()=>n}}at("image",Os);var Ps=(t,e,n,o,r,s,i)=>{let a=r.length;t.clearRect(0,0,n,o),t.strokeStyle=nn(e),t.lineWidth=1.5,t.lineJoin="round",t.beginPath();let l=!1;for(let b=0;b<a;b++){let u=r[(s+b)%a];if(Number.isNaN(u))continue;let c=b/(a-1)*n,f=o-T(i(u),0,1)*o;l?t.lineTo(c,f):(t.moveTo(c,f),l=!0)}t.stroke()},Ns=t=>{for(let e of["resize","tw-reflow"])window.addEventListener(e,t);return()=>{for(let e of["resize","tw-reflow"])window.removeEventListener(e,t)}};function dr(t,e=!1){let n=typeof t.get=="function"?t.get:()=>t.value,o=Math.max(30,Number.isFinite(+t.interval)?+t.interval:200),r;try{r=n()}catch{}let s=typeof r=="number",i=t.view==="graph"||s&&t.graph!==!1&&t.view!=="text"&&t.rows==null,a=h("div","tw-fps tw-monitor"),l=st("span","tw-fps-val","\u2014");a.append(st("span","tw-fps-label",t.label??"Monitor"),l);let b=0,u=0,c=()=>{},f=!1,y=Number.isFinite(+t.decimals)?Math.min(20,Math.max(0,Math.floor(+t.decimals))):2,E=A=>A==null?"\u2014":typeof A=="number"?Number.isInteger(A)||!Number.isFinite(A)?String(A):A.toFixed(y):typeof A=="object"?He(A):String(A),p=()=>{b&&clearInterval(b),b=0,u&&cancelAnimationFrame(u),u=0,c()},w=A=>{let O=ot=>{if(e&&(u=requestAnimationFrame(O)),!a.isConnected){f&&p();return}f=!0;let tt;try{tt=n(ot)}catch{return}A(tt)};e?u=requestAnimationFrame(O):b=setInterval(O,o)};if(!i&&t.rows){l.remove();let A=Math.max(1,Math.floor(+t.rows)||1),O=h("pre","tw-monitor-buffer");O.style.setProperty("--tw-monitor-rows",A),a.append(O);let ot=[];return w(tt=>{for(ot.push(E(tt));ot.length>A;)ot.shift();O.textContent=ot.join(`
3
- `)}),Yt(a,p)}if(!i)return w(A=>{l.textContent=E(A)}),Yt(a,p);let v=document.createElement("canvas");v.className="tw-fps-canvas",a.append(v);let P=v.getContext("2d");if(!P)return w(A=>{l.textContent=E(A)}),Yt(a,p);let $=80,N=new Array($).fill(NaN),R=0,K=0,q=0,Y=()=>{[K,q]=Eo(v,P,2)};c=Ns(Y);let U=()=>{if(K||Y(),!K)return;let A=t.min,O=t.max;if(A==null||O==null){let tt=1/0,lt=-1/0;for(let d of N)Number.isFinite(d)&&(d<tt&&(tt=d),d>lt&&(lt=d));tt===1/0?(tt=0,lt=1):tt===lt&&(tt-=.5,lt+=.5);let D=(lt-tt)*.1;A==null&&(A=tt-D),O==null&&(O=lt+D)}let ot=O-A||1;Ps(P,a,K,q,N,R,tt=>(tt-A)/ot)};return w(A=>{if(typeof A!="number"||!Number.isFinite(A)){l.textContent=E(A);return}N[R]=A,R=(R+1)%$,l.textContent=E(A),U()}),Yt(a,p)}var Fs=()=>{let t=0;return e=>{if(!(e>0))return;let n=t?1e3/(e-t):void 0;return t=e,n}},_s=t=>dr({...t,label:t.label??"FPS",get:Fs(),view:"graph",min:0,max:120,decimals:0},!0);at("fpsgraph",_s);at("monitor",t=>dr(t));function $s(t,e,n,o=64){let r=Math.sqrt(t/n),s=e/(2*Math.sqrt(t*n)),i=Math.min(2.2,9/Math.max(s*r,.5)),a=[];for(let l=0;l<o;l++){let b=l/(o-1)*i,u;if(s<1-1e-4){let c=r*Math.sqrt(1-s*s);u=1-Math.exp(-s*r*b)*(Math.cos(c*b)+s*r/c*Math.sin(c*b))}else if(s<=1+1e-4)u=1-Math.exp(-r*b)*(1+r*b);else{let c=Math.sqrt(s*s-1),f=r*(s+c),y=r*(s-c);u=1-(f*Math.exp(-y*b)-y*Math.exp(-f*b))/(f-y)}a.push(u)}return a}function Rs(t,e){let n=(C,G,z)=>Number.isFinite(+C)?Math.max(G,+C):z,o=C=>({stiffness:n(C.stiffness,1,300),damping:n(C.damping,.5,26),mass:n(C.mass,.1,1)}),r=C=>Number.isFinite(+C),a=C=>T(r(C)?+C:.5,.1,1),l=C=>T(r(C)?+C:.2,0,1),b=C=>{let G=(2*Math.PI/C.visualDuration)**2,z=1-C.bounce,ct=1;return{stiffness:G,damping:2*z*Math.sqrt(G*ct),mass:ct}},u=C=>C==="time"||C==="physics"?C:null,c={stiffness:t.stiffness,damping:t.damping,mass:t.mass,visualDuration:t.visualDuration,bounce:t.bounce,...t.value||{}},f=u(c.mode)??u(t.mode)??(r(c.visualDuration)||r(c.bounce)?"time":"physics"),y={visualDuration:a(c.visualDuration),bounce:l(c.bounce)},E=o({stiffness:c.stiffness,damping:c.damping,mass:c.mass}),p=h("div","tw-spring"),w=h("div","tw-spring-viz"),v=document.createElement("canvas");v.className="tw-spring-canvas",w.append(v);let P=h("div","tw-fields"),$=h("div","tw-fields"),N=v.getContext("2d"),R=()=>o(f==="time"?b(y):E),K=()=>{let C=w.getBoundingClientRect(),G=Math.max(1,Math.round(C.width)),z=Math.max(1,Math.round(C.height));if(G<2)return;let ct=window.devicePixelRatio||1;v.width=G*ct,v.height=z*ct,N.setTransform(ct,0,0,ct,0,0),N.clearRect(0,0,G,z);let mt=R(),Ft=$s(mt.stiffness,mt.damping,mt.mass,Math.max(160,Math.round(G*ct))),Ot=Math.max(1.05,...Ft),yt=8,Ct=vt=>yt+vt/(Ft.length-1)*(G-2*yt),ht=vt=>z-yt-vt/Ot*(z-2*yt);N.strokeStyle=Mo(p,"--tw-surface-active")||"rgba(255,255,255,0.1)",N.lineWidth=1,N.beginPath(),N.moveTo(yt,ht(1)),N.lineTo(G-yt,ht(1)),N.stroke(),N.strokeStyle=nn(p),N.lineWidth=1.5,N.lineJoin=N.lineCap="round",N.beginPath(),Ft.forEach((vt,j)=>j?N.lineTo(Ct(j),ht(vt)):N.moveTo(Ct(j),ht(vt))),N.stroke()},q=()=>f==="time"?{...R(),visualDuration:y.visualDuration,bounce:y.bounce}:R(),Y=()=>e(q()),U={};[["stiffness","Stiffness",1],["damping","Damping",.5],["mass","Mass",.1]].forEach(([C,G,z])=>{U[C]=Dt({label:G,value:E[C],step:z,min:z},ct=>{E[C]=ct,K(),Y()}),P.append(U[C].el)});let A=Dt({label:"Duration",value:y.visualDuration,step:.05,min:.1,max:1},C=>{y.visualDuration=a(C),K(),Y()}),O=Dt({label:"Bounce",value:y.bounce,step:.05,min:0,max:1},C=>{y.bounce=l(C),K(),Y()});$.append(A.el,O.el);let ot=()=>{$.style.display=f==="time"?"":"none",P.style.display=f==="physics"?"":"none"},lt=en([{value:"time",label:"Time"},{value:"physics",label:"Physics"}],f,C=>{C!=="time"&&C!=="physics"||C===f||(f=C,ot(),K(),Y())},"Spring mode"),D=h("div","tw-row");D.append(st("span","tw-row-label","Mode"),lt.el),t.label&&p.append(st("div","tw-spring-label",t.label)),p.append(w,D,P,$);let d=1,S=500,g=1,L=40,X=null,H=C=>{if(!X)return;let G=T((C.clientX-X.left)/X.width,0,1),z=T((C.clientY-X.top)/X.height,0,1);f==="time"?(A.set(.1+G*(1-.1)),y.visualDuration=A.get(),O.set(1-z),y.bounce=O.get()):(U.stiffness.set(d+G*(S-d)),E.stiffness=U.stiffness.get(),U.damping.set(g+z*(L-g)),E.damping=U.damping.get()),K(),Y()};Vt(w,{onDown:C=>{C.preventDefault(),X=w.getBoundingClientRect(),w.classList.add("is-dragging"),H(C)},onMove:H,onEnd:()=>{X=null,w.classList.remove("is-dragging")}}),ot(),Tt(K),At(v,[[window,"resize"],[window,"tw-reflow"],[matchMedia("(prefers-color-scheme: dark)"),"change"],[window,"tw-retheme"]],K);let F=null,W=!1;return typeof MutationObserver=="function"&&(F=new MutationObserver(()=>{v.isConnected?(W=!0,K()):W&&(F.disconnect(),F=null)}),F.observe(document.documentElement,{subtree:!0,attributes:!0,attributeFilter:["data-tw-scheme"]})),{el:p,destroy:()=>{F&&(F.disconnect(),F=null)},set:C=>{if(!C||typeof C!="object")return;let G=u(C.mode),z=r(C.visualDuration)||r(C.bounce),ct=r(C.stiffness)||r(C.damping)||r(C.mass);!z&&!ct&&!G||(f=G??(z?"time":"physics"),z&&(r(C.visualDuration)&&(y.visualDuration=a(C.visualDuration)),r(C.bounce)&&(y.bounce=l(C.bounce))),ct&&(E=o({...E,...C})),lt.set(f),A.set(y.visualDuration),O.set(y.bounce),U.stiffness.set(E.stiffness),U.damping.set(E.damping),U.mass.set(E.mass),ot(),K())},get:()=>q()}}at("spring",Rs);function Hs(t,e){let n=[.25,.1,.25,1],o=-.25,r=1.25,s=r-o,i=8,a=d=>d.map((S,g)=>T(S,g%2?o:0,g%2?r:1)),l=Array.isArray(t.value)&&t.value.length===4?t.value.map(Number):n.slice();l.some(d=>!Number.isFinite(d))&&(l=n.slice()),l=a(l);let b=l.slice(),u=h("div","tw-bezier");t.label&&u.append(st("div","tw-bezier-label",t.label));let c=h("div","tw-bezier-graph"),f=kt("svg","tw-bezier-svg");f.setAttribute("preserveAspectRatio","none");let y=kt("line","tw-bezier-guide"),E=kt("line","tw-bezier-guide"),p=kt("line","tw-bezier-diag"),w=kt("line","tw-bezier-ctl"),v=kt("line","tw-bezier-ctl"),P=kt("path","tw-bezier-curve");f.append(y,E,p,w,v,P);let $=wt("tw-bezier-handle");$.setAttribute("aria-label","Control point 1");let N=wt("tw-bezier-handle");N.setAttribute("aria-label","Control point 2"),c.append(f,$,N);let R=h("div","tw-fields tw-bezier-fields");u.append(c,R);let K=0,q=0,Y=d=>i+d*(K-2*i),U=d=>q-i-(d-o)/s*(q-2*i),A=(d,S,g,L,X)=>{d.setAttribute("x1",S),d.setAttribute("y1",g),d.setAttribute("x2",L),d.setAttribute("y2",X)},O=()=>{if($.setAttribute("aria-label",`Control point 1, x ${l[0]}, y ${l[1]}`),N.setAttribute("aria-label",`Control point 2, x ${l[2]}, y ${l[3]}`),K=c.offsetWidth,q=c.offsetHeight,K<2)return;f.setAttribute("viewBox",`0 0 ${K} ${q}`);let[d,S,g,L]=l,X=Y(0),H=U(0),F=Y(1),W=U(1),C=Y(d),G=U(S),z=Y(g),ct=U(L);A(y,i,H,K-i,H),A(E,i,W,K-i,W),A(p,X,H,F,W),A(w,X,H,C,G),A(v,F,W,z,ct),P.setAttribute("d",`M${X},${H} C${C},${G} ${z},${ct} ${F},${W}`),$.style.left=C+"px",$.style.top=G+"px",N.style.left=z+"px",N.style.top=ct+"px"},ot=[{label:"X1",i:0,lo:0,hi:1},{label:"Y1",i:1,lo:o,hi:r},{label:"X2",i:2,lo:0,hi:1},{label:"Y2",i:3,lo:o,hi:r}],tt=ot.map(d=>{let S=Dt({label:d.label,value:l[d.i],step:.01,min:d.lo,max:d.hi},g=>{l[d.i]=g,O(),e(l.slice())});return R.append(S.el),S}),lt=()=>tt.forEach((d,S)=>d.set(l[ot[S].i])),D=(d,S)=>{let g=null,L=0,X=0,H=1;Vt(d,{onDown:F=>{F.preventDefault(),g=c.getBoundingClientRect(),L=c.offsetWidth||g.width,X=c.offsetHeight||g.height,H=g.width/L,d.classList.add("is-dragging"),d.focus({focusVisible:!1})},onMove:F=>{let W=(F.clientX-g.left)/H,C=(F.clientY-g.top)/H,G=T((W-i)/(L-2*i),0,1),z=T(o+(X-i-C)/(X-2*i)*s,o,r);l[S*2]=+G.toFixed(2),l[S*2+1]=+z.toFixed(2),O(),lt(),e(l.slice())},onEnd:()=>{g=null,d.classList.remove("is-dragging")}}),d.addEventListener("keydown",F=>{if(F.key==="Escape")return d.blur();if(F.key==="Home"){F.preventDefault(),l=b.slice(),O(),lt(),e(l.slice());return}let W=F.key==="ArrowRight"?1:F.key==="ArrowLeft"?-1:0,C=F.key==="ArrowUp"?1:F.key==="ArrowDown"?-1:0;if(!W&&!C)return;F.preventDefault();let G=F.shiftKey?.1:.01,z=S*2;W&&(l[z]=+T(l[z]+W*G,0,1).toFixed(2)),C&&(l[z+1]=+T(l[z+1]+C*G,o,r).toFixed(2)),O(),lt(),e(l.slice())})};return D($,0),D(N,1),Tt(O),At(u,[[window,"resize"],[window,"tw-reflow"]],O),{el:u,set:d=>{if(Array.isArray(d)&&d.length===4){let S=d.map(Number);if(S.some(g=>!Number.isFinite(g)))return;l=a(S),O(),lt()}},get:()=>l.slice()}}at("cubicbezier",Hs);function Ds(t,e){let n=t.components,{root:o,trigger:r,right:s}=te("tw-point",t.label??"Point"),i=h("span","tw-trigger-value"),a=h("div","tw-trigger-chip tw-point-preview"),l=h("div","tw-point-preview-dot");a.append(l),s.append(i,a);let b=h("div","tw-color-pop tw-point-pop"),u=h("div","tw-point-body");b.append(u);let c=t.pad!==!1&&n.length>=2,f=d=>{let S=Me(Math.abs(Number.isFinite(+d.value)?+d.value:0))[1],g=d.min??-S,L=d.max??S,X=10**Math.floor(Math.log10((L-g)/200));return{lo:g,hi:L,step:d.step??(X>0&&Number.isFinite(X)?X:1)}},y=n.map(f),E=y[0],p=y[1],w=E?.lo??-1,v=E?.hi??1,P=p?.lo??-1,$=p?.hi??1,N=(d,S,g)=>g>S?T((d-S)/(g-S),0,1):.5,R=null,K=null,q=null;if(c){R=h("div","tw-pad"),K=h("div","tw-pad-thumb");let d=kt("svg","tw-pad-line");d.setAttribute("viewBox","0 0 100 100"),d.setAttribute("preserveAspectRatio","none"),q=kt("line"),d.append(q);let S=N(0,P,$);q.setAttribute("x1",N(0,w,v)*100),q.setAttribute("y1",(t.invertY?S:1-S)*100),R.append(h("div","tw-pad-axis tw-pad-axis-x"),h("div","tw-pad-axis tw-pad-axis-y"),d,K),u.append(R)}let Y=h("div","tw-fields");u.append(Y);let U=()=>{D(),lt()},A=()=>e(ot()),O=n.map((d,S)=>{let g=Dt({label:d.label,value:d.value??0,step:y[S].step,min:d.min,max:d.max},()=>{U(),A()});return Y.append(g.el),g}),ot=()=>Object.fromEntries(n.map((d,S)=>[d.key,O[S].get()])),tt=(d,S)=>(+d).toFixed(Kt(S)),lt=()=>{i.textContent=n.map((d,S)=>tt(O[S].get(),y[S].step)).join(", ")},D=()=>{l.style.left="50%",l.style.top="50%"};if(c){let S=L=>`calc(${(L*100).toFixed(2)}% + ${((.5-L)*5).toFixed(2)}px)`;D=()=>{let L=N(O[0].get(),w,v),X=N(O[1].get(),P,$),H=t.invertY?X:1-X,F=L*100,W=H*100;K.style.left=F+"%",K.style.top=W+"%",l.style.left=S(L),l.style.top=S(H),q.setAttribute("x2",F),q.setAttribute("y2",W),R.setAttribute("aria-description",`${n[0].label??n[0].key} ${tt(O[0].get(),E.step)}, ${n[1].label??n[1].key} ${tt(O[1].get(),p.step)}`)},ke(R,L=>{let[X,H]=Le(L,R),F=t.invertY?H:1-H;O[0].set(w+X*(v-w)),O[1].set(P+F*($-P)),U(),A()}),R.tabIndex=0,R.setAttribute("role","group"),R.setAttribute("aria-label",`${t.label??"Point"} pad: ${n[0].label??n[0].key} and ${n[1].label??n[1].key}`),R.addEventListener("keydown",L=>{if(L.key==="Home"){L.preventDefault(),n.forEach((W,C)=>O[C].set(W.value??0)),U(),A();return}let X=L.key==="ArrowRight"?1:L.key==="ArrowLeft"?-1:0,H=L.key==="ArrowUp"?1:L.key==="ArrowDown"?-1:0;if(!X&&!H)return;L.preventDefault();let F=L.shiftKey?10:1;X&&O[0].set(T(O[0].get()+X*E.step*F,w,v)),H&&O[1].set(T(O[1].get()+(t.invertY?-H:H)*p.step*F,P,$)),U(),A()})}return o.append(b),Bt(o,r,b,{width:216,fallbackH:240,gap:6,onOpen:U}),U(),{el:o,set:d=>{d&&n.forEach((S,g)=>{d[S.key]!=null&&O[g].set(d[S.key])}),U()},get:ot}}at("point",Ds);var Is=Object.assign(Object.create(null),{sin:Math.sin,cos:Math.cos,tan:Math.tan,asin:Math.asin,acos:Math.acos,atan:Math.atan,atan2:Math.atan2,sinh:Math.sinh,cosh:Math.cosh,tanh:Math.tanh,sqrt:Math.sqrt,cbrt:Math.cbrt,abs:Math.abs,exp:Math.exp,log:Math.log,ln:Math.log,log10:Math.log10,log2:Math.log2,floor:Math.floor,ceil:Math.ceil,round:Math.round,sign:Math.sign,trunc:Math.trunc,min:Math.min,max:Math.max,pow:Math.pow,hypot:Math.hypot,mod:(t,e)=>t%e,clamp:(t,e,n)=>Math.min(Math.max(t,e),n)}),pr=Object.assign(Object.create(null),{pi:Math.PI,e:Math.E,tau:Math.PI*2,phi:(1+Math.sqrt(5))/2});function so(t){if(typeof t!="string"||!t.trim()||t.length>512)return null;let e=t,n=[],o=/\d*\.?\d+(?:[eE][+-]?\d+)?/y,r=/[A-Za-z_]\w*/y,s=0;for(;s<e.length;){let p=e[s];if(p===" "||p===" "||p===`
4
- `){s++;continue}if(p>="0"&&p<="9"||p==="."&&e[s+1]>="0"&&e[s+1]<="9"){o.lastIndex=s;let w=o.exec(e);if(!w||w.index!==s)return null;n.push({t:"num",v:parseFloat(w[0])}),s=o.lastIndex;continue}if(p>="A"&&p<="Z"||p>="a"&&p<="z"||p==="_"){r.lastIndex=s;let w=r.exec(e);n.push({t:"id",v:w[0]}),s=r.lastIndex;continue}if(p==="*"&&e[s+1]==="*"){n.push({t:"op",v:"^"}),s+=2;continue}if("+-*/%^".includes(p)){n.push({t:"op",v:p}),s++;continue}if(p==="("){n.push({t:"lp"}),s++;continue}if(p===")"){n.push({t:"rp"}),s++;continue}if(p===","){n.push({t:"comma"}),s++;continue}return null}if(!n.length)return null;let i=0,a=()=>n[i],l=p=>{let w=n[i];return!w||p&&w.t!==p?null:(i++,w)},b=()=>{let p=u();if(!p)return null;for(;a()&&a().t==="op"&&(a().v==="+"||a().v==="-");){let w=l("op").v,v=u();if(!v)return null;let P=p;p=w==="+"?$=>P($)+v($):$=>P($)-v($)}return p},u=()=>{let p=c();if(!p)return null;for(;a()&&a().t==="op"&&(a().v==="*"||a().v==="/"||a().v==="%");){let w=l("op").v,v=c();if(!v)return null;let P=p;p=w==="*"?$=>P($)*v($):w==="/"?$=>P($)/v($):$=>P($)%v($)}return p},c=()=>{if(a()&&a().t==="op"&&(a().v==="-"||a().v==="+")){let p=l("op").v,w=c();return w?p==="-"?v=>-w(v):w:null}return f()},f=()=>{let p=y();if(!p)return null;if(a()&&a().t==="op"&&a().v==="^"){l("op");let w=c();return w?v=>Math.pow(p(v),w(v)):null}return p},y=()=>{let p=a();if(!p)return null;if(p.t==="num")return l("num"),()=>p.v;if(p.t==="lp"){l("lp");let w=b();return!w||!l("rp")?null:w}if(p.t==="id"){l("id");let w=p.v.toLowerCase();if(a()&&a().t==="lp"){let v=Is[w];if(!v)return null;l("lp");let P=[];if(a()&&a().t!=="rp")do{let $=b();if(!$)return null;P.push($)}while(l("comma"));return l("rp")?$=>v(...P.map(N=>N($))):null}if(w==="x")return v=>v;if(w in pr){let v=pr[w];return()=>v}return null}return null},E=b();return E&&i===n.length?E:null}function js(t,e){let n=Number(t.xMin),o=Number(t.xMax);if(Number.isFinite(n)||(n=-10),Number.isFinite(o)||(o=10),o<n){let P=n;n=o,o=P}o===n&&(n-=1,o+=1);let r=Math.max(2,Math.min(4096,t.samples|0||256)),s=Number.isFinite(t.yMin)&&Number.isFinite(t.yMax)&&+t.yMax>+t.yMin,i=t.editable!==!1&&!t.fn,a=t.expr!=null?String(t.expr):"",l=typeof t.fn=="function"?t.fn:so(a),b=h("div","tw-plot");t.label&&b.append(st("div","tw-plot-label",t.label));let u=h("div","tw-plot-graph"),c=kt("svg","tw-plot-svg");c.setAttribute("preserveAspectRatio","none");let f=kt("line","tw-plot-axis"),y=kt("line","tw-plot-axis"),E=kt("path","tw-plot-curve");c.append(f,y,E),u.append(c),b.append(u);let p=null;if(i){let P=h("div","tw-plot-field");p=h("input","tw-plot-input"),p.type="text",p.value=a,p.spellcheck=!1,p.autocapitalize="off",p.autocomplete="off",Rt(p),p.setAttribute("aria-label",`${t.label||"Plot"} \u2014 expression in x`),p.setAttribute("aria-invalid","false"),P.append(st("span","tw-plot-fx","y ="),p),b.append(P)}let w=6,v=()=>{let P=typeof l=="function";b.classList.toggle("is-invalid",i&&!P),p&&p.setAttribute("aria-invalid",i&&!P?"true":"false");let $=u.getBoundingClientRect(),N=$.width,R=$.height;if(N<2)return;c.setAttribute("viewBox",`0 0 ${N} ${R}`);let K=[],q=1/0,Y=-1/0;if(P)for(let d=0;d<r;d++){let S=n+(o-n)*(d/(r-1)),g;try{g=l(S)}catch{g=NaN}K.push(g),Number.isFinite(g)&&(g<q&&(q=g),g>Y&&(Y=g))}let U=t.yMin,A=t.yMax;if(!s)if(!Number.isFinite(q)||q===Y){let d=Number.isFinite(q)?q:0;U=d-1,A=d+1}else{let d=(Y-q)*.12;U=q-d,A=Y+d}let O=d=>w+(d-n)/(o-n)*(N-2*w),ot=d=>R-w-(d-U)/(A-U)*(R-2*w),tt=(d,S,g,L,X,H)=>{d.style.display=H?"":"none",H&&(d.setAttribute("x1",S),d.setAttribute("y1",g),d.setAttribute("x2",L),d.setAttribute("y2",X))};tt(f,w,ot(0),N-w,ot(0),U<=0&&A>=0),tt(y,O(0),w,O(0),R-w,n<=0&&o>=0);let lt="",D=!1;if(P)for(let d=0;d<r;d++){let S=K[d];if(!Number.isFinite(S)){D=!1;continue}let g=O(n+(o-n)*(d/(r-1))),L=T(ot(S),-1e4,1e4);lt+=(D?"L":"M")+g.toFixed(1)+","+L.toFixed(1)+" ",D=!0}E.setAttribute("d",lt)};return i&&p.addEventListener("input",()=>{a=p.value,l=so(a),v(),e(a)}),Tt(v),At(b,[[window,"resize"],[window,"tw-reflow"]],v),{el:b,get:()=>a,set:P=>{P!=null&&(a=String(P),p&&(p.value=a),t.fn||(l=so(a)),v())}}}at("plot",js);var fr=Nt('<path class="tw-copy-back" d="m5.5 16.5-.7-.2q-1.5-.6-2.1-2.1-.2-.7-.2-2.7v-2c0-3.3 0-5 1-6s2.7-1 6-1h2c1.4 0 2 0 2.7.2q1.6.5 2.1 2.1l.2.7"/><path class="tw-copy-front" d="M7.5 14.5c0-3.3 0-5 1-6s2.7-1 6-1 5 0 6 1 1 2.7 1 6 0 5-1 6-2.7 1-6 1-5 0-6-1-1-2.7-1-6"/>',"tw-toolbar-btn__copy"),mr=Nt('<path d="m5 14 3.5 3.5L19 6.5"/>',"tw-toolbar-btn__check",2.4),br=Nt('<path d="M3 12a9 9 0 1 0 9-9 9 9 0 0 0-7.6 4.2M3.3 3l.2 2q0 2.2.6 2.7t2.7.2l2-.2"/>'),gr=Nt('<path d="m17 17 4 4m-2-10a8 8 0 0 0-16 0 8 8 0 0 0 16 0"/>'),io=t=>Nt('<path d="M18 9s-4.4 6-6 6-6-6-6-6"/>',t,2.5),hr=io("tw-chevron"),wr=Nt('<path d="M20.2 13.5q1.8.8 1.8 1.5 0 .8-2.7 2l-5 2.2Q13 20 12 20q-.7 0-2.4-.8l-4.9-2.3Q2 16 2 15t1.8-1.5"/><path class="tw-layer-top" d="M9.6 4.8Q11.3 4 12 4t2.4.8l4.9 2.3Q22 8 22 9c0 .7-.9 1.1-2.7 2l-5 2.2Q13 14 12 14q-.7 0-2.4-.8l-4.9-2.3Q2 10 2 9c0-.7.9-1.1 2.7-2z"/>'),yr=Nt('<path d="M18 6 6 18m12 0L6 6"/>',"",2.2),ao=Nt('<circle cx="12" cy="12" r="10"/><path d="M12 16v-4m-.25-3.75a.25.25 0 0 0 .5 0 .25.25 0 0 0-.5 0"/>');var Xe=(t,e,n)=>{let o=wt("tw-toolbar-btn"+(t?" "+t:""),e);return o.title=n,o.setAttribute("aria-label",n),o},En=(t,e,n)=>{let o=Xe("tw-toolbar-btn--swap",`<span class="tw-toolbar-btn__icons">${fr}${mr}</span>`,"Copy values");return o.addEventListener("click",async()=>{o.disabled||(await Xs(n())?(Bs(o),ee(`${e} values copied`,t)):ee("Copy failed",t))}),o},kn=t=>{let e=Xe("tw-toolbar-btn--reset",br,"Reset");return e.addEventListener("click",()=>{e.disabled||(lo(e),t())}),e},Bs=t=>{t.classList.add("is-copied"),clearTimeout(t._t),t._t=setTimeout(()=>t.classList.remove("is-copied"),1400)},lo=t=>{let e=t.querySelector("svg");t._spinSettle||(t._spinSettle=()=>{clearTimeout(t._t),t.classList.remove("is-spinning"),e.style.transition="none",e.style.setProperty("--tw-spin","0deg"),e.getBoundingClientRect(),e.style.transition=""},e.addEventListener("transitionend",o=>{o.propertyName==="transform"&&t.classList.contains("is-spinning")&&performance.now()-t._spinT>250&&t._spinSettle()})),t._spinT=performance.now(),e.style.setProperty("--tw-spin",`${(parseFloat(e.style.getPropertyValue("--tw-spin"))||0)-360}deg`),t.classList.add("is-spinning"),clearTimeout(t._t);let n=()=>{e.getAnimations&&e.getAnimations().length?t._t=setTimeout(n,250):t._spinSettle()};t._t=setTimeout(n,600)},Wt=null,vr=0;function ee(t,e){Wt||(Wt=h("div","tw-toast tw-portal"),Wt.setAttribute("role","status")),Wt.isConnected||document.body.appendChild(Wt),Wt.textContent=t,ae(Wt,e),Wt.classList.add("is-open"),clearTimeout(vr),vr=setTimeout(()=>Wt.classList.remove("is-open"),1600)}var Lt=null,Mn=0,xn=null,xr=t=>{t.key==="Escape"&&Ge()},Ge=t=>{t&&xn&&!t.contains(xn)||(clearTimeout(Mn),document.removeEventListener("keydown",xr),Lt&&Lt.classList.remove("is-open"))};function Vs(t,e){Lt||(Lt=h("div","tw-tip tw-portal"),Lt.setAttribute("role","tooltip")),Lt.isConnected||document.body.appendChild(Lt),clearTimeout(Mn),Lt.textContent=e,ae(Lt,t);let n=Lt.classList.contains("is-open");Lt.style.visibility="hidden",Lt.classList.add("is-open"),_n(t,Lt,{align:"center",prefer:"above",gap:8}),Lt.style.visibility="",document.addEventListener("keydown",xr),xn=t,n||requestAnimationFrame(function o(){if(Lt.classList.contains("is-open")){if(!xn.isConnected)return Ge();requestAnimationFrame(o)}})}function Mr(){Lt&&(clearTimeout(Mn),Mn=setTimeout(Ge,80))}var co=".tw-slider-label, .tw-row-label, .tw-select-label, .tw-trigger-label, .tw-radiogrid-label, .tw-field-label, .tw-folder-title, .tw-fps-label, .tw-plot-label";function Ae(t,e){let n=t.querySelector(co)||t;if(n===t&&t.classList.contains("tw-separator"))return;let o=n.closest("button"),r=o?h("span","tw-hint",ao):wt("tw-hint",ao),s=()=>Vs(r,e);if(o){r.setAttribute("aria-hidden","true");let i=o.getAttribute("aria-description");o.setAttribute("aria-description",i?`${i}. ${e}`:e)}else r.setAttribute("aria-label",e),r.addEventListener("focus",s),r.addEventListener("blur",Mr),r.addEventListener("keydown",i=>{(i.key==="Enter"||i.key===" ")&&i.stopPropagation()});r.addEventListener("pointerenter",s),r.addEventListener("pointerleave",Mr),r.addEventListener("pointerdown",i=>i.stopPropagation()),r.addEventListener("click",i=>{i.preventDefault(),i.stopPropagation()}),n.appendChild(r)}async function Xs(t){try{return await navigator.clipboard.writeText(t),!0}catch{}let e=document.createElement("textarea");e.value=t,e.style.position="fixed",e.style.top="-9999px",document.body.appendChild(e),e.focus(),e.select();let n=!1;try{n=document.execCommand("copy")}catch{}return document.body.removeChild(e),n}function me(t,e,n=0){if(Ln(t))return null;let o=zs(t,e,n);return o&&e&&typeof e=="object"&&(typeof e.render=="function"&&(o.render=e.render),e.disabled!=null&&(o.disabled=e.disabled),e.hint!=null&&(o.hint=String(e.hint))),o}var fe=t=>t&&typeof t=="object",ne=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),Ln=t=>t==="__proto__"||t==="constructor"||t==="prototype",oe=(t,e)=>t!==e&&!(fe(t)&&fe(e)&&JSON.stringify(t)===JSON.stringify(e)),Cn=(t,e,n)=>{t.set(n),t.set(e)},Er=t=>Array.isArray(t.options)&&{type:"radiogrid",options:t.options,value:t.value??qt(t.options[0]),cols:t.cols},Ar="#7c5cff",kr=(t,...e)=>{let n=(e.length?e:[0]).map(s=>Me(Number.isFinite(+s)?+s:0)),o=t.min??Math.min(...n.map(s=>s[0])),r=t.max??Math.max(...n.map(s=>s[1]));return{min:o,max:r,step:t.step??ve(o,r)}},Lr=(t,e)=>t.label==null?e:String(t.label),Cr={slider:t=>{let e=kr(t,t.value??t.min??0);return{value:t.value??e.min,...e,soft:t.soft}},number:t=>({value:t.value??0,min:t.min,max:t.max,step:t.step??1,soft:t.soft}),checkbox:t=>({value:!!t.value}),radiogrid:Er,segmented:Er,list:t=>Array.isArray(t.options)&&{options:t.options,value:t.value??qt(t.options[0])},color:t=>({value:t.value??Ar}),text:t=>({value:t.value??"",rows:t.rows,placeholder:t.placeholder}),interval:t=>{let e=kr(t,...Array.isArray(t.value)?t.value:[]);return{value:(Array.isArray(t.value)?t.value:[e.min,e.max]).map(Number),...e}},spring:t=>{let e=fe(t.value)?t.value:t,n={stiffness:e.stiffness??300,damping:e.damping??26,mass:e.mass??1};Number.isFinite(+e.visualDuration)&&(n.visualDuration=+e.visualDuration),Number.isFinite(+e.bounce)&&(n.bounce=+e.bounce);let o=t.mode??e.mode;return(o==="time"||o==="physics")&&(n.mode=o),{value:n}},cubicbezier:t=>({value:Array.isArray(t.value)&&t.value.length===4?t.value.map(Number):[.25,.1,.25,1]}),point:t=>{if(!Array.isArray(t.components)||!t.components.length)return!1;let e=new Set,n=t.components.map((o,r)=>{let s=String(o.key??((o.label?String(o.label).toLowerCase():"")||`c${r}`)),i=s,a=2;for(;e.has(i);)i=`${s}-${a++}`;return e.add(i),{...o,key:i}});return{components:n,pad:t.pad,invertY:t.invertY,value:Object.fromEntries(n.map(o=>[o.key,o.value??0]))}},gradient:t=>({value:t.value??t.stops??null}),image:t=>({value:t.value||""}),plot:t=>{let e=t.expr!=null?String(t.expr):typeof t.fn=="function"?"":"sin(x)";return{value:e,expr:e,fn:typeof t.fn=="function"?t.fn:null,xMin:t.xMin??t.min??-10,xMax:t.xMax??t.max??10,yMin:t.yMin,yMax:t.yMax,samples:t.samples,editable:t.editable}},fpsgraph:()=>({}),monitor:t=>({get:t.get,value:t.value,graph:t.graph,view:t.view,min:t.min,max:t.max,interval:t.interval,rows:t.rows,decimals:t.decimals}),buttongroup:t=>({buttons:t.buttons}),separator:()=>({}),tabs:(t,e)=>{if(!t.pages||typeof t.pages!="object"||!Object.keys(t.pages).length)return!1;let n=new Set;return{pages:Object.entries(t.pages).map(([o,r])=>{let s=o.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"tab",i=s,a=2;for(;n.has(i);)i=`${s}-${a++}`;return n.add(i),{key:i,title:o.trim()?o:"Tab",children:Object.entries(r).map(([l,b])=>me(l,b,e+1)).filter(Boolean)}})}}},Gs=Object.assign(Object.create(null),{list:"options",radiogrid:"options",segmented:"options",point:"components",tabs:"pages"});function zs(t,e,n=0){if(n>64)return null;let o=qe(t),r=(s,i,a=o)=>({type:s,key:t,label:a,...i});if(fe(e)&&!Array.isArray(e)&&ne(Cr,e.type)){let s;try{s=Cr[e.type](e,n)}catch(i){return console.error(`[tweaks] malformed "${e.type}" schema value for "${t}" \u2014 control skipped:`,i),null}if(s)return r(String(e.type),s,Lr(e,o));if(ne(e,Gs[e.type]))return console.error(`[tweaks] malformed "${e.type}" schema value for "${t}" \u2014 control skipped`),null}if(Array.isArray(e)&&Array.isArray(e[0])&&e[0].length===2&&typeof e[0][0]=="number"){let s=Number.isFinite(+e[1])?+e[1]:+e[0][0],i=Number.isFinite(+e[2])?+e[2]:+e[0][1];return r("interval",{value:e[0].map(Number),min:s,max:i,step:e[3]??ve(s,i)})}if(Array.isArray(e)&&e.length<=4&&typeof e[0]=="number"){let s=e[0],[i,a]=Me(s),l=e.length>1?e[1]:i,b=e.length>2?e[2]:a;return r("slider",{value:s,min:l,max:b,step:e[3]??ve(l,b)})}if(typeof e=="number"){let[s,i]=Me(e);return r("slider",{value:e,min:s,max:i,step:ve(s,i)})}return typeof e=="boolean"?r("checkbox",{value:e}):Array.isArray(e)?r("list",{options:e,value:qt(e[0])}):fe(e)&&typeof e.action=="function"?r("button",{action:e.action},Lr(e,o)):fe(e)&&Array.isArray(e.options)?r("list",{options:e.options,value:e.value??qt(e.options[0])}):wo(e)?r("color",{value:e}):typeof e=="string"?r("text",{value:e}):fe(e)?r("folder",{children:Object.entries(e).filter(([s,i])=>!(s==="render"&&typeof i=="function")&&!((s==="disabled"||s==="hint")&&i!=null)).map(([s,i])=>me(s,i,n+1)).filter(Boolean)}):null}var Sn=new Set(["button","fpsgraph","monitor","buttongroup","separator"]),Sr={slider:t=>({value:pt(t.value),min:pt(t.min),max:pt(t.max),step:pt(t.step),soft:Tr(t.soft)}),checkbox:t=>t.options?{type:"radiogrid",options:ze(t.options),value:t.value,cols:pt(t.cols)}:{value:t.checked==="true"},radiogrid:t=>({options:ze(t.options),value:t.value,cols:pt(t.cols)}),list:t=>({options:ze(t.options),value:t.value}),color:t=>({value:t.value||Ar}),button:(t,e,n)=>({action:()=>ee(`${n} pressed`,e)}),buttongroup:(t,e)=>({buttons:ze(t.buttons).map(n=>({label:n,action:()=>ee(`${n} pressed`,e)}))}),separator:()=>({}),number:t=>({value:pt(t.value),min:pt(t.min),max:pt(t.max),step:pt(t.step)}),text:t=>({value:t.value??"",placeholder:t.placeholder,rows:pt(t.rows)}),image:t=>({value:t.value}),fpsgraph:t=>({label:t.label??"FPS"}),interval:t=>({value:t.value?t.value.split(",").map(Number):void 0,min:pt(t.min),max:pt(t.max),step:pt(t.step)}),spring:t=>({stiffness:pt(t.stiffness),damping:pt(t.damping),mass:pt(t.mass),visualDuration:pt(t.visualDuration),bounce:pt(t.bounce),mode:t.mode}),cubicbezier:t=>({value:t.value?t.value.split(",").map(Number):void 0}),point:t=>{let e=(t.value||"").split(",").map(n=>parseFloat(n));return{components:ze(t.components||"X,Y").map((n,o)=>({key:n.toLowerCase(),label:n,value:isNaN(e[o])?0:e[o],step:pt(t.step),min:pt(t.min),max:pt(t.max)})),pad:Tr(t.pad),invertY:t.invertY==="true"}},plot:t=>({expr:t.expr,xMin:pt(t.xmin),xMax:pt(t.xmax),yMin:pt(t.ymin),yMax:pt(t.ymax),samples:pt(t.samples),editable:t.editable!=="false"})},pt=t=>{if(t==null||t==="")return;let e=+t;return Number.isFinite(e)?e:void 0},Tr=t=>t==="true"||t==="",ze=t=>(t||"").split(",").map(e=>e.trim()).filter(Boolean),Or=t=>{let e=t.dataset,n=e.tw;if(!ne(Sr,n))return null;let o=e.label??qe(e.key||n),r=Sr[n](e,t,o);return me("v",{type:n,label:o,...r})};var uo={},Tn={},Ks=t=>Qt(t)||!uo[t]?null:Tn[t]||(Tn[t]=uo[t]().catch(e=>{throw delete Tn[t],console.error(`[tweaks] control chunk "${t}" failed to load:`,e),e})),po=(t,e=new Set)=>{for(let n of t)if(n&&(uo[n.type]&&e.add(n.type),n.children&&po(n.children,e),n.pages))for(let o of n.pages)po(o.children,e);return e},Oe=t=>{let e=[...po(t)].map(Ks).filter(Boolean);return e.length?Promise.all(e):null};var qs=3,Pr=32,Nr=200,Fr=8;function Ys(t,e){let n=t.label,{min:o,max:r,step:s}=Ye(t.min,t.max,t.step);t.soft||([o,r]=ye(o,r,s));let i=(r-o)/s<=6,a=Number.isFinite(+t.value)?+t.value:o,l=t.soft&&!i?a:T(a,o,r),b=0,u=Kt(s),c=h("div","tw-slider-wrap"),f=h("div","tw-slider"),y=h("div","tw-slider-hashmarks"),E=h("div","tw-slider-fill"),p=h("div","tw-slider-handle"),w=st("span","tw-slider-label",n),v=h("span","tw-slider-value");f.append(y,E,p,w,v),c.append(f),f.tabIndex=0,f.setAttribute("role","slider"),f.setAttribute("aria-label",n),f.setAttribute("aria-valuemin",String(o)),f.setAttribute("aria-valuemax",String(r));let P=k=>le(k,o,s),$=i?Array.from({length:Math.max(0,Math.round((r-o)/s)-1)},(k,J)=>(J+1)*s/(r-o)*100):[];for(let k of $){let J=h("div","tw-slider-hashmark");J.style.left=k+"%",y.append(J)}let N=()=>{let k=T((l-o)/(r-o||1)*100,0,100),J=b?` + ${b.toFixed(1)}px`:"",it=`${k}%${J}`;E.style.width=b?`calc(${it})`:k+"%",p.style.left=`max(5px, calc(${it} - 9px))`;let rt=P(l),dt=rt.toFixed(u);v.textContent=dt,f.setAttribute("aria-valuenow",String(rt)),f.setAttribute("aria-valuetext",dt);let Et=c.offsetWidth;if(Et){let xt=Math.max(5,k/100*Et+b-9);f.classList.toggle("is-dodge",We(w,v,xt,3))}};N();let R=null,K=1,q=null,Y=!0,U,A=null,O=null,ot=`width 0.34s ${Hn}`,tt=`left 0.34s ${Hn}, opacity 0.15s, transform 0.2s ${De}`,lt=.2,D=k=>{if(!R)return l;let J=c.offsetWidth||R.width,it=T((k-R.left)/K/J,0,1);return T(o+it*(r-o),o,r)},d=k=>{let J=0;k<R.left?J=-Fr*Math.sqrt(Math.min(Math.max(0,R.left-k-Pr)/Nr,1)):k>R.right&&(J=Fr*Math.sqrt(Math.min(Math.max(0,k-R.right-Pr)/Nr,1))),f.style.width=`calc(100% + ${Math.abs(J)}px)`,f.style.transform=J<0?`translateX(${J}px)`:""},S=(k,J=!0)=>{k=+k,Number.isFinite(k)&&(l=i?T(P(k),o,r):t.soft?k:T(k,o,r),N(),J&&e(P(l)))},g=Math.max(1,Math.round((r-o)/s)),L=.2,X=.3,H=520,F=27,W=k=>(k-o)/s,C=0,G=0,z=0,ct=!1,mt=null,Ft=l,Ot=0,yt=()=>{z&&cancelAnimationFrame(z),z=0,Ot=0},Ct=k=>{if(!f.isConnected){yt();return}let J=Ot?Math.min((k-Ot)/1e3,.05):1/60;Ot=k;let it=c.offsetWidth||R&&R.width||1,rt=W(T(Ft,o,r)),dt=T(Math.round(rt+L),0,g),Et=ct?dt+X*T(rt-dt,-.5,.5):dt;if(xe&&xe.matches)C=Et,G=0;else{let xt=J,It=1/240;for(;xt>1e-4;){let _t=Math.min(It,xt);xt-=_t;let re=H*(Et-C)-F*G;G+=re*_t,C+=G*_t,C<0&&(C=0,G=0),C>g&&(C=g,G=0)}}b=(C-dt)*s/(r-o||1)*it,l=T(o+dt*s,o,r),N(),dt!==mt&&(mt=dt,e(P(l))),!ct&&Math.abs(G)<.004&&Math.abs(C-dt)<.004?(C=dt,G=0,b=0,N(),yt(),f.classList.remove("is-active")):z=requestAnimationFrame(Ct)},ht=k=>{C=W(l),G=0,ct=!0,mt=Math.round(W(l)),Ft=D(k),z||(z=requestAnimationFrame(Ct))};f.addEventListener("pointerdown",k=>{if(!v.classList.contains("is-editing")&&!(k.button!==0||q)){k.preventDefault(),f.focus({focusVisible:!1}),O=k.pointerId;try{k.target.setPointerCapture(k.pointerId)}catch{}clearTimeout(U),f.style.transition="",q={x:k.clientX,y:k.clientY},Y=!0,f.classList.add("is-active"),R=c.getBoundingClientRect(),K=R.width/(c.offsetWidth||R.width),i?(E.style.transition="",p.style.transition="",ht(k.clientX)):(E.style.transition=ot,p.style.transition=tt,S(D(k.clientX)))}}),f.addEventListener("pointermove",k=>{if(!(!q||k.pointerId!==O)){if(k.buttons===0){vt();return}if(Y&&Math.hypot(k.clientX-q.x,k.clientY-q.y)>qs&&(Y=!1,f.classList.add("is-dragging"),i||(E.style.transition="",p.style.transition="")),!Y)if(d(k.clientX),i)Ft=D(k.clientX);else{let J;if(k.altKey){A||(A={x:k.clientX,v:l});let it=c.offsetWidth||R.width;J=T(A.v+(k.clientX-A.x)/it*(r-o)*lt,o,r)}else A=null,J=D(k.clientX);S(J)}k.clientX>=R.left&&k.clientX<=R.right&&(f.style.width="",f.style.transform="")}});let vt=k=>{!q||k&&k.pointerId!==O||(i?(ct=!1,f.classList.remove("is-dragging"),z||(z=requestAnimationFrame(Ct))):(U=setTimeout(()=>{E.style.transition="",p.style.transition=""},360),f.classList.remove("is-active","is-dragging")),f.style.transition=`width 0.35s ${De}, transform 0.35s ${De}`,f.style.width="",f.style.transform="",setTimeout(()=>{f.style.transition=""},360),q=null,A=null,O=null)};f.addEventListener("pointerup",vt),f.addEventListener("pointercancel",vt),f.addEventListener("lostpointercapture",vt),Ue(f,N),Tt(N),At(f,[[window,"resize"]],N),f.addEventListener("keydown",k=>{if(k.target!==f||q)return;let J=ce(k,l,s,o,r,(r-o)/10||s*10);J!=null&&(k.preventDefault(),i&&(yt(),b=0,f.classList.remove("is-active")),S(T(J,o,r)))});let j;v.addEventListener("mouseenter",()=>{j=setTimeout(()=>v.classList.add("is-editable"),800)}),v.addEventListener("mouseleave",()=>{clearTimeout(j),v.classList.contains("is-editing")||v.classList.remove("is-editable")}),v.addEventListener("pointerdown",k=>{k.pointerType&&k.pointerType!=="mouse"?(v.classList.add("is-editable"),k.stopPropagation()):v.classList.contains("is-editable")&&k.stopPropagation()});let V=()=>{if(v.classList.contains("is-editing"))return;let k=h("input","tw-slider-input");k.type="text",k.inputMode="decimal",Rt(k),k.value=P(l).toFixed(u),v.classList.add("is-editing"),v.replaceWith(k),k.focus(),k.select();let J=()=>{k.replaceWith(v),v.classList.remove("is-editing","is-editable")},it=()=>{let rt=parseFloat(k.value);isNaN(rt)||S(t.soft?rt:T(rt,o,r)),J()};k.addEventListener("pointerdown",rt=>rt.stopPropagation()),k.addEventListener("blur",it),k.addEventListener("keydown",rt=>{rt.key==="Enter"?(k.removeEventListener("blur",it),f.focus(),it()):rt.key==="Escape"&&(rt.stopPropagation(),k.removeEventListener("blur",it),f.focus(),J())})};return v.addEventListener("click",()=>{v.classList.contains("is-editable")&&V()}),f.addEventListener("keydown",k=>{k.key==="Enter"&&k.target===f&&!q&&(k.preventDefault(),V())}),{el:c,set:k=>S(k,!1),get:()=>P(l)}}function Ws(t,e){let n=h("div","tw-row"),o=en([{value:"off",label:"Off"},{value:"on",label:"On"}],t.value?"on":"off",r=>e(r==="on"),t.label);return n.append(st("span","tw-row-label",t.label),o.el),{el:n,set:r=>o.set(r?"on":"off"),get:()=>o.get()==="on"}}function Us(t,e){let n=t.options||[],o=Math.min(3,Math.max(2,t.cols||(n.length<=3?n.length:n.length===4?2:3))),r=h("div","tw-radiogrid"),s=h("div","tw-radiogrid-grid");s.style.setProperty("--tw-rg-cols",o),s.setAttribute("role","radiogroup"),s.setAttribute("aria-label",t.label);let i=t.value??qt(n[0]),a=n.map(u=>{let c=jn("tw-radiogrid-btn",u,f=>b(f));return s.append(c),c}),l=()=>In(a,i),b=(u,c=!0)=>{u!=null&&!a.some(f=>f._twVal===u)||(i=u,l(),c&&e(u))};return s.addEventListener("keydown",u=>{let c=tn(a,i);if(c<0)return;let f=Ie(u.key,c,a.length,o);f<0||(u.preventDefault(),f!==c&&(b(a[f]._twVal),a[f].focus()))}),l(),r.append(st("span","tw-radiogrid-label",t.label),s),{el:r,set:u=>b(u,!1),get:()=>i}}var Js=io("tw-select-chevron");function Zs(t,e){let n=t.value,o=t.options.map(y=>({value:qt(y),label:Pn(y)})),r=h("div","tw-select"),s=wt("tw-select-trigger");s.setAttribute("aria-haspopup","listbox"),s.setAttribute("aria-expanded","false");let i=h("span","tw-select-right"),a=h("span","tw-select-value");i.append(a),i.insertAdjacentHTML("beforeend",Js),s.append(st("span","tw-select-label",t.label),i);let l=h("div","tw-select-dropdown");l.setAttribute("role","listbox");let b=o.map(y=>{let E=wt("tw-select-option");return E.setAttribute("role","option"),E.textContent=y.label,E.dataset.value=y.value,E.addEventListener("click",()=>{c(y.value),f.close()}),l.append(E),E});r.append(s,l);let u=()=>{a.textContent=(o.find(y=>y.value===n)||{}).label??n,b.forEach(y=>{let E=y.dataset.value===String(n);y.dataset.selected=String(E),y.setAttribute("aria-selected",String(E))})},c=(y,E=!0)=>{y!=null&&!o.some(p=>p.value===y)||(n=y,u(),E&&e(y))},f=Bt(r,s,l,{width:"match",fallbackH:200,gap:4,onOpen:()=>(b.find(y=>y.dataset.value===String(n))||b[0])?.focus()});return s.addEventListener("keydown",y=>{!f.isOpen()&&(y.key==="ArrowDown"||y.key==="ArrowUp")&&(y.preventDefault(),f.open())}),l.addEventListener("keydown",y=>{let E=b.indexOf(document.activeElement),p=E;if(y.key==="ArrowDown")p=E<0?0:Math.min(b.length-1,E+1);else if(y.key==="ArrowUp")p=E<0?b.length-1:Math.max(0,E-1);else if(y.key==="Home")p=0;else if(y.key==="End")p=b.length-1;else return;y.preventDefault(),b[p]?.focus()}),u(),{el:r,set:y=>c(y,!1),get:()=>n}}function Qs(t){let e=st("button","tw-button",t.label);return e.addEventListener("click",()=>t.action&&t.action()),Yt(e)}function ti(t){let e=h("div","tw-row tw-buttongroup");t.label&&e.append(st("span","tw-row-label",t.label));let n=h("div","tw-buttongroup-btns"),o=Array.isArray(t.buttons)?t.buttons.map(r=>[r.label??"Button",r.action]):Object.entries(t.buttons||{});for(let[r,s]of o){let i=st("button","tw-buttongroup-btn",r);i.addEventListener("click",()=>typeof s=="function"&&s()),n.append(i)}return e.append(n),Yt(e)}var ei=()=>Yt(h("div","tw-separator"));function ni(t,e){let n=a=>a==null?"":typeof a=="object"?He(a):String(a),o=n(t.value),r=t.rows>0,s=h("div",r?"tw-row tw-row-multiline":"tw-row"),i=h(r?"textarea":"input",r?"tw-text tw-textarea":"tw-text");return r?i.rows=t.rows:i.type="text",i.value=o,Rt(i),t.placeholder&&(i.placeholder=t.placeholder),i.addEventListener("input",()=>{o=i.value,e(o)}),s.append(st("span","tw-row-label",t.label),i),{el:s,set:a=>{o=n(a),i.value=o},get:()=>o}}function Ke(t){let e=h("div","tw-folder"),n=wt("tw-folder-header");n.setAttribute("aria-expanded","true"),n.append(st("span","tw-folder-title",t.label)),n.insertAdjacentHTML("beforeend",hr);let o=h("div","tw-folder-body"),r=h("div","tw-controls");o.append(r),e.append(n,o);let s=i=>Ee(e,n,o,i);return n.addEventListener("click",()=>s(!e.classList.contains("is-collapsed"))),{el:e,body:r,setCollapsed:s}}function Pe(t,e){let n=Qt(t.type);if(!n)return null;try{return n(t,e)}catch(o){return console.error("[tweaks] control failed to build:",t&&t.type,o),null}}at("slider",Ys);at("checkbox",Ws);at("radiogrid",Us);at("list",Zs);at("button",Qs);at("buttongroup",ti);at("separator",ei);at("text",ni);at("folder",Ke);var Ne=null;function oi(t,e,n={}){let o=Object.entries(e).filter(([m])=>m!=="_last"||(console.warn('[tweaks] "_last" is reserved (the changed-key channel) \u2014 schema entry skipped'),!1)).map(([m,x])=>me(m,x)).filter(Boolean),r={},s=[],i=new Set,a=new Set,l=[],b=!1,u=!1,c=[],f=new Map,y=!1,E=-1,p=m=>{if(!b){if(y){console.warn("[tweaks] call ignored \u2014 the panel could not be built");return}u?m():c.push(m)}},w=null,v=function(m,x){return m==="_last"&&this===r?void 0:x===void 0?null:typeof x=="bigint"?String(x):x},P=!1,$=()=>{let m={};for(let x of s){let M=m;for(let I of x.path.slice(0,-1))M=M[I]||(M[I]={});M[x.key]=x.get()}return JSON.parse(JSON.stringify(m,v))},N=()=>{try{return JSON.parse(JSON.stringify(r,v))}catch(m){return P||(P=!0,console.warn("[tweaks] a value parked on params can't be serialised \u2014 snapshots carry the controls' values only:",m)),$()}},R=n.persist?`tw:${n.persist===!0?t:n.persist}`:null,K=R?`${R}:presets`:null,q=m=>{try{return JSON.parse(localStorage.getItem(m)||"null")}catch{return null}},Y=(m,x)=>{try{localStorage.setItem(m,JSON.stringify(x))}catch{}},U=R?(()=>{let m=0,x=()=>{m=0,Y(R,N())};return l.push(()=>{m&&(clearTimeout(m),x())}),()=>{clearTimeout(m),m=setTimeout(x,150)}})():()=>{},A=()=>{a.forEach(m=>{try{m(r,r._last)}catch(x){console.error("[tweaks] listener threw:",x)}}),b||U()},O=m=>typeof m=="function"||typeof m=="symbol"||typeof m=="bigint",ot=(m,x)=>{if(O(x))throw new TypeError(`a ${typeof x} is not a control value`);m.set(x),m.target[m.key]=m.get()},tt=m=>{Cn(m,m.raw,m.def),m.target[m.key]=m.get()},lt=!1,D=()=>{if(typeof n.onReset=="function"&&!lt){lt=!0;try{return n.onReset()}finally{lt=!1}}for(let m of s)try{tt(m)}catch(x){console.error(`[tweaks] resetting "${m.path.join(".")}" failed \u2014 control skipped:`,x)}r._last=void 0,A()},d=h("div","tw-panel");d.dataset.mode="inline",Nn(d);let S=h("div","tw-header"),g=wt("tw-header-toggle");g.setAttribute("aria-expanded","true"),g.append(st("span","tw-title",t));let L=h("div","tw-toolbar"),X=En(d,t,()=>JSON.stringify(N(),null,2)),H=kn(D),F=null;R&&(F=Xe("",wr,"Presets"),F.setAttribute("aria-haspopup","menu"),F.setAttribute("aria-expanded","false"),L.append(F));let W=!!n.filter&&(n.toolbar!==!1||(console.warn("[tweaks] opts.filter needs the toolbar (its search button lives there) \u2014 ignored alongside toolbar:false"),!1)),C=W?Xe("",gr,"Filter controls"):null,G=W?h("input","tw-search"):null;W&&(G.type="text",G.placeholder="Filter\u2026",G.spellcheck=!1,G.setAttribute("aria-label","Filter controls"),Rt(G),L.append(C)),L.append(X,H),S.append(g),W&&S.append(G),n.toolbar!==!1&&S.append(L);let z=[X,H,F,C].filter(Boolean);for(let m of z)m.disabled=!0;let ct=!1,mt=!1;S.addEventListener("click",m=>{mt&&(mt=!1,m.preventDefault(),m.stopPropagation())},!0),g.addEventListener("click",()=>{Ee(d,g,Ft,!d.classList.contains("is-collapsed")),d.dataset.mode==="floating"&&setTimeout(()=>{d.dataset.mode==="floating"&&d.isConnected&&(Et(),dt())},270)});let Ft=h("div","tw-body"),Ot=h("div","tw-controls");Ft.append(Ot),d.append(S,Ft);let yt=$n(n.theme);Je(d,yt),d._twTheme=yt;let Ct=n.draggable!==!1,ht=8,vt=28,j=()=>({maxX:Math.max(ht,window.innerWidth-d.offsetWidth-ht),maxY:Math.max(ht,window.innerHeight-d.offsetHeight-ht)}),V=R?`${R}:pos`:null,k=(Ct||n.floating)&&V?q(V):null,J=k||(typeof n.floating=="object"?n.floating:null)||{x:16,y:16},it=+J.x||16,rt=+J.y||16,dt=()=>{d.style.left=it+"px",d.style.top=rt+"px"},Et=()=>{let{maxX:m,maxY:x}=j();it=T(it,ht,m),rt=T(rt,ht,x)};(Ct||n.floating)&&(n.floating||k)&&(d.dataset.mode="floating",Et(),dt(),requestAnimationFrame(()=>{!b&&d.dataset.mode==="floating"&&d.isConnected&&(Et(),dt())}));let xt=m=>{tt(m),r._last=m.key,A()},It=(m,x)=>{let M=m.querySelector(".tw-slider-value")||m.querySelector(co)||m;M.classList.add("tw-resettable"),M.title="Double-click or hold to reset";let I=0,nt=0,B=0,et=!1,Z=()=>{I&&(clearTimeout(I),I=0,M.classList.remove("tw-reset-holding"))};M.addEventListener("pointerdown",_=>{_.stopPropagation(),et=!1,!(_.pointerType!=="touch"&&_.pointerType!=="pen")&&(nt=_.clientX,B=_.clientY,M.classList.add("tw-reset-holding"),I=setTimeout(()=>{I=0,M.classList.remove("tw-reset-holding","is-editable"),et=!0,xt(x)},500))}),M.addEventListener("pointermove",_=>{I&&Math.abs(_.clientX-nt)+Math.abs(_.clientY-B)>8&&Z()}),M.addEventListener("pointerup",Z),M.addEventListener("pointercancel",Z),M.addEventListener("pointerleave",Z),M.addEventListener("contextmenu",_=>{et&&_.preventDefault()}),M.addEventListener("click",_=>{et&&(_.preventDefault(),_.stopImmediatePropagation(),et=!1)},!0),M.addEventListener("dblclick",_=>{M===m&&_.target.closest&&_.target.closest("input, textarea")||(_.preventDefault(),_.stopPropagation(),xt(x))}),M.classList.contains("tw-slider-value")&&m.addEventListener("dblclick",_=>{let ut=_.target;!ut.classList||!ut.classList.contains("tw-slider-input")||(_.preventDefault(),_.stopPropagation(),ut.blur(),xt(x))}),m.addEventListener("keydown",_=>{!_.altKey||_.metaKey||_.ctrlKey||_.key!=="Backspace"&&_.key!=="Delete"||(_.preventDefault(),_.stopPropagation(),_.target.classList&&_.target.classList.contains("tw-slider-input")&&_.target.blur(),xt(x))})},_t=[],re=(m,x)=>{x.hint&&Ae(m,x.hint),(x.render||x.disabled!=null)&&_t.push({node:m,m:x})},Fe=[],_e=[],Gt=[],$t=[],be=m=>{typeof m.destroy=="function"&&l.push(m.destroy)},se=(m,x,M,I=[],nt=null)=>{for(let B of x){if(B.type==="tabs"){let _={};i.add(_),M[B.key]=_;let ut=Qt("tabs"),Q=ut&&ut(B);if(!Q)continue;$t.push({path:[...I,B.key],ctrl:Q,pageKeys:B.pages.map(ft=>ft.key)}),B.pages.forEach((ft,St)=>{let Ht={};i.add(Ht),_[ft.key]=Ht,se(Q.bodies[St],ft.children,Ht,[...I,B.key,ft.key])}),re(Q.el,B),m.append(Q.el);continue}if(B.type==="folder"){let _={};i.add(_),M[B.key]=_;let ut=Ke(B);Gt.push({path:[...I,B.key],el:ut.el,setCollapsed:ut.setCollapsed});let Q=W?{el:ut.el,label:B.label,body:ut.body}:null;Q&&_e.push(Q),se(ut.body,B.children,_,[...I,B.key],Q),re(ut.el,B),m.append(ut.el);continue}let et=!Sn.has(B.type),Z=Pe(B,et?_=>{oe(M[B.key],_)&&(M[B.key]=_,r._last=B.key,A())}:()=>{});if(Z){if(be(Z),et){let _=Z.get();ne(M,B.key)&&Z.set(M[B.key]),M[B.key]=Z.get();let ut={target:M,key:B.key,set:Z.set,get:Z.get,raw:B.value,def:_,path:[...I,B.key]};s.push(ut),It(Z.el,ut)}re(Z.el,B),W&&B.type!=="separator"&&Fe.push({el:Z.el,label:B.label,folder:nt}),m.append(Z.el)}}};if(W){let m=M=>{let I=M.trim().toLowerCase(),nt=!1,B=(et,Z)=>{!Z&&et.classList.contains("tw-filter-hidden")&&(nt=!0),et.classList.toggle("tw-filter-hidden",Z)};if(!I)Fe.forEach(et=>B(et.el,!1)),_e.forEach(et=>B(et.el,!1));else{for(let et of Fe){let Z=et.folder&&Ze(et.folder.label,I);B(et.el,!(Ze(et.label,I)||Z))}for(let et of _e.slice().reverse()){let Z=[...et.body.children].some(_=>!_.classList.contains("tw-filter-hidden"));B(et.el,!(Ze(et.label,I)||Z))}}nt&&Fn()},x=()=>{d.classList.remove("is-searching"),G.value="",m("")};C.addEventListener("click",()=>{C.disabled||(d.classList.toggle("is-searching")?(G.focus(),G.select()):x())}),G.addEventListener("input",()=>m(G.value)),G.addEventListener("keydown",M=>{M.key==="Escape"&&(x(),C.focus())})}let zt=(m,x)=>x.reduce((M,I)=>M?.[I],m),Ut=new Set(o.map(m=>m.key)),ge=(m,x=!0)=>{if(!(!m||typeof m!="object")){for(let M of s){let I=zt(m,M.path);if(I!==void 0)try{ot(M,I)}catch(nt){console.error(`[tweaks] restoring "${M.path.join(".")}" failed \u2014 value skipped:`,nt)}}for(let M of Object.keys(m))if(!Ut.has(M)&&M!=="_last"&&ne(r,M)&&!Ln(M)&&!O(m[M]))try{r[M]=m[M]}catch(I){console.error(`[tweaks] restoring "${M}" failed \u2014 value skipped:`,I)}r._last=void 0,x&&A()}},jt=()=>{let m=K?q(K):null;return Object.assign(Object.create(null),m&&typeof m=="object"?m:{})},Pt=m=>{let x=jt();x[m]=N(),Y(K,x)},Jt=m=>{let x=jt();x[m]&&ge(x[m])},he=m=>{let x=jt();delete x[m],Y(K,x)},ie=m=>m.map(x=>String(x).replace(/~/g,"~1").replace(/\./g,"~0")).join("."),Hr=()=>{let m={};if(Gt.length){let x={};for(let M of Gt)x[ie(M.path)]=M.el.classList.contains("is-collapsed");m.folders=x}if($t.length){let x={};for(let M of $t)x[ie(M.path)]=M.pageKeys[M.ctrl.active()]??null;m.tabs=x}return m},Dr=m=>{if(!(!m||typeof m!="object")){if(m.folders)for(let x of Gt){let M=m.folders[ie(x.path)];typeof M=="boolean"&&x.setCollapsed(M)}if(m.tabs)for(let x of $t){let M=x.pageKeys.indexOf(m.tabs[ie(x.path)]);M>=0&&M!==x.ctrl.active()&&x.ctrl.activate(M)}}};if(Ct||n.floating){if(Ct){d.dataset.draggable="true";let Q=h("span","tw-grabber");Q.setAttribute("aria-hidden","true"),S.prepend(Q)}let m=()=>{if(d.dataset.mode==="floating")return;let Q=d.getBoundingClientRect();if(it=Q.left,rt=Q.top,d.parentNode&&(w=h("span","tw-lift-slot"),w.style.width=Q.width+"px",w.style.height=Q.height+"px",w.setAttribute("aria-hidden","true"),d.before(w)),Rn(d,d),document.body.appendChild(d),d.dataset.mode="floating",dt(),w&&typeof MutationObserver=="function"){let ft=new MutationObserver(()=>{w&&!w.isConnected&&(ft.disconnect(),w=null,d.remove())});ft.observe(document.documentElement,{childList:!0,subtree:!0}),l.push(()=>ft.disconnect())}},x=()=>{Ne&&Ne!==d&&(Ne.style.zIndex=""),d.style.zIndex="99991",Ne=d},M=null,I=0,nt=0,B=0,et=0,Z=Q=>{for(let[ft,St]of[["pointermove",_],["pointerup",ut],["pointercancel",ut]])Q?document.addEventListener(ft,St,!0):document.removeEventListener(ft,St,!0)};Ct&&S.addEventListener("pointerdown",Q=>{if(!(Q.button!==0||M!==null||Q.target.closest(".tw-toolbar, input, textarea, select"))&&(M=Q.pointerId,I=Q.clientX,nt=Q.clientY,ct=!1,Z(!0),d.classList.add("is-grabbing"),d.style.transition)){let ft=getComputedStyle(d);it=parseFloat(ft.left)||it,rt=parseFloat(ft.top)||rt,d.style.transition="",dt()}});let _=Q=>{if(Q.pointerId!==M)return;if(Q.buttons===0){ut(Q);return}let ft=Q.clientX-I,St=Q.clientY-nt;if(!ct){if(Math.abs(ft)+Math.abs(St)<4)return;ct=!0,m(),x(),B=it,et=rt;try{S.setPointerCapture(M)}catch{}d.classList.add("is-dragging")}let{maxX:Ht,maxY:bt}=j();it=T(B+ft,ht,Ht),rt=T(et+St,ht,bt),dt()},ut=Q=>{if(Q.pointerId===M){try{S.releasePointerCapture(M)}catch{}if(M=null,Z(!1),mt=ct,mt&&setTimeout(()=>{mt=!1},0),ct){let{maxX:ft,maxY:St}=j();it<=ht+vt?it=ht:it>=ft-vt&&(it=ft),rt<=ht+vt?rt=ht:rt>=St-vt&&(rt=St),xe.matches||(d.style.transition="left 0.32s var(--tw-ease-spring), top 0.32s var(--tw-ease-spring)",setTimeout(()=>{d.style.transition=""},340)),dt(),V&&Y(V,{x:it,y:rt})}d.classList.remove("is-dragging","is-grabbing")}};S.addEventListener("lostpointercapture",ut),l.push(()=>Z(!1))}let Ir=()=>{(Ct||n.floating)&&(d.dataset.mode==="floating"&&(Et(),dt()),l.push(At(d,[[window,"resize"]],()=>{d.dataset.mode==="floating"&&(Et(),dt())})))};if(F){let m=h("div","tw-presets-menu"),x=h("div","tw-presets-save"),M=h("input","tw-presets-input");M.type="text",M.placeholder="Preset name\u2026",M.spellcheck=!1,M.setAttribute("aria-label","New preset name"),Rt(M);let I=st("button","tw-presets-savebtn","Save");x.append(M,I);let nt=h("div","tw-presets-list");m.append(x,nt);let B=()=>{let _=jt(),ut=Object.keys(_);if(nt.replaceChildren(),!ut.length)return nt.append(st("div","tw-presets-empty","No presets yet"));for(let Q of ut){let ft=h("div","tw-presets-row"),St=st("button","tw-presets-load",Q);St.addEventListener("click",()=>{Jt(Q),Z.close(),ee(`Loaded \u201C${Q}\u201D`,d)});let Ht=wt("tw-presets-del",yr);Ht.setAttribute("aria-label",`Delete preset ${Q}`),Ht.addEventListener("click",bt=>{bt.stopPropagation(),he(Q),B()}),ft.append(St,Ht),nt.append(ft)}},et=()=>{let _=M.value.trim();if(!_){M.focus();return}Pt(_),M.value="",B(),ee(`Saved \u201C${_}\u201D`,d)},Z=Bt(F,F,m,{width:208,fallbackH:160,gap:6,align:"end",onOpen:()=>{B(),M.focus()}});I.addEventListener("click",et),M.addEventListener("keydown",_=>{_.key==="Enter"&&et()})}if(n.onEditStart||n.onEditEnd){let m=".tw-slider, .tw-num-grab, .tw-pad, .tw-wg-area, .tw-wg-hue, .tw-wg-alpha, .tw-bezier-handle, .tw-gradient-bar, .tw-gradient-stop",x=!1,M=()=>{document.removeEventListener("pointerup",M,!0),document.removeEventListener("pointercancel",M,!0),x&&(x=!1,n.onEditEnd&&n.onEditEnd())},I=nt=>{x||!nt.target.closest(m)||(x=!0,n.onEditStart&&n.onEditStart(),document.addEventListener("pointerup",M,!0),document.addEventListener("pointercancel",M,!0))};d.addEventListener("pointerdown",I),d._twEditPointer=I,l.push(M)}let $e=n.undo?(()=>{let x=[],M=0,I=!1,nt=0,B=()=>{nt=0;let bt=N();JSON.stringify(bt)!==JSON.stringify(x[M])&&(x=x.slice(0,M+1),x.push(bt),x.length>200&&(x=x.slice(x.length-200)),M=x.length-1)},et=()=>{I||(clearTimeout(nt),nt=setTimeout(B,350))},Z=()=>{nt&&(clearTimeout(nt),B())};a.add(et);let _=bt=>{I=!0,ge(x[bt]),I=!1,M=bt},ut=()=>{Z(),M>0&&_(M-1)},Q=()=>{Z(),M<x.length-1&&_(M+1)},ft=()=>d.matches(":hover")||d.contains(document.activeElement),St=bt=>!!(bt&&bt.matches&&(bt.matches("input, textarea")||bt.isContentEditable)),Ht=bt=>{if(!ft()||!(bt.metaKey||bt.ctrlKey)||St(bt.target))return;let ho=bt.key.toLowerCase();ho==="z"?(bt.preventDefault(),bt.shiftKey?Q():ut()):ho==="y"&&(bt.preventDefault(),Q())};return{undo:ut,redo:Q,arm:()=>{x=[N()],M=0,l.push(At(d,[[document,"keydown"]],Ht))}}})():null,mo=()=>{if(!b){if(E=l.length,se(Ot,o,r),_t.length){let m=new Map;for(let I of s)m.has(I.key)||m.set(I.key,I);let x=I=>{let nt=m.get(I);return nt?nt.target[nt.key]:r[I]},M=()=>{let I=!1;for(let{node:nt,m:B}of _t)try{if(B.render){let et=!B.render(x);!et&&nt.classList.contains("tw-cond-hidden")&&(I=!0),nt.classList.toggle("tw-cond-hidden",et)}if(B.disabled!=null){let et=typeof B.disabled=="function"?B.disabled(x):B.disabled;Qe(nt,!!et)}}catch{}I&&Fn()};a.add(M),M()}if(R&&ge(q(R)),!b){$e?.arm(),Ir(),u=!0;for(let m of c.splice(0)){if(b)break;try{m()}catch(x){console.error("[tweaks] a call queued before ready failed:",x)}}f.clear();for(let m of z)m.disabled=!1}}},bo=(m,x)=>{if(String(m).split(".").some(Ln))return console.warn(`[tweaks] set("${m}") ignored \u2014 reserved key`),!1;let M=String(m).split("."),I;if(M.length>1){let Z=r;for(let _=0;_<M.length-1&&Z;_++)Z=Z[M[_]],i.has(Z)||(Z=null);if(I=Z&&s.find(_=>_.target===Z&&_.key===M[M.length-1]),!I)return console.warn(`[tweaks] set("${m}") \u2014 no control at that path`),!1}else{let Z=s.filter(ut=>ut.key===m),_=Z.find(ut=>ut.target===r);if(!_&&Z.length>1)return console.warn(`[tweaks] set("${m}") is ambiguous \u2014 ${Z.length} controls share that key; use a dotted path (e.g. "${Z[0].path.join(".")}")`),!1;I=_||Z[0]}let nt=I?I.target:r,B=I?I.key:m,et=nt[B];if(I&&O(x))return console.warn(`[tweaks] set("${m}") ignored \u2014 a ${typeof x} is not a control value`),!1;if(I)try{ot(I,x)}catch(Z){return console.error(`[tweaks] set("${m}") failed \u2014 value skipped:`,Z),!1}else{if(i.has(r[m]))return console.warn(`[tweaks] set("${m}") ignored \u2014 it's a folder/tabs group; set its children instead`),!1;r[m]=x}return oe(et,nt[B])?(r._last=B,!0):!1},we={el:d,params:r,on(m){return b?()=>{}:(a.add(m),()=>a.delete(m))},set(m,x){let M=String(m);p(()=>{bo(M,x)&&A()})},setMany(m){if(m==null||typeof m!="object")return;let x=Object.entries(m);p(()=>{let M=!1;for(let[I,nt]of x)try{bo(I,nt)&&(M=!0)}catch(B){console.error(`[tweaks] setMany("${I}") failed \u2014 key skipped:`,B)}M&&A()})},reset(){u&&!b&&lo(H),p(D)},toJSON(){return b?{values:{},ui:{}}:{values:N(),ui:Hr()}},fromJSON(m){if(!m||typeof m!="object")return;let x=m.values&&typeof m.values=="object"?{...m.values}:m.values,M=m.ui&&typeof m.ui=="object"?{...m.ui}:m.ui;p(()=>{x&&ge(x),Dr(M)})},setTheme(m){if(!b){if(yt)for(let x in yt)d.style.removeProperty(x);yt=$n(m),d._twTheme=yt,Je(d,yt),window.dispatchEvent(new Event("tw-retheme"))}},savePreset:m=>b||y||!K||!m?!1:(u||f.set(String(m),"save"),p(()=>Pt(m)),!0),loadPreset:m=>{let x=f.get(String(m));return b||y||x==="delete"||!(x==="save"||jt()[m])?!1:(p(()=>Jt(m)),!0)},deletePreset:m=>{K&&(u||f.set(String(m),"delete"),p(()=>he(m)))},presets:()=>b?[]:Object.keys(jt()),undo:()=>{$e&&p($e.undo)},redo:()=>{$e&&p($e.redo)},destroy(){if(!b){b=!0,yo(d),Ge(d);for(let m of l.splice(0))try{m()}catch{}a.clear(),w&&(w.remove(),w=null),Ne===d&&(Ne=null),d.dataset.twDestroyed="",d.remove()}}},go=Oe(o);if(go){let m=x=>{if(y=!0,c.length=0,E>=0)for(let M of l.splice(E))try{M()}catch{}for(let M of Ot.children)M.dataset.twDestroyed="";throw a.clear(),s.length=0,Ot.replaceChildren(),b||console.warn(`[tweaks] "${t}": the panel could not be built \u2014 ${E>=0?"the build threw":"its lazy controls failed to load"}; the API is inert`),x};we.ready=d.ready=go.then(mo).then(()=>we,m),we.ready.catch(()=>{})}else mo(),we.ready=d.ready=Promise.resolve(we);return we}var ri=(t,e)=>{t.dataset.value=e==null?"":Array.isArray(e)?e.join(","):typeof e=="object"?Object.values(e).join(","):String(e)},si=(t,e,n)=>{ri(t,n),t.dispatchEvent(new CustomEvent("tw:change",{bubbles:!0,detail:{key:e,value:n}}))},fo=(t,e)=>[...typeof t.matches=="function"&&t.matches(e)?[t]:[],...t.querySelectorAll(e)];async function _r(t=document){fo(t,'.tw-panel[data-mode="inline"]:not([data-tw-panel-bound])').forEach(o=>{let r=o.querySelector(":scope > .tw-header"),s=o.querySelector(":scope > .tw-controls");if(!r||!s)return;o.setAttribute("data-tw-panel-bound","");let i=h("div","tw-body");o.insertBefore(i,s),i.append(s);let a=r.querySelector(".tw-header-toggle"),l=r.querySelector(".tw-title");if(!a&&l&&(a=wt("tw-header-toggle"),l.replaceWith(a),a.append(l)),!!a&&(a.setAttribute("aria-expanded","true"),a.addEventListener("click",()=>Ee(o,a,i,!o.classList.contains("is-collapsed"))),!r.querySelector(".tw-toolbar"))){let b=l&&l.textContent||"Panel",u=()=>[...o.querySelectorAll("[data-tw]")].map(E=>E._tw).filter(E=>E&&E.ctrl.get()!==void 0),c=()=>{let E=Object.create(null);for(let p of u()){let w=p.key,v=2;for(;ne(E,w);)w=`${p.key}-${v++}`;E[w]=p.ctrl.get()}return JSON.stringify(E,null,2)},f=()=>{for(let E of u())E.reset()},y=h("div","tw-toolbar");y.append(En(o,b,c),kn(f)),r.append(y)}}),fo(t,'[data-tw="folder"]:not([data-tw-bound])').forEach(o=>{o.setAttribute("data-tw-bound","");let r=Ke({label:o.dataset.label||"Folder"});[...o.children].forEach(s=>r.body.append(s)),o.append(r.el)});let e=fo(t,"[data-tw]:not([data-tw-bound])").map(o=>({host:o,meta:Or(o)})).filter(o=>o.meta);e.forEach(({host:o})=>o.setAttribute("data-tw-bound",""));let n=Oe(e.map(o=>o.meta));n&&await n.catch(()=>{});for(let{host:o,meta:r}of e){let s=o.dataset.key||r.label,i,a=c=>{oe(i,c)&&(i=c,si(o,s,c))},l=Pe(r,a);if(!l)continue;o.closest(".tw-panel, .tw-portal")||o.classList.add("tw-portal"),o.append(l.el),o.dataset.hint&&Ae(l.el,o.dataset.hint);let b=l.get();i=b;let u={...l,set:c=>{l.set(c),a(l.get())}};o._tw={ctrl:u,raw:r.value,def:b,key:s,host:o,reset:()=>{Cn(l,r.value,b),a(l.get())}}}}if(typeof document<"u"){let t=()=>_r(document);document.readyState==="loading"?document.addEventListener("DOMContentLoaded",t):t()}var $r=t=>h("div",`${t} tw-standalone tw-portal`),Rr=(t,e,n)=>{let o=Oe(t);if(!o)return e(),Promise.resolve(n);let r=o.then(e).then(()=>n);return r.catch(()=>{}),r};function ii(t,e,n={}){let o=n.key??"value",r=me(o,e);if(!r||r.type==="folder"||r.type==="tabs")throw new TypeError(`[tweaks] mountControl: "${o}" is not a single-control schema value`);n.label!=null&&(r.label=String(n.label));let s=!Sn.has(r.type),i=$r("tw-control");t.append(i);let a=null,l=!1,b=r.value,u,c=!1,f=p=>{oe(b,p)&&(b=p,n.onChange&&n.onChange(p,o))},y=()=>{if(l||(a=Pe(r,s?f:()=>{}),!a))return;r.hint&&Ae(a.el,r.hint);let p=()=>{};try{r.render&&!r.render(p)&&a.el.classList.add("tw-cond-hidden")}catch{}try{(typeof r.disabled=="function"?r.disabled(p):r.disabled)&&Qe(a.el,!0)}catch{}i.append(a.el),s&&(b=a.get(),c&&(a.set(u),f(a.get())))},E={el:i,set:p=>{l||!s||(a?(a.set(p),f(a.get())):(u=p,c=!0))},get:()=>s?a?a.get():c?u:r.value:void 0,destroy:()=>{l=!0,a&&typeof a.destroy=="function"&&a.destroy(),i.dataset.twDestroyed="",i.remove()},ready:null};return E.ready=Rr([r],y,E),E}function ai(t={}){let e=$r("tw-color-picker"),n=null,o=!1,r=t.value,s,i=!1,a=null,l=c=>{oe(r,c)&&(r=c,t.onChange&&t.onChange(c))},b=()=>{if(o)return;let c=Qt("colorpicker");c&&(n=c({value:t.value,mode:t.mode},l),r=n.get(),e.append(n.el),a&&n.setMode(a),i&&(n.set(s),l(n.get())),Tt(n.reflow))},u={el:e,set:c=>{o||(n?(n.set(c),l(n.get())):(s=c,i=!0))},get:()=>n?n.get():i?s:t.value,mode:()=>n?n.mode():a||t.mode||"oklch",setMode:c=>{n?n.setMode(c):a=c},reflow:()=>{n&&n.reflow()},destroy:()=>{o=!0,e.remove()},ready:null};return u.ready=Rr([{type:"color"}],b,u),u}export{ai as createColorPicker,_r as enhance,ii as mountControl,oi as tweaks};
2
+ var jo=Object.assign(Object.create(null),{ease:[.25,.1,.25,1],"ease-in":[.42,0,1,1],"ease-out":[0,0,.58,1],"ease-in-out":[.42,0,.58,1]}),on=t=>Math.min(1,Math.max(0,t)),Xn=15;function rn(t){if(typeof t!="string")return null;let e=t.trim().toLowerCase();if(jo[e])return jo[e];let n=/^cubic-bezier\(([^()]*)\)$/.exec(e);if(!n)return null;let o=n[1].split(",").map(r=>r.trim()?Number(r):NaN);return o.length!==4||!o.every(Number.isFinite)?null:[on(o[0]),o[1],on(o[2]),o[3]]}var zn=t=>rn(t)?t.trim().toLowerCase():"linear";function Bo(t){let e=[];for(let n=0;n<=Xn;n++){let o=n/Xn,r=1-o,s=3*r*r*o,i=3*r*o*o,a=o*o*o;e.push([s*t[0]+i*t[2]+a,on(s*t[1]+i*t[3]+a)])}return e}function Vo(t,e){if(e=on(e),!t)return e;let n=Bo(t);for(let o=1;o<n.length;o++)if(e<=n[o][0]){let[r,s]=n[o-1],[i,a]=n[o];return i>r?s+(a-s)*(e-r)/(i-r):a}return 1}var Gn=t=>+(t*100).toFixed(2);function Kn(t){let e=[...t.stops].sort((a,l)=>a.pos-l.pos),n=a=>`${a.color} ${Gn(a.pos)}%`,o=rn(t.easing);if(!o||e.length<2)return e.map(n).join(", ");let r=Bo(o),s=t.interpolation||"oklch",i=[n(e[0])];for(let a=1;a<e.length;a++){let l=e[a-1],g=e[a],u=g.pos-l.pos;if(u>1e-6)for(let c=1;c<Xn;c++){let[d,$]=r[c];i.push(`color-mix(in ${s}, ${l.color}, ${g.color} ${Gn($)}%) ${Gn(l.pos+u*d)}%`)}i.push(n(g))}return i.join(", ")}function sn(t,e="to right"){return`linear-gradient(in ${t.interpolation||"oklch"} ${typeof e=="number"?`${e}deg`:e}, ${Kn(t)})`}var an=t=>t.replace(/([a-z])(?=[A-Z])|([A-Z\d])(?=[A-Z][a-z])/g,"$1$2 ").replace(/^./,e=>e.toUpperCase()).trim(),R=(t,e,n)=>Math.min(n,Math.max(e,t)),Xo=t=>typeof t=="string"&&(/^#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(t.trim())||/^(oklch|oklab|rgba?|hsla?|hwb|lab|lch|color)\(/i.test(t.trim())),Go=20,Qt=t=>{let e=String(t),n=/e-(\d+)$/i.exec(e);if(n)return Math.min(Go,Number(n[1])+(e.split("e")[0].split(".")[1]||"").length);let o=e.indexOf(".");return o===-1?0:Math.min(Go,e.length-o-1)},he=(t,e,n)=>{if(!(n>0))return t;let o=Qt(n),r=Number((+e).toFixed(o)),s=Math.round((t-r)/n);return Number.isFinite(s)?Number((r+s*n).toFixed(o)):t},ke=(t,e,n,o=t)=>{let r=a=>he(a,o,n),s=Number.isFinite(t)?r(t):-1/0,i=Number.isFinite(e)?r(e):1/0;return s<t&&(s=r(s+n)),i>e&&(i=r(i-n)),s>i?[t,t]:[s,i]},Ce=(t,e)=>{let n=e-t;return n<=1?.01:n<=10?.1:n<=100?1:10},ln=(t,e,n,o=0,r=null)=>{let s=+t,i=+e,a=+n;if(Number.isFinite(s)||(s=o),Number.isFinite(i)||(i=r??s+100),i<s){let l=s;s=i,i=l}return(!(a>0)||a>i-s)&&(a=Ce(s,i)),{min:s,max:i,step:a}},ue=(t,e,n,o,r,s=null)=>{let i=t.shiftKey?10:1;switch(t.key){case"ArrowRight":case"ArrowUp":return e+n*i;case"ArrowLeft":case"ArrowDown":return e-n*i;case"PageUp":return s!=null?e+s:null;case"PageDown":return s!=null?e-s:null;case"Home":return o;case"End":return r}return null},cn=(t,e,n,o,r=0)=>{let s=t.offsetLeft,i=s+t.offsetWidth,a=e.offsetLeft,l=a+e.offsetWidth;return n<i&&n+o>s||n<l+r&&n+o>a-r},te=t=>t>=0?[0,t<=1?1:t*3||100]:[t>=-1?-1:t*3,0],ee=t=>t==null?void 0:typeof t=="object"?t.value:t,Xe=t=>{try{return JSON.stringify(t)}catch{return String(t)}},Wn=t=>t==null?"":typeof t=="string"?an(t):typeof t=="object"?t.label??(t.value!==void 0?String(t.value):Xe(t)):String(t),h=(t,e,n)=>{let o=document.createElement(t);return e&&(o.className=e),n!=null&&(o.innerHTML=n),o},ht=(t,e)=>{let n=h("button",t,e);return n.type="button",n},nt=(t,e,n)=>{let o=h(t,e);return o.textContent=n,t==="button"&&(o.type="button"),o},Un=t=>["pointerdown","pointermove","pointerup"].forEach(e=>t.addEventListener(e,n=>n.stopPropagation())),_t=t=>{requestAnimationFrame(t),document.fonts&&document.fonts.ready&&document.fonts.ready.then(t)},Ht=(t,e,n)=>{let o=t.isConnected;o||requestAnimationFrame(()=>{t.isConnected&&(o=!0)});let r=i=>{if(!t.isConnected){(o||t.closest("[data-tw-destroyed]"))&&s();return}o=!0,n(i)},s=()=>e.forEach(([i,a])=>i.removeEventListener(a,r));return e.forEach(([i,a])=>i.addEventListener(a,r)),s},Jn=()=>requestAnimationFrame(()=>window.dispatchEvent(new Event("tw-reflow"))),un=(t,e)=>{t.addEventListener("pointerenter",()=>{t.classList.add("is-hover"),e&&e()}),t.addEventListener("pointerleave",()=>t.classList.remove("is-hover"))},Ge=!1;typeof document<"u"&&(document.addEventListener("pointerdown",()=>{Ge=!0},!0),document.addEventListener("keydown",()=>{Ge=!1},!0));var Bt=t=>{t.addEventListener("focus",()=>t.classList.toggle("tw-focus-quiet",Ge)),t.addEventListener("blur",()=>t.classList.remove("tw-focus-quiet"))},Zn=(t,e,{width:n,fallbackH:o=300,gap:r=6,align:s="start",prefer:i="below"}={})=>{let a=t.getBoundingClientRect();n==="match"&&(e.style.width=a.width+"px");let l=n==="match"?a.width:e.offsetWidth||n||0,g=s==="end"?a.right-l:s==="center"?a.left+a.width/2-l/2:a.left;e.style.left=Math.max(8,Math.min(g,window.innerWidth-l-8))+"px";let u=e.offsetHeight||o,c=window.innerHeight-a.bottom,d=a.top,$=u+12,S=c>=$,f=d>=$,b=(i==="above"?f||!S&&d>=c:!S&&(f||d>c))?a.top-u-r:a.bottom+r;e.style.top=R(b,r,window.innerHeight-u-r)+"px"},xs=Object.assign(Object.create(null),{accent:"--tw-accent",onAccent:"--tw-on-accent",base:"--tw-base",dropdownBg:"--tw-dropdown-bg",surface:"--tw-surface",surfaceHover:"--tw-surface-hover",surfaceActive:"--tw-surface-active",border:"--tw-border",borderHover:"--tw-border-hover",selection:"--tw-selection",title:"--tw-text-root",section:"--tw-text-section",text:"--tw-text-primary",label:"--tw-text-label",textMuted:"--tw-text-secondary",textFaint:"--tw-text-tertiary",focus:"--tw-text-focus",success:"--tw-success",danger:"--tw-danger",shadow:"--tw-shadow-dropdown",shadowPanel:"--tw-shadow-panel",shadowPanelLifted:"--tw-shadow-panel-lifted",font:"--tw-font-sans",fontMono:"--tw-font-mono",radius:"--tw-radius",density:"--tw-row-height",width:"--tw-width"}),Ms=new Set(["radius","density","width"]),qn=t=>(t/=255,t<=.03928?t/12.92:((t+.055)/1.055)**2.4),Es=t=>{t=String(t).trim();let e=/^#([0-9a-f]{3})$/i.exec(t);if(e)return e[1].split("").map(n=>parseInt(n+n,16));if(e=/^#([0-9a-f]{6})$/i.exec(t),e)return[0,2,4].map(n=>parseInt(e[1].slice(n,n+2),16));if(e=/^rgba?\(([^)]+)\)/i.exec(t),e){let n=e[1].split(/[\s,/]+/).filter(Boolean).map(parseFloat);return[n[0],n[1],n[2]]}return null},ks=t=>{let e=Es(t);if(!e||e.some(o=>!Number.isFinite(o)))return"#ffffff";let n=.2126*qn(e[0])+.7152*qn(e[1])+.0722*qn(e[2]);return 1.05/(n+.05)>=(n+.05)/.0571?"#ffffff":"#161616"},Qn=t=>{if(!t||typeof t!="object")return null;let e={};for(let[n,o]of Object.entries(t)){if(n.startsWith("--")){e[n]=String(o);continue}let r=xs[n];r&&(e[r]=Ms.has(n)&&typeof o=="number"?`${o}px`:String(o))}return e["--tw-accent"]&&!e["--tw-on-accent"]&&(e["--tw-on-accent"]=ks(e["--tw-accent"])),Object.keys(e).length?e:null},dn=(t,e)=>{if(t){if(t._twAppliedVars)for(let n of t._twAppliedVars)t.style.removeProperty(n);if(t._twAppliedVars=e?Object.keys(e):null,e)for(let n in e)t.style.setProperty(n,e[n])}},to=(t,e)=>{let n=e?.closest('[data-tw-scheme="light"]')?"light":e?.closest('[data-tw-scheme="dark"]')?"dark":null;n?t.setAttribute("data-tw-scheme",n):t.removeAttribute("data-tw-scheme")},be=(t,e)=>{dn(t,e?.closest(".tw-panel")?._twTheme),to(t,e)},ce=null,Yn=null,zo=t=>{ce&&(!t||t.contains(Yn))&&ce()};function Dt(t,e,n,o={}){let r=!1,s=null;n.classList.add("tw-portal"),n.inert=!0,n.addEventListener("pointerdown",L=>e.closest(".tw-panel")?._twEditPointer?.(L),!0),Un(n);let i=0,a=0,l=()=>{Zn(e,n,{width:o.width,fallbackH:o.fallbackH,gap:o.gap,align:o.align});let L=e.getBoundingClientRect();i=parseFloat(n.style.left)-L.left,a=parseFloat(n.style.top)-L.top},g=()=>{if(r){if(!t.isConnected)return M();l(),o.onReflow&&o.onReflow()}},u=()=>{if(!r)return;if(!t.isConnected)return M();let L=e.getBoundingClientRect();if(!(L.width||L.height)||L.bottom<0||L.top>window.innerHeight||L.right<0||L.left>window.innerWidth)return M();n.style.left=L.left+i+"px",n.style.top=L.top+a+"px"},c=L=>{!t.contains(L.target)&&!n.contains(L.target)&&M()},d=L=>{L.key==="Escape"&&r&&(M(),e.focus())},$=L=>{if(!r)return;let j=L.relatedTarget;(j?t.contains(j)||n.contains(j):Ge)||(M(),j&&!e.closest(".tw-panel")?.contains(j)&&setTimeout(()=>{!r&&document.activeElement===j&&e.focus()},0))};t.addEventListener("focusout",$),n.addEventListener("focusout",$);let S=()=>n.querySelector('button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [href], [tabindex]:not([tabindex="-1"])'),f=()=>be(n,t),m=L=>{L.every(j=>j.target===n)||f()},b=()=>{ce&&ce!==M&&ce(),ce=M,Yn=e,r=!0,t.classList.add("is-open"),e.setAttribute("aria-expanded","true"),n.inert=!1,document.body.appendChild(n),be(n,t),window.addEventListener("tw-retheme",f),typeof MutationObserver=="function"&&(s=new MutationObserver(m),s.observe(document.documentElement,{subtree:!0,attributes:!0,attributeFilter:["data-tw-scheme"]})),l(),requestAnimationFrame(()=>{if(r&&(n.classList.add("is-open"),o.onOpen&&o.onOpen(),l(),!n.contains(document.activeElement))){let L=o.initialFocus&&o.initialFocus()||S();L&&L.focus({focusVisible:!Ge})}}),requestAnimationFrame(function L(){if(r){if(!t.isConnected)return M();requestAnimationFrame(L)}}),setTimeout(()=>{r&&document.addEventListener("pointerdown",c,!0)},0),document.addEventListener("keydown",d),window.addEventListener("scroll",u,!0),window.addEventListener("resize",g)},M=()=>{ce===M&&(ce=null,Yn=null),n.contains(document.activeElement)&&e.focus(),r=!1,t.classList.remove("is-open"),n.classList.remove("is-open"),n.inert=!0,e.setAttribute("aria-expanded","false"),document.removeEventListener("pointerdown",c,!0),document.removeEventListener("keydown",d),window.removeEventListener("scroll",u,!0),window.removeEventListener("resize",g),window.removeEventListener("tw-retheme",f),s&&(s.disconnect(),s=null),setTimeout(()=>{r||n.remove()},200)};return e.addEventListener("click",()=>{e.disabled||(r?M():b())}),{open:b,close:M,isOpen:()=>r,reflow:g}}var pn=(t,e)=>{if(t=t.toLowerCase(),t.includes(e))return!0;if(e.length<3)return!1;let n=e.length,o=t.length,r=new Array(o+1).fill(0);for(let s=1;s<=n;s++){let i=[s];for(let a=1;a<=o;a++)i[a]=Math.min(r[a]+1,i[a-1]+1,r[a-1]+(e[s-1]===t[a-1]?0:1));r=i}return Math.min(...r)<=(e.length<6?1:2)},de=typeof matchMedia=="function"?matchMedia("(prefers-reduced-motion: reduce)"):{matches:!1},ze="cubic-bezier(0.22, 1, 0.36, 1)",eo="cubic-bezier(0.34, 1.2, 0.64, 1)",Cs=(t,e)=>{de.matches||typeof t.animate!="function"||(t.style.transformOrigin=e>0?"left center":"right center",t.animate([{transform:"scaleX(1)"},{transform:"scaleX(1.18)"},{transform:"scaleX(1)"}],{duration:300,easing:ze}))},no=(t,e,n)=>{let o=t.querySelector('[data-active="true"]');if(!o)return;let r=o.offsetLeft,s=o.offsetWidth,i=parseFloat(e.style.left);e.style.left=r+"px",e.style.width=s+"px",n&&Number.isFinite(i)&&i!==r&&Cs(e,r>i?1:-1)},fn=(t,e)=>{t.classList.toggle("is-disabled",e);for(let n of t.children)n.classList.contains("tw-portal")||(n.inert=e)},Le=(t,e,n,o)=>{t.classList.toggle("is-collapsed",o),e.setAttribute("aria-expanded",String(!o)),n.inert=o},mn=(t,e)=>{let n=t.findIndex(o=>o.dataset.value===String(e));return n<0&&t.length?0:n},oo=(t,e)=>{let n=mn(t,e);t.forEach((o,r)=>{let s=o.dataset.value===String(e);o.dataset.active=String(s),o.setAttribute("aria-checked",String(s)),o.tabIndex=r===n?0:-1})},ro=(t,e,n)=>{let o=nt("button",t,Wn(e));return o.setAttribute("role","radio"),o._twVal=ee(e),o.dataset.value=o._twVal,o.addEventListener("click",()=>n(o._twVal)),o},Ke=(t,e,n,o=0)=>{switch(t){case"ArrowRight":return(e+1)%n;case"ArrowLeft":return(e-1+n)%n;case"ArrowDown":return o<0?-1:o?e+o<n?e+o:e:(e+1)%n;case"ArrowUp":return o<0?-1:o?e-o>=0?e-o:e:(e-1+n)%n;case"Home":return 0;case"End":return n-1}return-1};function pe(t,e,n,o){let r=h("div","tw-seg");r.setAttribute("role","radiogroup"),o&&r.setAttribute("aria-label",o);let s=h("div","tw-seg-pill");r.append(s);let i=t.map(u=>{let c=ro("tw-seg-btn",u,d=>g(d));return r.append(c),c}),a=u=>no(r,s,u),l=()=>{oo(i,e),a(!0)},g=(u,c=!0)=>{u!=null&&!i.some(d=>d._twVal===u)||(e=u,l(),c&&n(u))};return r.addEventListener("keydown",u=>{let c=mn(i,e);if(c<0)return;let d=Ke(u.key,c,i.length);d<0||(u.preventDefault(),g(i[d]._twVal),i[d].focus())}),l(),_t(()=>{a(),r.classList.add("is-ready")}),Ht(r,[[window,"tw-reflow"]],()=>a()),{el:r,set:u=>g(u,!1),get:()=>e}}var Nt=(t,e="",n=2,o=24)=>`<svg${e?` class="${e}"`:""} viewBox="0 0 ${o} ${o}" fill="none" stroke="currentColor" stroke-width="${n}" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">${t}</svg>`,ne=(t,e)=>({el:t,set:()=>{},get:()=>{},destroy:e}),Ko={},rt=(t,e)=>{Ko[t]=e},It=t=>Ko[t];var Ls="http://www.w3.org/2000/svg",kt=(t,e)=>{let n=document.createElementNS(Ls,t);return e&&n.setAttribute("class",e),n},qo=(t,e)=>getComputedStyle(t).getPropertyValue(e).trim(),gn=t=>{let e=getComputedStyle(t),n=o=>e.getPropertyValue(o).trim();return n("--tw-accent")||n("--tw-text-primary")||"#fff"},Yo=t=>{let e=!1;t.addEventListener("pointerdown",n=>{e=n.button===0&&document.activeElement!==t}),t.addEventListener("focus",()=>t.select()),t.addEventListener("mouseup",n=>{e&&(e=!1,n.button===0&&document.activeElement===t&&t.selectionStart===0&&t.selectionEnd===t.value.length&&n.preventDefault())})};function Yt(t,{onDown:e,onMove:n,onEnd:o}={}){let r=null,s=i=>{r===null||i.pointerId!==r||(r=null,o&&o(i))};t.addEventListener("pointerdown",i=>{if(!(i.button!==0||r!==null)){r=i.pointerId;try{t.setPointerCapture(i.pointerId)}catch{}e&&e(i)}}),t.addEventListener("pointermove",i=>{if(i.pointerId===r){if(i.buttons===0)return s(i);n&&n(i)}}),t.addEventListener("pointerup",s),t.addEventListener("pointercancel",s),t.addEventListener("lostpointercapture",s)}var Se=(t,e)=>Yt(t,{onDown:n=>{t.classList.add("is-grabbing"),e(n)},onMove:e,onEnd:()=>t.classList.remove("is-grabbing")}),Ae=(t,e)=>{let n=e.getBoundingClientRect();return[R((t.clientX-n.left)/n.width,0,1),R((t.clientY-n.top)/n.height,0,1)]},Wo=(t,e,n=1/0)=>{let o=t.getBoundingClientRect(),r=Math.min(window.devicePixelRatio||1,n);return t.width=o.width*r,t.height=o.height*r,e.setTransform(r,0,0,r,0,0),[o.width,o.height]},Vt=(t,e)=>{let n=h("div",t),o=ht("tw-trigger");o.setAttribute("aria-expanded","false");let r=h("span","tw-trigger-right");return o.append(nt("span","tw-trigger-label",e),r),n.append(o),{root:n,trigger:o,right:r}},Ss=Nt('<path d="M6 4v8M10 4v8"/>',"",1.5,16);function As(){let t=null,e=0,n=0,o=0;return{show(r,s,i,a){t=h("div","tw-grab-guide tw-portal"),t.innerHTML='<span class="tw-grab-line"></span><span class="tw-grab-dot"></span><span class="tw-grab-arrow"></span><span class="tw-grab-bubble"></span>',e=s,n=r,o=i??r,t.children[1].style.cssText=`left:${r}px;top:${e}px`,be(t,a),document.body.appendChild(t)},move(r,s){t&&(t.children[0].style.cssText=`left:${Math.min(n,r)}px;top:${e}px;width:${Math.abs(r-n)}px`,t.children[2].style.cssText=`left:${r}px;top:${e}px;transform:translate(-50%,-50%) scaleX(${r>=n?1:-1})`,t.children[3].style.cssText=`left:${o}px;top:${e-16}px`,t.children[3].textContent=s)},hide(){t&&(t.remove(),t=null)}}}function Ts(t,e,n,o,r,s){let i=0,a=0,l=1,g=As();Yt(t,{onDown:u=>{u.preventDefault(),i=u.clientX,a=o(),l=1,t.classList.add("is-dragging");let c=e.getBoundingClientRect();g.show(u.clientX,c.top+c.height/2,c.left+c.width/2,e),g.move(u.clientX,s())},onMove:u=>{let c=u.shiftKey?10:u.altKey?.1:1;c!==l&&(l=c,i=u.clientX,a=o()),r(a+(u.clientX-i)*n*c),g.move(u.clientX,s())},onEnd:()=>{t.classList.remove("is-dragging"),g.hide()}})}function At(t,e){let n=Number.isFinite(+t.step)&&+t.step>0?+t.step:1,o=b=>b==null?NaN:+b,r=o(t.min),s=o(t.max);if(Number.isFinite(r)&&Number.isFinite(s)&&s<r){let b=r;r=s,s=b}let i=Number.isFinite(r)?r:0,a=Qt(n),[l,g]=ke(Number.isFinite(r)?r:-1/0,Number.isFinite(s)?s:1/0,n,i),u=b=>{let M=he(b,i,n);return t.soft?M:R(M,l,g)},c=u(Number.isFinite(+t.value)?+t.value:0),d=h("div",t.row?"tw-row":"tw-field"),$=h("div","tw-num-wrap"),S=h("span","tw-num-grab",Ss);S.setAttribute("aria-hidden","true"),S.title="Drag to adjust";let f=h("input","tw-num");f.type="text",f.inputMode="decimal",f.setAttribute("aria-label",t.unit?`${t.label} (${t.unit})`:t.label),f.value=c.toFixed(a),Bt(f),$.append(S,f),t.unit&&$.append(nt("span","tw-num-unit",t.unit)),d.append(nt("span",t.row?"tw-row-label":"tw-field-label",t.label),$);let m=(b,M=!0)=>{b=+b,Number.isFinite(b)&&(c=u(b),f.value=c.toFixed(a),M&&e&&e(c))};return f.addEventListener("change",()=>{let b=parseFloat(f.value);m(isNaN(b)?c:b)}),f.addEventListener("keydown",b=>{if(b.key==="Enter")return f.blur();let M=b.key==="ArrowUp"?1:b.key==="ArrowDown"?-1:0;if(!M)return;b.preventDefault();let L=parseFloat(f.value);m((isNaN(L)?c:L)+M*n*(b.shiftKey?10:1))}),Ts(S,$,n,()=>c,m,()=>f.value),{el:d,set:b=>m(b,!1),get:()=>c}}rt("number",(t,e)=>At({...t,row:!0},e));var Os=(t,e,n)=>{let o=Math.sqrt(t/n),r=e/(2*Math.sqrt(t*n));return Math.min(2.2,9/Math.max(r*o,.5))};function qe(t,e,n,o=64,r=Os(t,e,n)){let s=Math.sqrt(t/n),i=e/(2*Math.sqrt(t*n)),a=[];for(let l=0;l<o;l++){let g=l/(o-1)*r,u;if(i<1-1e-4){let c=s*Math.sqrt(1-i*i);u=1-Math.exp(-i*s*g)*(Math.cos(c*g)+i*s/c*Math.sin(c*g))}else if(i<=1+1e-4)u=1-Math.exp(-s*g)*(1+s*g);else{let c=Math.sqrt(i*i-1),d=s*(i+c),$=s*(i-c);u=1-(d*Math.exp(-$*g)-$*Math.exp(-d*g))/(d-$)}a.push(u)}return a}var Ns=180/Math.PI,ao=Math.PI/180,Wt=(t,e)=>[t[0][0]*e[0]+t[0][1]*e[1]+t[0][2]*e[2],t[1][0]*e[0]+t[1][1]*e[1]+t[1][2]*e[2],t[2][0]*e[0]+t[2][1]*e[1]+t[2][2]*e[2]],$s=(t,e)=>{let n=[[0,0,0],[0,0,0],[0,0,0]];for(let o=0;o<3;o++)for(let r=0;r<3;r++)n[o][r]=t[o][0]*e[0][r]+t[o][1]*e[1][r]+t[o][2]*e[2][r];return n},vt=t=>Number.isFinite(t)?t:0,Ps=(t,e,n)=>Math.min(n,Math.max(e,t)),bn=t=>{let e=Math.abs(t);return e<=.04045?t/12.92:Math.sign(t)*((e+.055)/1.055)**2.4},Ye=t=>{let e=Math.abs(t);return e<=.0031308?t*12.92:Math.sign(t)*(1.055*e**(1/2.4)-.055)},yn=1.09929682680944,sr=.018053968510807,Rs=t=>{let e=Math.abs(t);return e<sr*4.5?t/4.5:Math.sign(t)*((e+yn-1)/yn)**(1/.45)},ir=t=>{let e=Math.abs(t);return e<sr?t*4.5:Math.sign(t)*(yn*e**.45-(yn-1))},ar=1/512,Fs=t=>{let e=Math.abs(t);return e<=ar*16?t/16:Math.sign(t)*e**1.8},_s=t=>{let e=Math.abs(t);return e>=ar?Math.sign(t)*e**(1/1.8):16*t},so=[[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],hn=[[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],Hs=[[.4865709486482162,.26566769316909306,.19821728523436247],[.2289745640697488,.6917385218365064,.079286914093745],[0,.04511338185890264,1.043944368900976]],lr=[[2.493496911941425,-.9313836179191239,-.40271078445071684],[-.8294889695615747,1.7626640603183463,.023624685841943577],[.03584583024378447,-.07617238926804182,.9568845240076872]],Ds=[[.6369580483012914,.14461690358620832,.16888097516417205],[.2627002120112671,.6779980715188708,.05930171646986196],[0,.028072693049087428,1.060985057710791]],cr=[[1.7166511879712674,-.35567078377639233,-.25336628137365974],[-.6666843518324892,1.6164812366349395,.01576854581391113],[.017639857445310783,-.042770613257808524,.9421031212354738]],Is=[[.7977604896723027,.13518583717574031,.0313493495815248],[.2880711282292934,.7118432178101014,8565396060525902e-20],[0,0,.8251046025104601]],js=[[1.3457989731028281,-.25558010007997534,-.05110628506753401],[-.5446224939028347,1.5082327413132781,.02053603239147973],[0,0,1.2119675456389454]],ur=[[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],dr=[[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Bs=[[.819022437996703,.3619062600528904,-.1288737815209879],[.0329836539323885,.9292868615863434,.0361446663506424],[.0481771893596242,.2642395317527308,.6335478284694309]],pr=[[1.2268798758459243,-.5578149944602171,.2813910456659647],[-.0405757452148008,1.112286803280317,-.0717110580655164],[-.0763729366746601,-.4214933324022432,1.5869240198367816]],Vs=[[.210454268309314,.7936177747023054,-.0040720430116193],[1.9779985324311684,-2.42859224204858,.450593709617411],[.0259040424655478,.7827717124575296,-.8086757549230774]],fr=[[1,.3963377773761749,.2158037573099136],[1,-.1055613458156586,-.0638541728258133],[1,-.0894841775298119,-1.2914855480194092]],wn=216/24389,We=24389/27,Ne=[.3457/.3585,1,(1-.3457-.3585)/.3585],Te=(t,e,n)=>Wt(n,[e(t[0]),e(t[1]),e(t[2])]),Oe=(t,e,n)=>{let o=Wt(n,t);return[e(o[0]),e(o[1]),e(o[2])]},Uo=t=>{let e=Wt(fr,t);return Wt(pr,[e[0]**3,e[1]**3,e[2]**3])},Jo=t=>{let e=Wt(Bs,t);return Wt(Vs,[Math.cbrt(e[0]),Math.cbrt(e[1]),Math.cbrt(e[2])])};function Zo(t){let[e,n,o]=t,r=(e+16)/116,s=n/500+r,i=r-o/200,a=s**3>wn?s**3:(116*s-16)/We,l=e>We*wn?r**3:e/We,g=i**3>wn?i**3:(116*i-16)/We;return Wt(dr,[a*Ne[0],l*Ne[1],g*Ne[2]])}function Qo(t){let e=Wt(ur,t),n=i=>i>wn?Math.cbrt(i):(We*i+16)/116,o=n(e[0]/Ne[0]),r=n(e[1]/Ne[1]),s=n(e[2]/Ne[2]);return[116*r-16,500*(o-r),200*(r-s)]}var vn=t=>{let e=Math.hypot(t[1],t[2]),n=Math.atan2(t[2],t[1])*Ns;return n<0&&(n+=360),[t[0],e,n]},xn=t=>[t[0],t[1]*Math.cos(t[2]*ao),t[1]*Math.sin(t[2]*ao)];function mr(t){let e=((Number.isNaN(t[0])?0:t[0])%360+360)%360,n=t[1]/100,o=t[2]/100,r=s=>{let i=(s+e/30)%12,a=n*Math.min(o,1-o);return o-a*Math.max(-1,Math.min(i-3,9-i,1))};return[r(0),r(8),r(4)]}function gr(t){let e=Math.max(...t),n=Math.min(...t),o=e-n;if(o<1e-9)return NaN;let r;return e===t[0]?r=(t[1]-t[2])/o+(t[1]<t[2]?6:0):e===t[1]?r=(t[2]-t[0])/o+2:r=(t[0]-t[1])/o+4,r*60}function Gs(t){let e=Math.max(...t),n=Math.min(...t),o=(n+e)/2,r=gr(t),s=e===n||o===0||o===1?0:(e-o)/Math.min(o,1-o);return s<0&&(r+=180,s=-s),r>=360&&(r-=360),[r,s*100,o*100]}function Xs(t){let e=t[1]/100,n=t[2]/100;if(e+n>=1){let s=e/(e+n);return[s,s,s]}let o=mr([t[0],100,50]),r=1-e-n;return[o[0]*r+e,o[1]*r+e,o[2]*r+e]}var zs=t=>[gr(t),Math.min(...t)*100,(1-Math.max(...t))*100];function Ks(t,e){switch(e){case"srgb":return Te(t,bn,so);case"p3":return Te(t,bn,Hs);case"rec2020":return Te(t,Rs,Ds);case"prophoto-rgb":return Wt(dr,Te(t,Fs,Is));case"oklab":return Uo(t);case"oklch":return Uo(xn(t));case"lab":return Zo(t);case"lch":return Zo(xn(t));case"hsl":return Te(mr(t),bn,so);case"hwb":return Te(Xs(t),bn,so)}}function qs(t,e){switch(e){case"srgb":return Oe(t,Ye,hn);case"p3":return Oe(t,Ye,lr);case"rec2020":return Oe(t,ir,cr);case"prophoto-rgb":return Oe(Wt(ur,t),_s,js);case"oklab":return Jo(t);case"oklch":return vn(Jo(t));case"lab":return Qo(t);case"lch":return vn(Qo(t));case"hsl":return Gs(Oe(t,Ye,hn));case"hwb":return zs(Oe(t,Ye,hn))}}function Ct(t,e,n){return e===n?[t[0],t[1],t[2]]:e==="oklch"&&n==="oklab"?xn(t):e==="oklab"&&n==="oklch"?vn(t):e==="lch"&&n==="lab"?xn(t):e==="lab"&&n==="lch"?vn(t):qs(Ks(t,e),n)}var Mn=75e-6,br=t=>t.every(e=>e>=-Mn&&e<=1+Mn),lo=(t,e)=>br(Ct(t,"oklch",e)),io=t=>t.map(e=>Math.min(1,Math.max(0,e))),tr=(t,e)=>Math.hypot(t[0]-e[0],t[1]-e[1],t[2]-e[2]);function En(t,e){if(lo(t,e))return Ct(t,"oklch",e);let n=t[0];if(n>=1)return[1,1,1];if(n<=0)return[0,0,0];if(!Number.isFinite(t[1]))return io(Ct([n,0,vt(t[2])],"oklch",e));let o=.02,r=1e-4,s=[t[0],t[1],t[2]],i=0,a=t[1],l=!0,g=io(Ct(s,"oklch",e));if(tr(Ct(g,e,"oklab"),Ct(t,"oklch","oklab"))<o)return g;for(;a-i>r;){let u=(i+a)/2;s[1]=u;let c=Ct(s,"oklch",e);if(l&&br(c)){i=u;continue}g=io(c);let d=tr(Ct(g,e,"oklab"),Ct(s,"oklch","oklab"));if(d<o){if(o-d<r)return g;l=!1,i=u}else a=u}return g}var hr=(t,e)=>{let n=t*ao,o=Math.cos(n),r=Math.sin(n),s=fr.map(a=>o*a[1]+r*a[2]),i=$s(e==="p3"?lr:e==="rec2020"?cr:hn,pr);return{d:s,F:i,gam:e==="rec2020"?ir:Ye}};function kn(t,e){let{d:[n,o,r],F:s,gam:i}=hr(t,e),a=-Mn,l=1+Mn;return(g,u)=>{let c=g+u*n,d=g+u*o,$=g+u*r,S=c**3,f=d**3,m=$**3,b=i(s[0][0]*S+s[0][1]*f+s[0][2]*m);if(b<a||b>l)return!1;let M=i(s[1][0]*S+s[1][1]*f+s[1][2]*m);if(M<a||M>l)return!1;let L=i(s[2][0]*S+s[2][1]*f+s[2][2]*m);return L>=a&&L<=l}}function wr(t,e){let{d:[n,o,r],F:s,gam:i}=hr(t,e);return(a,l,g)=>{let u=a+l*n,c=a+l*o,d=a+l*r,$=u**3,S=c**3,f=d**3;g[0]=i(s[0][0]*$+s[0][1]*S+s[0][2]*f),g[1]=i(s[1][0]*$+s[1][1]*S+s[1][2]*f),g[2]=i(s[2][0]*$+s[2][1]*S+s[2][2]*f)}}function Cn(t,e,n=.5){if(!t(e,0))return 0;let o=0;for(let r=0;r<16;r++){let s=(o+n)/2;t(e,s)?o=s:n=s}return o}var we=t=>Math.round(Math.min(1,Math.max(0,t))*255).toString(16).padStart(2,"0"),Ys=t=>`#${we(t[0])}${we(t[1])}${we(t[2])}`,Ln=(t,e,n)=>Ys(En([t,e,n],"srgb"));function yr(t){let e=String(t).replace("#","").trim();if(e.length===3&&(e=e.split("").map(o=>o+o).join("")),e.length<6)return[.7,.1,280];let n=[parseInt(e.slice(0,2),16)/255,parseInt(e.slice(2,4),16)/255,parseInt(e.slice(4,6),16)/255];return Ct(n,"srgb","oklch").map(vt)}var Sn=["hex","srgb","css","hsl","hwb","oklch","oklab","lch","lab","p3","rec2020"],vr={hex:"HEX",srgb:"RGB",css:"CSS",hsl:"HSL",hwb:"HWB",oklch:"OKLCH",oklab:"OKLab",lch:"LCH",lab:"Lab",p3:"P3",rec2020:"Rec2020"},xr=["srgb","css","hsl","hwb","hex"],co=t=>!xr.includes(t),Mr=t=>t==="hex"||t==="css"?"srgb":t,Ws=Object.assign(Object.create(null),{hex:"srgb",srgb:"srgb",css:"srgb",hsl:"hsl",hwb:"hwb",oklch:"oklch",oklab:"oklab",lch:"lch",lab:"lab",p3:"display-p3",rec2020:"rec2020"}),Er=t=>Ws[t]||"oklch",Us=Object.assign(Object.create(null),{srgb:"srgb",hsl:"hsl",hwb:"hwb",oklch:"oklch",oklab:"oklab",lch:"lch",lab:"lab","display-p3":"p3",rec2020:"rec2020"}),uo=t=>Us[t]||"oklch",An=.5,kr=(t,e,n)=>Object.freeze(["R","G","B"].map(o=>Object.freeze({k:o,min:0,max:t,step:e,scale:n}))),er=kr(255,1,255),nr=kr(1,.01,1),Ue={oklch:[{k:"L",min:0,max:100,step:1,scale:100},{k:"C",min:0,max:An,step:.01,scale:1},{k:"H",min:0,max:360,step:1,scale:1}],oklab:[{k:"L",min:0,max:100,step:1,scale:100},{k:"a",min:-.4,max:.4,step:.01,scale:1},{k:"b",min:-.4,max:.4,step:.01,scale:1}],lch:[{k:"L",min:0,max:100,step:1,scale:1},{k:"C",min:0,max:150,step:1,scale:1},{k:"H",min:0,max:360,step:1,scale:1}],lab:[{k:"L",min:0,max:100,step:1,scale:1},{k:"a",min:-125,max:125,step:1,scale:1},{k:"b",min:-125,max:125,step:1,scale:1}],srgb:er,css:er,hsl:[{k:"H",min:0,max:360,step:1,scale:1},{k:"S",min:0,max:100,step:1,scale:1},{k:"L",min:0,max:100,step:1,scale:1}],hwb:[{k:"H",min:0,max:360,step:1,scale:1},{k:"W",min:0,max:100,step:1,scale:1},{k:"B",min:0,max:100,step:1,scale:1}],p3:nr,rec2020:nr},or=t=>t>=1?0:t>=.1?1:t>=.01?2:3,Cr=(t,e,n)=>e==="oklch"?[t[0],t[1],t[2]]:xr.includes(n)?e==="srgb"?En(t,"srgb"):Ct(En(t,"srgb"),"srgb",e):Ct(t,"oklch",e);function Tn(t,e){let n=Cr(t,Mr(e),e);return Ue[e].map((o,r)=>{let s=vt(n[r])*o.scale;return Ps(Math.abs(s)<.5*o.step?0:s,o.min,o.max)})}function Lr(t,e,n,o){let r=Mr(e),s=Cr(t,r,e).map(vt);s[n]=o/Ue[e][n].scale;let i=Ct(s,r,"oklch");return[vt(i[0]),vt(i[1]),vt(i[2])]}function Sr(t,e){if(!co(e))return"sRGB";let n=En(t,"srgb");return Math.max(...n)<.03||Math.min(...n)>.97||lo(t,"srgb")?"sRGB":lo(t,"p3")?"P3":"wide"}function po(t,e){if(e==="hex")return Ln(t[0],t[1],t[2]);let n=Ue[e],o=Tn(t,e),r=s=>{let i=o[s].toFixed(or(n[s].step));return n[s].k==="H"&&+i==360?0 .toFixed(or(n[s].step)):i};return e==="css"?`${r(0)}, ${r(1)}, ${r(2)}`:e==="oklch"||e==="oklab"||e==="lch"||e==="lab"?`${r(0)}% ${r(1)} ${r(2)}`:e==="hsl"||e==="hwb"?`${r(0)} ${r(1)}% ${r(2)}%`:`${r(0)} ${r(1)} ${r(2)}`}var rr=(t,e)=>e==="hex"?t:e==="srgb"?`rgb(${t})`:e==="css"?`rgba(${t}, 1)`:e==="hsl"?`hsl(${t})`:e==="hwb"?`hwb(${t})`:e==="p3"?`color(display-p3 ${t})`:e==="rec2020"?`color(rec2020 ${t})`:`${e}(${t})`;function Ar(t,e,n){let o=vt(n);if(e==="hex")return Ln(t[0],t[1],t[2])+(o<.999?we(o):"");let r=po(t,e);if(o>=.999)return rr(r,e);let s=+o.toFixed(3);return e==="css"?`rgba(${r}, ${s})`:rr(`${r} / ${s}`,e)}var Tr=(()=>{try{return document.createElement("canvas").getContext("2d",{colorSpace:"display-p3"})?.getContextAttributes?.().colorSpace==="display-p3"}catch{return!1}})(),fo=Tr?{colorSpace:"display-p3"}:{},Js=Tr?"p3":"srgb",On=(t,e)=>{let n=t.length-1,o=Math.max(0,Math.min(n,e*n)),r=Math.floor(o),s=o-r;return t[r]*(1-s)+t[Math.min(r+1,n)]*s},Zs=(t,e)=>{let n=kn(t,e),o=new Float64Array(128);for(let r=0;r<128;r++)o[r]=Cn(n,r/127);return o},wo="var(--tw-checker)",Qs=Object.assign(Object.create(null),{srgb:"srgb","display-p3":"p3",rec2020:"rec2020","prophoto-rgb":"prophoto-rgb"}),yo=/^(rgba?|hsla?|hwb)\([ \t\n\r\f]*([^)]*?)[ \t\n\r\f]*\)$/i,vo=/^(oklch|oklab|lch|lab|color)\([ \t\n\r\f]*([^)]*?)[ \t\n\r\f]*\)$/i,ti=/^(srgb|srgb-linear|display-p3|a98-rgb|prophoto-rgb|rec2020|xyz|xyz-d50|xyz-d65)$/i,Nn=/^#?([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,mo,Or=()=>mo===void 0?mo=document.createElement("canvas").getContext("2d"):mo,ei=/^(#[0-9a-f]{3,8}|[a-z][a-z-]*(?:\([\w\s.,%+\-\/]*\))?)$/i;function $e(t){if(t=String(t??"").trim(),!ei.test(t))return!1;if(Nn.test(t))return!0;if(vo.test(t))return ri(t);if(yo.test(t))return $r(t)!==null;let e=Or();return e?["#000","#fff"].some(n=>{e.fillStyle=n;let o=e.fillStyle;return e.fillStyle=t,e.fillStyle!==o}):!0}var xo="[+-]?(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e[+-]?\\d+)?",ni=new RegExp("^"+xo+"$","i"),oi=new RegExp("^"+xo+"%$","i"),Nr=new RegExp("^("+xo+")(deg|grad|rad|turn)$","i"),Mo=/[ \t\n\r\f]+/,Eo=/^none$/i,go=t=>t.replace(/^[ \t\n\r\f]+|[ \t\n\r\f]+$/g,""),bo=t=>!!t&&!Mo.test(t),ye=t=>Eo.test(t)?"none":ni.test(t)?"num":oi.test(t)?"pct":Nr.test(t)?"angle":null,ho=t=>{let e=Nr.exec(t);if(!e)return vt(parseFloat(t));let n=parseFloat(e[1]),o=e[2].toLowerCase();return vt(o==="turn"?n*360:o==="grad"?n*.9:o==="rad"?n*180/Math.PI:n)};function $r(t){let e=yo.exec(t);if(!e)return null;let n=e[1].toLowerCase().replace(/a$/,""),o=e[2],r,s,i;if(o.includes(",")){if(n==="hwb")return null;let u=o.split(",").map(go);if(u.length<3||u.length>4||!u.every(bo)||(r=u.slice(0,3),s=u[3],i=r.map(ye),n==="rgb"?!(i.every(c=>c==="num")||i.every(c=>c==="pct")):!((i[0]==="num"||i[0]==="angle")&&i[1]==="pct"&&i[2]==="pct"))||s!==void 0&&ye(s)!=="num"&&ye(s)!=="pct")return null}else{let u=o.split("/");if(u.length>2||(r=u[0].split(Mo).filter(Boolean),r.length!==3))return null;if(u.length===2){s=go(u[1]);let c=bo(s)?ye(s):null;if(!c||c==="angle")return null}if(i=r.map(ye),n==="rgb"?!i.every(c=>c&&c!=="angle"):!(i[0]&&i[0]!=="pct"&&i[1]&&i[1]!=="angle"&&i[2]&&i[2]!=="angle"))return null}let a=(u,c)=>Eo.test(u)?0:/%$/.test(u)?parseFloat(u)/100*c:parseFloat(u),l=s===void 0?1:R(a(s,1),0,1);return[n==="rgb"?Ct([R(a(r[0],255)/255,0,1),R(a(r[1],255)/255,0,1),R(a(r[2],255)/255,0,1)],"srgb","oklch"):Ct([i[0]==="none"?0:ho(r[0]),R(a(r[1],100),0,100),R(a(r[2],100),0,100)],n,"oklch"),l]}var ri=t=>{let e=vo.exec(t);if(!e)return!1;let n=e[1].toLowerCase(),o=e[2].split("/");if(o.length>2)return!1;let r=o[0].split(Mo).filter(Boolean);if(n==="color"&&!ti.test(r.shift()||"")||r.length!==3)return!1;let s=n==="lch"||n==="oklch";if(!r.every((i,a)=>{let l=ye(i);return l&&(s&&a===2?l!=="pct":l!=="angle")}))return!1;if(o.length===2){let i=go(o[1]),a=bo(i)?ye(i):null;if(!a||a==="angle")return!1}return!0};function ve(t){if(t=String(t??"").trim(),Nn.test(t)){let a=t.replace("#",""),l=1;a.length===4?(l=parseInt(a[3]+a[3],16)/255,a=a.slice(0,3)):a.length===8&&(l=parseInt(a.slice(6,8),16)/255,a=a.slice(0,6));let[g,u,c]=yr("#"+a);return[g,u,c,l]}let e=vo.exec(t);if(e){let a=e[1].toLowerCase(),[l,g]=e[2].split("/").map(m=>m.trim()),u=l.split(/\s+/).filter(Boolean),c=a;if(a==="color"&&(c=Qs[(u[0]||"").toLowerCase()],u=u.slice(1),!c))return[.7,.1,280,1];let d=(m,b=1)=>!m||Eo.test(m)?0:vt(parseFloat(m))*(/%$/.test(m)?b:1),$=g?R(d(g,.01),0,1):1,S=a==="lab"?[R(d(u[0]),0,100),d(u[1],1.25),d(u[2],1.25)]:a==="lch"?[R(d(u[0]),0,100),Math.max(0,d(u[1],1.5)),ho(u[2]||"0")]:a==="color"?[d(u[0],.01),d(u[1],.01),d(u[2],.01)]:a==="oklab"?[R(d(u[0],.01),0,1),d(u[1],.004),d(u[2],.004)]:[R(d(u[0],.01),0,1),Math.max(0,d(u[1],.004)),ho(u[2]||"0")],f=c==="oklch"?S:Ct(S,c,"oklch");return[vt(f[0]),R(vt(f[1]),0,An),(vt(f[2])%360+360)%360,$]}if(yo.test(t)){let a=$r(t);if(!a)return[0,0,0,1];let[l,g]=a;return[vt(l[0]),R(vt(l[1]),0,An),(vt(l[2])%360+360)%360,g]}let n=Or();if(!n)return[0,0,0,1];n.fillStyle="#000",n.fillStyle=t;let o=n.fillStyle;if(Nn.test(o))return ve(o);let r=o.match(/^rgba?\(([^)]*)\)/i),s=((r?r[1]:"").match(/-?[\d.]+(?:e[+-]?\d+)?/gi)||[0,0,0]).map(Number),i=Ct([s[0]/255,s[1]/255,s[2]/255],"srgb","oklch");return[vt(i[0]),vt(i[1]),vt(i[2]),s[3]!=null?R(vt(s[3]),0,1):1]}function Pe(t,e){let[n,o,r,s]=ve(t.value||"#7c5cff"),i=Sn.includes(t.mode)?t.mode:"oklch",a=NaN,l=null,g=[],u=NaN,c="",d=()=>Ar([n,o,r],i,s),$=h("div","tw-color-body"),S=h("div","tw-wg-area"),f=document.createElement("canvas");f.className="tw-wg-canvas";let m=h("div","tw-wg-thumb");S.append(f,m);let b=h("div","tw-wg-hue"),M=document.createElement("canvas");M.className="tw-wg-hue-canvas";let L=h("div","tw-wg-hue-thumb");b.append(M,L);let j=h("div","tw-wg-alpha"),I=h("div","tw-wg-alpha-grad"),B=h("div","tw-wg-hue-thumb");j.append(I,B),f.setAttribute("aria-hidden","true"),M.setAttribute("aria-hidden","true"),S.tabIndex=0,S.setAttribute("role","group"),S.setAttribute("aria-label","Colour plane: chroma across, lightness up"),b.tabIndex=0,b.setAttribute("role","slider"),b.setAttribute("aria-label","Hue"),b.setAttribute("aria-valuemin","0"),b.setAttribute("aria-valuemax","360"),j.tabIndex=0,j.setAttribute("role","slider"),j.setAttribute("aria-label","Alpha"),j.setAttribute("aria-valuemin","0"),j.setAttribute("aria-valuemax","1");let _=h("div","tw-color-mode-row"),D=h("select","tw-color-mode");D.setAttribute("aria-label","Color mode"),Sn.forEach(F=>{let G=document.createElement("option");G.value=F,G.textContent=vr[F],D.append(G)}),D.value=i;let W=h("span","tw-color-gamut");_.append(D,W);let O=h("div","tw-color-channels");$.append(S,b,j,_,O);let H=f.getContext("2d",fo),tt=M.getContext("2d"),Y=document.createElement("canvas"),U=Y.getContext("2d",fo),st=null,w=()=>{let F=S.getBoundingClientRect(),G=Math.round(F.width),ft=Math.round(F.height);if(G<2)return;let mt=window.devicePixelRatio||1,N=co(i)?"p3":"srgb",it=Zs(r,N);l=it;let ct=Math.round(G*mt),ut=Math.round(ft*mt),pt=Math.max(1,Math.round(ct/4)),St=Math.max(1,Math.round(ut/4));(Y.width!==pt||Y.height!==St)&&(Y.width=pt,Y.height=St,st=new ImageData(pt,St,fo));let Pt=st.data,Ie=St>1?1/(St-1):0,Ut=pt>1?1/(pt-1):0,ge=wr(r,Js),ae=[0,0,0];for(let zt=0;zt<St;zt++){let Jt=1-zt*Ie,le=On(it,Jt);for(let Zt=0;Zt<pt;Zt++){ge(Jt,Zt*Ut*le,ae);let qt=(zt*pt+Zt)*4;Pt[qt]=Math.round(R(ae[0],0,1)*255),Pt[qt+1]=Math.round(R(ae[1],0,1)*255),Pt[qt+2]=Math.round(R(ae[2],0,1)*255),Pt[qt+3]=255}}if(U.putImageData(st,0,0),f.width=ct,f.height=ut,H.imageSmoothingEnabled=!0,H.drawImage(Y,0,0,ct,ut),N!=="srgb"){let zt=(Jt,le,Zt,qt)=>{let Vn=kn(r,Jt),je=[];for(let Rt=0;Rt<=100;Rt++){let jt=Rt/100,Me=On(it,jt);if(Me<=0)continue;let Be=Cn(Vn,jt,Me);Be<=0||je.push([Math.min(Be/Me*ct,ct-Zt*mt/2),(1-jt)*ut])}je.length<2||(H.save(),H.strokeStyle=le,H.lineWidth=Zt*mt,H.lineJoin=H.lineCap="round",H.setLineDash(qt.map(Rt=>Rt*mt)),H.beginPath(),je.forEach((Rt,jt)=>jt?H.lineTo(Rt[0],Rt[1]):H.moveTo(Rt[0],Rt[1])),H.stroke(),H.restore())};zt("srgb","rgba(255,255,255,0.7)",1.5,[]),zt("p3","rgba(255,255,255,0.4)",1,[3,3])}a=r},P=.7,y=F=>{let G=Ct([P,Cn(kn(F,"srgb"),P),F],"oklch","srgb");return`rgb(${R(G[0]*255,0,255)|0},${R(G[1]*255,0,255)|0},${R(G[2]*255,0,255)|0})`},k=0,A=()=>{let F=b.getBoundingClientRect(),G=Math.max(1,Math.round(F.width)),ft=Math.max(1,Math.round(F.height));if(!(G<2)&&!(G===k&&M.width===G)){k=G,M.width=G,M.height=ft;for(let mt=0;mt<G;mt++)tt.fillStyle=y(mt/(G-1)*360),tt.fillRect(mt,0,1,ft)}},E=()=>{let F=l?On(l,n):.4,G=N=>`${R(N,0,1)*100}%`,ft=(N,it)=>{let ct=R(N,0,1);return`calc(${ct*100}% + ${(.5-ct)*it}px)`};m.style.left=G(F>0?o/F:0),m.style.top=G(1-n),L.style.left=ft(r/360,16),B.style.left=ft(s,16),j.setAttribute("aria-valuenow",String(+s.toFixed(2)));let mt=Math.round(r);b.setAttribute("aria-valuenow",String(mt)),b.setAttribute("aria-valuetext",`${mt}\xB0`),S.setAttribute("aria-description",`lightness ${Math.round(n*100)}%, chroma ${+o.toFixed(3)}`),I.style.background=`linear-gradient(to right, oklch(${n} ${o} ${r} / 0), oklch(${n} ${o} ${r}))`,m.style.background=`oklch(${n} ${o} ${r})`,B.style.background=`linear-gradient(oklch(${n} ${o} ${r} / ${s}), oklch(${n} ${o} ${r} / ${s})), var(--tw-dropdown-bg)`,r!==u&&(c=y(r),u=r),L.style.background=c},v=()=>{if(W.textContent=Sr([n,o,r],i),i==="hex"){let F=O.querySelector(".tw-color-chan-input");F&&document.activeElement!==F&&(F.value=Ln(n,o,r)+(s<.999?we(s):""))}else{let F=Tn([n,o,r],i);g.forEach((G,ft)=>{G.el.contains(document.activeElement)||G.set(F[ft])})}},V=()=>{A(),w(),E()},Z=()=>e(d()),T=F=>{F&&r!==a&&w(),E(),v()},z=F=>{T(F),Z()},J=()=>{if(O.replaceChildren(),g=[],i==="hex"){O.classList.add("tw-color-channels--hex");let F=h("div","tw-color-chan"),G=h("input","tw-color-chan-input");G.type="text",G.spellcheck=!1,G.setAttribute("aria-label","Hex color"),Bt(G),Yo(G),G.addEventListener("change",()=>{let ft=G.value.trim();Nn.test(ft)&&([n,o,r,s]=ve(ft),z(!0))}),G.addEventListener("blur",v),G.addEventListener("keydown",ft=>{ft.key==="Enter"&&G.blur()}),F.append(nt("span","tw-color-chan-label","HEX"),G),O.append(F)}else{O.classList.remove("tw-color-channels--hex");let F=Tn([n,o,r],i);Ue[i].forEach((G,ft)=>{let mt=At({label:G.k,value:F[ft],min:G.min,max:G.max,step:G.step},N=>{[n,o,r]=Lr([n,o,r],i,ft,R(N,G.min,G.max)),z(!0)});mt.el.addEventListener("focusout",v),g.push(mt),O.append(mt.el)})}v()},Q=F=>l?On(l,F):.4,xt=F=>Ae(F,S);Se(S,F=>{let[G,ft]=xt(F);n=1-ft,o=G*Q(n),z(!1)}),S.addEventListener("keydown",F=>{if(F.key==="Home"||F.key==="End"){F.preventDefault();return}let G=F.shiftKey?10:1,ft=F.key==="ArrowRight"?G:F.key==="ArrowLeft"?-G:0,mt=F.key==="ArrowUp"?G:F.key==="ArrowDown"?-G:F.key==="PageUp"?10:F.key==="PageDown"?-10:0;if(!ft&&!mt)return;F.preventDefault();let N=Q(n),it=R((N>0?o/N:0)+ft*.01,0,1);n=R(n+mt*.01,0,1),o=it*Q(n),z(!1)});let Tt=F=>Ae(F,b)[0]*360;Se(b,F=>{r=Tt(F),z(!0)}),b.addEventListener("keydown",F=>{let G=ue(F,r,1,0,360);G!=null&&(F.preventDefault(),r=R(G,0,360),z(!0))});let Ot=F=>Ae(F,j)[0];Se(j,F=>{s=Ot(F),z(!1)}),j.addEventListener("keydown",F=>{let G=ue(F,s,.01,0,1);G!=null&&(F.preventDefault(),s=R(G,0,1),z(!1))});let Et=F=>{i=F,D.value=F,J(),w(),E()};return D.addEventListener("change",()=>{Et(D.value),t.onMode&&t.onMode()}),J(),{el:$,set:F=>{let G=document.activeElement;G&&$.contains(G)&&G.matches("input")&&G.blur(),[n,o,r,s]=ve(F),T(!0)},get:()=>d(),mode:()=>i,setMode:F=>{F!==i&&Sn.includes(F)&&Et(F)},reflow:V,swatchCss:()=>`linear-gradient(oklch(${n} ${o} ${r} / ${s}), oklch(${n} ${o} ${r} / ${s})), ${wo}`,valueText:()=>po([n,o,r],i)+(s<.999?i==="hex"?we(s):` / ${+s.toFixed(2)}`:"")}}function si(t,e){let{root:n,trigger:o,right:r}=Vt("tw-color",t.label??"Colour"),s=h("span","tw-trigger-chip tw-color-swatch"),i=h("span","tw-trigger-value");r.append(s,i);let a=h("div","tw-color-pop"),l=()=>{s.style.background=g.swatchCss(),i.textContent=g.valueText()},g=Pe({value:t.value,onMode:()=>l()},u=>{l(),e(u)});return a.append(g.el),n.append(a),Dt(n,o,a,{width:240,fallbackH:340,gap:6,onOpen:g.reflow,onReflow:g.reflow}),l(),{el:n,set:u=>{u!=null&&(g.set(u),l())},get:()=>g.get()}}var Pr=(t,e,n,o)=>o<.999?`oklch(${+t.toFixed(4)} ${+e.toFixed(4)} ${+n.toFixed(2)} / ${+o.toFixed(3)})`:`oklch(${+t.toFixed(4)} ${+e.toFixed(4)} ${+n.toFixed(2)})`;rt("color",si);rt("colorpicker",Pe);var ii=Nt('<path d="M12 5v14m7-7H5"/>',"",2.5),Dr=(t,e)=>t&&!Array.isArray(t)&&typeof t[e]=="string"?t[e]:null,Rr=t=>Dr(t,"interpolation"),Fr=t=>Dr(t,"easing"),_r=[["linear","Linear"],["ease","Ease"],["ease-in","Ease in"],["ease-out","Ease out"],["ease-in-out","Ease in-out"]];function Hr(t){let e=[{color:"oklch(0.72 0.19 25)",pos:0},{color:"oklch(0.72 0.16 280)",pos:1}],n=Array.isArray(t)?t:t&&Array.isArray(t.stops)?t.stops:null,o=(s,i)=>$e(s)?{color:String(s).trim(),pos:R(+i||0,0,1)}:null,r=(n||[]).map(s=>Array.isArray(s)?o(s[0],s[1]):s&&typeof s=="object"?o(s.color,s.pos):null).filter(Boolean);return r.length>=2?r:e}function ai(t,e){t.value??(t.value=t.stops);let n=Hr(t.value),o=n[0],r=zn(Fr(t.value)),{root:s,trigger:i,right:a}=Vt("tw-gradient",t.label??"Gradient"),l=h("span","tw-trigger-chip tw-gradient-preview");l.setAttribute("role","img"),a.append(l);let g=h("div","tw-color-pop tw-gradient-pop"),u=h("div","tw-gradient-bar-row"),c=h("div","tw-gradient-bar"),d=h("div","tw-gradient-grad"),$=h("div","tw-gradient-rail");c.append(d,$);let S=ht("tw-gradient-add",ii);S.title="Add a stop after the selected one",S.setAttribute("aria-label","Add a colour stop after the selected one"),u.append(c,S);let f=()=>[...n].sort((y,k)=>y.pos-k.pos),m=()=>Er(B.mode()),b=()=>({stops:f().map(y=>({color:y.color,pos:+y.pos.toFixed(4)})),interpolation:m(),easing:r}),M=()=>{let y=sn(b());d.style.background=y,l.style.background=`${y}, ${wo}`},L=()=>{l.setAttribute("aria-label",`${n.length} stop${n.length===1?"":"s"}`)},j=()=>e(b()),I=y=>[...$.children].find(k=>k._stop===y),B=Pe({value:o.color,mode:uo(Rr(t.value)||"oklch"),onMode:()=>{M(),j()}},y=>{o.color=y,I(o)?.style.setProperty("--stop",y),M(),j()}),_=h("select","tw-color-mode tw-gradient-ease");_.setAttribute("aria-label","Easing between stops"),_.title="How the ramp blends between stops";for(let[y,k]of _r){let A=document.createElement("option");A.value=y,A.textContent=k,_.append(A)}let D=()=>{let y=_.querySelector("option[data-custom]");_r.some(([k])=>k===r)?y?.remove():(y||(y=document.createElement("option"),y.dataset.custom="",y.textContent="Custom",_.append(y)),y.value=r),_.value=r};_.addEventListener("change",()=>{r=_.value,D(),M(),j()}),B.el.querySelector(".tw-color-mode").after(_),D(),g.append(u,B.el),s.append(g);let W=y=>y.setAttribute("aria-label",`Colour stop at ${Math.round(y._stop.pos*100)}%${y._stop===o?", selected":""}`),O=()=>{for(let y of $.children)y.dataset.sel=String(y._stop===o),W(y)},H=()=>{$.replaceChildren();for(let y of n){let k=ht("tw-gradient-stop");k._stop=y,k.style.left=y.pos*100+"%",k.style.setProperty("--stop",y.color),k.dataset.sel=String(y===o),W(k),k.addEventListener("focus",()=>tt(y,!1));let A=!1;Yt(k,{onDown:E=>{E.preventDefault(),E.stopPropagation(),k.focus({focusVisible:!1}),tt(y,!1),A=!1},onMove:E=>{let v=$.getBoundingClientRect();y.pos=R((E.clientX-v.left)/(v.width||1),0,1),k.style.left=y.pos*100+"%",W(k),M(),j(),A=n.length>2&&(E.clientY<v.top-24||E.clientY>v.bottom+24),k.dataset.removing=String(A)},onEnd:()=>{A?st(y):k.dataset.removing="false"}}),k.addEventListener("dblclick",E=>{E.preventDefault(),st(y)}),k.addEventListener("keydown",E=>{let v=E.key==="ArrowLeft"?-1:E.key==="ArrowRight"?1:0;v&&(E.preventDefault(),y.pos=R(y.pos+v*(E.shiftKey?.1:.01),0,1),k.style.left=y.pos*100+"%",W(k),M(),j())}),$.append(k)}},tt=(y,k)=>{y!==o&&(B.set(y.color),o=y),k?H():O()},Y=y=>{let k=$.getBoundingClientRect();return R((y-k.left)/(k.width||1),0,1)},U=y=>{let k=f(),A=k[0],E=k[k.length-1];for(let Q=0;Q<k.length-1;Q++)if(y>=k[Q].pos&&y<=k[Q+1].pos){A=k[Q],E=k[Q+1];break}let v=Vo(rn(r),E.pos>A.pos?R((y-A.pos)/(E.pos-A.pos),0,1):0),V=ve(A.color),Z=ve(E.color),T=Q=>Q[1]<1e-4,z=Z[2]-V[2];z>180?z-=360:z<-180&&(z+=360),(T(V)||T(Z))&&(z=0);let J=(((T(V)&&!T(Z)?Z[2]:V[2])+z*v)%360+360)%360;return Pr(V[0]+(Z[0]-V[0])*v,V[1]+(Z[1]-V[1])*v,J,V[3]+(Z[3]-V[3])*v)},st=y=>{if(n.length<=2)return;let k=n.indexOf(y);if(k<0)return;n.splice(k,1);let A=o===y?n[Math.max(0,k-1)]:o;M(),tt(A,!0),L(),j(),I(o)?.focus()},w=y=>{let k={color:U(y),pos:R(y,0,1)};return n.push(k),M(),tt(k,!0),L(),j(),k},P=()=>{let y=f(),k=y.indexOf(o);k<0&&(k=0);let A=k<y.length-1?(y[k].pos+y[k+1].pos)/2:k>0?(y[k-1].pos+y[k].pos)/2:R(y[k].pos+.1,0,1);w(A)};return S.addEventListener("click",y=>{y.stopPropagation(),P()}),c.addEventListener("dblclick",y=>{y.target.closest(".tw-gradient-stop")||(y.preventDefault(),w(Y(y.clientX)))}),g.tabIndex=-1,g.addEventListener("keydown",y=>{(y.key==="Delete"||y.key==="Backspace")&&!y.altKey&&!/^(input|textarea|select)$/i.test(y.target.tagName)&&n.length>2&&(y.preventDefault(),st(o))}),Dt(s,i,g,{width:260,fallbackH:392,gap:6,onOpen:B.reflow,onReflow:B.reflow,initialFocus:()=>I(o)}),H(),M(),L(),{el:s,set:y=>{let k=Rr(y);k&&B.setMode(uo(k));let A=Fr(y);A!==null&&(r=zn(A),D());let E=Hr(y).sort((v,V)=>v.pos-V.pos);if(E.length===n.length)f().forEach((v,V)=>{v.color=E[V].color,v.pos=E[V].pos;let Z=I(v);Z&&(Z.style.left=v.pos*100+"%",Z.style.setProperty("--stop",v.color))});else{let v=o.pos;n=E,o=n.reduce((V,Z)=>Math.abs(Z.pos-v)<Math.abs(V.pos-v)?Z:V,n[0]),H()}M(),L(),B.set(o.color)},get:()=>b()}}rt("gradient",ai);var Je={x:0,y:8,blur:24,spread:0,color:"rgb(0 0 0 / 0.18)"},li=t=>!!t&&typeof t=="object",fe=(t,e)=>t!=null&&t!==""&&Number.isFinite(+t)?+t:e,Gt=t=>String(+t.toFixed(1)),ci=/#[0-9a-f]{3,8}\b|(?:oklch|oklab|rgba?|hsla?|hwb|lab|lch|color)\([^()]*\)/i,ui=/^(-?\d*\.?\d+)(px)?$/,di=t=>{let e=ci.exec(t);if(!e||!$e(e[0]))return null;let n=(t.slice(0,e.index)+" "+t.slice(e.index+e[0].length)).trim().split(/\s+/).filter(Boolean),o=n.includes("inset"),r=n.filter(i=>i!=="inset");if(r.length<2||r.length>4||!r.every(i=>ui.test(i)))return null;let s=r.map(i=>+i.replace(/px$/,""));return{inset:o,x:s[0],y:s[1],blur:s[2]??0,spread:s[3]??0,color:e[0]}},pi=Nt('<path d="M18 9s-4.4 6-6 6-6-6-6-6"/>',"tw-shadow-chevron",2.5);function fi(t,e){let n=E=>typeof E=="string"?di(E):li(E)?E:null,o=n(t.value??t)||{},r=!!o.inset,s=fe(o.x,Je.x),i=fe(o.y,Je.y),a=Math.max(0,fe(o.blur,Je.blur)),l=fe(o.spread,Je.spread),{root:g,trigger:u,right:c}=Vt("tw-shadow",t.label??"Shadow"),d=h("span","tw-trigger-chip tw-shadow-chip"),$=h("span","tw-shadow-chip-tile");d.append($);let S=h("span","tw-trigger-value");c.append(d,S);let f=h("div","tw-color-pop tw-shadow-pop"),m=h("div","tw-shadow-stage"),b=h("div","tw-shadow-card");m.append(b);let M=pe([{value:"outer",label:"Outer"},{value:"inner",label:"Inner"}],r?"inner":"outer",E=>{E==="inner"!==r&&(r=E==="inner",y(),P())},"Shadow position"),L=h("div","tw-row");L.append(nt("span","tw-row-label","Position"),M.el);let j=h("div","tw-fields tw-shadow-fields"),I=(E,v,V,Z)=>{let T=At({label:E,value:v(),step:1,min:Z,unit:"px"},z=>{V(z),y(),P()});return j.append(T.el),T},B=I("X",()=>s,E=>{s=E}),_=I("Y",()=>i,E=>{i=E}),D=I("Blur",()=>a,E=>{a=Math.max(0,E)},0),W=I("Spread",()=>l,E=>{l=E});s=B.get(),i=_.get(),a=D.get(),l=W.get();let O=ht("tw-trigger tw-shadow-color");O.setAttribute("aria-expanded","false");let H=h("span","tw-trigger-chip tw-color-swatch"),tt=h("span","tw-trigger-value"),Y=h("span","tw-trigger-right");Y.append(H,tt),Y.insertAdjacentHTML("beforeend",pi),O.append(nt("span","tw-trigger-label","Colour"),Y);let U=Pe({value:typeof o.color=="string"&&$e(o.color)?o.color:Je.color,onMode:()=>y()},()=>{y(),P()});U.el.hidden=!0,O.addEventListener("click",()=>{let E=U.el.hidden;U.el.hidden=!E,O.setAttribute("aria-expanded",String(E)),k.reflow()}),f.append(m,L,j,O,U.el),g.append(f);let st=E=>`${r?"inset ":""}${Gt(s*E)}px ${Gt(i*E)}px ${Gt(a*E)}px ${Gt(l*E)}px ${U.get()}`,w=()=>({inset:r,x:+Gt(s),y:+Gt(i),blur:+Gt(a),spread:+Gt(l),color:U.get(),css:st(1)}),P=()=>e(w()),y=()=>{b.style.boxShadow=st(1),$.style.boxShadow=st(.3),S.textContent=`${r?"in ":""}${Gt(s)} ${Gt(i)} ${Gt(a)}${l?" "+Gt(l):""}`,H.style.background=U.swatchCss(),tt.textContent=U.valueText()},k=Dt(g,u,f,{width:260,fallbackH:300,gap:6,onOpen:U.reflow,onReflow:U.reflow});return y(),{el:g,set:E=>{let v=n(E);v&&(v.inset!=null&&(r=!!v.inset,M.set(r?"inner":"outer")),v.x!=null&&(B.set(fe(v.x,s)),s=B.get()),v.y!=null&&(_.set(fe(v.y,i)),i=_.get()),v.blur!=null&&(D.set(fe(v.blur,a)),a=D.get()),v.spread!=null&&(W.set(fe(v.spread,l)),l=W.get()),typeof v.color=="string"&&$e(v.color)&&U.set(v.color),y())},get:w}}rt("shadow",fi);var mi=Nt('<path d="M10.5 13.5a4 4 0 0 0 5.6 0l3-3a4 4 0 0 0-5.6-5.6l-1.5 1.5M13.5 10.5a4 4 0 0 0-5.6 0l-3 3a4 4 0 0 0 5.6 5.6l1.5-1.5"/>'),gi=/^(-?\d*\.?\d+)([a-z%]*)$/i,Ir=t=>t!=null&&t!==""&&Number.isFinite(+t)?+t:null,jr=t=>String(+t.toFixed(2)),Br=t=>t.length===1?[t[0],t[0],t[0],t[0]]:t.length===2?[t[0],t[1],t[0],t[1]]:t.length===3?[t[0],t[1],t[2],t[1]]:t.slice(0,4),Vr=(t,e)=>{if(typeof t=="number")return Number.isFinite(t)?[t,t,t,t]:null;if(typeof t=="string"){let n=t.trim().split(/\s+/).map(o=>{let r=gi.exec(o);return r?+r[1]:NaN});return n.length>=1&&n.length<=4&&n.every(Number.isFinite)?Br(n):null}if(Array.isArray(t)){let n=t.map(Ir);return n.length>=1&&n.length<=4&&n.every(o=>o!==null)?Br(n):null}if(t&&typeof t=="object"){let n=t,o=e.slice(),r=!1;return["top","right","bottom","left"].forEach((s,i)=>{let a=Ir(n[s]);a!==null&&(o[i]=a,r=!0)}),r?o:null}return null};function bi(t,e){let n=typeof t.unit=="string"&&t.unit.trim()?t.unit.trim():"px",o=!!t.corners,r={step:t.step??1,min:t.min,max:t.max,unit:n},s=Vr(t.value??t,[0,0,0,0])||[0,0,0,0],i=s.every(B=>B===s[0]),a=h("div","tw-sides"),l=At({label:t.label,value:s[0],row:!0,...r},B=>{s=[B,B,B,B],L(),M()}),g=ht("tw-sides-link",mi);g.setAttribute("aria-label","Link all sides"),g.title="Same on all sides",g.addEventListener("click",()=>j());let u=h("div","tw-sides-multi"),c=h("div","tw-sides-head"),d=h("span","tw-sides-sum");c.append(nt("span","tw-row-label",t.label),d);let $=h("div","tw-fields"),f=(o?["TL","TR","BR","BL"]:["T","R","B","L"]).map((B,_)=>{let D=At({label:B,value:s[_],...r},W=>{s[_]=W,L(),M()});return $.append(D.el),D});u.append(c,$),a.append(l.el,u),s=f.map(B=>B.get());let m=()=>{let[B,_,D,W]=s.map(jr),O=H=>H==="0"?"0":H+n;return(B===D&&_===W?B===_?[B]:[B,_]:_===W?[B,_,D]:[B,_,D,W]).map(O).join(" ")},b=()=>({top:s[0],right:s[1],bottom:s[2],left:s[3],css:m()}),M=()=>e(b()),L=()=>{a.classList.toggle("is-linked",i),g.setAttribute("aria-pressed",String(i)),i?l.el.insertBefore(g,l.el.lastChild):c.append(g),l.set(s[0]),f.forEach((B,_)=>B.set(s[_])),d.textContent=s.map(jr).join(" ")},j=()=>{i=!i,i&&(s=[s[0],s[0],s[0],s[0]]),L(),M(),g.focus()};return L(),{el:a,set:B=>{let _=Vr(B,s);_&&(f.forEach((D,W)=>D.set(_[W])),s=f.map(D=>D.get()),i=s.every(D=>D===s[0]),L())},get:b}}rt("sides",bi);function hi(t,e){let n=t.label,o=+(t.value&&t.value[0]),r=+(t.value&&t.value[1]),s=Number.isFinite(o)?o:0,i=Number.isFinite(r)?r:1,[a,l]=[te(s),te(i)],g=A=>A!=null&&A!==""&&Number.isFinite(+A),{min:u,max:c,step:d}=ln(g(t.min)?t.min:Math.min(a[0],l[0]),g(t.max)?t.max:Math.max(a[1],l[1]),t.step,s,i);[u,c]=ke(u,c,d);let $=Qt(d),S=A=>he(A,u,d),f=R(S(Number.isFinite(o)?o:u),u,c),m=R(S(Number.isFinite(r)?r:c),u,c);if(f>m){let A=f;f=m,m=A}let b=h("div","tw-slider-wrap"),M=h("div","tw-slider tw-interval"),L=h("div","tw-slider-fill"),j=h("div","tw-slider-handle"),I=h("div","tw-slider-handle"),B=nt("span","tw-slider-label",n),_=h("span","tw-slider-value");M.append(L,j,I,B,_),b.append(M),[["minimum",j],["maximum",I]].forEach(([A,E])=>{E.tabIndex=0,E.setAttribute("role","slider"),E.setAttribute("aria-label",`${n} ${A}`),E.setAttribute("aria-valuemin",String(u)),E.setAttribute("aria-valuemax",String(c))});let D=A=>(A-u)/(c-u||1)*100,W=A=>`clamp(5px, calc(${A}% - 1.5px), calc(100% - 9px))`,O=()=>{let A=D(f),E=D(m);L.style.left=A+"%",L.style.width=Math.max(0,E-A)+"%",j.style.left=W(A),I.style.left=W(E),_.textContent=`${f.toFixed($)} \u2013 ${m.toFixed($)}`,j.setAttribute("aria-valuenow",String(f)),I.setAttribute("aria-valuenow",String(m));let v=b.offsetWidth;if(v){B.style.maxWidth=Math.max(0,v-_.offsetWidth-12-8-10)+"px";let V=Z=>cn(B,_,Z/100*v-1.5,3);j.classList.toggle("is-dodge",V(D(f))),I.classList.toggle("is-dodge",V(D(m)))}};O();let H=()=>e([f,m]),tt=A=>{f=R(Math.min(S(A),m),u,c),O()},Y=A=>{m=R(Math.max(S(A),f),u,c),O()},U=null,st=1,w=null,P=A=>{let E=b.offsetWidth||U.width,v=R((A-U.left)/st/E,0,1);return R(u+v*(c-u),u,c)},y=A=>{let E=P(A);w||(w=E<f?"lo":E>m?"hi":Math.abs(E-f)<=Math.abs(E-m)?"lo":"hi"),w==="lo"?tt(E):Y(E),H()};Yt(M,{onDown:A=>{A.preventDefault(),U=b.getBoundingClientRect(),st=U.width/(b.offsetWidth||U.width),M.classList.add("is-active","is-dragging"),w=null,y(A.clientX),(w==="lo"?j:I).focus({focusVisible:!1})},onMove:A=>y(A.clientX),onEnd:()=>{U=null,w=null,M.classList.remove("is-active","is-dragging")}}),un(M,O),_t(O),Ht(M,[[window,"resize"],[window,"tw-reflow"]],O);let k=A=>E=>{let v=A==="lo"?ue(E,f,d,u,m):ue(E,m,d,f,c);v!=null&&(E.preventDefault(),A==="lo"?tt(v):Y(v),H())};return j.addEventListener("keydown",k("lo")),I.addEventListener("keydown",k("hi")),{el:b,set:A=>{if(Array.isArray(A)){let E=+A[0],v=+A[1];if(!Number.isFinite(E)||!Number.isFinite(v))return;f=R(S(Math.min(E,v)),u,c),m=R(S(Math.max(E,v)),u,c),O()}},get:()=>[f,m]}}rt("interval",hi);var wi=0;function yi(t){let e=`tw-tabs-${++wi}`,n=h("div","tw-tabs"),o=h("div","tw-tabs-bar");o.setAttribute("role","tablist");let r=h("div","tw-tabs-pill");o.append(r);let s=h("div","tw-tabs-pages"),i=[],a=t.pages.map((u,c)=>{let d=nt("button","tw-tabs-tab",u.title);d.setAttribute("role","tab"),d.dataset.active=String(c===0),d.setAttribute("aria-selected",String(c===0)),d.tabIndex=c===0?0:-1,d.id=`${e}-tab-${c}`,d.setAttribute("aria-controls",`${e}-page-${c}`);let $=h("div","tw-tabs-page tw-controls");return $.dataset.active=String(c===0),$.setAttribute("role","tabpanel"),$.id=`${e}-page-${c}`,$.setAttribute("aria-labelledby",d.id),i.push($),s.append($),d.addEventListener("click",()=>g(c)),o.append(d),d});n.append(o,s);let l=u=>no(o,r,u);function g(u){a.forEach((c,d)=>{c.dataset.active=String(d===u),c.setAttribute("aria-selected",String(d===u)),c.tabIndex=d===u?0:-1}),i.forEach((c,d)=>c.dataset.active=String(d===u)),l(!0),requestAnimationFrame(()=>window.dispatchEvent(new Event("tw-reflow")))}return o.addEventListener("keydown",u=>{let c=a.findIndex($=>$.dataset.active==="true");if(c<0)return;let d=Ke(u.key,c,a.length,-1);d<0||(u.preventDefault(),g(d),a[d].focus())}),_t(l),{el:n,bodies:i,activate:g,active:()=>a.findIndex(u=>u.dataset.active==="true")}}rt("tabs",yi);var vi=t=>String(t).replace(/[\\"]/g,"\\$&").replace(/[\x00-\x1f\x7f]/g,e=>"\\"+e.charCodeAt(0).toString(16)+" ");function xi(t,e){let n=t.value||"",{root:o,trigger:r,right:s}=Vt("tw-image",t.label);r.removeAttribute("aria-expanded"),r.setAttribute("aria-label",`${t.label}: choose an image`);let i=h("span","tw-image-text"),a=h("span","tw-trigger-chip tw-image-thumb");s.append(a,i);let l=h("input","tw-image-input");l.type="file",l.accept="image/*",o.append(l);let g=()=>{a.dataset.set=n?"true":"false",a.style.backgroundImage=n?`url("${vi(n)}")`:"",i.textContent=n?"Replace":"Drop or choose"},u=c=>{if(!c||!c.type.startsWith("image/"))return;let d=new FileReader;d.onload=()=>{n=String(d.result),g(),e(n)},d.readAsDataURL(c)};return r.addEventListener("click",()=>l.click()),l.addEventListener("change",()=>{l.files[0]&&u(l.files[0])}),r.addEventListener("dragover",c=>{c.preventDefault(),r.dataset.over="true"}),r.addEventListener("dragleave",()=>{r.dataset.over="false"}),r.addEventListener("drop",c=>{c.preventDefault(),r.dataset.over="false",c.dataTransfer.files[0]&&u(c.dataTransfer.files[0])}),g(),{el:o,set:c=>{c!=null&&typeof c!="string"||(n=c||"",g())},get:()=>n}}rt("image",xi);var Mi=(t,e,n,o,r,s,i)=>{let a=r.length;t.clearRect(0,0,n,o),t.strokeStyle=gn(e),t.lineWidth=1.5,t.lineJoin="round",t.beginPath();let l=!1;for(let g=0;g<a;g++){let u=r[(s+g)%a];if(Number.isNaN(u))continue;let c=g/(a-1)*n,d=o-R(i(u),0,1)*o;l?t.lineTo(c,d):(t.moveTo(c,d),l=!0)}t.stroke()},Ei=t=>{for(let e of["resize","tw-reflow"])window.addEventListener(e,t);return()=>{for(let e of["resize","tw-reflow"])window.removeEventListener(e,t)}};function Gr(t,e=!1){let n=typeof t.get=="function"?t.get:()=>t.value,o=Math.max(30,Number.isFinite(+t.interval)?+t.interval:200),r;try{r=n()}catch{}let s=typeof r=="number",i=t.view==="graph"||s&&t.graph!==!1&&t.view!=="text"&&t.rows==null,a=h("div","tw-fps tw-monitor"),l=nt("span","tw-fps-val","\u2014");a.append(nt("span","tw-fps-label",t.label??"Monitor"),l);let g=0,u=0,c=()=>{},d=!1,$=Number.isFinite(+t.decimals)?Math.min(20,Math.max(0,Math.floor(+t.decimals))):2,S=O=>O==null?"\u2014":typeof O=="number"?Number.isInteger(O)||!Number.isFinite(O)?String(O):O.toFixed($):typeof O=="object"?Xe(O):String(O),f=()=>{g&&clearInterval(g),g=0,u&&cancelAnimationFrame(u),u=0,c()},m=O=>{let H=tt=>{if(e&&(u=requestAnimationFrame(H)),!a.isConnected){d&&f();return}d=!0;let Y;try{Y=n(tt)}catch{return}O(Y)};e?u=requestAnimationFrame(H):g=setInterval(H,o)};if(!i&&t.rows){l.remove();let O=Math.max(1,Math.floor(+t.rows)||1),H=h("pre","tw-monitor-buffer");H.style.setProperty("--tw-monitor-rows",O),a.append(H);let tt=[];return m(Y=>{for(tt.push(S(Y));tt.length>O;)tt.shift();H.textContent=tt.join(`
3
+ `)}),ne(a,f)}if(!i)return m(O=>{l.textContent=S(O)}),ne(a,f);let b=document.createElement("canvas");b.className="tw-fps-canvas",a.append(b);let M=b.getContext("2d");if(!M)return m(O=>{l.textContent=S(O)}),ne(a,f);let L=80,j=new Array(L).fill(NaN),I=0,B=0,_=0,D=()=>{[B,_]=Wo(b,M,2)};c=Ei(D);let W=()=>{if(B||D(),!B)return;let O=t.min,H=t.max;if(O==null||H==null){let Y=1/0,U=-1/0;for(let w of j)Number.isFinite(w)&&(w<Y&&(Y=w),w>U&&(U=w));Y===1/0?(Y=0,U=1):Y===U&&(Y-=.5,U+=.5);let st=(U-Y)*.1;O==null&&(O=Y-st),H==null&&(H=U+st)}let tt=H-O||1;Mi(M,a,B,_,j,I,Y=>(Y-O)/tt)};return m(O=>{if(typeof O!="number"||!Number.isFinite(O)){l.textContent=S(O);return}j[I]=O,I=(I+1)%L,l.textContent=S(O),W()}),ne(a,f)}var ki=()=>{let t=0;return e=>{if(!(e>0))return;let n=t?1e3/(e-t):void 0;return t=e,n}},Ci=t=>Gr({...t,label:t.label??"FPS",get:ki(),view:"graph",min:0,max:120,decimals:0},!0);rt("fpsgraph",Ci);rt("monitor",t=>Gr(t));function Li(t,e){let n=(T,z,J)=>Number.isFinite(+T)?Math.max(z,+T):J,o=T=>({stiffness:n(T.stiffness,1,300),damping:n(T.damping,.5,26),mass:n(T.mass,.1,1)}),r=T=>Number.isFinite(+T),a=T=>R(r(T)?+T:.5,.1,1),l=T=>R(r(T)?+T:.2,0,1),g=T=>+T.toPrecision(10),u=T=>{let z=(2*Math.PI/T.visualDuration)**2,J=1-T.bounce,Q=1;return{stiffness:g(z),damping:g(2*J*Math.sqrt(z*Q)),mass:Q}},c=T=>T==="time"||T==="physics"?T:null,d={stiffness:t.stiffness,damping:t.damping,mass:t.mass,visualDuration:t.visualDuration,bounce:t.bounce,...t.value||{}},$=c(d.mode)??c(t.mode)??(r(d.visualDuration)||r(d.bounce)?"time":"physics"),S={visualDuration:a(d.visualDuration),bounce:l(d.bounce)},f=o({stiffness:d.stiffness,damping:d.damping,mass:d.mass}),m=h("div","tw-spring"),b=h("div","tw-spring-viz"),M=document.createElement("canvas");M.className="tw-spring-canvas",b.append(M);let L=h("div","tw-fields"),j=h("div","tw-fields"),I=M.getContext("2d"),B=()=>o($==="time"?u(S):f),_=()=>{let T=b.getBoundingClientRect(),z=Math.max(1,Math.round(T.width)),J=Math.max(1,Math.round(T.height));if(z<2)return;let Q=window.devicePixelRatio||1;M.width=z*Q,M.height=J*Q,I.setTransform(Q,0,0,Q,0,0),I.clearRect(0,0,z,J);let xt=B(),wt=qe(xt.stiffness,xt.damping,xt.mass,Math.max(160,Math.round(z*Q))),Tt=Math.max(1.05,...wt),Lt=8,Ot=Et=>Lt+Et/(wt.length-1)*(z-2*Lt),Mt=Et=>J-Lt-Et/Tt*(J-2*Lt);I.strokeStyle=qo(m,"--tw-surface-active")||"rgba(255,255,255,0.1)",I.lineWidth=1,I.beginPath(),I.moveTo(Lt,Mt(1)),I.lineTo(z-Lt,Mt(1)),I.stroke(),I.strokeStyle=gn(m),I.lineWidth=1.5,I.lineJoin=I.lineCap="round",I.beginPath(),wt.forEach((Et,F)=>F?I.lineTo(Ot(F),Mt(Et)):I.moveTo(Ot(F),Mt(Et))),I.stroke()},D=()=>$==="time"?{...B(),visualDuration:S.visualDuration,bounce:S.bounce}:B(),W=()=>e(D()),O={};[["stiffness","Stiffness",1],["damping","Damping",.5],["mass","Mass",.1]].forEach(([T,z,J])=>{O[T]=At({label:z,value:f[T],step:J,min:J},Q=>{f[T]=Q,_(),W()}),L.append(O[T].el)});let H=At({label:"Duration",value:S.visualDuration*1e3,step:50,min:.1*1e3,max:1*1e3,unit:"ms"},T=>{S.visualDuration=a(T/1e3),_(),W()}),tt=At({label:"Bounce",value:S.bounce*100,step:5,min:0,max:100,unit:"%"},T=>{S.bounce=l(T/100),_(),W()});j.append(H.el,tt.el);let Y=()=>{j.style.display=$==="time"?"":"none",L.style.display=$==="physics"?"":"none"},st=pe([{value:"time",label:"Time"},{value:"physics",label:"Physics"}],$,T=>{T!=="time"&&T!=="physics"||T===$||($=T,Y(),_(),W())},"Spring mode"),w=h("div","tw-row");w.append(nt("span","tw-row-label","Mode"),st.el),t.label&&m.append(nt("div","tw-spring-label",t.label)),m.append(b,w,L,j);let P=1,y=500,k=1,A=40,E=null,v=T=>{if(!E)return;let z=R((T.clientX-E.left)/E.width,0,1),J=R((T.clientY-E.top)/E.height,0,1);$==="time"?(H.set((.1+z*(1-.1))*1e3),S.visualDuration=H.get()/1e3,tt.set((1-J)*100),S.bounce=tt.get()/100):(O.stiffness.set(P+z*(y-P)),f.stiffness=O.stiffness.get(),O.damping.set(k+J*(A-k)),f.damping=O.damping.get()),_(),W()};Yt(b,{onDown:T=>{T.preventDefault(),E=b.getBoundingClientRect(),b.classList.add("is-dragging"),v(T)},onMove:v,onEnd:()=>{E=null,b.classList.remove("is-dragging")}}),Y(),_t(_),Ht(M,[[window,"resize"],[window,"tw-reflow"],[matchMedia("(prefers-color-scheme: dark)"),"change"],[window,"tw-retheme"]],_);let V=null,Z=!1;return typeof MutationObserver=="function"&&(V=new MutationObserver(()=>{M.isConnected?(Z=!0,_()):Z&&(V.disconnect(),V=null)}),V.observe(document.documentElement,{subtree:!0,attributes:!0,attributeFilter:["data-tw-scheme"]})),{el:m,destroy:()=>{V&&(V.disconnect(),V=null)},set:T=>{if(!T||typeof T!="object")return;let z=c(T.mode),J=r(T.visualDuration)||r(T.bounce),Q=r(T.stiffness)||r(T.damping)||r(T.mass);!J&&!Q&&!z||($=z??(J?"time":"physics"),J&&(r(T.visualDuration)&&(S.visualDuration=a(T.visualDuration)),r(T.bounce)&&(S.bounce=l(T.bounce))),Q&&(f=o({...f,...T})),st.set($),H.set(S.visualDuration*1e3),tt.set(S.bounce*100),O.stiffness.set(f.stiffness),O.damping.set(f.damping),O.mass.set(f.mass),Y(),_())},get:()=>D()}}rt("spring",Li);function Si(t,e){let n=[.25,.1,.25,1],o=-.25,r=1.25,s=r-o,i=8,a=w=>w.map((P,y)=>R(P,y%2?o:0,y%2?r:1)),l=Array.isArray(t.value)&&t.value.length===4?t.value.map(Number):n.slice();l.some(w=>!Number.isFinite(w))&&(l=n.slice()),l=a(l);let g=l.slice(),u=h("div","tw-bezier");t.label&&u.append(nt("div","tw-bezier-label",t.label));let c=h("div","tw-bezier-graph"),d=kt("svg","tw-bezier-svg");d.setAttribute("preserveAspectRatio","none");let $=kt("line","tw-bezier-guide"),S=kt("line","tw-bezier-guide"),f=kt("line","tw-bezier-diag"),m=kt("line","tw-bezier-ctl"),b=kt("line","tw-bezier-ctl"),M=kt("path","tw-bezier-curve");d.append($,S,f,m,b,M);let L=ht("tw-bezier-handle");L.setAttribute("aria-label","Control point 1");let j=ht("tw-bezier-handle");j.setAttribute("aria-label","Control point 2"),c.append(d,L,j);let I=h("div","tw-fields tw-bezier-fields");u.append(c,I);let B=0,_=0,D=w=>i+w*(B-2*i),W=w=>_-i-(w-o)/s*(_-2*i),O=(w,P,y,k,A)=>{w.setAttribute("x1",P),w.setAttribute("y1",y),w.setAttribute("x2",k),w.setAttribute("y2",A)},H=()=>{if(L.setAttribute("aria-label",`Control point 1, x ${l[0]}, y ${l[1]}`),j.setAttribute("aria-label",`Control point 2, x ${l[2]}, y ${l[3]}`),B=c.offsetWidth,_=c.offsetHeight,B<2)return;d.setAttribute("viewBox",`0 0 ${B} ${_}`);let[w,P,y,k]=l,A=D(0),E=W(0),v=D(1),V=W(1),Z=D(w),T=W(P),z=D(y),J=W(k);O($,i,E,B-i,E),O(S,i,V,B-i,V),O(f,A,E,v,V),O(m,A,E,Z,T),O(b,v,V,z,J),M.setAttribute("d",`M${A},${E} C${Z},${T} ${z},${J} ${v},${V}`),L.style.left=Z+"px",L.style.top=T+"px",j.style.left=z+"px",j.style.top=J+"px"},tt=[{label:"X1",i:0,lo:0,hi:1},{label:"Y1",i:1,lo:o,hi:r},{label:"X2",i:2,lo:0,hi:1},{label:"Y2",i:3,lo:o,hi:r}],Y=tt.map(w=>{let P=At({label:w.label,value:l[w.i],step:.01,min:w.lo,max:w.hi},y=>{l[w.i]=y,H(),e(l.slice())});return I.append(P.el),P}),U=()=>Y.forEach((w,P)=>w.set(l[tt[P].i])),st=(w,P)=>{let y=null,k=0,A=0,E=1;Yt(w,{onDown:v=>{v.preventDefault(),y=c.getBoundingClientRect(),k=c.offsetWidth||y.width,A=c.offsetHeight||y.height,E=y.width/k,w.classList.add("is-dragging"),w.focus({focusVisible:!1})},onMove:v=>{let V=(v.clientX-y.left)/E,Z=(v.clientY-y.top)/E,T=R((V-i)/(k-2*i),0,1),z=R(o+(A-i-Z)/(A-2*i)*s,o,r);l[P*2]=+T.toFixed(2),l[P*2+1]=+z.toFixed(2),H(),U(),e(l.slice())},onEnd:()=>{y=null,w.classList.remove("is-dragging")}}),w.addEventListener("keydown",v=>{if(v.key==="Escape")return w.blur();if(v.key==="Home"){v.preventDefault(),l=g.slice(),H(),U(),e(l.slice());return}let V=v.key==="ArrowRight"?1:v.key==="ArrowLeft"?-1:0,Z=v.key==="ArrowUp"?1:v.key==="ArrowDown"?-1:0;if(!V&&!Z)return;v.preventDefault();let T=v.shiftKey?.1:.01,z=P*2;V&&(l[z]=+R(l[z]+V*T,0,1).toFixed(2)),Z&&(l[z+1]=+R(l[z+1]+Z*T,o,r).toFixed(2)),H(),U(),e(l.slice())})};return st(L,0),st(j,1),_t(H),Ht(u,[[window,"resize"],[window,"tw-reflow"]],H),{el:u,set:w=>{if(Array.isArray(w)&&w.length===4){let P=w.map(Number);if(P.some(y=>!Number.isFinite(y)))return;l=a(P),H(),U()}},get:()=>l.slice()}}rt("cubicbezier",Si);var ko={ease:[.25,.1,.25,1],linear:[0,0,1,1],"ease-in":[.42,0,1,1],"ease-out":[0,0,.58,1],"ease-in-out":[.42,0,.58,1]},Ai=300,$n=1e4,Ti=16,Xr=.9,zr=t=>!!t&&typeof t=="object",Xt=t=>typeof t=="number"?Number.isFinite(t):typeof t=="string"&&t.trim()!==""&&Number.isFinite(+t),Co=t=>{if(typeof t=="string")return Object.prototype.hasOwnProperty.call(ko,t)?ko[t].slice():null;if(Array.isArray(t)&&t.length===4){let e=t.map(Number);return e.every(Number.isFinite)?e:null}return null},Yr=t=>Xt(t.stiffness)||Xt(t.damping)||Xt(t.mass)||Xt(t.visualDuration)||Xt(t.bounce),Kr=t=>{let e={mode:"time"};if(Xt(t.stiffness)){let n=+t.stiffness,o=Xt(t.mass)?+t.mass:1,r=Math.sqrt(n/o);e.visualDuration=2*Math.PI/r,Xt(t.damping)&&(e.bounce=R(1-+t.damping/(2*Math.sqrt(n*o)),0,Xr))}return Xt(t.visualDuration)&&(e.visualDuration=+t.visualDuration),Xt(t.bounce)&&(e.bounce=R(+t.bounce,0,Xr)),e},qr=(t,e)=>t.mode==="spring"||t.mode==="easing"?t.mode:Yr(t)?"spring":Co(t.curve)?"easing":e;function Oi(t,e){let n=It("cubicbezier"),o=It("spring");if(!n||!o)throw new Error("[tweaks] motion: the bezier and spring controls are not loaded");let r=zr(t.value)?t.value:{},s=qr(r,"easing"),i=Co(r.curve)??ko.ease.slice(),a=Xt(r.duration)?R(+r.duration,0,$n):Ai,{root:l,trigger:g,right:u}=Vt("tw-motion",t.label??"Motion"),c=h("span","tw-trigger-chip tw-motion-chip"),d=kt("svg");d.setAttribute("viewBox","0 0 100 100"),d.setAttribute("preserveAspectRatio","none");let $=kt("path");d.append($),c.append(d);let S=h("span","tw-trigger-value");u.append(c,S);let f=h("div","tw-color-pop tw-motion-pop"),m=h("div","tw-motion-body");f.append(m);let b=n({...t,type:"cubicbezier",label:"",value:i.slice()},v=>{i=v,A(),tt()});i=b.get();let M=o({...t,type:"spring",label:"",value:Kr(r)},()=>{A(),tt()}),L=At({label:"Duration",value:a,step:10,min:0,max:$n,unit:"ms"},v=>{a=R(v,0,$n),A(),tt()});a=L.get();let j=h("div","tw-motion-pane"),I=h("div","tw-motion-pane"),B=h("div","tw-fields");B.append(L.el),j.append(b.el,B),I.append(M.el);let _=h("div","tw-motion-stage"),D=h("div","tw-motion-box");_.append(D);let W=pe([{value:"easing",label:"Easing"},{value:"spring",label:"Spring"}],s,v=>{(v==="easing"||v==="spring")&&v!==s&&(s=v,y(),A(),tt())},"Motion type"),O=h("div","tw-row");O.append(nt("span","tw-row-label","Type"),W.el),m.append(O,j,I,_),l.append(f);let H=()=>{if(s==="easing")return{mode:s,curve:i.slice(),duration:a,easing:`cubic-bezier(${i.join(", ")})`};let v=M.get(),V=7/Math.max(v.damping/(2*v.mass),.5),Z=R(Math.round(V*40),48,240);return{mode:s,...v,duration:Math.round(V*1e3),easing:`linear(${qe(v.stiffness,v.damping,v.mass,Z,V).map(T=>+T.toFixed(3)).join(", ")})`}},tt=()=>e(H()),Y=!1,U=null,st=v=>{if(v)Y=!Y;else if(U&&U.playState==="running")return;let V=H(),Z=Math.max(0,_.clientWidth-D.offsetWidth-2*Ti),T=`translateX(${Y?0:Z}px)`,z=`translateX(${Y?Z:0}px)`;if(de.matches||typeof D.animate!="function"){D.style.transform=z;return}U?.cancel();let J=[{transform:T},{transform:z}];try{U=D.animate(J,{duration:V.duration,easing:V.easing,fill:"forwards"})}catch{U=D.animate(J,{duration:V.duration,fill:"forwards"})}};_.addEventListener("click",()=>st(!0)),_.tabIndex=0,_.setAttribute("role","button"),_.setAttribute("aria-label","Replay the motion"),_.addEventListener("keydown",v=>{(v.key==="Enter"||v.key===" ")&&(v.preventDefault(),st(!0))});let w=()=>{let v;if(s==="easing"){let[T,z,J,Q]=i;v=[];for(let xt=0;xt<=24;xt++){let wt=xt/24,Tt=1-wt,Lt=3*Tt*Tt*wt,Ot=3*Tt*wt*wt,Mt=wt*wt*wt;v.push([Lt*T+Ot*J+Mt,Lt*z+Ot*Q+Mt])}}else{let T=M.get();v=qe(T.stiffness,T.damping,T.mass,32).map((z,J)=>[J/31,z])}let V=Math.max(1,...v.map(T=>T[1])),Z=Math.min(0,...v.map(T=>T[1]));return v.map(([T,z],J)=>`${J?"L":"M"}${(10+T*80).toFixed(1)},${(90-(z-Z)/(V-Z)*80).toFixed(1)}`).join(" ")},P=()=>{s==="easing"?b.set(i.slice()):M.set(M.get())},y=()=>{j.style.display=s==="easing"?"":"none",I.style.display=s==="spring"?"":"none",P()},k=()=>s==="easing"?`Easing \xB7 ${a} ms`:`Spring \xB7 ${Math.round((M.get().visualDuration??0)*1e3)} ms`,A=()=>{$.setAttribute("d",w()),S.textContent=k(),st(!1)};return Dt(l,g,f,{width:240,fallbackH:380,gap:6,onOpen:()=>{W.set(s),P(),st(!0)},initialFocus:()=>W.el.querySelector('[tabindex="0"]')}),y(),A(),{el:l,set:v=>{let V=typeof v=="string"?{curve:v}:Array.isArray(v)&&v.length===4?{curve:v}:zr(v)?v:null;if(!V)return;s=qr(V,s);let Z=Co(V.curve);Z&&(b.set(Z.slice()),i=b.get()),s==="easing"&&Xt(V.duration)&&(L.set(R(+V.duration,0,$n)),a=L.get()),Yr(V)&&M.set(Kr(V)),W.set(s),y(),A()},get:H,destroy:()=>M.destroy&&M.destroy()}}rt("motion",Oi);function Ni(t,e){let n=t.components,{root:o,trigger:r,right:s}=Vt("tw-point",t.label??"Point"),i=h("span","tw-trigger-value"),a=h("div","tw-trigger-chip tw-point-preview"),l=h("div","tw-point-preview-dot");a.append(l),s.append(a,i);let g=h("div","tw-color-pop tw-point-pop"),u=h("div","tw-point-body");g.append(u);let c=t.pad!==!1&&n.length>=2,d=w=>{let P=te(Math.abs(Number.isFinite(+w.value)?+w.value:0))[1],y=w.min??-P,k=w.max??P,A=10**Math.floor(Math.log10((k-y)/200));return{lo:y,hi:k,step:w.step??(A>0&&Number.isFinite(A)?A:1)}},$=n.map(d),S=$[0],f=$[1],m=S?.lo??-1,b=S?.hi??1,M=f?.lo??-1,L=f?.hi??1,j=(w,P,y)=>y>P?R((w-P)/(y-P),0,1):.5,I=null,B=null,_=null;if(c){I=h("div","tw-pad"),B=h("div","tw-pad-thumb");let w=kt("svg","tw-pad-line");w.setAttribute("viewBox","0 0 100 100"),w.setAttribute("preserveAspectRatio","none"),_=kt("line"),w.append(_);let P=j(0,M,L);_.setAttribute("x1",j(0,m,b)*100),_.setAttribute("y1",(t.invertY?P:1-P)*100),I.append(h("div","tw-pad-axis tw-pad-axis-x"),h("div","tw-pad-axis tw-pad-axis-y"),w,B),u.append(I)}let D=h("div","tw-fields");u.append(D);let W=()=>{st(),U()},O=()=>e(tt()),H=n.map((w,P)=>{let y=At({label:w.label,value:w.value??0,step:$[P].step,min:w.min,max:w.max},()=>{W(),O()});return D.append(y.el),y}),tt=()=>Object.fromEntries(n.map((w,P)=>[w.key,H[P].get()])),Y=(w,P)=>(+w).toFixed(Qt(P)),U=()=>{i.textContent=n.map((w,P)=>Y(H[P].get(),$[P].step)).join(", ")},st=()=>{l.style.left="50%",l.style.top="50%"};if(c){let P=k=>`calc(${(k*100).toFixed(2)}% + ${((.5-k)*5).toFixed(2)}px)`;st=()=>{let k=j(H[0].get(),m,b),A=j(H[1].get(),M,L),E=t.invertY?A:1-A,v=k*100,V=E*100;B.style.left=v+"%",B.style.top=V+"%",l.style.left=P(k),l.style.top=P(E),_.setAttribute("x2",v),_.setAttribute("y2",V),I.setAttribute("aria-description",`${n[0].label??n[0].key} ${Y(H[0].get(),S.step)}, ${n[1].label??n[1].key} ${Y(H[1].get(),f.step)}`)},Se(I,k=>{let[A,E]=Ae(k,I),v=t.invertY?E:1-E;H[0].set(m+A*(b-m)),H[1].set(M+v*(L-M)),W(),O()}),I.tabIndex=0,I.setAttribute("role","group"),I.setAttribute("aria-label",`${t.label??"Point"} pad: ${n[0].label??n[0].key} and ${n[1].label??n[1].key}`),I.addEventListener("keydown",k=>{if(k.key==="Home"){k.preventDefault(),n.forEach((V,Z)=>H[Z].set(V.value??0)),W(),O();return}let A=k.key==="ArrowRight"?1:k.key==="ArrowLeft"?-1:0,E=k.key==="ArrowUp"?1:k.key==="ArrowDown"?-1:0;if(!A&&!E)return;k.preventDefault();let v=k.shiftKey?10:1;A&&H[0].set(R(H[0].get()+A*S.step*v,m,b)),E&&H[1].set(R(H[1].get()+(t.invertY?-E:E)*f.step*v,M,L)),W(),O()})}return o.append(g),Dt(o,r,g,{width:216,fallbackH:240,gap:6,onOpen:W}),W(),{el:o,set:w=>{w&&n.forEach((P,y)=>{w[P.key]!=null&&H[y].set(w[P.key])}),W()},get:tt}}rt("point",Ni);var $i=Object.assign(Object.create(null),{sin:Math.sin,cos:Math.cos,tan:Math.tan,asin:Math.asin,acos:Math.acos,atan:Math.atan,atan2:Math.atan2,sinh:Math.sinh,cosh:Math.cosh,tanh:Math.tanh,sqrt:Math.sqrt,cbrt:Math.cbrt,abs:Math.abs,exp:Math.exp,log:Math.log,ln:Math.log,log10:Math.log10,log2:Math.log2,floor:Math.floor,ceil:Math.ceil,round:Math.round,sign:Math.sign,trunc:Math.trunc,min:Math.min,max:Math.max,pow:Math.pow,hypot:Math.hypot,mod:(t,e)=>t%e,clamp:(t,e,n)=>Math.min(Math.max(t,e),n)}),Wr=Object.assign(Object.create(null),{pi:Math.PI,e:Math.E,tau:Math.PI*2,phi:(1+Math.sqrt(5))/2});function Lo(t){if(typeof t!="string"||!t.trim()||t.length>512)return null;let e=t,n=[],o=/\d*\.?\d+(?:[eE][+-]?\d+)?/y,r=/[A-Za-z_]\w*/y,s=0;for(;s<e.length;){let f=e[s];if(f===" "||f===" "||f===`
4
+ `){s++;continue}if(f>="0"&&f<="9"||f==="."&&e[s+1]>="0"&&e[s+1]<="9"){o.lastIndex=s;let m=o.exec(e);if(!m||m.index!==s)return null;n.push({t:"num",v:parseFloat(m[0])}),s=o.lastIndex;continue}if(f>="A"&&f<="Z"||f>="a"&&f<="z"||f==="_"){r.lastIndex=s;let m=r.exec(e);n.push({t:"id",v:m[0]}),s=r.lastIndex;continue}if(f==="*"&&e[s+1]==="*"){n.push({t:"op",v:"^"}),s+=2;continue}if("+-*/%^".includes(f)){n.push({t:"op",v:f}),s++;continue}if(f==="("){n.push({t:"lp"}),s++;continue}if(f===")"){n.push({t:"rp"}),s++;continue}if(f===","){n.push({t:"comma"}),s++;continue}return null}if(!n.length)return null;let i=0,a=()=>n[i],l=f=>{let m=n[i];return!m||f&&m.t!==f?null:(i++,m)},g=()=>{let f=u();if(!f)return null;for(;a()&&a().t==="op"&&(a().v==="+"||a().v==="-");){let m=l("op").v,b=u();if(!b)return null;let M=f;f=m==="+"?L=>M(L)+b(L):L=>M(L)-b(L)}return f},u=()=>{let f=c();if(!f)return null;for(;a()&&a().t==="op"&&(a().v==="*"||a().v==="/"||a().v==="%");){let m=l("op").v,b=c();if(!b)return null;let M=f;f=m==="*"?L=>M(L)*b(L):m==="/"?L=>M(L)/b(L):L=>M(L)%b(L)}return f},c=()=>{if(a()&&a().t==="op"&&(a().v==="-"||a().v==="+")){let f=l("op").v,m=c();return m?f==="-"?b=>-m(b):m:null}return d()},d=()=>{let f=$();if(!f)return null;if(a()&&a().t==="op"&&a().v==="^"){l("op");let m=c();return m?b=>Math.pow(f(b),m(b)):null}return f},$=()=>{let f=a();if(!f)return null;if(f.t==="num")return l("num"),()=>f.v;if(f.t==="lp"){l("lp");let m=g();return!m||!l("rp")?null:m}if(f.t==="id"){l("id");let m=f.v.toLowerCase();if(a()&&a().t==="lp"){let b=$i[m];if(!b)return null;l("lp");let M=[];if(a()&&a().t!=="rp")do{let L=g();if(!L)return null;M.push(L)}while(l("comma"));return l("rp")?L=>b(...M.map(j=>j(L))):null}if(m==="x")return b=>b;if(m in Wr){let b=Wr[m];return()=>b}return null}return null},S=g();return S&&i===n.length?S:null}function Pi(t,e){let n=Number(t.xMin??t.min),o=Number(t.xMax??t.max);if(Number.isFinite(n)||(n=-10),Number.isFinite(o)||(o=10),o<n){let L=n;n=o,o=L}o===n&&(n-=1,o+=1);let r=Math.max(2,Math.min(4096,t.samples|0||256)),s=Number.isFinite(t.yMin)&&Number.isFinite(t.yMax)&&+t.yMax>+t.yMin,i=typeof t.fn=="function"?t.fn:null,a=t.editable!==!1&&!i,l=t.expr!=null?String(t.expr):i?"":"sin(x)",g=i||Lo(l),u=h("div","tw-plot");t.label&&u.append(nt("div","tw-plot-label",t.label));let c=h("div","tw-plot-graph"),d=kt("svg","tw-plot-svg");d.setAttribute("preserveAspectRatio","none");let $=kt("line","tw-plot-axis"),S=kt("line","tw-plot-axis"),f=kt("path","tw-plot-curve");d.append($,S,f),c.append(d),u.append(c);let m=null;if(a){let L=h("div","tw-plot-field");m=h("input","tw-plot-input"),m.type="text",m.value=l,m.spellcheck=!1,m.autocapitalize="off",m.autocomplete="off",Bt(m),m.setAttribute("aria-label",`${t.label||"Plot"} \u2014 expression in x`),m.setAttribute("aria-invalid","false"),L.append(nt("span","tw-plot-fx","y ="),m),u.append(L)}let b=6,M=()=>{let L=typeof g=="function";u.classList.toggle("is-invalid",a&&!L),m&&m.setAttribute("aria-invalid",a&&!L?"true":"false");let j=c.getBoundingClientRect(),I=j.width,B=j.height;if(I<2)return;d.setAttribute("viewBox",`0 0 ${I} ${B}`);let _=[],D=1/0,W=-1/0;if(L)for(let P=0;P<r;P++){let y=n+(o-n)*(P/(r-1)),k;try{k=g(y)}catch{k=NaN}_.push(k),Number.isFinite(k)&&(k<D&&(D=k),k>W&&(W=k))}let O=t.yMin,H=t.yMax;if(!s)if(!Number.isFinite(D)||D===W){let P=Number.isFinite(D)?D:0;O=P-1,H=P+1}else{let P=(W-D)*.12;O=D-P,H=W+P}let tt=P=>b+(P-n)/(o-n)*(I-2*b),Y=P=>B-b-(P-O)/(H-O)*(B-2*b),U=(P,y,k,A,E,v)=>{P.style.display=v?"":"none",v&&(P.setAttribute("x1",y),P.setAttribute("y1",k),P.setAttribute("x2",A),P.setAttribute("y2",E))};U($,b,Y(0),I-b,Y(0),O<=0&&H>=0),U(S,tt(0),b,tt(0),B-b,n<=0&&o>=0);let st="",w=!1;if(L)for(let P=0;P<r;P++){let y=_[P];if(!Number.isFinite(y)){w=!1;continue}let k=tt(n+(o-n)*(P/(r-1))),A=R(Y(y),-1e4,1e4);st+=(w?"L":"M")+k.toFixed(1)+","+A.toFixed(1)+" ",w=!0}f.setAttribute("d",st)};return a&&m.addEventListener("input",()=>{l=m.value,g=Lo(l),M(),e(l)}),_t(M),Ht(u,[[window,"resize"],[window,"tw-reflow"]],M),{el:u,get:()=>l,set:L=>{L!=null&&(l=String(L),m&&(m.value=l),i||(g=Lo(l)),M())}}}rt("plot",Pi);var Re={},Pn={},Ri=t=>It(t)||!Re[t]?null:Pn[t]||(Pn[t]=Re[t]().catch(e=>{throw delete Pn[t],console.error(`[tweaks] control chunk "${t}" failed to load:`,e),e})),So=(t,e=new Set)=>{for(let n of t)if(n&&(Re[n.type]&&e.add(n.type),n.children&&So(n.children,e),n.pages))for(let o of n.pages)So(o.children,e);return e},Fe=t=>{let e=[...So(t)].map(Ri).filter(Boolean);return e.length?Promise.all(e):null};var Ur=Nt('<path class="tw-copy-back" d="m5.5 16.5-.7-.2q-1.5-.6-2.1-2.1-.2-.7-.2-2.7v-2c0-3.3 0-5 1-6s2.7-1 6-1h2c1.4 0 2 0 2.7.2q1.6.5 2.1 2.1l.2.7"/><path class="tw-copy-front" d="M7.5 14.5c0-3.3 0-5 1-6s2.7-1 6-1 5 0 6 1 1 2.7 1 6 0 5-1 6-2.7 1-6 1-5 0-6-1-1-2.7-1-6"/>',"tw-toolbar-btn__copy"),Jr=Nt('<path d="m5 14 3.5 3.5L19 6.5"/>',"tw-toolbar-btn__check",2.4),Zr=Nt('<path d="M3 12a9 9 0 1 0 9-9 9 9 0 0 0-7.6 4.2M3.3 3l.2 2q0 2.2.6 2.7t2.7.2l2-.2"/>'),Qr=Nt('<path d="m17 17 4 4m-2-10a8 8 0 0 0-16 0 8 8 0 0 0 16 0"/>'),Ao=t=>Nt('<path d="M18 9s-4.4 6-6 6-6-6-6-6"/>',t,2.5),ts=Ao("tw-chevron"),es=Nt('<path d="M20.2 13.5q1.8.8 1.8 1.5 0 .8-2.7 2l-5 2.2Q13 20 12 20q-.7 0-2.4-.8l-4.9-2.3Q2 16 2 15t1.8-1.5"/><path class="tw-layer-top" d="M9.6 4.8Q11.3 4 12 4t2.4.8l4.9 2.3Q22 8 22 9c0 .7-.9 1.1-2.7 2l-5 2.2Q13 14 12 14q-.7 0-2.4-.8l-4.9-2.3Q2 10 2 9c0-.7.9-1.1 2.7-2z"/>'),ns=Nt('<path d="M18 6 6 18m12 0L6 6"/>',"",2.2),To=Nt('<circle cx="12" cy="12" r="10"/><path d="M12 16v-4m-.25-3.75a.25.25 0 0 0 .5 0 .25.25 0 0 0-.5 0"/>');var Ze=(t,e,n)=>{let o=ht("tw-toolbar-btn"+(t?" "+t:""),e);return o.title=n,o.setAttribute("aria-label",n),o},_n=(t,e,n)=>{let o=Ze("tw-toolbar-btn--swap",`<span class="tw-toolbar-btn__icons">${Ur}${Jr}</span>`,"Copy values (\u21E7: changed only)");return o.addEventListener("click",async r=>{if(o.disabled)return;let[s,i]=n(r.shiftKey);if(!i){re("Nothing has changed",t);return}await Hi(s)?(Fi(o),re(i>0?`${i} changed value${i===1?"":"s"} copied`:`${e()} values copied`,t)):re("Copy failed",t)}),o},Hn=t=>{let e=Ze("tw-toolbar-btn--reset",Zr,"Reset");return e.addEventListener("click",()=>{e.disabled||(Oo(e),t())}),e},Fi=t=>{t.classList.add("is-copied"),clearTimeout(t._t),t._t=setTimeout(()=>t.classList.remove("is-copied"),1400)},Oo=t=>{let e=t.querySelector("svg");t._spinSettle||(t._spinSettle=()=>{clearTimeout(t._t),t.classList.remove("is-spinning"),e.style.transition="none",e.style.setProperty("--tw-spin","0deg"),e.getBoundingClientRect(),e.style.transition=""},e.addEventListener("transitionend",o=>{o.propertyName==="transform"&&t.classList.contains("is-spinning")&&performance.now()-t._spinT>250&&t._spinSettle()})),t._spinT=performance.now(),e.style.setProperty("--tw-spin",`${(parseFloat(e.style.getPropertyValue("--tw-spin"))||0)-360}deg`),t.classList.add("is-spinning"),clearTimeout(t._t);let n=()=>{e.getAnimations&&e.getAnimations().length?t._t=setTimeout(n,250):t._spinSettle()};t._t=setTimeout(n,600)},oe=null,os=0;function re(t,e){oe||(oe=h("div","tw-toast tw-portal"),oe.setAttribute("role","status")),oe.isConnected||document.body.appendChild(oe),oe.textContent=t,be(oe,e),oe.classList.add("is-open"),clearTimeout(os),os=setTimeout(()=>oe.classList.remove("is-open"),1600)}var $t=null,Rn=0,Fn=null,ss=t=>{t.key==="Escape"&&Qe()},Qe=t=>{t&&Fn&&!t.contains(Fn)||(clearTimeout(Rn),document.removeEventListener("keydown",ss),$t&&$t.classList.remove("is-open"))};function _i(t,e){$t||($t=h("div","tw-tip tw-portal"),$t.setAttribute("role","tooltip")),$t.isConnected||document.body.appendChild($t),clearTimeout(Rn),$t.textContent=e,be($t,t);let n=$t.classList.contains("is-open");$t.style.visibility="hidden",$t.classList.add("is-open"),Zn(t,$t,{align:"center",prefer:"above",gap:8}),$t.style.visibility="",document.addEventListener("keydown",ss),Fn=t,n||requestAnimationFrame(function o(){if($t.classList.contains("is-open")){if(!Fn.isConnected)return Qe();requestAnimationFrame(o)}})}function rs(){$t&&(clearTimeout(Rn),Rn=setTimeout(Qe,80))}var No=".tw-slider-label, .tw-row-label, .tw-select-label, .tw-trigger-label, .tw-radiogrid-label, .tw-field-label, .tw-folder-title, .tw-fps-label, .tw-plot-label";function _e(t,e){let n=t.querySelector(No)||t;if(n===t&&t.classList.contains("tw-separator"))return;let o=n.closest("button"),r=o?h("span","tw-hint",To):ht("tw-hint",To),s=()=>_i(r,e);if(o){r.setAttribute("aria-hidden","true");let i=o.getAttribute("aria-description");o.setAttribute("aria-description",i?`${i}. ${e}`:e)}else r.setAttribute("aria-label",e),r.addEventListener("focus",s),r.addEventListener("blur",rs),r.addEventListener("keydown",i=>{(i.key==="Enter"||i.key===" ")&&i.stopPropagation()});r.addEventListener("pointerenter",s),r.addEventListener("pointerleave",rs),r.addEventListener("pointerdown",i=>i.stopPropagation()),r.addEventListener("click",i=>{i.preventDefault(),i.stopPropagation()}),n.appendChild(r)}async function Hi(t){try{return await navigator.clipboard.writeText(t),!0}catch{}let e=document.createElement("textarea");e.value=t,e.style.position="fixed",e.style.top="-9999px",document.body.appendChild(e),e.focus(),e.select();let n=!1;try{n=document.execCommand("copy")}catch{}return document.body.removeChild(e),n}function xe(t,e,n=0){if(In(t))return null;let o=ji(t,e,n);return o&&e&&typeof e=="object"&&(typeof e.render=="function"&&(o.render=e.render),e.disabled!=null&&(o.disabled=e.disabled),e.hint!=null&&(o.hint=String(e.hint))),o}var se=t=>t&&typeof t=="object",me=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),In=t=>t==="__proto__"||t==="constructor"||t==="prototype",ie=(t,e)=>t!==e&&!(se(t)&&se(e)&&JSON.stringify(t)===JSON.stringify(e)),jn=(t,e,n)=>{t.set(n),t.set(e)},is=t=>Array.isArray(t.options)&&{type:"radiogrid",options:t.options,value:t.value??ee(t.options[0]),cols:t.cols},Di=(t,...e)=>{let n=(e.length?e:[0]).map(s=>te(Number.isFinite(+s)?+s:0)),o=t.min??Math.min(...n.map(s=>s[0])),r=t.max??Math.max(...n.map(s=>s[1]));return{min:o,max:r,step:t.step??Ce(o,r)}},$o=(t,e)=>t.label==null?e:String(t.label),as=t=>typeof t=="string"&&t.trim()?t.trim().slice(0,12):void 0,Po=["stiffness","damping","mass","visualDuration","bounce"],ls={slider:t=>{let e=Di(t,t.value??t.min??0);return{value:t.value??e.min,...e,soft:t.soft,unit:as(t.unit)}},number:t=>({value:t.value??0,min:t.min,max:t.max,step:t.step??1,soft:t.soft,unit:as(t.unit)}),checkbox:t=>({value:!!t.value}),radiogrid:is,segmented:is,list:t=>Array.isArray(t.options)&&{options:t.options,value:t.value??ee(t.options[0])},text:t=>({value:t.value??"",rows:t.rows,placeholder:t.placeholder}),spring:t=>{let e=se(t.value)?t.value:t,n={stiffness:e.stiffness??300,damping:e.damping??26,mass:e.mass??1};Number.isFinite(+e.visualDuration)&&(n.visualDuration=+e.visualDuration),Number.isFinite(+e.bounce)&&(n.bounce=+e.bounce);let o=t.mode??e.mode;return(o==="time"||o==="physics")&&(n.mode=o),{value:n}},motion:t=>{let e=typeof t.value=="string"||Array.isArray(t.value)?{...t,curve:t.value}:se(t.value)?t.value:t,n=Po.some(r=>e[r]!=null),o={curve:"ease",duration:300,...n?{}:{visualDuration:.5,bounce:.2}};for(let r of["mode","curve","duration",...Po])e[r]!=null&&(o[r]=e[r]);return o.mode!=="easing"&&o.mode!=="spring"&&(o.mode=n?"spring":"easing"),{value:o}},point:t=>{if(!Array.isArray(t.components)||!t.components.length)return!1;let e=new Set,n=t.components.map((o,r)=>{let s=String(o.key??((o.label?String(o.label).toLowerCase():"")||`c${r}`)),i=s,a=2;for(;e.has(i);)i=`${s}-${a++}`;return e.add(i),{...o,key:i}});return{components:n,pad:t.pad,invertY:t.invertY,value:Object.fromEntries(n.map(o=>[o.key,o.value??0]))}},buttongroup:t=>({buttons:t.buttons}),separator:()=>({}),tabs:(t,e)=>{if(!t.pages||typeof t.pages!="object"||!Object.keys(t.pages).length)return!1;let n=new Set;return{pages:Object.entries(t.pages).map(([o,r])=>{let s=o.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"tab",i=s,a=2;for(;n.has(i);)i=`${s}-${a++}`;return n.add(i),{key:i,title:o.trim()?o:"Tab",children:Object.entries(r).map(([l,g])=>xe(l,g,e+1)).filter(Boolean)}})}}},Ii=Object.assign(Object.create(null),{list:"options",radiogrid:"options",segmented:"options",point:"components",tabs:"pages"});function ji(t,e,n=0){if(n>64)return null;let o=an(t),r=(s,i,a=o)=>({type:s,key:t,label:a,...i});if(se(e)&&!Array.isArray(e)&&me(ls,e.type)){let s;try{s=ls[e.type](e,n)}catch(i){return console.error(`[tweaks] malformed "${e.type}" schema value for "${t}" \u2014 control skipped:`,i),null}if(s)return r(String(e.type),s,$o(e,o));if(me(e,Ii[e.type]))return console.error(`[tweaks] malformed "${e.type}" schema value for "${t}" \u2014 control skipped`),null}else if(se(e)&&!Array.isArray(e)&&typeof e.type=="string"&&(Re[e.type]||It(e.type))){let{type:s,label:i,...a}=e;return r(s,a,$o(e,o))}if(Array.isArray(e)&&Array.isArray(e[0])&&e[0].length===2&&typeof e[0][0]=="number"){let s=Number.isFinite(+e[1])?+e[1]:+e[0][0],i=Number.isFinite(+e[2])?+e[2]:+e[0][1];return r("interval",{value:e[0].map(Number),min:s,max:i,step:e[3]??Ce(s,i)})}if(Array.isArray(e)&&e.length<=4&&typeof e[0]=="number"){let s=e[0],[i,a]=te(s),l=e.length>1?e[1]:i,g=e.length>2?e[2]:a;return r("slider",{value:s,min:l,max:g,step:e[3]??Ce(l,g)})}if(typeof e=="number"){let[s,i]=te(e);return r("slider",{value:e,min:s,max:i,step:Ce(s,i)})}return typeof e=="boolean"?r("checkbox",{value:e}):Array.isArray(e)?r("list",{options:e,value:ee(e[0])}):se(e)&&typeof e.action=="function"?r("button",{action:e.action},$o(e,o)):se(e)&&Array.isArray(e.options)?r("list",{options:e.options,value:e.value??ee(e.options[0])}):Xo(e)?r("color",{value:e}):typeof e=="string"?r("text",{value:e}):se(e)?r("folder",{children:Object.entries(e).filter(([s,i])=>!(s==="render"&&typeof i=="function")&&!((s==="disabled"||s==="hint")&&i!=null)).map(([s,i])=>xe(s,i,n+1)).filter(Boolean)}):null}var Bn=new Set(["button","fpsgraph","monitor","buttongroup","separator"]),cs=t=>({...Object.fromEntries(Po.map(e=>[e,gt(t[e])])),mode:t.mode}),us={slider:t=>({value:gt(t.value),min:gt(t.min),max:gt(t.max),step:gt(t.step),soft:Dn(t.soft),unit:t.unit}),checkbox:t=>t.options?{type:"radiogrid",options:tn(t.options),value:t.value,cols:gt(t.cols)}:{value:t.checked==="true"},radiogrid:t=>({options:tn(t.options),value:t.value,cols:gt(t.cols)}),list:t=>({options:tn(t.options),value:t.value}),button:(t,e,n)=>({action:()=>re(`${n} pressed`,e)}),buttongroup:(t,e)=>({buttons:tn(t.buttons).map(n=>({label:n,action:()=>re(`${n} pressed`,e)}))}),separator:()=>({}),number:t=>({value:gt(t.value),min:gt(t.min),max:gt(t.max),step:gt(t.step),unit:t.unit}),text:t=>({value:t.value??"",placeholder:t.placeholder,rows:gt(t.rows)}),fpsgraph:t=>({label:t.label??"FPS"}),interval:t=>({value:t.value?t.value.split(",").map(Number):void 0,min:gt(t.min),max:gt(t.max),step:gt(t.step)}),sides:t=>({value:t.value??t,corners:Dn(t.corners),unit:t.unit,step:gt(t.step),min:gt(t.min),max:gt(t.max)}),shadow:t=>({value:t.value??{...t,inset:Dn(t.inset)}}),spring:cs,motion:t=>({...cs(t),curve:t.curve&&t.curve.includes(",")?t.curve.split(",").map(Number):t.curve,duration:gt(t.duration)}),cubicbezier:t=>({value:t.value?t.value.split(",").map(Number):void 0}),point:t=>{let e=(t.value||"").split(",").map(n=>parseFloat(n));return{components:tn(t.components||"X,Y").map((n,o)=>({key:n.toLowerCase(),label:n,value:isNaN(e[o])?0:e[o],step:gt(t.step),min:gt(t.min),max:gt(t.max)})),pad:Dn(t.pad),invertY:t.invertY==="true"}},plot:t=>({expr:t.expr,xMin:gt(t.xmin),xMax:gt(t.xmax),yMin:gt(t.ymin),yMax:gt(t.ymax),samples:gt(t.samples),editable:t.editable!=="false"})},gt=t=>{if(t==null||t==="")return;let e=+t;return Number.isFinite(e)?e:void 0},Dn=t=>t==="true"||t==="",tn=t=>(t||"").split(",").map(e=>e.trim()).filter(Boolean),ds=t=>{let e=t.dataset,n=e.tw,o=e.label??an(e.key||n),r=me(us,n)?us[n](e,t,o):Re[n]||It(n)?{...e}:null;return r?xe("v",{type:n,label:o,...r}):null};var Bi=3,ps=32,fs=200,ms=8;function Vi(t,e){let n=t.label,{min:o,max:r,step:s}=ln(t.min,t.max,t.step);t.soft||([o,r]=ke(o,r,s));let i=(r-o)/s<=6,a=Number.isFinite(+t.value)?+t.value:o,l=t.soft&&!i?a:R(a,o,r),g=0,u=Qt(s),c=h("div","tw-slider-wrap"),d=h("div","tw-slider"),$=h("div","tw-slider-hashmarks"),S=h("div","tw-slider-fill"),f=h("div","tw-slider-handle"),m=nt("span","tw-slider-label",n),b=h("span","tw-slider-value"),M=typeof t.unit=="string"?t.unit.trim():"",L=document.createTextNode(""),j=M?/^[%°]$/.test(M)?M:" "+M:"";b.append(L),M&&b.append(nt("span","tw-slider-unit",j)),d.append($,S,f,m,b),c.append(d),d.tabIndex=0,d.setAttribute("role","slider"),d.setAttribute("aria-label",n),d.setAttribute("aria-valuemin",String(o)),d.setAttribute("aria-valuemax",String(r));let I=N=>he(N,o,s),B=i?Array.from({length:Math.max(0,Math.round((r-o)/s)-1)},(N,it)=>(it+1)*s/(r-o)*100):[];for(let N of B){let it=h("div","tw-slider-hashmark");it.style.left=N+"%",$.append(it)}let _=()=>{let N=R((l-o)/(r-o||1)*100,0,100),it=g?` + ${g.toFixed(1)}px`:"",ct=`${N}%${it}`;S.style.width=g?`calc(${ct})`:N+"%",f.style.left=`max(5px, calc(${ct} - 9px))`;let ut=I(l),pt=ut.toFixed(u);L.data=pt,d.setAttribute("aria-valuenow",String(ut)),d.setAttribute("aria-valuetext",pt+j);let St=c.offsetWidth;if(St){let Pt=Math.max(5,N/100*St+g-9);d.classList.toggle("is-dodge",cn(m,b,Pt,3))}};_();let D=null,W=1,O=null,H=!0,tt,Y=null,U=null,st=`width 0.34s ${eo}`,w=`left 0.34s ${eo}, opacity 0.15s, transform 0.2s ${ze}`,P=.2,y=N=>{if(!D)return l;let it=c.offsetWidth||D.width,ct=R((N-D.left)/W/it,0,1);return R(o+ct*(r-o),o,r)},k=N=>{let it=0;N<D.left?it=-ms*Math.sqrt(Math.min(Math.max(0,D.left-N-ps)/fs,1)):N>D.right&&(it=ms*Math.sqrt(Math.min(Math.max(0,N-D.right-ps)/fs,1))),d.style.width=`calc(100% + ${Math.abs(it)}px)`,d.style.transform=it<0?`translateX(${it}px)`:""},A=(N,it=!0)=>{N=+N,Number.isFinite(N)&&(l=i?R(I(N),o,r):t.soft?N:R(N,o,r),_(),it&&e(I(l)))},E=Math.max(1,Math.round((r-o)/s)),v=.2,V=.3,Z=520,T=27,z=N=>(N-o)/s,J=0,Q=0,xt=0,wt=!1,Tt=null,Lt=l,Ot=0,Mt=()=>{xt&&cancelAnimationFrame(xt),xt=0,Ot=0},Et=N=>{if(!d.isConnected){Mt();return}let it=Ot?Math.min((N-Ot)/1e3,.05):1/60;Ot=N;let ct=c.offsetWidth||D&&D.width||1,ut=z(R(Lt,o,r)),pt=R(Math.round(ut+v),0,E),St=wt?pt+V*R(ut-pt,-.5,.5):pt;if(de&&de.matches)J=St,Q=0;else{let Pt=it,Ie=1/240;for(;Pt>1e-4;){let Ut=Math.min(Ie,Pt);Pt-=Ut;let ge=Z*(St-J)-T*Q;Q+=ge*Ut,J+=Q*Ut,J<0&&(J=0,Q=0),J>E&&(J=E,Q=0)}}g=(J-pt)*s/(r-o||1)*ct,l=R(o+pt*s,o,r),_(),pt!==Tt&&(Tt=pt,e(I(l))),!wt&&Math.abs(Q)<.004&&Math.abs(J-pt)<.004?(J=pt,Q=0,g=0,_(),Mt(),d.classList.remove("is-active")):xt=requestAnimationFrame(Et)},F=N=>{J=z(l),Q=0,wt=!0,Tt=Math.round(z(l)),Lt=y(N),xt||(xt=requestAnimationFrame(Et))};d.addEventListener("pointerdown",N=>{if(!b.classList.contains("is-editing")&&!(N.button!==0||O)){N.preventDefault(),d.focus({focusVisible:!1}),U=N.pointerId;try{N.target.setPointerCapture(N.pointerId)}catch{}clearTimeout(tt),d.style.transition="",O={x:N.clientX,y:N.clientY},H=!0,d.classList.add("is-active"),D=c.getBoundingClientRect(),W=D.width/(c.offsetWidth||D.width),i?(S.style.transition="",f.style.transition="",F(N.clientX)):(S.style.transition=st,f.style.transition=w,A(y(N.clientX)))}}),d.addEventListener("pointermove",N=>{if(!(!O||N.pointerId!==U)){if(N.buttons===0){G();return}if(H&&Math.hypot(N.clientX-O.x,N.clientY-O.y)>Bi&&(H=!1,d.classList.add("is-dragging"),i||(S.style.transition="",f.style.transition="")),!H)if(k(N.clientX),i)Lt=y(N.clientX);else{let it;if(N.altKey){Y||(Y={x:N.clientX,v:l});let ct=c.offsetWidth||D.width;it=R(Y.v+(N.clientX-Y.x)/ct*(r-o)*P,o,r)}else Y=null,it=y(N.clientX);A(it)}N.clientX>=D.left&&N.clientX<=D.right&&(d.style.width="",d.style.transform="")}});let G=N=>{!O||N&&N.pointerId!==U||(i?(wt=!1,d.classList.remove("is-dragging"),xt||(xt=requestAnimationFrame(Et))):(tt=setTimeout(()=>{S.style.transition="",f.style.transition=""},360),d.classList.remove("is-active","is-dragging")),d.style.transition=`width 0.35s ${ze}, transform 0.35s ${ze}`,d.style.width="",d.style.transform="",setTimeout(()=>{d.style.transition=""},360),O=null,Y=null,U=null)};d.addEventListener("pointerup",G),d.addEventListener("pointercancel",G),d.addEventListener("lostpointercapture",G),un(d,_),_t(_),Ht(d,[[window,"resize"]],_),d.addEventListener("keydown",N=>{if(N.target!==d||O)return;let it=ue(N,l,s,o,r,(r-o)/10||s*10);it!=null&&(N.preventDefault(),i&&(Mt(),g=0,d.classList.remove("is-active")),A(R(it,o,r)))});let ft;b.addEventListener("mouseenter",()=>{ft=setTimeout(()=>b.classList.add("is-editable"),800)}),b.addEventListener("mouseleave",()=>{clearTimeout(ft),b.classList.contains("is-editing")||b.classList.remove("is-editable")}),b.addEventListener("pointerdown",N=>{N.pointerType&&N.pointerType!=="mouse"?(b.classList.add("is-editable"),N.stopPropagation()):b.classList.contains("is-editable")&&N.stopPropagation()});let mt=()=>{if(b.classList.contains("is-editing"))return;let N=h("input","tw-slider-input");N.type="text",N.inputMode="decimal",Bt(N),N.value=I(l).toFixed(u),b.classList.add("is-editing"),b.replaceWith(N),N.focus(),N.select();let it=()=>{N.replaceWith(b),b.classList.remove("is-editing","is-editable")},ct=()=>{let ut=parseFloat(N.value);isNaN(ut)||A(t.soft?ut:R(ut,o,r)),it()};N.addEventListener("pointerdown",ut=>ut.stopPropagation()),N.addEventListener("blur",ct),N.addEventListener("keydown",ut=>{ut.key==="Enter"?(N.removeEventListener("blur",ct),d.focus(),ct()):ut.key==="Escape"&&(ut.stopPropagation(),N.removeEventListener("blur",ct),d.focus(),it())})};return b.addEventListener("click",()=>{b.classList.contains("is-editable")&&mt()}),d.addEventListener("keydown",N=>{N.key==="Enter"&&N.target===d&&!O&&(N.preventDefault(),mt())}),{el:c,set:N=>A(N,!1),get:()=>I(l)}}function Gi(t,e){let n=h("div","tw-row"),o=pe([{value:"off",label:"Off"},{value:"on",label:"On"}],t.value?"on":"off",r=>e(r==="on"),t.label);return n.append(nt("span","tw-row-label",t.label),o.el),{el:n,set:r=>o.set(r?"on":"off"),get:()=>o.get()==="on"}}function Xi(t,e){let n=t.options||[],o=Math.min(3,Math.max(2,t.cols||(n.length<=3?n.length:n.length===4?2:3))),r=h("div","tw-radiogrid"),s=h("div","tw-radiogrid-grid");s.style.setProperty("--tw-rg-cols",o),s.setAttribute("role","radiogroup"),s.setAttribute("aria-label",t.label);let i=t.value??ee(n[0]),a=n.map(u=>{let c=ro("tw-radiogrid-btn",u,d=>g(d));return s.append(c),c}),l=()=>oo(a,i),g=(u,c=!0)=>{u!=null&&!a.some(d=>d._twVal===u)||(i=u,l(),c&&e(u))};return s.addEventListener("keydown",u=>{let c=mn(a,i);if(c<0)return;let d=Ke(u.key,c,a.length,o);d<0||(u.preventDefault(),d!==c&&(g(a[d]._twVal),a[d].focus()))}),l(),r.append(nt("span","tw-radiogrid-label",t.label),s),{el:r,set:u=>g(u,!1),get:()=>i}}var zi=/^(?:#[0-9a-f]{3,8}|[a-z]+|(?:oklch|oklab|rgba?|hsla?|hwb|lab|lch|color|var)\([^()]*\))$/i,Ki=Ao("tw-select-chevron");function qi(t,e){let n=t.value,o=t.options.map(m=>({value:ee(m),label:Wn(m),color:m&&typeof m=="object"&&typeof m.color=="string"&&zi.test(m.color.trim())?m.color.trim():""})),r=h("div","tw-select"),s=ht("tw-select-trigger");s.setAttribute("aria-haspopup","listbox"),s.setAttribute("aria-expanded","false");let i=h("span","tw-select-right"),a=m=>`linear-gradient(${m}, ${m}), var(--tw-checker)`,l=m=>{let b=h("span","tw-option-swatch");return b.style.background=a(m),b},g=h("span","tw-option-swatch"),u=h("span","tw-select-value");i.append(g,u),i.insertAdjacentHTML("beforeend",Ki),s.append(nt("span","tw-select-label",t.label),i);let c=h("div","tw-select-dropdown");c.setAttribute("role","listbox");let d=o.map(m=>{let b=ht("tw-select-option");return b.setAttribute("role","option"),m.color&&b.append(l(m.color)),b.append(nt("span","tw-option-label",m.label)),b.dataset.value=m.value,b.addEventListener("click",()=>{S(m.value),f.close()}),c.append(b),b});r.append(s,c);let $=()=>{let m=o.find(b=>b.value===n);u.textContent=m?.label??n,g.style.display=m?.color?"":"none",m?.color&&(g.style.background=a(m.color)),d.forEach(b=>{let M=b.dataset.value===String(n);b.dataset.selected=String(M),b.setAttribute("aria-selected",String(M))})},S=(m,b=!0)=>{m!=null&&!o.some(M=>M.value===m)||(n=m,$(),b&&e(m))},f=Dt(r,s,c,{width:"match",fallbackH:200,gap:4,onOpen:()=>(d.find(m=>m.dataset.value===String(n))||d[0])?.focus()});return s.addEventListener("keydown",m=>{!f.isOpen()&&(m.key==="ArrowDown"||m.key==="ArrowUp")&&(m.preventDefault(),f.open())}),c.addEventListener("keydown",m=>{let b=d.indexOf(document.activeElement),M=b;if(m.key==="ArrowDown")M=b<0?0:Math.min(d.length-1,b+1);else if(m.key==="ArrowUp")M=b<0?d.length-1:Math.max(0,b-1);else if(m.key==="Home")M=0;else if(m.key==="End")M=d.length-1;else return;m.preventDefault(),d[M]?.focus()}),$(),{el:r,set:m=>S(m,!1),get:()=>n}}function Yi(t){let e=nt("button","tw-button",t.label);return e.addEventListener("click",()=>t.action&&t.action()),ne(e)}function Wi(t){let e=h("div","tw-row tw-buttongroup");t.label&&e.append(nt("span","tw-row-label",t.label));let n=h("div","tw-buttongroup-btns"),o=Array.isArray(t.buttons)?t.buttons.map(r=>[r.label??"Button",r.action]):Object.entries(t.buttons||{});for(let[r,s]of o){let i=nt("button","tw-buttongroup-btn",r);i.addEventListener("click",()=>typeof s=="function"&&s()),n.append(i)}return e.append(n),ne(e)}var Ui=()=>ne(h("div","tw-separator"));function Ji(t,e){let n=l=>l==null?"":typeof l=="object"?Xe(l):String(l),o=n(t.value),r=t.rows>0,s=h("div",r?"tw-row tw-row-multiline":"tw-row"),i=h(r?"textarea":"input",r?"tw-text tw-textarea":"tw-text");r?i.rows=t.rows:i.type="text",i.value=o,Bt(i),t.placeholder&&(i.placeholder=t.placeholder),i.addEventListener("input",()=>{o=i.value,e(o)});let a=()=>{let l=i.scrollHeight-i.clientHeight>1;i.classList.toggle("is-clip-top",l&&i.scrollTop>1),i.classList.toggle("is-clip-bottom",l&&i.scrollTop+i.clientHeight<i.scrollHeight-1)};return r&&(i.addEventListener("scroll",a),i.addEventListener("input",a),typeof ResizeObserver=="function"&&new ResizeObserver(a).observe(i)),s.append(nt("span","tw-row-label",t.label),i),{el:s,set:l=>{o=n(l),i.value=o,r&&a()},get:()=>o}}function en(t){let e=h("div","tw-folder"),n=ht("tw-folder-header");n.setAttribute("aria-expanded","true"),n.append(nt("span","tw-folder-title",t.label)),n.insertAdjacentHTML("beforeend",ts);let o=h("div","tw-folder-body"),r=h("div","tw-controls");o.append(r),e.append(n,o);let s=i=>Le(e,n,o,i);return n.addEventListener("click",()=>s(!e.classList.contains("is-collapsed"))),{el:e,body:r,setCollapsed:s}}function He(t,e){let n=It(t.type);if(!n)return null;try{return n(t,e)}catch(o){return console.error("[tweaks] control failed to build:",t&&t.type,o),null}}rt("slider",Vi);rt("checkbox",Gi);rt("radiogrid",Xi);rt("list",qi);rt("button",Yi);rt("buttongroup",Wi);rt("separator",Ui);rt("text",Ji);rt("folder",en);var De=null;function Zi(t,e,n={}){let o=Object.entries(e).filter(([p])=>p!=="_last"||(console.warn('[tweaks] "_last" is reserved (the changed-key channel) \u2014 schema entry skipped'),!1)).map(([p,x])=>xe(p,x)).filter(Boolean),r={},s=[],i=new Set,a=new Set,l=[],g=!1,u=!1,c=[],d=new Map,$=!1,S=-1,f=p=>{if(!g){if($){console.warn("[tweaks] call ignored \u2014 the panel could not be built");return}u?p():c.push(p)}},m=null,b=function(p,x){return p==="_last"&&this===r?void 0:x===void 0?null:typeof x=="bigint"?String(x):x},M=!1,L=()=>{let p={};for(let x of s){let C=p;for(let K of x.path.slice(0,-1))C=C[K]||(C[K]={});C[x.key]=x.get()}return JSON.parse(JSON.stringify(p,b))},j=()=>{try{return JSON.parse(JSON.stringify(r,b))}catch(p){return M||(M=!0,console.warn("[tweaks] a value parked on params can't be serialised \u2014 snapshots carry the controls' values only:",p)),L()}},I=n.persist?`tw:${n.persist===!0?t:n.persist}`:null,B=I?`${I}:presets`:null,_=p=>{try{return JSON.parse(localStorage.getItem(p)||"null")}catch{return null}},D=(p,x)=>{try{localStorage.setItem(p,JSON.stringify(x))}catch{}},W=I?(()=>{let p=0,x=()=>{p=0,D(I,j())};return l.push(()=>{p&&(clearTimeout(p),x())}),()=>{clearTimeout(p),p=setTimeout(x,150)}})():()=>{},O=()=>{a.forEach(p=>{try{p(r,r._last)}catch(x){console.error("[tweaks] listener threw:",x)}}),g||W()},H=p=>typeof p=="function"||typeof p=="symbol"||typeof p=="bigint",tt=(p,x)=>{if(H(x))throw new TypeError(`a ${typeof x} is not a control value`);p.set(x),p.target[p.key]=p.get()},Y=p=>{jn(p,p.raw,p.def),p.target[p.key]=p.get()},U=!1,st=()=>{if(typeof n.onReset=="function"&&!U){U=!0;try{return n.onReset()}finally{U=!1}}for(let p of s)try{Y(p)}catch(x){console.error(`[tweaks] resetting "${p.path.join(".")}" failed \u2014 control skipped:`,x)}r._last=void 0,O()},w=h("div","tw-panel");w.dataset.mode="inline",Un(w);let P=h("div","tw-header"),y=ht("tw-header-toggle");y.setAttribute("aria-expanded","true");let k=t,A=nt("span","tw-title",k);y.append(A);let E=h("div","tw-toolbar"),v=()=>{let p={};for(let x of s)ie(x.get(),x.def)&&(p[x.path.join(".")]=x.get());return JSON.parse(JSON.stringify(p,b))},V=_n(w,()=>k,p=>{if(!p)return[JSON.stringify(j(),null,2),-1];let x=v();return[JSON.stringify(x,null,2),Object.keys(x).length]}),Z=Hn(st),T=null;I&&(T=Ze("",es,"Presets"),T.setAttribute("aria-haspopup","menu"),T.setAttribute("aria-expanded","false"),E.append(T));let z=!!n.filter&&(n.toolbar!==!1||(console.warn("[tweaks] opts.filter needs the toolbar (its search button lives there) \u2014 ignored alongside toolbar:false"),!1)),J=z?Ze("",Qr,"Filter controls"):null,Q=z?h("input","tw-search"):null;z&&(Q.type="text",Q.placeholder="Filter\u2026",Q.spellcheck=!1,Q.setAttribute("aria-label","Filter controls"),Bt(Q),E.append(J)),E.append(V,Z),P.append(y),z&&P.append(Q),n.toolbar!==!1&&P.append(E);let xt=[V,Z,T,J].filter(Boolean);for(let p of xt)p.disabled=!0;let wt=!1,Tt=!1;P.addEventListener("click",p=>{Tt&&(Tt=!1,p.preventDefault(),p.stopPropagation())},!0),y.addEventListener("click",()=>{Le(w,y,Lt,!w.classList.contains("is-collapsed")),w.dataset.mode==="floating"&&setTimeout(()=>{w.dataset.mode==="floating"&&w.isConnected&&(St(),pt())},270)});let Lt=h("div","tw-body"),Ot=h("div","tw-controls");Lt.append(Ot),w.append(P,Lt);let Mt=Qn(n.theme);dn(w,Mt),w._twTheme=Mt;let Et=n.draggable!==!1,F=8,G=28,ft=()=>({maxX:Math.max(F,window.innerWidth-w.offsetWidth-F),maxY:Math.max(F,window.innerHeight-w.offsetHeight-F)}),mt=I?`${I}:pos`:null,N=(Et||n.floating)&&mt?_(mt):null,it=N||(typeof n.floating=="object"?n.floating:null)||{x:16,y:16},ct=+it.x||16,ut=+it.y||16,pt=()=>{w.style.left=ct+"px",w.style.top=ut+"px"},St=()=>{let{maxX:p,maxY:x}=ft();ct=R(ct,F,p),ut=R(ut,F,x)};(Et||n.floating)&&(n.floating||N)&&(w.dataset.mode="floating",St(),pt(),requestAnimationFrame(()=>{!g&&w.dataset.mode==="floating"&&w.isConnected&&(St(),pt())}));let Pt=p=>{Y(p),r._last=p.key,O()},Ie=(p,x)=>{let C=p.querySelector(".tw-slider-value")||p.querySelector(No)||p;C.classList.add("tw-resettable"),C.title="Double-click or hold to reset";let K=0,lt=0,q=0,at=!1,et=()=>{K&&(clearTimeout(K),K=0,C.classList.remove("tw-reset-holding"))};C.addEventListener("pointerdown",X=>{X.stopPropagation(),at=!1,!(X.pointerType!=="touch"&&X.pointerType!=="pen")&&(lt=X.clientX,q=X.clientY,C.classList.add("tw-reset-holding"),K=setTimeout(()=>{K=0,C.classList.remove("tw-reset-holding","is-editable"),at=!0,Pt(x)},500))}),C.addEventListener("pointermove",X=>{K&&Math.abs(X.clientX-lt)+Math.abs(X.clientY-q)>8&&et()}),C.addEventListener("pointerup",et),C.addEventListener("pointercancel",et),C.addEventListener("pointerleave",et),C.addEventListener("contextmenu",X=>{at&&X.preventDefault()}),C.addEventListener("click",X=>{at&&(X.preventDefault(),X.stopImmediatePropagation(),at=!1)},!0),C.addEventListener("dblclick",X=>{C===p&&X.target.closest&&X.target.closest("input, textarea")||(X.preventDefault(),X.stopPropagation(),Pt(x))}),C.classList.contains("tw-slider-value")&&p.addEventListener("dblclick",X=>{let dt=X.target;!dt.classList||!dt.classList.contains("tw-slider-input")||(X.preventDefault(),X.stopPropagation(),dt.blur(),Pt(x))}),p.addEventListener("keydown",X=>{!X.altKey||X.metaKey||X.ctrlKey||X.key!=="Backspace"&&X.key!=="Delete"||(X.preventDefault(),X.stopPropagation(),X.target.classList&&X.target.classList.contains("tw-slider-input")&&X.target.blur(),Pt(x))})},Ut=[],ge=(p,x)=>{x.hint&&_e(p,x.hint),(x.render||x.disabled!=null)&&Ut.push({node:p,m:x})},ae=[],zt=[],Jt=[],le=[],Zt=p=>{typeof p.destroy=="function"&&l.push(p.destroy)},qt=(p,x,C,K=[],lt=null)=>{for(let q of x){if(q.type==="tabs"){let X={};i.add(X),C[q.key]=X;let dt=It("tabs"),ot=dt&&dt(q);if(!ot)continue;le.push({path:[...K,q.key],ctrl:ot,pageKeys:q.pages.map(bt=>bt.key)}),q.pages.forEach((bt,Ft)=>{let Kt={};i.add(Kt),X[bt.key]=Kt,qt(ot.bodies[Ft],bt.children,Kt,[...K,q.key,bt.key])}),ge(ot.el,q),p.append(ot.el);continue}if(q.type==="folder"){let X={};i.add(X),C[q.key]=X;let dt=en(q);Jt.push({path:[...K,q.key],el:dt.el,setCollapsed:dt.setCollapsed});let ot=z?{el:dt.el,label:q.label,body:dt.body}:null;ot&&zt.push(ot),qt(dt.body,q.children,X,[...K,q.key],ot),ge(dt.el,q),p.append(dt.el);continue}let at=!Bn.has(q.type),et=He(q,at?X=>{ie(C[q.key],X)&&(C[q.key]=X,r._last=q.key,O())}:()=>{});if(et){if(Zt(et),at){let X=et.get();me(C,q.key)&&et.set(C[q.key]),C[q.key]=et.get();let dt={target:C,key:q.key,set:et.set,get:et.get,raw:q.value,def:X,path:[...K,q.key]};s.push(dt),Ie(et.el,dt)}ge(et.el,q),z&&q.type!=="separator"&&ae.push({el:et.el,label:q.label,folder:lt}),p.append(et.el)}}};if(z){let p=C=>{let K=C.trim().toLowerCase(),lt=!1,q=(at,et)=>{!et&&at.classList.contains("tw-filter-hidden")&&(lt=!0),at.classList.toggle("tw-filter-hidden",et)};if(!K)ae.forEach(at=>q(at.el,!1)),zt.forEach(at=>q(at.el,!1));else{for(let at of ae){let et=at.folder&&pn(at.folder.label,K);q(at.el,!(pn(at.label,K)||et))}for(let at of zt.slice().reverse()){let et=[...at.body.children].some(X=>!X.classList.contains("tw-filter-hidden"));q(at.el,!(pn(at.label,K)||et))}}lt&&Jn()},x=()=>{w.classList.remove("is-searching"),Q.value="",p("")};J.addEventListener("click",()=>{J.disabled||(w.classList.toggle("is-searching")?(Q.focus(),Q.select()):x())}),Q.addEventListener("input",()=>p(Q.value)),Q.addEventListener("keydown",C=>{C.key==="Escape"&&(x(),J.focus())})}let Vn=(p,x)=>x.reduce((C,K)=>C?.[K],p),je=new Set(o.map(p=>p.key)),Rt=(p,x=!0)=>{if(!(!p||typeof p!="object")){for(let C of s){let K=Vn(p,C.path);if(K!==void 0)try{tt(C,K)}catch(lt){console.error(`[tweaks] restoring "${C.path.join(".")}" failed \u2014 value skipped:`,lt)}}for(let C of Object.keys(p))if(!je.has(C)&&C!=="_last"&&me(r,C)&&!In(C)&&!H(p[C]))try{r[C]=p[C]}catch(K){console.error(`[tweaks] restoring "${C}" failed \u2014 value skipped:`,K)}r._last=void 0,x&&O()}},jt=()=>{let p=B?_(B):null;return Object.assign(Object.create(null),p&&typeof p=="object"?p:{})},Me=p=>{let x=jt();x[p]=j(),D(B,x)},Be=p=>{let x=jt();x[p]&&Rt(x[p])},Fo=p=>{let x=jt();delete x[p],D(B,x)},nn=p=>p.map(x=>String(x).replace(/~/g,"~1").replace(/\./g,"~0")).join("."),ws=()=>{let p={};if(Jt.length){let x={};for(let C of Jt)x[nn(C.path)]=C.el.classList.contains("is-collapsed");p.folders=x}if(le.length){let x={};for(let C of le)x[nn(C.path)]=C.pageKeys[C.ctrl.active()]??null;p.tabs=x}return p},ys=p=>{if(!(!p||typeof p!="object")){if(p.folders)for(let x of Jt){let C=p.folders[nn(x.path)];typeof C=="boolean"&&x.setCollapsed(C)}if(p.tabs)for(let x of le){let C=x.pageKeys.indexOf(p.tabs[nn(x.path)]);C>=0&&C!==x.ctrl.active()&&x.ctrl.activate(C)}}};if(Et||n.floating){if(Et){w.dataset.draggable="true";let ot=h("span","tw-grabber");ot.setAttribute("aria-hidden","true"),P.prepend(ot)}let p=()=>{if(w.dataset.mode==="floating")return;let ot=w.getBoundingClientRect();if(ct=ot.left,ut=ot.top,w.parentNode&&(m=h("span","tw-lift-slot"),m.style.width=ot.width+"px",m.style.height=ot.height+"px",m.setAttribute("aria-hidden","true"),w.before(m)),to(w,w),document.body.appendChild(w),w.dataset.mode="floating",pt(),m&&typeof MutationObserver=="function"){let bt=new MutationObserver(()=>{m&&!m.isConnected&&(bt.disconnect(),m=null,w.remove())});bt.observe(document.documentElement,{childList:!0,subtree:!0}),l.push(()=>bt.disconnect())}},x=()=>{De&&De!==w&&(De.style.zIndex=""),w.style.zIndex="99991",De=w},C=null,K=0,lt=0,q=0,at=0,et=ot=>{for(let[bt,Ft]of[["pointermove",X],["pointerup",dt],["pointercancel",dt]])ot?document.addEventListener(bt,Ft,!0):document.removeEventListener(bt,Ft,!0)};Et&&P.addEventListener("pointerdown",ot=>{if(!(ot.button!==0||C!==null||ot.target.closest(".tw-toolbar, input, textarea, select"))&&(C=ot.pointerId,K=ot.clientX,lt=ot.clientY,wt=!1,et(!0),w.classList.add("is-grabbing"),w.style.transition)){let bt=getComputedStyle(w);ct=parseFloat(bt.left)||ct,ut=parseFloat(bt.top)||ut,w.style.transition="",pt()}});let X=ot=>{if(ot.pointerId!==C)return;if(ot.buttons===0){dt(ot);return}let bt=ot.clientX-K,Ft=ot.clientY-lt;if(!wt){if(Math.abs(bt)+Math.abs(Ft)<4)return;wt=!0,p(),x(),q=ct,at=ut;try{P.setPointerCapture(C)}catch{}w.classList.add("is-dragging")}let{maxX:Kt,maxY:yt}=ft();ct=R(q+bt,F,Kt),ut=R(at+Ft,F,yt),pt()},dt=ot=>{if(ot.pointerId===C){try{P.releasePointerCapture(C)}catch{}if(C=null,et(!1),Tt=wt,Tt&&setTimeout(()=>{Tt=!1},0),wt){let{maxX:bt,maxY:Ft}=ft();ct<=F+G?ct=F:ct>=bt-G&&(ct=bt),ut<=F+G?ut=F:ut>=Ft-G&&(ut=Ft),de.matches||(w.style.transition="left 0.32s var(--tw-ease-spring), top 0.32s var(--tw-ease-spring)",setTimeout(()=>{w.style.transition=""},340)),pt(),mt&&D(mt,{x:ct,y:ut})}w.classList.remove("is-dragging","is-grabbing")}};P.addEventListener("lostpointercapture",dt),l.push(()=>et(!1))}let vs=()=>{(Et||n.floating)&&(w.dataset.mode==="floating"&&(St(),pt()),l.push(Ht(w,[[window,"resize"]],()=>{w.dataset.mode==="floating"&&(St(),pt())})))};if(T){let p=h("div","tw-presets-menu"),x=h("div","tw-presets-save"),C=h("input","tw-presets-input");C.type="text",C.placeholder="Preset name\u2026",C.spellcheck=!1,C.setAttribute("aria-label","New preset name"),Bt(C);let K=nt("button","tw-presets-savebtn","Save");x.append(C,K);let lt=h("div","tw-presets-list");p.append(x,lt);let q=()=>{let X=jt(),dt=Object.keys(X);if(lt.replaceChildren(),!dt.length)return lt.append(nt("div","tw-presets-empty","No presets yet"));for(let ot of dt){let bt=h("div","tw-presets-row"),Ft=nt("button","tw-presets-load",ot);Ft.addEventListener("click",()=>{Be(ot),et.close(),re(`Loaded \u201C${ot}\u201D`,w)});let Kt=ht("tw-presets-del",ns);Kt.setAttribute("aria-label",`Delete preset ${ot}`),Kt.addEventListener("click",yt=>{yt.stopPropagation(),Fo(ot),q()}),bt.append(Ft,Kt),lt.append(bt)}},at=()=>{let X=C.value.trim();if(!X){C.focus();return}Me(X),C.value="",q(),re(`Saved \u201C${X}\u201D`,w)},et=Dt(T,T,p,{width:208,fallbackH:160,gap:6,align:"end",onOpen:()=>{q(),C.focus()}});K.addEventListener("click",at),C.addEventListener("keydown",X=>{X.key==="Enter"&&at()})}if(n.onEditStart||n.onEditEnd){let p=".tw-slider, .tw-num-grab, .tw-pad, .tw-wg-area, .tw-wg-hue, .tw-wg-alpha, .tw-bezier-handle, .tw-gradient-bar, .tw-gradient-stop",x=!1,C=()=>{document.removeEventListener("pointerup",C,!0),document.removeEventListener("pointercancel",C,!0),x&&(x=!1,n.onEditEnd&&n.onEditEnd())},K=lt=>{x||!lt.target.closest(p)||(x=!0,n.onEditStart&&n.onEditStart(),document.addEventListener("pointerup",C,!0),document.addEventListener("pointercancel",C,!0))};w.addEventListener("pointerdown",K),w._twEditPointer=K,l.push(C)}let Ve=n.undo?(()=>{let x=[],C=0,K=!1,lt=0,q=()=>{lt=0;let yt=j();JSON.stringify(yt)!==JSON.stringify(x[C])&&(x=x.slice(0,C+1),x.push(yt),x.length>200&&(x=x.slice(x.length-200)),C=x.length-1)},at=()=>{K||(clearTimeout(lt),lt=setTimeout(q,350))},et=()=>{lt&&(clearTimeout(lt),q())};a.add(at);let X=yt=>{K=!0,Rt(x[yt]),K=!1,C=yt},dt=()=>{et(),C>0&&X(C-1)},ot=()=>{et(),C<x.length-1&&X(C+1)},bt=()=>w.matches(":hover")||w.contains(document.activeElement),Ft=yt=>!!(yt&&yt.matches&&(yt.matches("input, textarea")||yt.isContentEditable)),Kt=yt=>{if(!bt()||!(yt.metaKey||yt.ctrlKey)||Ft(yt.target))return;let Io=yt.key.toLowerCase();Io==="z"?(yt.preventDefault(),yt.shiftKey?ot():dt()):Io==="y"&&(yt.preventDefault(),ot())};return{undo:dt,redo:ot,arm:()=>{x=[j()],C=0,l.push(Ht(w,[[document,"keydown"]],Kt))}}})():null,_o=()=>{if(!g){if(S=l.length,qt(Ot,o,r),Ut.length){let p=new Map;for(let K of s)p.has(K.key)||p.set(K.key,K);let x=K=>{let lt=p.get(K);return lt?lt.target[lt.key]:r[K]},C=()=>{let K=!1;for(let{node:lt,m:q}of Ut)try{if(q.render){let at=!q.render(x);!at&&lt.classList.contains("tw-cond-hidden")&&(K=!0),lt.classList.toggle("tw-cond-hidden",at)}if(q.disabled!=null){let at=typeof q.disabled=="function"?q.disabled(x):q.disabled;fn(lt,!!at)}}catch{}K&&Jn()};a.add(C),C()}if(I&&Rt(_(I)),!g){Ve?.arm(),vs(),u=!0;for(let p of c.splice(0)){if(g)break;try{p()}catch(x){console.error("[tweaks] a call queued before ready failed:",x)}}d.clear();for(let p of xt)p.disabled=!1}}},Ho=(p,x)=>{if(String(p).split(".").some(In))return console.warn(`[tweaks] set("${p}") ignored \u2014 reserved key`),!1;let C=String(p).split("."),K;if(C.length>1){let et=r;for(let X=0;X<C.length-1&&et;X++)et=et[C[X]],i.has(et)||(et=null);if(K=et&&s.find(X=>X.target===et&&X.key===C[C.length-1]),!K)return console.warn(`[tweaks] set("${p}") \u2014 no control at that path`),!1}else{let et=s.filter(dt=>dt.key===p),X=et.find(dt=>dt.target===r);if(!X&&et.length>1)return console.warn(`[tweaks] set("${p}") is ambiguous \u2014 ${et.length} controls share that key; use a dotted path (e.g. "${et[0].path.join(".")}")`),!1;K=X||et[0]}let lt=K?K.target:r,q=K?K.key:p,at=lt[q];if(K&&H(x))return console.warn(`[tweaks] set("${p}") ignored \u2014 a ${typeof x} is not a control value`),!1;if(K)try{tt(K,x)}catch(et){return console.error(`[tweaks] set("${p}") failed \u2014 value skipped:`,et),!1}else{if(i.has(r[p]))return console.warn(`[tweaks] set("${p}") ignored \u2014 it's a folder/tabs group; set its children instead`),!1;r[p]=x}return ie(at,lt[q])?(r._last=q,!0):!1},Ee={el:w,params:r,on(p){return g?()=>{}:(a.add(p),()=>a.delete(p))},set(p,x){let C=String(p);f(()=>{Ho(C,x)&&O()})},setMany(p){if(p==null||typeof p!="object")return;let x=Object.entries(p);f(()=>{let C=!1;for(let[K,lt]of x)try{Ho(K,lt)&&(C=!0)}catch(q){console.error(`[tweaks] setMany("${K}") failed \u2014 key skipped:`,q)}C&&O()})},reset(){u&&!g&&Oo(Z),f(st)},toJSON(){return g?{values:{},ui:{}}:{values:j(),ui:ws()}},changes(){return g?{}:v()},fromJSON(p){if(!p||typeof p!="object")return;let x=p.values&&typeof p.values=="object"?{...p.values}:p.values,C=p.ui&&typeof p.ui=="object"?{...p.ui}:p.ui;f(()=>{x&&Rt(x),ys(C)})},setName(p){g||(k=String(p),A.textContent=k)},setTheme(p){if(!g){if(Mt)for(let x in Mt)w.style.removeProperty(x);Mt=Qn(p),w._twTheme=Mt,dn(w,Mt),window.dispatchEvent(new Event("tw-retheme"))}},savePreset:p=>g||$||!B||!p?!1:(u||d.set(String(p),"save"),f(()=>Me(p)),!0),loadPreset:p=>{let x=d.get(String(p));return g||$||x==="delete"||!(x==="save"||jt()[p])?!1:(f(()=>Be(p)),!0)},deletePreset:p=>{B&&(u||d.set(String(p),"delete"),f(()=>Fo(p)))},presets:()=>g?[]:Object.keys(jt()),undo:()=>{Ve&&f(Ve.undo)},redo:()=>{Ve&&f(Ve.redo)},destroy(){if(!g){g=!0,zo(w),Qe(w);for(let p of l.splice(0))try{p()}catch{}a.clear(),m&&(m.remove(),m=null),De===w&&(De=null),w.dataset.twDestroyed="",w.remove()}}},Do=Fe(o);if(Do){let p=x=>{if($=!0,c.length=0,S>=0)for(let C of l.splice(S))try{C()}catch{}for(let C of Ot.children)C.dataset.twDestroyed="";throw a.clear(),s.length=0,Ot.replaceChildren(),g||console.warn(`[tweaks] "${t}": the panel could not be built \u2014 ${S>=0?"the build threw":"its lazy controls failed to load"}; the API is inert`),x};Ee.ready=w.ready=Do.then(_o).then(()=>Ee,p),Ee.ready.catch(()=>{})}else _o(),Ee.ready=w.ready=Promise.resolve(Ee);return Ee}var Qi=(t,e)=>{t.dataset.value=e==null?"":Array.isArray(e)?e.join(","):typeof e=="object"?Object.values(e).join(","):String(e)},ta=(t,e,n)=>{Qi(t,n),t.dispatchEvent(new CustomEvent("tw:change",{bubbles:!0,detail:{key:e,value:n}}))},Ro=(t,e)=>[...typeof t.matches=="function"&&t.matches(e)?[t]:[],...t.querySelectorAll(e)];async function gs(t=document){Ro(t,'.tw-panel[data-mode="inline"]:not([data-tw-panel-bound])').forEach(o=>{let r=o.querySelector(":scope > .tw-header"),s=o.querySelector(":scope > .tw-controls");if(!r||!s)return;o.setAttribute("data-tw-panel-bound","");let i=h("div","tw-body");o.insertBefore(i,s),i.append(s);let a=r.querySelector(".tw-header-toggle"),l=r.querySelector(".tw-title");if(!a&&l&&(a=ht("tw-header-toggle"),l.replaceWith(a),a.append(l)),!!a&&(a.setAttribute("aria-expanded","true"),a.addEventListener("click",()=>Le(o,a,i,!o.classList.contains("is-collapsed"))),!r.querySelector(".tw-toolbar"))){let g=l&&l.textContent||"Panel",u=()=>[...o.querySelectorAll("[data-tw]")].map(S=>S._tw).filter(S=>S&&S.ctrl.get()!==void 0),c=()=>{let S=Object.create(null);for(let f of u()){let m=f.key,b=2;for(;me(S,m);)m=`${f.key}-${b++}`;S[m]=f.ctrl.get()}return JSON.stringify(S,null,2)},d=()=>{for(let S of u())S.reset()},$=h("div","tw-toolbar");$.append(_n(o,()=>g,()=>[c(),-1]),Hn(d)),r.append($)}}),Ro(t,'[data-tw="folder"]:not([data-tw-bound])').forEach(o=>{o.setAttribute("data-tw-bound","");let r=en({label:o.dataset.label||"Folder"});[...o.children].forEach(s=>r.body.append(s)),o.append(r.el)});let e=Ro(t,"[data-tw]:not([data-tw-bound])").map(o=>({host:o,meta:ds(o)})).filter(o=>o.meta);e.forEach(({host:o})=>o.setAttribute("data-tw-bound",""));let n=Fe(e.map(o=>o.meta));n&&await n.catch(()=>{});for(let{host:o,meta:r}of e){let s=o.dataset.key||r.label,i,a=c=>{ie(i,c)&&(i=c,ta(o,s,c))},l=He(r,a);if(!l)continue;o.closest(".tw-panel, .tw-portal")||o.classList.add("tw-portal"),o.append(l.el),o.dataset.hint&&_e(l.el,o.dataset.hint);let g=l.get();i=g;let u={...l,set:c=>{l.set(c),a(l.get())}};o._tw={ctrl:u,raw:r.value,def:g,key:s,host:o,reset:()=>{jn(l,r.value,g),a(l.get())}}}}if(typeof document<"u"){let t=()=>gs(document);document.readyState==="loading"?document.addEventListener("DOMContentLoaded",t):t()}var bs=t=>h("div",`${t} tw-standalone tw-portal`),hs=(t,e,n)=>{let o=Fe(t);if(!o)return e(),Promise.resolve(n);let r=o.then(e).then(()=>n);return r.catch(()=>{}),r};function ea(t,e,n={}){let o=n.key??"value",r=xe(o,e);if(!r||r.type==="folder"||r.type==="tabs")throw new TypeError(`[tweaks] mountControl: "${o}" is not a single-control schema value`);n.label!=null&&(r.label=String(n.label));let s=!Bn.has(r.type),i=bs("tw-control");t.append(i);let a=null,l=!1,g=r.value,u,c=!1,d=f=>{ie(g,f)&&(g=f,n.onChange&&n.onChange(f,o))},$=()=>{if(l||(a=He(r,s?d:()=>{}),!a))return;r.hint&&_e(a.el,r.hint);let f=()=>{};try{r.render&&!r.render(f)&&a.el.classList.add("tw-cond-hidden")}catch{}try{(typeof r.disabled=="function"?r.disabled(f):r.disabled)&&fn(a.el,!0)}catch{}i.append(a.el),s&&(g=a.get(),c&&(a.set(u),d(a.get())))},S={el:i,set:f=>{l||!s||(a?(a.set(f),d(a.get())):(u=f,c=!0))},get:()=>s?a?a.get():c?u:r.value:void 0,destroy:()=>{l=!0,a&&typeof a.destroy=="function"&&a.destroy(),i.dataset.twDestroyed="",i.remove()},ready:null};return S.ready=hs([r],$,S),S}function na(t={}){let e=bs("tw-color-picker"),n=null,o=!1,r=t.value,s,i=!1,a=null,l=c=>{ie(r,c)&&(r=c,t.onChange&&t.onChange(c))},g=()=>{if(o)return;let c=It("colorpicker");c&&(n=c({value:t.value,mode:t.mode},l),r=n.get(),e.append(n.el),a&&n.setMode(a),i&&(n.set(s),l(n.get())),_t(n.reflow))},u={el:e,set:c=>{o||(n?(n.set(c),l(n.get())):(s=c,i=!0))},get:()=>n?n.get():i?s:t.value,mode:()=>n?n.mode():a||t.mode||"oklch",setMode:c=>{n?n.setMode(c):a=c},reflow:()=>{n&&n.reflow()},destroy:()=>{o=!0,e.remove()},ready:null};return u.ready=hs([{type:"color"}],g,u),u}export{na as createColorPicker,gs as enhance,sn as gradientCss,Kn as gradientStops,ea as mountControl,Zi as tweaks};